.elementor-47 .elementor-element.elementor-element-16c622c{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:16px 16px;--row-gap:16px;--column-gap:16px;--padding-top:30px;--padding-bottom:30px;--padding-left:32px;--padding-right:32px;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-47 .elementor-element.elementor-element-f48134d .elementor-heading-title{font-size:42px;font-weight:700;}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-47 .elementor-element.elementor-element-53025a1{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:16px 16px;--row-gap:16px;--column-gap:16px;--padding-top:30px;--padding-bottom:30px;--padding-left:32px;--padding-right:32px;}.elementor-47 .elementor-element.elementor-element-df06e83{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:16px 16px;--row-gap:16px;--column-gap:16px;--padding-top:30px;--padding-bottom:30px;--padding-left:32px;--padding-right:32px;}.elementor-47 .elementor-element.elementor-element-b9f9331{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:16px 16px;--row-gap:16px;--column-gap:16px;--padding-top:30px;--padding-bottom:30px;--padding-left:32px;--padding-right:32px;}.elementor-47 .elementor-element.elementor-element-bbe7b76{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:16px 16px;--row-gap:16px;--column-gap:16px;--padding-top:30px;--padding-bottom:30px;--padding-left:32px;--padding-right:32px;}.elementor-47 .elementor-element.elementor-element-9f93fb5{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:16px 16px;--row-gap:16px;--column-gap:16px;--padding-top:30px;--padding-bottom:30px;--padding-left:32px;--padding-right:32px;}.elementor-47 .elementor-element.elementor-element-21af256{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:16px 16px;--row-gap:16px;--column-gap:16px;--padding-top:30px;--padding-bottom:30px;--padding-left:32px;--padding-right:32px;}.elementor-47 .elementor-element.elementor-element-d73701b{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:16px 16px;--row-gap:16px;--column-gap:16px;--padding-top:30px;--padding-bottom:30px;--padding-left:32px;--padding-right:32px;}.elementor-47 .elementor-element.elementor-element-5aaaa8d{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:16px 16px;--row-gap:16px;--column-gap:16px;--padding-top:30px;--padding-bottom:30px;--padding-left:32px;--padding-right:32px;}.elementor-47 .elementor-element.elementor-element-463f169{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:16px 16px;--row-gap:16px;--column-gap:16px;--padding-top:30px;--padding-bottom:30px;--padding-left:32px;--padding-right:32px;}.elementor-47 .elementor-element.elementor-element-753100e{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}:root{--page-title-display:none;}@media(min-width:768px){.elementor-47 .elementor-element.elementor-element-16c622c{--content-width:1180px;}.elementor-47 .elementor-element.elementor-element-53025a1{--content-width:1180px;}.elementor-47 .elementor-element.elementor-element-df06e83{--content-width:1180px;}.elementor-47 .elementor-element.elementor-element-b9f9331{--content-width:1180px;}.elementor-47 .elementor-element.elementor-element-bbe7b76{--content-width:1180px;}.elementor-47 .elementor-element.elementor-element-9f93fb5{--content-width:1180px;}.elementor-47 .elementor-element.elementor-element-21af256{--content-width:1180px;}.elementor-47 .elementor-element.elementor-element-d73701b{--content-width:1180px;}.elementor-47 .elementor-element.elementor-element-5aaaa8d{--content-width:1180px;}.elementor-47 .elementor-element.elementor-element-463f169{--content-width:1180px;}}@media(max-width:1024px){.elementor-47 .elementor-element.elementor-element-16c622c{--padding-top:30px;--padding-bottom:30px;--padding-left:24px;--padding-right:24px;}.elementor-47 .elementor-element.elementor-element-53025a1{--padding-top:30px;--padding-bottom:30px;--padding-left:24px;--padding-right:24px;}.elementor-47 .elementor-element.elementor-element-df06e83{--padding-top:30px;--padding-bottom:30px;--padding-left:24px;--padding-right:24px;}.elementor-47 .elementor-element.elementor-element-b9f9331{--padding-top:30px;--padding-bottom:30px;--padding-left:24px;--padding-right:24px;}.elementor-47 .elementor-element.elementor-element-bbe7b76{--padding-top:30px;--padding-bottom:30px;--padding-left:24px;--padding-right:24px;}.elementor-47 .elementor-element.elementor-element-9f93fb5{--padding-top:30px;--padding-bottom:30px;--padding-left:24px;--padding-right:24px;}.elementor-47 .elementor-element.elementor-element-21af256{--padding-top:30px;--padding-bottom:30px;--padding-left:24px;--padding-right:24px;}.elementor-47 .elementor-element.elementor-element-d73701b{--padding-top:30px;--padding-bottom:30px;--padding-left:24px;--padding-right:24px;}.elementor-47 .elementor-element.elementor-element-5aaaa8d{--padding-top:30px;--padding-bottom:30px;--padding-left:24px;--padding-right:24px;}.elementor-47 .elementor-element.elementor-element-463f169{--padding-top:30px;--padding-bottom:30px;--padding-left:24px;--padding-right:24px;}}@media(max-width:767px){.elementor-47 .elementor-element.elementor-element-16c622c{--padding-top:30px;--padding-bottom:30px;--padding-left:16px;--padding-right:16px;}.elementor-47 .elementor-element.elementor-element-f48134d .elementor-heading-title{font-size:30px;}.elementor-47 .elementor-element.elementor-element-53025a1{--padding-top:30px;--padding-bottom:30px;--padding-left:16px;--padding-right:16px;}.elementor-47 .elementor-element.elementor-element-df06e83{--padding-top:30px;--padding-bottom:30px;--padding-left:16px;--padding-right:16px;}.elementor-47 .elementor-element.elementor-element-b9f9331{--padding-top:30px;--padding-bottom:30px;--padding-left:16px;--padding-right:16px;}.elementor-47 .elementor-element.elementor-element-bbe7b76{--padding-top:30px;--padding-bottom:30px;--padding-left:16px;--padding-right:16px;}.elementor-47 .elementor-element.elementor-element-9f93fb5{--padding-top:30px;--padding-bottom:30px;--padding-left:16px;--padding-right:16px;}.elementor-47 .elementor-element.elementor-element-21af256{--padding-top:30px;--padding-bottom:30px;--padding-left:16px;--padding-right:16px;}.elementor-47 .elementor-element.elementor-element-d73701b{--padding-top:30px;--padding-bottom:30px;--padding-left:16px;--padding-right:16px;}.elementor-47 .elementor-element.elementor-element-5aaaa8d{--padding-top:30px;--padding-bottom:30px;--padding-left:16px;--padding-right:16px;}.elementor-47 .elementor-element.elementor-element-463f169{--padding-top:30px;--padding-bottom:30px;--padding-left:16px;--padding-right:16px;}}/* Start custom CSS *//* Adapted from open-design "professional" tokens.css. Font binding changed away from Inter
   (anti-ai-slop 9.B) to IBM Plex Sans; accent desaturated one step; no other hex outside :root. */
:root{
  --bg:#f5f7fb;--surface:#ffffff;--surface-warm:#eaf0fb;--surface-deep:#0f1a2e;
  --fg:#101828;--fg-2:#344054;--muted:#667085;--fg-on-deep:#e8eef9;
  --border:#d7e0ef;--border-soft:#edf2f8;
  --accent:#1d4ed8;--accent-on:#ffffff;--accent-hover:#1e40af;--accent-active:#1e3a8a;
  --accent-soft:#dbe6fb;
  --success:#15803d;--warn:#b45309;--danger:#b91c1c;
  --font-display:"IBM Plex Sans","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --font-body:"IBM Plex Sans","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  --text-xs:12px;--text-sm:14px;--text-base:16px;--text-lg:18px;--text-xl:22px;--text-2xl:30px;--text-3xl:42px;--text-4xl:56px;
  --leading-body:1.58;--leading-tight:1.08;--tracking-display:-0.022em;
  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-12:48px;
  --section-y-desktop:88px;--section-y-tablet:64px;--section-y-phone:48px;
  --radius-sm:8px;--radius-md:14px;--radius-lg:22px;--radius-pill:9999px;
  --elev-ring:0 0 0 1px var(--border);--elev-raised:0 18px 48px rgba(16,24,40,.10);
  --focus-ring:0 0 0 4px rgba(29,78,216,.22);
  --motion-fast:150ms;--motion-base:220ms;--ease:cubic-bezier(.2,0,0,1);
  --container:1180px;--gutter:36px;
}


.src{font-size:var(--text-sm);color:var(--muted)}

.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}

.hero-card .src{margin-bottom:18px}


/* ---------- service grid (asymmetric: first card spans 2) ---------- */
.grid-services{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}

.grid-services > article{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:24px}

.grid-services > article:first-child{grid-column:span 2;background:var(--accent-soft)}

.grid-services > article:nth-child(4){background:var(--surface-warm)}

.grid-services h3{margin-top:0;font-size:var(--text-lg)}

.grid-services ul{font-size:var(--text-sm);columns:2;column-gap:20px}

.grid-services > article:not(:first-child) ul{columns:1}
@media (max-width:960px){.grid-services{grid-template-columns:1fr 1fr}.grid-services > article:first-child{grid-column:span 2}}
@media (max-width:620px){.grid-services{grid-template-columns:1fr}.grid-services > article:first-child{grid-column:span 1}.grid-services ul{columns:1}}


/* ---------- industries (2-col grouped, not 3 equal cards) ---------- */
.grid-industries{display:grid;grid-template-columns:1fr 1fr;gap:0 48px}

.grid-industries > article{padding:22px 0;border-top:1px solid var(--border)}

.grid-industries h3{margin-top:0;font-size:var(--text-lg)}
@media (max-width:760px){.grid-industries{grid-template-columns:1fr}}


/* ---------- process (numbered rail) ---------- */
.rail{counter-reset:step;list-style:none;padding:0;margin:0;max-width:none;display:grid;grid-template-columns:repeat(3,1fr);gap:24px 32px}

.rail > li{counter-increment:step;position:relative;padding-top:52px;margin:0}

.rail > li::before{content:counter(step,decimal-leading-zero);position:absolute;top:0;left:0;font-family:var(--font-mono);font-size:var(--text-2xl);font-weight:600;color:var(--accent);line-height:1}

.rail h3{margin-top:0;font-size:var(--text-lg)}
@media (max-width:900px){.rail{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.rail{grid-template-columns:1fr}}


/* ---------- pricing (3 tiers, middle emphasised; SERP band cited below) ---------- */
.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:24px 0 8px}

.tier{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:26px;display:flex;flex-direction:column}

.tier.featured{border-color:var(--accent);box-shadow:var(--elev-raised)}

.tier h3{margin-top:0;font-size:var(--text-lg)}

.tier .price{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:700;letter-spacing:-.02em;margin:.2em 0 0}

.tier .price small{font-size:var(--text-sm);font-weight:500;color:var(--muted);letter-spacing:0}

.tier ul{font-size:var(--text-sm);flex:1}

.tier .btn{margin-top:14px}
@media (max-width:860px){.tiers{grid-template-columns:1fr}}


/* ---------- comparison ---------- */
.compare td:first-child{font-weight:600;white-space:nowrap}


/* ---------- read-more: CSS-only via <details>, no JS ---------- */
details.more{margin:.2em 0 1.2em}

details.more > summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:8px;font-weight:650;color:var(--accent);padding:6px 0;min-height:44px}

details.more > summary::-webkit-details-marker{display:none}

details.more > summary::after{content:"";width:9px;height:9px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform var(--motion-fast) var(--ease)}

details.more[open] > summary::after{transform:rotate(-135deg) translateY(-1px)}

details.more[open] > summary .when-closed,details.more:not([open]) > summary .when-open{display:none}

details.more > summary:hover{color:var(--accent-hover)}


/* ---------- FAQ accordion (details) ---------- */
.faq details{border-top:1px solid var(--border);padding:4px 0}

.faq details:last-of-type{border-bottom:1px solid var(--border)}

.faq summary{cursor:pointer;list-style:none;padding:16px 40px 16px 0;font-weight:650;font-size:var(--text-lg);position:relative;min-height:44px}

.faq summary::-webkit-details-marker{display:none}

.faq summary::after{content:"+";position:absolute;right:4px;top:12px;font-size:26px;font-weight:300;color:var(--accent);line-height:1}

.faq details[open] summary::after{content:"\2212"}

.faq details > :not(summary){padding-right:40px}

.faq h3{font-size:inherit;margin:0;font-weight:inherit;display:inline}


/* ---------- certification badge row (typographic tiles, no third-party logos) ---------- */
.badges{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;list-style:none;padding:0;margin:20px 0 0;max-width:none}

.badges li{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);padding:14px 16px;margin:0;display:flex;flex-direction:column;gap:2px;min-height:78px}

.badges .who{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}

.badges .what{font-family:var(--font-display);font-weight:650;font-size:15px;line-height:1.25}

.review-slot{border:1px dashed var(--border);border-radius:var(--radius-md);padding:24px;color:var(--muted);font-size:var(--text-sm);background:var(--surface)}


/* ---------- areas (columns) ---------- */
.areas ul{list-style:none;padding:0;columns:4;column-gap:24px;max-width:none}

.areas li{break-inside:avoid;padding:4px 0;border-bottom:1px solid var(--border-soft)}
@media (max-width:900px){.areas ul{columns:3}}
@media (max-width:560px){.areas ul{columns:2}}


/* ---------- contact block ---------- */
address{font-style:normal}

dl.kv{display:grid;grid-template-columns:max-content 1fr;gap:8px 18px;margin:0 0 1.2em}

dl.kv dt{font-weight:600;color:var(--fg-2)}

dl.kv dd{margin:0}


/* ---------- certification logo slider: CSS scroll-snap, anchor arrows, no JS ---------- */
.logos .src{margin-bottom:12px}

.slider{position:relative}

.logo-track{list-style:none;margin:0;padding:6px 0 14px;display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:0 8px;-webkit-overflow-scrolling:touch;max-width:none;scrollbar-width:thin}

.logo-track li{flex:0 0 220px;scroll-snap-align:start;margin:0}

.logo-track figure{margin:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px;text-align:center}

.logo-track img{width:100%;height:auto;aspect-ratio:2/1;object-fit:contain;background:#ffffff;border-radius:6px}

.logo-track figcaption{font-size:var(--text-xs);color:var(--muted);margin-top:8px}

.slider-arrow{position:absolute;top:38%;width:40px;height:40px;border-radius:var(--radius-pill);background:var(--surface);border:1px solid var(--border);display:none;align-items:center;justify-content:center;text-decoration:none;color:var(--fg);font-size:26px;line-height:1;z-index:2}

.slider-arrow.prev{left:-20px}
.slider-arrow.next{right:-20px}
@media (min-width:1100px){.slider-arrow{display:flex}}



/* ---------- map ---------- */
.map{margin:20px 0 0;border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;background:var(--surface)}

.map iframe{display:block;width:100%;height:auto;aspect-ratio:3/2;border:0}

.map figcaption{padding:10px 14px;font-size:var(--text-sm);border-top:1px solid var(--border-soft)}


/* ---------- mobile menu: <details>, no JS ---------- */
.mnav{display:none;position:relative}

.mnav summary::-webkit-details-marker{display:none}
@media (max-width:640px){
  .grid-services ul{columns:1}}


/* ---------- photos (visual semantics: each image sits beside the copy it illustrates) ---------- */
.photo{margin:0 0 20px;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border);background:var(--surface)}

.photo img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}

.photo figcaption{font-size:var(--text-xs);color:var(--muted);padding:8px 12px}

.photo.float{float:right;width:44%;margin:6px 0 16px 32px}
@media (max-width:820px){.photo.float{float:none;width:100%;margin:0 0 18px}}


/* ---------- read-more after paragraph 1 (intro, definition) ---------- */
details.fold{margin:.2em 0 1.2em}

details.fold > summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:8px;font-weight:650;color:var(--accent);padding:6px 0;min-height:44px}

details.fold > summary::-webkit-details-marker{display:none}

details.fold > summary::after{content:"";width:9px;height:9px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px)}

details.fold[open] > summary::after{transform:rotate(-135deg) translateY(-1px)}

details.fold[open] > summary .when-closed,details.fold:not([open]) > summary .when-open{display:none}


/* ---------- service cards: uniform height, 4-line teaser + read more (all but the featured card) ---------- */
.grid-services > article{display:flex;flex-direction:column}

.grid-services > article:not(:first-child):has(details.more:not([open])) > p:first-of-type{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden}

.grid-services > article details.more{margin-top:auto}

.grid-services > article details.more > summary{padding-top:10px}


/* ---------- review slider ---------- */
.review-track{list-style:none;margin:0;padding:6px 0 14px;display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;max-width:none;scrollbar-width:thin}

.review-track li{flex:0 0 340px;scroll-snap-align:start;margin:0}
@media (max-width:480px){.review-track li{flex-basis:88%}}

.review{position:relative;height:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:22px 22px 18px;display:flex;flex-direction:column;gap:10px}

.review .sample{position:absolute;top:12px;right:12px;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--warn);border:1px solid currentColor;border-radius:var(--radius-pill);padding:2px 8px}

.review .stars{color:var(--warn);letter-spacing:2px;margin:0;font-size:15px}

.review blockquote{margin:0;flex:1}

.review blockquote p{margin:0;font-size:15px}

.review footer{display:flex;flex-direction:column;font-size:var(--text-sm);color:var(--muted)}

.review footer strong{color:var(--fg)}


/* ---------- founder ---------- */
.founder-grid{display:grid;grid-template-columns:minmax(220px,300px) 1fr;gap:40px;align-items:center}

.founder-photo{margin:0;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border)}

.founder-photo img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover}

.founder-name{font-size:var(--text-lg);margin:0 0 .8em}

.founder-name span{display:block;color:var(--muted);font-size:var(--text-sm)}
@media (max-width:760px){.founder-grid{grid-template-columns:1fr}.founder-photo{max-width:280px}}
.elementor-widget-text-editor ul:not(.badges):not(.areas),.elementor-widget-text-editor ol:not(.rail){max-width:70ch}
.elementor-widget-text-editor ul.badges,.elementor-widget-text-editor ol.rail{max-width:none}
.table-scroll{overflow-x:auto}.table-scroll table{border-collapse:collapse;width:100%;font-size:14px;background:var(--surface);border:1px solid var(--border);border-radius:8px}
.table-scroll th,.table-scroll td{padding:.7em .8em;border-bottom:1px solid var(--border-soft);text-align:left;vertical-align:top}
.table-scroll thead th{background:var(--surface-warm);font-weight:650}
.elementor-toggle-title{font-weight:650;color:var(--accent)}

.elementor-widget-heading h2{font-size:1.35rem;margin-top:1.4em}/* End custom CSS */