.elementor-kit-629{--e-global-color-primary:#16171B;--e-global-color-secondary:#FFFFFF;--e-global-color-text:#16171B;--e-global-color-accent:#7E2B5E;--e-global-color-be67038:#FFFFFF;--e-global-color-e3c8a01:#02010100;--e-global-color-be5606c:#7E2B5E;--e-global-color-f0272e1:#F4F4F2;--e-global-color-dead581:#F9F9F7;--e-global-color-58bc833:#FFFFFF;--e-global-color-ae746f6:#E0E0DC;--e-global-color-197b850:#ECEEF2;--e-global-color-adcd3be:#F0E4EC;--e-global-color-d6a933a:#7E2B5E;--e-global-color-ba6e786:#16171B;--e-global-color-93d5d55:#16171B;--e-global-color-24ea18d:#C8C8C3;--e-global-color-aa8d193:#33353C;--e-global-color-2bba353:#16171B;--e-global-color-8d23cb5:#FFFFFFC7;--e-global-color-1088134:#82848C;--e-global-color-2c19436:#E8B9D4;--e-global-color-2c7d7a9:#7E2B5E;--e-global-color-2acf5ea:#7E2B5E;--e-global-typography-primary-font-family:"Lexend Deca";--e-global-typography-primary-font-size:1em;--e-global-typography-primary-font-weight:400;--e-global-typography-primary-line-height:1.68rem;--e-global-typography-secondary-font-family:"IBM Plex Sans";--e-global-typography-secondary-font-size:1.1rem;--e-global-typography-secondary-font-weight:600;--e-global-typography-text-font-family:"IBM Plex Mono";--e-global-typography-text-font-size:1.1rem;--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Libre Caslon Text";--e-global-typography-accent-font-size:1.15rem;--e-global-typography-accent-font-weight:400;--e-global-typography-accent-line-height:1.1em;--e-global-typography-7f64904-font-family:"Lexend Deca";--e-global-typography-7f64904-font-size:3.353em;--e-global-typography-7f64904-font-weight:500;--e-global-typography-7f64904-line-height:1em;--e-global-typography-7f64904-letter-spacing:0px;--e-global-typography-03feeb6-font-family:"Lexend Deca";--e-global-typography-03feeb6-font-size:3.353em;--e-global-typography-03feeb6-font-weight:500;--e-global-typography-03feeb6-text-decoration:underline;--e-global-typography-03feeb6-line-height:1em;--e-global-typography-03feeb6-letter-spacing:0px;--e-global-typography-24e7c9f-font-family:"Lexend Deca";--e-global-typography-24e7c9f-font-size:2.765em;--e-global-typography-24e7c9f-font-weight:500;--e-global-typography-24e7c9f-line-height:1.021em;--e-global-typography-cd213e4-font-family:"Lexend Deca";--e-global-typography-cd213e4-font-size:2.059rem;--e-global-typography-cd213e4-font-weight:500;--e-global-typography-cd213e4-line-height:1.029em;--e-global-typography-e853a73-font-family:"Lexend Deca";--e-global-typography-e853a73-font-size:1.674em;--e-global-typography-e853a73-font-weight:500;--e-global-typography-e853a73-line-height:1.036em;--e-global-typography-66fa213-font-family:"Lexend Deca";--e-global-typography-66fa213-font-size:1.412rem;--e-global-typography-66fa213-font-weight:500;--e-global-typography-66fa213-line-height:1.083em;--e-global-typography-66fa213-letter-spacing:0px;--e-global-typography-a0ca9dc-font-family:"Lexend Deca";--e-global-typography-a0ca9dc-font-size:1.25rem;--e-global-typography-a0ca9dc-font-weight:normal;--e-global-typography-a0ca9dc-text-transform:capitalize;--e-global-typography-a0ca9dc-line-height:1.263em;--e-global-typography-720960a-font-family:"Libre Caslon Text";--e-global-typography-720960a-font-size:1.5rem;--e-global-typography-720960a-font-weight:400;--e-global-typography-720960a-line-height:1.5em;--e-global-typography-22b6bf3-font-family:"Lexend Deca";--e-global-typography-22b6bf3-font-size:1.1rem;--e-global-typography-22b6bf3-font-weight:600;--e-global-typography-fc2706a-font-family:"Lexend Deca";--e-global-typography-fc2706a-font-size:10rem;--e-global-typography-fc2706a-font-weight:700;--e-global-typography-fc2706a-text-transform:capitalize;--e-global-typography-fc2706a-line-height:1em;background-color:var( --e-global-color-secondary );color:var( --e-global-color-text );font-weight:300;}.elementor-kit-629 button,.elementor-kit-629 input[type="button"],.elementor-kit-629 input[type="submit"],.elementor-kit-629 .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );line-height:var( --e-global-typography-accent-line-height );color:var( --e-global-color-secondary );border-radius:15px 15px 15px 15px;padding:15px 30px 15px 30px;}.elementor-kit-629 button:hover,.elementor-kit-629 button:focus,.elementor-kit-629 input[type="button"]:hover,.elementor-kit-629 input[type="button"]:focus,.elementor-kit-629 input[type="submit"]:hover,.elementor-kit-629 input[type="submit"]:focus,.elementor-kit-629 .elementor-button:hover,.elementor-kit-629 .elementor-button:focus{background-color:var( --e-global-color-accent );color:var( --e-global-color-secondary );}.elementor-kit-629 e-page-transition{background-color:#FFBC7D;}.elementor-kit-629 a:hover{color:var( --e-global-color-secondary );}.elementor-kit-629 h1{color:var( --e-global-color-primary );}.elementor-kit-629 h2{color:var( --e-global-color-primary );font-family:var( --e-global-typography-24e7c9f-font-family ), Sans-serif;font-size:var( --e-global-typography-24e7c9f-font-size );font-weight:var( --e-global-typography-24e7c9f-font-weight );line-height:var( --e-global-typography-24e7c9f-line-height );}.elementor-kit-629 h3{color:var( --e-global-color-primary );font-family:var( --e-global-typography-cd213e4-font-family ), Sans-serif;font-size:var( --e-global-typography-cd213e4-font-size );font-weight:var( --e-global-typography-cd213e4-font-weight );line-height:var( --e-global-typography-cd213e4-line-height );}.elementor-kit-629 h4{color:var( --e-global-color-primary );font-family:var( --e-global-typography-e853a73-font-family ), Sans-serif;font-size:var( --e-global-typography-e853a73-font-size );font-weight:var( --e-global-typography-e853a73-font-weight );line-height:var( --e-global-typography-e853a73-line-height );}.elementor-kit-629 h5{color:var( --e-global-color-primary );font-family:var( --e-global-typography-66fa213-font-family ), Sans-serif;font-size:var( --e-global-typography-66fa213-font-size );font-weight:var( --e-global-typography-66fa213-font-weight );line-height:var( --e-global-typography-66fa213-line-height );letter-spacing:var( --e-global-typography-66fa213-letter-spacing );}.elementor-kit-629 h6{font-family:var( --e-global-typography-a0ca9dc-font-family ), Sans-serif;font-size:var( --e-global-typography-a0ca9dc-font-size );font-weight:var( --e-global-typography-a0ca9dc-font-weight );text-transform:var( --e-global-typography-a0ca9dc-text-transform );line-height:var( --e-global-typography-a0ca9dc-line-height );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1290px;}.e-con{--container-max-width:1290px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}.sc_layouts_title_caption{display:var(--page-title-display);}.site-header{padding-right:0px;padding-left:0px;}@media(max-width:1024px){.elementor-kit-629{--e-global-typography-text-font-size:1rem;--e-global-typography-accent-font-size:1.063rem;--e-global-typography-7f64904-font-size:3.5rem;--e-global-typography-03feeb6-font-size:3.5rem;--e-global-typography-24e7c9f-font-size:2.5rem;--e-global-typography-cd213e4-font-size:1.5rem;--e-global-typography-e853a73-font-size:1.375rem;--e-global-typography-66fa213-font-size:1.25rem;--e-global-typography-a0ca9dc-font-size:1.125rem;--e-global-typography-720960a-font-size:1.125rem;--e-global-typography-22b6bf3-font-size:1rem;--e-global-typography-fc2706a-font-size:12.5rem;}.elementor-kit-629 h2{font-size:var( --e-global-typography-24e7c9f-font-size );line-height:var( --e-global-typography-24e7c9f-line-height );}.elementor-kit-629 h3{font-size:var( --e-global-typography-cd213e4-font-size );line-height:var( --e-global-typography-cd213e4-line-height );}.elementor-kit-629 h4{font-size:var( --e-global-typography-e853a73-font-size );line-height:var( --e-global-typography-e853a73-line-height );}.elementor-kit-629 h5{font-size:var( --e-global-typography-66fa213-font-size );line-height:var( --e-global-typography-66fa213-line-height );letter-spacing:var( --e-global-typography-66fa213-letter-spacing );}.elementor-kit-629 h6{font-size:var( --e-global-typography-a0ca9dc-font-size );line-height:var( --e-global-typography-a0ca9dc-line-height );}.elementor-kit-629 button,.elementor-kit-629 input[type="button"],.elementor-kit-629 input[type="submit"],.elementor-kit-629 .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:90%;}.e-con{--container-max-width:90%;}}@media(max-width:767px){.elementor-kit-629{--e-global-typography-text-font-size:0.9rem;--e-global-typography-accent-font-size:0.9rem;--e-global-typography-7f64904-font-size:2rem;--e-global-typography-03feeb6-font-size:2rem;--e-global-typography-24e7c9f-font-size:1.5rem;--e-global-typography-cd213e4-font-size:1.25rem;--e-global-typography-e853a73-font-size:1.125rem;--e-global-typography-66fa213-font-size:1rem;--e-global-typography-a0ca9dc-font-size:0.938rem;--e-global-typography-720960a-font-size:1.063rem;--e-global-typography-22b6bf3-font-size:0.9rem;--e-global-typography-fc2706a-font-size:8.125rem;}.elementor-kit-629 h2{font-size:var( --e-global-typography-24e7c9f-font-size );line-height:var( --e-global-typography-24e7c9f-line-height );}.elementor-kit-629 h3{font-size:var( --e-global-typography-cd213e4-font-size );line-height:var( --e-global-typography-cd213e4-line-height );}.elementor-kit-629 h4{font-size:var( --e-global-typography-e853a73-font-size );line-height:var( --e-global-typography-e853a73-line-height );}.elementor-kit-629 h5{font-size:var( --e-global-typography-66fa213-font-size );line-height:var( --e-global-typography-66fa213-line-height );letter-spacing:var( --e-global-typography-66fa213-letter-spacing );}.elementor-kit-629 h6{font-size:var( --e-global-typography-a0ca9dc-font-size );line-height:var( --e-global-typography-a0ca9dc-line-height );}.elementor-kit-629 button,.elementor-kit-629 input[type="button"],.elementor-kit-629 input[type="submit"],.elementor-kit-629 .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:90%;}.e-con{--container-max-width:90%;}}
/* Start custom CSS */:root{
  --sf-display:'Lexend Deca',system-ui,sans-serif;
  --sf-text:'Lexend Deca',system-ui,sans-serif;
  --sf-accent:'Libre Caslon Text',Georgia,serif;
  --sf-mono:'IBM Plex Mono',ui-monospace,monospace;

  --sf-max:1260px;
  --sf-gut:clamp(24px, 3.5vw, 56px);

  --sf-paper:#FFFFFF;
  --sf-band:#F4F4F2;
  --sf-ink:#16171B;
  --sf-body:#4A4C54;
  --sf-mut:#82848C;
  --sf-rule:#E0E0DC;
  --sf-plum:#7E2B5E;
  --sf-plum-lt:#E8B9D4;
}

/* ---------- section rhythm + side gutters ---------- */
.sf-sec > .elementor-container{ padding-top:56px; padding-bottom:56px; }
.sf-hero > .elementor-container{ padding-top:74px; padding-bottom:40px; }
.sf-band{ background:var(--sf-band); }
.sf-band-top > .elementor-container{ padding-bottom:0; }
.sf-band-bottom > .elementor-container{ padding-top:26px; }
.sf-band-both > .elementor-container{ padding-top:52px; padding-bottom:52px; }
.sf-idx-head > .elementor-container{ padding-top:48px; padding-bottom:0; }
.sf-cap-row > .elementor-container{ padding-top:0; padding-bottom:8px; }
.sf-next-row > .elementor-container{ padding-top:34px; padding-bottom:56px; }
.sf-figs > .elementor-container{ padding-top:12px; padding-bottom:10px; }
.sf-bio > .elementor-container{ padding-top:0; align-items:flex-start; }

/* THE MARGIN FIX — real gutter between the portrait and the text */
.sf-bio > .elementor-container > .elementor-column:first-child > .elementor-widget-wrap{ padding-right:26px; }
.sf-bio > .elementor-container > .elementor-column:last-child > .elementor-widget-wrap{ padding-left:26px; }
.sf-split > .elementor-container > .elementor-column:last-child > .elementor-widget-wrap{ padding-left:30px; }

/* ---------- typography ---------- */
.sf-eyebrow .elementor-heading-title{
  font-family:var(--sf-mono); font-size:11px; font-weight:400;
  letter-spacing:.1em; text-transform:uppercase; color:var(--sf-mut); margin-bottom:18px;
}
.sf-h1 .elementor-heading-title{
  font-family:var(--sf-display); font-weight:400;
  font-size:clamp(28px,3.7vw,44px); line-height:1.14; letter-spacing:-.02em; color:var(--sf-ink);
}
.sf-h3 .elementor-heading-title{
  font-family:var(--sf-text); font-size:14px; font-weight:600;
  letter-spacing:-.008em; color:var(--sf-ink); margin:34px 0 12px;
}
.sf-sub p{ font-family:var(--sf-text); font-weight:300; font-size:17.5px; line-height:1.75; color:#3B3D45; max-width:620px; margin-top:20px; }
.sf-lead p{ font-family:var(--sf-text); font-size:18.5px; line-height:1.6; color:#33353C; margin-bottom:16px; }
.sf-prose p{ font-family:var(--sf-text); font-size:16.5px; line-height:1.7; color:#33353C; margin-bottom:16px; }
.sf-measure{ max-width:700px; }

/* ---------- buttons ---------- */
.sf-actions{ margin-top:28px; }
.sf-btn .elementor-button{
  font-family:var(--sf-text); font-size:14px; font-weight:500;
  padding:12px 24px; border-radius:2px;
  background:var(--sf-ink); color:#fff; border:1px solid var(--sf-ink);
}
.sf-btn .elementor-button:hover{ background:var(--sf-plum); border-color:var(--sf-plum); color:#fff; }
.sf-btn-ghost .elementor-button{ background:transparent; color:var(--sf-ink); border-color:#C8C8C3; }
.sf-btn-ghost .elementor-button:hover{ background:transparent; color:var(--sf-ink); border-color:var(--sf-ink); }
.sf-btn-invert .elementor-button{ background:#fff; color:var(--sf-ink); border-color:#fff; }
.sf-btn-invert .elementor-button:hover{ background:var(--sf-plum-lt); border-color:var(--sf-plum-lt); color:var(--sf-ink); }
.sf-btn .elementor-button:focus-visible{ outline:3px solid var(--sf-plum); outline-offset:2px; }

/* ---------- meta strip ---------- */
.sf-meta-strip > .elementor-container{ padding-top:0; padding-bottom:8px; border-top:1.5px solid var(--sf-ink); }
.sf-meta-strip .elementor-column{ border-right:1px solid var(--sf-rule); }
.sf-meta-strip .elementor-column:last-child{ border-right:none; }
.sf-meta-strip .elementor-widget-wrap{ padding:16px 20px 16px 0; }
.sf-meta-strip .elementor-column:not(:first-child) .elementor-widget-wrap{ padding-left:20px; }
.sf-meta-k .elementor-heading-title{
  font-family:var(--sf-mono); font-size:10.5px; font-weight:400;
  letter-spacing:.08em; text-transform:uppercase; color:var(--sf-mut); margin-bottom:7px;
}
.sf-meta-v p{ font-family:var(--sf-text); font-size:14.5px; line-height:1.45; color:var(--sf-ink); margin:0; }
.sf-meta-v a{ color:var(--sf-plum); }

/* ---------- margin notes (the signature) ---------- */
.sf-mgn .elementor-widget-wrap{ border-top:1.5px solid var(--sf-ink); }
.sf-mgn-k .elementor-heading-title{
  font-family:var(--sf-mono); font-size:10.5px; font-weight:400;
  letter-spacing:.08em; text-transform:uppercase; color:var(--sf-plum); margin:13px 0 9px;
}
.sf-mgn-p p{ font-family:var(--sf-text); font-size:13.5px; line-height:1.62; color:var(--sf-body); margin-bottom:14px; }

/* ---------- figures ---------- */
.sf-fig img{ width:100%; border:1px solid var(--sf-rule); display:block; }
.sf-portrait img{ width:100%; aspect-ratio:4/5; object-fit:cover; border:1px solid var(--sf-rule); }
.sf-cap p{ font-family:var(--sf-mono); font-size:11px; color:var(--sf-mut); margin:0; }

/* ---------- outcome ---------- */
.sf-outlede p{ font-family:var(--sf-text); font-size:16.5px; line-height:1.7; color:#33353C; max-width:760px; }
.sf-outlede strong{ font-family:var(--sf-text); font-weight:600; color:var(--sf-ink); }
.sf-card-h .elementor-heading-title{
  font-family:var(--sf-text); font-size:16px; font-weight:600; letter-spacing:-.012em;
  color:var(--sf-ink); padding-bottom:9px; border-bottom:1.5px solid var(--sf-ink); margin-bottom:11px;
}
.sf-card-p p{ font-family:var(--sf-text); font-size:14.5px; line-height:1.6; color:var(--sf-body); margin:0; }

/* ---------- index rows (auto numbered) ---------- */
.sf-idx-head + .sf-row{ counter-reset:sfrow; }
.sf-row{ counter-increment:sfrow; border-bottom:1px solid var(--sf-rule); }
.sf-row:first-of-type{ border-top:1.5px solid var(--sf-ink); }
.sf-row > .elementor-container{ padding-top:19px; padding-bottom:19px; align-items:baseline; }
.sf-row:hover{ background:var(--sf-band); }
.sf-row-name .elementor-heading-title{
  font-family:var(--sf-display); font-size:19px; font-weight:500; letter-spacing:-.012em; color:var(--sf-ink);
}
.sf-row-name .elementor-heading-title::before{
  content:counter(sfrow,decimal-leading-zero);
  font-family:var(--sf-mono); font-size:12px; font-weight:400;
  color:var(--sf-mut); margin-right:16px;
}
.sf-row-name a:hover{ color:var(--sf-plum); }
.sf-row-desc p{ font-family:var(--sf-text); font-size:15px; line-height:1.55; color:var(--sf-body); margin:0; }
.sf-row-tag p{
  font-family:var(--sf-mono); font-size:10.5px; letter-spacing:.06em;
  text-transform:uppercase; color:var(--sf-mut); margin:0; text-align:right;
}
.sf-row-out p{
  font-family:var(--sf-mono); font-size:11px; letter-spacing:.04em;
  color:var(--sf-plum); margin:10px 0 0;
}
.sf-phase > .elementor-container{ padding-top:26px; padding-bottom:26px; }
.sf-phase:hover{ background:transparent; }
.sf-fine > .elementor-container{ padding-top:22px; padding-bottom:22px; }

/* ---------- next case ---------- */
.sf-next .elementor-heading-title{
  font-family:var(--sf-display); font-size:clamp(20px,2.4vw,27px);
  font-weight:400; letter-spacing:-.018em; color:var(--sf-ink);
}
.sf-next .elementor-heading-title::after{ content:' \2192'; color:var(--sf-plum); }
.sf-next a:hover .elementor-heading-title,
.sf-next a:hover{ color:var(--sf-plum); }

/* ---------- certifications ---------- */
.sf-creds p{ display:flex; flex-wrap:wrap; gap:12px 34px; align-items:baseline; margin:0; }
.sf-creds span{ font-family:var(--sf-mono); font-size:12px; color:var(--sf-body); }
.sf-creds a{ color:var(--sf-plum); }

/* ---------- skills ---------- */
.sf-skill-head .elementor-heading-title{
  font-family:var(--sf-text); font-size:14px; font-weight:600;
  letter-spacing:-.008em; color:var(--sf-ink);
  padding-bottom:9px; border-bottom:1.5px solid var(--sf-ink); margin-bottom:13px;
}
.sf-skill-list ul{ list-style:none; padding:0; margin:0; }
.sf-skill-list li{
  font-family:var(--sf-text); font-size:14.5px; line-height:1.5;
  color:var(--sf-body); padding:6px 0; border-bottom:1px solid var(--sf-rule);
}

/* ---------- dark band ---------- */
.sf-dark{ background:var(--sf-ink); }
.sf-dark > .elementor-container{ padding-top:70px; padding-bottom:70px; }
.sf-dark-line p{
  font-family:var(--sf-display); font-weight:400;
  font-size:clamp(20px,2.4vw,28px); line-height:1.4; letter-spacing:-.018em; color:#fff; max-width:840px; margin:0;
}
.sf-dark-label p{
  font-family:var(--sf-mono); font-size:11px; letter-spacing:.09em;
  text-transform:uppercase; color:var(--sf-plum-lt); margin:22px 0 0;
}
.sf-dark .sf-btn{ margin-top:28px; }

/* ---------- responsive ---------- */
@media (max-width:1024px){
  .sf-sec > .elementor-container{ padding-top:42px; padding-bottom:42px; }
  .sf-bio > .elementor-container > .elementor-column > .elementor-widget-wrap{ padding-left:0; padding-right:0; }
  .sf-split > .elementor-container > .elementor-column:last-child > .elementor-widget-wrap{ padding-left:0; padding-top:26px; }
  .sf-portrait img{ max-width:320px; }
  .sf-meta-strip .elementor-column{ border-right:none; border-bottom:1px solid var(--sf-rule); }
  .sf-meta-strip .elementor-column:not(:first-child) .elementor-widget-wrap{ padding-left:0; }
  .sf-row-tag p{ text-align:left; }
  .sf-row > .elementor-container{ padding-top:15px; padding-bottom:15px; }
}
@media (prefers-reduced-motion:reduce){ *{ transition:none !important; animation:none !important; } }

/* ============================================================
   PROCESS PAGE
   ============================================================ */
.sf-h2 .elementor-heading-title{
  font-family:var(--sf-display); font-weight:400;
  font-size:clamp(22px,2.6vw,30px); line-height:1.18; letter-spacing:-.018em; color:var(--sf-ink);
  max-width:760px; margin-bottom:16px;
}
.sf-measure-wide{ max-width:820px; }

/* terminology toggle — the only HTML widget in the kit */
.sf-toggle{ margin-top:26px; }
.sf-seg{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.sf-seg-l{
  font-family:var(--sf-mono); font-size:10.5px; letter-spacing:.09em;
  text-transform:uppercase; color:var(--sf-mut); margin-right:8px;
}
.sf-seg button{
  font-family:var(--sf-text); font-size:13.5px; font-weight:500;
  padding:9px 18px; border:1px solid #C8C8C3; background:#fff; color:var(--sf-ink);
  border-radius:2px; cursor:pointer;
}
.sf-seg button:hover{ border-color:var(--sf-ink); }
.sf-seg button[aria-pressed="true"]{ background:var(--sf-ink); border-color:var(--sf-ink); color:#fff; }
.sf-seg button:focus-visible{ outline:3px solid var(--sf-plum); outline-offset:2px; }
.sf-term{
  font-family:var(--sf-mono); font-size:.92em;
  background:#F0E4EC; color:var(--sf-plum); padding:2px 7px; border-radius:2px;
}

/* term definition cards */
.sf-terms > .elementor-container{ padding-top:44px; padding-bottom:44px; }
.sf-terms .elementor-column .elementor-widget-wrap{ border-top:1.5px solid var(--sf-ink); padding-top:14px; }
.sf-term-word p{ margin:0 0 10px; }
.sf-term-def p{ font-family:var(--sf-text); font-size:13.5px; line-height:1.6; color:var(--sf-body); margin:0; }

/* phases */
.sf-phase-row > .elementor-container{ padding-top:34px; padding-bottom:34px; align-items:center; border-bottom:1px solid var(--sf-rule); }
.sf-artifact img{ width:100%; border:1px solid var(--sf-rule); display:block; }
.sf-phase-n .elementor-heading-title{
  font-family:var(--sf-mono); font-size:10.5px; letter-spacing:.1em;
  text-transform:uppercase; color:var(--sf-mut); margin-bottom:10px;
}
.sf-phase-h .elementor-heading-title{
  font-family:var(--sf-display); font-weight:400; font-size:clamp(22px,2.5vw,29px);
  letter-spacing:-.018em; color:var(--sf-ink); margin-bottom:12px;
}
.sf-phase-p p{ font-family:var(--sf-text); font-size:16px; line-height:1.68; color:#33353C; margin:0; }
.sf-phase-p strong{ font-family:var(--sf-text); font-weight:600; color:var(--sf-ink); }
.sf-phase-out p{
  font-family:var(--sf-text); font-size:13.5px; line-height:1.6;
  color:var(--sf-plum); margin-top:14px;
}
.sf-phase-out strong{ font-weight:600; }

/* fine print */
.sf-fine-row > .elementor-container{ padding-top:20px; padding-bottom:20px; border-bottom:1px solid var(--sf-rule); align-items:baseline; }
.sf-fine-row:first-of-type > .elementor-container{ border-top:1.5px solid var(--sf-ink); }
.sf-fine-k .elementor-heading-title{
  font-family:var(--sf-text); font-size:14.5px; font-weight:600;
  letter-spacing:-.008em; color:var(--sf-ink);
}
.sf-fine-v p{ font-family:var(--sf-text); font-size:14.5px; line-height:1.65; color:var(--sf-body); margin:0; }
.sf-spacer > .elementor-container{ padding:22px 0 0; }

@media (max-width:1024px){
  .sf-phase-row > .elementor-container{ padding-top:26px; padding-bottom:26px; }
  .sf-phase-row .elementor-column:first-child{ order:0; }
    .sf-cell p{ font-size:12.5px; }
  .sf-terms .elementor-column .elementor-widget-wrap{ padding-bottom:18px; }
}

/* ============================================================
   HOMEPAGE SKILLS SECTION  (block-skills.json)
   ============================================================ */
.sf-cap-head > .elementor-container{ padding-top:56px; padding-bottom:0; }
.sf-cap-head .sf-h2 .elementor-heading-title{ margin-bottom:0; }
.sf-cap-row:first-of-type > .elementor-container{ border-top:1.5px solid var(--sf-ink); margin-top:34px; }
.sf-cap-row > .elementor-container{ padding-top:26px; padding-bottom:26px; border-bottom:1px solid var(--sf-rule); }
.sf-cap-k .elementor-heading-title{
  font-family:var(--sf-display); font-size:19px; font-weight:500;
  line-height:1.3; letter-spacing:-.012em; color:var(--sf-ink);
}
.sf-cap-v p{ font-family:var(--sf-text); font-size:16px; line-height:1.68; color:#33353C; margin:0; }
.sf-cap-t p{
  font-family:var(--sf-mono); font-size:11.5px; line-height:1.7;
  color:var(--sf-mut); margin-top:12px;
}
.sf-cap-foot > .elementor-container{ padding-top:22px; padding-bottom:56px; }
.sf-cap-link p{ margin:0; }
.sf-cap-link a{ font-family:var(--sf-text); font-size:13.5px; color:var(--sf-plum); text-decoration:none; }
.sf-cap-link a:hover{ text-decoration:underline; text-underline-offset:4px; }

@media (max-width:860px){
  .sf-cap-row > .elementor-container{ padding-top:22px; padding-bottom:22px; }
  .sf-cap-k .elementor-heading-title{ margin-bottom:10px; }
}

/* ============================================================
   FOOTER  (theme-footer.json)
   Light ground on purpose: every page already ends with a dark
   band, and a dark footer would merge into it.
   ============================================================ */
.sf-ft-main{ background:var(--sf-paper); border-top:1.5px solid var(--sf-ink); }
.sf-ft-main > .elementor-container{ padding-top:52px; padding-bottom:40px; align-items:flex-start; }
.sf-ft-name .elementor-heading-title{
  font-family:var(--sf-display); font-size:19px; font-weight:500;
  letter-spacing:-.012em; color:var(--sf-ink);
}
.sf-ft-blurb p{
  font-family:var(--sf-text); font-size:15px; line-height:1.6;
  color:var(--sf-body); margin-top:12px; max-width:300px;
}
.sf-ft-h .elementor-heading-title{
  font-family:var(--sf-mono); font-size:10.5px; letter-spacing:.09em;
  text-transform:uppercase; color:var(--sf-mut);
  padding-bottom:10px; border-bottom:1px solid var(--sf-rule); margin-bottom:12px;
}
.sf-ft-l ul{ list-style:none; padding:0; margin:0; }
.sf-ft-l li{ margin-bottom:9px; }
.sf-ft-l a{
  font-family:var(--sf-text); font-size:14.5px;
  color:var(--sf-body); text-decoration:none;
}
.sf-ft-l a:hover{ color:var(--sf-plum); text-decoration:underline; text-underline-offset:4px; }
.sf-ft-l a:focus-visible{ outline:3px solid var(--sf-plum); outline-offset:2px; }

.sf-ft-bar{ background:var(--sf-paper); }
.sf-ft-bar > .elementor-container{
  padding-top:18px; padding-bottom:26px; border-top:0px solid var(--sf-rule); align-items:baseline;
}
.sf-ft-legal p, .sf-ft-top p{
  font-family:var(--sf-mono); font-size:11px; letter-spacing:.05em;
  color:var(--sf-mut); margin:0;
}
.sf-ft-top p{ text-align:right; }
.sf-ft-top a{ color:var(--sf-mut); text-decoration:none; }
.sf-ft-top a:hover{ color:var(--sf-plum); }

/* tablet: name block spans, links go two up */
@media (max-width:1024px){
  .sf-ft-main > .elementor-container{ padding-top:42px; padding-bottom:32px; flex-wrap:wrap; }
  .sf-ft-main > .elementor-container > .elementor-column:first-child{ width:100%; margin-bottom:14px; }
  .sf-ft-main > .elementor-container > .elementor-column:not(:first-child){ width:50%; }
  .sf-ft-blurb p{ max-width:520px; }
}
/* mobile: single column, bar stacks */
@media (max-width:600px){
  .sf-ft-main > .elementor-container{ padding-top:34px; padding-bottom:26px; }
  .sf-ft-main > .elementor-container > .elementor-column:not(:first-child){ width:100%; margin-bottom:18px; }
  .sf-ft-bar > .elementor-container > .elementor-column{ width:100%; }
  .sf-ft-top p{ text-align:left; margin-top:8px; }
}


.sf-actions > .elementor-container > .elementor-column,
.sf404-actions > .elementor-container > .elementor-column{ width:auto; }
@media (max-width:600px){
  .sf-actions > .elementor-container > .elementor-column,
  .sf404-actions > .elementor-container > .elementor-column{ width:100%; }
}


/* ============================================================
   HERO SERIF LINE  — homepage only
   Add a Heading widget directly above the H1, class: sf-h1-serif
   ============================================================ */
.sf-h1-serif .elementor-heading-title{
  font-family:var(--sf-accent); font-style:italic; font-weight:400;
  font-size:clamp(30px,4vw,48px); line-height:1.08; letter-spacing:0;
  color:var(--sf-ink); margin-bottom:2px;
}
.sf-h1-serif + .elementor-widget-heading .elementor-heading-title{ margin-top:0; }
@media (max-width:600px){
  .sf-h1-serif .elementor-heading-title{ font-size:30px; }
}


.sf-cap-row > .elementor-container:not(:has(.sf-cap-k)){
  padding-top:0; padding-bottom:8px;
  border-bottom:none;
  margin-top:0;
}

/* ============================================================
   HERO SERIF LINE — homepage only
   ============================================================ */
.sf-h1-serif .elementor-heading-title,
.sf-hero-serif{
  font-family:var(--sf-accent); font-style:italic; font-weight:400;
  font-size:clamp(30px,4vw,48px); line-height:1.08; letter-spacing:0;
  color:var(--sf-ink); display:block; margin-bottom:2px;
}
.sf-h1-serif{ margin-bottom:0 !important; }
.sf-h1-serif .elementor-widget-container{ margin-bottom:0; }
@media (max-width:600px){
  .sf-h1-serif .elementor-heading-title,
  .sf-hero-serif{ font-size:30px; }
}

/* ============================================================
   PAGE WIDTH · 1280
   ============================================================ */
.elementor-section > .elementor-container{ max-width:1280px !important; }


/* ============================================================
   GLOBAL WIDTH + GUTTERS
   Old Sections and new Containers alike, top level only.
   Inner sections and child containers excluded so padding
   never doubles up.
   ============================================================ */
.elementor-section:not(.elementor-inner-section) > .elementor-container,
.e-con.e-parent > .e-con-inner{
  max-width: calc(var(--sf-max) + (var(--sf-gut) * 2)) !important;
  padding-left: var(--sf-gut);
  padding-right: var(--sf-gut);
}

/* a brand new, unclassed section still gets sensible vertical rhythm */
.elementor-section:not(.elementor-inner-section):not([class*="sf-"]) > .elementor-container,
.e-con.e-parent:not([class*="sf-"]) > .e-con-inner{
  padding-top:56px; padding-bottom:56px;
}
/* header: panel controls the height, nothing else */
.elementor-location-header .e-con.e-parent > .e-con-inner,
.elementor-location-header .elementor-section > .elementor-container{
  padding-top:20px!important;
  padding-bottom:20px !important;
}

/* the named classes work on Containers too, not only Sections */
.sf-sec > .e-con-inner{ padding-top:56px; padding-bottom:56px; }
.sf-hero > .e-con-inner{ padding-top:74px; padding-bottom:40px; }
.sf-dark > .e-con-inner{ padding-top:70px; padding-bottom:70px; }

/* full bleed escape hatch for anything that should touch the edges */
.sf-bleed > .elementor-container,
.sf-bleed > .e-con-inner{
  max-width:none !important; padding-left:0; padding-right:0;
}

/* ============================================================
   PROCESS PAGE · additions for the rebuilt template
   ============================================================ */

/* no trailing rule on the last row of any group */
.sf-row:last-of-type > .elementor-container,
.sf-fine-row:last-of-type > .elementor-container,
.sf-phase-row:last-of-type > .elementor-container,
.sf-cap-row:last-of-type > .elementor-container{ border-bottom:none; }

.sf-grid-build .elementor-column:nth-child(2) .sf-cell p{
  background:transparent; border-style:dashed; color:var(--sf-mut);
}

/* ============================================================
   PROCESS ARTIFACTS · coded, one HTML widget each
   Markup lives in the widget, all styling lives here.
   ============================================================ */
.sf-art{
  display:block; background:var(--sf-paper); border:1px solid var(--sf-rule);
  padding:24px 24px 20px; max-width:420px; width:100%;
}
.sf-art .cap{
  display:block; font-family:var(--sf-mono); font-size:10px; letter-spacing:.1em;
  text-transform:uppercase; color:var(--sf-mut); margin-top:18px;
  padding-top:12px; border-top:1px solid var(--sf-rule);
}
.sf-art i, .sf-art b{ display:block; }

/* 01 interview notes */
.sf-art-int .q{ font-family:var(--sf-accent); font-size:46px; line-height:.6; color:var(--sf-plum-lt); }
.sf-art-int .ln{ display:block; margin-top:14px; }
.sf-art-int .ln i{ height:10px; background:var(--sf-rule); margin-bottom:10px; }
.sf-art-int .ln i:nth-child(1){ width:92%; }
.sf-art-int .ln i:nth-child(2){ width:100%; }
.sf-art-int .ln i:nth-child(4){ width:74%; }
.sf-art-int .ln i.hl{ background:#F0E4EC; border-left:4px solid var(--sf-plum); width:84%; }

/* 02 journey map */
.sf-art-jm .bars{ display:flex; align-items:flex-end; gap:12px; height:96px; border-bottom:2px solid var(--sf-ink); padding:0 4px; }
.sf-art-jm .bars i{ flex:1; background:var(--sf-band); border:1px solid var(--sf-rule); border-bottom:none; }
.sf-art-jm .b1{ height:62%; } .sf-art-jm .b2{ height:44%; }
.sf-art-jm .b3{ height:18%; background:#F0E4EC; border-color:var(--sf-plum); position:relative; }
.sf-art-jm .b3::after{ content:""; position:absolute; top:-18px; left:50%; transform:translateX(-50%);
  width:11px; height:11px; border-radius:50%; background:var(--sf-plum); }
.sf-art-jm .b4{ height:52%; }
.sf-art-jm .lbl{ display:flex; gap:12px; padding:10px 4px 0; }
.sf-art-jm .lbl i{ flex:1; height:6px; background:var(--sf-rule); }

/* 03 user story */
.sf-art-st .row{ display:flex; gap:12px; align-items:center; margin-bottom:10px; }
.sf-art-st .k{ font-family:var(--sf-mono); font-size:10px; letter-spacing:.06em; color:var(--sf-plum); width:58px; flex-shrink:0; }
.sf-art-st .row i{ height:10px; background:var(--sf-rule); flex:1; }
.sf-art-st .ac{ display:block; border-top:1px solid var(--sf-rule); padding-top:14px; margin-top:14px; }
.sf-art-st .cbx{ width:14px; height:14px; border:1.5px solid #C8C8C3; flex-shrink:0; }
.sf-art-st .cbx.ck{ background:var(--sf-plum); border-color:var(--sf-plum); }

/* 04 wireframe to prototype */
.sf-art-wp .pair{ display:flex; align-items:center; gap:12px; }
.sf-art-wp .fr{ flex:1; border:1px solid var(--sf-rule); padding:10px; background:var(--sf-paper); }
.sf-art-wp .wf i{ background:var(--sf-rule); }
.sf-art-wp .wf .t{ height:9px; width:70%; margin-bottom:8px; }
.sf-art-wp .wf .m{ height:24px; width:100%; margin-bottom:8px; border:1px solid var(--sf-rule); background:var(--sf-band); }
.sf-art-wp .wf .btn{ height:11px; width:44%; }
.sf-art-wp .hf .t{ height:9px; width:70%; margin-bottom:8px; background:var(--sf-ink); }
.sf-art-wp .hf .m{ height:24px; width:100%; margin-bottom:8px; background:var(--sf-band); border:1px solid var(--sf-rule); }
.sf-art-wp .hf .btn{ height:13px; width:48%; background:var(--sf-plum); }
.sf-art-wp .arr{ color:var(--sf-plum); font-size:19px; font-weight:600; flex-shrink:0; }

/* 05 findings log */
.sf-art-fn .frow{ display:flex; align-items:center; gap:12px; padding:9px 0; border-bottom:1px solid var(--sf-rule); }
.sf-art-fn .frow:last-of-type{ border-bottom:none; }
.sf-art-fn .dot{ width:11px; height:11px; border-radius:50%; flex-shrink:0; }
.sf-art-fn .d1{ background:var(--sf-plum); }
.sf-art-fn .d2{ background:var(--sf-ink); }
.sf-art-fn .d3{ background:var(--sf-rule); }
.sf-art-fn .frow i{ height:9px; background:var(--sf-rule); flex:1; }
.sf-art-fn .sev{ font-family:var(--sf-mono); font-size:9.5px; letter-spacing:.06em; color:var(--sf-mut); flex-shrink:0; }

/* 06 handoff spec */
.sf-art-sp .wrap{ display:block; position:relative; padding:12px 30px 16px 0; }
.sf-art-sp .comp{ height:46px; background:var(--sf-ink); display:flex; align-items:center; justify-content:flex-end; padding-right:16px; }
.sf-art-sp .comp b{ width:66px; height:14px; background:var(--sf-plum); }
.sf-art-sp .mx{ position:absolute; right:8px; top:12px; bottom:16px; width:1px; background:#C8C8C3; }
.sf-art-sp .mx::before, .sf-art-sp .mx::after{ content:""; position:absolute; left:-4px; width:9px; height:1px; background:#C8C8C3; }
.sf-art-sp .mx::before{ top:0; } .sf-art-sp .mx::after{ bottom:0; }
.sf-art-sp .tokens{ display:flex; gap:8px; flex-wrap:wrap; margin-top:12px; }
.sf-art-sp .tokens span{ font-family:var(--sf-mono); font-size:9.5px; color:var(--sf-plum);
  background:#F0E4EC; border:1px solid #E3CEDA; padding:5px 9px; }

@media (max-width:760px){ .sf-art{ max-width:none; } }

/* centre the coded artifact inside its column */
.sf-artifact-wrap{ display:flex; justify-content:center; }
@media (max-width:760px){ .sf-artifact-wrap{ justify-content:flex-start; } }

/* ============================================================
   PROCESS PAGE · dark hero + glossary cards
   ============================================================ */
.sf-hero-dark{ background:var(--sf-ink); }
.sf-hero-dark > .elementor-container,
.sf-hero-dark > .e-con-inner{ padding-top:100px; padding-bottom:90px; }
.sf-hero-dark .sf-eyebrow .elementor-heading-title{ color:#8A8A90; }
.sf-hero-dark .sf-h1 .elementor-heading-title{
  color:#fff; font-size:clamp(34px,5.4vw,68px); line-height:1.04; max-width:900px;
}
.sf-hero-dark .sf-sub p{ color:#C9C9CE; max-width:640px; }

/* glossary cards */
.sf-gloss > .elementor-container{ padding-top:0; padding-bottom:44px; }
.sf-gloss .elementor-column .elementor-widget-wrap{
  border:1px solid var(--sf-rule); padding:20px; height:100%;
}
.sf-gloss-k p{ margin:0 0 12px; }
.sf-gloss-k .sf-term{
  display:inline-block; font-family:var(--sf-mono); font-size:11px;
  color:var(--sf-plum); background:#F0E4EC; border:1px solid #E3CEDA;
  padding:5px 9px; border-radius:0;
}
.sf-gloss-v p{ font-family:var(--sf-text); font-size:13px; line-height:1.6; color:var(--sf-body); margin:0; }

.sf-lanes .lane > span{
  padding:14px; border-bottom:1px solid var(--sf-rule); border-left:1px solid var(--sf-rule);
  min-height:66px; display:flex; align-items:center;
}
.sf-lanes .lane:last-child > span{ border-bottom:none; }
.sf-lanes .lane > span:first-child{
  border-left:none; font-family:var(--sf-text); font-size:13px; font-weight:500;
  color:var(--sf-ink); line-height:1.35;
}
.sf-lanes .chip{
  display:block; width:100%; font-family:var(--sf-text); font-size:12.5px;
  font-weight:500; text-align:center; padding:11px 8px;
}
.sf-lanes .chip.design{ background:#F0E4EC; border:1px solid #E3CEDA; color:var(--sf-plum); }
.sf-lanes .chip.build{ background:var(--sf-band); border:1px solid var(--sf-rule); color:var(--sf-body); }
.sf-lanes .chip.empty{ background:transparent; border:1px dashed var(--sf-rule); color:var(--sf-mut); font-weight:400; }
@media (max-width:640px){
  .sf-lanes .head, .sf-lanes .lane{ grid-template-columns:92px 1fr 1fr 1fr; }
  .sf-lanes .lane > span{ padding:10px; }
  .sf-lanes .chip{ font-size:11px; padding:9px 4px; }
}
.sf-gridnote p{ margin-top:0; margin-bottom:0; }

/* the rhythm block is one section, so nothing stacks padding */
.sf-rhythm > .elementor-container,
.sf-rhythm > .e-con-inner{ padding-top:76px; padding-bottom:44px; }
.sf-rhythm .sf-toggle{ margin-top:24px; }
.sf-gloss > .elementor-container{ padding-top:36px; padding-bottom:56px; }

/* the six phases: hairline under the label, dividers between rows */
.sf-idx-head > .elementor-container{ padding-bottom:14px; }
.sf-idx-head + .sf-phase-row > .elementor-container,
.sf-idx-head + .sf-fine-row > .elementor-container{ border-top:1px solid var(--sf-rule); }
.sf-dark .sf-dark-line p{ margin-bottom:26px; }/* End custom CSS */