/* ==============================================================
   KWS Site System v3 (May 2026)
   --------------------------------------------------------------
   Brutalist editorial x industrial logistics. Cream calm. Dark
   weight. Rust as accent only. Built for the divi-child WP theme;
   loaded via wp_enqueue_style. ASCII-clean throughout.
   ============================================================== */

/* ===== 1. TOKENS ===== */
:root {
  --kws-dark-1: #050505;
  --kws-dark-2: #1A1A1A;
  --kws-dark-3: #2B2B2B;
  --kws-dark-4: #2B2B2B;
  --kws-cream: #1A1A1A;
  --kws-cream-deep: #2B2B2B;
  --kws-text: #F5F5F5;
  --kws-text-on-dark: #F5F5F5;
  --kws-muted: #9A9A9A;
  --kws-muted-dark: #9A9A9A;
  --kws-hairline: rgba(255,255,255,0.08);
  --kws-hairline-dark: rgba(255,255,255,0.08);
  --kws-charcoal-rule: rgba(255,255,255,0.12);
  --kws-accent: #D90429;
  --kws-accent-2: #FF1E1E;
  --kws-surface-rust: #1A1A1A;
  --kws-sodium: #D90429;

  --kws-display: 'Barlow Condensed', system-ui, sans-serif;
  --kws-body: 'Inter', system-ui, sans-serif;
  --kws-mono: 'JetBrains Mono', 'SF Mono', Menlo, monospace;
  --kws-serif: 'Playfair Display', Georgia, 'Times New Roman', serif;
}

/* ===== 2. PAGE WRAPPER ===== */
.kws-page {
  font-family: var(--kws-body);
  color: var(--kws-text);
  background: var(--kws-cream);
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
.kws-page * { box-sizing: border-box; }
.kws-page p { margin: 0; }
.kws-page h1, .kws-page h2, .kws-page h3, .kws-page h4, .kws-page h5, .kws-page h6 { margin: 0; font-weight: inherit; }
.kws-page ul { margin: 0; padding: 0; list-style: none; }
.kws-page a,
.kws-page a:link,
.kws-page a:visited,
.kws-page a:hover,
.kws-page a:active { color: inherit; text-decoration: none; border-color: inherit; }
.kws-page.dark { background: var(--kws-dark-1); color: var(--kws-text-on-dark); }

/* Hide Divi default chrome on KWS pages */
body[class*="page-template-template-kws-"] #main-header,
body[class*="page-template-template-kws-"] #main-footer,
body[class*="page-template-template-kws-"] #et-top-navigation,
body[class*="page-template-template-kws-"] .et_pb_section.et_pb_fullwidth_section { display: none !important; }
body[class*="page-template-template-kws-"] #page-container { padding-top: 0 !important; }
body[class*="page-template-template-kws-"] #et-main-area #main-content { background: var(--kws-cream); }
body[class*="page-template-template-kws-"].kws-dark-body #et-main-area #main-content { background: var(--kws-dark-1); }

/* ===== 3. INDUSTRIAL DIRECTIONAL MARK ===== */
.kws-mark {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--kws-display); font-weight: 700;
}
.kws-mark .bar { display: inline-block; width: 36px; height: 3px; background: currentColor; }
.kws-mark .head { font-size: 22px; line-height: 1; color: currentColor; }
.kws-page.dark .kws-mark { color: var(--kws-cream); }
.kws-page:not(.dark) .kws-mark { color: var(--kws-text); }

/* ===== 4. MASTHEAD ===== */
.kws-masthead {
  display: flex; align-items: center; justify-content: space-between;
  padding: 22px 64px;
  background: var(--kws-dark-1);
  color: var(--kws-text-on-dark);
  border-bottom: 1px solid var(--kws-hairline-dark);
}
.kws-masthead .stamp {
  font-family: var(--kws-mono);
  font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--kws-muted);
  flex: 0 0 auto;
}
.kws-masthead .stamp b { color: var(--kws-cream); font-weight: 600; }
.kws-wordmark {
  font-family: var(--kws-display); font-weight: 900;
  font-size: 28px; letter-spacing: 0.04em;
  color: var(--kws-cream);
  flex: 0 0 auto;
}
.kws-wordmark .dot { color: var(--kws-accent); }
.kws-nav { display: flex; gap: 36px; align-items: center; font-family: var(--kws-mono); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; flex: 0 0 auto; }
.kws-nav a { color: var(--kws-text-on-dark); padding-bottom: 4px; border-bottom: 1px solid transparent; }
.kws-nav a.active { color: var(--kws-cream); border-bottom-color: var(--kws-accent); }
.kws-nav .cta {
  border: 1px solid var(--kws-cream);
  padding: 10px 18px; color: var(--kws-cream);
}

/* ===== 5. CHAPTER MARK ===== */
.kws-chapter {
  font-family: var(--kws-mono); font-size: 11px; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--kws-accent);
  display: flex; align-items: center; gap: 16px;
}
.kws-chapter::before { content: ''; display: inline-block; width: 40px; height: 1px; background: var(--kws-accent); }
.kws-chapter .num { color: var(--kws-accent); font-weight: 600; }
.kws-chapter .label { color: var(--kws-muted-dark); }
.kws-page.dark .kws-chapter .label { color: var(--kws-muted); }

/* ===== 6. TYPE ===== */
.kws-display {
  font-family: var(--kws-display);
  font-weight: 800; line-height: 0.92;
  letter-spacing: -0.01em;
  text-transform: none;
}
.kws-h1 { font-size: clamp(72px, 13vw, 200px); }
.kws-h2 { font-size: clamp(56px, 9vw, 120px); }
.kws-h3 { font-size: clamp(40px, 6vw, 72px); }
.kws-h4 { font-size: clamp(32px, 4vw, 48px); }
.kws-eyebrow { font-family: var(--kws-mono); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--kws-muted-dark); }
.kws-page.dark .kws-eyebrow { color: var(--kws-muted); }
.kws-rust { color: var(--kws-accent); }

/* ===== 7. LEDGER ===== */
.kws-ledger { border-top: 1px solid var(--kws-hairline); }
.kws-page.dark .kws-ledger { border-top-color: var(--kws-hairline-dark); }
.kws-ledger-row {
  display: grid; grid-template-columns: 140px 1fr 1fr;
  align-items: baseline; padding: 22px 0; gap: 24px;
  border-bottom: 1px solid var(--kws-hairline);
}
.kws-page.dark .kws-ledger-row { border-bottom-color: var(--kws-hairline-dark); }
.kws-ledger-row .num { font-family: var(--kws-display); font-weight: 700; font-size: 56px; line-height: 1; }
.kws-ledger-row .lbl { font-family: var(--kws-body); font-weight: 600; font-size: 17px; }
.kws-ledger-row .desc { color: var(--kws-muted-dark); font-size: 14px; line-height: 1.55; }
.kws-page.dark .kws-ledger-row .desc { color: var(--kws-muted); }
.kws-ledger-row.cols-2 { grid-template-columns: 200px 1fr; }
.kws-ledger-row.cols-2 .lbl-strong { font-family: var(--kws-display); font-size: 18px; font-weight: 700; letter-spacing: -0.01em; text-transform: none; color: var(--kws-text); }
.kws-page.dark .kws-ledger-row.cols-2 .lbl-strong { color: var(--kws-cream); }
.kws-ledger-row.cols-2 .lbl-mono { font-family: var(--kws-mono); font-size: 13px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--kws-accent); }

/* ===== 8. PHOTO ZONE (placeholder) ===== */
.kws-photo {
  position: relative; overflow: hidden;
  background:
    radial-gradient(ellipse at 78% 18%, rgba(240,164,69,0.18), transparent 55%),
    repeating-linear-gradient(135deg, #14202b 0 14px, #101822 14px 28px);
  color: var(--kws-text-on-dark);
  min-height: 480px;
}
.kws-photo.has-image { background-image: var(--zone-image); background-size: cover; background-position: center; background-repeat: no-repeat; }
.kws-photo::after {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(ellipse at center, transparent 40%, rgba(0,0,0,0.55) 100%);
  pointer-events: none;
}
.kws-photo .meta {
  position: absolute; left: 20px; top: 20px;
  font-family: var(--kws-mono); font-size: 11px; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--kws-accent);
  z-index: 2;
}
.kws-photo .placeholder {
  position: absolute; right: 20px; bottom: 20px;
  font-family: var(--kws-mono); font-size: 11px; letter-spacing: 0.14em;
  text-transform: uppercase; color: rgba(216,222,229,0.55);
  z-index: 2;
}

/* ===== 9. BUTTONS ===== */
.kws-btn {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 16px 24px;
  font-family: var(--kws-mono); font-size: 12px; letter-spacing: 0.16em;
  text-transform: uppercase; font-weight: 600;
  border: 1px solid var(--kws-text);
  background: var(--kws-text); color: var(--kws-cream);
  cursor: pointer; line-height: 1;
}
.kws-btn .arr { font-family: var(--kws-display); font-weight: 800; font-size: 1.15em; margin-left: 4px; }
.kws-btn.ghost { background: transparent; color: var(--kws-text); }
.kws-btn.accent { background: var(--kws-accent); color: var(--kws-cream); border-color: var(--kws-accent); }
.kws-btn.on-dark { background: var(--kws-cream); color: var(--kws-text); border-color: var(--kws-cream); }
.kws-btn.on-dark.ghost { background: transparent; color: var(--kws-cream); }

/* hover: subtle background shift, no scale */
.kws-btn:hover { background: var(--kws-dark-3); border-color: var(--kws-dark-3); color: var(--kws-cream); transition: background-color 120ms ease, border-color 120ms ease, color 120ms ease; }
.kws-btn.ghost:hover { background: var(--kws-text); color: var(--kws-cream); border-color: var(--kws-text); }
.kws-btn.on-dark:hover { background: #FFFFFF; color: var(--kws-text); border-color: #FFFFFF; }
.kws-btn.on-dark.ghost:hover { background: rgba(255,255,255,0.08); color: var(--kws-cream); border-color: var(--kws-cream); }
.kws-btn.accent:hover { background: var(--kws-accent-2); border-color: var(--kws-accent-2); color: var(--kws-cream); }

/* ===== 10. FOOTER ===== */
.kws-footer {
  background: var(--kws-dark-1); color: var(--kws-text-on-dark);
  padding: 80px 64px 40px;
}
.kws-footer .top { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 56px; padding-bottom: 56px; border-bottom: 1px solid var(--kws-hairline-dark); }
.kws-footer h6 { font-family: var(--kws-mono); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--kws-muted); margin: 0 0 18px; font-weight: 500; }
.kws-footer ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.kws-footer ul a { color: var(--kws-cream); font-size: 14px; }
.kws-footer ul a:hover { color: var(--kws-accent); }
.kws-footer .mark { font-family: var(--kws-display); font-weight: 900; font-size: 56px; color: var(--kws-cream); letter-spacing: 0.02em; line-height: 0.9; display: inline-block; }
.kws-footer .mark .dot { color: var(--kws-accent); }
.kws-footer .desc { font-size: 14px; color: var(--kws-muted); line-height: 1.6; max-width: 360px; margin: 16px 0 24px; }
.kws-footer .contact { font-family: var(--kws-mono); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--kws-cream); }
.kws-footer .contact .email { color: var(--kws-muted); margin-top: 6px; display: block; }
.kws-footer .glaa {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 8px 12px; border: 1px solid var(--kws-hairline-dark);
  font-family: var(--kws-mono); font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--kws-muted);
  margin-top: 16px;
}
.kws-footer .glaa b { color: var(--kws-cream); }
.kws-footer .bottom { display: flex; justify-content: space-between; padding-top: 28px; font-family: var(--kws-mono); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--kws-muted); flex-wrap: wrap; gap: 16px; }

/* ===== 11. SECTIONS ===== */
.kws-section { padding: 120px 64px; }
.kws-section.dark { background: var(--kws-dark-1); color: var(--kws-text-on-dark); }
.kws-section.cream { background: var(--kws-cream); }
.kws-section.cream-deep { background: var(--kws-cream-deep); }
.kws-section.rust { background: var(--kws-surface-rust); color: var(--kws-cream); }

/* ===== 12. GRID HELPERS ===== */
.kws-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: start; }
.kws-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.kws-grid-2-1 { display: grid; grid-template-columns: 1fr 2fr; gap: 96px; align-items: start; }
.kws-grid-1-2 { display: grid; grid-template-columns: 2fr 1fr; gap: 96px; align-items: start; }

.kws-row-meta { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; padding: 28px 0; border-top: 1px solid var(--kws-hairline); border-bottom: 1px solid var(--kws-hairline); }
.kws-page.dark .kws-row-meta { border-color: var(--kws-hairline-dark); }
.kws-row-meta .cell { display: flex; flex-direction: column; gap: 6px; }
.kws-row-meta .cell .lbl { font-family: var(--kws-mono); font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--kws-muted-dark); }
.kws-page.dark .kws-row-meta .cell .lbl { color: var(--kws-muted); }
.kws-row-meta .cell .val { font-family: var(--kws-display); font-weight: 700; font-size: 36px; line-height: 1; }
.kws-row-meta .cell .val.rust { color: var(--kws-accent); }
.kws-row-meta .cell .val-sm { font-size: 22px; }

/* ===== 13. CATEGORY MANIFEST (3-col grid for 9 services) ===== */
.kws-cat { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--kws-hairline-dark); }
.kws-cat a {
  display: flex; align-items: baseline; justify-content: space-between;
  padding: 28px 24px;
  border-bottom: 1px solid var(--kws-hairline-dark);
  border-right: 1px solid var(--kws-hairline-dark);
  font-family: var(--kws-display); font-weight: 700; font-size: 32px;
  color: var(--kws-cream); gap: 16px;
}
.kws-cat a:nth-child(3n) { border-right: 0; }
.kws-cat a .num { font-family: var(--kws-mono); font-size: 11px; letter-spacing: 0.14em; color: var(--kws-muted); font-weight: 500; }
.kws-cat a:hover { color: var(--kws-accent); }

/* ===== 14. BREATH SECTION ===== */
.kws-breath { padding: 180px 64px; background: var(--kws-cream); }
.kws-breath .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: start; }
.kws-breath .line {
  font-family: var(--kws-mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--kws-muted-dark);
  max-width: 540px; line-height: 1.9;
}
.kws-breath .line b { color: var(--kws-text); font-weight: 600; }
.kws-breath .quote { font-family: var(--kws-display); font-weight: 700; font-size: 72px; line-height: 1.05; color: var(--kws-text); margin-top: 32px; max-width: 980px; }

/* ===== 15. PAGE HERO (smaller than home, used by 8 templates) ===== */
.kws-pagehero {
  display: grid; grid-template-columns: 1.2fr 1fr; min-height: 620px;
  background: var(--kws-dark-1); color: var(--kws-text-on-dark);
}
.kws-pagehero .left { padding: 80px 64px; display: flex; flex-direction: column; justify-content: space-between; gap: 64px; }
.kws-pagehero .right { position: relative; min-height: 620px; }
.kws-pagehero .right .kws-photo { position: absolute; inset: 0; min-height: 0; height: 100%; }
.kws-pagehero .crumb { font-family: var(--kws-mono); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--kws-muted); }
.kws-pagehero h1 { font-family: var(--kws-display); font-weight: 800; line-height: 0.92; font-size: clamp(64px, 9vw, 132px); margin: 24px 0 0; color: var(--kws-cream); letter-spacing: -0.01em; }
.kws-pagehero .sub { color: var(--kws-text-on-dark); max-width: 480px; font-size: 17px; line-height: 1.55; margin: 0; }
.kws-pagehero .meta-grid { margin-top: 32px; display: grid; grid-template-columns: 1fr 1fr; gap: 24px; padding-top: 24px; border-top: 1px solid var(--kws-hairline-dark); }
.kws-pagehero .meta-grid .meta-cell .lbl { font-family: var(--kws-mono); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--kws-muted); }
.kws-pagehero .meta-grid .meta-cell .val { font-family: var(--kws-display); font-weight: 700; font-size: 32px; color: var(--kws-cream); margin-top: 6px; line-height: 1; }

/* ===== 16. FORM ===== */
.kws-form .field { display: flex; flex-direction: column; gap: 8px; margin-bottom: 24px; }
.kws-form label { font-family: var(--kws-mono); font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--kws-muted-dark); }
.kws-form input, .kws-form textarea, .kws-form select {
  background: transparent; border: 0; border-bottom: 1px solid var(--kws-hairline);
  font-family: var(--kws-body); font-size: 18px; color: var(--kws-text);
  padding: 12px 0; outline: none;
}
.kws-form input:focus, .kws-form textarea:focus, .kws-form select:focus { border-bottom-color: var(--kws-accent); }
.kws-form .row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.kws-form .req { color: var(--kws-accent); }
.kws-page.dark .kws-form input, .kws-page.dark .kws-form textarea, .kws-page.dark .kws-form select {
  color: var(--kws-cream); border-bottom-color: var(--kws-hairline-dark);
}

/* ===== 17. CARD ===== */
.kws-card { padding: 32px; background: var(--kws-cream-deep); border: 1px solid var(--kws-hairline); border-top: 3px solid var(--kws-accent); display: flex; flex-direction: column; gap: 12px; }
.kws-card h4 { font-family: var(--kws-display); font-weight: 700; font-size: 32px; line-height: 1; margin: 0; color: var(--kws-text); }
.kws-card .body { color: var(--kws-muted-dark); font-size: 15px; line-height: 1.55; }
.kws-card .more { font-family: var(--kws-mono); font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--kws-accent); margin-top: 8px; }
.kws-page.dark .kws-card { background: var(--kws-dark-3); border-color: var(--kws-hairline-dark); }
.kws-page.dark .kws-card h4 { color: var(--kws-cream); }
.kws-page.dark .kws-card .body { color: var(--kws-text-on-dark); }

/* ===== 18. SERVICE ROW (Hire Staff hub) ===== */
.kws-service-row {
  display: grid; grid-template-columns: 80px 1fr 240px auto;
  gap: 32px; padding: 40px 0;
  border-bottom: 1px solid var(--kws-charcoal-rule);
  align-items: baseline; color: var(--kws-text);
}
.kws-service-row:last-child { border-bottom: 0; }
.kws-service-row .num { font-family: var(--kws-mono); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--kws-accent); font-weight: 600; }
.kws-service-row .title { font-family: var(--kws-display); font-weight: 800; font-size: 48px; line-height: 1; color: var(--kws-accent); letter-spacing: -0.01em; }
.kws-service-row .desc { color: var(--kws-muted-dark); font-size: 15px; line-height: 1.55; margin-top: 12px; max-width: 520px; }
.kws-service-row .meta { font-family: var(--kws-mono); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--kws-muted-dark); }
.kws-service-row:hover .kws-mark .head { transform: translateX(4px); transition: transform 120ms ease; }

/* ===== 19. JOB LISTING TABLE ===== */
.kws-jobs { border-top: 1px solid var(--kws-hairline); }
.kws-jobs .job { display: grid; grid-template-columns: 80px 1.4fr 1fr 0.8fr 0.6fr auto; padding: 22px 0; border-bottom: 1px solid var(--kws-hairline); align-items: baseline; gap: 24px; }
.kws-jobs .job .ref { font-family: var(--kws-mono); font-size: 11px; letter-spacing: 0.14em; color: var(--kws-muted-dark); }
.kws-jobs .job .title { font-family: var(--kws-display); font-weight: 700; font-size: 26px; line-height: 1; }
.kws-jobs .job .meta { font-family: var(--kws-mono); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--kws-muted-dark); }
.kws-jobs .job .pay { font-family: var(--kws-display); font-weight: 600; font-size: 22px; }
.kws-jobs .job .tag { font-family: var(--kws-mono); font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--kws-accent); border: 1px solid var(--kws-accent); padding: 4px 8px; justify-self: start; }
.kws-jobs .job .arr { font-family: var(--kws-display); font-weight: 700; font-size: 22px; color: var(--kws-text); }

/* ===== 20. LOCATION GRID (find-work + service-detail) ===== */
.kws-loc-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--kws-hairline-dark); }
.kws-loc-grid .cell { padding: 40px 32px; border-right: 1px solid var(--kws-hairline-dark); border-bottom: 1px solid var(--kws-hairline-dark); }
.kws-loc-grid .cell:nth-child(3n) { border-right: 0; }
.kws-loc-grid .cell .name { font-family: var(--kws-display); font-weight: 800; font-size: 48px; color: var(--kws-cream); line-height: 1; letter-spacing: -0.01em; }
.kws-loc-grid .cell .meta { font-size: 14px; color: var(--kws-text-on-dark); margin-top: 12px; }

/* find-work: plain location text grid (informational only) */
.kws-loc-list { display: grid; grid-template-columns: 1fr 1fr; column-gap: 48px; margin-top: 48px; border-top: 1px solid var(--kws-hairline-dark); }
.kws-loc-list .item { padding: 18px 0; border-bottom: 1px solid var(--kws-hairline-dark); font-family: var(--kws-display); font-weight: 600; font-size: 24px; line-height: 1; color: var(--kws-cream); }

/* service-detail location chips */
.kws-loc-chips { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 24px; font-family: var(--kws-mono); font-size: 13px; letter-spacing: 0.10em; text-transform: uppercase; color: var(--kws-text-on-dark); }
.kws-loc-chips a { padding: 8px 0; border-bottom: 1px solid var(--kws-hairline-dark); color: var(--kws-accent); }
.kws-loc-chips a:hover { color: var(--kws-cream); }

/* ===== 21. SCENARIOS (home only) ===== */
.kws-scenarios { display: flex; flex-direction: column; gap: 96px; margin-top: 64px; }
.kws-scenario { display: grid; grid-template-columns: 1.2fr 1fr; gap: 64px; align-items: center; }
.kws-scenario.flip { grid-template-columns: 1fr 1.2fr; }
.kws-scenario .body { display: flex; flex-direction: column; gap: 20px; }
.kws-scenario .num { font-family: var(--kws-display); font-weight: 800; font-size: 64px; color: var(--kws-accent); line-height: 1; }
.kws-scenario .role { font-family: var(--kws-mono); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--kws-muted-dark); }
.kws-scenario .head { font-family: var(--kws-display); font-weight: 800; font-size: 48px; line-height: 1.05; max-width: 520px; letter-spacing: -0.01em; }
.kws-scenario .desc { color: var(--kws-muted-dark); font-size: 15px; line-height: 1.6; max-width: 480px; }

/* ===== 22. CTA BAND (full-bleed) ===== */
.kws-cta { background: var(--kws-dark-1); padding: 140px 64px; border-top: 1px solid var(--kws-hairline-dark); color: var(--kws-text-on-dark); }
.kws-cta .mast { display: grid; grid-template-columns: 1fr auto; gap: 64px; margin-bottom: 48px; align-items: baseline; }
.kws-cta .mast .left { color: var(--kws-accent); }
.kws-cta .mast .right { color: var(--kws-muted); }
.kws-cta .headline { font-family: var(--kws-display); font-weight: 800; font-size: clamp(64px, 13vw, 200px); line-height: 0.92; color: var(--kws-cream); letter-spacing: -0.01em; }
.kws-cta .actions { display: flex; gap: 16px; margin-top: 64px; flex-wrap: wrap; }
.kws-cta.compact { padding: 100px 64px; }
.kws-cta.compact .headline { font-size: clamp(56px, 9vw, 104px); }
.kws-cta.compact .actions { margin-top: 40px; }

/* ===== 23. RESPONSIVE ===== */
@media (max-width: 1100px) {
  .kws-section { padding: 96px 48px; }
  .kws-cta { padding: 120px 48px; }
  .kws-grid-2, .kws-grid-2-1, .kws-grid-1-2 { grid-template-columns: 1fr; gap: 48px; }
  .kws-grid-3 { grid-template-columns: 1fr 1fr; }
  .kws-pagehero { grid-template-columns: 1fr; min-height: auto; }
  .kws-pagehero .right { min-height: 360px; }
  .kws-cat { grid-template-columns: 1fr 1fr; }
  .kws-cat a:nth-child(3n) { border-right: 1px solid var(--kws-hairline-dark); }
  .kws-cat a:nth-child(2n) { border-right: 0; }
  .kws-loc-grid { grid-template-columns: 1fr 1fr; }
  .kws-loc-grid .cell:nth-child(3n) { border-right: 1px solid var(--kws-hairline-dark); }
  .kws-loc-grid .cell:nth-child(2n) { border-right: 0; }
  .kws-scenario, .kws-scenario.flip { grid-template-columns: 1fr; }
  .kws-service-row { grid-template-columns: 60px 1fr auto; gap: 24px; }
  .kws-service-row .meta { display: none; }
  .kws-row-meta { grid-template-columns: 1fr 1fr; }
  .kws-loc-chips { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 720px) {
  .kws-section { padding: 80px 24px; }
  .kws-cta { padding: 96px 24px; }
  .kws-masthead { padding: 18px 24px; flex-wrap: wrap; gap: 16px; justify-content: center; }
  .kws-masthead .stamp { display: none; }
  .kws-nav { gap: 18px; flex-wrap: wrap; justify-content: center; font-size: 11px; }
  .kws-nav a { padding-bottom: 2px; }
  .kws-nav .cta { padding: 8px 12px; }
  .kws-footer { padding: 64px 24px 32px; }
  .kws-footer .top { grid-template-columns: 1fr; gap: 48px; }
  .kws-footer .bottom { flex-direction: column; gap: 12px; }
  .kws-grid-3 { grid-template-columns: 1fr; }
  .kws-cat { grid-template-columns: 1fr; }
  .kws-cat a { border-right: 0 !important; }
  .kws-loc-grid { grid-template-columns: 1fr; }
  .kws-loc-grid .cell { border-right: 0 !important; }
  .kws-loc-list { grid-template-columns: 1fr; }
  .kws-loc-chips { grid-template-columns: 1fr 1fr; }
  .kws-pagehero .left { padding: 64px 24px; }
  .kws-pagehero .meta-grid { grid-template-columns: 1fr 1fr; }
  .kws-row-meta { grid-template-columns: 1fr; }
  .kws-row-meta .cell .val { font-size: 28px; }
  .kws-ledger-row { grid-template-columns: 1fr !important; gap: 8px; padding: 18px 0; }
  .kws-ledger-row.cols-2 { grid-template-columns: 1fr; }
  .kws-service-row { grid-template-columns: 1fr; gap: 16px; padding: 28px 0; }
  .kws-service-row .num { font-size: 11px; }
  .kws-service-row .title { font-size: 36px; }
  .kws-form .row-2 { grid-template-columns: 1fr; gap: 0; }
  .kws-breath { padding: 96px 24px; }
  .kws-breath .grid-2 { grid-template-columns: 1fr; }
  .kws-breath .quote { font-size: 40px; }
  .kws-cta .mast { grid-template-columns: 1fr; gap: 8px; margin-bottom: 32px; }
  .kws-cta .actions { gap: 12px; }
}


/* ===== 24. IMAGE OVERLAY TUNING (added when imagery lives in photo zones) ===== */
.kws-photo.has-image { background-image: var(--zone-image), linear-gradient(180deg, rgba(8,9,12,0.20) 0%, rgba(8,9,12,0.60) 100%); background-size: cover, cover; background-position: center, center; background-repeat: no-repeat, no-repeat; background-blend-mode: normal, multiply; }
.kws-photo.has-image::after { background: linear-gradient(180deg, rgba(8,9,12,0.10) 0%, rgba(8,9,12,0.18) 30%, rgba(8,9,12,0.58) 100%), radial-gradient(ellipse at center, transparent 50%, rgba(8,9,12,0.55) 100%); }
.kws-photo.has-image .meta { color: var(--kws-accent); text-shadow: 0 1px 2px rgba(0,0,0,0.55); }
.kws-photo.has-image .placeholder { color: rgba(245,242,235,0.88); text-shadow: 0 1px 2px rgba(0,0,0,0.6); }
/* page hero right photo: image fills the half. Title sits on the left dark column so no overlap, but keep the right edge slightly darker for visual weight */
.kws-pagehero .right .kws-photo.has-image::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8,9,12,0.55) 0%, rgba(8,9,12,0.05) 25%, rgba(8,9,12,0) 60%, rgba(8,9,12,0.30) 100%); pointer-events: none; z-index: 1; }


/* ===== 25. CP6.10 CHROME SUPPRESS - hide Divi top-header bar and the duplicate legacy footer rendered into #et-main-area on v3 template pages ===== */
body[class*="page-template-template-kws-"] #top-header,
body[class*="page-template-template-kws-"] #et-secondary-nav,
body[class*="page-template-template-kws-"] #et-info { display: none !important; }
body[class*="page-template-template-kws-"] #et-main-area > .kws-footer,
body[class*="page-template-template-kws-"] #et-main-area > div.kws-footer { display: none !important; }
body[class*="page-template-template-kws-"] #page-container { padding-top: 0 !important; }
body[class*="page-template-template-kws-"].admin-bar #page-container { padding-top: 32px !important; }
@media (max-width: 782px) { body[class*="page-template-template-kws-"].admin-bar #page-container { padding-top: 46px !important; } }


/* ===== 26. CONTACT PAGE - serif headline + bordered row-meta + clean form ===== */
.kws-page .kws-contact-headline, h1.kws-contact-headline { font-family: var(--kws-serif) !important; font-weight: 800 !important; font-size: clamp(64px, 9vw, 132px) !important; line-height: 1.0 !important; letter-spacing: -0.01em !important; color: var(--kws-cream) !important; font-style: normal !important; }
.kws-contact-headline .kws-rust { color: var(--kws-accent); font-style: normal; }
.kws-contact-row { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--kws-hairline-dark); border-bottom: 1px solid var(--kws-hairline-dark); }
.kws-contact-row .cell { padding: 32px 32px 32px 32px; border-right: 1px solid var(--kws-hairline-dark); display: flex; flex-direction: column; gap: 14px; min-height: 140px; }
.kws-contact-row .cell:first-child { padding-left: 0; }
.kws-contact-row .cell:last-child { border-right: 0; padding-right: 0; }
.kws-contact-row .cell .lbl { font-family: var(--kws-mono); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--kws-muted); font-weight: 500; }
.kws-contact-row .cell .val { font-family: var(--kws-display); font-weight: 800; font-size: 36px; line-height: 1; color: var(--kws-cream); letter-spacing: -0.01em; }
.kws-contact-row .cell .val.rust { color: var(--kws-accent); }
.kws-contact-row .cell .val-text { font-family: var(--kws-display); font-weight: 700; font-size: 22px; line-height: 1.15; color: var(--kws-cream); letter-spacing: -0.005em; }
.kws-page .kws-contact-intro-headline { font-family: var(--kws-serif) !important; font-weight: 700 !important; font-size: clamp(40px, 5vw, 56px) !important; line-height: 1.05 !important; letter-spacing: -0.01em !important; color: var(--kws-text) !important; font-style: normal !important; }
.kws-contact-form-clean .ff-default, .kws-contact-form-clean .frm-fluent-form { background: transparent !important; padding: 0 !important; border: 0 !important; box-shadow: none !important; }
.kws-contact-form-clean .ff-el-group { margin-bottom: 28px !important; }
.kws-contact-form-clean .ff-el-input--label label, .kws-contact-form-clean label { font-family: var(--kws-mono) !important; font-size: 11px !important; letter-spacing: 0.16em !important; text-transform: uppercase !important; color: var(--kws-muted-dark) !important; font-weight: 500 !important; }
.kws-contact-form-clean input[type="text"], .kws-contact-form-clean input[type="email"], .kws-contact-form-clean input[type="tel"], .kws-contact-form-clean textarea, .kws-contact-form-clean select { background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--kws-hairline) !important; border-radius: 0 !important; box-shadow: none !important; font-family: var(--kws-body) !important; font-size: 18px !important; color: var(--kws-text) !important; padding: 12px 0 !important; outline: none !important; width: 100% !important; }
.kws-contact-form-clean input:focus, .kws-contact-form-clean textarea:focus, .kws-contact-form-clean select:focus { border-bottom-color: var(--kws-accent) !important; }
.kws-contact-form-clean .ff_submit_btn_wrapper button, .kws-contact-form-clean button[type="submit"] { background: var(--kws-text) !important; color: var(--kws-cream) !important; border: 1px solid var(--kws-text) !important; padding: 16px 24px !important; font-family: var(--kws-mono) !important; font-size: 12px !important; letter-spacing: 0.16em !important; text-transform: uppercase !important; font-weight: 600 !important; border-radius: 0 !important; cursor: pointer !important; }
@media (max-width: 1100px) { .kws-contact-row { grid-template-columns: 1fr 1fr; } .kws-contact-row .cell:nth-child(2) { border-right: 0; padding-right: 0; } .kws-contact-row .cell:nth-child(3) { padding-left: 0; border-top: 1px solid var(--kws-hairline-dark); } .kws-contact-row .cell:nth-child(4) { border-top: 1px solid var(--kws-hairline-dark); } }
@media (max-width: 720px) { .kws-contact-row { grid-template-columns: 1fr; } .kws-contact-row .cell { border-right: 0 !important; padding: 24px 0 !important; border-top: 1px solid var(--kws-hairline-dark); } .kws-contact-row .cell:first-child { border-top: 0; } }


/* ===== 27. CP6.11 FLUENT FORM CONTACT OVERRIDES (more specific than FF defaults) ===== */
.kws-contact-form-clean .frm-fluent-form, .kws-contact-form-clean .ff-form-loaded { background: transparent !important; padding: 0 !important; border: 0 !important; box-shadow: none !important; max-width: 720px; }
.kws-contact-form-clean .frm-fluent-form .ff-el-input--label label { font-family: var(--kws-mono) !important; font-size: 11px !important; letter-spacing: 0.16em !important; text-transform: uppercase !important; color: var(--kws-muted-dark) !important; font-weight: 500 !important; margin-bottom: 6px !important; }
.kws-contact-form-clean .frm-fluent-form input[type="text"], .kws-contact-form-clean .frm-fluent-form input[type="email"], .kws-contact-form-clean .frm-fluent-form input[type="tel"], .kws-contact-form-clean .frm-fluent-form textarea, .kws-contact-form-clean .frm-fluent-form select, .kws-contact-form-clean .frm-fluent-form .ff-el-form-control { background: transparent !important; background-color: transparent !important; border: 0 !important; border-bottom: 1px solid var(--kws-hairline) !important; border-radius: 0 !important; box-shadow: none !important; font-family: var(--kws-body) !important; font-size: 18px !important; color: var(--kws-text) !important; padding: 12px 0 !important; outline: none !important; height: auto !important; min-height: 48px; }
.kws-contact-form-clean .frm-fluent-form input::placeholder, .kws-contact-form-clean .frm-fluent-form textarea::placeholder, .kws-contact-form-clean .frm-fluent-form .ff-el-form-control::placeholder { color: var(--kws-muted) !important; opacity: 0.7 !important; }
.kws-contact-form-clean .frm-fluent-form input:focus, .kws-contact-form-clean .frm-fluent-form textarea:focus, .kws-contact-form-clean .frm-fluent-form select:focus, .kws-contact-form-clean .frm-fluent-form .ff-el-form-control:focus { border-bottom-color: var(--kws-accent) !important; box-shadow: none !important; }
.kws-contact-form-clean .frm-fluent-form .ff-el-group, .kws-contact-form-clean .frm-fluent-form .ff-el-input--input { margin-bottom: 28px !important; }
.kws-contact-form-clean .frm-fluent-form .asterisk-right, .kws-contact-form-clean .frm-fluent-form .ff-el-is-required.asterisk-right > label::after { color: var(--kws-accent) !important; }
.kws-contact-form-clean .frm-fluent-form .ff_submit_btn_wrapper button, .kws-contact-form-clean .frm-fluent-form button[type="submit"], .kws-contact-form-clean .frm-fluent-form .wpf_has_custom_css { background: var(--kws-text) !important; background-color: var(--kws-text) !important; color: var(--kws-cream) !important; border: 1px solid var(--kws-text) !important; padding: 16px 28px !important; font-family: var(--kws-mono) !important; font-size: 12px !important; letter-spacing: 0.16em !important; text-transform: uppercase !important; font-weight: 600 !important; border-radius: 0 !important; cursor: pointer !important; box-shadow: none !important; min-height: auto !important; height: auto !important; line-height: 1 !important; }
.kws-contact-form-clean .frm-fluent-form .ff_submit_btn_wrapper button:hover { background: var(--kws-dark-3) !important; border-color: var(--kws-dark-3) !important; }
.kws-contact-form-clean .frm-fluent-form .ff-message-success, .kws-contact-form-clean .frm-fluent-form .ff-errors-in-stack { font-family: var(--kws-body) !important; }


/* ===== 28. CP6.12 CONSENT CHECKBOX - visible 16px tickbox, muted footnote-style label ===== */
.kws-contact-form-clean .frm-fluent-form .ff-el-form-check { display: flex; align-items: flex-start; gap: 12px; margin-top: 8px; margin-bottom: 24px; padding: 0; border: 0; }
.kws-contact-form-clean .frm-fluent-form .ff-el-form-check-label { display: flex; align-items: flex-start; gap: 12px; font-family: var(--kws-body) !important; font-size: 12px !important; line-height: 1.55 !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--kws-muted-dark) !important; font-weight: 400 !important; cursor: pointer; max-width: 560px; margin: 0 !important; }
.kws-contact-form-clean .frm-fluent-form .ff-el-form-check-label span { font-weight: 400 !important; color: var(--kws-muted-dark) !important; }
.kws-contact-form-clean .frm-fluent-form .ff-el-form-check-label a { color: var(--kws-text) !important; text-decoration: underline !important; text-underline-offset: 2px; }
.kws-contact-form-clean .frm-fluent-form .ff-el-form-check-label a:hover { color: var(--kws-accent) !important; }
.kws-contact-form-clean .frm-fluent-form .ff-el-form-check-input, .kws-contact-form-clean .frm-fluent-form input[type="checkbox"], .kws-contact-form-clean .frm-fluent-form input[name*="gdpr"], .kws-contact-form-clean .frm-fluent-form input[name*="consent"] { -webkit-appearance: none !important; -moz-appearance: none !important; appearance: none !important; width: 16px !important; min-width: 16px !important; height: 16px !important; min-height: 16px !important; padding: 0 !important; margin: 2px 0 0 0 !important; background: transparent !important; background-color: transparent !important; border: 1px solid var(--kws-muted-dark) !important; border-radius: 0 !important; cursor: pointer; flex: 0 0 16px; position: relative; outline: none !important; box-shadow: none !important; }
.kws-contact-form-clean .frm-fluent-form .ff-el-form-check-input:checked, .kws-contact-form-clean .frm-fluent-form input[type="checkbox"]:checked, .kws-contact-form-clean .frm-fluent-form input[name*="gdpr"]:checked, .kws-contact-form-clean .frm-fluent-form input[name*="consent"]:checked { background: var(--kws-text) !important; background-color: var(--kws-text) !important; border-color: var(--kws-text) !important; }
.kws-contact-form-clean .frm-fluent-form .ff-el-form-check-input:checked::after, .kws-contact-form-clean .frm-fluent-form input[type="checkbox"]:checked::after, .kws-contact-form-clean .frm-fluent-form input[name*="gdpr"]:checked::after, .kws-contact-form-clean .frm-fluent-form input[name*="consent"]:checked::after { content: ""; position: absolute; left: 4px; top: 0px; width: 5px; height: 10px; border: solid var(--kws-cream); border-width: 0 2px 2px 0; transform: rotate(45deg); }
.kws-contact-form-clean .frm-fluent-form .ff-el-form-check-input:focus, .kws-contact-form-clean .frm-fluent-form input[type="checkbox"]:focus { border-color: var(--kws-accent) !important; outline: none !important; box-shadow: none !important; }
/* hide the asterisk row-label for the gdpr field so it does not read as a section heading */
.kws-contact-form-clean .frm-fluent-form .ff_gdpr_acceptance > label, .kws-contact-form-clean .frm-fluent-form .ff-el-input--label:has(+ .ff-el-input--content > .ff-el-form-check) { display: none !important; }


/* ===== 29. CP6.13 CONTACT POLISH - cream sections inherit text color, consent wrapper border null ===== */
.kws-page .kws-section.cream { color: var(--kws-text); }
.kws-page .kws-section.cream a { color: inherit; }
.kws-contact-form-clean .frm-fluent-form .ff-el-input--content:has(.ff-el-form-check), .kws-contact-form-clean .frm-fluent-form .ff-el-form-check { border: 0 !important; border-bottom: 0 !important; padding: 0 !important; background: transparent !important; }
/* hide the helper label row above the gdpr field that was rendering as an asterisk */
.kws-contact-form-clean .frm-fluent-form .ff-el-input--label:has(+ .ff-el-input--content > .ff-el-form-check), .kws-contact-form-clean .frm-fluent-form [data-name="gdpr_consent"] ~ .ff-el-input--label, .kws-contact-form-clean .frm-fluent-form .ff_gdpr_acceptance > .ff-el-input--label { display: none !important; }


/* ===== 30. CP6.14 CONSENT VISIBILITY - force checkbox visible, strip wrapper outlines ===== */
.kws-contact-form-clean .frm-fluent-form .ff-el-form-check-input, .kws-contact-form-clean .frm-fluent-form input[type="checkbox"], .kws-contact-form-clean .frm-fluent-form input[name*="gdpr"], .kws-contact-form-clean .frm-fluent-form input[name="gdpr_consent"] { opacity: 1 !important; visibility: visible !important; position: static !important; left: auto !important; pointer-events: auto !important; clip: auto !important; clip-path: none !important; }
.kws-contact-form-clean .frm-fluent-form .ff_list_buttons, .kws-contact-form-clean .frm-fluent-form .ff_list_buttons .ff-el-form-check, .kws-contact-form-clean .frm-fluent-form .ff_list_buttons .ff-el-input--content, .kws-contact-form-clean .frm-fluent-form [data-name="gdpr_consent"], .kws-contact-form-clean .frm-fluent-form [data-name="gdpr_consent"] + *, .kws-contact-form-clean .frm-fluent-form .ff-el-input--content:has(.ff-el-form-check-label) { background: transparent !important; background-color: transparent !important; border: 0 !important; border-bottom: 0 !important; box-shadow: none !important; padding: 0 !important; }


/* ===== 31. CP6.15 CHECKBOX VISIBLE - heavier border, kill any ff pseudo overlay ===== */
.kws-contact-form-clean .frm-fluent-form .ff-el-form-check-input, .kws-contact-form-clean .frm-fluent-form input[name="gdpr_consent"] { border: 0 !important; background: var(--kws-cream-deep) !important; box-shadow: inset 0 0 0 1.5px var(--kws-text) !important; -webkit-appearance: none !important; appearance: none !important; }
.kws-contact-form-clean .frm-fluent-form .ff-el-form-check-input::before, .kws-contact-form-clean .frm-fluent-form .ff-el-form-check-input::after, .kws-contact-form-clean .frm-fluent-form .ff-el-form-check-label::before { display: none !important; content: none !important; }
.kws-contact-form-clean .frm-fluent-form .ff-el-form-check-input:checked::after, .kws-contact-form-clean .frm-fluent-form input[name="gdpr_consent"]:checked::after { content: "" !important; display: block !important; position: absolute !important; left: 4px !important; top: 0px !important; width: 5px !important; height: 10px !important; border: solid var(--kws-cream) !important; border-width: 0 2px 2px 0 !important; transform: rotate(45deg) !important; }


/* ===== 32. CP6.16 NATIVE CHECKBOX - native rendering with accent-color ===== */
.kws-contact-form-clean .frm-fluent-form .ff-el-form-check-input, .kws-contact-form-clean .frm-fluent-form input[name="gdpr_consent"] { -webkit-appearance: auto !important; -moz-appearance: auto !important; appearance: auto !important; accent-color: var(--kws-text) !important; width: 16px !important; height: 16px !important; min-width: 16px !important; min-height: 16px !important; max-width: 16px; max-height: 16px; border: 0 !important; background: initial !important; box-shadow: none !important; padding: 0 !important; margin: 3px 0 0 0 !important; flex: 0 0 16px; cursor: pointer; opacity: 1 !important; visibility: visible !important; }
.kws-contact-form-clean .frm-fluent-form .ff-el-form-check-input::before, .kws-contact-form-clean .frm-fluent-form .ff-el-form-check-input::after { content: none !important; display: none !important; }


/* ===== 33. CP6.17 STRIP CATALOGUE NUMBERING + IMAGE CAPTIONS site-wide ===== */
.kws-chapter .num { display: none !important; }
.kws-chapter .label { color: var(--kws-muted-dark); }
.kws-chapter::before { width: 40px; }
.kws-photo .meta, .kws-photo .placeholder { display: none !important; }
.kws-pagehero .right .kws-photo .meta, .kws-pagehero .right .kws-photo .placeholder { display: none !important; }


/* ===== 34. CP6.18 EXTRA CATALOGUE - hide manifest cell numbers and any leftover kws-eyebrow with NN / prefix ===== */
.kws-cat .num { display: none !important; }
.kws-photo > .meta, .kws-photo > .placeholder { display: none !important; }


/* ===== 35. CP6.19 BRAND PALETTE REFACTOR - dark crimson industrial system ===== */
/* Section + page baseline: keep everything on the dark canvas */
.kws-page, .kws-page.dark, body[class*="page-template-template-kws-"] #et-main-area, body[class*="page-template-template-kws-"] #et-main-area #main-content { background: var(--kws-dark-1) !important; color: var(--kws-text) !important; }
.kws-section.cream { background: var(--kws-dark-2) !important; color: var(--kws-text); }
.kws-section.cream-deep, .kws-section.dark { background: var(--kws-dark-1); color: var(--kws-text); }
.kws-breath { background: var(--kws-dark-2); }
.kws-breath .quote, .kws-breath .line b { color: var(--kws-text); }
.kws-breath .line { color: var(--kws-muted); }
/* Row meta + ledger borders should use light hairlines on dark */
.kws-row-meta, .kws-page .kws-row-meta { border-color: var(--kws-hairline) !important; }
.kws-row-meta .cell .lbl { color: var(--kws-muted) !important; }
.kws-row-meta .cell .val { color: var(--kws-text); }
.kws-ledger, .kws-page .kws-ledger { border-top-color: var(--kws-hairline) !important; }
.kws-ledger-row, .kws-page .kws-ledger-row { border-bottom-color: var(--kws-hairline) !important; }
.kws-ledger-row .desc, .kws-page .kws-ledger-row .desc { color: var(--kws-muted); }
/* Cards / panels - graphite surface with subtle border, hover slight brighten */
.kws-card { background: var(--kws-dark-3) !important; border: 1px solid rgba(255,255,255,0.06) !important; border-top: 3px solid var(--kws-accent) !important; }
.kws-card h4 { color: var(--kws-text) !important; }
.kws-card .body { color: var(--kws-muted); }
.kws-card:hover { border-color: rgba(255,255,255,0.12) !important; }
/* Buttons - primary crimson, secondary transparent with white border */
.kws-btn, .kws-btn.accent, .kws-btn.on-dark { background: var(--kws-accent) !important; color: var(--kws-text) !important; border: 1px solid var(--kws-accent) !important; padding: 16px 28px !important; }
.kws-btn.ghost, .kws-btn.on-dark.ghost { background: transparent !important; color: var(--kws-text) !important; border: 1px solid rgba(255,255,255,0.15) !important; }
.kws-btn:hover, .kws-btn.accent:hover, .kws-btn.on-dark:hover { background: var(--kws-accent-2) !important; border-color: var(--kws-accent-2) !important; color: var(--kws-text) !important; }
.kws-btn.ghost:hover, .kws-btn.on-dark.ghost:hover { background: transparent !important; border-color: var(--kws-accent) !important; color: var(--kws-text) !important; }
/* Service rows (hire-staff hub) - charcoal-rule lines need refresh */
.kws-service-row { border-bottom: 1px solid var(--kws-hairline) !important; color: var(--kws-text); }
.kws-service-row .title { color: var(--kws-accent) !important; }
.kws-service-row .desc { color: var(--kws-muted); }
.kws-service-row .meta { color: var(--kws-muted); }
/* Coverage 9-category manifest - dark borders + hover crimson */
.kws-cat { border-top-color: var(--kws-hairline) !important; }
.kws-cat a { border-color: var(--kws-hairline) !important; color: var(--kws-text) !important; }
.kws-cat a:hover { color: var(--kws-accent) !important; background: rgba(255,255,255,0.02); }
/* Location grid + chips */
.kws-loc-grid { border-color: var(--kws-hairline) !important; }
.kws-loc-grid .cell { border-color: var(--kws-hairline) !important; }
.kws-loc-grid .cell .name { color: var(--kws-text); }
.kws-loc-grid .cell .meta { color: var(--kws-muted); }
.kws-loc-list { border-top-color: var(--kws-hairline) !important; }
.kws-loc-list .item { border-color: var(--kws-hairline) !important; color: var(--kws-text); }
.kws-loc-chips a { border-color: var(--kws-hairline) !important; color: var(--kws-accent) !important; }
.kws-loc-chips a:hover { color: var(--kws-text) !important; }
/* Trust ledger anchor + plates use crimson accent */
.kws-rust { color: var(--kws-accent) !important; }
.kws-chapter, .kws-chapter::before { color: var(--kws-accent); }
.kws-chapter::before { background: var(--kws-accent); }
/* Form section - graphite panel surrounding form */
.kws-contact-form-clean { background: var(--kws-dark-3); padding: 48px 56px; border: 1px solid rgba(255,255,255,0.06); }
.kws-contact-form-clean .frm-fluent-form input[type="text"], .kws-contact-form-clean .frm-fluent-form input[type="email"], .kws-contact-form-clean .frm-fluent-form input[type="tel"], .kws-contact-form-clean .frm-fluent-form textarea, .kws-contact-form-clean .frm-fluent-form select, .kws-contact-form-clean .frm-fluent-form .ff-el-form-control { background: transparent !important; border: 1px solid rgba(255,255,255,0.12) !important; border-radius: 0 !important; color: var(--kws-text) !important; padding: 14px 16px !important; }
.kws-contact-form-clean .frm-fluent-form input::placeholder, .kws-contact-form-clean .frm-fluent-form textarea::placeholder { color: var(--kws-muted) !important; }
.kws-contact-form-clean .frm-fluent-form input:focus, .kws-contact-form-clean .frm-fluent-form textarea:focus, .kws-contact-form-clean .frm-fluent-form select:focus { border-color: var(--kws-accent) !important; }
.kws-contact-form-clean .frm-fluent-form .ff-el-input--label label, .kws-contact-form-clean .frm-fluent-form label { color: var(--kws-muted) !important; }
.kws-contact-form-clean .frm-fluent-form .ff_submit_btn_wrapper button, .kws-contact-form-clean .frm-fluent-form button[type="submit"] { background: var(--kws-accent) !important; border-color: var(--kws-accent) !important; color: var(--kws-text) !important; padding: 18px 32px !important; }
.kws-contact-form-clean .frm-fluent-form .ff_submit_btn_wrapper button:hover { background: var(--kws-accent-2) !important; border-color: var(--kws-accent-2) !important; }
/* Contact intro left column - text needs to be light now */
.kws-contact-intro-headline { color: var(--kws-text) !important; }
.kws-page .kws-section.cream a { color: var(--kws-text); }
/* Footer - matte black with subtle top border */
.kws-footer { background: var(--kws-dark-1); border-top: 1px solid rgba(255,255,255,0.06); }
.kws-footer .top { border-bottom-color: rgba(255,255,255,0.06); }
.kws-footer .bottom { border-top-color: rgba(255,255,255,0.06); }
/* Pagehero meta cells need light hairline */
.kws-pagehero .meta-grid { border-top-color: rgba(255,255,255,0.08); }
/* Photo zones - keep but tone down sodium colour to neutral */
.kws-photo { background: linear-gradient(135deg, #1A1A1A 0%, #050505 100%); }


/* CP6.21 Register CTA - premium dispatch composition */
.kws-register-cta { background: #050505 !important; padding: 140px 64px !important; border-top: 1px solid rgba(255,255,255,0.08); position: relative; }
.kws-register-cta::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, transparent, rgba(217,4,41,0.6), transparent); }
.kws-register-cta-inner { max-width: 1320px; margin: 0 auto; }
.kws-register-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border-top: 1px solid rgba(255,255,255,0.08); border-bottom: 1px solid rgba(255,255,255,0.08); margin-bottom: 96px; }
.kws-register-stat { padding: 32px 28px; border-right: 1px solid rgba(255,255,255,0.08); }
.kws-register-stat:last-child { border-right: 0; }
.kws-register-stat .lbl { font-family: 'JetBrains Mono','SF Mono',monospace; font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; color: #9A9A9A; display: block; margin-bottom: 12px; }
.kws-register-stat .val { font-family: 'Playfair Display',serif; font-style: italic; font-size: 40px; font-weight: 700; line-height: 1; color: #F5F5F5; display: block; }
.kws-register-stat .sub { font-family: 'Inter',sans-serif; font-size: 13px; color: #9A9A9A; display: block; margin-top: 10px; }
.kws-register-cta-grid { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 96px; align-items: start; }
.kws-register-eyebrow { font-family: 'JetBrains Mono','SF Mono',monospace; font-size: 11px; letter-spacing: 0.24em; text-transform: uppercase; color: #D90429; margin-bottom: 32px; position: relative; padding-left: 56px; font-weight: 600; }
.kws-register-eyebrow::before { content: ''; position: absolute; left: 0; top: 50%; width: 40px; height: 1px; background: #D90429; }
.kws-register-headline { font-family: 'Playfair Display',serif !important; font-weight: 700 !important; font-size: clamp(56px, 7vw, 88px) !important; line-height: 1.04 !important; letter-spacing: -0.01em !important; color: #F5F5F5 !important; margin: 0 0 36px !important; max-width: 14ch; }
.kws-register-headline em { font-style: italic; color: #D90429 !important; font-weight: 700; }
.kws-register-lede { font-family: 'Inter',sans-serif; font-size: 18px; line-height: 1.6; color: #9A9A9A; max-width: 540px; margin: 0 0 48px; font-weight: 400; }
.kws-register-actions { display: flex; gap: 16px; flex-wrap: wrap; }
.kws-cta-primary, .kws-cta-secondary { display: inline-flex !important; align-items: center; gap: 16px; padding: 22px 36px !important; font-family: 'JetBrains Mono','SF Mono',monospace !important; font-size: 12px !important; letter-spacing: 0.22em !important; text-transform: uppercase !important; font-weight: 600 !important; text-decoration: none !important; transition: background-color 200ms ease, border-color 200ms ease, transform 200ms ease, color 200ms ease; border: 1px solid transparent; line-height: 1; }
.kws-cta-primary { background: #D90429 !important; color: #F5F5F5 !important; border-color: #D90429 !important; }
.kws-cta-primary:hover { background: #FF1E1E !important; border-color: #FF1E1E !important; transform: translateX(4px); color: #F5F5F5 !important; }
.kws-cta-secondary { background: transparent !important; color: #F5F5F5 !important; border-color: rgba(255,255,255,0.20) !important; }
.kws-cta-secondary:hover { border-color: #F5F5F5 !important; background: rgba(255,255,255,0.04) !important; transform: translateX(4px); color: #F5F5F5 !important; }
.kws-cta-primary .arr, .kws-cta-secondary .arr { display: inline-block; transition: transform 200ms ease; font-family: 'Inter',sans-serif; font-size: 14px; }
.kws-cta-primary:hover .arr, .kws-cta-secondary:hover .arr { transform: translateX(4px); }
.kws-register-badges { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.kws-register-badges li { display: grid; grid-template-columns: 80px 1fr; gap: 28px; align-items: center; padding: 24px 0; border-bottom: 1px solid rgba(255,255,255,0.08); }
.kws-register-badges li:first-child { border-top: 1px solid rgba(255,255,255,0.08); }
.kws-register-badges .num { font-family: 'JetBrains Mono','SF Mono',monospace; font-size: 12px; letter-spacing: 0.22em; color: #D90429; font-weight: 600; }
.kws-register-badges .label { font-family: 'Inter',sans-serif; font-size: 16px; color: #F5F5F5; line-height: 1.45; font-weight: 400; }
@media (max-width: 900px) { .kws-register-cta { padding: 96px 24px !important; } .kws-register-stats { grid-template-columns: 1fr; margin-bottom: 64px; } .kws-register-stat { border-right: 0; border-bottom: 1px solid rgba(255,255,255,0.08); padding: 24px 0; } .kws-register-stat:last-child { border-bottom: 0; } .kws-register-cta-grid { grid-template-columns: 1fr; gap: 64px; } .kws-register-headline { font-size: clamp(40px, 10vw, 64px) !important; max-width: 100%; } .kws-register-lede { font-size: 16px; margin-bottom: 36px; } .kws-register-actions { flex-direction: column; align-items: stretch; } .kws-cta-primary, .kws-cta-secondary { justify-content: space-between; padding: 20px 28px !important; } .kws-register-badges li { grid-template-columns: 56px 1fr; gap: 16px; padding: 18px 0; } .kws-register-badges .label { font-size: 15px; } }
/* END CP6.21 */


/* CP6.22 Token + background restoration after customizer wipe.
   Uses !important on :root variables and on body/page rules so this layer wins
   over the older customizer :root block that came back during the CP6.21 work. */
:root {
  --kws-text: #F5F5F5 !important;
  --kws-text-on-dark: #F5F5F5 !important;
  --kws-cream: #F5F5F5 !important;
  --kws-cream-deep: #F5F5F5 !important;
  --kws-bg-cream: #1A1A1A !important;
  --kws-bg-dark: #050505 !important;
  --kws-bg-dark-alt: #1A1A1A !important;
  --kws-dark-1: #050505 !important;
  --kws-dark-2: #1A1A1A !important;
  --kws-dark-3: #2B2B2B !important;
  --kws-muted: #9A9A9A !important;
  --kws-muted-dark: #9A9A9A !important;
  --kws-text-muted: #9A9A9A !important;
  --kws-hairline: rgba(255,255,255,0.08) !important;
  --kws-hairline-dark: rgba(255,255,255,0.08) !important;
  --kws-divider: rgba(255,255,255,0.08) !important;
  --kws-accent: #D90429 !important;
  --kws-accent-2: #FF1E1E !important;
  --kws-accent-hover: #FF1E1E !important;
  --kws-surface-rust: #1A1A1A !important;
  --kws-sodium: #D90429 !important;
}
html, body { background: #050505 !important; color: #F5F5F5 !important; }
body[class*="page-template-template-kws-"] { background: #050505 !important; }
body[class*="page-template-template-kws-"] #et-main-area,
body[class*="page-template-template-kws-"] #et-main-area #main-content,
body[class*="page-template-template-kws-"] #page-container { background: #050505 !important; }
.kws-page { background: #050505 !important; color: #F5F5F5 !important; }
.kws-page.dark { background: #050505 !important; color: #F5F5F5 !important; }
.kws-section.cream { background: #1A1A1A !important; color: #F5F5F5 !important; }
.kws-breath { background: #1A1A1A !important; }
.kws-section.rust { background: #1A1A1A !important; color: #F5F5F5 !important; }
.kws-page h1, .kws-page h2, .kws-page h3, .kws-page h4 { color: #F5F5F5 !important; }
.kws-page .kws-display, .kws-page .kws-h1, .kws-page .kws-h2, .kws-page .kws-h3, .kws-page .kws-h4 { color: #F5F5F5 !important; }
.kws-pagehero h1 { color: #F5F5F5 !important; }
.kws-cta .headline { color: #F5F5F5 !important; }
.kws-loc-grid .cell .name { color: #F5F5F5 !important; }
.kws-loc-list .item { color: #F5F5F5 !important; }
.kws-footer .mark { color: #F5F5F5 !important; }
.kws-page .kws-rust { color: #D90429 !important; }
/* Override inline style="color: var(--kws-cream)" on hero / cta H1 elements */
.kws-page h1[style*="--kws-cream"], .kws-page h2[style*="--kws-cream"], .kws-page h3[style*="--kws-cream"], .kws-page .kws-display[style*="--kws-cream"] { color: #F5F5F5 !important; }
/* END CP6.22 */


/* CP6.23 Register form - dark dispatch styling for Fluent Form + static fallback */
.kws-register-form-section { padding: 120px 64px !important; background: #050505 !important; }
.kws-register-form-wrap { color: #F5F5F5; }
.kws-register-form-wrap p { color: #9A9A9A; font-size: 15px; line-height: 1.7; margin-bottom: 14px; }
.kws-register-form-wrap h1, .kws-register-form-wrap h2, .kws-register-form-wrap h3, .kws-register-form-wrap h4 { color: #F5F5F5 !important; }
.kws-register-form-wrap a { color: #F5F5F5; }

/* Fluent Form overrides scoped to register form area */
.kws-register-form-wrap .fluentform, .kws-register-form-wrap .frm-fluent-form, .kws-register-form-wrap .ff-default { background: transparent !important; color: #F5F5F5 !important; }
.kws-register-form-wrap .ff-el-form-control, .kws-register-form-wrap .frm-fluent-form input[type='text'], .kws-register-form-wrap .frm-fluent-form input[type='email'], .kws-register-form-wrap .frm-fluent-form input[type='tel'], .kws-register-form-wrap .frm-fluent-form input[type='url'], .kws-register-form-wrap .frm-fluent-form input[type='number'], .kws-register-form-wrap .frm-fluent-form select, .kws-register-form-wrap .frm-fluent-form textarea { background: #2B2B2B !important; border: 1px solid rgba(255,255,255,0.12) !important; color: #F5F5F5 !important; padding: 16px 18px !important; font-family: 'Inter',sans-serif !important; font-size: 15px !important; border-radius: 0 !important; box-shadow: none !important; transition: border-color 200ms ease !important; }
.kws-register-form-wrap .frm-fluent-form input::placeholder, .kws-register-form-wrap .frm-fluent-form textarea::placeholder { color: #6B6B6B !important; opacity: 1 !important; }
.kws-register-form-wrap .frm-fluent-form select { color: #F5F5F5 !important; appearance: none; background-image: none; }
.kws-register-form-wrap .frm-fluent-form input:focus, .kws-register-form-wrap .frm-fluent-form select:focus, .kws-register-form-wrap .frm-fluent-form textarea:focus { border-color: #D90429 !important; outline: none !important; box-shadow: 0 0 0 1px rgba(217,4,41,0.2) !important; }
.kws-register-form-wrap .frm-fluent-form label, .kws-register-form-wrap .ff-el-input--label label, .kws-register-form-wrap .ff-el-form-control + label, .kws-register-form-wrap .ff-el-input--label > label { color: #9A9A9A !important; font-family: 'JetBrains Mono','SF Mono',monospace !important; font-size: 11px !important; letter-spacing: 0.18em !important; text-transform: uppercase !important; font-weight: 500 !important; margin-bottom: 8px !important; }
.kws-register-form-wrap .frm-fluent-form .ff-el-is-required.asterisk-right label:after, .kws-register-form-wrap .frm-fluent-form .ff_required { color: #D90429 !important; }
.kws-register-form-wrap .frm-fluent-form button, .kws-register-form-wrap .frm-fluent-form button[type='submit'], .kws-register-form-wrap .ff-btn-submit, .kws-register-form-wrap .ff-btn { background: #D90429 !important; color: #F5F5F5 !important; border: 1px solid #D90429 !important; padding: 18px 32px !important; font-family: 'JetBrains Mono','SF Mono',monospace !important; font-size: 12px !important; letter-spacing: 0.22em !important; text-transform: uppercase !important; font-weight: 600 !important; border-radius: 0 !important; transition: background-color 200ms ease, border-color 200ms ease, transform 200ms ease !important; cursor: pointer; line-height: 1; }
.kws-register-form-wrap .frm-fluent-form button:hover, .kws-register-form-wrap .frm-fluent-form button[type='submit']:hover, .kws-register-form-wrap .ff-btn-submit:hover, .kws-register-form-wrap .ff-btn:hover { background: #FF1E1E !important; border-color: #FF1E1E !important; transform: translateX(4px); color: #F5F5F5 !important; }
.kws-register-form-wrap .frm-fluent-form .ff-el-form-check-label, .kws-register-form-wrap .frm-fluent-form .ff-el-input--label > .ff-el-form-check-label { color: #9A9A9A !important; font-family: 'Inter',sans-serif !important; font-size: 13px !important; text-transform: none !important; letter-spacing: 0 !important; line-height: 1.55 !important; }
.kws-register-form-wrap .ff-message-success, .kws-register-form-wrap .ff_submit_btn_wrapper { color: #F5F5F5 !important; }
.kws-register-form-wrap .frm-fluent-form .text-danger, .kws-register-form-wrap .frm-fluent-form .error { color: #FF1E1E !important; }

/* Static fallback form styling (used when post content has no [fluentform] shortcode) */
.kws-register-form-wrap .kws-form .row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 32px; }
.kws-register-form-wrap .kws-form .field { display: flex; flex-direction: column; margin-top: 24px; }
.kws-register-form-wrap .kws-form .field:first-child, .kws-register-form-wrap .kws-form .row-2 .field { margin-top: 0; }
.kws-register-form-wrap .kws-form label { color: #9A9A9A; font-family: 'JetBrains Mono','SF Mono',monospace; font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; font-weight: 500; margin-bottom: 8px; }
.kws-register-form-wrap .kws-form .req { color: #D90429; }
.kws-register-form-wrap .kws-form input, .kws-register-form-wrap .kws-form select, .kws-register-form-wrap .kws-form textarea { background: #2B2B2B; border: 1px solid rgba(255,255,255,0.12); color: #F5F5F5; padding: 16px 18px; font-family: 'Inter',sans-serif; font-size: 15px; border-radius: 0; transition: border-color 200ms ease; width: 100%; box-sizing: border-box; }
.kws-register-form-wrap .kws-form input:focus, .kws-register-form-wrap .kws-form select:focus, .kws-register-form-wrap .kws-form textarea:focus { outline: none; border-color: #D90429; }
.kws-register-form-wrap .kws-form input::placeholder, .kws-register-form-wrap .kws-form textarea::placeholder { color: #6B6B6B; }
.kws-register-form-wrap .kws-form button[type='submit'], .kws-register-form-wrap .kws-form .kws-btn { background: #D90429 !important; color: #F5F5F5 !important; border: 1px solid #D90429 !important; padding: 18px 32px !important; font-family: 'JetBrains Mono','SF Mono',monospace !important; font-size: 12px !important; letter-spacing: 0.22em !important; text-transform: uppercase !important; font-weight: 600 !important; border-radius: 0 !important; cursor: pointer; line-height: 1; transition: background-color 200ms ease, border-color 200ms ease, transform 200ms ease; }
.kws-register-form-wrap .kws-form button[type='submit']:hover, .kws-register-form-wrap .kws-form .kws-btn:hover { background: #FF1E1E !important; border-color: #FF1E1E !important; transform: translateX(4px); }

@media (max-width: 900px) { .kws-register-form-section { padding: 64px 24px !important; } .kws-register-form-wrap .kws-form .row-2 { grid-template-columns: 1fr; } }
/* END CP6.23 */


/* CP6.24 Higher-specificity dark form overrides — beat customizer's legacy fluentform rules */
body.page-template-template-kws-register .kws-page.dark .kws-register-form-wrap .frm-fluent-form label,
body.page-template-template-kws-register .kws-page.dark .kws-register-form-wrap .ff-el-input--label label,
body.page-template-template-kws-register .kws-page.dark .kws-register-form-wrap .frm-fluent-form .ff-el-form-control-label,
html body .kws-page.dark .kws-register-form-wrap .frm-fluent-form label,
html body .kws-page.dark .kws-register-form-wrap .frm-fluent-form .ff-el-input--label label { color: #9A9A9A !important; font-family: 'JetBrains Mono','SF Mono',monospace !important; font-size: 11px !important; letter-spacing: 0.18em !important; text-transform: uppercase !important; font-weight: 500 !important; line-height: 1.3 !important; }

body.page-template-template-kws-register .kws-page.dark .kws-register-form-wrap .frm-fluent-form input[type='text'],
body.page-template-template-kws-register .kws-page.dark .kws-register-form-wrap .frm-fluent-form input[type='email'],
body.page-template-template-kws-register .kws-page.dark .kws-register-form-wrap .frm-fluent-form input[type='tel'],
body.page-template-template-kws-register .kws-page.dark .kws-register-form-wrap .frm-fluent-form input[type='url'],
body.page-template-template-kws-register .kws-page.dark .kws-register-form-wrap .frm-fluent-form input[type='number'],
body.page-template-template-kws-register .kws-page.dark .kws-register-form-wrap .frm-fluent-form select,
body.page-template-template-kws-register .kws-page.dark .kws-register-form-wrap .frm-fluent-form textarea,
html body .kws-page.dark .kws-register-form-wrap .frm-fluent-form .ff-el-form-control { background: #2B2B2B !important; border: 1px solid rgba(255,255,255,0.12) !important; color: #F5F5F5 !important; padding: 16px 18px !important; font-family: 'Inter',sans-serif !important; font-size: 15px !important; border-radius: 0 !important; box-shadow: none !important; }

body.page-template-template-kws-register .kws-page.dark .kws-register-form-wrap .frm-fluent-form input::placeholder,
body.page-template-template-kws-register .kws-page.dark .kws-register-form-wrap .frm-fluent-form textarea::placeholder { color: #6B6B6B !important; opacity: 1 !important; }

body.page-template-template-kws-register .kws-page.dark .kws-register-form-wrap .frm-fluent-form input:focus,
body.page-template-template-kws-register .kws-page.dark .kws-register-form-wrap .frm-fluent-form select:focus,
body.page-template-template-kws-register .kws-page.dark .kws-register-form-wrap .frm-fluent-form textarea:focus { border-color: #D90429 !important; outline: none !important; }

body.page-template-template-kws-register .kws-page.dark .kws-register-form-wrap .frm-fluent-form button[type='submit'],
body.page-template-template-kws-register .kws-page.dark .kws-register-form-wrap .ff-btn-submit,
html body .kws-page.dark .kws-register-form-wrap .ff-btn { background: #D90429 !important; color: #F5F5F5 !important; border: 1px solid #D90429 !important; padding: 18px 32px !important; font-family: 'JetBrains Mono','SF Mono',monospace !important; font-size: 12px !important; letter-spacing: 0.22em !important; text-transform: uppercase !important; font-weight: 600 !important; border-radius: 0 !important; }

body.page-template-template-kws-register .kws-page.dark .kws-register-form-wrap .frm-fluent-form button[type='submit']:hover,
body.page-template-template-kws-register .kws-page.dark .kws-register-form-wrap .ff-btn-submit:hover { background: #FF1E1E !important; border-color: #FF1E1E !important; }

body.page-template-template-kws-register .kws-page.dark .kws-register-form-wrap .frm-fluent-form .ff-el-form-check-label,
body.page-template-template-kws-register .kws-page.dark .kws-register-form-wrap .frm-fluent-form .ff-el-input--label .ff-el-form-check-label { color: #F5F5F5 !important; font-family: 'Inter',sans-serif !important; font-size: 14px !important; text-transform: none !important; letter-spacing: 0 !important; line-height: 1.55 !important; font-weight: 400 !important; }

body.page-template-template-kws-register .kws-page.dark .kws-register-form-wrap .frm-fluent-form .text-danger,
body.page-template-template-kws-register .kws-page.dark .kws-register-form-wrap .frm-fluent-form .error_response { color: #FF1E1E !important; }

/* The required asterisk should be crimson */
body.page-template-template-kws-register .kws-register-form-wrap .ff-el-is-required.asterisk-right > label:after,
body.page-template-template-kws-register .kws-register-form-wrap .ff_required { color: #D90429 !important; }

/* Tooltip / info icon (the small i) — neutralise blue */
body.page-template-template-kws-register .kws-register-form-wrap .frm-fluent-form svg, body.page-template-template-kws-register .kws-register-form-wrap .frm-fluent-form .ff-el-tooltip { color: #9A9A9A !important; fill: #9A9A9A !important; }
/* END CP6.24 */


/* CP6.28 Contact form GDPR checkbox - visible square + width containment */
.kws-page.dark .frm-fluent-form { max-width: 100% !important; box-sizing: border-box !important; }
.kws-page.dark .frm-fluent-form fieldset, .kws-page.dark .frm-fluent-form .ff-el-group, .kws-page.dark .frm-fluent-form .ff-el-input--content { max-width: 100% !important; box-sizing: border-box !important; }
.kws-page.dark .frm-fluent-form .ff-el-form-check { display: flex !important; align-items: flex-start !important; gap: 14px !important; padding: 18px 0 8px !important; max-width: 100% !important; flex-wrap: nowrap !important; box-sizing: border-box !important; }
.kws-page.dark .frm-fluent-form .ff-el-form-check input[type='checkbox'] { appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; width: 20px !important; height: 20px !important; min-width: 20px !important; min-height: 20px !important; max-width: 20px !important; max-height: 20px !important; flex: 0 0 20px !important; margin: 1px 0 0 0 !important; padding: 0 !important; background: #050505 !important; border: 2px solid #F5F5F5 !important; border-radius: 0 !important; cursor: pointer !important; position: relative !important; transition: border-color 200ms ease, background-color 200ms ease !important; opacity: 1 !important; visibility: visible !important; box-shadow: none !important; display: block !important; }
.kws-page.dark .frm-fluent-form .ff-el-form-check input[type='checkbox']:hover { border-color: #D90429 !important; }
.kws-page.dark .frm-fluent-form .ff-el-form-check input[type='checkbox']:checked { background: #D90429 !important; border-color: #D90429 !important; }
.kws-page.dark .frm-fluent-form .ff-el-form-check input[type='checkbox']:checked:after { content: '' !important; position: absolute !important; left: 5px !important; top: 0 !important; width: 6px !important; height: 12px !important; border: solid #F5F5F5 !important; border-width: 0 2px 2px 0 !important; transform: rotate(45deg) !important; }
.kws-page.dark .frm-fluent-form .ff-el-form-check .ff-el-form-check-label { color: #F5F5F5 !important; font-family: 'Inter',sans-serif !important; font-size: 13px !important; line-height: 1.55 !important; letter-spacing: 0 !important; text-transform: none !important; font-weight: 400 !important; padding-left: 0 !important; cursor: pointer !important; flex: 1 1 auto !important; word-wrap: break-word !important; overflow-wrap: break-word !important; max-width: calc(100% - 34px) !important; text-align: left !important; }
.kws-page.dark .frm-fluent-form .ff-el-form-check .ff-el-form-check-label a { color: #F5F5F5 !important; text-decoration: underline !important; text-underline-offset: 3px !important; }
.kws-page.dark .frm-fluent-form .ff-el-form-check .ff-el-form-check-label a:hover { color: #D90429 !important; }
@media (max-width: 700px) { .kws-page.dark .frm-fluent-form .ff-el-form-check { padding: 14px 0 4px !important; gap: 12px !important; } .kws-page.dark .frm-fluent-form .ff-el-form-check .ff-el-form-check-label { font-size: 12px !important; max-width: calc(100% - 30px) !important; } .kws-page.dark .frm-fluent-form .ff-el-form-check input[type='checkbox'] { width: 18px !important; height: 18px !important; min-width: 18px !important; max-width: 18px !important; min-height: 18px !important; max-height: 18px !important; flex-basis: 18px !important; } }
/* END CP6.28 */


/* CP6.32 Privacy checkbox: visible border, transparent bg, crimson on check, FF1E1E hover */
.kws-page.dark .frm-fluent-form .ff-el-form-check input[type='checkbox'] { background: transparent !important; border: 1px solid rgba(255,255,255,0.35) !important; }
.kws-page.dark .frm-fluent-form .ff-el-form-check input[type='checkbox']:hover { border-color: #FF1E1E !important; }
.kws-page.dark .frm-fluent-form .ff-el-form-check input[type='checkbox']:checked { background: #D90429 !important; border-color: #D90429 !important; }
.kws-page.dark .frm-fluent-form .ff-el-form-check input[type='checkbox']:checked:hover { background: #FF1E1E !important; border-color: #FF1E1E !important; }
/* END CP6.32 */


/* CP6.34 Privacy checkbox FINAL: solid white 2px border so it's unmistakable on the dark form panel */
body .kws-page.dark .frm-fluent-form .ff-el-form-check input[type='checkbox'] { width: 22px !important; height: 22px !important; min-width: 22px !important; min-height: 22px !important; max-width: 22px !important; max-height: 22px !important; flex: 0 0 22px !important; appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background: #050505 !important; border: 2px solid #F5F5F5 !important; border-radius: 0 !important; padding: 0 !important; margin: 0 !important; box-shadow: none !important; opacity: 1 !important; visibility: visible !important; display: block !important; cursor: pointer !important; position: relative !important; transition: background-color 200ms ease, border-color 200ms ease !important; }
body .kws-page.dark .frm-fluent-form .ff-el-form-check input[type='checkbox']:hover { border-color: #FF1E1E !important; background: #050505 !important; }
body .kws-page.dark .frm-fluent-form .ff-el-form-check input[type='checkbox']:checked { background: #D90429 !important; border-color: #D90429 !important; }
body .kws-page.dark .frm-fluent-form .ff-el-form-check input[type='checkbox']:checked:hover { background: #FF1E1E !important; border-color: #FF1E1E !important; }
body .kws-page.dark .frm-fluent-form .ff-el-form-check input[type='checkbox']:checked:after { content: '' !important; position: absolute !important; left: 6px !important; top: 1px !important; width: 6px !important; height: 12px !important; border: solid #F5F5F5 !important; border-width: 0 2px 2px 0 !important; transform: rotate(45deg) !important; }
body .kws-page.dark .frm-fluent-form .ff-el-form-check { gap: 16px !important; align-items: flex-start !important; }
body .kws-page.dark .frm-fluent-form .ff-el-form-check .ff-el-form-check-label { max-width: calc(100% - 38px) !important; }
/* END CP6.34 */


/* CP6.35 Privacy checkbox - bulletproof label::before pseudo-element approach.
   Hides the actual native input and draws the visual via the label so we don't rely
   on getting native checkbox styling past Fluent Form's defaults. */
body .kws-page.dark .frm-fluent-form .ff-el-form-check input[type='checkbox'] { position: absolute !important; left: -9999px !important; opacity: 0 !important; pointer-events: none !important; width: 1px !important; height: 1px !important; }
body .kws-page.dark .frm-fluent-form .ff-el-form-check { display: flex !important; align-items: flex-start !important; gap: 0 !important; padding: 18px 0 !important; max-width: 100% !important; flex-wrap: nowrap !important; }
body .kws-page.dark .frm-fluent-form .ff-el-form-check .ff-el-form-check-label { display: flex !important; align-items: flex-start !important; gap: 14px !important; cursor: pointer !important; color: #F5F5F5 !important; font-family: 'Inter',sans-serif !important; font-size: 13px !important; line-height: 1.55 !important; text-transform: none !important; letter-spacing: 0 !important; font-weight: 400 !important; padding: 0 !important; max-width: 100% !important; }
body .kws-page.dark .frm-fluent-form .ff-el-form-check .ff-el-form-check-label::before { content: '' !important; display: inline-block !important; flex-shrink: 0 !important; width: 22px !important; height: 22px !important; background: #050505 !important; border: 2px solid #F5F5F5 !important; border-radius: 0 !important; box-sizing: border-box !important; margin-top: 1px !important; transition: background-color 200ms ease, border-color 200ms ease !important; }
body .kws-page.dark .frm-fluent-form .ff-el-form-check .ff-el-form-check-label:hover::before { border-color: #FF1E1E !important; }
body .kws-page.dark .frm-fluent-form .ff-el-form-check:has(input[type='checkbox']:checked) .ff-el-form-check-label::before { background: #D90429 !important; border-color: #D90429 !important; }
body .kws-page.dark .frm-fluent-form .ff-el-form-check .ff-el-form-check-label a { color: #F5F5F5 !important; text-decoration: underline !important; text-underline-offset: 3px !important; }
body .kws-page.dark .frm-fluent-form .ff-el-form-check .ff-el-form-check-label a:hover { color: #D90429 !important; }
/* END CP6.35 */


/* CP6.36 Cookie consent banner + preferences modal + footer overlap fix */
.kws-cookie-banner { position: fixed; bottom: 24px; left: 24px; max-width: 460px; background: #1A1A1A; border: 1px solid rgba(255,255,255,0.12); padding: 28px; z-index: 99999; color: #F5F5F5; font-family: 'Inter',sans-serif; box-shadow: 0 12px 48px rgba(0,0,0,0.6); display: none; }
.kws-cookie-banner.is-visible { display: block; }
.kws-cookie-banner .kws-cb-eyebrow { font-family: 'JetBrains Mono','SF Mono',monospace; font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; color: #D90429; margin-bottom: 12px; }
.kws-cookie-banner h3 { font-family: 'Barlow Condensed',system-ui,sans-serif; font-weight: 700; font-size: 24px; line-height: 1.1; color: #F5F5F5; margin: 0 0 12px; }
.kws-cookie-banner p { color: #9A9A9A; font-size: 14px; line-height: 1.55; margin: 0 0 20px; }
.kws-cookie-banner p a { color: #F5F5F5; text-decoration: underline; text-underline-offset: 3px; }
.kws-cookie-banner p a:hover { color: #D90429; }
.kws-cookie-banner .kws-cb-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.kws-cookie-banner button { font-family: 'JetBrains Mono','SF Mono',monospace; font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; font-weight: 600; padding: 12px 18px; border-radius: 0; cursor: pointer; transition: background-color 200ms ease, border-color 200ms ease, color 200ms ease; line-height: 1; border: 1px solid transparent; }
.kws-cookie-banner .kws-cb-accept { background: #D90429; color: #F5F5F5; border-color: #D90429; }
.kws-cookie-banner .kws-cb-accept:hover, .kws-cookie-banner .kws-cb-accept:focus-visible { background: #FF1E1E; border-color: #FF1E1E; outline: none; }
.kws-cookie-banner .kws-cb-reject, .kws-cookie-banner .kws-cb-manage { background: transparent; color: #F5F5F5; border-color: rgba(255,255,255,0.20); }
.kws-cookie-banner .kws-cb-reject:hover, .kws-cookie-banner .kws-cb-manage:hover, .kws-cookie-banner .kws-cb-reject:focus-visible, .kws-cookie-banner .kws-cb-manage:focus-visible { border-color: #F5F5F5; background: rgba(255,255,255,0.04); outline: none; }
@media (max-width: 700px) { .kws-cookie-banner { left: 12px; right: 12px; bottom: 12px; max-width: none; padding: 22px; } }

.kws-cookie-modal { position: fixed; inset: 0; z-index: 100000; display: none; align-items: center; justify-content: center; padding: 24px; background: rgba(0,0,0,0.7); }
.kws-cookie-modal.is-open { display: flex; }
.kws-cookie-modal-card { background: #1A1A1A; border: 1px solid rgba(255,255,255,0.12); max-width: 560px; width: 100%; max-height: 90vh; overflow-y: auto; padding: 36px; color: #F5F5F5; font-family: 'Inter',sans-serif; }
.kws-cookie-modal-card .kws-cb-eyebrow { font-family: 'JetBrains Mono','SF Mono',monospace; font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; color: #D90429; margin-bottom: 12px; }
.kws-cookie-modal-card h3 { font-family: 'Barlow Condensed',system-ui,sans-serif; font-weight: 700; font-size: 32px; line-height: 1.05; color: #F5F5F5; margin: 0 0 16px; }
.kws-cookie-modal-card p { color: #9A9A9A; font-size: 14px; line-height: 1.55; margin: 0 0 24px; }
.kws-cookie-modal-card .kws-cookie-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 18px 0; border-bottom: 1px solid rgba(255,255,255,0.08); }
.kws-cookie-modal-card .kws-cookie-row:last-of-type { border-bottom: 0; }
.kws-cookie-modal-card .kws-cookie-row h4 { font-family: 'Inter',sans-serif; font-weight: 600; font-size: 15px; color: #F5F5F5; margin: 0 0 6px; }
.kws-cookie-modal-card .kws-cookie-row p { font-size: 13px; line-height: 1.55; color: #9A9A9A; margin: 0; max-width: 360px; }
.kws-cookie-modal-card .kws-cookie-toggle { position: relative; display: inline-flex; align-items: center; flex: 0 0 auto; cursor: pointer; }
.kws-cookie-modal-card .kws-cookie-toggle input { position: absolute; left: -9999px; opacity: 0; }
.kws-cookie-modal-card .kws-cookie-toggle .knob { display: inline-block; width: 44px; height: 24px; background: #2B2B2B; border: 1px solid rgba(255,255,255,0.20); border-radius: 12px; position: relative; transition: background-color 200ms ease, border-color 200ms ease; }
.kws-cookie-modal-card .kws-cookie-toggle .knob::after { content: ''; position: absolute; left: 2px; top: 2px; width: 18px; height: 18px; border-radius: 50%; background: #F5F5F5; transition: left 200ms ease; }
.kws-cookie-modal-card .kws-cookie-toggle input:checked + .knob { background: #D90429; border-color: #D90429; }
.kws-cookie-modal-card .kws-cookie-toggle input:checked + .knob::after { left: 22px; }
.kws-cookie-modal-card .kws-cookie-toggle input:disabled + .knob { opacity: 0.5; cursor: not-allowed; }
.kws-cookie-modal-card .kws-cb-actions { display: flex; gap: 10px; margin-top: 28px; flex-wrap: wrap; }
.kws-cookie-modal-card button { font-family: 'JetBrains Mono','SF Mono',monospace; font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; font-weight: 600; padding: 14px 20px; border-radius: 0; cursor: pointer; transition: background-color 200ms ease, border-color 200ms ease; line-height: 1; border: 1px solid transparent; }
.kws-cookie-modal-card .kws-cb-save { background: #D90429; color: #F5F5F5; border-color: #D90429; }
.kws-cookie-modal-card .kws-cb-save:hover, .kws-cookie-modal-card .kws-cb-save:focus-visible { background: #FF1E1E; border-color: #FF1E1E; outline: none; }
.kws-cookie-modal-card .kws-cb-close { background: transparent; color: #F5F5F5; border-color: rgba(255,255,255,0.20); }
.kws-cookie-modal-card .kws-cb-close:hover, .kws-cookie-modal-card .kws-cb-close:focus-visible { border-color: #F5F5F5; background: rgba(255,255,255,0.04); outline: none; }

/* Footer overlap fix - WhatsApp widget sits bottom-right ~80px from edge */
.kws-footer .bottom { padding-bottom: 96px !important; }
.kws-footer .bottom > div:last-child { padding-right: 80px; }
@media (max-width: 700px) { .kws-footer .bottom { padding-bottom: 110px !important; flex-direction: column; align-items: flex-start; gap: 14px; } .kws-footer .bottom > div:last-child { padding-right: 0; } }
.kws-cookie-settings-trigger { cursor: pointer; }
/* END CP6.36 */


/* CP6.38 Legal pages (Privacy / Cookie) - editorial dark layout */
body.kws-legal-page { background: #050505 !important; color: #F5F5F5; }
.kws-legal-hero { padding: 140px 64px 56px !important; }
.kws-legal-h1 { font-family: 'Playfair Display',serif; font-weight: 700; font-size: clamp(56px, 8vw, 96px); line-height: 1.02; letter-spacing: -0.01em; color: #F5F5F5; margin: 16px 0 18px; max-width: 18ch; }
.kws-legal-sub { font-family: 'Inter',sans-serif; font-size: 18px; line-height: 1.55; color: #B8B8B8; max-width: 580px; margin: 0; }
.kws-legal-section { padding: 24px 64px 140px !important; border-top: 1px solid rgba(255,255,255,0.08); }
.kws-legal-content { max-width: 720px; margin: 56px auto 0; font-family: 'Inter',sans-serif; color: #F5F5F5; }
.kws-legal-content h2 { font-family: 'Barlow Condensed',system-ui,sans-serif; font-weight: 700; font-size: clamp(28px, 3vw, 36px); line-height: 1.15; letter-spacing: -0.005em; color: #F5F5F5; text-transform: none; margin: 64px 0 16px; padding-top: 8px; }
.kws-legal-content h2:first-child { margin-top: 0; }
.kws-legal-content h3 { font-family: 'Barlow Condensed',system-ui,sans-serif; font-weight: 600; font-size: clamp(20px, 2vw, 24px); line-height: 1.2; color: #F5F5F5; margin: 36px 0 12px; }
.kws-legal-content p { font-family: 'Inter',sans-serif; font-size: 16px; line-height: 1.75; color: #F5F5F5; margin: 0 0 18px; }
.kws-legal-content p em { color: #B8B8B8; font-style: italic; font-size: 14px; }
.kws-legal-content ul, .kws-legal-content ol { margin: 0 0 24px; padding: 0 0 0 20px; }
.kws-legal-content li { font-family: 'Inter',sans-serif; font-size: 16px; line-height: 1.7; color: #F5F5F5; margin: 0 0 8px; padding-left: 4px; }
.kws-legal-content li::marker { color: #D90429; }
.kws-legal-content a { color: #D90429; text-decoration: underline; text-underline-offset: 3px; transition: color 200ms ease; word-break: break-word; }
.kws-legal-content a:hover { color: #FF1E1E; }
.kws-legal-content strong { color: #F5F5F5; font-weight: 600; }
.kws-legal-content code { font-family: 'JetBrains Mono','SF Mono',monospace; font-size: 14px; background: #2B2B2B; padding: 2px 6px; border-radius: 0; }
.kws-legal-content hr { border: 0; border-top: 1px solid rgba(255,255,255,0.08); margin: 48px 0; }
@media (max-width: 700px) { .kws-legal-hero { padding: 100px 24px 40px !important; } .kws-legal-section { padding: 24px 24px 100px !important; } .kws-legal-content { margin-top: 36px; } .kws-legal-content h2 { margin: 48px 0 12px; } .kws-legal-content p, .kws-legal-content li { font-size: 15px; } }
/* END CP6.38 */


/* CP6.39 Hide legacy Divi chrome on legal pages too */
body.kws-legal-page #top-header, body.kws-legal-page #main-header, body.kws-legal-page #et-top-navigation, body.kws-legal-page .et_pb_section.et_pb_fullwidth_section { display: none !important; }
body.kws-legal-page #page-container { padding-top: 0 !important; }
body.kws-legal-page #et-main-area, body.kws-legal-page #et-main-area #main-content { background: #050505 !important; }
body.kws-legal-page #main-content article { padding: 0 !important; }
body.kws-legal-page #main-content article > * { background: transparent !important; }
/* END CP6.39 */


/* CP6.41 MOBILE RESPONSIVE PASS - desktop unchanged, mobile/tablet only */

/* Hamburger button - hidden on desktop */
.kws-burger { display: none; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; background: transparent; border: 1px solid rgba(255,255,255,0.20); cursor: pointer; flex-direction: column; gap: 4px; flex-shrink: 0; box-sizing: border-box; }
.kws-burger span { display: block; width: 22px; height: 2px; background: #F5F5F5; transition: background-color 200ms ease; }
.kws-burger:hover span, .kws-burger:focus-visible span { background: #D90429; }
.kws-burger:focus-visible { outline: 2px solid #D90429; outline-offset: 2px; }

/* Mobile menu drawer - hidden by default; activated via JS classlist */
.kws-mobile-menu { position: fixed; inset: 0; z-index: 99998; pointer-events: none; }
.kws-mobile-menu.is-open { pointer-events: auto; }
.kws-mobile-menu .kws-mm-overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.7); opacity: 0; transition: opacity 250ms ease; }
.kws-mobile-menu.is-open .kws-mm-overlay { opacity: 1; }
.kws-mobile-menu .kws-mm-panel { position: absolute; top: 0; right: 0; bottom: 0; width: min(380px, 88vw); background: #050505; border-left: 1px solid rgba(255,255,255,0.08); padding: 24px 28px 28px; transform: translateX(100%); transition: transform 280ms ease; display: flex; flex-direction: column; box-sizing: border-box; overflow-y: auto; }
.kws-mobile-menu.is-open .kws-mm-panel { transform: translateX(0); }
.kws-mm-close { background: transparent; border: 0; width: 44px; height: 44px; align-self: flex-end; cursor: pointer; position: relative; padding: 0; margin-bottom: 16px; }
.kws-mm-close span { position: absolute; left: 11px; top: 21px; width: 22px; height: 2px; background: #F5F5F5; transition: background-color 200ms ease; }
.kws-mm-close span:first-child { transform: rotate(45deg); }
.kws-mm-close span:last-child { transform: rotate(-45deg); }
.kws-mm-close:hover span, .kws-mm-close:focus-visible span { background: #D90429; }
.kws-mm-nav { display: flex; flex-direction: column; gap: 4px; }
.kws-mm-nav a { font-family: 'Barlow Condensed', system-ui, sans-serif; font-weight: 600; font-size: 28px; line-height: 1.1; color: #F5F5F5; text-decoration: none; padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,0.06); transition: color 200ms ease; }
.kws-mm-nav a:hover, .kws-mm-nav a:focus-visible { color: #D90429; outline: none; }
.kws-mm-nav a.is-active { color: #D90429; }
.kws-mm-divider { height: 1px; background: rgba(255,255,255,0.08); margin: 20px 0 8px; }
.kws-mm-secondary { font-family: 'JetBrains Mono','SF Mono',monospace !important; font-size: 12px !important; letter-spacing: 0.18em !important; text-transform: uppercase !important; color: #9A9A9A !important; padding: 10px 0 !important; border-bottom: 0 !important; font-weight: 500 !important; }
.kws-mm-secondary:hover, .kws-mm-secondary:focus-visible { color: #F5F5F5 !important; }
.kws-mm-cta { margin-top: auto; padding: 18px 22px; background: #D90429; color: #F5F5F5; font-family: 'JetBrains Mono','SF Mono',monospace; font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; font-weight: 600; text-decoration: none; text-align: center; transition: background-color 200ms ease; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.kws-mm-cta:hover, .kws-mm-cta:focus-visible { background: #FF1E1E; outline: none; color: #F5F5F5; }
body.kws-mm-locked { overflow: hidden; }

/* Global guards */
html, body { overflow-x: hidden; }
.kws-page, .kws-page * { box-sizing: border-box; }
.kws-page img { max-width: 100%; height: auto; }

@media (max-width: 1024px) {
  .kws-masthead .kws-nav a:not(.cta) { font-size: 12px; }
  .kws-masthead .stamp { font-size: 11px; }
}

@media (max-width: 900px) {
  /* Masthead - swap nav for hamburger */
  .kws-masthead { padding: 16px 20px !important; display: flex !important; align-items: center !important; justify-content: space-between !important; gap: 14px; }
  .kws-masthead .stamp { display: none; }
  .kws-masthead .kws-wordmark { font-size: 24px !important; position: static !important; transform: none !important; left: auto !important; }
  .kws-masthead .kws-nav { display: none !important; }
  .kws-burger { display: flex; }

  /* Page hero - stack and reduce */
  .kws-pagehero { padding: 80px 24px 56px !important; grid-template-columns: 1fr !important; }
  .kws-pagehero .left, .kws-pagehero .right { width: 100% !important; max-width: 100% !important; }
  .kws-pagehero h1 { font-size: clamp(40px, 11vw, 64px) !important; line-height: 1 !important; max-width: 100% !important; }
  .kws-pagehero .crumb { font-size: 11px !important; letter-spacing: 0.18em; }
  .kws-pagehero .sub { font-size: 15px !important; line-height: 1.55 !important; max-width: 100% !important; margin-top: 18px !important; }
  .kws-pagehero .meta-grid { grid-template-columns: 1fr 1fr !important; gap: 20px 16px !important; margin-top: 28px !important; }
  .kws-pagehero .meta-cell .lbl { font-size: 10px !important; }
  .kws-pagehero .meta-cell .val { font-size: 22px !important; }
  .kws-pagehero .right .kws-photo, .kws-pagehero .kws-photo { min-height: 260px !important; height: 260px !important; margin-top: 32px; }

  /* Home hero */
  .kws-page-home .kws-hero, body[class*='page-template-template-kws-home'] .kws-hero { padding: 80px 24px 56px !important; }
  .kws-hero-wrap { grid-template-columns: 1fr !important; gap: 32px !important; }
  .kws-page-home .kws-hero h1, .kws-hero h1, .kws-display.kws-h1 { font-size: clamp(48px, 13vw, 88px) !important; line-height: 0.95 !important; max-width: 100% !important; }
  .kws-hero p, .kws-page-home .kws-hero p { font-size: 16px !important; line-height: 1.55 !important; max-width: 100% !important; margin-top: 28px !important; }

  /* Generic section padding */
  .kws-section { padding: 64px 24px !important; }
  .kws-section.dark, .kws-section.cream, .kws-section.rust { padding: 64px 24px !important; }

  /* Display headings */
  .kws-display { word-wrap: break-word; overflow-wrap: anywhere; }
  .kws-h1 { font-size: clamp(48px, 13vw, 88px) !important; }
  .kws-h2 { font-size: clamp(40px, 11vw, 72px) !important; }
  .kws-h3 { font-size: clamp(32px, 9vw, 56px) !important; }
  .kws-h4 { font-size: clamp(26px, 7vw, 40px) !important; }

  /* Grids */
  .kws-grid-2, .kws-grid-2-1, .kws-grid-1-2, .kws-grid-3, .kws-row-meta { display: grid !important; grid-template-columns: 1fr !important; gap: 24px !important; }
  .kws-row-meta .cell { padding: 16px 0 !important; border-right: 0 !important; border-bottom: 1px solid rgba(255,255,255,0.08) !important; }
  .kws-row-meta .cell:last-child { border-bottom: 0 !important; }
  .kws-row-meta .val.val-sm { font-size: 24px !important; }

  /* Cards */
  .kws-card { padding: 24px !important; }
  .kws-card h4 { font-size: 18px !important; }
  .kws-card .body { font-size: 14px !important; line-height: 1.55 !important; }

  /* Service rows */
  .kws-service-row { grid-template-columns: 1fr !important; gap: 12px !important; padding: 24px 20px !important; }
  .kws-service-row .num { font-size: 12px !important; }
  .kws-service-row .title { font-size: 22px !important; }
  .kws-service-row .desc { font-size: 14px !important; line-height: 1.55 !important; }
  .kws-service-row .meta { font-size: 11px !important; }
  .kws-service-row .kws-mark { display: none !important; }

  /* Ledger */
  .kws-ledger-row { grid-template-columns: 1fr !important; gap: 4px !important; padding: 16px 0 !important; }
  .kws-ledger-row.cols-2 { grid-template-columns: 1fr !important; }
  .kws-ledger-row .num { font-size: 18px !important; }
  .kws-ledger-row .lbl, .kws-ledger-row .lbl-strong { font-size: 14px !important; }
  .kws-ledger-row .desc { font-size: 13px !important; line-height: 1.5 !important; }

  /* Coverage / cat list */
  .kws-cat a, .kws-cat-item { padding: 14px 16px !important; font-size: 16px !important; }
  .kws-cat .num { font-size: 11px !important; }
  .kws-coverage-grid { grid-template-columns: 1fr !important; gap: 24px !important; }

  /* Location grid + chips + list */
  .kws-loc-grid { grid-template-columns: 1fr !important; gap: 0 !important; }
  .kws-loc-grid .cell { padding: 16px 0 !important; border-bottom: 1px solid rgba(255,255,255,0.08) !important; border-right: 0 !important; }
  .kws-loc-grid .cell .name { font-size: 28px !important; }
  .kws-loc-grid .cell .meta { font-size: 12px !important; }
  .kws-loc-list .item { font-size: 18px !important; padding: 12px 0 !important; }
  .kws-loc-chips { gap: 8px !important; }
  .kws-loc-chips a { padding: 8px 12px !important; font-size: 12px !important; }

  /* CTA section */
  .kws-cta { padding: 80px 24px !important; }
  .kws-cta .mast { flex-direction: column !important; gap: 6px !important; align-items: flex-start !important; }
  .kws-cta .mast .right { text-align: left !important; }
  .kws-cta .headline { font-size: clamp(48px, 12vw, 88px) !important; line-height: 0.95 !important; }
  .kws-cta .actions { flex-direction: column !important; align-items: stretch !important; gap: 12px !important; }
  .kws-btn { width: 100%; justify-content: space-between; padding: 16px 20px !important; font-size: 12px !important; }

  /* Trust + breath */
  .kws-trust-grid { grid-template-columns: 1fr !important; gap: 32px !important; }
  .kws-breath { padding: 80px 24px !important; }
  .kws-breath .grid-2 { display: block !important; }
  .kws-breath .line { font-size: 14px !important; line-height: 1.55 !important; }

  /* OP grid */
  .kws-op-grid { grid-template-columns: 1fr !important; gap: 32px !important; }
  .kws-op-grid .kws-photo { min-height: 260px !important; }

  /* Scenarios */
  .kws-scenarios { gap: 40px !important; }
  .kws-scenario, .kws-scenario.flip { grid-template-columns: 1fr !important; gap: 24px !important; }
  .kws-scenario .kws-photo { min-height: 240px !important; }
  .kws-scenario .head { font-size: 22px !important; }
  .kws-scenario .desc { font-size: 14px !important; }

  /* Forms */
  .kws-form .row-2 { grid-template-columns: 1fr !important; gap: 18px !important; }
  .kws-form input, .kws-form select, .kws-form textarea { width: 100% !important; padding: 14px 16px !important; font-size: 16px !important; }
  .kws-form button[type='submit'], .kws-form .kws-btn { width: 100% !important; justify-content: space-between !important; }
  .kws-page.dark .frm-fluent-form .ff-el-group, .kws-page.dark .frm-fluent-form fieldset { padding: 0 !important; }
  .kws-page.dark .frm-fluent-form input, .kws-page.dark .frm-fluent-form select, .kws-page.dark .frm-fluent-form textarea { font-size: 16px !important; }

  /* Contact + Register form columns */
  .kws-contact-grid, .kws-register-grid { grid-template-columns: 1fr !important; gap: 32px !important; }

  /* Register CTA stats / split */
  .kws-register-cta { padding: 64px 24px !important; }
  .kws-register-stats { grid-template-columns: 1fr !important; gap: 0 !important; margin-bottom: 40px !important; }
  .kws-register-stat { border-right: 0 !important; border-bottom: 1px solid rgba(255,255,255,0.08) !important; padding: 18px 0 !important; }
  .kws-register-stat:last-child { border-bottom: 0 !important; }
  .kws-register-stat .val { font-size: 32px !important; }
  .kws-register-cta-grid { grid-template-columns: 1fr !important; gap: 40px !important; }
  .kws-register-headline { font-size: clamp(36px, 10vw, 56px) !important; max-width: 100% !important; }
  .kws-register-lede { font-size: 15px !important; margin-bottom: 28px !important; }
  .kws-register-actions { flex-direction: column !important; align-items: stretch !important; }
  .kws-cta-primary, .kws-cta-secondary { justify-content: space-between !important; padding: 16px 20px !important; }
  .kws-register-badges li { grid-template-columns: 48px 1fr !important; gap: 12px !important; padding: 14px 0 !important; }
  .kws-register-badges .label { font-size: 14px !important; }

  /* Cookie banner mobile */
  .kws-cookie-banner { left: 12px !important; right: 12px !important; bottom: 12px !important; max-width: none !important; padding: 20px !important; }
  .kws-cookie-banner h3 { font-size: 20px !important; }
  .kws-cookie-banner p { font-size: 13px !important; margin-bottom: 14px !important; }
  .kws-cookie-banner .kws-cb-actions { flex-direction: column !important; gap: 8px !important; }
  .kws-cookie-banner button { width: 100% !important; padding: 13px 16px !important; }
  .kws-cookie-modal { padding: 12px !important; }
  .kws-cookie-modal-card { padding: 24px !important; }

  /* Footer */
  .kws-footer { padding: 64px 24px 110px !important; }
  .kws-footer .top { grid-template-columns: 1fr !important; gap: 28px !important; }
  .kws-footer h6 { font-size: 11px !important; }
  .kws-footer ul a { font-size: 15px !important; padding: 8px 0; display: inline-block; }
  .kws-footer .mark { font-size: 40px !important; }
  .kws-footer .desc { font-size: 13px !important; }
  .kws-footer .bottom { flex-direction: column !important; align-items: flex-start !important; gap: 14px !important; padding-bottom: 80px !important; padding-right: 0 !important; }
  .kws-footer .bottom > div:last-child { padding-right: 0 !important; }
  .kws-footer .bottom a { padding: 6px 0; display: inline-block; }

  /* Legal pages mobile */
  .kws-legal-hero { padding: 80px 24px 32px !important; }
  .kws-legal-h1 { font-size: clamp(40px, 11vw, 64px) !important; max-width: 100% !important; }
  .kws-legal-sub { font-size: 15px !important; }
  .kws-legal-section { padding: 24px 24px 100px !important; }
  .kws-legal-content { margin-top: 32px !important; }
  .kws-legal-content h2 { font-size: 24px !important; margin: 40px 0 12px !important; }
  .kws-legal-content h3 { font-size: 18px !important; margin: 28px 0 10px !important; }
  .kws-legal-content p, .kws-legal-content li { font-size: 15px !important; line-height: 1.65 !important; }

  /* Job board roles cards mobile - prevent 2-col cramping */
  .kws-section .kws-grid-3 { grid-template-columns: 1fr !important; }

  /* HGV/Service service-row vetting grid */
  .kws-vetting-grid { grid-template-columns: 1fr 1fr !important; gap: 20px !important; }
}

@media (max-width: 480px) {
  .kws-masthead { padding: 14px 16px !important; }
  .kws-section { padding: 48px 18px !important; }
  .kws-pagehero { padding: 64px 18px 40px !important; }
  .kws-pagehero .meta-grid { grid-template-columns: 1fr !important; }
  .kws-pagehero .right .kws-photo, .kws-pagehero .kws-photo { min-height: 220px !important; height: 220px !important; }
  .kws-vetting-grid { grid-template-columns: 1fr !important; }
  .kws-mobile-menu .kws-mm-nav a { font-size: 24px !important; }
  .kws-cookie-banner { padding: 18px !important; }
  .kws-cookie-banner h3 { font-size: 18px !important; }
}

/* WhatsApp widget safe zone - sits bottom-right ~20px from edges; ensure CTAs and footer respect it on mobile */
@media (max-width: 900px) {
  .kws-page { padding-bottom: 0; }
  .kws-cta-primary, .kws-cta-secondary { z-index: 1; }
}
/* END CP6.41 */


/* CP6.42 Mobile bug-fix pass */
@media (max-width: 900px) {
  /* Hamburger menu Privacy/Cookie - smaller, less heading-like */
  .kws-mobile-menu .kws-mm-secondary { font-family: 'Inter',sans-serif !important; font-size: 14px !important; letter-spacing: 0 !important; text-transform: none !important; color: #9A9A9A !important; padding: 8px 0 !important; font-weight: 500 !important; }
  .kws-mobile-menu .kws-mm-secondary:hover { color: #F5F5F5 !important; }
  .kws-mobile-menu .kws-mm-divider { margin: 16px 0 4px !important; }

  /* Override inline clamp() on display headlines that overflow on mobile */
  .kws-page .kws-display { word-wrap: break-word; overflow-wrap: break-word; max-width: 100%; }
  /* Fix Contact "Speak to a planner" + "Tell us what you need" overflow on mobile.
     Inline style on these elements sets clamp(72px, 11vw, 160px) which falls back to 72px below 654px viewport - far too big. */
  .kws-page section .kws-display[style*='clamp(72px'],
  .kws-page section .kws-display[style*='clamp(64px'],
  .kws-page section .kws-display[style*='11vw'] { font-size: clamp(40px, 11vw, 56px) !important; line-height: 1 !important; }
  .kws-page section .kws-display[style*='clamp(48px'],
  .kws-page section .kws-display[style*='9vw'] { font-size: clamp(36px, 9vw, 48px) !important; line-height: 1.05 !important; }
  .kws-page section .kws-display[style*='clamp(40px'],
  .kws-page section .kws-display[style*='5.5vw'],
  .kws-page section .kws-display[style*='4.5vw'] { font-size: clamp(28px, 7vw, 40px) !important; line-height: 1.05 !important; }
  .kws-page section .kws-display[style*='clamp(36px'],
  .kws-page section .kws-display[style*='5vw'] { font-size: clamp(28px, 7vw, 40px) !important; }

  /* WhatsApp widget - move higher on mobile so it doesn't sit on form CTAs */
  body .wa__btn_popup { bottom: 96px !important; right: 16px !important; }
  body .wa__popup_chat_box { bottom: 170px !important; right: 16px !important; max-width: calc(100vw - 32px) !important; }

  /* Hide WhatsApp when mobile menu is open */
  body.kws-mm-locked .wa__btn_popup,
  body.kws-mm-locked .wa__popup_chat_box,
  body.kws-mm-locked #wa { display: none !important; visibility: hidden !important; }

  /* Hide WhatsApp when cookie banner is on first visit so it doesn't stack on top */
  body:has(.kws-cookie-banner.is-visible) .wa__btn_popup { bottom: 280px !important; }

  /* Safe-bottom for sections that contain submit CTAs - prevent WhatsApp covering them */
  .kws-section.kws-register-form-section { padding-bottom: calc(160px + env(safe-area-inset-bottom)) !important; }
  #contact-form { padding-bottom: calc(160px + env(safe-area-inset-bottom)) !important; }
  .kws-cta { padding-bottom: calc(140px + env(safe-area-inset-bottom)) !important; }
  .kws-legal-section { padding-bottom: calc(160px + env(safe-area-inset-bottom)) !important; }
  .kws-page section .kws-local-cta { padding-bottom: calc(120px + env(safe-area-inset-bottom)) !important; }

  /* Footer extra safe-bottom on mobile so WhatsApp does not cover legal links */
  .kws-footer { padding-bottom: calc(140px + env(safe-area-inset-bottom)) !important; }
  .kws-footer .bottom { padding-bottom: 24px !important; }

  /* Inline style elements with margin-top: 32px etc. - reduce on mobile */
  .kws-pagehero h1, .kws-pagehero .kws-display { max-width: 100% !important; }
}

@media (max-width: 480px) {
  /* Even tighter on small phones */
  .kws-page section .kws-display[style*='clamp(72px'],
  .kws-page section .kws-display[style*='11vw'] { font-size: clamp(36px, 11vw, 48px) !important; }
  body .wa__btn_popup { bottom: 88px !important; right: 14px !important; transform: scale(0.85); transform-origin: bottom right; }
}
/* END CP6.42 */


/* CP6.43 Mobile overflow root-fix */

/* Contact page classes - desktop styling (matches what was inline before) */
.kws-contact-hero { font-size: clamp(64px, 10vw, 140px); line-height: 0.95; color: var(--kws-cream); margin-top: 32px; max-width: 100%; }
.kws-contact-intro { font-size: clamp(36px, 5vw, 56px); line-height: 1.05; margin-top: 32px; max-width: 100%; }
.kws-contact-grid { display: grid; grid-template-columns: 1fr 1.4fr; gap: 96px; max-width: 100%; }
.kws-contact-grid > * { min-width: 0; max-width: 100%; }
.kws-contact-side { min-width: 0; }
.kws-contact-side-copy { margin-top: 24px; font-size: 16px; line-height: 1.7; color: var(--kws-muted-dark); max-width: 380px; }
.kws-contact-already { margin-top: 48px; padding-top: 32px; border-top: 1px solid var(--kws-hairline); }
.kws-contact-direct { font-family: var(--kws-display); font-weight: 700; font-size: 32px; margin-top: 12px; }
.kws-contact-direct-sub { font-size: 14px; color: var(--kws-muted-dark); margin-top: 6px; }
.kws-contact-submit-row { margin-top: 24px; display: flex; gap: 16px; align-items: center; flex-wrap: wrap; }

/* GLOBAL MOBILE OVERFLOW GUARDS */
@media (max-width: 900px) {
  /* Allow grid + flex children to shrink below their intrinsic content width */
  .kws-page * { min-width: 0; }
  .kws-page img, .kws-page picture, .kws-page video, .kws-page svg { max-width: 100%; height: auto; }
  .kws-page input, .kws-page select, .kws-page textarea, .kws-page button { max-width: 100%; }

  /* Force-collapse common inline-styled grids regardless of inline declarations.
     Inline style with no !important loses to !important on a class selector. */
  [class*='kws-grid-'][style*='grid-template-columns'],
  [class*='kws-contact-grid'][style*='grid-template-columns'],
  [class*='kws-hero-wrap'][style*='grid-template-columns'] {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }

  /* Generic max-width safety on containers */
  .kws-page section, .kws-page article, .kws-page div { max-width: 100%; }
  .kws-pagehero { max-width: 100%; box-sizing: border-box; }

  /* Contact mobile */
  .kws-contact-hero-section { padding: 64px 20px 32px !important; }
  .kws-contact-meta-section { padding-top: 0 !important; padding-left: 20px !important; padding-right: 20px !important; }
  .kws-contact-form-section { padding: 56px 20px 100px !important; }
  .kws-contact-hero { font-size: clamp(40px, 11vw, 56px) !important; line-height: 1 !important; margin-top: 20px !important; word-break: normal; overflow-wrap: break-word; }
  .kws-contact-intro { font-size: clamp(30px, 8vw, 44px) !important; line-height: 1.1 !important; }
  .kws-contact-grid { display: grid !important; grid-template-columns: 1fr !important; gap: 36px !important; }
  .kws-contact-side-copy { max-width: 100% !important; font-size: 15px !important; }
  .kws-contact-direct { font-size: 26px !important; }

  /* Re-apply min-width:0 to grid items already targeted in CP6.41 to prevent overflow when a long word is present */
  .kws-grid-2 > *, .kws-grid-2-1 > *, .kws-grid-1-2 > *, .kws-grid-3 > *, .kws-row-meta > *,
  .kws-coverage-grid > *, .kws-trust-grid > *, .kws-op-grid > *, .kws-loc-grid > *,
  .kws-scenario > *, .kws-vetting-grid > *, .kws-register-cta-grid > *, .kws-hero-wrap > * { min-width: 0 !important; max-width: 100% !important; }

  /* Long unbreakable strings (URLs, emails) wrap on mobile */
  .kws-page p, .kws-page li, .kws-page a, .kws-page span { overflow-wrap: anywhere; }

  /* Form panels */
  .kws-contact-form-wrap, .kws-register-form-wrap { max-width: 100% !important; min-width: 0 !important; }
  .kws-contact-form-wrap form, .kws-register-form-wrap form { max-width: 100% !important; }

  /* Footer columns hard-collapse */
  .kws-footer .top { display: grid !important; grid-template-columns: 1fr !important; gap: 28px !important; }
  .kws-footer .top > * { min-width: 0 !important; max-width: 100% !important; }
}

@media (max-width: 480px) {
  .kws-contact-hero-section { padding: 48px 18px 28px !important; }
  .kws-contact-form-section { padding: 48px 18px 100px !important; }
  .kws-contact-hero { font-size: clamp(36px, 11vw, 48px) !important; }
  .kws-contact-intro { font-size: clamp(26px, 8vw, 36px) !important; }
  .kws-contact-direct { font-size: 24px !important; }
  .kws-page p, .kws-page li { font-size: 14px; }
}
/* END CP6.43 */


/* CP6.44 Contact form: dark Fluent Form chrome scoped to .kws-contact-form-wrap */
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form,
body .kws-page.dark .kws-contact-form-wrap .ff-default { background: transparent !important; color: #F5F5F5 !important; max-width: 100% !important; }
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form fieldset,
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff-el-group,
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff-el-input--content { max-width: 100% !important; box-sizing: border-box !important; }
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form input[type='text'],
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form input[type='email'],
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form input[type='tel'],
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form input[type='url'],
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form input[type='number'],
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form select,
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form textarea,
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff-el-form-control { background: #2B2B2B !important; border: 1px solid rgba(255,255,255,0.12) !important; color: #F5F5F5 !important; padding: 16px 18px !important; font-family: 'Inter',sans-serif !important; font-size: 16px !important; border-radius: 0 !important; box-shadow: none !important; transition: border-color 200ms ease !important; max-width: 100% !important; box-sizing: border-box !important; }
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form input::placeholder,
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form textarea::placeholder { color: #6B6B6B !important; opacity: 1 !important; }
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form input:focus,
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form select:focus,
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form textarea:focus { border-color: #D90429 !important; outline: none !important; box-shadow: 0 0 0 1px rgba(217,4,41,0.2) !important; }
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form label,
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff-el-input--label label { color: #9A9A9A !important; font-family: 'JetBrains Mono','SF Mono',monospace !important; font-size: 11px !important; letter-spacing: 0.18em !important; text-transform: uppercase !important; font-weight: 500 !important; margin-bottom: 8px !important; }
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff-el-is-required.asterisk-right > label:after,
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff_required { color: #D90429 !important; }
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form button,
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form button[type='submit'],
body .kws-page.dark .kws-contact-form-wrap .ff-btn-submit,
body .kws-page.dark .kws-contact-form-wrap .ff-btn { background: #D90429 !important; color: #F5F5F5 !important; border: 1px solid #D90429 !important; padding: 18px 32px !important; font-family: 'JetBrains Mono','SF Mono',monospace !important; font-size: 12px !important; letter-spacing: 0.22em !important; text-transform: uppercase !important; font-weight: 600 !important; border-radius: 0 !important; cursor: pointer; line-height: 1; transition: background-color 200ms ease, border-color 200ms ease, transform 200ms ease !important; }
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form button:hover,
body .kws-page.dark .kws-contact-form-wrap .ff-btn-submit:hover { background: #FF1E1E !important; border-color: #FF1E1E !important; transform: translateX(4px); }

/* GDPR consent label::before checkbox visual scoped to contact form */
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff-el-form-check input[type='checkbox'] { position: absolute !important; left: -9999px !important; opacity: 0 !important; pointer-events: none !important; width: 1px !important; height: 1px !important; }
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff-el-form-check { display: flex !important; align-items: flex-start !important; gap: 0 !important; padding: 18px 0 !important; max-width: 100% !important; flex-wrap: nowrap !important; }
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff-el-form-check .ff-el-form-check-label { display: flex !important; align-items: flex-start !important; gap: 14px !important; cursor: pointer !important; color: #F5F5F5 !important; font-family: 'Inter',sans-serif !important; font-size: 13px !important; line-height: 1.55 !important; text-transform: none !important; letter-spacing: 0 !important; font-weight: 400 !important; padding: 0 !important; max-width: 100% !important; }
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff-el-form-check .ff-el-form-check-label::before { content: '' !important; display: inline-block !important; flex-shrink: 0 !important; width: 22px !important; height: 22px !important; background: #050505 !important; border: 2px solid #F5F5F5 !important; border-radius: 0 !important; box-sizing: border-box !important; margin-top: 1px !important; transition: background-color 200ms ease, border-color 200ms ease !important; }
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff-el-form-check .ff-el-form-check-label:hover::before { border-color: #FF1E1E !important; }
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff-el-form-check:has(input[type='checkbox']:checked) .ff-el-form-check-label::before { background: #D90429 !important; border-color: #D90429 !important; }
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff-el-form-check .ff-el-form-check-label a { color: #F5F5F5 !important; text-decoration: underline !important; text-underline-offset: 3px !important; }
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff-el-form-check .ff-el-form-check-label a:hover { color: #D90429 !important; }

/* Mobile - contact form full-width single column */
@media (max-width: 900px) {
  body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff-el-form-control { padding: 14px 16px !important; }
  body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form button { width: 100% !important; justify-content: space-between !important; padding: 16px 20px !important; display: flex !important; }
}
/* END CP6.44 */


/* CP6.45 Contact checkbox FINAL: visible native input that toggles crimson on :checked.
   Replaces the prior label::before pseudo-element approach because :has() is not
   universally supported and the checked state was not visually persisting. */

/* Reset the prior hide-offscreen rule and the pseudo-element approach */
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff-el-form-check input[type='checkbox'] { position: static !important; left: auto !important; opacity: 1 !important; pointer-events: auto !important; visibility: visible !important; display: inline-block !important; appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; width: 22px !important; height: 22px !important; min-width: 22px !important; max-width: 22px !important; min-height: 22px !important; max-height: 22px !important; flex: 0 0 22px !important; margin: 1px 0 0 0 !important; padding: 0 !important; background: #050505 !important; border: 2px solid #F5F5F5 !important; border-radius: 0 !important; cursor: pointer !important; box-shadow: none !important; transition: background-color 200ms ease, border-color 200ms ease !important; box-sizing: border-box !important; position: relative !important; }
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff-el-form-check input[type='checkbox']:hover { border-color: #FF1E1E !important; }
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff-el-form-check input[type='checkbox']:checked { background: #D90429 !important; border-color: #D90429 !important; }
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff-el-form-check input[type='checkbox']:checked::after { content: '' !important; position: absolute !important; left: 5px !important; top: 0px !important; width: 6px !important; height: 12px !important; border: solid #F5F5F5 !important; border-width: 0 2px 2px 0 !important; transform: rotate(45deg) !important; }

/* Disable the label::before pseudo-element that was being used as the fake checkbox */
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff-el-form-check .ff-el-form-check-label::before { content: none !important; display: none !important; }

/* Make the consent row layout robust: input + label on a row, label fills remaining space and wraps cleanly */
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff-el-form-check { display: flex !important; align-items: flex-start !important; gap: 14px !important; padding: 18px 0 !important; max-width: 100% !important; flex-wrap: nowrap !important; box-sizing: border-box !important; }
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff-el-form-check .ff-el-form-check-label { display: block !important; flex: 1 1 auto !important; min-width: 0 !important; max-width: 100% !important; cursor: pointer !important; color: #F5F5F5 !important; font-family: 'Inter',sans-serif !important; font-size: 13px !important; line-height: 1.55 !important; text-transform: none !important; letter-spacing: 0 !important; font-weight: 400 !important; padding: 0 !important; word-wrap: break-word !important; overflow-wrap: break-word !important; word-break: normal !important; white-space: normal !important; }

/* Same fixes mirrored for register form */
body .kws-page.dark .kws-register-form-wrap .frm-fluent-form .ff-el-form-check input[type='checkbox'] { position: static !important; left: auto !important; opacity: 1 !important; pointer-events: auto !important; visibility: visible !important; display: inline-block !important; appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; width: 22px !important; height: 22px !important; min-width: 22px !important; max-width: 22px !important; min-height: 22px !important; max-height: 22px !important; flex: 0 0 22px !important; margin: 1px 0 0 0 !important; padding: 0 !important; background: #050505 !important; border: 2px solid #F5F5F5 !important; border-radius: 0 !important; cursor: pointer !important; box-shadow: none !important; transition: background-color 200ms ease, border-color 200ms ease !important; box-sizing: border-box !important; position: relative !important; }
body .kws-page.dark .kws-register-form-wrap .frm-fluent-form .ff-el-form-check input[type='checkbox']:hover { border-color: #FF1E1E !important; }
body .kws-page.dark .kws-register-form-wrap .frm-fluent-form .ff-el-form-check input[type='checkbox']:checked { background: #D90429 !important; border-color: #D90429 !important; }
body .kws-page.dark .kws-register-form-wrap .frm-fluent-form .ff-el-form-check input[type='checkbox']:checked::after { content: '' !important; position: absolute !important; left: 5px !important; top: 0px !important; width: 6px !important; height: 12px !important; border: solid #F5F5F5 !important; border-width: 0 2px 2px 0 !important; transform: rotate(45deg) !important; }
body .kws-page.dark .kws-register-form-wrap .frm-fluent-form .ff-el-form-check .ff-el-form-check-label::before { content: none !important; display: none !important; }
body .kws-page.dark .kws-register-form-wrap .frm-fluent-form .ff-el-form-check { display: flex !important; align-items: flex-start !important; gap: 14px !important; padding: 18px 0 !important; max-width: 100% !important; flex-wrap: nowrap !important; box-sizing: border-box !important; }
body .kws-page.dark .kws-register-form-wrap .frm-fluent-form .ff-el-form-check .ff-el-form-check-label { display: block !important; flex: 1 1 auto !important; min-width: 0 !important; max-width: 100% !important; cursor: pointer !important; color: #F5F5F5 !important; font-family: 'Inter',sans-serif !important; font-size: 13px !important; line-height: 1.55 !important; text-transform: none !important; letter-spacing: 0 !important; font-weight: 400 !important; padding: 0 !important; word-wrap: break-word !important; overflow-wrap: break-word !important; word-break: normal !important; white-space: normal !important; }

@media (max-width: 700px) {
  body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff-el-form-check,
  body .kws-page.dark .kws-register-form-wrap .frm-fluent-form .ff-el-form-check { gap: 12px !important; padding: 14px 0 !important; }
  body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff-el-form-check .ff-el-form-check-label,
  body .kws-page.dark .kws-register-form-wrap .frm-fluent-form .ff-el-form-check .ff-el-form-check-label { font-size: 12px !important; line-height: 1.6 !important; }
}
/* END CP6.45 */


/* ============================================================
 * CP6.46 - Definitive contact-form GDPR checkbox
 * Bright crimson border, matte black unchecked, fills crimson on check.
 * Mobile: tighten font + ensure label wraps inside panel.
 * Privacy Policy link inside label is crimson, not white.
 * ============================================================ */
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff-el-form-check,
body .kws-page.dark .kws-register-form-wrap .frm-fluent-form .ff-el-form-check {
  display: flex !important; align-items: flex-start !important;
  gap: 12px !important; flex-wrap: nowrap !important;
  margin-top: 16px !important;
}
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff-el-form-check input[type='checkbox'],
body .kws-page.dark .kws-register-form-wrap .frm-fluent-form .ff-el-form-check input[type='checkbox'] {
  position: static !important; opacity: 1 !important; pointer-events: auto !important;
  display: inline-block !important;
  -webkit-appearance: none !important; -moz-appearance: none !important; appearance: none !important;
  width: 24px !important; height: 24px !important; min-width: 24px !important;
  flex: 0 0 24px !important;
  background: #050505 !important;
  background-color: #050505 !important;
  border: 3px solid #D90429 !important;
  border-radius: 3px !important;
  cursor: pointer !important;
  box-shadow: 0 0 0 1px rgba(217,4,41,0.25) !important;
  transition: background .15s ease, border-color .15s ease, box-shadow .15s ease !important;
  margin: 2px 0 0 0 !important;
  position: relative !important; top: 0 !important;
  vertical-align: top !important;
}
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff-el-form-check input[type='checkbox']:hover,
body .kws-page.dark .kws-register-form-wrap .frm-fluent-form .ff-el-form-check input[type='checkbox']:hover {
  border-color: #FF1E1E !important;
  box-shadow: 0 0 0 2px rgba(255,30,30,0.45) !important;
}
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff-el-form-check input[type='checkbox']:checked,
body .kws-page.dark .kws-register-form-wrap .frm-fluent-form .ff-el-form-check input[type='checkbox']:checked {
  background: #D90429 !important;
  background-color: #D90429 !important;
  border-color: #FFFFFF !important;
  box-shadow: 0 0 0 2px rgba(217,4,41,0.55) !important;
}
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff-el-form-check input[type='checkbox']:checked::after,
body .kws-page.dark .kws-register-form-wrap .frm-fluent-form .ff-el-form-check input[type='checkbox']:checked::after {
  content: '' !important; position: absolute !important;
  left: 6px !important; top: 1px !important;
  width: 7px !important; height: 13px !important;
  border: solid #FFFFFF !important;
  border-width: 0 3px 3px 0 !important;
  transform: rotate(45deg) !important;
}
/* Kill the older label::before pseudo-element approach */
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff-el-form-check .ff-el-form-check-label::before,
body .kws-page.dark .kws-register-form-wrap .frm-fluent-form .ff-el-form-check .ff-el-form-check-label::before {
  content: none !important; display: none !important;
}
/* Label wraps cleanly, allows shrink in flex */
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff-el-form-check .ff-el-form-check-label,
body .kws-page.dark .kws-register-form-wrap .frm-fluent-form .ff-el-form-check .ff-el-form-check-label {
  display: block !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
  max-width: 100% !important;
  width: auto !important;
  word-wrap: break-word !important;
  overflow-wrap: break-word !important;
  white-space: normal !important;
  color: rgba(245,245,245,0.85) !important;
  font-size: 13px !important;
  line-height: 1.55 !important;
  padding: 0 !important;
  margin: 0 !important;
  letter-spacing: 0 !important;
}
/* Crimson links inside the consent label, not white */
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff-el-form-check .ff-el-form-check-label a,
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff-el-form-check label a,
body .kws-page.dark .kws-register-form-wrap .frm-fluent-form .ff-el-form-check .ff-el-form-check-label a,
body .kws-page.dark .kws-register-form-wrap .frm-fluent-form .ff-el-form-check label a {
  color: #FF1E1E !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
  font-weight: 600 !important;
}
body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff-el-form-check .ff-el-form-check-label a:hover,
body .kws-page.dark .kws-register-form-wrap .frm-fluent-form .ff-el-form-check .ff-el-form-check-label a:hover {
  color: #FFFFFF !important;
}
/* Mobile: tighten font + ensure containment inside the form panel */
@media (max-width: 700px) {
  body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff-el-form-check,
  body .kws-page.dark .kws-register-form-wrap .frm-fluent-form .ff-el-form-check {
    gap: 10px !important;
    align-items: flex-start !important;
    padding: 0 !important;
  }
  body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff-el-form-check .ff-el-form-check-label,
  body .kws-page.dark .kws-register-form-wrap .frm-fluent-form .ff-el-form-check .ff-el-form-check-label {
    font-size: 11.5px !important;
    line-height: 1.5 !important;
    word-break: break-word !important;
    hyphens: auto !important;
    -webkit-hyphens: auto !important;
  }
  body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff-el-form-check input[type='checkbox'],
  body .kws-page.dark .kws-register-form-wrap .frm-fluent-form .ff-el-form-check input[type='checkbox'] {
    width: 22px !important; height: 22px !important; min-width: 22px !important;
    flex: 0 0 22px !important;
  }
  body .kws-page.dark .kws-contact-form-wrap .frm-fluent-form .ff-el-form-check input[type='checkbox']:checked::after,
  body .kws-page.dark .kws-register-form-wrap .frm-fluent-form .ff-el-form-check input[type='checkbox']:checked::after {
    left: 5px !important; top: 0px !important;
    width: 7px !important; height: 12px !important;
  }
}
/* END CP6.46 */


/* CP6.46b - Neutralise Fluent Form ff_list_buttons span styling that paints white box */
body .kws-page.dark .kws-contact-form-wrap .fluentform .ff-el-group.ff_list_buttons .ff-el-form-check,
body .kws-page.dark .kws-register-form-wrap .fluentform .ff-el-group.ff_list_buttons .ff-el-form-check {
  display: flex !important; align-items: flex-start !important;
  gap: 12px !important; width: 100% !important; float: none !important;
  margin: 16px 0 0 0 !important; padding: 0 !important;
  border: 0 !important; background: transparent !important; position: static !important;
}
body .kws-page.dark .kws-contact-form-wrap .fluentform .ff-el-group.ff_list_buttons .ff-el-form-check input,
body .kws-page.dark .kws-register-form-wrap .fluentform .ff-el-group.ff_list_buttons .ff-el-form-check input {
  position: static !important; opacity: 1 !important; z-index: auto !important;
  pointer-events: auto !important; margin: 2px 0 0 0 !important;
}
body .kws-page.dark .kws-contact-form-wrap .fluentform .ff-el-group.ff_list_buttons .ff-el-form-check label,
body .kws-page.dark .kws-register-form-wrap .fluentform .ff-el-group.ff_list_buttons .ff-el-form-check label {
  display: flex !important; flex: 1 1 auto !important;
  min-width: 0 !important; max-width: 100% !important; width: auto !important;
  gap: 12px !important; align-items: flex-start !important;
  margin: 0 !important; padding: 0 !important;
  background: transparent !important; border: 0 !important; cursor: pointer !important;
}
body .kws-page.dark .kws-contact-form-wrap .fluentform .ff-el-group.ff_list_buttons .ff-el-form-check label > span,
body .kws-page.dark .kws-contact-form-wrap .fluentform .ff-el-group.ff_list_buttons .ff-el-form-check-label > span,
body .kws-page.dark .kws-register-form-wrap .fluentform .ff-el-group.ff_list_buttons .ff-el-form-check label > span,
body .kws-page.dark .kws-register-form-wrap .fluentform .ff-el-group.ff_list_buttons .ff-el-form-check-label > span {
  appearance: auto !important; -webkit-appearance: auto !important;
  background: transparent !important; background-color: transparent !important;
  border: 0 !important; border-radius: 0 !important; border-image: none !important;
  box-shadow: none !important;
  color: rgba(245,245,245,0.85) !important;
  display: inline !important; flex: 1 1 auto !important;
  min-width: 0 !important; max-width: 100% !important; width: auto !important;
  margin: 0 !important; padding: 0 !important;
  font-size: 13px !important; line-height: 1.55 !important; letter-spacing: 0 !important;
  text-align: left !important; text-transform: none !important;
  word-wrap: break-word !important; overflow-wrap: break-word !important; white-space: normal !important;
}
body .kws-page.dark .kws-contact-form-wrap .fluentform .ff-el-form-check a,
body .kws-page.dark .kws-register-form-wrap .fluentform .ff-el-form-check a,
body .kws-page.dark .kws-contact-form-wrap .fluentform .ff-el-form-check label span a,
body .kws-page.dark .kws-register-form-wrap .fluentform .ff-el-form-check label span a {
  color: #FF1E1E !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
  font-weight: 600 !important;
  background: transparent !important;
}
@media (max-width: 700px) {
  body .kws-page.dark .kws-contact-form-wrap .fluentform .ff-el-group.ff_list_buttons .ff-el-form-check label > span,
  body .kws-page.dark .kws-register-form-wrap .fluentform .ff-el-group.ff_list_buttons .ff-el-form-check label > span {
    font-size: 11.5px !important;
    line-height: 1.5 !important;
    word-break: break-word !important;
  }
}
/* END CP6.46b */


/* CP6.46c - Higher-specificity :checked override (above ff_list_buttons selector) */
body .kws-page.dark .kws-contact-form-wrap .fluentform .ff-el-group.ff_list_buttons .ff-el-form-check input:checked,
body .kws-page.dark .kws-register-form-wrap .fluentform .ff-el-group.ff_list_buttons .ff-el-form-check input:checked,
body .kws-page.dark .kws-contact-form-wrap .fluentform .ff-el-group.ff_list_buttons .ff-el-form-check input[type='checkbox']:checked,
body .kws-page.dark .kws-register-form-wrap .fluentform .ff-el-group.ff_list_buttons .ff-el-form-check input[type='checkbox']:checked {
  background: #D90429 !important;
  background-color: #D90429 !important;
  border-color: #FFFFFF !important;
  box-shadow: 0 0 0 2px rgba(217,4,41,0.55) !important;
}
body .kws-page.dark .kws-contact-form-wrap .fluentform .ff-el-group.ff_list_buttons .ff-el-form-check input:checked::after,
body .kws-page.dark .kws-register-form-wrap .fluentform .ff-el-group.ff_list_buttons .ff-el-form-check input:checked::after {
  content: '' !important;
  position: absolute !important;
  left: 6px !important; top: 1px !important;
  width: 7px !important; height: 13px !important;
  border: solid #FFFFFF !important;
  border-width: 0 3px 3px 0 !important;
  transform: rotate(45deg) !important;
  display: block !important;
}
/* END CP6.46c */


/* CP6.47 — Mobile-only Call now CTA in masthead */
/* Default: hidden on desktop */
.kws-masthead .kws-mobile-call {
  display: none;
}
/* Show on mobile, sit between nav and burger */
@media (max-width: 900px) {
  .kws-masthead .kws-mobile-call {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #D90429 !important;
    color: #F5F5F5 !important;
    text-decoration: none !important;
    font-family: 'Barlow Condensed', 'Inter', system-ui, sans-serif !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
    font-size: 13px !important;
    line-height: 1 !important;
    padding: 9px 14px !important;
    border-radius: 4px !important;
    border: 1px solid #D90429 !important;
    margin-right: 10px !important;
    white-space: nowrap !important;
    transition: background .15s ease, border-color .15s ease, color .15s ease !important;
    box-shadow: 0 1px 0 rgba(0,0,0,0.2) !important;
  }
  .kws-masthead .kws-mobile-call:hover,
  .kws-masthead .kws-mobile-call:focus,
  .kws-masthead .kws-mobile-call:active {
    background: #FF1E1E !important;
    border-color: #FF1E1E !important;
    color: #FFFFFF !important;
  }
  .kws-masthead .kws-mobile-call span {
    display: inline-block !important;
  }
}
/* Smaller phones: tighten padding */
@media (max-width: 380px) {
  .kws-masthead .kws-mobile-call {
    font-size: 12px !important;
    padding: 8px 11px !important;
    margin-right: 8px !important;
  }
}
/* END CP6.47-mobile-call */


/* CP6.48 — Mobile: kill black gap above hero, tighten masthead, pull Call now closer to burger */
@media (max-width: 900px) {
  /* Drop the page-container top padding on KWS template pages so masthead sits flush */
  body[class*="page-template-template-kws-"] #page-container {
    padding-top: 0 !important;
  }
  body[class*="page-template-template-kws-"].admin-bar #page-container {
    padding-top: 46px !important; /* keep WP admin bar offset for logged-in users */
  }
  /* Tighten masthead top padding on mobile */
  .kws-masthead {
    padding: 12px 20px !important;
  }
  /* Page hero: drop top padding so the hero starts close to the masthead */
  .kws-pagehero {
    padding: 40px 24px 48px !important;
  }
  /* Home hero variant */
  .kws-page-home .kws-hero,
  body[class*="page-template-template-kws-home"] .kws-hero {
    padding: 40px 24px 48px !important;
  }
  /* Any first section (sometimes pages don't use pagehero) */
  .kws-page.dark > section.kws-section:first-of-type,
  .kws-page.dark > .kws-masthead + section,
  .kws-page.dark > .kws-masthead + .kws-section,
  .kws-page.dark .kws-masthead ~ section.kws-section:first-of-type {
    padding-top: 40px !important;
  }
  /* Pull Call now closer to the hamburger */
  .kws-masthead .kws-mobile-call {
    margin-right: 4px !important;
  }
  .kws-masthead .kws-burger {
    margin-left: 0 !important;
  }
}
@media (max-width: 480px) {
  .kws-masthead {
    padding: 10px 16px !important;
  }
  .kws-pagehero {
    padding: 32px 18px 36px !important;
  }
  .kws-page-home .kws-hero,
  body[class*="page-template-template-kws-home"] .kws-hero {
    padding: 32px 18px 36px !important;
  }
  .kws-page.dark > section.kws-section:first-of-type,
  .kws-page.dark > .kws-masthead + section,
  .kws-page.dark > .kws-masthead + .kws-section,
  .kws-page.dark .kws-masthead ~ section.kws-section:first-of-type {
    padding-top: 32px !important;
  }
  .kws-masthead .kws-mobile-call {
    margin-right: 2px !important;
  }
}
/* END CP6.48 */


/* CP6.49 — Mobile masthead: kill the space-between gap so Call now sits flush next to burger */
@media (max-width: 900px) {
  /* Push Call now and Burger as a tight pair to the right edge */
  .kws-masthead .kws-mobile-call {
    margin-left: auto !important;
    margin-right: 6px !important;
  }
  .kws-masthead .kws-burger {
    margin-left: 0 !important;
  }
}
@media (max-width: 480px) {
  .kws-masthead .kws-mobile-call {
    margin-left: auto !important;
    margin-right: 4px !important;
  }
}
/* END CP6.49 */


/* CP6.50 — URGENT mobile regression: Locations page columns collapse correctly */
/* Inline-style grid-template-columns on .kws-loc-context, .kws-loc-context-grid, kws-grid-* must be overridden on mobile */
@media (max-width: 900px) {
  /* Outer 2-column grid in Local context section */
  .kws-page.dark .kws-loc-context {
    display: block !important;
    grid-template-columns: 1fr !important;
    gap: 24px !important;
    margin-top: 48px !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  /* Inner 2-column paragraph grid */
  .kws-page.dark .kws-loc-context-grid {
    display: block !important;
    grid-template-columns: 1fr !important;
    gap: 20px !important;
    margin-top: 24px !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  /* Each direct child of these grids becomes full-width block */
  .kws-page.dark .kws-loc-context > *,
  .kws-page.dark .kws-loc-context-grid > * {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-bottom: 16px !important;
  }
  .kws-page.dark .kws-loc-context > *:last-child,
  .kws-page.dark .kws-loc-context-grid > *:last-child {
    margin-bottom: 0 !important;
  }
  /* Paragraphs inside these grids: normal wrapping */
  .kws-page.dark .kws-loc-context p,
  .kws-page.dark .kws-loc-context-grid p {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
    -webkit-hyphens: auto;
    hyphens: auto;
    font-size: 15px !important;
    line-height: 1.65 !important;
  }
  /* Generic kws-grid-2 / kws-grid-2-1 / kws-grid-1-2 / kws-grid-3 used across the template — collapse to single column */
  .kws-page.dark .kws-grid-2,
  .kws-page.dark .kws-grid-2-1,
  .kws-page.dark .kws-grid-1-2,
  .kws-page.dark .kws-grid-3 {
    display: block !important;
    grid-template-columns: 1fr !important;
    gap: 24px !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  .kws-page.dark .kws-grid-2 > *,
  .kws-page.dark .kws-grid-2-1 > *,
  .kws-page.dark .kws-grid-1-2 > *,
  .kws-page.dark .kws-grid-3 > * {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-bottom: 24px !important;
  }
  .kws-page.dark .kws-grid-2 > *:last-child,
  .kws-page.dark .kws-grid-2-1 > *:last-child,
  .kws-page.dark .kws-grid-1-2 > *:last-child,
  .kws-page.dark .kws-grid-3 > *:last-child {
    margin-bottom: 0 !important;
  }
  /* Within the corridor: location grid becomes single column on mobile */
  .kws-page.dark .kws-loc-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 16px !important;
    width: 100% !important;
  }
  .kws-page.dark .kws-loc-grid .cell {
    min-width: 0 !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
  }
  .kws-page.dark .kws-loc-grid .cell .name,
  .kws-page.dark .kws-loc-grid .cell .meta {
    word-break: normal !important;
    overflow-wrap: break-word !important;
    white-space: normal !important;
  }
  /* Sectors local to ledger rows: stack the 2 columns on mobile */
  .kws-page.dark .kws-ledger-row {
    grid-template-columns: 1fr !important;
    gap: 6px !important;
  }
  .kws-page.dark .kws-ledger-row > * {
    width: 100% !important;
    min-width: 0 !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
    white-space: normal !important;
  }
  /* Local CTA bar (Local team / Local pool + Hire in [town] button) */
  .kws-page.dark .kws-local-cta {
    display: block !important;
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
  .kws-page.dark .kws-local-cta > * {
    width: 100% !important;
    min-width: 0 !important;
    margin-bottom: 16px !important;
  }
  /* Row-meta cells (Operating from / Coverage / Channel ports / Sectors) */
  .kws-page.dark .kws-row-meta {
    grid-template-columns: 1fr 1fr !important;
    gap: 18px 14px !important;
  }
  .kws-page.dark .kws-row-meta .cell {
    min-width: 0 !important;
    width: 100% !important;
  }
  .kws-page.dark .kws-row-meta .cell .val,
  .kws-page.dark .kws-row-meta .cell .val-sm {
    font-size: 18px !important;
    line-height: 1.2 !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
    white-space: normal !important;
    max-width: 100% !important;
  }
  /* Belt-and-braces against any text container collapsing into a vertical letter stack */
  .kws-page.dark .kws-loc-context *,
  .kws-page.dark .kws-loc-context-grid *,
  .kws-page.dark .kws-row-meta * {
    word-break: normal !important;
    overflow-wrap: break-word !important;
    white-space: normal !important;
    writing-mode: horizontal-tb !important;
  }
}
@media (max-width: 480px) {
  .kws-page.dark .kws-loc-grid {
    grid-template-columns: 1fr !important;
  }
  .kws-page.dark .kws-row-meta {
    grid-template-columns: 1fr !important;
  }
  .kws-page.dark .kws-loc-context p,
  .kws-page.dark .kws-loc-context-grid p {
    font-size: 14px !important;
    line-height: 1.6 !important;
  }
}
/* END CP6.50 */


/* CP6.51 — responsive copy helpers: swap text fragments by viewport */
/* Default: show desktop wording, hide mobile wording */
.kws-text-desktop { display: inline; }
.kws-text-mobile  { display: none; }
@media (max-width: 900px) {
  .kws-text-desktop { display: none !important; }
  .kws-text-mobile  { display: inline !important; }
}
/* END CP6.51 */


/* CP6.57h1-css — make h1.kws-display behave like the div it replaced */
h1.kws-display, h1.kws-display.kws-h1 {
  margin: 0 !important;
  padding: 0 !important;
  font-weight: inherit;
  display: block;
}


/* CP6.57-footer-nap-css — compact visible NAP block beneath footer columns */
.kws-footer .kws-footer-nap {
  border-top: 1px solid var(--kws-hairline-dark, rgba(255,255,255,0.08));
  margin-top: 32px;
  padding-top: 20px;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px 18px;
  font-size: 12px;
  letter-spacing: 0.02em;
  color: var(--kws-muted-dark, rgba(245,245,245,0.55));
  line-height: 1.5;
}
.kws-footer .kws-footer-nap p { margin: 0; }
.kws-footer .kws-footer-nap__name { font-weight: 600; color: var(--kws-text-on-dark, rgba(245,245,245,0.85)); }
.kws-footer .kws-footer-nap__contact a { color: var(--kws-text-on-dark, rgba(245,245,245,0.85)); text-decoration: none; }
.kws-footer .kws-footer-nap__contact a:hover { color: var(--kws-accent, #FF1E1E); text-decoration: underline; }
.kws-footer .kws-footer-nap__lic { color: var(--kws-muted-dark, rgba(245,245,245,0.45)); }
@media (max-width: 700px) {
  .kws-footer .kws-footer-nap {
    flex-direction: column;
    gap: 4px;
    padding-top: 16px;
    margin-top: 24px;
  }
}
