/* =====================================================================
   DOT Services — alternative page layouts (A–E)
   A  Guide with sticky contents     (.lay-a)
   B  Split hero + spec-sheet rows   (.lay-b)
   C  Numbered editorial chapters    (.lay-c)
   D  Timeline rail                  (.lay-d)
   E  Bento tiles / directory        (.lay-e)
   Only loaded on the pages that use one of these layouts.
   ===================================================================== */

/* ---------- shared base ---------- */
.lay {
  --ink:#0A0A0A; --charcoal:#2B2B2B; --mid:#5C5C5C; --grey:#767676;
  --line:#E0E0E0; --hair:#EDEDED; --off:#F7F7F7;
  --acc:var(--accent,#E4652A); --acc-t:var(--accent-text,#B8461A);
  max-width:none !important; margin:0 !important; padding:0 !important;
  background:#fff !important; border-radius:0 !important;
  font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; font-weight:300;
  color:var(--charcoal); line-height:1.65; font-size:16px;
}
.lay *, .lay *::before, .lay *::after { box-sizing:border-box; }
.lay.lay h1, .lay.lay h2, .lay.lay h3, .lay.lay h4 {
  font-family:'Avenir','Poppins','Century Gothic',sans-serif; color:var(--ink);
  margin:0; font-weight:800; letter-spacing:-.02em;
}
.lay .lw { max-width:1240px; margin:0 auto; padding:0 32px; }
.lay .lkick {
  display:inline-flex; align-items:center; gap:12px;
  font-family:'Avenir','Poppins',sans-serif; font-size:11px; font-weight:700;
  letter-spacing:.2em; text-transform:uppercase; color:var(--grey);
}
.lay .lkick::before { content:''; width:26px; height:2px; background:var(--acc); flex-shrink:0; }
.lay .lbtns { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.lay .lbtn {
  display:inline-block; font-family:'Avenir','Poppins',sans-serif; font-weight:700;
  font-size:13px; letter-spacing:.1em; text-transform:uppercase; padding:16px 30px;
  text-decoration:none; transition:background .25s, color .25s, border-color .25s;
}
.lay .lbtn-solid { background:var(--ink); color:#fff; border:1px solid var(--ink); }
.lay .lbtn-solid:hover { background:var(--acc); border-color:var(--acc); color:var(--ink); }
.lay .lbtn-line { background:transparent; color:var(--ink); border:1px solid var(--ink); }
.lay .lbtn-line:hover { background:var(--ink); color:#fff; }
.lay .ondark .lbtn-solid { background:#fff; color:var(--ink); border-color:#fff; }
.lay .ondark .lbtn-solid:hover { background:var(--acc); border-color:var(--acc); color:var(--ink); }
.lay .ondark .lbtn-line { color:#fff; border-color:rgba(255,255,255,.4); }
.lay .ondark .lbtn-line:hover { background:#fff; color:var(--ink); }

/* FAQ (shared) */
.lay .lfaq details { border-bottom:1px solid var(--line); padding:20px 0; }
.lay .lfaq details:first-child { border-top:1px solid var(--line); }
.lay .lfaq summary {
  list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:20px;
  font-family:'Avenir','Poppins',sans-serif; font-weight:700; font-size:16px; color:var(--ink); line-height:1.4;
}
.lay .lfaq summary::-webkit-details-marker { display:none; }
.lay .lfaq summary::after { content:'+'; font-size:24px; font-weight:300; color:var(--grey); flex-shrink:0; transition:transform .3s, color .2s; }
.lay .lfaq details[open] summary::after { content:'\2212'; color:var(--acc-t); }
.lay .lfaq details:not([open]) summary:hover::after { transform:rotate(90deg); }
.lay .lfaq .lfaq-a p { font-size:15px; line-height:1.7; color:var(--mid); margin:12px 0 0; max-width:700px; }

/* bring legacy components from the older pages into line (square, flat) */
.lay [class*="-card"], .lay [class*="-chip"], .lay [class*="quick-answer"],
.lay [class*="-note"], .lay [class*="-disclaimer"], .lay [class*="-row"] { border-radius:0 !important; box-shadow:none !important; }
.lay .section-title, .lay .section-sub { padding:0 !important; }

/* ===================================================================
   A — GUIDE WITH STICKY CONTENTS
   =================================================================== */
.lay-a .la-hero { background:var(--off); border-bottom:1px solid var(--line); padding:84px 0 72px; }
.lay-a .la-hero-grid { display:grid; grid-template-columns:1.35fr 1fr; gap:64px; align-items:end; }
.lay-a.lay .la-hero h1 { font-size:54px; line-height:1.02; letter-spacing:-.035em; margin:22px 0 20px; max-width:15ch; }
.lay-a .la-lead p { font-size:18px; line-height:1.65; color:var(--mid); margin:0; max-width:560px; font-weight:300; }
.lay-a .la-short { background:var(--ink); color:rgba(255,255,255,.86); padding:32px 34px; font-size:16px; line-height:1.7; border-top:4px solid var(--acc); }
.lay-a .la-short p { margin:0; color:rgba(255,255,255,.86); }
.lay-a .la-short strong { display:block; font-family:'Avenir','Poppins',sans-serif; font-size:11px; font-weight:800; letter-spacing:.2em; text-transform:uppercase; color:var(--acc); margin-bottom:10px; }
.lay-a .la-short strong ~ strong, .lay-a .la-short p strong { display:inline; font-size:inherit; letter-spacing:0; text-transform:none; color:#fff; font-family:inherit; margin:0; }
.lay-a .la-meta { border-bottom:1px solid var(--line); background:#fff; }
.lay-a .la-meta .lw { display:flex; gap:12px 30px; flex-wrap:wrap; padding-top:16px; padding-bottom:16px;
  font-family:'Avenir','Poppins',sans-serif; font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--grey); }
.lay-a .la-meta b { color:var(--ink); font-weight:800; }
.lay-a .la-body { display:grid; grid-template-columns:230px minmax(0,1fr); gap:72px; padding-top:64px; padding-bottom:96px; }
.lay-a .la-toc { position:sticky; top:96px; align-self:start; }
.lay-a .la-toc > span { display:block; margin-bottom:16px; font-family:'Avenir','Poppins',sans-serif; font-size:11px; font-weight:800; letter-spacing:.18em; text-transform:uppercase; color:var(--grey); }
.lay-a .la-toc ol { list-style:none; margin:0; padding:0; border-left:1px solid var(--line); }
.lay-a .la-toc a { display:flex; gap:12px; padding:9px 0 9px 18px; margin-left:-1px; border-left:2px solid transparent;
  font-family:'Avenir','Poppins',sans-serif; font-weight:600; font-size:13px; line-height:1.35; color:var(--mid);
  text-decoration:none; transition:color .2s, border-color .2s; }
.lay-a .la-toc a i { font-style:normal; font-size:11px; font-weight:800; color:var(--grey); padding-top:1px; }
.lay-a .la-toc a:hover { color:var(--ink); }
.lay-a .la-toc a.on { color:var(--ink); border-left-color:var(--acc); }
.lay-a .la-toc a.on i { color:var(--acc-t); }
.lay-a .la-sec { padding-bottom:60px; margin-bottom:60px; border-bottom:1px solid var(--line); scroll-margin-top:96px; }
.lay-a .la-sec:last-child { border-bottom:0; margin-bottom:0; padding-bottom:0; }
.lay-a .la-sec-head { display:flex; gap:12px; align-items:center; margin-bottom:14px;
  font-family:'Avenir','Poppins',sans-serif; font-size:11px; font-weight:800; letter-spacing:.18em; text-transform:uppercase; color:var(--grey); }
.lay-a .la-num { color:var(--acc-t); }
.lay-a.lay .la-sec h2 { font-size:34px; line-height:1.12; margin-bottom:14px; }
.lay-a .la-intro-p p { font-size:16px; color:var(--mid); max-width:680px; margin:0 0 28px; }
.lay-a .la-rel { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.lay-a .la-rel a { display:block; border:1px solid var(--line); padding:24px 26px; text-decoration:none; transition:border-color .2s, box-shadow .2s; }
.lay-a .la-rel a:hover { border-color:var(--ink); box-shadow:inset 3px 0 0 var(--acc); }
.lay-a.lay .la-rel h3 { font-size:17px; margin-bottom:6px; }
.lay-a .la-rel p { font-size:14px; color:var(--mid); margin:0; }
.lay-a .la-rel .go { display:block; margin-top:12px; font-family:'Avenir','Poppins',sans-serif; font-weight:700; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink); }
.lay-a .la-cta { background:var(--ink); padding:80px 0; }
.lay-a .la-cta-grid { display:grid; grid-template-columns:1.4fr 1fr; gap:48px; align-items:center; }
.lay-a .la-cta .lkick { color:rgba(255,255,255,.55); }
.lay-a.lay .la-cta h2 { color:#fff; font-size:38px; line-height:1.1; margin:18px 0 12px; }
.lay-a .la-cta p { color:rgba(255,255,255,.7); margin:0; font-size:17px; }
.lay-a .la-cta .lbtns { justify-content:flex-end; margin-top:0; }
@media (max-width:960px) {
  .lay-a .la-hero-grid { grid-template-columns:1fr; gap:36px; }
  .lay-a.lay .la-hero h1 { font-size:38px; }
  .lay-a .la-body { grid-template-columns:1fr; gap:0; }
  .lay-a .la-toc { display:none; }
  .lay-a .la-rel { grid-template-columns:1fr; }
  .lay-a .la-cta-grid { grid-template-columns:1fr; }
  .lay-a .la-cta .lbtns { justify-content:flex-start; }
}

/* ===================================================================
   B — SPLIT HERO + SPEC-SHEET ROWS
   =================================================================== */
.lay-b .lb-hero { display:grid; grid-template-columns:1.05fr 1fr; min-height:560px; }
.lay-b .lb-hero-text { padding:88px 64px 72px max(32px, calc((100vw - 1240px) / 2 + 32px)); display:flex; flex-direction:column; justify-content:center; }
.lay-b.lay .lb-hero h1 { font-size:56px; line-height:1.0; letter-spacing:-.04em; margin:22px 0 22px; max-width:13ch; }
.lay-b .lb-lead p { font-size:18px; color:var(--mid); max-width:520px; margin:0; }
.lay-b .lb-hero-panel { background:var(--ink); color:#fff; position:relative; display:flex; flex-direction:column; justify-content:flex-end;
  padding:56px max(32px, calc((100vw - 1240px) / 2 + 32px)) 56px 56px; }
.lay-b .lb-hero-panel::before { content:''; position:absolute; left:0; top:0; bottom:0; width:6px; background:var(--acc); }
.lay-b .lb-panel-title { font-family:'Avenir','Poppins',sans-serif; font-size:11px; font-weight:800; letter-spacing:.2em; text-transform:uppercase; color:var(--acc); margin-bottom:22px; }
.lay-b .lb-stats { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid rgba(255,255,255,.18); }
.lay-b .lb-stat { padding:26px 20px 26px 0; border-bottom:1px solid rgba(255,255,255,.18); }
.lay-b .lb-stat:nth-child(even) { padding-left:26px; border-left:1px solid rgba(255,255,255,.18); }
.lay-b .lb-stat b { display:block; font-family:'Avenir','Poppins',sans-serif; font-weight:800; font-size:30px; line-height:1.1; letter-spacing:-.02em; color:#fff; }
.lay-b .lb-stat small { display:block; margin-top:8px; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.55); }
.lay-b .lb-note { font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.35); margin:22px 0 0; }
.lay-b .lb-sec { padding:88px 0; border-top:1px solid var(--ink); }
.lay-b .lb-sec.alt { background:var(--off); }
.lay-b .lb-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2fr); gap:64px; align-items:start; }
.lay-b .lb-side { position:sticky; top:100px; }
.lay-b .lb-idx { display:flex; align-items:baseline; gap:14px; margin-bottom:18px; }
.lay-b .lb-idx b { font-family:'Avenir','Poppins',sans-serif; font-size:44px; font-weight:800; color:var(--acc); line-height:1; letter-spacing:-.04em; }
.lay-b .lb-idx span { font-family:'Avenir','Poppins',sans-serif; font-size:11px; font-weight:800; letter-spacing:.18em; text-transform:uppercase; color:var(--grey); }
.lay-b.lay .lb-side h2 { font-size:32px; line-height:1.1; margin-bottom:14px; }
.lay-b .lb-side p { font-size:15px; color:var(--mid); margin:0; }
.lay-b .lb-plain { padding:56px 0; border-top:1px solid var(--ink); }
.lay-b .lb-types { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.lay-b .lb-types .cp-feature { display:block; margin:0 !important; background:#fff; border:1px solid var(--line); transition:border-color .25s, transform .35s, box-shadow .35s; }
.lay-b .lb-types .cp-feature:hover { border-color:var(--ink); transform:translateY(-3px); box-shadow:0 14px 30px rgba(0,0,0,.08); }
.lay-b .lb-types .cp-feature-media { aspect-ratio:16/10; }
.lay-b .lb-types .cp-feature-text { padding:24px 26px 28px; }
.lay-b.lay .lb-types .cp-feature-text h3 { font-size:20px; }
.lay-b .cp-process { grid-template-columns:1fr 1fr !important; gap:36px 0; }
.lay-b .lb-rel a { display:grid; grid-template-columns:1fr auto; gap:4px 24px; align-items:center; padding:22px 0; border-bottom:1px solid var(--line); text-decoration:none; transition:padding-left .25s; }
.lay-b .lb-rel a:first-child { border-top:1px solid var(--line); }
.lay-b .lb-rel a:hover { padding-left:12px; box-shadow:inset 3px 0 0 var(--acc); }
.lay-b.lay .lb-rel h3 { font-size:18px; }
.lay-b .lb-rel p { grid-column:1; font-size:14px; color:var(--mid); margin:0; }
.lay-b .lb-rel .go { grid-column:2; grid-row:1 / span 2; font-family:'Avenir','Poppins',sans-serif; font-weight:700; font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink); }
.lay-b .lb-teaser { display:flex; justify-content:space-between; align-items:center; gap:28px; border:1px solid var(--ink); padding:30px 34px; box-shadow:inset 6px 0 0 var(--acc); }
.lay-b.lay .lb-teaser h3 { font-size:20px; margin-bottom:6px; }
.lay-b .lb-teaser p { margin:0; color:var(--mid); font-size:15px; }
.lay-b .lb-cta { display:grid; grid-template-columns:1.3fr 1fr; }
.lay-b .lb-cta-l { background:var(--ink); padding:80px 64px 80px max(32px, calc((100vw - 1240px) / 2 + 32px)); }
.lay-b .lb-cta-l .lkick { color:rgba(255,255,255,.55); }
.lay-b.lay .lb-cta-l h2 { color:#fff; font-size:40px; line-height:1.08; margin:18px 0 14px; }
.lay-b .lb-cta-l p { color:rgba(255,255,255,.7); font-size:17px; margin:0; max-width:520px; }
.lay-b .lb-cta-r { background:var(--off); display:flex; align-items:center; padding:64px max(32px, calc((100vw - 1240px) / 2 + 32px)) 64px 64px; }
.lay-b .lb-cta-r .lbtns { flex-direction:column; align-items:stretch; margin:0; width:100%; max-width:340px; }
.lay-b .lb-cta-r .lbtn { text-align:center; }
@media (max-width:960px) {
  .lay-b .lb-hero, .lay-b .lb-cta { grid-template-columns:1fr; }
  .lay-b .lb-hero-text, .lay-b .lb-hero-panel, .lay-b .lb-cta-l, .lay-b .lb-cta-r { padding:56px 20px; }
  .lay-b.lay .lb-hero h1 { font-size:40px; }
  .lay-b .lb-grid { grid-template-columns:1fr; gap:28px; }
  .lay-b .lb-side { position:static; }
  .lay-b .lb-types { grid-template-columns:1fr; }
  .lay-b .lb-teaser { flex-direction:column; align-items:flex-start; }
}

/* ===================================================================
   C — NUMBERED EDITORIAL CHAPTERS
   =================================================================== */
.lay-c .lc-hero { padding:96px 0 0; }
.lay-c.lay .lc-hero h1 { font-size:clamp(40px, 6vw, 76px); line-height:.98; letter-spacing:-.045em; margin:24px 0 34px; max-width:17ch; }
.lay-c .lc-hero-row { display:grid; grid-template-columns:1.4fr 1fr; gap:48px; align-items:end; padding-bottom:48px; }
.lay-c .lc-lead p { font-size:20px; line-height:1.6; color:var(--mid); margin:0; font-weight:300; }
.lay-c .lc-hero-row .lbtns { justify-content:flex-end; margin:0; }
.lay-c .lc-stats { display:grid; grid-auto-flow:column; grid-auto-columns:1fr; border-top:2px solid var(--ink); border-bottom:1px solid var(--line); }
.lay-c .lc-stat { padding:26px 24px 26px 0; }
.lay-c .lc-stat + .lc-stat { padding-left:24px; border-left:1px solid var(--line); }
.lay-c .lc-stat b { display:block; font-family:'Avenir','Poppins',sans-serif; font-weight:800; font-size:38px; line-height:1.05; letter-spacing:-.03em; color:var(--ink); }
.lay-c .lc-stat small { display:block; margin-top:8px; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--grey); }
.lay-c .lc-brief { margin:72px 0 8px; padding:4px 0 4px 30px; border-left:4px solid var(--acc);
  font-family:Georgia,'Times New Roman',serif; font-style:italic; font-size:24px; line-height:1.55; color:var(--ink); max-width:920px; }
.lay-c .lc-brief strong:first-child { display:block; margin-bottom:10px; font-style:normal; font-family:'Avenir','Poppins',sans-serif; font-size:11px; font-weight:800; letter-spacing:.2em; text-transform:uppercase; color:var(--acc-t); }
.lay-c .lc-ch { padding:80px 0; }
.lay-c .lc-ch + .lc-ch, .lay-c .lc-brief-wrap + .lc-ch { border-top:2px solid var(--ink); }
.lay-c .lc-ch-grid { display:grid; grid-template-columns:200px minmax(0,1fr); gap:56px; }
.lay-c .lc-ch-num { position:sticky; top:100px; align-self:start; }
.lay-c .lc-big { display:block; font-family:'Avenir','Poppins',sans-serif; font-weight:800; font-size:112px; line-height:.85; letter-spacing:-.06em;
  color:transparent; -webkit-text-stroke:1.5px var(--ink); transition:color .4s, -webkit-text-stroke-color .4s; }
.lay-c .lc-ch:hover .lc-big { color:var(--acc); -webkit-text-stroke-color:var(--acc); }
.lay-c .lc-ch-name { display:block; margin-top:18px; font-family:'Avenir','Poppins',sans-serif; font-size:11px; font-weight:800; letter-spacing:.18em; text-transform:uppercase; color:var(--grey); }
.lay-c .lc-ch-main { max-width:840px; }
.lay-c.lay .lc-ch-main > h2 { font-size:40px; line-height:1.08; margin-bottom:16px; }
.lay-c .lc-intro-p p { font-size:17px; color:var(--mid); margin:0 0 30px; }
.lay-c .lc-open .cp-article > p:first-of-type::first-letter { float:left; font-family:'Avenir','Poppins',sans-serif; font-weight:800; font-size:76px; line-height:.8; margin:8px 14px 0 0; color:var(--acc); }
.lay-c .lc-next { background:var(--off); padding:84px 0; border-top:2px solid var(--ink); }
.lay-c.lay .lc-next-head h2 { font-size:34px; margin:16px 0 30px; }
.lay-c .lc-next a { display:grid; grid-template-columns:auto 1fr auto; gap:6px 28px; align-items:baseline; padding:28px 0; border-top:1px solid var(--line); text-decoration:none; }
.lay-c .lc-next a:last-child { border-bottom:1px solid var(--line); }
.lay-c .lc-next a > i { font-style:normal; font-family:'Avenir','Poppins',sans-serif; font-weight:800; font-size:14px; color:var(--grey); grid-row:1 / span 2; }
.lay-c.lay .lc-next h3 { font-size:26px; letter-spacing:-.025em; transition:color .2s; }
.lay-c .lc-next p { grid-column:2; margin:0; color:var(--mid); font-size:15px; }
.lay-c .lc-next .go { grid-column:3; grid-row:1 / span 2; font-family:'Avenir','Poppins',sans-serif; font-weight:700; font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink); transition:transform .3s; }
.lay-c .lc-next a:hover h3 { color:var(--acc-t); }
.lay-c .lc-next a:hover .go { transform:translateX(6px); }
.lay-c .lc-cta { background:var(--ink); text-align:center; padding:110px 0; }
.lay-c .lc-cta .lkick { color:rgba(255,255,255,.55); }
.lay-c.lay .lc-cta h2 { color:#fff; font-size:clamp(34px, 5vw, 58px); line-height:1.02; letter-spacing:-.04em; margin:22px auto 18px; max-width:18ch; }
.lay-c .lc-cta h2::after { content:''; display:block; width:64px; height:4px; background:var(--acc); margin:26px auto 0; }
.lay-c .lc-cta p { color:rgba(255,255,255,.7); font-size:18px; max-width:560px; margin:0 auto; }
.lay-c .lc-cta .lbtns { justify-content:center; }
@media (max-width:900px) {
  .lay-c .lc-hero-row { grid-template-columns:1fr; gap:24px; }
  .lay-c .lc-hero-row .lbtns { justify-content:flex-start; }
  .lay-c .lc-stats { grid-auto-flow:row; grid-template-columns:1fr; }
  .lay-c .lc-stat + .lc-stat { padding-left:0; border-left:0; border-top:1px solid var(--line); }
  .lay-c .lc-ch-grid { grid-template-columns:1fr; gap:18px; }
  .lay-c .lc-ch-num { position:static; display:flex; align-items:flex-end; gap:16px; }
  .lay-c .lc-big { font-size:64px; }
  .lay-c.lay .lc-ch-main > h2 { font-size:30px; }
  .lay-c .lc-brief { font-size:20px; }
  .lay-c .lc-next a { grid-template-columns:1fr auto; }
  .lay-c .lc-next a > i { display:none; }
  .lay-c .lc-next p { grid-column:1; }
  .lay-c .lc-next .go { grid-column:2; }
}

/* ===================================================================
   D — TIMELINE RAIL
   =================================================================== */
.lay-d .ld-hero { background:var(--ink); text-align:center; padding:100px 0 160px; }
.lay-d .ld-hero .lkick { color:rgba(255,255,255,.6); }
.lay-d.lay .ld-hero h1 { color:#fff; font-size:58px; line-height:1.02; letter-spacing:-.04em; margin:22px auto; max-width:16ch; }
.lay-d .ld-lead p { color:rgba(255,255,255,.75); font-size:18px; max-width:620px; margin:0 auto; }
.lay-d .ld-hero .lbtns { justify-content:center; }
.lay-d .ld-panel { position:relative; margin-top:-100px; background:#fff; border:1px solid var(--line); box-shadow:0 24px 60px rgba(0,0,0,.12); padding:44px; }
.lay-d .ld-panel > * + * { margin-top:32px; }
.lay-d .ld-stats { display:grid; grid-auto-flow:column; grid-auto-columns:1fr; border-top:2px solid var(--ink); }
.lay-d .ld-stat { padding:22px 20px 0 0; }
.lay-d .ld-stat + .ld-stat { padding-left:22px; border-left:1px solid var(--line); }
.lay-d .ld-stat b { display:block; font-family:'Avenir','Poppins',sans-serif; font-weight:800; font-size:28px; letter-spacing:-.02em; color:var(--ink); line-height:1.1; }
.lay-d .ld-stat small { display:block; margin-top:6px; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--grey); }
.lay-d .ld-rail { position:relative; max-width:980px; margin:0 auto; padding:96px 0 24px; }
.lay-d .ld-rail::before { content:''; position:absolute; left:27px; top:96px; bottom:0; width:2px; background:var(--line); }
.lay-d .ld-rail-head { padding-left:88px; margin-bottom:44px; position:relative; }
.lay-d.lay .ld-rail-head h2 { font-size:38px; margin-top:14px; }
.lay-d .ld-stop { position:relative; padding:0 0 64px 88px; }
.lay-d .ld-node { position:absolute; left:0; top:-6px; z-index:1; width:56px; height:56px; border-radius:50%; background:#fff; border:2px solid var(--ink);
  display:flex; align-items:center; justify-content:center; font-family:'Avenir','Poppins',sans-serif; font-weight:800; font-size:15px; color:var(--ink);
  transition:background .3s, border-color .3s, color .3s; }
.lay-d .ld-stop:hover .ld-node { background:var(--acc); border-color:var(--acc); }
.lay-d .ld-name { display:block; font-family:'Avenir','Poppins',sans-serif; font-size:11px; font-weight:800; letter-spacing:.18em; text-transform:uppercase; color:var(--grey); margin-bottom:8px; }
.lay-d.lay .ld-stop h2 { font-size:32px; line-height:1.12; margin-bottom:14px; }
.lay-d.lay .ld-stop h3 { font-size:22px; line-height:1.25; margin-bottom:10px; }
.lay-d .ld-stop > div > p { font-size:16px; color:var(--mid); margin:0 0 20px; max-width:720px; }
.lay-d .ld-dur { display:inline-block; margin-top:4px; padding:6px 12px; background:var(--off); border:1px solid var(--line);
  font-family:'Avenir','Poppins',sans-serif; font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--ink); }
.lay-d .ld-rel { display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:12px; }
.lay-d .ld-rel a { display:block; border:1px solid var(--line); padding:22px 24px; text-decoration:none; background:#fff; transition:border-color .2s, transform .3s; }
.lay-d .ld-rel a:hover { border-color:var(--ink); transform:translateY(-3px); }
.lay-d.lay .ld-rel h3 { font-size:16px; margin-bottom:6px; }
.lay-d .ld-rel p { font-size:14px; color:var(--mid); margin:0; }
.lay-d .ld-rel .go { display:block; margin-top:12px; font-family:'Avenir','Poppins',sans-serif; font-weight:700; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink); }
.lay-d .ld-end .ld-node { background:var(--acc); border-color:var(--acc); }
.lay-d .ld-cta-box { background:var(--ink); padding:48px 48px 44px; }
.lay-d .ld-cta-box .lkick { color:rgba(255,255,255,.55); }
.lay-d.lay .ld-cta-box h2 { color:#fff; font-size:34px; margin:16px 0 12px; }
.lay-d .ld-cta-box p { color:rgba(255,255,255,.7); margin:0; font-size:17px; }
@media (max-width:800px) {
  .lay-d.lay .ld-hero h1 { font-size:38px; }
  .lay-d .ld-hero { padding:72px 0 130px; }
  .lay-d .ld-panel { padding:24px; margin-top:-80px; }
  .lay-d .ld-stats { grid-auto-flow:row; grid-template-columns:1fr; }
  .lay-d .ld-stat + .ld-stat { padding-left:0; border-left:0; }
  .lay-d .ld-rail::before { left:19px; }
  .lay-d .ld-node { width:40px; height:40px; font-size:12px; top:-2px; }
  .lay-d .ld-stop, .lay-d .ld-rail-head { padding-left:60px; }
  .lay-d .ld-cta-box { padding:32px 26px; }
}

/* ===================================================================
   E — BENTO TILES / DIRECTORY
   =================================================================== */
.lay-e .le-hero { background:var(--off); border-bottom:1px solid var(--line); padding:80px 0 72px; }
.lay-e .le-hero-grid { display:grid; grid-template-columns:1.25fr 1fr; gap:56px; align-items:center; }
.lay-e.lay .le-hero h1 { font-size:52px; line-height:1.02; letter-spacing:-.035em; margin:22px 0 20px; max-width:15ch; }
.lay-e .le-lead p { font-size:18px; color:var(--mid); margin:0; max-width:560px; }
.lay-e .le-tiles { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.lay-e .le-t { background:#fff; border:1px solid var(--line); padding:24px; min-height:124px; display:flex; flex-direction:column; justify-content:space-between; }
.lay-e .le-t b { font-family:'Avenir','Poppins',sans-serif; font-weight:800; font-size:28px; line-height:1.05; letter-spacing:-.02em; color:var(--ink); }
.lay-e .le-t small { font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--grey); margin-top:10px; }
.lay-e .le-t:first-child { background:var(--ink); border-color:var(--ink); }
.lay-e .le-t:first-child b { color:#fff; }
.lay-e .le-t:first-child small { color:rgba(255,255,255,.55); }
.lay-e .le-t:last-child { border-top:4px solid var(--acc); }
.lay-e .le-tiles.n3 .le-t:first-child { grid-column:1 / -1; }
.lay-e .le-intro { padding-top:64px; }
.lay-e .le-intro .cp-article { max-width:840px; }
.lay-e .le-filter { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:56px 0 18px; }
.lay-e .le-chip { font-family:'Avenir','Poppins',sans-serif; font-weight:700; font-size:12px; letter-spacing:.08em; text-transform:uppercase;
  background:#fff; color:var(--ink); border:1px solid var(--line); padding:10px 16px; cursor:pointer; transition:background .2s, color .2s, border-color .2s; }
.lay-e .le-chip:hover { border-color:var(--ink); }
.lay-e .le-chip.on { background:var(--ink); color:#fff; border-color:var(--ink); box-shadow:inset 0 -3px 0 var(--acc); }
.lay-e .le-search { margin-left:auto; border:1px solid var(--line); padding:11px 14px; width:260px; max-width:100%; font-size:14px; font-family:inherit; background:#fff; }
.lay-e .le-search:focus { border-color:var(--ink); outline:none; box-shadow:inset 0 -2px 0 var(--acc); }
.lay-e .le-grid { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:12px; grid-auto-flow:dense; }
.lay-e .le-tile { background:#fff; border:1px solid var(--line); padding:28px 26px; display:flex; flex-direction:column; text-decoration:none; color:inherit;
  transition:transform .3s, box-shadow .3s, border-color .3s; }
.lay-e a.le-tile:hover { transform:translateY(-3px); box-shadow:0 14px 30px rgba(0,0,0,.08); border-color:var(--ink); }
.lay-e .le-tile.w2 { grid-column:span 2; }
.lay-e .le-tile.w3 { grid-column:span 3; }
.lay-e .le-tile.w4 { grid-column:1 / -1; }
.lay-e .le-tile.h2 { grid-row:span 2; }
.lay-e .le-tile.dark { background:var(--ink); border-color:var(--ink); }
.lay-e.lay .le-tile.dark h2, .lay-e.lay .le-tile.dark h3 { color:#fff; }
.lay-e .le-tile.dark p, .lay-e .le-tile.dark li { color:rgba(255,255,255,.72); }
.lay-e .le-tile.dark .le-tag { color:rgba(255,255,255,.5); }
.lay-e .le-tile.dark .le-go { color:#fff; }
.lay-e .le-tile.hide { display:none; }
.lay-e .le-group { border-top:4px solid var(--ink); background:#fff; }
.lay-e .le-group.pop { border-top-color:var(--acc); }
.lay-e .le-tag { font-family:'Avenir','Poppins',sans-serif; font-size:10px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:var(--grey); margin-bottom:16px; }
.lay-e.lay .le-tile h2 { font-size:24px; line-height:1.15; margin-bottom:10px; }
.lay-e.lay .le-tile h3 { font-size:18px; line-height:1.25; margin-bottom:10px; }
.lay-e .le-tile p { font-size:14px; line-height:1.6; color:var(--mid); margin:0 0 18px; flex-grow:1; }
.lay-e .le-go { margin-top:auto; font-family:'Avenir','Poppins',sans-serif; font-weight:700; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink); }
.lay-e .le-empty { padding:40px 0; color:var(--mid); }
.lay-e .le-section { padding:80px 0 0; }
.lay-e .le-az { padding:88px 0 96px; }
.lay-e .le-cta { background:var(--ink); padding:76px 0; }
.lay-e .le-cta-grid { display:grid; grid-template-columns:1.4fr 1fr; gap:40px; align-items:center; }
.lay-e .le-cta .lkick { color:rgba(255,255,255,.55); }
.lay-e.lay .le-cta h2 { color:#fff; font-size:36px; margin:16px 0 12px; }
.lay-e .le-cta p { color:rgba(255,255,255,.7); margin:0; font-size:17px; }
.lay-e .le-cta .lbtns { justify-content:flex-end; margin:0; }
/* garage conversion tiles */
.lay-e .le-tier .tier-price { font-family:'Avenir','Poppins',sans-serif; font-weight:800; font-size:26px; letter-spacing:-.02em; color:var(--ink); margin:4px 0 6px; }
.lay-e .le-tier .tier-sub { font-size:13px; color:var(--grey); margin-bottom:18px; }
.lay-e .le-tier ul { list-style:none; margin:0; padding:0; border-top:1px solid var(--line); }
.lay-e .le-tier li { display:flex; gap:10px; align-items:flex-start; font-size:14px; color:var(--charcoal); padding:10px 0; border-bottom:1px solid var(--hair); }
.lay-e .le-tier li svg { flex-shrink:0; margin-top:4px; }
.lay-e .le-tier.dark .tier-price { color:#fff; }
.lay-e .le-tier.dark .tier-sub { color:rgba(255,255,255,.55); }
.lay-e .le-tier.dark ul { border-top-color:rgba(255,255,255,.2); }
.lay-e .le-tier.dark li { border-bottom-color:rgba(255,255,255,.12); }
.lay-e .le-tier.dark li svg * { stroke:var(--acc) !important; }
.lay-e .le-badge { align-self:flex-start; background:var(--acc); color:var(--ink); font-family:'Avenir','Poppins',sans-serif; font-weight:800; font-size:10px; letter-spacing:.14em; text-transform:uppercase; padding:5px 10px; margin-bottom:16px; }
.lay-e .le-uses { display:flex; flex-wrap:wrap; gap:10px; margin-top:6px; }
.lay-e .le-use { display:flex; align-items:center; gap:10px; border:1px solid var(--line); padding:10px 14px 10px 10px; font-family:'Avenir','Poppins',sans-serif; font-weight:700; font-size:13px; color:var(--ink); }
.lay-e .le-use .icon-circle { width:34px; height:34px; border-radius:50%; background:var(--off); display:flex; align-items:center; justify-content:center; }
.lay-e .le-use .icon-circle svg { width:18px; height:18px; }
@media (max-width:1000px) {
  .lay-e .le-hero-grid { grid-template-columns:1fr; gap:36px; }
  .lay-e.lay .le-hero h1 { font-size:38px; }
  .lay-e .le-grid { grid-template-columns:1fr 1fr; }
  .lay-e .le-tile.w3 { grid-column:1 / -1; }
  .lay-e .le-cta-grid { grid-template-columns:1fr; }
  .lay-e .le-cta .lbtns { justify-content:flex-start; }
  .lay-e .le-search { margin-left:0; width:100%; }
}
@media (max-width:620px) {
  .lay-e .le-grid { grid-template-columns:1fr; }
  .lay-e .le-tile.w2, .lay-e .le-tile.w3, .lay-e .le-tile.w4 { grid-column:auto; }
  .lay-e .le-tile.h2 { grid-row:auto; }
}

/* ---------- fixes & legacy component tidy-ups ---------- */
.lay [class*="-wrap"]:not(.lw):not(.lc-brief-wrap) { border-radius:0 !important; }
/* crack-width scale: grey → orange → black instead of the old blues */
.lay .ssp-scale-bar { border-radius:0 !important; overflow:hidden; }
.lay .ssp-scale-seg { border-radius:0 !important; }
.lay .ssp-scale-seg:nth-child(1) { background:#EDEDED !important; color:#0A0A0A !important; }
.lay .ssp-scale-seg:nth-child(2) { background:#BDBDBD !important; color:#0A0A0A !important; }
.lay .ssp-scale-seg:nth-child(3) { background:var(--acc) !important; color:#0A0A0A !important; }
.lay .ssp-scale-seg:nth-child(4) { background:#0A0A0A !important; color:#fff !important; }
/* value ranking: highlight #1 */
.lay .val-rank-row.gold { border-color:var(--ink) !important; box-shadow:inset 5px 0 0 var(--acc) !important; }
.lay .val-rank-row.gold .val-rank-num { color:var(--acc-t) !important; }
/* spacing after pull-quote */
.lay-c .lc-brief-wrap { padding-bottom:72px; }
.lay .la-after, .lay .lc-after { font-size:14px; color:var(--grey); margin:16px 0 0; }
.lay .la-disclaimer { border-left:3px solid var(--ink); background:var(--off); padding:22px 26px; font-size:14px; line-height:1.7; color:var(--mid); }
/* wide tables scroll inside their box on small screens instead of the whole page */
@media (max-width:800px) {
  .lay table, .lay .cp-table { display:block; max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; }
}
