/*
Theme Name: TML Divi Child
Theme URI: https://titomedialab.com/
Description: TitoMediaLab's governed Divi child theme. Design tokens mirror the Astro site (tml-site/src/styles/tokens.css). Use with the current stable Divi release.
Author: TitoMediaLab
Author URI: https://titomedialab.com/
Template: Divi
Version: 20261014.4
Text Domain: tml-divi-child
*/

/* ---- Fonts (self-hosted, same files as the Astro site; Fontshare ITF FFL) ---- */
@font-face { font-family: 'Cabinet Grotesk'; src: url('fonts/cabinet-grotesk-800.woff2') format('woff2'); font-weight: 800; font-style: normal; font-display: swap; }
@font-face { font-family: 'Cabinet Grotesk'; src: url('fonts/cabinet-grotesk-500.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'Switzer'; src: url('fonts/switzer-400.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Switzer'; src: url('fonts/switzer-500.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'Switzer'; src: url('fonts/switzer-600.woff2') format('woff2'); font-weight: 600; font-style: normal; font-display: swap; }

/* ---- Tokens: exact copy of the Astro dark theme (primary) ---- */
:root {
  --font-display: 'Cabinet Grotesk', 'Arial Black', sans-serif;
  --font-body: 'Switzer', -apple-system, 'Segoe UI', sans-serif;
  --font-mono: ui-monospace, 'Cascadia Code', 'SF Mono', Consolas, monospace;

  --text-display-1: clamp(3rem, 1.2rem + 7.6vw, 8.25rem);
  --text-display-2: clamp(2.25rem, 1.1rem + 4.4vw, 5rem);
  --text-display-3: clamp(1.6rem, 1.1rem + 1.9vw, 2.75rem);
  --text-lg: clamp(1.125rem, 1rem + 0.5vw, 1.375rem);
  --text-xl: 1.5rem;
  --text-base: 1.0625rem;
  --text-sm: 0.9375rem;
  --text-xs: 0.8125rem;
  --text-label: 0.75rem;

  --leading-display: 0.96;
  --leading-tight: 1.15;
  --leading-body: 1.65;

  --tracking-display: -0.025em;
  --tracking-tight: -0.01em;
  --tracking-label: 0.14em;

  --s-1: 0.5rem;
  --s-2: 1rem;
  --s-3: 1.5rem;
  --s-4: 2rem;
  --s-5: 2.5rem;
  --s-6: 3rem;
  --s-8: 4rem;
  --s-12: 6rem;
  --s-16: 8rem;
  --s-24: 12rem;

  --section-pad: clamp(5rem, 3rem + 5vw, 8rem);
  --container-max: 84rem;
  --gutter: clamp(1.25rem, 0.5rem + 3.2vw, 4rem);
  --header-h: 4.5rem;

  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --dur-fast: 180ms;
  --dur-med: 360ms;
  --radius-sm: 4px;
  --radius-pill: 999px;

  color-scheme: dark;
  --bg-0: #07090f;
  --bg-1: #0b0e18;
  --bg-2: #101422;
  --scrim-rgb: 7, 9, 15;
  --ink-1: #eef0f6;
  --ink-2: #a9afc0;
  --ink-3: #828a9e;
  --line: rgba(238, 240, 246, 0.09);
  --line-strong: rgba(238, 240, 246, 0.18);
  --navy: #19224c;
  --navy-soft: rgba(25, 34, 76, 0.55);
  --accent: #f15a26;
  --accent-hover: #ff6a35;
  --accent-strong: #c43e12;
  --accent-cta-hover: #a33310;
  --accent-ink: #ffffff;
  --status-ok: #34d399;
  --status-err: #fb7185;
  --focus-ring: var(--accent);
  --selection-bg: var(--accent);
  --selection-ink: #ffffff;
}

/* ---- Base (Astro global.css equivalents, scoped so Divi UI keeps working) ---- */
html {
  -webkit-text-size-adjust: 100%;
  scroll-padding-top: calc(var(--header-h) + 1rem);
  background: var(--bg-0);
}

body,
body #page-container,
body #main-content {
  background-color: var(--bg-0);
}

body {
  font-family: var(--font-body);
  font-size: var(--text-base);
  font-weight: 400;
  line-height: var(--leading-body);
  letter-spacing: var(--tracking-tight);
  color: var(--ink-2);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 800;
  line-height: var(--leading-display);
  letter-spacing: var(--tracking-display);
  color: var(--ink-1);
  text-wrap: balance;
}

::selection { background: var(--selection-bg); color: var(--selection-ink); }

:focus { outline: none; }
:focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: 3px;
  border-radius: var(--radius-sm);
}

@media (forced-colors: active) {
  :focus-visible { outline: 2px solid CanvasText; }
}

/* Astro .container: max 84rem including gutters. Divi rows follow the same box. */
body .et_pb_row {
  width: calc(100% - 2 * var(--gutter));
  max-width: calc(var(--container-max) - 2 * var(--gutter));
  padding-top: 0;
  padding-bottom: 0;
}

img, video { max-width: 100%; height: auto; }
iframe { max-width: 100%; }

/* Opt-in only: reserve a 16/10 box for images that need it. */
.tml-media-reserved {
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

/* ---- Component helpers referenced by rebuilt sections ---- */
.tml-label {
  font-family: var(--font-mono);
  font-size: var(--text-label);
  font-weight: 500;
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
  color: var(--ink-3);
}
.tml-stat-value { font-variant-numeric: tabular-nums; }

/* ---- Film grain: fixed, ultra-subtle, decorative (Astro body::after) ---- */
body::after {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 50;
  pointer-events: none;
  opacity: 0.05;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.6'/%3E%3C/svg%3E");
  background-size: 160px 160px;
}

/* ---- Mobile rhythm: same breakpoint and values as Astro global.css ---- */
@media (max-width: 760px) {
  :root {
    --section-pad: 3.25rem;
    --s-12: 3.5rem;
    --s-8: 2.75rem;
  }
}

/* >>> header */
/* ============================================================
   Header (Astro Header.astro, dark theme). Structure is native Divi
   modules in the Theme Builder header; these rules carry the look.
   ============================================================ */
.tml-only-mobile { display: none !important; }
@media (max-width: 980px) {
  .tml-only-desktop { display: none !important; }
  .tml-only-mobile { display: block !important; }
}

.tml-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 100;
  height: var(--header-h);
  padding: 0;
  background: transparent;
  border-bottom: 1px solid var(--line);
}
/* blur lives on a pseudo-element: backdrop-filter on the header itself would trap the fixed mobile overlay */
.tml-header::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background: color-mix(in srgb, var(--bg-0) 78%, transparent);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.tml-header .et_pb_row { height: 100%; }
.tml-header .et_pb_column { flex: 0 0 auto; }
.tml-header .et_pb_module { margin-bottom: 0; }
/* Astro's actions group is [theme toggle 2.3rem][gap 1.5rem][CTA]. Light theme is deferred, so keep the toggle's slot
   empty to leave the nav exactly where Astro has it; replace this padding when the toggle is built. */
.tml-header .et_pb_column.tml-only-desktop { padding-left: calc(2.3rem + var(--s-3)); }

.tml-brand img { display: block; width: auto; height: 1.35rem; }
.tml-brand .et_pb_image_wrap { display: block; }
.tml-brand-icon img { height: 1.7rem; }

/* desktop nav */
.tml-nav.et_pb_menu { background: transparent; padding: 0; min-height: 0; width: auto; }
.tml-nav .et_pb_menu_inner_container, .tml-nav .et_pb_menu__wrap { width: auto; min-height: 0; margin: 0; padding: 0; }
.tml-nav .et_pb_menu__wrap, .tml-nav .et_pb_menu_inner_container { justify-content: flex-start; }
.tml-nav .et-menu-nav > ul { display: flex; gap: var(--s-4); list-style: none; margin: 0; padding: 0; }
.tml-nav .et-menu-nav > ul > li { padding: 0; margin: 0; }
.tml-nav .et-menu-nav > ul > li > a,
.tml-nav .et-menu-nav > ul > li > a:hover {
  padding: 0 !important;
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: 500;
  line-height: var(--leading-body);
  letter-spacing: -0.17px;   /* Astro inherits the px value from the 17px body */
  color: var(--ink-2);
  opacity: 1;
  transition: color var(--dur-fast) var(--ease-out);
}
.tml-nav .et-menu-nav > ul > li > a:hover { color: var(--ink-1); }
.tml-nav .et-menu-nav > ul > li.tml-menu-cta { display: none !important; }   /* the CTA menu item exists for the mobile overlay only */
/* Divi swaps to its hamburger at 980px; Astro switches at 760px */
@media (min-width: 981px) {
  .tml-nav .et_pb_menu__menu { display: flex !important; }
  .tml-nav .et_mobile_nav_menu { display: none !important; }
}

/* CTA pill: solid AA-safe orange, hover feedback is a shadow (fill never changes) */
body #page-container .tml-cta.et_pb_button,
body #page-container .tml-cta.et_pb_button:hover {
  display: inline-block;
  padding: 0.55rem 1.15rem;
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: 600;
  line-height: var(--leading-body) !important;
  letter-spacing: -0.17px;
  background: var(--accent-strong);
  color: var(--accent-ink);
  border: 1px solid var(--accent-strong);
  border-radius: var(--radius-pill);
  transition: box-shadow var(--dur-fast) var(--ease-out);
}
body #page-container .tml-cta.et_pb_button:hover { box-shadow: 0 6px 18px rgba(0, 0, 0, 0.26); }
.tml-cta.et_pb_button::after, .tml-cta.et_pb_button::before { display: none !important; }

/* mobile: "Menu"/"Close" text button + full-screen numbered overlay */
@media (max-width: 980px) {
  .tml-nav .et_pb_menu__menu { display: none !important; }
  .tml-nav .et_mobile_nav_menu { display: block !important; margin: 0; }
  .tml-nav .mobile_nav { display: block; width: auto; }
  .tml-nav .mobile_menu_bar { position: static; top: auto; transform: none !important; margin: 0; display: block; width: auto; height: auto; cursor: pointer; padding: 0.5rem 0.25rem; line-height: var(--leading-body); }
  body #page-container .tml-nav.et_pb_menu .et_mobile_nav_menu .mobile_nav .mobile_menu_bar::before {
    content: 'Menu';
    position: static;
    display: block;
    width: auto;
    height: auto;
    top: auto;
    font-family: var(--font-body) !important;
    font-size: var(--text-sm);
    font-weight: 600 !important;
    line-height: var(--leading-body);
    letter-spacing: -0.17px;
    color: var(--ink-1);
  }
  body #page-container .tml-nav.et_pb_menu .et_mobile_nav_menu .mobile_nav.opened .mobile_menu_bar::before { content: 'Close'; }
  body #page-container .tml-nav .et_mobile_nav_menu .et_mobile_menu {
    position: fixed;
    inset: 0;
    z-index: -1;
    width: auto;
    height: 100dvh;
    margin: 0;
    overflow-y: auto;
    border: 0;
    background: var(--bg-0) !important;
    padding: calc(var(--header-h) + var(--s-6)) var(--gutter) var(--s-6);
    counter-reset: tml-menu;
    display: none;
    box-shadow: none;
  }
  body #page-container .tml-nav .mobile_nav.opened .et_mobile_menu { display: block; }
  .tml-nav .et_mobile_menu li {
    display: flex;
    align-items: baseline;
    gap: var(--s-2);
    counter-increment: tml-menu;
    margin: 0 0 var(--s-3);
    padding: 0 0 var(--s-3);
    border-bottom: 1px solid var(--line);
    background: transparent;
  }
  .tml-nav .et_mobile_menu li::before {
    content: counter(tml-menu, decimal-leading-zero);
    font-family: var(--font-mono);
    font-size: var(--text-label);
    color: var(--ink-3);
  }
  .tml-nav .et_mobile_menu li a {
    display: block;
    padding: 0;
    width: auto;
    border: 0;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: clamp(2rem, 9vw, 3rem);
    line-height: 1.1;
    letter-spacing: var(--tracking-display);
    color: var(--ink-1);
    opacity: 1;
  }
  .tml-nav .et_mobile_menu li.tml-menu-cta { display: block; margin-top: var(--s-6); border: 0; padding: 0; counter-increment: none; }
  .tml-nav .et_mobile_menu li.tml-menu-cta::before { content: none; }
  .tml-nav .et_mobile_menu li.tml-menu-cta a {
    display: inline-block;
    padding: 0.55rem 1.15rem;
    font-family: var(--font-body);
    font-size: var(--text-sm);
    font-weight: 600;
    line-height: var(--leading-body);
    letter-spacing: var(--tracking-tight);
    background: var(--accent-strong);
    color: var(--accent-ink);
    border: 1px solid var(--accent-strong);
    border-radius: var(--radius-pill);
  }
}
html.tml-menu-open { overflow: hidden; }
/* <<< header */

/* >>> footer */
/* ============================================================
   Footer (Astro Footer.astro, dark theme). Structure is native Divi
   modules in the Theme Builder footer; these rules carry the look.
   ============================================================ */
.tml-footer { position: relative; overflow: hidden; }
/* monogram watermark: right 58% of the footer, contained, 6% opacity, behind content */
.tml-footer::before {
  content: '';
  position: absolute;
  top: var(--s-4);
  bottom: var(--s-4);
  right: var(--gutter);
  width: 58%;
  background: url('img/tml-mark-white-lg.png') center / contain no-repeat;
  opacity: 0.06;
  pointer-events: none;
  z-index: 0;
}
@media (max-width: 860px) { .tml-footer::before { width: 70%; } }
.tml-footer .et_pb_row { position: relative; z-index: 1; }
.tml-footer .et_pb_module { margin-bottom: 0; }
.tml-footer .et_pb_text p { padding-bottom: 0; max-width: none; }

.tml-footer-lockup img { display: block; width: auto; height: 1.5rem; }
.tml-footer-lockup .et_pb_image_wrap { display: block; }
.tml-footer .tml-tagline p { max-width: 28ch; }
.tml-biz span { display: block; }
.tml-biz span + span { margin-top: 2px; }   /* Astro stacks the three lines with a 2px gap */
.tml-biz p { margin: 0; }
.tml-biz .tml-biz-name { font-weight: 600; color: var(--ink-2); }
.tml-biz .tml-biz-reg { font-variant-numeric: tabular-nums; font-size: var(--text-xs); line-height: var(--leading-body); }

/* footer nav menus: always the desktop list (Divi hands over to its hamburger at 980px) */
.tml-footer .et_pb_menu.tml-footer-nav,
.tml-footer .et_pb_menu.tml-legal-nav { background: transparent; padding: 0; min-height: 0; width: auto; }
.tml-footer .et_pb_menu_inner_container, .tml-footer .et_pb_menu__wrap { width: auto; min-height: 0; margin: 0; padding: 0; justify-content: flex-start; }
.tml-footer .tml-legal-nav .et_pb_menu_inner_container,
.tml-footer .tml-legal-nav .et_pb_menu__wrap,
.tml-footer .tml-legal-nav .et-menu-nav,
.tml-footer .tml-legal-nav ul.et-menu { width: 100%; }
.tml-footer .tml-legal-nav .et-menu-nav { flex: 1 1 100%; width: 100% !important; min-width: 100% !important; }
.tml-footer .tml-legal-nav ul.et-menu { width: 100% !important; min-width: 100% !important; }
.tml-footer .tml-legal-links { width: 100%; text-align: center; }
.tml-footer .tml-legal-links p { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 var(--s-4); margin: 0; padding: 0; }
.tml-footer .tml-legal-links a { display: inline-block; padding: 3px 0; color: var(--ink-2); text-decoration: none; transition: color var(--dur-fast) var(--ease-out); }
.tml-footer .tml-legal-links a:hover { color: var(--ink-1); }
.tml-footer .et_pb_menu__menu { display: flex !important; }
.tml-footer .et_mobile_nav_menu { display: none !important; }
.tml-footer .tml-footer-nav ul.et-menu { display: grid !important; gap: var(--s-1); list-style: none; margin: 0; padding: 0; }
.tml-footer .tml-legal-nav ul.et-menu { display: flex !important; flex-wrap: wrap; justify-content: center; gap: 0 var(--s-4); list-style: none; margin: 0; padding: 0; }
.tml-footer-bottom > .et_pb_column { flex: 0 0 calc((100% - 64px) / 3) !important; width: calc((100% - 64px) / 3) !important; }
.tml-footer ul.et-menu > li { padding: 0 !important; margin: 0 !important; }
.tml-footer .et-menu-nav > ul > li.tml-menu-cta { display: none !important; }
.tml-footer .et-menu-nav > ul > li > a,
.tml-footer .et-menu-nav > ul > li > a:hover {
  display: inline-block;
  padding: 3px 0 !important;
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: 500;
  line-height: var(--leading-body);
  letter-spacing: -0.17px;
  color: var(--ink-2);
  opacity: 1;
  transition: color var(--dur-fast) var(--ease-out);
}
.tml-footer .et-menu-nav > ul > li > a:hover { color: var(--ink-1); }

.tml-book a { display: inline-block; padding-block: 3px; color: var(--ink-2); text-decoration: none; transition: color var(--dur-fast) var(--ease-out); }
.tml-book a:hover { color: var(--ink-1); }
.tml-book .tml-arrow { color: var(--accent); }

/* Deferred Same launcher: visible, keyboard accessible, and harmless if the
   external widget is unavailable on a preview environment. */
.tml-chat-launcher {
  position: fixed;
  right: max(20px, var(--gutter));
  bottom: 76px;
  z-index: 100000;
  border: 1px solid var(--navy);
  border-radius: 999px;
  padding: 11px 17px;
  background: var(--accent) !important;
  color: var(--accent-ink) !important;
  font: 600 var(--text-sm)/1 var(--font-body);
  box-shadow: 0 10px 26px rgba(10, 17, 48, .18);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.tml-chat-launcher:hover, .tml-chat-launcher:focus-visible { background: var(--accent-hover) !important; color: var(--accent-ink) !important; }
.tml-chat-launcher:disabled { opacity: .72; cursor: wait; }
.tml-chat-icon { display: inline-flex; width: 1.1em; height: 1.1em; flex: 0 0 1.1em; }
.tml-chat-icon svg { display: block; width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.tml-chat-label { display: inline-block; }
@media (max-width: 640px) {
  .tml-chat-launcher { right: 16px; bottom: 68px; padding: 10px 14px; }
}
@media (max-width: 767px) {
  .tml-footer-bottom > .et_pb_column { flex: 0 0 100% !important; width: 100% !important; }
}
/* <<< footer */

/* >>> home */
/* ============================================================
   Homepage sections (Astro components/sections/*). Structure is native Divi
   modules; these rules carry the look. Section wrappers carry .tml-sec.
   ============================================================ */
body .tml-sec.et_pb_section { background-color: var(--bg-0); }
body .tml-sec .et_pb_module { margin-bottom: 0; }
body .tml-sec .et_pb_text { font-size: var(--text-base); line-height: var(--leading-body); letter-spacing: var(--tracking-tight); color: var(--ink-2); }
body .tml-sec .et_pb_text p { padding-bottom: 0; max-width: 65ch; text-wrap: pretty; }   /* Astro global p */
body .tml-sec .et_pb_text h2,
body .tml-sec .et_pb_text h3 { padding-bottom: 0; margin: 0; }
.tml-accent { color: var(--accent); }
body .tml-sec .tml-label { margin-bottom: 0; font-size: var(--text-label); line-height: var(--leading-body); letter-spacing: var(--tracking-label); color: var(--ink-3); }
body .tml-statement .tml-sec-label { margin-bottom: var(--s-4) !important; }
body .tml-whyus .tml-sec-label { margin-bottom: var(--s-3) !important; }

/* ---- StudioStatement ---- */
body .tml-statement.et_pb_section { padding: var(--section-pad) 0; border-top: 1px solid var(--line); }
body .tml-statement .tml-statement-text {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: var(--text-display-3);
  line-height: 1.25;
  letter-spacing: var(--tracking-tight);
  color: var(--ink-1);
  max-width: 40ch;
  margin-bottom: var(--s-8) !important;
}
body .tml-reel.et_pb_video,
body .tml-reel.et_pb_code {
  position: relative;
  max-width: 1000px;
  margin-inline: auto;
  aspect-ratio: 16 / 9;
  border: 1px solid var(--line-strong);
  border-radius: 16px;
  overflow: hidden;
  background: var(--bg-1);
  box-shadow: 0 40px 100px -30px rgba(0, 0, 0, 0.6);
}
.tml-reel .et_pb_video_box, .tml-reel .et_pb_video_box video,
.tml-reel .et_pb_code_inner, .tml-reel .tml-responsive-reel { display: block; width: 100%; height: 100%; }
.tml-reel .et_pb_video_box video { object-fit: cover; }
.tml-reel .tml-responsive-reel { object-fit: cover; background: var(--bg-1); }
.tml-reel .et_pb_video_overlay { background-size: cover; background-position: center; }
.tml-reel .et_pb_video_overlay .et_pb_video_overlay_hover { background: transparent; }
body .tml-reel .et_pb_video_overlay .et_pb_video_play {
  position: absolute; left: 50%; top: 50%;
  width: clamp(4rem, 9vw, 5.4rem); height: clamp(4rem, 9vw, 5.4rem);
  margin: 0; transform: translate(-50%, -50%);
  border-radius: 50%; background: var(--accent);
  box-shadow: 0 14px 40px -8px rgba(241, 90, 38, 0.6);
  display: block; font-size: 0; line-height: 0; text-indent: -999px; overflow: hidden;
  transition: transform var(--dur-fast) var(--ease-out);
}
body .tml-reel .et_pb_video_overlay .et_pb_video_play::before {
  content: ''; position: absolute; inset: 0; margin: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M8 5v14l11-7z'/%3E%3C/svg%3E") 55% 50% / 40% no-repeat;
  font-family: inherit; font-size: 0; text-indent: 0; transform: none; width: auto; height: auto;
}
.tml-reel .et_pb_video_overlay:hover .et_pb_video_play { transform: translate(-50%, -50%) scale(1.08); }
@media (max-width: 760px) {
  body .tml-reel.et_pb_code { aspect-ratio: 9 / 16; }
}

/* ---- WhyUs ---- */
body .tml-whyus.et_pb_section { padding: var(--section-pad) 0; border-top: 1px solid var(--line); }
body .tml-whyus .tml-whyus-title { margin-bottom: var(--s-8) !important; }
body .tml-whyus .tml-whyus-title h2 { width: 100%; max-width: none; font-size: clamp(3rem, 6vw, 6.8rem); line-height: .98; }
body .tml-whyus .tml-whyus-card {
  min-width: 0;
  border: 1px solid var(--line-strong);
  border-radius: 14px;
  background: var(--bg-1);
  padding: var(--s-6);
  transition: border-color var(--dur-med) var(--ease-out), transform var(--dur-med) var(--ease-out);
}
body .tml-whyus .tml-whyus-card:hover { border-color: rgba(241, 90, 38, 0.45); transform: translateY(-4px); }
body .tml-whyus .tml-whyus-num { color: var(--accent); min-height: calc(var(--text-base) * var(--leading-body)); }
body .tml-whyus .tml-whyus-h { margin: var(--s-3) 0 var(--s-2) !important; }
body .tml-whyus .tml-whyus-h h3 { font-size: var(--text-display-3); text-wrap: balance; }
body .tml-whyus .tml-whyus-body { color: var(--ink-2); max-width: 46ch; }
@media (max-width: 760px) { body .tml-whyus .tml-whyus-card { padding: var(--s-4); } }

/* ---- Retainer callout ---- */
body .tml-retainer-callout {
  margin-top: var(--s-8); padding: var(--s-6);
  border: 1px solid rgba(241, 90, 38, 0.42); border-radius: 14px;
  background: linear-gradient(135deg, rgba(241, 90, 38, 0.10), rgba(11, 20, 39, 0.7));
}
body .tml-retainer-callout h3 { margin: var(--s-2) 0 var(--s-3) !important; color: var(--ink-1); font-size: var(--text-display-3); }
body .tml-retainer-callout p { color: var(--ink-2); }
body .tml-retainer-callout .tml-label { color: var(--accent); }
body .tml-retainer-callout .tml-retainer-lede { max-width: 58ch; margin-bottom: var(--s-4); }
body .tml-retainer-callout .tml-retainer-points { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-2) var(--s-6); margin: var(--s-4) 0; padding: 0; list-style: none; }
body .tml-retainer-callout .tml-retainer-points li { position: relative; padding-left: 1.45rem; color: var(--ink-1); }
body .tml-retainer-callout .tml-retainer-points li::before { content: '\2713'; position: absolute; left: 0; top: 0; color: var(--accent); font-weight: 800; }
body .tml-retainer-callout .tml-retainer-meta { display: flex; flex-wrap: wrap; gap: var(--s-2); margin: var(--s-4) 0; }
body .tml-retainer-callout .tml-retainer-meta span { display: inline-flex; align-items: center; padding: .4rem .65rem; border: 1px solid var(--line); border-radius: 999px; color: var(--ink-2); font-size: var(--text-sm); }
body .tml-retainer-callout .tml-text-link { display: inline-flex; align-items: center; gap: .45rem; color: var(--ink-1); font-weight: 700; }
body .tml-retainer-callout .tml-value-stack { margin-top: var(--s-6); padding-top: var(--s-5); border-top: 1px solid var(--line-strong); }
body .tml-retainer-callout .tml-value-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem .8rem; margin-top: var(--s-3); }
body .tml-retainer-callout .tml-value-grid > div { display: flex; justify-content: space-between; gap: .75rem; padding: .55rem .7rem; border: 1px solid var(--line); border-radius: 8px; background: rgba(7,9,15,.24); }
body .tml-retainer-callout .tml-value-grid span { color: var(--ink-2); font-size: var(--text-xs); }
body .tml-retainer-callout .tml-value-grid strong { color: var(--ink-1); font-size: var(--text-xs); white-space: nowrap; }
body .tml-retainer-callout .tml-value-total { display: flex; justify-content: space-between; gap: 1rem; margin: var(--s-4) 0 var(--s-2); color: var(--ink-1); }
body .tml-retainer-callout .tml-value-total strong { color: var(--accent); white-space: nowrap; }
body .tml-retainer-callout .tml-value-note { max-width: 70ch; color: var(--ink-3); font-size: var(--text-xs); line-height: 1.5; }
@media (max-width: 640px) { body .tml-retainer-callout .tml-retainer-points { grid-template-columns: 1fr; } }
@media (max-width: 640px) { body .tml-retainer-callout .tml-value-grid { grid-template-columns: 1fr; } body .tml-retainer-callout .tml-value-total { flex-direction: column; gap: .25rem; } }
@media (max-width: 760px) { body .tml-retainer-callout { padding: var(--s-4); } }

/* ---- Working rhythm ---- */
body .tml-home-guide.et_pb_section { padding: var(--section-pad) 0; border-top: 1px solid var(--line); background: linear-gradient(180deg, var(--bg-0), var(--bg-1)); }
body .tml-home-guide .tml-home-guide-title { margin: var(--s-4) 0 var(--s-4) !important; }
body .tml-home-guide .tml-home-guide-title h2 { max-width: 18ch; font-size: var(--text-display-2); }
body .tml-home-guide .tml-home-guide-kicker { font-size: var(--text-lg); color: var(--ink-1); max-width: 56ch; }
body .tml-home-guide .tml-home-guide-visual { margin-top: var(--s-8); }
body .tml-home-guide .tml-home-guide-intro { color: var(--ink-2); max-width: 48ch; }
body .tml-home-guide .tml-guide-photo.et_pb_image { width: 100%; overflow: hidden; border: 1px solid var(--line-strong); border-radius: 18px; box-shadow: 0 24px 60px -30px rgba(0,0,0,.55); }
body .tml-home-guide .tml-guide-photo img { display: block; width: 100%; aspect-ratio: 4 / 5; min-height: 28rem; object-fit: cover; object-position: center; }
body .tml-home-guide .tml-home-guide-grid { margin-top: var(--s-8); }
body .tml-home-guide .tml-home-guide-card { min-width: 0; padding: var(--s-5); border: 1px solid var(--line-strong); border-radius: 16px; background: var(--bg-0); }
body .tml-home-guide .tml-home-guide-card { box-sizing: border-box; padding: clamp(1.5rem, 3vw, 2.75rem) !important; }
body .tml-home-guide .tml-guide-num { margin-bottom: var(--s-3) !important; color: var(--accent); font-family: var(--font-mono); font-size: var(--text-label); letter-spacing: var(--tracking-label); }
body .tml-home-guide .tml-home-guide-card h3 { margin: 0 0 var(--s-3); font-size: var(--text-display-3); color: var(--ink-1); }
body .tml-home-guide .tml-home-guide-card p:last-child { color: var(--ink-2); }
body .tml-home-guide .tml-home-guide-card h3 { line-height: 1.1; }

/* ---- ClosingCta ---- */
body .tml-closing.et_pb_section {
  padding: 0 0 var(--section-pad);
  border-top: 1px solid var(--line);
  background: radial-gradient(56rem 28rem at 85% 110%, var(--navy-soft), transparent 70%), var(--bg-0);
}
body .tml-closing .tml-closing-title h2 { font-size: var(--text-display-2); max-width: 14ch; }
body .tml-closing .tml-cl-foot { margin-top: var(--s-8) !important; }
body .tml-closing .tml-closing-sub { color: var(--ink-2); max-width: 40ch; }
body .tml-closing .tml-closing-sub p { margin-bottom: var(--s-5); }
body .tml-closing .tml-closing-photo.et_pb_image { width: 100%; overflow: hidden; border: 1px solid var(--line-strong); border-radius: 18px; }
body .tml-closing .tml-closing-photo img { display: block; width: 100%; aspect-ratio: 4 / 5; min-height: 26rem; object-fit: cover; object-position: center; }
body #page-container .tml-cta.tml-btn-lg.et_pb_button,
body #page-container .tml-cta.tml-btn-lg.et_pb_button:hover { padding: 0.9rem 1.7rem; border-width: 0; }
body #page-container .tml-cta.tml-btn-lg.et_pb_button:hover { transform: translateY(-2px); }
/* <<< home */

/* >>> about */
/* ============================================================
   /about/ (Astro pages/about.astro + AboutReach + ProcessIcon). Native Divi modules;
   these rules carry the look.
   ============================================================ */
body .tml-sec .et_pb_heading .et_pb_module_header { margin: 0; padding: 0; }

/* intro */
body .tml-ab-intro.et_pb_section {
  position: relative; overflow: hidden;
  min-height: min(82vh, 760px);
  display: flex; align-items: center;
  padding: calc(var(--header-h) + var(--s-8)) 0 var(--s-8);
  color: #fff;
}
body .tml-ab-intro.et_pb_section::before {
  content: ''; position: absolute; inset: 0; z-index: 0;
  background: url('img/about-hero.webp') no-repeat; background-size: 125%; background-position: 64% 14%;
}
body .tml-ab-intro.et_pb_section::after {
  content: ''; position: absolute; inset: 0; z-index: 1;
  background:
    linear-gradient(180deg, rgba(7, 9, 15, 0.5) 0%, rgba(7, 9, 15, 0.32) 38%, rgba(7, 9, 15, 0.74) 100%),
    linear-gradient(90deg, rgba(7, 9, 15, 0.58) 0%, rgba(7, 9, 15, 0.14) 62%, rgba(7, 9, 15, 0.08) 100%);
}
body .tml-ab-intro .et_pb_row { position: relative; z-index: 2; margin-top: 0; margin-bottom: 0; }
body .tml-ab-intro .tml-ab-intro-label { color: rgba(255, 255, 255, 0.72); margin-bottom: var(--s-4) !important; }
body .tml-ab-intro .tml-ab-h1 .et_pb_module_header { font-size: var(--text-display-1); max-width: 16ch; color: #fff; }

/* story */
body .tml-ab-story.et_pb_section { padding: var(--section-pad) 0; border-top: 1px solid var(--line); }
body .tml-ab-story .tml-sec-label { margin-bottom: calc(var(--s-6) * 2) !important; }   /* Astro: label margin s-6 + flex gap s-6 */
body .tml-ab-story .tml-reach { margin-bottom: var(--s-3) !important; }
body .tml-ab-story .tml-ab-reach-cap { max-width: 22rem; line-height: 1.4; }
body .tml-ab-story .tml-ab-reach-cap p { line-height: 1.4; }
body .tml-ab-story .tml-ab-prose {
  font-family: var(--font-body); font-weight: 400; font-size: var(--text-lg);
  line-height: 1.65; letter-spacing: normal; color: var(--ink-1); max-width: 62ch;
}
body .tml-ab-story .tml-ab-prose:not(:last-child) { margin-bottom: var(--s-4) !important; }
body .tml-ab-story .tml-ab-right { min-width: 0; }
body .tml-ab-story .tml-ab-left { position: sticky; top: calc(var(--header-h) + var(--s-6)); align-self: flex-start; }
body .tml-ab-story .tml-ab-studio-photo.et_pb_image { width: 100%; margin-top: var(--s-6) !important; overflow: hidden; border: 1px solid var(--line); border-radius: 18px; }
body .tml-ab-story .tml-ab-studio-photo .et_pb_image_wrap { display: block; width: 100%; }
body .tml-ab-story .tml-ab-studio-photo img { display: block; width: 100%; aspect-ratio: 1 / 1; min-height: 0; object-fit: cover; object-position: center top; }

/* reach map */
body .tml-reach.et_pb_group {
  width: 100%; max-width: 22rem; aspect-ratio: 360 / 440;
  border: 1px solid var(--line-strong); border-radius: 14px;
  background: radial-gradient(60% 45% at 72% 22%, var(--navy-soft), transparent 70%), var(--bg-1);
  overflow: hidden;
}
.tml-reach .et_pb_module, .tml-reach .et_pb_svg_inner { width: 100%; height: 100%; margin: 0; }
.tml-reach svg { width: 100%; height: 100%; display: block; }
.tml-reach .reach-map path { fill-rule: evenodd; }
.tml-reach .reach-us path { fill: color-mix(in srgb, var(--ink-3) 34%, transparent); stroke: var(--line-strong); stroke-width: 7; vector-effect: non-scaling-stroke; }
.tml-reach .reach-ph path { fill: color-mix(in srgb, var(--ink-3) 34%, transparent); stroke: var(--line-strong); stroke-width: 5; vector-effect: non-scaling-stroke; }
.tml-reach .reach-lbl { fill: var(--ink-3); font-family: var(--font-mono); font-size: 9px; letter-spacing: 0.18em; }
.tml-reach .reach-ph-lbl { fill: var(--accent); }
.tml-reach .reach-arc { fill: none; stroke: var(--accent); stroke-width: 2; stroke-linecap: round; stroke-dasharray: 700; stroke-dashoffset: 700; animation: tml-reach-draw 7s ease-in-out infinite; }
.tml-reach .reach-dest { opacity: 0; transform-box: fill-box; transform-origin: center; animation: tml-reach-pop 7s ease-in-out infinite; }
.tml-reach .reach-d0 { animation-delay: 0s; } .tml-reach .reach-d1 { animation-delay: 0.5s; } .tml-reach .reach-d2 { animation-delay: 1s; }
.tml-reach .reach-d3 { animation-delay: 1.5s; } .tml-reach .reach-d4 { animation-delay: 2s; }
.tml-reach .reach-chip { fill: var(--bg-0); stroke: var(--accent); stroke-width: 1.5; }
.tml-reach .reach-glyph { fill: none; stroke: var(--ink-1); stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.tml-reach .reach-origin { fill: var(--accent); }
.tml-reach .reach-origin-halo { fill: none; stroke: var(--accent); stroke-width: 1.5; transform-box: fill-box; transform-origin: center; animation: tml-reach-halo 2.4s ease-out infinite; }
@keyframes tml-reach-draw {
  0% { stroke-dashoffset: 700; opacity: 0; } 6% { opacity: 1; } 28% { stroke-dashoffset: 0; opacity: 1; }
  82% { stroke-dashoffset: 0; opacity: 1; } 97% { stroke-dashoffset: 0; opacity: 0; } 100% { stroke-dashoffset: 700; opacity: 0; }
}
@keyframes tml-reach-pop {
  0%, 24% { opacity: 0; transform: scale(0.4); } 34% { opacity: 1; transform: scale(1.16); }
  42%, 84% { opacity: 1; transform: scale(1); } 97%, 100% { opacity: 0; transform: scale(0.4); }
}
@keyframes tml-reach-halo { 0% { transform: scale(0.6); opacity: 0.9; } 100% { transform: scale(2.4); opacity: 0; } }

/* stats */
body .tml-ab-stats.et_pb_section { padding: var(--s-12) 0; border-top: 1px solid var(--line); }
body .tml-ab-stats .tml-ab-stat { border-left: 1px solid var(--line); padding-left: var(--s-4) !important; }
body .tml-ab-stats .tml-ab-stat-value {
  font-family: var(--font-display); font-weight: 800; font-size: var(--text-display-2); line-height: 1;
  letter-spacing: var(--tracking-display); color: var(--ink-1); font-variant-numeric: tabular-nums;
}
body .tml-ab-stats .tml-ab-stat-value p { line-height: 1; }
body .tml-ab-stats .tml-ab-stat-label { margin-top: var(--s-2) !important; }
body .tml-ab-stats .tml-stat-icon { width: 2.6rem; height: 2.6rem; margin-bottom: var(--s-4) !important; color: var(--accent); }
body .tml-ab-stats .tml-stat-icon .et_pb_svg_inner, body .tml-ab-stats .tml-stat-icon svg { display: block; width: 100%; height: 100%; }
body .tml-ab-stats .tml-stat-icon svg { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
body .tml-ab-stats .tml-ab-stat-copy { color: var(--ink-2); max-width: 28ch; margin-top: var(--s-3) !important; }

/* process */
body .tml-ab-process.et_pb_section { padding: var(--section-pad) 0; border-top: 1px solid var(--line); }
body .tml-ab-process .tml-sec-label { margin-bottom: var(--s-6) !important; }
body .tml-ab-process .tml-proc-grid { position: relative; counter-reset: process-step; }
body .tml-ab-process .tml-proc-step { position: relative; border: 1px solid var(--line-strong); border-radius: 16px; padding: var(--s-5) !important; background: linear-gradient(145deg, color-mix(in srgb, var(--navy-soft) 38%, var(--bg-1)), var(--bg-1)); }
body .tml-ab-process .tml-proc-step:not(:last-child)::after { content: '→'; position: absolute; right: calc(var(--s-4) * -1); top: 50%; transform: translate(50%,-50%); color: var(--accent); font-size: 1.6rem; z-index: 2; }
body .tml-ab-process .tml-pic { width: 4.5rem; height: 4.5rem; color: var(--accent); margin-bottom: calc(var(--s-3) + 8.1px) !important; }   /* Astro's icon sits in an inline box: +8.1px descender space */
.tml-pic .et_pb_svg_inner, .tml-pic svg { width: 100%; height: 100%; display: block; }
.tml-pic svg { stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; fill: none; }
body .tml-ab-process .tml-proc-num { color: var(--accent); min-height: calc(var(--text-base) * var(--leading-body)); }
body .tml-ab-process .tml-proc-name { margin: var(--s-3) 0 var(--s-2) !important; }
body .tml-ab-process .tml-proc-name .et_pb_module_header { font-size: var(--text-display-3); }
body .tml-ab-process .tml-proc-copy { color: var(--ink-2); line-height: 1.65; max-width: 34ch; }
body .tml-ab-process .tml-proc-copy p { line-height: 1.65; }
body .tml-ab-process .tml-proc-copy strong { color: var(--ink-1); font-weight: 700; }
.tml-pic .bub { stroke: var(--ink-2); } .tml-pic .bub.b2 { stroke: var(--accent); }
.tml-pic .typ { fill: var(--accent); stroke: none; transform-box: fill-box; transform-origin: center; animation: tml-typ 1.8s ease-in-out infinite; }
.tml-pic .typ.t2 { animation-delay: 0.22s; } .tml-pic .typ.t3 { animation-delay: 0.44s; }
@keyframes tml-typ { 0%, 60%, 100% { opacity: 0.3; transform: translateY(0); } 30% { opacity: 1; transform: translateY(-2.5px); } }
.tml-pic .blk { stroke: var(--ink-2); transform-box: fill-box; transform-origin: center; animation: tml-blk 2.2s ease-in-out infinite; }
.tml-pic .blk.k3 { stroke: var(--accent); }
.tml-pic .blk.k1 { animation-delay: 0s; } .tml-pic .blk.k2 { animation-delay: 0.18s; } .tml-pic .blk.k3 { animation-delay: 0.36s; }
@keyframes tml-blk { 0% { opacity: 0; transform: translateY(-10px); } 22%, 74% { opacity: 1; transform: translateY(0); } 94%, 100% { opacity: 0; transform: translateY(-10px); } }
.tml-pic .rkt { stroke: var(--accent); transform-box: fill-box; transform-origin: center; animation: tml-rkt 2s ease-in-out infinite; }
@keyframes tml-rkt { 0%, 100% { transform: translateY(3px); } 50% { transform: translateY(-4px); } }
.tml-pic .trail circle { fill: var(--accent); stroke: none; animation: tml-trail 1.2s ease-in infinite; }
.tml-pic .trail circle:last-child { animation-delay: 0.3s; }
@keyframes tml-trail { 0% { opacity: 0.8; transform: translateY(0); } 100% { opacity: 0; transform: translateY(5px); } }

/* principles: structured cards prevent a long, low-contrast text wall */
body .tml-ab-principles.et_pb_section { padding: var(--section-pad) 0; border-top: 1px solid var(--line); }
body .tml-ab-principles .tml-ab-principles-left { min-width: 0; width: 100% !important; }
body .tml-ab-principles .tml-ab-principles-title { margin: var(--s-4) 0 var(--s-5) !important; }
body .tml-ab-principles .tml-ab-principles-title h2,
body .tml-ab-principles .tml-ab-principles-title .et_pb_module_header { font-size: clamp(3rem, 6vw, 6rem); max-width: none; line-height: .98; }
body .tml-ab-principles .tml-ab-principles-copy { color: var(--ink-2); max-width: 44ch; line-height: 1.65; }
body .tml-ab-principles .tml-ab-principles-intro { font-size: var(--text-lg); color: var(--ink-1); }
body .tml-ab-principles .tml-ab-principles-note { margin-top: var(--s-5) !important; padding-top: var(--s-5); border-top: 1px solid var(--line); }
body .tml-ab-principles .tml-principle-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s-4); width: 100%; margin-top: var(--s-8); }
body .tml-ab-principles .tml-principle-card { min-height: 12rem; padding: var(--s-5); border: 1px solid var(--line-strong); border-radius: 14px; background: linear-gradient(145deg, color-mix(in srgb, var(--navy-soft) 52%, var(--bg-1)), var(--bg-1)); }
body .tml-ab-principles .tml-principle-kicker { display: block; margin-bottom: var(--s-3); color: var(--accent); font-family: var(--font-mono); font-size: var(--text-label); letter-spacing: var(--tracking-label); text-transform: uppercase; }
body .tml-ab-principles .tml-principle-card h3 { margin: 0 0 var(--s-3); color: var(--ink-1); font-family: var(--font-display); font-size: 1.25rem; line-height: 1.12; letter-spacing: var(--tracking-tight); }
body .tml-ab-principles .tml-principle-card p { margin: 0; color: var(--ink-2); line-height: 1.55; }

/* cta */
body .tml-ab-cta.et_pb_section { padding: var(--section-pad) 0; border-top: 1px solid var(--line); }
body .tml-ab-cta .tml-cta-title { margin-bottom: var(--s-6) !important; }
body .tml-ab-cta .tml-cta-title .et_pb_module_header { font-size: var(--text-display-2); max-width: 20ch; }
body .tml-ab-cta .tml-ab-ctacol { display: flex; flex-direction: column; justify-content: center; }
body .tml-ab-cta .tml-ab-cta-copy { color: var(--ink-2); max-width: 44ch; margin-bottom: var(--s-6) !important; }
body .tml-ab-cta .tml-ab-cta-copy p { max-width: 44ch; }
body .tml-ab-cta .tml-ab-ctavis { display: flex; align-items: center; }
body .tml-ab-cta .tml-ab-cta-photo.et_pb_image { width: 100%; overflow: hidden; border: 1px solid var(--line); border-radius: 18px; }
body .tml-ab-cta .tml-ab-cta-photo .et_pb_image_wrap { display: block; width: 100%; }
body .tml-ab-cta .tml-ab-cta-photo img { display: block; width: 100%; aspect-ratio: 1 / 1; min-height: 0; object-fit: cover; object-position: center; }

@media (max-width: 860px) {
  body .tml-ab-grid, body .tml-proc-grid, body .tml-ab-statrow { flex-direction: column !important; row-gap: var(--s-6) !important; }
  body .tml-ab-grid > .et_pb_column, body .tml-proc-grid > .et_pb_column, body .tml-ab-statrow > .et_pb_column { width: 100% !important; }
  body .tml-ab-story .tml-ab-left { position: static; }
  body .tml-ab-ctarow { flex-direction: column !important; row-gap: var(--s-8) !important; }
  body .tml-ab-ctarow > .et_pb_column { width: 100% !important; }
  body .tml-ab-ctacol { align-items: center; text-align: center; }
  body .tml-ab-ctavis { max-width: 30rem; margin-inline: auto; }
  body .tml-ab-intro.et_pb_section { min-height: min(76vh, 600px); }
  body .tml-ab-intro.et_pb_section::before { background-size: cover; background-position: center 24%; }
  body .tml-ab-process .tml-proc-step:not(:last-child)::after { content: '↓'; right: 50%; top: auto; bottom: calc(var(--s-4) * -1); transform: translate(50%, 50%); }
  body .tml-ab-principles .tml-principle-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) { body .tml-ab-principles .tml-principle-cards { grid-template-columns: 1fr; } }
/* <<< about */

/* >>> home2 */
/* Homepage sections part 2: ClientLogos, ServicesPreview */
/* ---- ClientLogos ---- */
body .tml-trusted.et_pb_section { padding: var(--section-pad) 0; border-top: 1px solid var(--line); }
body .tml-trusted .tml-tr-label { margin-bottom: var(--s-4) !important; }
body .tml-trusted .tml-trusted-title { margin-bottom: var(--s-8) !important; }
body .tml-trusted .tml-trusted-title h2 { font-size: var(--text-display-3); max-width: 20ch; }
body .tml-trusted .tml-logo-gallery { perspective: 700px; }
body .tml-trusted .tml-logo-tile {
  height: clamp(72px, 8.5vw, 116px);
  display: flex; align-items: center; justify-content: center;
  padding: 0 1rem;
  background: #ffffff;
  border-radius: 12px;
  box-shadow: 0 14px 36px -18px rgba(0, 0, 0, 0.7);
  transition: box-shadow 0.4s var(--ease-out);
}
body .tml-trusted .tml-logo-tile:hover { box-shadow: 0 26px 56px -18px rgba(241, 90, 38, 0.4); }
body .tml-trusted .tml-logo { height: 70%; width: auto; margin: 0; }
body .tml-trusted .tml-logo .et_pb_image_wrap { display: block; height: 100%; }
body .tml-trusted .tml-logo img { height: 100%; width: auto; max-width: 260px; object-fit: contain; display: block; }
@media (max-width: 600px) {
  body .tml-trusted .tml-logo-tile { height: 76px; }
  body .tml-trusted .tml-logo { height: 52%; }
  body .tml-trusted .tml-logo img { max-width: 160px; }
}
.tml-logo-crystal img { aspect-ratio: 128 / 110; }
.tml-logo-hyke img { aspect-ratio: 366 / 110; }
.tml-logo-llorente img { aspect-ratio: 264 / 110; }
.tml-logo-listingpros img { aspect-ratio: 141 / 110; }
.tml-logo-imm img { aspect-ratio: 220 / 110; }
.tml-logo-cabrillo img { aspect-ratio: 110 / 110; }
.tml-logo-altair img { aspect-ratio: 323 / 110; }
.tml-logo-mgf img { aspect-ratio: 346 / 110; }
.tml-logo-montevil img { aspect-ratio: 304 / 110; }
.tml-logo-maui img { aspect-ratio: 152 / 110; }
.tml-logo-omega img { aspect-ratio: 572 / 110; }
.tml-logo-gelston img { aspect-ratio: 108 / 110; }
.tml-logo-smartva img { aspect-ratio: 453 / 110; }
.tml-logo-arkimagine img { aspect-ratio: 135 / 110; }

/* ---- ServicesPreview ---- */
body .tml-services.et_pb_section { padding: var(--section-pad) 0; border-top: 1px solid var(--line); }
body .tml-services .tml-sec-label { margin-bottom: var(--s-6) !important; }
body .tml-services .tml-service-list ul { list-style: none; margin: 0; padding: 0; }
body .tml-services .tml-service-list li { margin: 0; padding: 0; list-style: none; }
body .tml-services .tml-service-list li:first-child .tml-service-row { border-top: 1px solid var(--line); }
body .tml-services .tml-service-row {
  display: grid;
  grid-template-columns: 3.5rem 1.4fr 1fr 2.5rem;
  align-items: baseline;
  gap: var(--s-3);
  padding: var(--s-4) 0;
  border-bottom: 1px solid var(--line);
  color: inherit;
}
.tml-service-index { transition: color var(--dur-fast) var(--ease-out); }
.tml-service-name {
  font-family: var(--font-display); font-weight: 800; font-size: var(--text-display-3);
  line-height: var(--leading-tight); letter-spacing: var(--tracking-tight); color: var(--ink-1);
  transition: transform var(--dur-med) var(--ease-out);
}
.tml-service-line { font-size: var(--text-sm); line-height: var(--leading-body); color: var(--ink-2); }
.tml-service-arrow {
  justify-self: end; color: var(--ink-3); opacity: 0; transform: translateX(-8px);
  transition: opacity var(--dur-fast) var(--ease-out), transform var(--dur-med) var(--ease-out), color var(--dur-fast) var(--ease-out);
}
.tml-service-row:hover .tml-service-index, .tml-service-row:focus-visible .tml-service-index { color: var(--accent); }
.tml-service-row:hover .tml-service-name { transform: translateX(8px); }
.tml-service-row:hover .tml-service-arrow, .tml-service-row:focus-visible .tml-service-arrow { opacity: 1; transform: translateX(0); color: var(--accent); }
body .tml-services .tml-automation-line { margin-top: var(--s-6) !important; text-transform: none; letter-spacing: 0.04em; }
@media (max-width: 760px) {
  body .tml-services .tml-service-row { grid-template-columns: 2.5rem 1fr; }
  .tml-service-line { grid-column: 2; }
  .tml-service-arrow { display: none; }
}
/* <<< home2 */

/* >>> home3 */
/* Homepage sections part 3: FeaturedWork */
body .tml-sec .et_pb_text a { color: inherit; text-decoration: none; }

body .tml-featured.et_pb_section { padding: var(--section-pad) 0; border-top: 1px solid var(--line); }
body .tml-featured .tml-fw-head { margin-bottom: var(--s-6) !important; }
body .tml-featured .tml-fw-label { margin: 0 !important; }
body .tml-featured .tml-fw-all p { line-height: 0; }
body .tml-featured .tml-fw-all a.tml-text-link { line-height: var(--leading-body); }
body .tml-featured .tml-work-card { display: block; position: relative; }
body .tml-featured a.tml-card-link::after { content: ''; position: absolute; inset: 0; z-index: 1; }   /* stretched link: whole card clickable, link name = title */
body .tml-featured .tml-card-frame {
  display: block;
  border: 1px solid var(--line-strong);
  border-radius: 10px;
  overflow: hidden;
  background: var(--bg-1);
  box-shadow: 0 32px 80px -24px rgba(0, 0, 0, 0.55);
  transition: border-color var(--dur-med) var(--ease-out);
}
body .tml-featured .tml-work-card:hover .tml-card-frame { border-color: rgba(241, 90, 38, 0.45); }
body .tml-featured .tml-frame-bar {
  display: flex; align-items: center; gap: 6px;
  padding: 10px 14px;
  border-bottom: 1px solid var(--line);
  background: var(--bg-2);
}
body .tml-featured .tml-frame-dot { display: block; width: 9px; height: 9px; border-radius: 50%; background: var(--line-strong); }
body .tml-featured .tml-frame-url { margin-left: var(--s-2); font-family: var(--font-mono); font-size: var(--text-label); color: var(--ink-3); }
body .tml-featured .tml-card-viewport { display: block; overflow: hidden; aspect-ratio: 16 / 9; position: relative; }
body .tml-featured .tml-card-viewport img { display: block; width: 100%; height: auto; }
body .tml-featured .tml-card-meta { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--s-4); margin-top: var(--s-3); }
body .tml-featured h2.tml-card-title { font-size: var(--text-display-3); margin: 0 0 var(--s-2); transition: color var(--dur-fast) var(--ease-out); }
body .tml-featured .tml-work-card:hover .tml-card-title { color: var(--accent); }
body .tml-featured p.tml-card-line { color: var(--ink-2); max-width: 52ch; }
body .tml-featured .tml-card-tag { display: block; line-height: var(--leading-body); flex-shrink: 0; border: 1px solid var(--line); border-radius: var(--radius-pill); padding: 0.35rem 0.8rem; }

body .tml-featured .tml-rail { display: flex; flex-direction: column; gap: var(--s-3); min-width: 0; }
body .tml-featured .tml-rail-thumb { display: block; min-width: 0; }
body .tml-featured .tml-rail-frame {
  display: block; aspect-ratio: 16 / 10; overflow: hidden; border-radius: 8px;
  border: 1px solid var(--line-strong); background: var(--bg-1);
}
body .tml-featured .tml-rail-frame img {
  display: block; width: 100%; height: 100%; object-fit: cover; object-position: top; opacity: 0.92;
  transition: transform var(--dur-med) var(--ease-out), opacity var(--dur-fast) var(--ease-out);
}
body .tml-featured .tml-rail-thumb:hover .tml-rail-frame { border-color: rgba(241, 90, 38, 0.45); }
body .tml-featured .tml-rail-thumb:hover .tml-rail-frame img { transform: scale(1.05); opacity: 1; }
body .tml-featured .tml-rail-name {
  display: block; margin-top: var(--s-1);
  font-family: var(--font-display); font-weight: 700; font-size: 0.8rem; line-height: 1.25; color: var(--ink-2);
  transition: color var(--dur-fast) var(--ease-out);
}
body .tml-featured .tml-rail-thumb:hover .tml-rail-name { color: var(--accent); }

body .tml-featured .tml-fw-visit-row { margin-top: var(--s-2) !important; }
body .tml-featured .tml-more-col { text-align: center; }
body .tml-featured .tml-fw-more-row { margin-top: var(--s-8) !important; }
body .tml-featured a.tml-text-link {
  font-size: var(--text-sm); font-weight: 600; color: var(--ink-1);
  border-bottom: 1px solid var(--line-strong); padding-bottom: 2px;
  transition: color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
}
body .tml-featured a.tml-text-link:hover { color: var(--accent); border-color: var(--accent); }
body .tml-featured .tml-fw-all a.tml-text-link { display: inline-block; }
body .tml-featured .tml-text-link span { color: var(--accent); }

@media (max-width: 760px) {
  body .tml-featured .tml-rail { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--s-3); }
  body .tml-featured .tml-card-meta { flex-direction: column; gap: var(--s-2); }
}

/* Homepage journal preview: a compact editorial card before the FAQ section. */
body .tml-home-blog.et_pb_section { padding: var(--section-pad) 0; border-top: 1px solid var(--line); }
body .tml-home-blog .tml-home-blog-title { margin: var(--s-4) 0 var(--s-3) !important; }
body .tml-home-blog .tml-home-blog-title h2 { width: 100%; max-width: none; font-size: clamp(2rem, 3.15vw, 3rem); line-height: 1.08; }
body .tml-home-blog .tml-home-blog-intro { width: 100%; max-width: 70ch; color: var(--ink-2); font-size: var(--text-lg); line-height: 1.55; }
body .tml-home-blog .tml-home-blog-card-module { width: 100%; margin-top: var(--s-6) !important; }
body .tml-home-blog .tml-home-blog-card { display: grid; grid-template-columns: minmax(0, 2fr) minmax(14rem, 1fr); gap: var(--s-8); align-items: stretch; width: 100%; padding: var(--s-6); border: 1px solid var(--line-strong); border-radius: 18px; background: radial-gradient(40rem 18rem at 0% 0%, color-mix(in srgb, var(--accent) 10%, transparent), transparent 70%), var(--bg-1); }
body .tml-home-blog .tml-home-blog-copy { display: flex; flex-direction: column; justify-content: center; min-width: 0; }
body .tml-home-blog .tml-home-blog-meta { margin: 0 0 var(--s-4) !important; color: var(--accent); font-family: var(--font-mono); font-size: var(--text-label); letter-spacing: var(--tracking-label); text-transform: uppercase; }
body .tml-home-blog .tml-home-blog-copy h3 { margin: 0 0 var(--s-4); color: var(--ink-1); font-family: var(--font-display); font-size: clamp(1.7rem, 2.6vw, 2.6rem); line-height: 1.08; letter-spacing: var(--tracking-tight); }
body .tml-home-blog .tml-home-blog-copy h3 a { color: inherit; text-decoration: none; }
body .tml-home-blog .tml-home-blog-copy h3 a:hover { color: var(--accent); }
body .tml-home-blog .tml-home-blog-copy > p:not(.tml-home-blog-meta) { max-width: 58ch; color: var(--ink-2); line-height: 1.55; }
body .tml-home-blog .tml-home-blog-copy .tml-btn-sm { display: inline-flex; align-items: center; gap: .5rem; margin-top: var(--s-5); padding: .72rem 1rem; border: 1px solid var(--accent); border-radius: 999px; color: #fff; background: var(--accent); font-weight: 700; text-decoration: none; }
body .tml-home-blog .tml-home-blog-copy .tml-btn-sm:hover { color: #fff; background: var(--accent-hover); border-color: var(--accent-hover); }
body .tml-home-blog .tml-home-blog-image { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: var(--bg-0); }
body .tml-home-blog .tml-home-blog-image img { display: block; width: 100%; height: 100%; min-height: 17rem; aspect-ratio: 4 / 3; object-fit: cover; }
@media (max-width: 760px) {
  body .tml-home-blog .tml-home-blog-card { grid-template-columns: 1fr; gap: var(--s-5); padding: var(--s-4); }
  body .tml-home-blog .tml-home-blog-image { order: -1; }
  body .tml-home-blog .tml-home-blog-image img { min-height: 0; aspect-ratio: 16 / 10; }
}
/* <<< home3 */

/* >>> home4 */
/* Homepage sections part 4: Testimonials (static deck; motion pass adds prev/next + auto-advance) */
body .tml-testimonials.et_pb_section { padding: var(--section-pad) 0; border-top: 1px solid var(--line); overflow: hidden; }
body .tml-testimonials .tml-t-head { margin-bottom: var(--s-8) !important; }
body .tml-testimonials .tml-t-label { margin: 0 !important; }
body .tml-testimonials .tml-t-navmod .tml-t-nav { display: flex; gap: var(--s-2); }
body .tml-testimonials .tml-t-btn {
  width: 3rem; height: 3rem; border-radius: 50%;
  border: 1px solid var(--line-strong); background: transparent; color: var(--ink-1);
  font-size: 1.1rem; cursor: pointer; padding: 0;
  transition: background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
}
body .tml-testimonials .tml-t-btn:hover { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); }

/* deck: cards stacked in one grid cell, fanned by transforms (state GSAP leaves at load: active centre, others +-58% / 5deg / .88 / .45) */
body .tml-testimonials .tml-deck { display: grid; max-width: 46rem; margin-inline: auto; }
body .tml-testimonials .tml-deck .tml-t-card {
  grid-area: 1 / 1;
  position: relative;
  background: var(--bg-1);
  border: 1px solid var(--line-strong);
  border-radius: 14px;
  padding: var(--s-6) var(--s-6) var(--s-4) !important;
  box-shadow: 0 28px 70px -22px rgba(0, 0, 0, 0.6);
  will-change: transform;
  margin: 0;
  transition: transform 0.65s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.65s cubic-bezier(0.22, 1, 0.36, 1);
}
body .tml-testimonials .tml-t-card .et_pb_text_inner { position: static; }   /* keep .tml-t-index anchored to the card, not the padded inner box */
body .tml-testimonials .tml-t-card.is-active { z-index: 10; }
body .tml-testimonials .tml-t-card.is-next { z-index: 9; transform: translate(58%, 5%) rotate(5deg) scale(0.88); opacity: 0.45; }
body .tml-testimonials .tml-t-card.is-prev { z-index: 9; transform: translate(-58%, 5%) rotate(-5deg) scale(0.88); opacity: 0.45; }
body .tml-testimonials .tml-quote-mark { font-family: var(--font-display); font-weight: 800; font-size: 3rem; line-height: 0.6; color: var(--accent); display: block; margin-bottom: var(--s-3); }
body .tml-testimonials .tml-t-text {
  margin: 0; padding: 0; border: 0;
  font-family: var(--font-display); font-weight: 500;
  font-size: clamp(1.15rem, 1rem + 0.9vw, 1.55rem); line-height: 1.4;
  letter-spacing: var(--tracking-tight); color: var(--ink-1); text-wrap: pretty;
}
body .tml-testimonials .tml-t-by { display: flex; align-items: baseline; gap: var(--s-3); margin-top: var(--s-4); padding-top: var(--s-3); border-top: 1px solid var(--line); }
body .tml-testimonials .tml-t-name { font-weight: 600; font-size: var(--text-sm); color: var(--ink-1); }
body .tml-testimonials .tml-t-role { font-size: var(--text-xs); color: var(--ink-3); }
body .tml-testimonials .tml-t-index { position: absolute; top: var(--s-4); right: var(--s-4); }
@media (max-width: 760px) {
  body .tml-testimonials .tml-deck { max-width: 100%; }
  body .tml-testimonials .tml-deck .tml-t-card { padding: var(--s-4) !important; }
}
@media (prefers-reduced-motion: reduce) { body .tml-testimonials .tml-deck .tml-t-card { transition: none; } }
/* <<< home4 */

/* >>> home5 */
/* Homepage sections part 5: Hero (CSS marquee wall + CSS gradient backdrop; WebGL silk + scroll parallax deferred) */
body .tml-sec .tml-label.tml-shiny { color: transparent; -webkit-text-fill-color: transparent; }
@media (prefers-reduced-motion: reduce) { body .tml-sec .tml-label.tml-shiny { color: var(--ink-3); -webkit-text-fill-color: currentColor; } }

body .tml-hero.et_pb_section {
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: calc(var(--header-h) + var(--s-8)) 0 var(--s-12);
  position: relative;
  overflow: hidden;
}
/* the section is a flex column here, so row margins do not collapse: zero them */
body .tml-hero .et_pb_row { margin-top: 0; margin-bottom: 0; }
/* layers row: kept in flow at zero height; its modules are positioned against the section */
body .tml-hero .tml-hero-layers,
body .tml-hero .tml-hero-layers .et_pb_column { position: static; height: 0; min-height: 0; padding: 0; margin: 0; }
body .tml-hero .tml-hero-backdrop,
body .tml-hero .tml-hero-wall { position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: auto; max-width: none; margin: 0 !important; }
body .tml-hero .tml-hero-backdrop { z-index: 0; }
body .tml-hero .tml-hero-wall { z-index: 1; }
body .tml-hero .tml-hero-backdrop .et_pb_text_inner,
body .tml-hero .tml-hero-wall .et_pb_text_inner { position: static; height: 100%; }
body .tml-hero .tml-hero-stage, body .tml-hero .tml-hero-foot { position: relative; z-index: 2; }

/* backdrop: navy silk stand-in (desktop only, slow CSS drift) */
.tml-hero-backdrop-in {
  position: absolute; inset: 0; opacity: 0.55;
  background:
    radial-gradient(60% 80% at 20% 30%, rgba(27, 36, 82, 0.9), transparent 70%),
    radial-gradient(50% 70% at 80% 65%, rgba(27, 36, 82, 0.7), transparent 70%),
    linear-gradient(115deg, #0c1230 0%, #1b2452 50%, #0c1230 100%);
  background-size: 200% 200%;
  animation: tml-silk 28s ease-in-out infinite alternate;
}
.tml-hero-silk {
  position: absolute; inset: 0; z-index: 0; display: block;
  width: 100%; height: 100%; pointer-events: none; opacity: 0.55;
}
@keyframes tml-silk { from { background-position: 0% 50%; } to { background-position: 100% 50%; } }
@media (max-width: 760px) { body .tml-hero .tml-hero-backdrop { display: none; } }

/* moving image wall */
.tml-hero-wall-in { position: absolute; inset: 0; }
.tml-hero-wall-tilt {
  position: absolute; inset: -16% -10%;
  display: grid; gap: clamp(0.9rem, 1.8vw, 1.6rem); align-content: center;
  transform: perspective(1200px) rotateX(16deg) scale(1.18);
  transform-origin: 50% 28%;
  will-change: transform;
}
.tml-wall-row { overflow: hidden; white-space: nowrap; will-change: transform; }
.tml-wall-track { display: inline-block; animation: tml-wall-left var(--spd, 32s) linear infinite; }
.tml-wall-track.is-rev { animation-name: tml-wall-right; }
.tml-spd-32 { --spd: 32s; }
.tml-spd-36 { --spd: 36s; }
.tml-spd-40 { --spd: 40s; }
.tml-wall-set { display: inline-flex; gap: clamp(0.9rem, 1.8vw, 1.6rem); padding-right: clamp(0.9rem, 1.8vw, 1.6rem); }
.tml-wall-set img { width: clamp(190px, 19vw, 320px); height: auto; border-radius: 9px; border: 1px solid rgba(238, 240, 246, 0.1); opacity: 0.72; }
@keyframes tml-wall-left { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-50%, 0, 0); } }
@keyframes tml-wall-right { from { transform: translate3d(-50%, 0, 0); } to { transform: translate3d(0, 0, 0); } }
.tml-hero-wall-scrim {
  position: absolute; inset: 0;
  background:
    linear-gradient(90deg, rgba(var(--scrim-rgb), 0.9) 0%, rgba(var(--scrim-rgb), 0.86) 32%, rgba(var(--scrim-rgb), 0.58) 60%, rgba(var(--scrim-rgb), 0.4) 100%),
    linear-gradient(180deg, rgba(var(--scrim-rgb), 0.7) 0%, rgba(var(--scrim-rgb), 0.2) 38%, rgba(var(--scrim-rgb), 0.55) 80%, var(--bg-0) 100%);
}

body .tml-hero .tml-hero-eyebrow { margin-bottom: var(--s-4) !important; }
body .tml-hero .tml-hero-title h1 { font-size: var(--text-display-1); max-width: 13ch; padding-bottom: 0; margin: 0; }
body .tml-hero .tml-hero-foot { margin-top: var(--s-8) !important; }
body .tml-hero .tml-hero-sub { font-size: var(--text-lg); font-weight: 500; color: var(--ink-2); max-width: 44ch; }
body .tml-hero .tml-hero-foot .tml-hf-col:last-child { flex-shrink: 0; }

@media (max-width: 760px) {
  .tml-hero-wall-tilt { transform: none; gap: 1.4rem; inset: 0 -6%; align-content: center; }
  .tml-wall-set img { width: 160px; }
  .tml-hero-wall-scrim {
    background: linear-gradient(180deg, rgba(var(--scrim-rgb), 0.78) 0%, rgba(var(--scrim-rgb), 0.55) 40%, rgba(var(--scrim-rgb), 0.72) 80%, var(--bg-0) 100%);
  }
}
/* <<< home5 */

/* >>> services */
/* ============================================================
   /services/ (Astro pages/services.astro + ServiceVisual + OrbitalCapabilities). Native Divi modules; CSS carries the look.
   ============================================================ */
body .tml-svc-intro.et_pb_section { padding: calc(var(--header-h) + var(--s-12)) 0 var(--s-12); }
body .tml-svc-intro .tml-svc-label { margin: 0 !important; }
body .tml-svc-intro .tml-svc-h1 { margin: var(--s-4) 0 var(--s-6) !important; }
body .tml-svc-intro .tml-svc-h1 .et_pb_module_header { font-size: clamp(3.2rem, 5.8vw, 6.4rem); max-width: 16ch; line-height: .96; }
body .tml-svc-intro .tml-svc-lede { font-size: var(--text-lg); color: var(--ink-2); max-width: 50ch; }
body .tml-svc-intro .svc-intro-art.et_pb_group {
  display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-4); align-content: center;
  width: 100%; max-width: 30rem; min-height: 28rem; margin-left: auto; padding: var(--s-4);
  border: 1px solid var(--line); border-radius: 18px;
  background: radial-gradient(100% 80% at 90% 10%, var(--navy-soft), transparent 70%), var(--bg-1);
}
body .tml-svc-intro .svc-art-cell.et_pb_group { display: flex; align-items: center; justify-content: center; min-height: 14rem; padding: clamp(1rem, 2vw, 1.5rem); border: 1px solid var(--line-strong); border-radius: 12px; background: color-mix(in srgb, var(--bg-0) 74%, transparent); }
.svc-art-cell .svis, .svc-art-cell .svis .et_pb_svg_inner { display: block; width: 100%; max-width: 14rem; margin: 0; }
.svis svg { width: 100%; height: auto; display: block; }
.svc-art-cell .svis { transform: scale(1.28); }
.svis .o { stroke: var(--line-strong); stroke-width: 2; }
.svis .ln2 { stroke: var(--ink-3); stroke-width: 3; stroke-linecap: round; }
.svis .d { fill: var(--line-strong); }
.svis .ln { fill: var(--ink-3); opacity: 0.55; }
.svis .sub { fill: var(--ink-2); }
.svis .blk { fill: none; stroke: var(--line-strong); stroke-width: 1.5; }
.svis .hero { fill: color-mix(in srgb, var(--accent) 18%, transparent); stroke: var(--accent); stroke-width: 1.5; }
.svis .bar { fill: none; stroke: var(--ink-3); stroke-width: 2; }
.svis .acc-s { stroke: var(--accent); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.svis .acc-f { fill: var(--accent); }
.svis .bar.acc-f { fill: var(--accent); stroke: var(--accent); }
.svis .arrow { fill: none; }
.svis .sw-navy { fill: var(--navy); }
.svis .sw-acc { fill: var(--accent); }
.svis .sw-ink { fill: var(--ink-2); }

/* list */
body .tml-svc-list.et_pb_section { border-top: 1px solid var(--line); }
body .tml-svc-list .et_pb_row { margin-top: 0; margin-bottom: 0; }
body .tml-svc-list .tml-svc-listintro { padding: var(--s-8) 0 var(--s-2) !important; }
body .tml-svc-list .et_pb_text.tml-svc-list-intro { width: 100%; max-width: none; }
body .tml-svc-list .tml-svc-list-intro { color: var(--ink-2); font-size: var(--text-lg); max-width: 68ch; line-height: 1.62; }
body .tml-svc-list .tml-svc-list-intro-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-6); align-items: start; }
body .tml-svc-list .tml-svc-list-intro-grid > div:first-child > .tml-label { margin-bottom: var(--s-3) !important; color: var(--accent); }
body .tml-svc-list .tml-svc-list-intro-grid .tml-svc-list-intro { margin: 0; }
body .tml-svc-list .tml-svc-outcome-rail { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-4); padding: 0; border: 0; background: transparent; }
body .tml-svc-list .tml-svc-outcome-rail span { position: relative; display: grid; gap: .55rem; min-height: 8.5rem; padding: var(--s-5); border: 1px solid var(--line-strong); border-radius: 14px; color: var(--ink-2); line-height: 1.4; background: linear-gradient(145deg, color-mix(in srgb, var(--navy-soft) 48%, var(--bg-1)), var(--bg-1)); }
body .tml-svc-list .tml-svc-outcome-rail span::before { content: attr(data-step); display: inline-flex; align-items: center; justify-content: center; width: 2rem; height: 2rem; border: 1px solid var(--accent); border-radius: 50%; color: var(--accent); font-family: var(--font-mono); font-size: var(--text-label); }
body .tml-svc-list .tml-svc-outcome-rail span:not(:last-child)::after { content: '→'; position: absolute; right: calc(var(--s-4) * -1); top: 50%; transform: translate(50%,-50%); color: var(--accent); font-size: 1.5rem; z-index: 2; }
body .tml-svc-list .tml-svc-outcome-rail strong { color: var(--ink-1); font-family: var(--font-display); font-size: 1.35rem; }
body .tml-svc-list .tml-market-value { margin-top: var(--s-6); padding: var(--s-5); border: 1px solid rgba(241,90,38,.38); border-radius: 14px; background: linear-gradient(135deg, rgba(241,90,38,.08), rgba(11,20,39,.64)); }
body .tml-svc-list .tml-market-value > p:first-child { margin-bottom: var(--s-2); color: var(--accent); }
body .tml-svc-list .tml-market-value > p { max-width: none; }
body .tml-svc-list .tml-market-value-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: var(--s-4); margin: var(--s-5) 0; }
body .tml-svc-list .tml-market-value-grid > div { display: grid; gap: .35rem; padding: var(--s-4); border: 1px solid var(--line-strong); border-radius: 10px; background: rgba(7,9,15,.24); }
body .tml-svc-list .tml-market-value-grid strong { color: var(--ink-1); font-family: var(--font-display); font-size: clamp(1.25rem, 2vw, 2rem); }
body .tml-svc-list .tml-market-value-grid span { color: var(--ink-2); font-size: var(--text-sm); }
body .tml-svc-list .tml-market-value-points { display: flex; flex-wrap: wrap; gap: .55rem; margin: var(--s-4) 0; }
body .tml-svc-list .tml-market-value-points span { padding: .45rem .65rem; border: 1px solid var(--line); border-radius: 999px; color: var(--ink-1); font-size: var(--text-xs); }
body .tml-svc-list .tml-value-note { color: var(--ink-3); font-size: var(--text-xs); line-height: 1.5; }
body .tml-svc-list .tml-svc-row { padding: clamp(3.5rem, 7vw, 7rem) 0 !important; border-bottom: 1px solid var(--line); display: grid !important; grid-template-columns: 4rem minmax(0, 1fr); column-gap: clamp(1.5rem, 4vw, 4rem); align-items: start; }
body .tml-svc-list .tml-svc-row > .et_pb_column { width: auto !important; margin-right: 0 !important; float: none !important; }
body .tml-svc-list .tml-svc-index { padding-top: 0.6rem !important; }
body .tml-svc-list .tml-svc-name { margin-bottom: var(--s-2) !important; }
body .tml-svc-list .tml-svc-name .et_pb_module_header { font-size: clamp(2rem, 4vw, 4.6rem); line-height: .98; max-width: none; }
body .tml-svc-list .tml-svc-service-photo.et_pb_image { width: 100%; margin: 0 0 var(--s-5) !important; overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: var(--bg-1); }
body .tml-svc-list .tml-svc-service-photo .et_pb_image_wrap { display: block; width: 100%; }
body .tml-svc-list .tml-svc-service-photo img { display: block; width: 100%; aspect-ratio: 16 / 8; object-fit: cover; object-position: center 38%; }
body .tml-svc-list .tml-svc-photo-3 img { aspect-ratio: 4 / 3; object-position: center top; }
body .tml-svc-list .tml-svc-c2, body .tml-svc-list .tml-svc-c3 { grid-column: 2; width: 100% !important; }
body .tml-svc-list .tml-svc-line { color: var(--ink-2); max-width: none; font-size: var(--text-lg); line-height: 1.55; }
body .tml-svc-list .tml-svc-c3 { padding-top: var(--s-5) !important; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-5); }
body .tml-svc-list .tml-svc-point { font-size: var(--text-sm); color: var(--ink-2); line-height: 1.5; }
body .tml-svc-list .tml-svc-point p { display: flex; align-items: baseline; gap: 0.6rem; line-height: 1.5; text-wrap: pretty; }
body .tml-svc-list .tml-svc-point:not(:last-child) { margin-bottom: var(--s-2) !important; }
.tml-svc-point .tml-pt-lead { font-weight: 600; color: var(--ink-1); }
.tml-svc-point .tml-dot { display: block; width: 5px; height: 5px; border-radius: 50%; background: var(--accent); flex-shrink: 0; transform: translateY(-2px); }

body .tml-svc-automation .tml-orbit-detail-panel { margin-top: var(--s-8); padding: var(--s-5); border: 1px solid var(--line-strong); border-radius: 14px; background: linear-gradient(145deg, color-mix(in srgb, var(--navy-soft) 48%, var(--bg-1)), var(--bg-1)); }
body .tml-svc-automation .tml-orbit-detail-panel h3 { margin: .35rem 0 .5rem; color: var(--ink-1); font-family: var(--font-display); font-size: 1.5rem; }
body .tml-svc-automation .tml-orbit-detail-panel p:last-child { margin: 0; color: var(--ink-2); line-height: 1.55; }
body .tml-svc-automation .tml-orbit-detail-data { display: none; }

/* automation + orbital */
body .tml-svc-automation.et_pb_section { padding: var(--section-pad) 0; border-top: 1px solid var(--line); overflow-x: clip; }   /* the rotating ring's square track sweeps past the viewport edge on phones */
body .tml-svc-automation .tml-auto-line {
  font-family: var(--font-display); font-weight: 500; font-size: var(--text-display-3);
  line-height: 1.25; letter-spacing: var(--tracking-tight); color: var(--ink-1); max-width: 24ch;
}
body .orbit.et_pb_group { position: relative; width: 100%; max-width: 26rem; aspect-ratio: 1 / 1; margin-inline: auto; display: block; }
.orbit .orbit-rings { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; }
.orbit .orbit-rings .et_pb_svg_inner, .orbit .orbit-rings svg { width: 100%; height: 100%; display: block; }
.orbit .orbit-rings circle { fill: none; stroke: var(--line-strong); stroke-width: 0.5; stroke-dasharray: 1.4 2.2; }
.orbit .orbit-track { position: absolute; inset: 0; animation: tml-orbit-spin 44s linear infinite; }
.orbit:hover .orbit-track, .orbit:focus-within .orbit-track, .orbit:hover .orbit-node-inner, .orbit:focus-within .orbit-node-inner { animation-play-state: paused; }
@keyframes tml-orbit-spin { to { transform: rotate(360deg); } }
@keyframes tml-orbit-spin-rev { to { transform: rotate(-360deg); } }
.orbit .orbit-node { position: absolute; transform: translate(-50%, -50%); margin: 0; width: max-content; cursor: pointer; }
.orbit .orbit-n0 { left: 50%; top: 13%; } .orbit .orbit-n1 { left: 82.04%; top: 31.5%; } .orbit .orbit-n2 { left: 82.04%; top: 68.5%; }
.orbit .orbit-n3 { left: 50%; top: 87%; } .orbit .orbit-n4 { left: 17.96%; top: 68.5%; } .orbit .orbit-n5 { left: 17.96%; top: 31.5%; }
.orbit .orbit-node-inner { display: flex; flex-direction: column; align-items: center; gap: 0.4rem; animation: tml-orbit-spin-rev 44s linear infinite; }
.orbit .orbit-disc {
  display: inline-flex; align-items: center; justify-content: center; width: 3.4rem; height: 3.4rem; border-radius: 50%;
  background: var(--bg-1); border: 1px solid var(--line-strong); color: var(--ink-2);
  transition: transform var(--dur-med) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
}
.orbit .orbit-icon { width: 1.6rem; height: 1.6rem; margin: 0; }
.orbit .orbit-icon .et_pb_svg_inner, .orbit .orbit-icon svg { width: 100%; height: 100%; display: block; }
.orbit .orbit-icon svg { stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; fill: none; }
.orbit .orbit-node:hover .orbit-disc { border-color: var(--accent); color: var(--accent); transform: scale(1.08); }
body .orbit .orbit-tag { font-family: var(--font-mono); font-size: var(--text-label); letter-spacing: 0.06em; color: var(--ink-3); white-space: nowrap; opacity: 0; transform: translateY(-3px); transition: opacity var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out); }
body .orbit .orbit-tag p { line-height: var(--leading-body); max-width: none; }
.orbit .orbit-node:hover .orbit-tag { opacity: 1; transform: translateY(0); color: var(--ink-1); }
.orbit .orbit-hub {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 44%; height: 44%; border-radius: 50%;
  display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 0.25rem; padding: 0.5rem;
  background: radial-gradient(circle at 50% 40%, var(--navy-soft), transparent 72%);
}
body .orbit .orbit-core { width: 0.85rem; height: 0.85rem; border-radius: 50%; background: var(--accent); margin-bottom: 0.35rem !important; box-shadow: 0 0 0 0 rgba(241, 90, 38, 0.5); animation: tml-orbit-pulse 2.6s var(--ease-out) infinite; }
.orbit .orbit-core p { display: none; }
@keyframes tml-orbit-pulse { 0% { box-shadow: 0 0 0 0 rgba(241, 90, 38, 0.45); } 70% { box-shadow: 0 0 0 14px rgba(241, 90, 38, 0); } 100% { box-shadow: 0 0 0 0 rgba(241, 90, 38, 0); } }
body .orbit .orbit-hub-title { font-family: var(--font-display); font-weight: 800; font-size: 1.05rem; line-height: 1.1; color: var(--ink-1); letter-spacing: var(--tracking-tight); }
body .orbit .orbit-hub-title p { line-height: 1.1; }
body .orbit .orbit-hub-desc { font-size: var(--text-xs); color: var(--ink-2); max-width: 14ch; line-height: 1.3; }
body .orbit .orbit-hub-desc p { line-height: 1.3; }
@media (prefers-reduced-motion: reduce) {
  .orbit .orbit-track, .orbit .orbit-node-inner, body .orbit .orbit-core { animation: none; }
  body .orbit .orbit-tag { opacity: 1; transform: none; }
}
@media (hover: none) {
  .orbit .orbit-track, .orbit .orbit-node-inner, body .orbit .orbit-core { animation: none; }
  body .orbit .orbit-tag { opacity: 1; transform: none; }
}
@media (max-width: 600px) {
  body .orbit.et_pb_group { max-width: 20rem; }
  .orbit .orbit-disc { width: 2.9rem; height: 2.9rem; }
  .orbit .orbit-icon { width: 1.35rem; height: 1.35rem; }
}

/* industries */
body .tml-svc-industries.et_pb_section { padding: var(--s-12) 0; border-top: 1px solid var(--line); }
body .tml-svc-industries .tml-ind-list ul { list-style: none; margin: var(--s-6) 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-4); }
body .tml-svc-industries .tml-ind-list li { margin: 0; padding: 0; list-style: none; line-height: var(--leading-body); font-size: var(--text-base); }
body .tml-svc-industries .tml-ind-list .tml-ind-chip { display: flex; align-items: center; gap: var(--s-4); min-height: 5.75rem; padding: var(--s-4); color: var(--ink-1); border: 1px solid var(--line-strong); border-radius: 14px; background: linear-gradient(145deg, color-mix(in srgb, var(--navy-soft) 38%, var(--bg-1)), var(--bg-1)); font-family: var(--font-display); font-size: 1.05rem; }
body .tml-svc-industries .tml-ind-icon { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 3.4rem; width: 3.4rem; height: 3.4rem; border-radius: 14px; color: var(--accent); background: rgba(241, 90, 38, .10); }
body .tml-svc-industries .tml-ind-icon svg { display: block; width: 2rem; height: 2rem; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 860px) { body .tml-svc-industries .tml-ind-list ul { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { body .tml-svc-industries .tml-ind-list ul { grid-template-columns: 1fr; } }

/* cta */
body .tml-svc-cta.et_pb_section { padding: var(--section-pad) 0; border-top: 1px solid var(--line); }
body .tml-svc-cta .tml-svc-cta-title { margin-bottom: var(--s-2) !important; }
body .tml-svc-cta .tml-svc-cta-title .et_pb_module_header { font-size: var(--text-display-2); }
body .tml-svc-cta .tml-svc-cta-sub { color: var(--ink-2); margin-bottom: var(--s-6) !important; }
body .tml-svc-cta .tml-svc-ctatext { display: flex; flex-direction: column; justify-content: center; }
body .tml-svc-cta .tml-svc-ctatext { text-align: center; align-items: center; }
body .tml-svc-cta .tml-svc-ctatext .tml-svc-cta-sub { max-width: 46ch; }
body .tml-svc-cta .tml-svc-ctavis { display: flex; align-items: center; }
body .tml-svc-cta .tml-svc-cta-photo.et_pb_image { width: 100%; overflow: hidden; border: 1px solid var(--line); border-radius: 18px; }
body .tml-svc-cta .tml-svc-cta-photo .et_pb_image_wrap { display: block; width: 100%; }
body .tml-svc-cta .tml-svc-cta-photo img { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; object-position: 30% 50%; }

@media (max-width: 860px) {
  body .tml-svc-introrow, body .tml-svc-autorow, body .tml-svc-ctarow { flex-direction: column !important; }
  body .tml-svc-introrow { row-gap: var(--s-8) !important; }
  body .tml-svc-autorow { row-gap: var(--s-6) !important; }
  body .tml-svc-introrow > .et_pb_column, body .tml-svc-autorow > .et_pb_column, body .tml-svc-ctarow > .et_pb_column { width: 100% !important; }
  body .tml-svc-intro .svc-intro-art.et_pb_group { max-width: 26rem; gap: var(--s-4); }
  body .tml-svc-autorow .tml-svc-autovis { max-width: 24rem; }
  body .tml-svc-ctatext { text-align: center; align-items: center; }
  body .tml-svc-ctavis { max-width: 30rem; margin-inline: auto; }
  body .tml-svc-row .tml-svc-c1 { width: 2.5rem !important; }
  body .tml-svc-row .tml-svc-c2 { width: calc(100% - 2.5rem - var(--s-6)) !important; }
  body .tml-svc-row .tml-svc-c3 { width: calc(100% - 2.5rem - var(--s-6)) !important; margin-left: calc(2.5rem + var(--s-6)); }
  body .tml-svc-list .tml-svc-list-intro-grid { grid-template-columns: 1fr; gap: var(--s-6); }
  body .tml-svc-list .tml-svc-row { display: grid !important; grid-template-columns: 2.5rem minmax(0,1fr) !important; row-gap: var(--s-5) !important; }
  body .tml-svc-list .tml-svc-row > .et_pb_column { width: 100% !important; margin-left: 0 !important; }
  body .tml-svc-list .tml-svc-row .tml-svc-c2, body .tml-svc-list .tml-svc-row .tml-svc-c3 { grid-column: 2; margin-left: 0 !important; }
  body .tml-svc-list .tml-svc-c3 { grid-template-columns: 1fr; gap: var(--s-3); }
  body .tml-svc-list .tml-svc-outcome-rail { grid-template-columns: 1fr; }
  body .tml-svc-list .tml-svc-outcome-rail span:not(:last-child)::after { content: '↓'; right: 50%; top: auto; bottom: calc(var(--s-4) * -1); transform: translate(50%, 50%); }
  body .tml-svc-list .tml-market-value-grid { grid-template-columns: 1fr; }
}
/* <<< services */

/* >>> work */
/* ============================================================
   /work/ (Astro pages/work.astro + AnimatedCard). Native Divi modules (Group/Heading/Text/Image); CSS carries the look.
   ============================================================ */
body .tml-wk-flag .et_pb_module, body .tml-wk-port .et_pb_module, body .tml-wk-intro .sc-card .et_pb_module { margin-bottom: 0; }

/* Divi Groups default to a 30px gap; Astro has none unless set below */
body .sc-card.et_pb_group, body .sc-meta.et_pb_group, body .card-frame.et_pb_group, body .work-card.et_pb_group, body .flag-text.et_pb_group, body .card-text.et_pb_group { gap: 0 !important; }

/* intro */
body .tml-wk-intro.et_pb_section { padding: calc(var(--header-h) + var(--s-12)) 0 var(--s-12); }
body .tml-wk-intro .tml-wk-label { margin: 0 !important; }
body .tml-wk-intro .work-h1 { margin: var(--s-4) 0 var(--s-6) !important; }
body .tml-wk-intro .work-h1 .et_pb_module_header { font-size: var(--text-display-1); max-width: 13ch; }
body .tml-wk-intro .work-lede { font-size: var(--text-lg); color: var(--ink-2); max-width: 48ch; }
body .tml-wk-intro .tml-wk-cardcol { min-width: 0; }

/* animated stats card */
body .tml-wk-intro .sc-card.et_pb_group {
  position: relative; overflow: hidden; display: flex; flex-direction: column;
  width: 100%; max-width: 390px; margin-left: auto; min-width: 0;
  border: 1px solid var(--line-strong); border-radius: 16px;
  background: radial-gradient(120% 80% at 80% 0%, var(--navy-soft), transparent 60%), var(--bg-1);
  padding: var(--s-4); box-shadow: 0 32px 80px -36px rgba(0, 0, 0, 0.55);
}
.sc-card::before {
  content: ''; position: absolute; top: -40%; right: -10%; width: 70%; height: 80%;
  background: radial-gradient(circle, color-mix(in srgb, var(--accent) 24%, transparent), transparent 70%);
  filter: blur(40px); pointer-events: none;
}
.sc-card > * { position: relative; }
.sc-legend-in { display: flex; gap: var(--s-3); justify-content: flex-end; margin-bottom: var(--s-3); }
.sc-key {
  display: inline-flex; align-items: center; gap: 0.4rem; font-size: var(--text-xs); font-weight: 600; color: var(--ink-2);
  padding: 0.3rem 0.7rem; border: 1px solid var(--line-strong); border-radius: var(--radius-pill);
  background: color-mix(in srgb, var(--bg-0) 50%, transparent);
}
.sc-dot { width: 0.55rem; height: 0.55rem; border-radius: 50%; display: inline-block; }
.sc-dot.is-visits { background: var(--accent); }
.sc-dot.is-appts { background: #5566cc; }
body .sc-card .sc-chart.et_pb_group {
  position: relative; display: flex; flex-direction: row; align-items: flex-end; justify-content: space-between;
  gap: clamp(0.4rem, 1.4vw, 0.9rem); height: clamp(150px, 22vw, 200px); padding-bottom: 0.5rem; border-bottom: 1px solid var(--line);
}
body .sc-card .sc-col.et_pb_group { flex: 1 1 0; display: flex; flex-direction: row; align-items: flex-end; justify-content: center; gap: 0.28rem; height: 100%; }
body .sc-card .sc-bar.et_pb_text {
  width: clamp(6px, 1.1vw, 11px); height: var(--h); border-radius: 4px 4px 2px 2px; margin: 0 !important; padding: 0;
  transform-origin: bottom; animation: sc-grow 5.5s var(--ease-out) infinite; animation-delay: var(--d);
}
.sc-bar .et_pb_text_inner, .sc-bar p { display: none; }
.sc-bar.is-visits { background: linear-gradient(180deg, var(--accent-hover), var(--accent)); }
.sc-bar.is-appts { background: linear-gradient(180deg, #6f7ee0, #4856b8); }
@keyframes sc-grow { 0% { transform: scaleY(0); opacity: 0.4; } 16% { opacity: 1; } 20%, 82% { transform: scaleY(1); opacity: 1; } 100% { transform: scaleY(0); opacity: 0.4; } }
.sc-col:nth-child(1) { --d: 0s; }    .sc-col:nth-child(1) .is-visits { --h: 30%; } .sc-col:nth-child(1) .is-appts { --h: 16%; }
.sc-col:nth-child(2) { --d: 0.09s; } .sc-col:nth-child(2) .is-visits { --h: 36%; } .sc-col:nth-child(2) .is-appts { --h: 20%; }
.sc-col:nth-child(3) { --d: 0.18s; } .sc-col:nth-child(3) .is-visits { --h: 42%; } .sc-col:nth-child(3) .is-appts { --h: 24%; }
.sc-col:nth-child(4) { --d: 0.27s; } .sc-col:nth-child(4) .is-visits { --h: 50%; } .sc-col:nth-child(4) .is-appts { --h: 28%; }
.sc-col:nth-child(5) { --d: 0.36s; } .sc-col:nth-child(5) .is-visits { --h: 58%; } .sc-col:nth-child(5) .is-appts { --h: 34%; }
.sc-col:nth-child(6) { --d: 0.45s; } .sc-col:nth-child(6) .is-visits { --h: 66%; } .sc-col:nth-child(6) .is-appts { --h: 40%; }
.sc-col:nth-child(7) { --d: 0.54s; } .sc-col:nth-child(7) .is-visits { --h: 78%; } .sc-col:nth-child(7) .is-appts { --h: 48%; }
.sc-col:nth-child(8) { --d: 0.63s; } .sc-col:nth-child(8) .is-visits { --h: 90%; } .sc-col:nth-child(8) .is-appts { --h: 58%; }
body .sc-card .sc-meta.et_pb_group { display: flex; flex-direction: column; margin-top: var(--s-3); }
body .sc-card .sc-title { margin: 0 !important; }
body .sc-card .sc-title .et_pb_module_header { font-family: var(--font-display); font-weight: 800; font-size: 1.3rem; line-height: 1.1; letter-spacing: var(--tracking-tight); color: var(--ink-1); }
body .sc-card .sc-sub { margin-top: 0.4rem !important; color: var(--ink-2); }
body .tml-sec .et_pb_text.sc-sub p { font-size: var(--text-sm); max-width: 32ch; }

/* sections */
body .tml-wk-flag.et_pb_section, body .tml-wk-port.et_pb_section { padding: var(--section-pad) 0; border-top: 1px solid var(--line); }
body .tml-wk-flag .tml-sec-label, body .tml-wk-port .tml-sec-label { margin-bottom: var(--s-6) !important; }
body .tml-wk-port .portfolio-lede { font-size: var(--text-lg); color: var(--ink-2); max-width: 52ch; margin: calc(-1 * var(--s-3)) 0 var(--s-8) !important; }
body .tml-wk-flag .flag-intro-block { margin-bottom: var(--s-8) !important; }
body .tml-wk-flag .tml-wk-flag-introgrid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(18rem, .75fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
body .tml-wk-flag .flag-intro-block h2 { margin: 0 0 var(--s-3); font-family: var(--font-display); font-size: var(--text-display-2); line-height: 1.08; letter-spacing: var(--tracking-tight); max-width: 18ch; }
body .tml-wk-flag .flag-intro-block p { color: var(--ink-2); font-size: var(--text-lg); line-height: 1.62; max-width: 58ch; }
body .tml-wk-flag .tml-wk-proof { padding: var(--s-5); border: 1px solid var(--line-strong); border-radius: 14px; background: linear-gradient(145deg, color-mix(in srgb, var(--navy-soft) 52%, var(--bg-1)), var(--bg-1)); }
body .tml-wk-flag .tml-proof-kicker, body .tml-wk-flag .tml-proof-row strong { color: var(--accent); font-family: var(--font-mono); font-size: var(--text-label); letter-spacing: var(--tracking-label); text-transform: uppercase; }
body .tml-wk-flag .tml-proof-kicker { display: block; margin-bottom: var(--s-4); }
body .tml-wk-flag .tml-proof-row { display: grid; grid-template-columns: 2.25rem minmax(0,1fr); gap: var(--s-3); padding: var(--s-3) 0; border-top: 1px solid var(--line); }
body .tml-wk-flag .tml-proof-row span { color: var(--ink-2); line-height: 1.45; }

/* build approach */
body .tml-wk-approach.et_pb_section { padding: var(--section-pad) 0; border-top: 1px solid var(--line); }
body .tml-wk-approach .tml-sec-label { margin-bottom: var(--s-6) !important; }
body .tml-wk-approach .tml-wk-approach-head { margin-bottom: var(--s-8); }
body .tml-wk-approach .tml-wk-approach-copy { color: var(--ink-2); max-width: 60ch; line-height: 1.65; }
body .tml-wk-approach .tml-wk-approach-copy h2 { margin: 0 0 var(--s-5); color: var(--ink-1); font-family: var(--font-display); font-size: var(--text-display-2); line-height: 1.08; letter-spacing: var(--tracking-tight); }
body .tml-wk-approach .tml-wk-approach-copy p { line-height: 1.65; }
body .tml-wk-approach .tml-wk-approach-copy p + p { margin-top: var(--s-5); }
body .tml-wk-approach .tml-wk-approach-vis { display: flex; flex-direction: column; gap: var(--s-5) !important; }
body .tml-wk-approach .tml-build-checklist { display: grid; gap: var(--s-4); }
body .tml-wk-approach .tml-build-checklist article { padding: var(--s-5); border: 1px solid var(--line-strong); border-radius: 14px; background: linear-gradient(145deg, color-mix(in srgb, var(--navy-soft) 46%, var(--bg-1)), var(--bg-1)); }
body .tml-wk-approach .tml-build-checklist article > span { display: block; margin-bottom: var(--s-3); color: var(--accent); font-family: var(--font-mono); font-size: var(--text-label); letter-spacing: var(--tracking-label); text-transform: uppercase; }
body .tml-wk-approach .tml-build-checklist h3 { margin: 0 0 var(--s-2); color: var(--ink-1); font-family: var(--font-display); font-size: 1.3rem; line-height: 1.12; letter-spacing: var(--tracking-tight); }
body .tml-wk-approach .tml-build-checklist p { margin: 0; color: var(--ink-2); line-height: 1.55; }
body .tml-wk-approach .tml-wk-approach-photo.et_pb_image { width: 100%; overflow: hidden; border: 1px solid var(--line); border-radius: 18px; }
body .tml-wk-approach .tml-wk-approach-photo .et_pb_image_wrap { display: block; width: 100%; }
body .tml-wk-approach .tml-wk-approach-photo img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }

/* browser frame + scroll window */
body .card-frame.et_pb_group {
  display: flex; flex-direction: column; align-items: stretch; width: 100%;
  border: 1px solid var(--line-strong); border-radius: 10px; overflow: hidden; background: var(--bg-1);
  box-shadow: 0 32px 80px -24px rgba(0, 0, 0, 0.55); transition: border-color var(--dur-med) var(--ease-out);
}
.work-card:hover .card-frame, .flag-card:hover .card-frame { border-color: rgba(241, 90, 38, 0.45); }
body .card-frame .wk-bar.et_pb_text { margin: 0 !important; padding: 0; border-bottom: 1px solid var(--line); background: var(--bg-2); }
.wk-bar-in { display: flex; align-items: center; gap: 6px; padding: 10px 14px; }
.wk-bar-in .frame-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--line-strong); flex: none; }
.wk-bar-in .frame-url { margin-left: var(--s-2); font-family: var(--font-mono); font-size: var(--text-label); color: var(--ink-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wk-bar-in .frame-hint { margin-left: auto; flex-shrink: 0; font-family: var(--font-mono); font-size: var(--text-label); color: var(--accent); letter-spacing: var(--tracking-label); text-transform: uppercase; }
body .scroll-window.et_pb_group {
  display: block; height: 440px; overflow-y: auto; overflow-x: hidden; background: var(--bg-1);
  scrollbar-width: thin; scrollbar-color: var(--line-strong) transparent;
}
body .scroll-window.is-flag.et_pb_group { height: 560px; }
.scroll-window:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: -2px; }
.scroll-window::-webkit-scrollbar { width: 10px; }
.scroll-window::-webkit-scrollbar-thumb { background: var(--line-strong); border-radius: 999px; border: 3px solid var(--bg-1); }
.scroll-window .wk-shot.et_pb_image, .scroll-window .et_pb_image_wrap { display: block; width: 100%; max-width: none; margin: 0 !important; }
.scroll-window img { width: 100%; height: auto; display: block; }

/* flagship meta + grid */
body .flag-meta.et_pb_group { display: flex; flex-direction: row; justify-content: space-between; align-items: flex-start; gap: var(--s-6); margin-top: var(--s-4); }
body .flag-text.et_pb_group, body .card-text.et_pb_group { display: flex; flex-direction: column; min-width: 0; }
body .flag-title { margin: 0 0 var(--s-2) !important; }
body .flag-title .et_pb_module_header { font-size: var(--text-display-3); }
body .flag-copy { color: var(--ink-2); max-width: 56ch; }
body .flag-side.et_pb_group { display: flex; flex-direction: column; align-items: flex-end; gap: var(--s-3); flex-shrink: 0; }
body .tml-wk-flag .card-tag.et_pb_text, body .tml-wk-port .card-tag.et_pb_text { flex-shrink: 0; width: auto; border: 1px solid var(--line); border-radius: var(--radius-pill); padding: 0.35rem 0.8rem; }
body .tml-wk-flag .flag-link a.tml-text-link {
  font-size: var(--text-sm); font-weight: 600; color: var(--ink-1); border-bottom: 1px solid var(--line-strong); padding-bottom: 2px;
  transition: color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
}
body .tml-wk-flag .flag-link a.tml-text-link:hover { color: var(--accent); border-color: var(--accent); }
.flag-link a.tml-text-link span { color: var(--accent); }
body .wk-grid.et_pb_group { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--s-8) var(--s-6); }
body .wk-grid > .work-card.et_pb_group { display: flex; flex-direction: column; min-width: 0; }
/* Seven projects leave one orphan card; let the final project use the full row. */
body .wk-grid > .work-card.et_pb_group:last-child { grid-column: 1 / -1; }
body .wk-grid > .work-card.et_pb_group:last-child .card-frame { width: 100%; }
body .card-meta.et_pb_group { display: flex; flex-direction: row; justify-content: space-between; align-items: flex-start; gap: var(--s-4); margin-top: var(--s-3); }
body .card-title { margin: 0 0 var(--s-1) !important; }
body .card-title .et_pb_module_header { font-size: 1.4rem; }
body .card-copy { color: var(--ink-2); }
body .tml-sec .et_pb_text.card-copy p { font-size: var(--text-sm); max-width: 42ch; }

/* cta */
body .tml-wk-cta.et_pb_section { padding: var(--section-pad) 0; border-top: 1px solid var(--line); }
body .tml-wk-cta .tml-wk-ctatext { display: flex; flex-direction: column; justify-content: center; }
body .tml-wk-cta .tml-cta-title { margin-bottom: var(--s-5) !important; }
body .tml-wk-cta .tml-cta-title .et_pb_module_header { font-size: var(--text-display-2); margin: 0; }
body .tml-wk-cta .tml-wk-cta-copy { color: var(--ink-2); max-width: 48ch; margin-bottom: var(--s-6) !important; }
body .tml-wk-cta .tml-wk-ctavis { display: flex; align-items: center; }
body .tml-wk-cta .tml-wk-cta-photo.et_pb_image { width: 100%; overflow: hidden; border: 1px solid var(--line); border-radius: 18px; }
body .tml-wk-cta .tml-wk-cta-photo .et_pb_image_wrap { display: block; width: 100%; }
body .tml-wk-cta .tml-wk-cta-photo img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }

[data-theme='light'] .wk-bar-in .frame-hint { color: var(--accent-strong); }

@media (max-width: 860px) {
  body .tml-wk-introrow { flex-direction: column !important; row-gap: var(--s-6) !important; }
  body .tml-wk-introrow > .et_pb_column { width: 100% !important; }
  body .wk-grid.et_pb_group { grid-template-columns: 1fr; }
  body .wk-grid > .work-card.et_pb_group:last-child { grid-column: auto; }
  body .scroll-window.et_pb_group { height: 380px; }
  body .scroll-window.is-flag.et_pb_group { height: 440px; }
  body .flag-meta.et_pb_group { flex-direction: column; }
  body .flag-side.et_pb_group { align-items: flex-start; }
  body .tml-wk-approach .tml-wk-approach-copy h2 { font-size: var(--text-display-3); }
  body .tml-wk-flag .tml-wk-flag-introgrid { grid-template-columns: 1fr; gap: var(--s-6); }
  body .tml-wk-flag .tml-wk-proof { max-width: 38rem; }
  body .tml-wk-ctatext { align-items: center; text-align: center; }
  body .tml-wk-ctavis { max-width: 30rem; margin-inline: auto; }
}
/* <<< work */

/* >>> contact */
/* ============================================================
   /contact/ (Astro pages/contact.astro). Native Group/Heading/Text/Svg modules + one Code module for the form.
   ============================================================ */
body .tml-ct.et_pb_section { padding: calc(var(--header-h) + var(--s-12)) 0 var(--section-pad); }
body .tml-ct .tml-ct-left { min-width: 0; }
body .tml-ct .tml-ct-label { margin: 0 !important; }
body .tml-ct .ct-h1 { margin: var(--s-4) 0 !important; }
body .tml-ct .ct-h1 .et_pb_module_header { font-size: var(--text-display-2); max-width: 12ch; }
body .tml-ct .ct-lede { font-size: var(--text-lg); color: var(--ink-2); }
body .tml-ct .et_pb_text.ct-lede p { max-width: 38ch; font-size: var(--text-lg); }
body .tml-ct .ct-consultation-photo.et_pb_image { width: 100%; margin-top: var(--s-6) !important; overflow: hidden; border: 1px solid var(--line); border-radius: 18px; }
body .tml-ct .ct-consultation-photo .et_pb_image_wrap { display: block; width: 100%; }
body .tml-ct .ct-consultation-photo img { display: block; width: 100%; max-height: none; aspect-ratio: 4 / 5; min-height: 24rem; object-fit: cover; object-position: center; }
body .tml-ct .ct-alt.et_pb_group, body .tml-ct .ct-verticals.et_pb_group {
  display: flex; flex-direction: column; gap: 0 !important; margin-top: var(--s-8); padding-top: var(--s-6); border-top: 1px solid var(--line);
}
body .tml-ct .ct-alt-label { margin-bottom: var(--s-2) !important; }
body .tml-ct .ct-vert-cap { margin-bottom: var(--s-4) !important; }
body .tml-ct .ct-alt-link a.tml-text-link {
  font-size: var(--text-base); font-weight: 600; color: var(--ink-1); border-bottom: 1px solid var(--line-strong); padding-bottom: 2px;
  transition: color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
}
body .tml-ct .ct-alt-link a.tml-text-link:hover { color: var(--accent); border-color: var(--accent); }
.ct-alt-link a.tml-text-link span { color: var(--accent); }
/* The consultation route is a primary action, so keep it visually consistent
   with the site's other CTA buttons even though it lives in a text module. */
body #page-container .tml-ct .ct-alt-link a.tml-cta {
  display: inline-flex; align-items: center; gap: .5rem;
  padding: .9rem 1.7rem; border: 1px solid var(--accent-strong); border-radius: var(--radius-pill);
  background: var(--accent-strong); color: var(--accent-ink); font-size: var(--text-sm); font-weight: 600;
  line-height: var(--leading-body); text-decoration: none; transition: box-shadow var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}
body #page-container .tml-ct .ct-alt-link a.tml-cta:hover { color: var(--accent-ink); box-shadow: 0 6px 18px rgba(0, 0, 0, .26); transform: translateY(-2px); }
body #page-container .tml-ct .ct-alt-link a.tml-cta span { color: currentColor; }
body .tml-ct .tml-ct-right .ct-alt.et_pb_group { margin-top: 0; margin-bottom: var(--s-5); padding-top: 0; padding-bottom: var(--s-5); border-top: 0; border-bottom: 1px solid var(--line); }

/* Business niches: show the full set as a clear, non-clickable icon grid. */
body .vert-marquee.et_pb_group { display: block; overflow: visible; max-width: 100%; }
body .vert-track.et_pb_group { display: block; width: 100%; gap: 0 !important; }
body .vert-set.et_pb_group { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); width: 100%; gap: var(--s-4) !important; padding: 0; align-items: start; }
body .vert-set.dup.et_pb_group { display: none; }
body .vert-item.et_pb_group { display: flex; flex-direction: column; align-items: center; gap: 0.55rem !important; width: auto; }
body .vert-chip.et_pb_group {
  display: inline-flex; align-items: center; justify-content: center; width: 3.6rem; height: 3.6rem;
  border: 1px solid var(--line-strong); border-radius: 14px; background: var(--bg-1); color: var(--ink-2);
  transition: color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
}
.vert-item:hover .vert-chip { color: var(--ink-2); border-color: var(--line-strong); }
.vert-chip .et_pb_module, .vert-chip .et_pb_svg_inner { margin: 0; width: 1.75rem; height: 1.75rem; }
.vert-chip svg { width: 1.75rem; height: 1.75rem; display: block; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
body .vert-name.et_pb_text { font-size: var(--text-xs); color: var(--ink-2); text-align: center; line-height: 1.2; }
body .vert-name.et_pb_text p { font-size: var(--text-xs); line-height: 1.2; max-width: none; }

body .tml-ct-verticals.et_pb_section { padding: var(--s-12) 0; border-top: 1px solid var(--line); }
body .tml-ct-verticals .tml-ct-verticals-row { margin-top: 0; margin-bottom: 0; }
body .tml-ct-verticals .ct-verticals.et_pb_group { width: 100%; max-width: none; margin-top: 0; padding: 0; border-top: 0; }
body .tml-ct-verticals .vert-set.et_pb_group { grid-template-columns: repeat(6, minmax(0, 1fr)); }
body .tml-ct-verticals .vert-chip.et_pb_group { width: 4.25rem; height: 4.25rem; }
body .tml-ct-verticals .vert-chip .et_pb_module, body .tml-ct-verticals .vert-chip .et_pb_svg_inner,
body .tml-ct-verticals .vert-chip svg { width: 2.1rem; height: 2.1rem; }

/* form */
body .tml-ct .ct-formwrap.et_pb_code { margin: 0; }
.ct-form {
  display: grid; gap: var(--s-4); background: var(--bg-1); border: 1px solid var(--line); border-radius: 16px;
  padding: clamp(1.5rem, 4vw, 2.5rem);
}
.ct-form .field { display: grid; gap: 0.5rem; }
.ct-form .field label { font-size: var(--text-sm); font-weight: 600; color: var(--ink-1); line-height: var(--leading-body); }
.ct-form .opt { color: var(--ink-3); font-weight: 400; }
body .ct-form .field input, body .ct-form .field textarea {
  background: var(--bg-0); border: 1px solid var(--line-strong); border-radius: 8px; padding: 0.8rem 0.9rem;
  color: var(--ink-1); font-family: inherit; font-size: var(--text-base); line-height: var(--leading-body); width: 100%; margin: 0;
  transition: border-color var(--dur-fast) var(--ease-out); box-shadow: none;
}
body .ct-form .field input:focus-visible, body .ct-form .field textarea:focus-visible {
  outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 45%, transparent);
}
.ct-form .field textarea { resize: vertical; }
.ct-project-picker { margin: 0; padding: 0; border: 0; min-width: 0; }
.ct-project-picker legend { padding: 0; margin: 0 0 var(--s-3); font-size: var(--text-sm); font-weight: 600; color: var(--ink-1); }
.ct-project-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.65rem; }
.ct-project-option { position: relative; display: flex; align-items: flex-start; gap: 0.65rem; min-height: 4.1rem; padding: 0.75rem 0.8rem; border: 1px solid var(--line-strong); border-radius: 10px; background: var(--bg-0); color: var(--ink-1); cursor: pointer; transition: border-color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out); }
.ct-project-option:hover, .ct-project-option:focus-within { border-color: var(--accent); }
.ct-project-option.is-selected { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 8%, var(--bg-0)); box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 18%, transparent); }
.ct-project-option input { position: absolute; opacity: 0; pointer-events: none; }
.ct-project-option span { display: grid; gap: 0.25rem; }
.ct-project-option strong { font-size: var(--text-sm); line-height: 1.2; }
.ct-project-option small { color: var(--ink-2); font-size: var(--text-xs); line-height: 1.35; }
.ct-picker-hint { margin: var(--s-3) 0 0; color: var(--ink-3); font-size: var(--text-xs); line-height: 1.45; }
.ct-form .hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
body #page-container .ct-form .ct-submit.et_pb_button { justify-self: start; margin-top: var(--s-2); cursor: pointer; letter-spacing: normal; }   /* Astro's <button> does not inherit the body tracking */
.ct-form .ct-status { font-size: var(--text-sm); min-height: 1.2em; margin: 0; padding: 0; }
.ct-form .ct-status.is-ok { color: var(--status-ok); }
.ct-form .ct-status.is-err { color: var(--status-err); }
.ct-form .ct-fineprint { font-size: var(--text-xs); color: var(--ink-3); max-width: 44ch; line-height: 1.55; margin: 0; padding: 0; }
.ct-form .ct-fineprint a { color: var(--ink-1); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.ct-form .ct-fineprint a:hover { color: var(--accent); }
[data-theme='light'] .ct-form .ct-fineprint a:hover { color: var(--accent-strong); }

/* project brief: use a visual decision grid instead of a long left-aligned text wall */
body .tml-ct-brief.et_pb_section { padding: var(--section-pad) 0; border-top: 1px solid var(--line); }
body .tml-ct-brief .tml-ct-briefrow { margin-top: 0; margin-bottom: 0; }
body .tml-ct-brief .tml-sec-label { margin-bottom: var(--s-5) !important; }
body .tml-ct-brief .tml-ct-brief-title { margin-bottom: var(--s-4) !important; }
body .tml-ct-brief .tml-ct-brief-title h2,
body .tml-ct-brief .tml-ct-brief-title .et_pb_module_header { font-size: var(--text-display-2); max-width: 24ch; line-height: 1.12; }
body .tml-ct-brief .tml-ct-brief-intro { max-width: 70ch; color: var(--ink-2); font-size: var(--text-lg); line-height: 1.6; }
body .tml-ct-brief .tml-brief-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s-4); margin-top: var(--s-8); }
body .tml-ct-brief .tml-brief-card { min-height: 14rem; padding: var(--s-5); border: 1px solid var(--line-strong); border-radius: 14px; background: linear-gradient(145deg, color-mix(in srgb, var(--navy-soft) 52%, var(--bg-1)), var(--bg-1)); }
body .tml-ct-brief .tml-brief-num { display: block; margin-bottom: var(--s-5); color: var(--accent); font-family: var(--font-mono); font-size: var(--text-label); letter-spacing: var(--tracking-label); }
body .tml-ct-brief .tml-brief-card h3 { margin: 0 0 var(--s-3); font-family: var(--font-display); font-size: 1.25rem; line-height: 1.12; letter-spacing: var(--tracking-tight); color: var(--ink-1); }
body .tml-ct-brief .tml-brief-card p { margin: 0; color: var(--ink-2); line-height: 1.55; }
body .tml-ct-brief .tml-ct-brief-foot { max-width: 70ch; margin-top: var(--s-6) !important; padding-top: var(--s-5); border-top: 1px solid var(--line); color: var(--ink-3); line-height: 1.6; }

@media (max-width: 860px) {
  body .tml-ct-grid { flex-direction: column !important; row-gap: var(--s-8) !important; }
  body .tml-ct-grid > .et_pb_column { width: 100% !important; }
  .ct-project-options { grid-template-columns: 1fr; }
  body .tml-ct-brief .tml-brief-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body .vert-set.et_pb_group { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  body .tml-ct-verticals .vert-set.et_pb_group { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  body .tml-ct-brief .tml-brief-grid { grid-template-columns: 1fr; }
  body .vert-set.et_pb_group { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body .tml-ct-verticals .vert-set.et_pb_group { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* <<< contact */

/* >>> legal */
/* ============================================================
   Legal-layout pages (Astro layouts/Legal.astro): /privacy/ /terms/ /cookies/ /refunds/ /sitemap/
   ============================================================ */
body .tml-legal.et_pb_section { padding: calc(var(--header-h) + var(--s-12)) 0 var(--s-16); }
body .tml-legal .legal-head.et_pb_group {
  display: flex; flex-direction: column; gap: 0 !important; max-width: 70ch; font-size: var(--text-base);
  margin-bottom: var(--s-8) !important; padding-bottom: var(--s-6); border-bottom: 1px solid var(--line);
}
body .tml-legal .legal-label { margin-bottom: var(--s-3) !important; }
body .tml-legal .legal-h1 { margin: 0 !important; }
body .tml-legal .legal-h1 .et_pb_module_header { font-size: var(--text-display-2); line-height: 1.05; }
body .tml-legal .legal-updated { margin-top: var(--s-3) !important; }
body .tml-legal .legal-updated p { font-size: var(--text-sm); color: var(--ink-3); }
body .tml-legal .legal-body.et_pb_group { display: flex; flex-direction: column; gap: 0 !important; max-width: 70ch; font-size: var(--text-base); }
body .tml-legal .et_pb_column { gap: 0 !important; }
body .tml-legal .legal-copy.et_pb_text { color: var(--ink-2); font-size: var(--text-base); line-height: 1.75; }
body .tml-legal .legal-copy.et_pb_text p { margin-bottom: var(--s-4); text-wrap: pretty; font-size: var(--text-base); line-height: 1.75; padding-bottom: 0; }
body .tml-legal .legal-copy ul { margin: 0 0 var(--s-4); padding: 0 0 0 1.25rem; display: grid; gap: var(--s-2); }
body .tml-legal .legal-copy li { padding-left: 0.25rem; line-height: 1.75; }
body .tml-legal .legal-copy a { color: var(--accent); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
[data-theme='light'] .tml-legal .legal-copy a { color: var(--accent-strong); }
body .tml-legal .legal-copy strong { color: var(--ink-1); font-weight: 700; }
body .tml-legal .legal-copy h3 { font-family: var(--font-display); font-weight: 800; font-size: 1.17em; line-height: var(--leading-display); letter-spacing: var(--tracking-display); color: var(--ink-1); text-wrap: balance; margin: 0; padding: 0; }
/* Astro: the preceding p's s-4 bottom margin collapses into the h2's s-8 top margin; flex items do not collapse, so subtract it */
body .tml-legal .legal-h2 { margin: calc(var(--s-8) - var(--s-4)) 0 var(--s-3) !important; }
body .tml-legal .legal-body > .legal-h2:first-child { margin-top: 0 !important; }
body .tml-legal .legal-h2 .et_pb_module_header { font-family: var(--font-display); font-weight: 700; font-size: var(--text-xl); color: var(--ink-1); line-height: 1.2; }
/* <<< legal */

/* >>> thankyou */
/* ============================================================
   /thank-you/ (Astro pages/thank-you.astro)
   ============================================================ */
body .tml-ty.et_pb_section {
  min-height: 80dvh; display: flex; flex-direction: column; justify-content: center; text-align: center;
  padding: calc(var(--header-h) + var(--s-12)) 0 var(--s-16);
}
body .tml-ty .et_pb_row { margin: 0 auto; }
body .tml-ty .et_pb_column { gap: 0 !important; }
body .tml-ty .tml-ty-col { text-align: center; }
body .tml-ty .ty-check.et_pb_svg { color: var(--accent); margin: 0 auto var(--s-4) !important; width: 48px; }
.ty-check .et_pb_svg_inner, .ty-check svg { display: block; width: 48px; height: 48px; margin: 0; }
body .tml-ty .ty-h1 { margin: 0 !important; }
body .tml-ty .ty-h1 .et_pb_module_header { font-size: var(--text-display-2); }
body .tml-ty .ty-sub { margin: var(--s-3) auto var(--s-8) !important; }
body .tml-ty .ty-sub p { color: var(--ink-2); max-width: 42ch; margin: 0 auto; }
body .tml-ty .tml-ty-actions { justify-content: center; }
body .tml-ty .ty-link p { margin: 0; font-size: var(--text-sm); line-height: var(--leading-body); }
body .tml-ty a.tml-ty-link { font-size: var(--text-sm); font-weight: 600; color: var(--ink-2); }
.tml-ty a.tml-ty-link span { color: var(--accent); }
body .tml-ty a.tml-ty-link:hover { color: var(--ink-1); }
/* <<< thankyou */

/* >>> 404 */
/* ============================================================
   /404/ (Astro pages/404.astro). Native Heading/Text modules; served on real 404s
   via a template_redirect hook (functions.php) so the true 404 status stays intact.
   ============================================================ */
body .tml-nf.et_pb_section {
  min-height: 86dvh; display: flex; flex-direction: column; justify-content: center; text-align: center;
  padding: calc(var(--header-h) + var(--s-12)) 0 var(--s-16);
}
body .tml-nf .et_pb_row { margin: 0 auto; }
body .tml-nf .et_pb_column { gap: 0 !important; }
body .tml-nf .tml-nf-col { text-align: center; }
body .tml-nf .nf-code { margin: 0 !important; }
body .tml-nf .nf-code .et_pb_module_header {
  font-family: var(--font-display); font-weight: 800; font-size: clamp(5rem, 18vw, 12rem);
  line-height: 0.9; letter-spacing: var(--tracking-tight); color: var(--accent); opacity: 0.92;
}
body .tml-nf .nf-h1 { margin: var(--s-2) 0 0 !important; }
body .tml-nf .nf-h1 .et_pb_module_header { font-size: var(--text-display-3); }
body .tml-nf .nf-sub { margin: var(--s-3) auto var(--s-6) !important; }
body .tml-nf .nf-sub,
body .tml-nf .nf-sub .et_pb_text_inner,
body .tml-nf .nf-sub p { width: 100%; color: var(--ink-2); max-width: none; margin-left: auto; margin-right: auto; text-align: center !important; }
body .tml-nf .nf-links-wrap { margin: 0 0 var(--s-8) !important; }
.nf-links {
  display: flex; flex-wrap: wrap; justify-content: center; align-items: baseline;
  gap: var(--s-2) var(--s-5);
}
.nf-links a { font-size: var(--text-sm); font-weight: 600; color: var(--ink-2); transition: color var(--dur-fast) var(--ease-out); }
.nf-links a span { color: var(--accent); }
.nf-links a:hover { color: var(--ink-1); }
body .tml-nf .tml-nf-actions { justify-content: center; }
body .tml-nf .nf-back p { margin: 0; font-size: var(--text-sm); line-height: var(--leading-body); }
body .tml-nf a.tml-nf-link { font-size: var(--text-sm); font-weight: 600; color: var(--ink-2); }
.tml-nf a.tml-nf-link span { color: var(--accent); }
body .tml-nf a.tml-nf-link:hover { color: var(--ink-1); }
/* <<< 404 */

/* >>> hi */
/* ============================================================
   /home-improvement-biz-owners/ (landing-page/home-improvement/index.html). Standalone campaign
   page: own header/footer/design (light theme, Inter, navy/orange), NOT the site's dark tokens.
   Scoped entirely under .tml-hi so nothing here can bleed into other pages. Class names below are
   the original source's classes with an "hi-" prefix; layout/values ported ~1:1 from that file.

   Divi wrapper nuance: a Group module renders as a plain div (no extra wrapper), a Text module
   wraps its HTML in one extra .et_pb_text_inner div, an Image module wraps <img> in
   .et_pb_image_wrap, a Heading module wraps text in .et_pb_module_header. Where a Text module's
   raw HTML contains its own named wrapper div (e.g. .hi-number-card) that needs to be a direct grid
   child, the .et_pb_text_inner in between is set to display:contents so it does not count as an
   extra layout level; that is called out at each grid/flex container below.
   ============================================================ */
body .tml-hi.et_pb_section { padding: 0; background: #fffdf8; }
body .tml-hi .et_pb_module { margin: 0; padding: 0; }
/* Divi sets a direct `color` on every Text module itself (.et_pb_bg_layout_light default), which
   always wins over any color set on an ancestor Group -- breaks plain CSS inheritance for any text
   whose color was meant to come from a wrapping dark/light section. Reset it here so inheritance
   works normally again; every explicit color set below (on a p/span/strong/group) still applies on
   top of this, same as if Divi had not touched color in the first place. */
body .tml-hi .et_pb_text { color: inherit; }
body .tml-hi .et_pb_row, body .tml-hi .et_pb_column { margin: 0; padding: 0; gap: 0 !important; }
body .tml-hi .et_pb_group { margin: 0; padding: 0; gap: 0 !important; }
/* Divi's own .et_flex_group CSS defaults --flex-direction to column; every nat.py group() call using
   display='flex' on this page wants a horizontal row unless a rule below sets flex-direction itself
   (higher-specificity longhand always wins over this variable reset, so those stay column). */
body .tml-hi .et_flex_group { --flex-direction: row; }

.tml-hi {
  --hi-navy: #121a4d;
  --hi-ink: #17203f;
  --hi-muted: #66708b;
  --hi-orange: #f45a2a;
  --hi-orange-deep: #d94017;
  --hi-cream: #f7f5ef;
  --hi-paper: #fffdf8;
  --hi-line: rgba(18, 26, 77, .13);
  --hi-shadow: 0 24px 70px rgba(18, 26, 77, .11);
  --hi-radius: 24px;
  --hi-max: 1160px;
  color: var(--hi-ink);
  background: var(--hi-paper);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 17px;
  line-height: 1.62;
  -webkit-font-smoothing: antialiased;
}
.tml-hi img { max-width: 100%; display: block; }
.tml-hi a { color: inherit; text-decoration: none; }
body .tml-hi .hi-wrap { width: min(calc(100% - 40px), var(--hi-max)); margin-left: auto; margin-right: auto; }
.tml-hi h1, .tml-hi h2, .tml-hi h3, .tml-hi p { margin-top: 0; }

/* ---- header ---- */
body .tml-hi .hi-header.et_pb_group { position: sticky; top: 0; z-index: 10; display: block; border-bottom: 1px solid rgba(18, 26, 77, .08); background: rgba(255, 253, 248, .92); backdrop-filter: blur(16px); }
body .tml-hi .hi-nav.et_pb_group { display: flex; align-items: center; justify-content: space-between; min-height: 72px; gap: 24px !important; }
body .tml-hi .hi-brand-lockup.et_pb_group { display: flex; align-items: center; gap: 14px !important; min-width: 0; }
body .tml-hi .hi-brand.et_pb_group { display: inline-flex; align-items: flex-start; width: 104px; height: 54px; overflow: hidden; }
.tml-hi .hi-brand-mark.et_pb_image, .tml-hi .hi-brand-mark .et_pb_image_wrap { display: block; width: 104px; margin: 0; }
.tml-hi .hi-brand-mark img { display: block; width: 104px; height: auto; }
body .tml-hi .hi-brand-wordmark.et_pb_group { display: inline-flex; align-items: center; width: min(205px, 20vw); overflow: hidden; }
.tml-hi .hi-wordmark-img.et_pb_image, .tml-hi .hi-wordmark-img .et_pb_image_wrap { display: block; width: 100%; margin: 0; }
.tml-hi .hi-wordmark-img img { display: block; width: 100%; height: auto; }
body .tml-hi .hi-nav-links.et_pb_group { display: flex; align-items: center; gap: 8px !important; color: var(--hi-muted); font-size: 12px; font-weight: 850; letter-spacing: .08em; }
.tml-hi .hi-nav-links > .et_pb_text, .tml-hi .hi-nav-links .et_pb_text_inner, .tml-hi .hi-nav-links .et_pb_text_inner > p { display: contents; }
.tml-hi .hi-nav-links a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 12px; border: 1px solid transparent; border-radius: 999px; text-transform: uppercase; }
.tml-hi .hi-nav-links a:hover, .tml-hi .hi-nav-links a:focus-visible { color: var(--hi-navy); border-color: rgba(18, 26, 77, .16); background: #fff; outline: none; }
body .tml-hi .hi-nav-cta-wrap.et_pb_text { flex: 0 0 auto; }
.tml-hi .hi-nav-cta-wrap .et_pb_text_inner { display: contents; }

body .tml-hi a.hi-button, body .tml-hi a.hi-nav-cta {
  display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 20px;
  border: 1px solid transparent; border-radius: 999px; color: #fff; background: var(--hi-orange);
  box-shadow: 0 12px 24px rgba(244, 90, 42, .22); font-size: 15px; font-weight: 850;
  transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
}
body .tml-hi a.hi-button:hover, body .tml-hi a.hi-nav-cta:hover { color: #fff; background: var(--hi-orange-deep); box-shadow: 0 16px 30px rgba(244, 90, 42, .28); transform: translateY(-2px); }
body .tml-hi a.hi-button.hi-secondary { color: var(--hi-navy); background: transparent; border-color: rgba(18, 26, 77, .25); box-shadow: none; }
body .tml-hi a.hi-button.hi-secondary:hover { color: var(--hi-navy); background: #fff; border-color: var(--hi-navy); box-shadow: none; }

/* ---- hero ---- */
body .tml-hi .hi-hero.et_pb_group { display: block; overflow: hidden; padding: 70px 0 86px; background: var(--hi-cream); }
body .tml-hi .hi-hero-grid.et_pb_group { display: grid; grid-template-columns: .88fr 1.12fr; align-items: center; gap: 60px !important; }
body .tml-hi .hi-hero-copy.et_pb_group { display: block; }
.tml-hi .hi-eyebrow, .tml-hi .hi-kicker { color: var(--hi-orange-deep); font-size: 13px; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.tml-hi .hi-eyebrow p, .tml-hi .hi-kicker p { display: inline-flex; align-items: center; gap: 9px; margin: 0; font: inherit; color: inherit; letter-spacing: inherit; text-transform: inherit; }
.tml-hi .hi-eyebrow p::before, .tml-hi .hi-kicker p::before { content: ""; width: 24px; height: 2px; background: var(--hi-orange); }
body .tml-hi .hi-h1 { margin: 0 0 22px !important; }
body .tml-hi .hi-h1 .et_pb_module_header { max-width: 600px; color: var(--hi-navy); font-size: clamp(42px, 5.2vw, 72px); line-height: .99; letter-spacing: -.055em; }
body .tml-hi .hi-hero-lede { margin: 0 0 28px !important; }
body .tml-hi .hi-hero-lede p { max-width: 540px; margin: 0; color: #4f5874; font-size: 20px; line-height: 1.62; }
body .tml-hi .hi-hero-actions.et_pb_group { display: flex; flex-wrap: wrap; gap: 12px !important; margin-bottom: 22px; }
.tml-hi .hi-hero-btn .et_pb_text_inner, .tml-hi .hi-hero-btn2 .et_pb_text_inner { display: contents; }
.tml-hi .hi-hero-btn p, .tml-hi .hi-hero-btn2 p { margin: 0; }
.tml-hi .hi-micro-proof p .et_pb_text_inner { display: contents; }
body .tml-hi .hi-micro-proof { display: flex; flex-wrap: wrap; gap: 12px 18px; color: #59627c; font-size: 14px; font-weight: 700; }
.tml-hi .hi-micro-proof span { display: inline-flex; align-items: center; gap: 7px; }
.tml-hi .hi-micro-proof span::before { content: "\2713"; display: inline-grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; color: #fff; background: var(--hi-navy); font-size: 11px; }
body .tml-hi .hi-hero-visual.et_pb_group { position: relative; display: block; }
.tml-hi .hi-hero-image.et_pb_image, .tml-hi .hi-hero-image .et_pb_image_wrap { display: block; width: 100%; margin: 0; position: relative; z-index: 1; }
.tml-hi .hi-hero-image img { width: 100%; aspect-ratio: 1.32 / 1; object-fit: cover; border-radius: 30px; box-shadow: var(--hi-shadow); transform: scaleX(-1); }
.tml-hi .hi-hero-visual::after { content: ""; position: absolute; z-index: 0; inset: 18px -18px -18px 18px; border: 1px solid rgba(244, 90, 42, .34); border-radius: 30px; pointer-events: none; }
body .tml-hi .hi-hero-note-wrap { position: absolute; right: -22px; bottom: 28px; z-index: 1; width: 190px; }
.tml-hi .hi-hero-note { padding: 16px; border: 1px solid rgba(255,255,255,.8); border-radius: 17px; color: #fff; background: rgba(18, 26, 77, .93); box-shadow: 0 18px 40px rgba(18, 26, 77, .22); }
.tml-hi .hi-hero-note strong { display: block; margin-bottom: 3px; font-size: 20px; line-height: 1.1; }
.tml-hi .hi-hero-note p { display: contents; } /* wpautop inserts an empty <p> between strong and the ul; drop it so it adds no extra gap. */
.tml-hi .hi-hero-flow { display: grid; gap: 7px; margin: 10px 0 0; padding: 0; color: #cbd2ed; font-size: 13px; line-height: 1.35; list-style: none; }
.tml-hi .hi-hero-flow li { display: flex; align-items: flex-start; gap: 8px; }
.tml-hi .hi-hero-flow li::before { width: 6px; height: 6px; flex: 0 0 6px; margin-top: .48em; border-radius: 50%; background: var(--hi-orange); content: ""; }

/* ---- logo row ---- */
body .tml-hi .hi-logo-row.et_pb_group { display: block; padding: 23px 0; border-bottom: 1px solid var(--hi-line); color: #7b8399; font-size: 12px; font-weight: 800; letter-spacing: .08em; text-align: center; text-transform: uppercase; }
body .tml-hi .hi-logo-row-label { margin: 0 !important; }
body .tml-hi .hi-service-tags.et_pb_group { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 22px !important; width: 100%; margin-top: 14px; }
body .tml-hi .hi-service-tag.et_pb_group { display: inline-flex; align-items: center; gap: 8px !important; padding: 2px 0; }
.tml-hi .hi-service-icon.et_pb_svg { width: 16px; height: 16px; }
.tml-hi .hi-service-icon .et_pb_svg_inner, .tml-hi .hi-service-icon svg { width: 16px; height: 16px; display: block; color: var(--hi-orange-deep); stroke: currentColor; fill: none; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
body .tml-hi .hi-service-label { margin: 0 !important; }
.tml-hi .hi-service-label p { margin: 0; color: var(--hi-ink); font-size: 16px; font-weight: 800; }

/* ---- generic section rhythm ---- */
body .tml-hi .hi-sec.et_pb_group { display: block; padding: 104px 0; }
body .tml-hi .hi-section-head.et_pb_group { display: block; max-width: 100%; margin-bottom: 42px; }
body .tml-hi .hi-h2 { margin: 12px 0 0 !important; }
body .tml-hi .hi-h2 .et_pb_module_header { max-width: 100%; color: var(--hi-navy); font-size: clamp(34px, 4vw, 54px); line-height: 1.02; letter-spacing: -.045em; }
body .tml-hi .hi-shead-p { margin: 18px 0 0 !important; }
body .tml-hi .hi-shead-p p { max-width: 100%; margin: 0; color: var(--hi-muted); }

/* ---- pain ---- */
body .tml-hi .hi-pain-grid.et_pb_group { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px !important; }
body .tml-hi .hi-pain-card.et_pb_group { display: block; min-height: 235px; padding: 26px; border: 1px solid var(--hi-line); border-radius: var(--hi-radius); background: #fff; }
body .tml-hi .hi-icon-box.et_pb_group { display: grid; place-items: center; width: 48px; height: 48px; margin-bottom: 20px; border-radius: 14px; color: var(--hi-orange); background: #fff0eb; }
.tml-hi .hi-icon.et_pb_svg { width: 25px; height: 25px; }
.tml-hi .hi-icon .et_pb_svg_inner, .tml-hi .hi-icon svg { width: 25px; height: 25px; display: block; stroke: currentColor; fill: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
body .tml-hi .hi-pain-h3 { margin: 0 0 9px !important; }
body .tml-hi .hi-pain-h3 .et_pb_module_header { color: var(--hi-navy); font-size: 20px; letter-spacing: -.025em; }
.tml-hi .hi-pain-p p { margin: 0; color: var(--hi-muted); font-size: 16px; }

body .tml-hi .hi-insight-visual.et_pb_group { display: grid; grid-template-columns: .92fr 1.08fr; gap: 16px !important; align-items: stretch; margin-top: 24px; }
.tml-hi .hi-insight-img.et_pb_image, .tml-hi .hi-insight-img .et_pb_image_wrap { display: block; height: 100%; margin: 0; }
.tml-hi .hi-insight-img img { width: 100%; height: 100%; min-height: 300px; border-radius: var(--hi-radius); object-fit: cover; }
body .tml-hi .hi-insight-copy.et_pb_group { display: flex; flex-direction: column; justify-content: center; padding: 34px; border-radius: var(--hi-radius); color: #fff; background: var(--hi-navy); }
body .tml-hi .hi-insight-kicker { color: #ff7043; margin-bottom: 15px !important; }
body .tml-hi .hi-insight-h3, body .tml-hi .hi-insight-h3b { margin: 0 0 13px !important; }
body .tml-hi .hi-insight-h3 .et_pb_module_header, body .tml-hi .hi-insight-h3b .et_pb_module_header { max-width: 560px; color: #fff; font-size: clamp(28px, 3vw, 42px); line-height: 1.06; }
body .tml-hi .hi-insight-p p { max-width: 600px; margin: 0; color: #d8ddef; font-size: 17px; }

/* ---- gaps ---- */
body .tml-hi .hi-gaps.et_pb_group { padding-top: 0; background: #fff; }
body .tml-hi .hi-gap-grid.et_pb_group { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px !important; }
body .tml-hi .hi-gap-card.et_pb_group { display: flex; flex-direction: column; min-height: 350px; padding: 24px; border: 1px solid var(--hi-line); border-radius: var(--hi-radius); background: var(--hi-cream); }
body .tml-hi .hi-gap-label { margin-bottom: 32px !important; }
.tml-hi .hi-gap-label p { display: inline-block; margin: 0; color: var(--hi-orange-deep); font-size: 12px; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
body .tml-hi .hi-gap-h3 { margin: 0 0 10px !important; }
body .tml-hi .hi-gap-h3 .et_pb_module_header { color: var(--hi-navy); font-size: 20px; line-height: 1.1; letter-spacing: -.03em; }
.tml-hi .hi-gap-p p { margin: 0; color: var(--hi-muted); font-size: 16px; }
body .tml-hi .hi-gap-response.et_pb_group { display: block; margin-top: auto; padding: 15px; border-radius: 13px; color: #fff; background: var(--hi-navy); }
body .tml-hi .hi-gap-response-label { margin-bottom: 5px !important; }
.tml-hi .hi-gap-response-label p { display: block; margin: 0; color: #ff7043; font-size: 12px; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.tml-hi .hi-gap-response-txt p { display: block; margin: 0; font-size: 15px; line-height: 1.35; font-weight: 700; }

body .tml-hi .hi-gap-proof.hi-insight-visual { margin-top: 24px; }

body .tml-hi .hi-numbers-panel.et_pb_group { display: block; margin-top: 36px; padding: 36px; border-radius: var(--hi-radius); color: #fff; background: var(--hi-navy); box-shadow: var(--hi-shadow); }
body .tml-hi .hi-numbers-head.et_pb_group { display: grid; grid-template-columns: .9fr 1.1fr; align-items: end; gap: 42px !important; margin-bottom: 28px; }
body .tml-hi .hi-numbers-head-l.et_pb_group, body .tml-hi .hi-numbers-head-r.et_pb_group { display: block; }
.tml-hi .hi-numbers-head .hi-kicker { color: #ff7043; }
body .tml-hi .hi-numbers-h3 { margin: 10px 0 0 !important; }
body .tml-hi .hi-numbers-h3 .et_pb_module_header { max-width: 580px; color: #fff; font-size: clamp(28px, 3.4vw, 44px); line-height: 1.03; letter-spacing: -.045em; }
.tml-hi .hi-numbers-p p { margin: 0; color: #c6cbe0; font-size: 17px; line-height: 1.55; }
body .tml-hi .hi-source-note-wrap, body .tml-hi .hi-source-note-wrap2 { margin-top: 15px !important; }
.tml-hi .hi-source-note, .tml-hi p.hi-source-note { color: #b7c4ef; font-size: 12px; line-height: 1.45; margin: 0; }
body .tml-hi .hi-source-note a { color: #ff7043; text-decoration: underline; text-underline-offset: 2px; }

body .tml-hi .hi-number-grid.et_pb_group { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px !important; margin-bottom: 28px; }
.tml-hi .hi-number-card-wrap .et_pb_text_inner { display: contents; }
.tml-hi .hi-number-card { padding: 20px; border: 1px solid rgba(255,255,255,.14); border-radius: 17px; background: rgba(255,255,255,.06); }
.tml-hi .hi-number-card strong { display: block; color: var(--hi-orange); font-size: clamp(34px, 4vw, 54px); line-height: .95; letter-spacing: -.06em; }
.tml-hi .hi-number-card span { display: block; margin-top: 11px; color: #fff; font-size: 16px; font-weight: 800; line-height: 1.3; }
.tml-hi .hi-number-card small { display: block; margin-top: 13px; color: #bfc6e0; font-size: 12px; line-height: 1.45; }

body .tml-hi .hi-revenue-math.et_pb_group { display: grid; grid-template-columns: .78fr 1.22fr; align-items: center; gap: 28px !important; padding-top: 28px; border-top: 1px solid rgba(255,255,255,.14); }
body .tml-hi .hi-revenue-left.et_pb_group { display: block; }
.tml-hi .hi-revenue-left .hi-kicker { color: #ff7043; }
body .tml-hi .hi-revmath-h3 { margin: 9px 0 9px !important; }
body .tml-hi .hi-revmath-h3 .et_pb_module_header { color: #fff; font-size: clamp(25px, 3vw, 37px); line-height: 1.05; letter-spacing: -.04em; }
.tml-hi .hi-revmath-p p { margin: 0; color: #c6cbe0; font-size: 16px; line-height: 1.5; }
body .tml-hi .hi-math-controls { padding: 20px; border: 1px solid rgba(255,255,255,.14); border-radius: 17px; background: rgba(255,255,255,.06); }
.tml-hi .hi-math-fields { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.tml-hi .hi-math-field label { display: block; margin-bottom: 7px; color: #c6cbe0; font-size: 12px; font-weight: 800; line-height: 1.2; }
.tml-hi .hi-math-field input { width: 100%; min-height: 44px; padding: 0 11px; border: 1px solid rgba(255,255,255,.2); border-radius: 10px; color: var(--hi-navy); background: #fff; font: inherit; font-size: 16px; font-weight: 800; }
.tml-hi .hi-math-field input:focus { outline: 3px solid rgba(255,174,146,.45); outline-offset: 2px; }
.tml-hi .hi-math-results { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 14px; }
.tml-hi .hi-math-result { padding: 13px; border-radius: 12px; background: #fff; }
.tml-hi .hi-math-result span { display: block; color: #69728c; font-size: 12px; line-height: 1.2; }
.tml-hi .hi-math-result strong { display: block; margin-top: 5px; color: var(--hi-navy); font-size: 23px; line-height: 1; letter-spacing: -.04em; }
.tml-hi .hi-math-bars { display: grid; gap: 10px; margin-top: 17px; }
.tml-hi .hi-math-bar-row { display: grid; grid-template-columns: 128px 1fr auto; align-items: center; gap: 10px; color: #fff; font-size: 12px; font-weight: 750; }
.tml-hi .hi-math-bar-row p { display: contents; } /* wpautop inserts an empty <p> before the track div + wraps the trailing <strong> in one; unwrap both so span/track/strong stay the 3 grid items. */
.tml-hi .hi-math-bar-track { height: 9px; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.16); }
.tml-hi .hi-math-bar-fill { display: block; width: 10%; height: 100%; border-radius: inherit; background: var(--hi-orange); transition: width .18s ease; }
.tml-hi .hi-math-controls .hi-source-note { margin-top: 15px !important; }

/* ---- value stack ---- */
body .tml-hi .hi-value-stack.et_pb_group { display: block; margin-top: 34px; padding: 28px; border: 1px solid var(--hi-line); border-radius: var(--hi-radius); background: var(--hi-cream); }
body .tml-hi .hi-value-stack-head.et_pb_group { display: flex; align-items: end; justify-content: space-between; gap: 24px !important; margin-bottom: 18px; }
body .tml-hi .hi-value-head-l.et_pb_group { display: block; }
.tml-hi .hi-value-head-l .hi-kicker { color: var(--hi-orange-deep); }
body .tml-hi .hi-value-h3 { margin: 8px 0 0 !important; }
body .tml-hi .hi-value-h3 .et_pb_module_header { max-width: 520px; color: var(--hi-navy); font-size: clamp(25px, 3vw, 36px); line-height: 1.04; letter-spacing: -.04em; }
body .tml-hi .hi-value-p p { max-width: 420px; margin: 0; color: var(--hi-muted); font-size: 15px; line-height: 1.5; }
body .tml-hi .hi-value-table-wrap-txt { margin-bottom: 18px !important; }
.tml-hi .hi-value-table-wrap { overflow-x: auto; border: 1px solid var(--hi-line); border-radius: 14px; background: #fff; }
.tml-hi .hi-value-table { width: 100%; min-width: 650px; border-collapse: collapse; color: var(--hi-navy); font-size: 14px; }
.tml-hi .hi-value-table th, .tml-hi .hi-value-table td { padding: 14px 16px; border-bottom: 1px solid var(--hi-line); text-align: left; vertical-align: top; }
.tml-hi .hi-value-table th { color: var(--hi-muted); background: #f8f7f2; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }
.tml-hi .hi-value-table tbody tr:last-child td { border-bottom: 0; }
.tml-hi .hi-value-table td:first-child { width: 36%; font-weight: 850; }
.tml-hi .hi-value-table td:nth-child(2) { color: var(--hi-muted); }
.tml-hi .hi-value-table td:last-child { color: var(--hi-orange-deep); font-weight: 900; white-space: nowrap; }
.tml-hi .hi-value-footnote { margin: 0; color: var(--hi-muted); font-size: 12px; line-height: 1.45; }
body .tml-hi .hi-value-footnote a { color: var(--hi-orange-deep); text-decoration: underline; text-underline-offset: 2px; }

/* ---- system ---- */
body .tml-hi .hi-system.et_pb_group { display: block; color: #fff; background: var(--hi-navy); }
.tml-hi .hi-system .hi-kicker { color: #ff7043; }
.tml-hi .hi-system .hi-h2 .et_pb_module_header { color: #fff; }
.tml-hi .hi-system .hi-shead-p p { color: #c5d2ff; }
body .tml-hi .hi-system-grid.et_pb_group { display: grid; grid-template-columns: 1.1fr .9fr; gap: 22px !important; }
body .tml-hi .hi-system-intro.et_pb_group { display: block; padding: 36px; border: 1px solid rgba(255,255,255,.12); border-radius: var(--hi-radius); background: linear-gradient(145deg, rgba(255,255,255,.11), rgba(255,255,255,.035)); }
body .tml-hi .hi-sysintro-h3 { margin: 0 0 17px !important; }
body .tml-hi .hi-sysintro-h3 .et_pb_module_header { max-width: 560px; color: #fff; font-size: clamp(28px, 3vw, 42px); line-height: 1.08; letter-spacing: -.04em; }
body .tml-hi .hi-sysintro-p { margin: 0 0 24px !important; }
body .tml-hi .hi-sysintro-p p { max-width: 700px; margin: 0; color: #c8cde1; font-size: 17px; }
.tml-hi .hi-mini-line-wrap .et_pb_text_inner { display: contents; }
.tml-hi .hi-mini-line { display: flex; align-items: center; gap: 12px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.14); color: #fff; font-size: 15px; font-weight: 750; }
.tml-hi .hi-mini-line i { width: 9px; height: 9px; border-radius: 50%; background: #ff7043; box-shadow: 0 0 0 6px rgba(255,112,67,.13); }
body .tml-hi .hi-system-side.et_pb_group { display: grid; gap: 12px !important; }
.tml-hi .hi-system-stat-wrap .et_pb_text_inner { display: contents; }
.tml-hi .hi-system-stat { display: flex; align-items: center; gap: 18px; padding: 21px; border: 1px solid rgba(255,255,255,.13); border-radius: 18px; background: rgba(255,255,255,.07); }
.tml-hi .hi-system-stat strong { min-width: 58px; color: #ff7043; font-size: 34px; line-height: 1; letter-spacing: -.05em; }
.tml-hi .hi-system-stat span { color: #e2e5f1; font-size: 16px; font-weight: 700; }
body .tml-hi .hi-system-visual.et_pb_group { display: grid; grid-template-columns: .84fr 1.16fr; gap: 18px !important; align-items: stretch; margin-top: 22px; }
.tml-hi .hi-system-photo.et_pb_image, .tml-hi .hi-system-photo .et_pb_image_wrap { display: block; height: 100%; margin: 0; }
.tml-hi .hi-system-photo img { min-height: 285px; width: 100%; height: 100%; object-fit: cover; border-radius: 20px; }
body .tml-hi .hi-visual-caption.et_pb_group { display: flex; flex-direction: column; justify-content: center; padding: 30px; border-radius: 20px; color: #fff; background: #202b65; }
.tml-hi .hi-vcap-inner .et_pb_text_inner, .tml-hi .hi-vcap-inner .et_pb_text_inner > p { display: contents; }
.tml-hi .hi-vcap-inner .hi-caption-label { display: block; margin-bottom: 18px; color: #ff7043; font-size: 11px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.tml-hi .hi-vcap-inner strong { display: block; max-width: 360px; margin-bottom: 9px; font-size: 24px; line-height: 1.08; letter-spacing: -.035em; }
.tml-hi .hi-vcap-inner span { max-width: 520px; color: #c5d2ff; font-size: 16px; }

/* ---- deliverables ---- */
body .tml-hi .hi-deliverables.et_pb_group { background: #fff; }
body .tml-hi .hi-deliverable-grid.et_pb_group { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px !important; }
body .tml-hi .hi-deliverable.et_pb_group { position: relative; display: block; min-height: 210px; padding: 26px; border: 1px solid var(--hi-line); border-radius: var(--hi-radius); background: var(--hi-paper); }
.tml-hi .hi-deliverable::before { content: ""; position: absolute; top: 0; left: 26px; width: 38px; height: 4px; border-radius: 0 0 5px 5px; background: var(--hi-orange); }
body .tml-hi .hi-deliverable-icon.et_pb_group { display: grid; place-items: center; width: 39px; height: 39px; margin-bottom: 15px; border-radius: 12px; color: var(--hi-navy); background: #e7e9f4; }
.tml-hi .hi-deliverable-icon .hi-icon svg { width: 22px; height: 22px; stroke-width: 1.7; }
body .tml-hi .hi-count-wrap { margin: 10px 0 16px !important; }
.tml-hi .hi-count { color: var(--hi-navy); font-size: 38px; font-weight: 900; line-height: 1; letter-spacing: -.06em; }
body .tml-hi .hi-del-h3 { margin: 0 0 8px !important; }
body .tml-hi .hi-del-h3 .et_pb_module_header { color: var(--hi-navy); font-size: 20px; }
.tml-hi .hi-del-p p { margin: 0; color: var(--hi-muted); font-size: 16px; }

/* ---- niches ---- */
body .tml-hi .hi-niches.et_pb_group { padding-top: 0; background: #fff; }
body .tml-hi .hi-niche-wrap.et_pb_group { display: grid; grid-template-columns: .76fr 1.24fr; align-items: center; gap: 52px !important; }
body .tml-hi .hi-niche-left.et_pb_group { display: block; }
body .tml-hi .hi-niche-h2 { margin: 12px 0 16px !important; }
body .tml-hi .hi-niche-h2 .et_pb_module_header { color: var(--hi-navy); font-size: clamp(32px, 4vw, 50px); line-height: 1.02; letter-spacing: -.045em; }
body .tml-hi .hi-niche-left .hi-shead-p p, body .tml-hi .hi-niche-p p { color: var(--hi-muted); }
body .tml-hi .hi-carousel-shell.et_pb_group { display: block; min-width: 0; padding: 20px; border: 1px solid var(--hi-line); border-radius: var(--hi-radius); background: var(--hi-cream); }
body .tml-hi .hi-carousel-head.et_pb_group { display: flex; align-items: center; justify-content: space-between; gap: 18px !important; margin-bottom: 14px; }
body .tml-hi .hi-carousel-head-label { margin: 0 !important; }
.tml-hi .hi-carousel-head-label p { margin: 0; color: var(--hi-navy); font-size: 14px; font-weight: 850; }
.tml-hi .hi-carousel-controls-wrap .et_pb_text_inner { display: contents; }
.tml-hi .hi-carousel-controls { display: flex; gap: 7px; }
.tml-hi .hi-carousel-controls button { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid var(--hi-line); border-radius: 50%; color: var(--hi-navy); background: #fff; cursor: pointer; font-size: 19px; font-family: inherit; }
.tml-hi .hi-carousel-controls button:hover, .tml-hi .hi-carousel-controls button:focus-visible { color: #fff; background: var(--hi-navy); outline: none; }
body .tml-hi .hi-niche-carousel.et_pb_group { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(220px, 43%); gap: 12px !important; overflow-x: auto; padding: 2px 2px 10px; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: #c4c7d6 transparent; }
body .tml-hi .hi-niche.et_pb_group { display: block; min-height: 230px; padding: 23px; border: 1px solid var(--hi-line); border-radius: 18px; color: var(--hi-navy); background: #fff; scroll-snap-align: start; }
body .tml-hi .hi-niche-icon.et_pb_group { display: grid; place-items: center; width: 52px; height: 52px; margin-bottom: 32px; border-radius: 15px; color: var(--hi-orange-deep); background: #fff0eb; }
.tml-hi .hi-niche-icon .hi-icon svg { width: 27px; height: 27px; }
body .tml-hi .hi-niche-tag { margin-bottom: 6px !important; }
.tml-hi .hi-niche-tag p, .tml-hi .hi-niche-tag { display: block; color: var(--hi-orange-deep); font-size: 12px; font-weight: 900; letter-spacing: .11em; margin: 0; }
body .tml-hi .hi-niche-h3 { margin: 0 0 8px !important; }
body .tml-hi .hi-niche-h3 .et_pb_module_header { color: var(--hi-navy); font-size: 22px; line-height: 1.1; letter-spacing: -.025em; }
.tml-hi .hi-niche-p2 p { margin: 0; color: var(--hi-muted); font-size: 15px; }

/* ---- process ---- */
body .tml-hi .hi-process.et_pb_group { background: var(--hi-cream); }
body .tml-hi .hi-workflow-visual.et_pb_group { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: 0 !important; padding: 28px 18px; border: 1px solid rgba(18,26,77,.11); border-radius: 21px; background: #fff; }
.tml-hi .hi-workflow-visual::before { content: ""; position: absolute; top: 50px; right: 9%; left: 9%; height: 2px; background: #d8dbea; }
.tml-hi .hi-workflow-node-wrap .et_pb_text_inner { display: contents; }
.tml-hi .hi-workflow-node { position: relative; z-index: 1; display: grid; justify-items: center; gap: 10px; padding: 0 8px; color: var(--hi-navy); text-align: center; }
.tml-hi .hi-workflow-node p { display: contents; } /* wpautop wraps the loose strong+span in a <p>; unwrap it so both stay direct grid items. */
.tml-hi .hi-node-icon { display: grid; place-items: center; width: 55px; height: 55px; border: 6px solid #fff; border-radius: 50%; color: #fff; background: var(--hi-orange); box-shadow: 0 0 0 1px rgba(244,90,42,.45); font-size: 12px; font-weight: 900; }
.tml-hi .hi-workflow-node:nth-child(3) .hi-node-icon { color: #fff; background: var(--hi-navy); box-shadow: 0 0 0 1px rgba(18,26,77,.4); }
.tml-hi .hi-workflow-node strong { font-size: 15px; line-height: 1.1; }
.tml-hi .hi-workflow-node span { color: var(--hi-muted); font-size: 14px; line-height: 1.25; }

/* ---- proof ---- */
body .tml-hi .hi-proof.et_pb_group { background: #fff; }
body .tml-hi .hi-proof-grid.et_pb_group { display: grid; grid-template-columns: 1fr 1fr; gap: 60px !important; align-items: center; }
body .tml-hi .hi-proof-copy.et_pb_group { display: block; }
body .tml-hi .hi-proof-h2 { margin: 12px 0 20px !important; }
body .tml-hi .hi-proof-h2 .et_pb_module_header { max-width: 540px; color: var(--hi-navy); font-size: clamp(34px, 4vw, 52px); line-height: 1.04; letter-spacing: -.05em; }
body .tml-hi .hi-proof-p { margin: 0 !important; }
body .tml-hi .hi-proof-p p { max-width: 620px; margin: 0; color: var(--hi-muted); font-size: 17px; }
body .tml-hi .hi-stats.et_pb_group { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px !important; margin-top: 29px; }
.tml-hi .hi-stat-wrap .et_pb_text_inner { display: contents; }
.tml-hi .hi-stat { padding-top: 15px; border-top: 2px solid var(--hi-orange); }
.tml-hi .hi-stat strong { display: block; color: var(--hi-navy); font-size: 30px; line-height: 1; letter-spacing: -.05em; }
.tml-hi .hi-stat span { display: block; margin-top: 7px; color: var(--hi-muted); font-size: 14px; }
body .tml-hi .hi-proof-brand.et_pb_group { display: block; width: 100%; max-width: 620px; margin-top: 28px; }
.tml-hi .hi-proof-brand-img.et_pb_image, .tml-hi .hi-proof-brand-img .et_pb_image_wrap { display: block; width: 100%; margin: 0; }
.tml-hi .hi-proof-brand-img img { display: block; width: 100%; height: auto; }
body .tml-hi .hi-proof-card.et_pb_group { display: block; padding: 32px; border-radius: var(--hi-radius); color: #fff; background: var(--hi-navy); box-shadow: var(--hi-shadow); }
.tml-hi .hi-proof-card-img.et_pb_image, .tml-hi .hi-proof-card-img .et_pb_image_wrap { display: block; margin-bottom: 24px; }
.tml-hi .hi-proof-card-img img { width: 100%; height: 180px; border-radius: 15px; object-fit: cover; }
.tml-hi .hi-proof-card-txt .et_pb_text_inner { display: contents; }
.tml-hi .hi-quote-mark { color: #ff7043; font-size: 54px; line-height: .7; }
.tml-hi .hi-proof-card-txt blockquote { margin: 16px 0 25px; font-size: 23px; line-height: 1.35; letter-spacing: -.02em; }
.tml-hi .hi-proof-card-txt cite { color: #bfc6e0; font-size: 14px; font-style: normal; }

/* ---- offer ---- */
body .tml-hi .hi-offer.et_pb_group { color: var(--hi-navy); background: #f0eee7; }
body .tml-hi .hi-offer-grid.et_pb_group { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: 55px !important; }
body .tml-hi .hi-offer-copy.et_pb_group { display: block; }
.tml-hi .hi-offer-copy .hi-kicker { color: var(--hi-orange-deep); }
body .tml-hi .hi-offer-h2 { margin: 12px 0 16px !important; }
body .tml-hi .hi-offer-h2 .et_pb_module_header { color: var(--hi-navy); font-size: clamp(36px, 4.4vw, 58px); line-height: 1; letter-spacing: -.055em; }
body .tml-hi .hi-offer-p { margin: 0 0 23px !important; }
body .tml-hi .hi-offer-p p { max-width: 480px; margin: 0; color: #566079; }
.tml-hi .hi-offer-btn .et_pb_text_inner { display: contents; }
.tml-hi .hi-offer-btn p { margin: 0; }
.tml-hi .hi-offer .hi-button { color: #fff; background: var(--hi-orange-deep); box-shadow: 0 12px 24px rgba(217,64,23,.18); }
.tml-hi .hi-offer .hi-button:hover { color: #fff; background: #b93412; }
.tml-hi .hi-offer-card .et_pb_text_inner { display: contents; }
body .tml-hi .hi-offer-card.et_pb_text { display: block; padding: 32px; border: 1px solid rgba(18,26,77,.12); border-radius: var(--hi-radius); background: #fff; box-shadow: 0 22px 55px rgba(18,26,77,.10); }
.tml-hi .hi-offer-card .hi-price-label { color: var(--hi-orange-deep); font-size: 13px; font-weight: 850; letter-spacing: .02em; }
.tml-hi .hi-offer-card .hi-price { display: flex; align-items: baseline; gap: 7px; margin: 6px 0 19px; }
.tml-hi .hi-offer-card .hi-price strong { font-size: clamp(52px, 7vw, 78px); line-height: .9; letter-spacing: -.07em; }
.tml-hi .hi-offer-card .hi-price span { font-size: 17px; font-weight: 800; }
.tml-hi .hi-offer-card ul { display: grid; gap: 10px; margin: 0; padding: 20px 0 0; border-top: 1px solid var(--hi-line); list-style: none; }
.tml-hi .hi-offer-card li { display: flex; gap: 10px; font-size: 16px; font-weight: 700; }
.tml-hi .hi-offer-card li::before { content: "\2713"; color: var(--hi-orange-deep); font-weight: 950; }
.tml-hi .hi-offer-card .hi-rate-note { margin: 20px 0 0; color: var(--hi-muted); font-size: 14px; line-height: 1.45; }

/* ---- faq ---- */
body .tml-hi .hi-faq.et_pb_group { background: var(--hi-cream); }
.tml-hi .hi-faq-list-wrap .et_pb_text_inner { display: contents; }
.tml-hi .hi-faq-list { max-width: 840px; margin: 0 auto; }
.tml-hi .hi-faq-list details { border-top: 1px solid var(--hi-line); }
.tml-hi .hi-faq-list details:last-child { border-bottom: 1px solid var(--hi-line); }
.tml-hi .hi-faq-list summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 0; color: var(--hi-navy); cursor: pointer; font-size: 18px; font-weight: 850; list-style: none; }
.tml-hi .hi-faq-list summary::-webkit-details-marker { display: none; }
.tml-hi .hi-faq-list summary::after { content: "+"; color: var(--hi-orange); font-size: 25px; font-weight: 500; }
.tml-hi .hi-faq-list details[open] summary::after { content: "\2212"; }
body .tml-hi .hi-faq-list details p { max-width: 820px; padding: 0 50px 22px 0; margin: 0; color: var(--hi-muted); font-size: 16px; }

/* ---- final CTA ---- */
body .tml-hi .hi-final-cta.et_pb_group { display: block; padding: 92px 0; color: #fff; background: var(--hi-navy); }
body .tml-hi .hi-finalcta-grid.et_pb_group { display: grid; grid-template-columns: 1.05fr .95fr; align-items: center; gap: 52px !important; }
body .tml-hi .hi-final-cta-copy.et_pb_group { display: block; }
.tml-hi .hi-final-cta-copy .hi-kicker { color: #ff7043; }
body .tml-hi .hi-finalcta-h2 { margin: 11px 0 16px !important; }
body .tml-hi .hi-finalcta-h2 .et_pb_module_header { max-width: 660px; font-size: clamp(35px, 4.5vw, 58px); line-height: 1; letter-spacing: -.055em; color: #fff; }
body .tml-hi .hi-finalcta-p { margin: 0 0 25px !important; }
body .tml-hi .hi-finalcta-p p { max-width: 540px; margin: 0; color: #c6cbe0; font-size: 17px; }
.tml-hi .hi-finalcta-btn .et_pb_text_inner { display: contents; }
.tml-hi .hi-finalcta-btn p { margin: 0; }
body .tml-hi .hi-final-cta-visual.et_pb_group { position: relative; display: block; }
.tml-hi .hi-finalcta-img.et_pb_image, .tml-hi .hi-finalcta-img .et_pb_image_wrap { display: block; margin: 0; }
.tml-hi .hi-finalcta-img img { width: 100%; min-height: 330px; border-radius: 26px; object-fit: cover; box-shadow: 0 24px 60px rgba(0,0,0,.25); }
body .tml-hi .hi-finalcta-note-wrap { position: absolute; bottom: 22px; left: -18px; max-width: 220px; }
.tml-hi .hi-final-cta-note { padding: 16px 18px; border: 1px solid rgba(18,26,77,.12); border-radius: 16px; color: var(--hi-navy); background: #fff; box-shadow: 0 16px 35px rgba(0,0,0,.2); }
.tml-hi .hi-final-cta-note strong { display: block; margin-bottom: 3px; font-size: 16px; line-height: 1.2; }
.tml-hi .hi-final-cta-note span { color: var(--hi-muted); font-size: 14px; line-height: 1.3; }

/* ---- footer + mobile dock ---- */
body .tml-hi .hi-footer.et_pb_group { display: block; padding: 48px 0 20px; color: #737b94; background: #0d133b; font-size: 14px; }
body .tml-hi .hi-final-cta.et_pb_group, body .tml-hi .hi-footer.et_pb_group { margin-bottom: 0 !important; }
body .tml-hi .hi-footer-row.et_pb_group { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 42px !important; }
body .tml-hi .hi-footer-brand.et_pb_group { display: flex; align-items: center; gap: 18px !important; max-width: 540px; }
body .tml-hi .hi-footer-logo-link.et_pb_group { display: inline-flex; flex: 0 0 auto; }
.tml-hi .hi-footer-logo.et_pb_image, .tml-hi .hi-footer-logo .et_pb_image_wrap { display: block; width: 150px; margin: 0; }
.tml-hi .hi-footer-logo img { width: 150px; height: auto; }
body .tml-hi .hi-footer-p p { max-width: 290px; margin: 0; color: #c6cbe0; font-size: 15px; line-height: 1.45; }
body .tml-hi .hi-footer-nav.et_pb_group { display: flex; align-items: center; justify-content: flex-end; gap: 22px !important; flex-wrap: wrap; }
.tml-hi .hi-footer-nav > .et_pb_text, .tml-hi .hi-footer-nav .et_pb_text_inner, .tml-hi .hi-footer-nav .et_pb_text_inner > p { display: contents; }
body .tml-hi .hi-footer-nav a { color: #c6cbe0; font-size: 14px; font-weight: 750; }
body .tml-hi .hi-footer-nav a:hover { color: #fff; }
body .tml-hi .hi-footer-nav a.hi-footer-cta { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 18px; border-radius: 999px; color: var(--hi-navy); background: var(--hi-orange); box-shadow: 0 10px 22px rgba(244, 90, 42, .2); }
body .tml-hi .hi-footer-nav a.hi-footer-cta:hover { color: var(--hi-navy); background: #ff7043; }
body .tml-hi .hi-footer-bottom-wrap { padding-top: 20px; margin-top: 30px; border-top: 1px solid rgba(255,255,255,.12); }
.tml-hi .hi-footer-bottom .et_pb_text_inner, .tml-hi .hi-footer-bottom .et_pb_text_inner > p { display: contents; }
body .tml-hi .hi-footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 20px; color: #8f96ad; font-size: 13px; }

body .tml-hi .hi-mobile-dock { display: none; }
.tml-hi .hi-mobile-dock .et_pb_text_inner, .tml-hi .hi-mobile-dock .et_pb_text_inner > p { display: contents; }

@media (max-width: 900px) {
  body .tml-hi .hi-hero-grid.et_pb_group, body .tml-hi .hi-system-grid.et_pb_group, body .tml-hi .hi-niche-wrap.et_pb_group,
  body .tml-hi .hi-proof-grid.et_pb_group, body .tml-hi .hi-offer-grid.et_pb_group { grid-template-columns: 1fr !important; gap: 34px !important; }
  body .tml-hi .hi-pain-grid.et_pb_group, body .tml-hi .hi-gap-grid.et_pb_group, body .tml-hi .hi-deliverable-grid.et_pb_group { grid-template-columns: repeat(2, 1fr) !important; }
  body .tml-hi .hi-insight-visual.et_pb_group { grid-template-columns: 1fr !important; }
  .tml-hi .hi-insight-img img { min-height: 250px; }
  body .tml-hi .hi-finalcta-grid.et_pb_group { grid-template-columns: 1fr !important; gap: 30px !important; }
  body .tml-hi .hi-final-cta-visual.et_pb_group { max-width: 720px; }
  body .tml-hi .hi-hero.et_pb_group { padding-top: 52px; }
  body .tml-hi .hi-hero-copy.et_pb_group { order: 1; }
  body .tml-hi .hi-hero-visual.et_pb_group { order: 2; max-width: 720px; }
  body .tml-hi .hi-hero-note-wrap { right: 12px; }
  body .tml-hi .hi-system-intro.et_pb_group { padding: 28px; }
  body .tml-hi .hi-proof-card.et_pb_group { max-width: 650px; }
  body .tml-hi .hi-brand-wordmark.et_pb_group { width: 165px; }
  body .tml-hi .hi-numbers-head.et_pb_group, body .tml-hi .hi-revenue-math.et_pb_group { grid-template-columns: 1fr !important; gap: 22px !important; }
  body .tml-hi .hi-value-stack-head.et_pb_group { display: block; }
  body .tml-hi .hi-value-p { margin-top: 13px !important; }
  body .tml-hi .hi-footer-row.et_pb_group { grid-template-columns: 1fr !important; gap: 28px !important; }
  body .tml-hi .hi-footer-nav.et_pb_group { justify-content: flex-start; }
}
@media (max-width: 680px) {
  .tml-hi .hi-wrap { width: min(calc(100% - 28px), var(--hi-max)); }
  body .tml-hi .hi-service-tags.et_pb_group { justify-content: center; gap: 11px 20px !important; }
  .tml-hi .hi-service-label p { font-size: 15px; }
  body .tml-hi .hi-nav.et_pb_group { min-height: 64px; gap: 10px !important; }
  body .tml-hi .hi-brand-lockup.et_pb_group { gap: 8px !important; flex: 1 1 auto; }
  body .tml-hi .hi-brand.et_pb_group { width: 70px; height: 38px; }
  .tml-hi .hi-brand-mark.et_pb_image, .tml-hi .hi-brand-mark .et_pb_image_wrap, .tml-hi .hi-brand-mark img { width: 70px; }
  body .tml-hi .hi-brand-wordmark.et_pb_group { width: clamp(96px, 31vw, 122px); }
  body .tml-hi .hi-nav-links.et_pb_group { display: none; }
  .tml-hi a.hi-nav-cta { min-height: 42px; padding: 0 9px; font-size: 10px; white-space: nowrap; }
  body .tml-hi .hi-sec.et_pb_group { padding: 72px 0; }
  body .tml-hi .hi-hero.et_pb_group { padding: 47px 0 72px; }
  body .tml-hi .hi-h1 .et_pb_module_header { font-size: clamp(40px, 13vw, 60px); }
  .tml-hi .hi-hero-lede p { font-size: 16px; }
  body .tml-hi .hi-hero-actions.et_pb_group { align-items: stretch; flex-direction: column; }
  .tml-hi .hi-hero-actions .hi-button { width: 100%; }
  .tml-hi .hi-hero-image img { aspect-ratio: 1 / 1; border-radius: 22px; object-position: 66% center; }
  .tml-hi .hi-hero-visual::after { inset: 10px -8px -10px 8px; border-radius: 22px; }
  body .tml-hi .hi-hero-note-wrap { right: 9px; bottom: 16px; width: 165px; }
  .tml-hi .hi-hero-note { padding: 13px; }
  .tml-hi .hi-hero-note strong { font-size: 17px; }
  body .tml-hi .hi-section-head.et_pb_group { margin-bottom: 28px; }
  body .tml-hi .hi-h2 { margin-bottom: 13px !important; }
  body .tml-hi .hi-pain-grid.et_pb_group, body .tml-hi .hi-deliverable-grid.et_pb_group, body .tml-hi .hi-gap-grid.et_pb_group { grid-template-columns: 1fr !important; }
  body .tml-hi .hi-system-visual.et_pb_group { grid-template-columns: 1fr !important; }
  .tml-hi .hi-system-photo img { min-height: 230px; }
  body .tml-hi .hi-workflow-visual.et_pb_group { grid-template-columns: 1fr !important; gap: 16px !important; padding: 20px; }
  .tml-hi .hi-workflow-visual::before { top: 9%; right: auto; bottom: 9%; left: 47px; width: 2px; height: auto; }
  .tml-hi .hi-workflow-node { grid-template-columns: 55px 1fr; justify-items: start; align-items: center; gap: 14px; text-align: left; }
  .tml-hi .hi-workflow-node span { grid-column: 2; margin-top: -18px; }
  body .tml-hi .hi-pain-card.et_pb_group, body .tml-hi .hi-deliverable.et_pb_group { min-height: 0; }
  body .tml-hi .hi-numbers-panel.et_pb_group { padding: 24px; }
  body .tml-hi .hi-number-grid.et_pb_group { grid-template-columns: 1fr !important; }
  .tml-hi .hi-math-fields, .tml-hi .hi-math-results { grid-template-columns: 1fr; }
  .tml-hi .hi-math-bar-row { grid-template-columns: 112px 1fr auto; }
  body .tml-hi .hi-carousel-shell.et_pb_group { padding: 14px; }
  body .tml-hi .hi-niche-carousel.et_pb_group { grid-auto-columns: 82%; }
  body .tml-hi .hi-stats.et_pb_group { gap: 9px !important; }
  .tml-hi .hi-stat strong { font-size: 25px; }
  body .tml-hi .hi-offer-card.et_pb_text { padding: 24px; }
  body .tml-hi .hi-value-stack.et_pb_group { padding: 22px; }
  .tml-hi .hi-value-table { min-width: 0; table-layout: fixed; font-size: 12px; }
  .tml-hi .hi-value-table th, .tml-hi .hi-value-table td { padding: 10px 8px; overflow-wrap: anywhere; }
  .tml-hi .hi-value-table td:first-child { width: 31%; }
  .tml-hi .hi-value-table td:last-child { white-space: normal; }
  .tml-hi .hi-offer-card .hi-price strong { font-size: 60px; }
  body .tml-hi .hi-footer-row.et_pb_group { grid-template-columns: 1fr !important; gap: 26px !important; }
  body .tml-hi .hi-footer-brand.et_pb_group { align-items: flex-start; flex-direction: column; gap: 14px !important; }
  body .tml-hi .hi-footer-nav.et_pb_group { justify-content: flex-start; gap: 15px 18px !important; }
  .tml-hi .hi-footer-nav a.hi-footer-cta { width: 100%; }
  body .tml-hi .hi-footer-bottom { align-items: flex-start; flex-direction: column; gap: 7px; }
  body .tml-hi .hi-final-cta.et_pb_group { padding-bottom: 126px; }
  body .tml-hi .hi-finalcta-note-wrap { right: 12px; bottom: 16px; left: 12px; max-width: none; }
  body .tml-hi .hi-mobile-dock { display: grid; grid-template-columns: 1fr 1fr 1.35fr; position: fixed; z-index: 5; right: 12px; bottom: 12px; left: 12px; gap: 4px; padding: 6px; border: 1px solid rgba(255,255,255,.55); border-radius: 17px; background: rgba(18,26,77,.94); box-shadow: 0 10px 35px rgba(18,26,77,.25); backdrop-filter: blur(10px); }
  body .tml-hi .hi-mobile-dock a { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; border-radius: 12px; color: #fff; font-size: 11px; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
  body .tml-hi .hi-mobile-dock a.hi-dock-cta { color: var(--hi-navy); background: var(--hi-orange); }
}
/* <<< hi */

/* >>> blog */
/* ============================================================
   /blog/ — Divi Blog module collection page.
   ============================================================ */
body .tml-blog-intro.et_pb_section { padding: calc(var(--header-h) + var(--s-12)) 0 var(--s-12); }
body .tml-blog-intro .tml-blog-label { margin: 0 !important; }
body .tml-blog-intro .tml-blog-h1 { margin: var(--s-4) 0 var(--s-6) !important; }
body .tml-blog-intro .tml-blog-h1 .et_pb_module_header { font-size: var(--text-display-1); max-width: 15ch; }
body .tml-blog-intro .tml-blog-lede { color: var(--ink-2); font-size: var(--text-lg); max-width: 52ch; }
body .tml-blog-intro .tml-blog-hero-photo.et_pb_image { width: 100%; max-width: 30rem; margin-left: auto; overflow: hidden; border: 1px solid var(--line); border-radius: 18px; }
body .tml-blog-intro .tml-blog-hero-photo .et_pb_image_wrap { display: block; width: 100%; }
body .tml-blog-intro .tml-blog-hero-photo img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }

body .tml-blog-rhythm.et_pb_section, body .tml-blog-feed-section.et_pb_section, body .tml-blog-cta.et_pb_section { padding: var(--section-pad) 0; border-top: 1px solid var(--line); }
body .tml-blog-rhythm-title { margin: var(--s-4) 0 var(--s-5) !important; }
body .tml-blog-rhythm-title h2, body .tml-blog-rhythm-title .et_pb_module_header { font-size: var(--text-display-2); max-width: 18ch; }
body .tml-blog-rhythm-copy { color: var(--ink-2); max-width: 70ch; line-height: 1.62; }
body .tml-blog-rhythm-copy:not(:last-child) { margin-bottom: var(--s-4) !important; }
body .tml-blog-rhythm-intro { font-size: var(--text-lg); color: var(--ink-1); }
body .tml-blog-rhythm-foot { margin-top: var(--s-6) !important; padding-top: var(--s-5); border-top: 1px solid var(--line); }
body .tml-blog-topic-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-4); margin-top: var(--s-8); }
body .tml-blog-topic-grid article { min-height: 13rem; padding: var(--s-5); border: 1px solid var(--line-strong); border-radius: 14px; background: linear-gradient(145deg, color-mix(in srgb, var(--navy-soft) 48%, var(--bg-1)), var(--bg-1)); }
body .tml-blog-topic-grid article > span { display: block; margin-bottom: var(--s-4); color: var(--accent); font-family: var(--font-mono); font-size: var(--text-label); letter-spacing: var(--tracking-label); text-transform: uppercase; }
body .tml-blog-topic-grid h3 { margin: 0 0 var(--s-3); color: var(--ink-1); font-family: var(--font-display); font-size: 1.25rem; line-height: 1.12; letter-spacing: var(--tracking-tight); }
body .tml-blog-topic-grid p { margin: 0; color: var(--ink-2); line-height: 1.55; }

body .tml-blog-feed-section .tml-blog-feedrow { margin-top: 0; margin-bottom: 0; }
body .tml-blog-feed-section .tml-sec-label { margin-bottom: var(--s-6) !important; }
body .tml-blog-feed-section .tml-blog-feed-note { margin: calc(-1 * var(--s-3)) 0 var(--s-6) !important; color: var(--ink-2); }
body .tml-blog-empty { display: grid; gap: var(--s-3); margin: 0 0 var(--s-8); padding: clamp(1.5rem, 4vw, 2.5rem); border: 1px dashed var(--line-strong); border-radius: 16px; background: radial-gradient(80% 120% at 100% 0%, var(--navy-soft), transparent 70%), var(--bg-1); }
body .tml-blog-empty-mark { color: var(--accent); font-family: var(--font-mono); font-size: var(--text-label); letter-spacing: var(--tracking-label); }
body .tml-blog-empty h3 { margin: 0; color: var(--ink-1); font-family: var(--font-display); font-size: var(--text-display-3); letter-spacing: var(--tracking-tight); }
body .tml-blog-empty p { margin: 0; color: var(--ink-2); max-width: 60ch; line-height: 1.55; }
body .tml-blog-feed-section:has(.et_pb_post) .tml-blog-empty { display: none; }
body .tml-blog-feed:has(.not-found-title) { display: none; }
/* Divi's ajax pagination wrapper defaults to a narrow block; make the feed own its article columns. */
body .tml-blog-feed .et_pb_ajax_pagination_container { display: grid; grid-template-columns: 1fr; gap: var(--s-8); }
body .tml-blog-feed .et_pb_blog_posts { display: grid !important; grid-template-columns: minmax(0, 1fr) !important; gap: var(--s-8); }
body .tml-blog-feed .et_pb_post { display: grid; grid-template-columns: minmax(12rem, 0.8fr) minmax(0, 1.2fr); grid-column: 1 / -1; width: 100% !important; max-width: none !important; float: none !important; gap: var(--s-5); padding: var(--s-5) !important; margin: 0 0 var(--s-6); border: 1px solid var(--line-strong); border-radius: 16px; background: var(--bg-1) !important; }
body .tml-blog-feed .et_pb_post:not(:has(.entry-featured-image-url)) { grid-template-columns: 1fr; }
body .tml-blog-feed .et_pb_post:last-child { margin-bottom: 0; }
body .tml-blog-feed .entry-featured-image-url { grid-row: span 3; margin: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: var(--bg-1); }
body .tml-blog-feed .entry-featured-image-url img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
body .tml-blog-feed .entry-title { margin: 0; font-family: var(--font-display); font-size: var(--text-display-3); line-height: 1.08; letter-spacing: var(--tracking-tight); }
body .tml-blog-feed .entry-title a { color: var(--ink-1) !important; }
body .tml-blog-feed .post-meta { color: var(--ink-3) !important; font-size: var(--text-xs); letter-spacing: var(--tracking-label); text-transform: uppercase; }
body .tml-blog-feed .post-content { color: var(--ink-2) !important; }
body .tml-blog-feed .post-content p { max-width: 60ch; }
body .tml-blog-feed .more-link { display: inline-flex; margin-top: var(--s-2); color: var(--ink-1); font-weight: 600; text-decoration: none; border-bottom: 1px solid var(--line-strong); }
body .tml-blog-feed .more-link:hover { color: var(--accent); border-color: var(--accent); }

body .tml-blog-cta.et_pb_section { text-align: center; }
body .tml-blog-cta .tml-blog-cta-title { margin-bottom: var(--s-3) !important; }
body .tml-blog-cta .tml-blog-cta-title h2, body .tml-blog-cta .tml-blog-cta-title .et_pb_module_header { font-size: var(--text-display-2); }
body .tml-blog-cta .tml-blog-cta-copy { color: var(--ink-2); margin-bottom: var(--s-6) !important; }
body .tml-blog-cta .tml-blog-cta-copy p { margin-inline: auto; }

/* Keep article permalinks editorial and full-width instead of inheriting Divi's sidebar shell. */
body.single-post #sidebar { display: none; }
body.single-post #main-content { padding-top: calc(var(--header-h) + var(--s-8)); }
body.single-post #main-content .container::before { display: none; }
body.single-post #left-area { width: 100%; float: none; padding-right: 0; }
body.single-post .container { width: min(calc(100% - 2 * var(--gutter)), var(--container-max)); max-width: var(--container-max); }
body.single-post .et_post_meta_wrapper,
body.single-post .entry-content { max-width: 72ch; margin-inline: auto; }
body.single-post .entry-title { font-size: var(--text-display-2); line-height: 1.05; }
body.single-post .entry-content { color: var(--ink-2); font-size: var(--text-lg); line-height: 1.7; }
body.single-post .entry-content h2,
body.single-post .entry-content h3 { margin-top: var(--s-8); color: var(--ink-1); }

@media (max-width: 860px) {
  body .tml-blog-introrow { flex-direction: column !important; row-gap: var(--s-8) !important; }
  body .tml-blog-introrow > .et_pb_column { width: 100% !important; }
  body .tml-blog-intro .tml-blog-hero-photo { margin-inline: auto; }
  body .tml-blog-topic-grid { grid-template-columns: 1fr; }
  body .tml-blog-feed .et_pb_ajax_pagination_container { grid-template-columns: 1fr; gap: var(--s-6); }
  body .tml-blog-feed .et_pb_post { grid-template-columns: 1fr; gap: var(--s-4); }
  body .tml-blog-feed .entry-featured-image-url { grid-row: auto; }
}
/* <<< blog */

/* >>> zoverrides */
/* Layout rules for Divi pages. */
/* Legacy declarations below are superseded by the shared type scale at the end. */
body .tml-hero .tml-hero-title h1,
body .tml-svc-intro .tml-svc-h1 .et_pb_module_header,
body .tml-ab-intro .tml-ab-h1 .et_pb_module_header,
body .tml-wk-intro .work-h1 .et_pb_module_header,
body .tml-ct .ct-h1 .et_pb_module_header,
body .tml-blog-intro .tml-blog-h1 .et_pb_module_header { font-size: clamp(2.25rem, 4.21vw, 4rem) !important; line-height: 1.08; }
body .tml-stats.et_pb_section { padding: var(--section-pad) 0; border-top: 1px solid var(--line); }
body .tml-stats .tml-stat-icon.et_pb_code { width: 2.6rem; height: 2.6rem; margin: 0 0 var(--s-4) !important; color: var(--accent); }
body .tml-stats .tml-stat-icon-svg { display: block; width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
body .tml-stats .tml-stat-value p { line-height: 1; }
body .tml-stats .tml-stat-copy { margin-top: var(--s-3) !important; color: var(--ink-2); }
body .tml-stats .tml-stat-copy p { max-width: 28ch; }

body .tml-trusted .tml-trusted-title h2,
body .tml-trusted .tml-trusted-title .et_pb_module_header,
body .tml-featured .tml-fw-title h2,
body .tml-featured .tml-fw-title .et_pb_module_header,
body .tml-featured .tml-fw-intro p,
body .tml-whyus .tml-whyus-title h2,
body .tml-whyus .tml-whyus-title .et_pb_module_header,
body .tml-blog-intro .tml-blog-lede p,
body .tml-blog-rhythm-title h2,
body .tml-blog-rhythm-title .et_pb_module_header,
body .tml-blog-rhythm-copy p,
body .tml-blog-feed-note p,
body .tml-blog-cta .tml-blog-cta-title h2,
body .tml-blog-cta .tml-blog-cta-title .et_pb_module_header,
body .tml-blog-cta .tml-blog-cta-copy p { width: 100%; max-width: none; }
body .tml-trusted .tml-trusted-title h2 { font-size: clamp(2.6rem, 5vw, 5.2rem); line-height: 1; }
body .tml-featured .tml-fw-title { margin: var(--s-3) 0 var(--s-3) !important; }
body .tml-featured .tml-fw-title h2,
body .tml-featured .tml-fw-title .et_pb_module_header { font-size: clamp(2.4rem, 5vw, 5rem); line-height: 1; }
body .tml-featured .tml-fw-intro { color: var(--ink-2); font-size: var(--text-lg); margin-bottom: var(--s-5) !important; }
body .tml-featured .tml-fw-all { margin-top: var(--s-4) !important; }
body .tml-featured .tml-card-line p,
body .tml-featured .tml-card-title .et_pb_module_header { max-width: none; }

body .tml-retainer-callout .tml-retainer-meta { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-4); margin: var(--s-6) 0; }
body .tml-retainer-callout .tml-retainer-meta span { display: block; padding: 0; border: 0; border-radius: 0; color: var(--ink-1); font-family: var(--font-display); font-size: clamp(1.35rem, 2.3vw, 2.25rem); font-weight: 800; line-height: 1.02; letter-spacing: var(--tracking-tight); }
body .tml-retainer-callout .tml-retainer-meta span:last-child { color: var(--accent); }
body .tml-retainer-callout .tml-value-stack,
body .tml-retainer-callout .tml-value-note,
body .tml-retainer-callout .tml-retainer-lede,
body .tml-retainer-callout .tml-automation-line { width: 100% !important; max-width: none !important; }
body .tml-retainer-callout .tml-value-note { width: 100% !important; max-width: none !important; }
body .tml-services .tml-automation-line p { font-size: var(--text-lg); line-height: 1.45; color: var(--ink-1); }
body .tml-services .tml-automation-line p,
body .tml-featured .tml-fw-intro p,
body .tml-featured .tml-card-line,
body .tml-featured .tml-value-total,
body .tml-retainer-callout .tml-value-total,
body .tml-wk-port .portfolio-lede p,
body .tml-wk-flag .flag-copy p,
body .tml-ct-brief .tml-ct-brief-intro,
body .tml-ct-brief .tml-ct-brief-foot,
body .tml-ab-principles .tml-ab-principles-note,
body .tml-blog-rhythm .tml-blog-rhythm-intro,
body .tml-blog-rhythm .tml-blog-rhythm-foot,
body .tml-blog-feed-section .tml-blog-feed-note { width: 100% !important; max-width: none !important; }
body .tml-featured .tml-card-meta,
body .tml-wk-port .card-meta { display: block !important; }
body .tml-featured .tml-card-meta > div,
body .tml-wk-port .card-meta .card-text { width: 100% !important; }
body .tml-featured .tml-card-tag,
body .tml-wk-port .card-meta .card-tag { display: inline-block; margin-top: var(--s-3); }
body .tml-blog-rhythm .tml-blog-rhythm-copy { width: 100% !important; max-width: none !important; }

body .tml-wk-port .portfolio-lede,
body .tml-wk-flag .flag-copy,
body .tml-wk-port .card-copy { max-width: none; }
body .tml-wk-port .tml-wk-port-title h2,
body .tml-wk-port .tml-wk-port-title .et_pb_module_header { width: 100%; max-width: none; margin: var(--s-3) 0 var(--s-4); font-size: clamp(2.4rem, 5vw, 5rem); line-height: 1; }
body .tml-testimonials .tml-t-title h2,
body .tml-testimonials .tml-t-title .et_pb_module_header { width: 100%; max-width: none; margin: var(--s-3) 0 0; font-size: clamp(2.4rem, 5vw, 5rem); line-height: 1; }
body .tml-wk-flag .flag-meta { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; }
body .tml-wk-flag .flag-text { min-width: 0; }
body .tml-wk-flag .flag-link a.tml-visit-btn { display: inline-flex; align-items: center; gap: .5rem; color: #fff; background: var(--accent); border: 1px solid var(--accent); border-radius: 999px; padding: .75rem 1rem; font-weight: 700; text-decoration: none; }
body .tml-wk-flag .flag-link a.tml-visit-btn:hover { color: #fff; background: var(--accent-hover); border-color: var(--accent-hover); }
body .tml-wk-flag .flag-meta { display: block !important; }
body .tml-wk-flag .flag-copy,
body .tml-wk-flag .flag-copy p { width: 100% !important; max-width: none !important; }
body .tml-wk-flag .flag-side { display: flex !important; align-items: center; justify-content: space-between; gap: var(--s-4); margin-top: var(--s-4); }

body .tml-svc-list .tml-svc-service-photo img,
body .tml-svc-list .tml-svc-photo-3 img { aspect-ratio: 1 / 1; object-position: center; }
body .tml-svc-list .tml-svc-list-intro,
body .tml-svc-list .tml-svc-list-intro p { width: 100% !important; max-width: none !important; }
body .tml-svc-list .tml-svc-c2 { display: grid; grid-template-columns: minmax(15rem, 26rem) minmax(0, 1fr); grid-template-rows: auto auto; column-gap: var(--s-6); align-items: start; }
body .tml-svc-list .tml-svc-c2 .tml-svc-service-photo { grid-column: 1; grid-row: 1 / span 2; max-width: 26rem; margin: 0 !important; }
body .tml-svc-list .tml-svc-c2 .tml-svc-name,
body .tml-svc-list .tml-svc-c2 .tml-svc-line { grid-column: 2; }
body .tml-svc-list .tml-svc-point { min-width: 0; padding: var(--s-4); border: 1px solid var(--line-strong); border-radius: 12px; background: linear-gradient(145deg, color-mix(in srgb, var(--navy-soft) 35%, var(--bg-1)), var(--bg-1)); font-size: var(--text-base); }
body .tml-svc-list .tml-svc-point p { align-items: flex-start; }
body .tml-svc-list .tml-svc-point .tml-dot { width: .65rem; height: .65rem; flex: 0 0 .65rem; margin-top: .48rem; transform: none; }
body .tml-svc-list .tml-market-value-grid > div:first-child { border: 2px solid var(--accent); background: linear-gradient(145deg, rgba(241,90,38,.18), rgba(11,20,39,.72)); box-shadow: 0 16px 40px -25px rgba(241,90,38,.75); }
body .tml-svc-list .tml-market-value-grid > div:first-child strong { color: var(--accent); font-size: clamp(1.8rem, 3.2vw, 3rem); }
body .tml-svc-list .tml-market-value-grid > div:nth-child(2) strong { color: var(--ink-2); font-size: clamp(1.25rem, 2vw, 2rem); }
body .tml-svc-list .tml-market-value-points { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-3); }
body .tml-svc-list .tml-market-value-points span { display: flex; align-items: center; min-height: 4rem; padding: var(--s-4); border: 1px solid var(--line-strong); border-radius: 12px; color: var(--ink-1); font-size: var(--text-base); }

body .tml-blog-rhythm .tml-blog-rhythm-intro,
body .tml-blog-rhythm .tml-blog-rhythm-foot,
body .tml-blog-feed-section .tml-blog-feed-note { max-width: none; }
body .tml-blog-rhythm .tml-blog-topic-grid { width: 100%; }
body .tml-blog-cta .tml-blog-ctacol { text-align: center; align-items: center; }
body .tml-blog-cta .tml-blog-cta-title,
body .tml-blog-cta .tml-blog-cta-copy { width: 100%; }

body .tml-ct-brief .tml-ct-brief-title h2,
body .tml-ct-brief .tml-ct-brief-title .et_pb_module_header,
body .tml-ct-brief .tml-ct-brief-intro,
body .tml-ct-brief .tml-ct-brief-foot,
body .tml-ab-principles .tml-ab-principles-copy { max-width: none; }

@media (max-width: 860px) {
  body .tml-retainer-callout .tml-retainer-meta { grid-template-columns: 1fr; gap: var(--s-3); }
  body .tml-wk-flag .flag-meta { display: block !important; }
  body .tml-svc-list .tml-market-value-points { grid-template-columns: 1fr; }
  body .tml-svc-list .tml-svc-c3 { grid-template-columns: 1fr; }
  body .tml-svc-list .tml-svc-c2 { display: block; }
  body .tml-svc-list .tml-svc-c2 .tml-svc-service-photo { max-width: 26rem; margin-bottom: var(--s-5) !important; }
}
@media (max-width: 600px) {
  body .tml-hero .tml-hero-title h1,
  body .tml-svc-intro .tml-svc-h1 .et_pb_module_header,
  body .tml-ab-intro .tml-ab-h1 .et_pb_module_header,
  body .tml-wk-intro .work-h1 .et_pb_module_header,
  body .tml-ct .ct-h1 .et_pb_module_header,
  body .tml-blog-intro .tml-blog-h1 .et_pb_module_header { font-size: 2.25rem !important; }
}

/* Type hierarchy and layout repair pass. Keep the H1 clearly dominant,
   reduce oversized section headings, and let full-width rows use their space. */
body .tml-hero .tml-hero-title h1,
body .tml-svc-intro h1,
body .tml-ab-intro h1,
body .tml-wk-intro h1,
body .tml-ct h1,
body .tml-blog-intro h1 { font-size: clamp(3rem, 4.75vw, 4.5rem) !important; line-height: 1.06 !important; max-width: none !important; text-wrap: normal !important; }
body .tml-trusted-title h2,
body .tml-featured .tml-fw-title h2,
body .tml-whyus-title h2,
body .tml-testimonials .tml-t-title h2,
body .tml-blog-rhythm-title h2,
body .tml-blog-cta-title h2,
body .tml-svc-cta-title h2,
body .tml-cta-title h2,
body .tml-ct-brief-title h2,
body .tml-ab-principles-title h2 { font-size: clamp(2rem, 3.15vw, 3rem) !important; line-height: 1.08 !important; max-width: none !important; text-wrap: normal !important; }
body .tml-trusted-title,
body .tml-featured .tml-fw-title,
body .tml-whyus-title,
body .tml-testimonials .tml-t-title,
body .tml-blog-rhythm-title,
body .tml-blog-cta-title,
body .tml-svc-cta-title,
body .tml-cta-title,
body .tml-ct-brief-title,
body .tml-ab-principles-title { width: 100% !important; max-width: none !important; }
body .tml-trusted-title h2,
body .tml-featured .tml-fw-title h2,
body .tml-whyus-title h2,
body .tml-testimonials .tml-t-title h2,
body .tml-blog-rhythm-title h2,
body .tml-blog-cta-title h2,
body .tml-svc-cta-title h2,
body .tml-cta-title h2,
body .tml-ct-brief-title h2,
body .tml-ab-principles-title h2 { width: 100% !important; max-width: none !important; }
body .tml-sec h3,
body .tml-services h3,
body .tml-svc-list h3,
body .tml-ab-principles h3,
body .tml-blog-rhythm h3,
body .tml-blog-feed-section h3,
body .tml-ct-brief h3,
body .tml-wk-approach h3 { font-size: clamp(1.25rem, 1.8vw, 1.75rem) !important; line-height: 1.2 !important; }
body .tml-svc-headingrow { margin-top: var(--s-6) !important; }
body .tml-svc-headingcol { padding: var(--s-5) 0 var(--s-4) !important; }
body .tml-svc-headingcol .tml-svc-index { margin-bottom: var(--s-2) !important; }
body .tml-svc-headingcol .tml-svc-name h2 { font-size: clamp(2rem, 3vw, 3rem) !important; line-height: 1.08 !important; max-width: none !important; text-wrap: normal !important; }
body .tml-svc-headingcol .tml-svc-line,
body .tml-svc-headingcol .tml-svc-line p { width: 100% !important; max-width: none !important; font-size: var(--text-lg) !important; line-height: 1.45 !important; margin-top: var(--s-3) !important; }
body .tml-svc-list .tml-svc-row { margin-bottom: var(--s-5) !important; }
body .tml-svc-list .tml-svc-c2 { min-width: 0; }
body .tml-svc-list .tml-svc-c2 .tml-svc-service-photo img { display: block; width: 100% !important; aspect-ratio: 1 / 1 !important; object-fit: cover !important; }
body .tml-svc-list .tml-svc-c3 { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-4); align-content: start; }
body .tml-svc-list .tml-svc-point { padding: var(--s-5) !important; margin: 0 !important; min-height: 7.25rem; }
body .tml-svc-list .tml-svc-point p { margin: 0 !important; line-height: 1.55 !important; }
body .tml-svc-list .tml-svc-point .tml-pt-body { display: block; }
body .tml-ab-principles-copy,
body .tml-ab-principles-copy p,
body .tml-ab-principles-intro,
body .tml-ab-principles-note { width: 100% !important; max-width: none !important; }
body .tml-ab-ctacol,
body .tml-svc-ctatext,
body .tml-wk-ctatext,
body .tml-blog-ctacol { text-align: center !important; align-items: center !important; }
body .tml-ab-ctacol .tml-cta-title,
body .tml-svc-ctatext .tml-svc-cta-title,
body .tml-wk-ctatext .tml-cta-title,
body .tml-blog-ctacol .tml-blog-cta-title { text-align: center !important; }
body .tml-ct-formwrap .ct-fineprint { width: 100% !important; max-width: none !important; display: block !important; }
body .tml-ct-right .ct-alt { text-align: center !important; align-items: center !important; }
body .tml-ct-left .ct-consultation-photo img { aspect-ratio: 4 / 3 !important; object-fit: cover !important; object-position: 74% center !important; }
body .tml-ct-brief { padding-bottom: var(--section-pad) !important; }

@media (max-width: 860px) {
  body .tml-svc-list .tml-svc-c3 { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  body .tml-hero .tml-hero-title h1,
  body .tml-svc-intro h1,
  body .tml-ab-intro h1,
  body .tml-wk-intro h1,
  body .tml-ct h1,
  body .tml-blog-intro h1 { font-size: 2.25rem !important; }
  body .tml-svc-list .tml-svc-c3 { gap: var(--s-3); }
  body .tml-svc-headingcol { padding: var(--s-4) 0 var(--s-3) !important; }
}

/* Shared hierarchy and layout contract: six main pages, native Divi structure. */
body #et-main-area .tml-sec { --tml-h1: 72px; --tml-h2: 48px; --tml-h3: 28px; --tml-h4: 22px; }
body #et-main-area .tml-sec h1 { font-size: var(--tml-h1) !important; line-height: 1.08 !important; max-width: none !important; width: 100% !important; text-wrap: wrap !important; }
body #et-main-area .tml-sec h2 { font-size: var(--tml-h2) !important; line-height: 1.15 !important; text-wrap: wrap !important; max-width: none !important; }
body #et-main-area .tml-sec h3 { font-size: var(--tml-h3) !important; line-height: 1.25 !important; }
body #et-main-area .tml-sec h4 { font-size: var(--tml-h4) !important; line-height: 1.3 !important; }
body #et-main-area .tml-ab-process .tml-proc-name h2 { font-size: var(--tml-h3) !important; line-height: 1.25 !important; }
body #et-main-area .tml-sec .et_pb_text p { max-width: none !important; }
body #et-main-area .tml-sec .et_pb_text.card-copy p { width: 100% !important; font-size: 17px; }
body #et-main-area .tml-svc-list .tml-svc-headingrow { margin-top: 56px !important; }
body #et-main-area .tml-svc-list .tml-svc-headingcol { padding: 0 0 24px !important; }
body #et-main-area .tml-svc-headingcol .tml-svc-line { margin: 16px 0 0 !important; }
body #et-main-area .tml-svc-headingcol .tml-svc-line p { margin: 0 !important; }
body #et-main-area .tml-svc-list .tml-svc-row { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) !important; gap: 32px !important; padding: 0 0 48px !important; margin-bottom: 0 !important; }
body #et-main-area .tml-svc-list .tml-svc-row .tml-svc-c2 { grid-column: 1; display: block !important; width: 100% !important; }
body #et-main-area .tml-svc-list .tml-svc-row .tml-svc-c3 { grid-column: 2; padding-top: 0 !important; margin-left: 0 !important; width: 100% !important; gap: 20px !important; }
body #et-main-area .tml-svc-list .tml-svc-service-photo { width: 100% !important; max-width: none !important; margin: 0 !important; }
body #et-main-area .tml-svc-list .tml-svc-service-photo img { height: auto !important; min-height: 0 !important; aspect-ratio: 1 !important; object-position: center 20% !important; }
body #et-main-area .tml-svc-list .tml-svc-point { padding: 24px !important; }
body #et-main-area .tml-sec:is(.tml-closing,.tml-wk-cta,.tml-svc-cta,.tml-ab-cta,.tml-blog-cta) .et_pb_column,
body #et-main-area .tml-sec:is(.tml-closing,.tml-wk-cta,.tml-svc-cta,.tml-ab-cta,.tml-blog-cta) .et_pb_module,
body #et-main-area .tml-sec:is(.tml-closing,.tml-wk-cta,.tml-svc-cta,.tml-ab-cta,.tml-blog-cta) :is(h2,p) { text-align: left !important; align-items: flex-start !important; }
body #et-main-area .tml-sec:is(.tml-closing,.tml-wk-cta,.tml-svc-cta,.tml-ab-cta,.tml-blog-cta) .et_pb_button_module_wrapper { align-self: flex-start !important; margin-left: 0 !important; }
body #et-main-area .tml-sec:is(.tml-closing,.tml-wk-cta,.tml-svc-cta,.tml-ab-cta,.tml-blog-cta) :is(.tml-closing-sub,.tml-wk-cta-copy,.tml-svc-cta-sub,.tml-ab-cta-copy,.tml-blog-cta-copy) { width: 100% !important; max-width: none !important; margin: 24px 0 !important; }
body #et-main-area .tml-ab-cta .tml-ab-cta-photo img { aspect-ratio: 4 / 3 !important; height: auto !important; min-height: 0 !important; object-position: center !important; }
body #et-main-area .tml-ct-hero .ct-lede { width: 100% !important; max-width: none !important; }
body #et-main-area .ct-form .ct-fineprint { width: 100% !important; max-width: none !important; grid-column: 1 / -1; }
body #et-main-area .ct-consultation-photo img { aspect-ratio: auto !important; width: 100% !important; height: auto !important; min-height: 0 !important; object-fit: contain !important; }
@media (max-width: 1024px) {
 body #et-main-area .tml-sec { --tml-h1: 56px; --tml-h2: 38px; --tml-h3: 26px; --tml-h4: 21px; }
 body #et-main-area .tml-svc-list .tml-svc-row .tml-svc-c3 { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
 body #et-main-area .tml-sec { --tml-h1: 40px; --tml-h2: 30px; --tml-h3: 24px; --tml-h4: 20px; }
 body #et-main-area .tml-svc-list .tml-svc-row { grid-template-columns: minmax(0,1fr) !important; }
 body #et-main-area .tml-svc-list .tml-svc-row .tml-svc-c2,
 body #et-main-area .tml-svc-list .tml-svc-row .tml-svc-c3 { grid-column: 1; }
 body #et-main-area .tml-svc-list .tml-svc-service-photo { max-width: 420px !important; }
}

/* Latest directed layout pass. */
body #et-main-area .tml-hero-break { display: none !important; }
body #et-main-area .tml-retainer-callout .tml-retainer-cta { margin-top: var(--s-3) !important; }
body #et-main-area .tml-wk-flag .tml-wk-flag-introgrid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important; gap: var(--s-8) !important; }
body #et-main-area .tml-wk-flag .tml-wk-flag-introgrid > div { min-width: 0; }
body #et-main-area .tml-service-carousel-wrap { width: 100% !important; }
body #et-main-area .tml-service-carousel { position: relative; min-height: 24rem; padding: 1.25rem; border: 1px solid var(--line-strong); border-radius: 20px; background: radial-gradient(18rem 15rem at 50% 38%, rgba(241,90,38,.2), transparent 70%), var(--bg-1); overflow: hidden; }
body #et-main-area .tml-service-carousel-core { position: relative; z-index: 2; display: grid; gap: .25rem; width: 13rem; min-height: 8rem; margin: 0 auto 1.25rem; align-content: center; justify-items: center; border: 2px solid var(--accent); border-radius: 18px; color: var(--ink-1); background: var(--navy); text-align: center; box-shadow: 0 20px 45px -25px rgba(241,90,38,.9); }
body #et-main-area .tml-service-carousel-core span { color: var(--ink-2); font-family: var(--font-mono); font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; }
body #et-main-area .tml-service-carousel-core strong { font-family: var(--font-display); font-size: 1.45rem; line-height: 1; }
body #et-main-area .tml-service-carousel-track { position: relative; z-index: 2; display: flex; width: 500%; gap: 0; animation: tml-service-carousel-shift 22s ease-in-out infinite; }
body #et-main-area .tml-service-carousel-track article { display: grid; box-sizing: border-box; flex: 0 0 20%; min-width: 20%; max-width: 20%; gap: .5rem; min-height: 9.5rem; padding: 1.25rem; border: 1px solid var(--line-strong); border-radius: 14px; background: color-mix(in srgb, var(--bg-0) 84%, transparent); }
body #et-main-area .tml-service-carousel-track article span { color: var(--accent); font-family: var(--font-mono); font-size: .7rem; }
body #et-main-area .tml-service-carousel-track article strong { color: var(--ink-1); font-family: var(--font-display); font-size: 1rem; line-height: 1.1; }
body #et-main-area .tml-service-carousel-track article small { color: var(--ink-2); font-size: .8rem; line-height: 1.35; }
body #et-main-area .tml-svc-list .tml-svc-photo-3 img { aspect-ratio: 1 / 1 !important; object-fit: contain !important; object-position: center !important; padding: .35rem; background: var(--bg-1); }
@keyframes tml-service-carousel-shift { 0%, 14% { transform: translateX(0); } 18%, 32% { transform: translateX(-20%); } 36%, 50% { transform: translateX(-40%); } 54%, 68% { transform: translateX(-60%); } 72%, 86% { transform: translateX(-80%); } 100% { transform: translateX(0); } }
body #et-main-area .tml-service-carousel-track { display: block !important; width: 100% !important; min-height: 10rem; animation: none !important; }
body #et-main-area .tml-service-carousel-track article { position: absolute; inset: 0; width: 100% !important; min-width: 0 !important; max-width: none !important; opacity: 0; transform: translateY(.35rem); animation: tml-service-card-fade 25s ease-in-out infinite; }
body #et-main-area .tml-service-carousel-track article:nth-child(1) { animation-delay: 0s; }
body #et-main-area .tml-service-carousel-track article:nth-child(2) { animation-delay: 5s; }
body #et-main-area .tml-service-carousel-track article:nth-child(3) { animation-delay: 10s; }
body #et-main-area .tml-service-carousel-track article:nth-child(4) { animation-delay: 15s; }
body #et-main-area .tml-service-carousel-track article:nth-child(5) { animation-delay: 20s; }
@keyframes tml-service-card-fade { 0%, 3% { opacity: 0; transform: translateY(.35rem); } 7%, 17% { opacity: 1; transform: translateY(0); } 21%, 100% { opacity: 0; transform: translateY(-.2rem); } }
body #et-main-area .tml-ab-principles .tml-principle-cards { grid-template-columns: repeat(3, minmax(0,1fr)) !important; }
body #et-main-area .tml-proc-output { margin-top: var(--s-4); padding: var(--s-4); border-left: 3px solid var(--accent); border-radius: 0 10px 10px 0; background: color-mix(in srgb, var(--accent) 8%, var(--bg-1)); }
body #et-main-area .tml-proc-output strong { display: block; margin-bottom: .35rem; color: var(--accent); font-family: var(--font-mono); font-size: var(--text-label); letter-spacing: var(--tracking-label); text-transform: uppercase; }
body #et-main-area .tml-proc-output p { margin: 0 !important; color: var(--ink-1); font-size: .95rem; line-height: 1.45; }
body #et-main-area .tml-ct-hero { background-image: linear-gradient(90deg, rgba(7,9,15,.9) 0%, rgba(7,9,15,.76) 48%, rgba(7,9,15,.3) 100%), url('/wp-content/themes/wordpress-divi-child-theme/img/contact-hero-v1.webp') !important; background-position: center, center !important; background-size: cover, cover !important; }
body #et-main-area .tml-wk-flag .tml-wk-flag-top { display: grid; grid-template-columns: minmax(12rem, .7fr) minmax(0, 1.3fr); gap: var(--s-8); align-items: start; }
body #et-main-area .tml-wk-flag .tml-wk-flag-top .tml-sec-label { margin: 0 !important; padding-top: .35rem; }
body #et-main-area .tml-wk-flag .tml-wk-flag-top .tml-wk-proof { margin: 0; }
body #et-main-area .tml-wk-flag .tml-wk-flag-intro { margin-top: var(--s-8); }
body #et-main-area .tml-wk-flag .tml-wk-flag-intro h2 { width: 100%; max-width: none; }
body #et-main-area .tml-wk-flag .tml-wk-flag-introgrid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important; gap: var(--s-8) !important; align-items: start; }
body #et-main-area .tml-wk-flag .tml-wk-flag-introgrid > div { min-width: 0; }
body #et-main-area .tml-wk-approach .tml-wk-approach-head .tml-wk-approach-copy h2 { margin: var(--s-4) 0 0; width: 100%; max-width: none; font-size: clamp(2rem, 3.8vw, 3.5rem); line-height: 1.08; }
body #et-main-area .tml-wk-approach .tml-wk-approach-head .tml-wk-approach-copy { width: 100% !important; max-width: none !important; }
body #et-main-area .tml-wk-approach .tml-wk-approach-copy-body { width: 100% !important; max-width: 86ch !important; margin-bottom: var(--s-8) !important; color: var(--ink-2); font-size: var(--text-lg); line-height: 1.62; }
body #et-main-area .tml-wk-approach .tml-wk-approach-copy-body p + p { margin-top: var(--s-5); }
body #et-main-area .tml-wk-approach .tml-build-checklist { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-5); width: 100%; }
body #et-main-area .tml-wk-approach .tml-build-step { display: flex !important; flex-direction: column; min-width: 0; padding: 0 0 var(--s-5); border: 1px solid var(--line-strong); border-radius: 16px; overflow: hidden; background: linear-gradient(145deg, color-mix(in srgb, var(--navy-soft) 46%, var(--bg-1)), var(--bg-1)); }
body #et-main-area .tml-wk-approach .tml-build-step-photo { width: 100%; margin: 0 !important; overflow: hidden; }
body #et-main-area .tml-wk-approach .tml-build-step-photo img { display: block; width: 100% !important; aspect-ratio: 1 / 1 !important; object-fit: cover !important; }
body #et-main-area .tml-wk-approach .tml-build-step-kicker,
body #et-main-area .tml-wk-approach .tml-build-step-heading,
body #et-main-area .tml-wk-approach .tml-build-step-title,
body #et-main-area .tml-wk-approach .tml-build-step-copy { margin-left: var(--s-5) !important; margin-right: var(--s-5) !important; }
body #et-main-area .tml-wk-approach .tml-build-step-kicker { margin-top: var(--s-5) !important; margin-bottom: var(--s-2) !important; color: var(--accent); font-family: var(--font-mono); font-size: var(--text-label); letter-spacing: var(--tracking-label); text-transform: uppercase; }
body #et-main-area .tml-wk-approach .tml-build-step-title { margin-top: 0 !important; margin-bottom: var(--s-3) !important; color: var(--ink-1); font-family: var(--font-display); font-size: clamp(1.25rem, 1.8vw, 1.65rem) !important; line-height: 1.15 !important; }
body #et-main-area .tml-wk-approach .tml-build-step-heading h3 { margin: 0 0 var(--s-3) !important; color: var(--ink-1); font-family: var(--font-display); font-size: clamp(1.25rem, 1.8vw, 1.65rem) !important; line-height: 1.15 !important; letter-spacing: var(--tracking-tight); }
body #et-main-area .tml-wk-approach .tml-build-step-copy { color: var(--ink-2); line-height: 1.55; }
body #et-main-area .tml-wk-approach .tml-build-stepsrow { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-5); width: 100%; }
body #et-main-area .tml-wk-approach .tml-build-stepsrow > .tml-build-step { width: 100% !important; margin: 0 !important; }
body #et-main-area .tml-wk-approach .tml-build-stepsrow > .tml-build-step > .et_pb_module { width: auto !important; }
@media (max-width: 767px) {
  body #et-main-area .tml-wk-flag .tml-wk-flag-introgrid { grid-template-columns: 1fr !important; }
  body #et-main-area .tml-service-carousel { min-height: 24rem; }
  body #et-main-area .tml-ab-principles .tml-principle-cards { grid-template-columns: 1fr !important; }
  body #et-main-area .tml-wk-flag .tml-wk-flag-top { grid-template-columns: 1fr; gap: var(--s-5); }
  body #et-main-area .tml-wk-approach .tml-build-checklist { grid-template-columns: 1fr; }
  body #et-main-area .tml-wk-approach .tml-build-stepsrow { grid-template-columns: 1fr; }
}

/* Homepage and service-system refinement pass. */
body #et-main-area .tml-hero-break { display: none; }
body #et-main-area .tml-statement-title { margin: var(--s-4) 0 var(--s-3) !important; }
body #et-main-area .tml-statement-title h2 { width: 100% !important; max-width: none !important; font-size: clamp(2.25rem, 4vw, 4rem) !important; line-height: 1.06 !important; }
body #et-main-area .tml-statement-text p { width: 100% !important; max-width: 78ch !important; font-size: clamp(1.1rem, 1.6vw, 1.35rem) !important; line-height: 1.6 !important; }
body #et-main-area .tml-stats .tml-label p { max-width: none !important; font-size: clamp(1.1rem, 1.55vw, 1.55rem) !important; line-height: 1.15 !important; color: var(--ink-1) !important; font-family: var(--font-display); font-weight: 700; letter-spacing: var(--tracking-tight); }
body #et-main-area .tml-stats .tml-stat-copy p { max-width: 34ch !important; font-size: 16px !important; line-height: 1.5 !important; }
body #et-main-area .tml-trusted-title h2 { max-width: none !important; }
body #et-main-area .tml-services-title-wrap { margin: var(--s-4) 0 var(--s-6) !important; }
body #et-main-area .tml-services-title-wrap h2 { width: 100% !important; max-width: none !important; font-size: clamp(2.15rem, 3.8vw, 3.8rem) !important; line-height: 1.06 !important; }
body #et-main-area .tml-service-row { grid-template-columns: 3.4rem minmax(0, 1.2fr) minmax(0, 1.4fr) auto !important; align-items: center; }
body #et-main-area .tml-service-icon { display: inline-flex; align-items: center; justify-content: center; width: 2.7rem; height: 2.7rem; border: 1px solid var(--accent); border-radius: 12px; color: var(--accent); background: color-mix(in srgb, var(--accent) 10%, transparent); }
body #et-main-area .tml-service-icon svg { display: block; width: 1.45rem; height: 1.45rem; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
body #et-main-area .tml-service-row:hover .tml-service-icon { color: var(--ink-1); background: var(--accent); }
body #et-main-area .tml-retainer-callout { margin-top: var(--s-10) !important; }
body #et-main-area .tml-retainer-kicker { margin-bottom: var(--s-3) !important; color: var(--accent) !important; font-family: var(--font-mono); font-size: clamp(1rem, 1.7vw, 1.4rem) !important; font-weight: 800; letter-spacing: .08em; }
body #et-main-area .tml-retainer-callout > h3 { width: 100% !important; max-width: none !important; font-size: clamp(2.2rem, 4vw, 4rem) !important; line-height: 1.04 !important; }
body #et-main-area .tml-retainer-callout .tml-retainer-lede { font-size: clamp(1.15rem, 1.8vw, 1.45rem) !important; line-height: 1.55 !important; }
body #et-main-area .tml-retainer-callout .tml-value-stack { margin-top: var(--s-8) !important; padding-top: var(--s-6); border-top: 1px solid var(--line-strong); }
body #et-main-area .tml-retainer-callout .tml-value-title { margin: 0 0 var(--s-3); color: var(--ink-1); font-family: var(--font-display); font-size: clamp(1.5rem, 2.5vw, 2.2rem); line-height: 1.1; }
body #et-main-area .tml-retainer-callout .tml-value-intro { margin-bottom: var(--s-5) !important; color: var(--ink-2); font-size: 16px; line-height: 1.55; }
body #et-main-area .tml-retainer-cta, body #et-main-area .tml-fw-all .tml-btn-sm { display: inline-flex !important; align-items: center; gap: .5rem; color: #fff !important; background: var(--accent); border: 1px solid var(--accent); border-radius: 999px; padding: .78rem 1.15rem; font-weight: 700; text-decoration: none; }
body #et-main-area .tml-retainer-cta:hover, body #et-main-area .tml-fw-all .tml-btn-sm:hover { color: #fff !important; background: var(--accent-hover); border-color: var(--accent-hover); transform: translateY(-1px); }
body #et-main-area .tml-automation-line { display: none !important; }
body #et-main-area .tml-home-guide .tml-guide-photo img { aspect-ratio: 1 / 1 !important; object-fit: cover !important; object-position: 50% 42% !important; }
body #et-main-area .tml-home-guide-title h2 { width: 100% !important; max-width: none !important; }
body #et-main-area .tml-service-map-wrap { width: 100% !important; }
body #et-main-area .tml-svc-intro .svc-intro-art.et_pb_group { display: block !important; min-height: 0 !important; max-width: 36rem !important; padding: 0 !important; border: 0 !important; background: transparent !important; }
body #et-main-area .tml-service-map { position: relative; padding: 1.25rem; border: 1px solid var(--line-strong); border-radius: 20px; background: radial-gradient(22rem 18rem at 50% 35%, rgba(241,90,38,.2), transparent 70%), var(--bg-1); overflow: hidden; }
body #et-main-area .tml-service-map::before { content: ""; position: absolute; left: 50%; top: 6rem; bottom: 6rem; border-left: 1px dashed rgba(241,90,38,.5); }
body #et-main-area .tml-service-map-core { position: relative; z-index: 1; display: grid; gap: .2rem; width: 12rem; min-height: 7rem; margin: 0 auto 1.1rem; align-content: center; justify-items: center; border: 2px solid var(--accent); border-radius: 18px; color: var(--ink-1); background: var(--navy); box-shadow: 0 18px 40px -25px rgba(241,90,38,.85); text-align: center; }
body #et-main-area .tml-service-map-core span { color: var(--ink-2); font-family: var(--font-mono); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
body #et-main-area .tml-service-map-core strong { font-family: var(--font-display); font-size: 1.45rem; line-height: 1.05; }
body #et-main-area .tml-service-map-paths { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .75rem; }
body #et-main-area .tml-service-map-item { display: grid; gap: .25rem; min-height: 7.5rem; padding: 1rem; border: 1px solid var(--line-strong); border-radius: 14px; background: color-mix(in srgb, var(--bg-0) 80%, transparent); }
body #et-main-area .tml-service-map-num { color: var(--accent); font-family: var(--font-mono); font-size: .72rem; letter-spacing: .08em; }
body #et-main-area .tml-service-map-item strong { color: var(--ink-1); font-family: var(--font-display); font-size: 1rem; line-height: 1.1; }
body #et-main-area .tml-service-map-item small { color: var(--ink-2); font-size: .82rem; line-height: 1.35; }
body #et-main-area .tml-svc-list-title { margin: var(--s-4) 0 var(--s-4) !important; }
body #et-main-area h2.tml-svc-list-title { width: 100% !important; max-width: none !important; font-size: clamp(2rem, 3.6vw, 3.6rem) !important; line-height: 1.06 !important; }
body #et-main-area .tml-svc-list .tml-svc-photo-0 img { object-position: 68% 50% !important; }
body #et-main-area .sc-title .et_pb_module_header { font-size: clamp(1.7rem, 2.2vw, 2.4rem) !important; line-height: 1.05 !important; }
body #et-main-area .tml-wk-proof .tml-proof-kicker { display: block; margin-bottom: var(--s-4); color: var(--ink-1); font-family: var(--font-display); font-size: clamp(1.35rem, 2vw, 1.8rem); font-weight: 800; line-height: 1.1; }
body #et-main-area .tml-ab-story-title h2,
body #et-main-area .tml-ab-process-title h2 { max-width: none !important; width: 100% !important; }
body #et-main-area .tml-ab-stats .tml-ab-stat-value p { font-size: clamp(2.6rem, 4.5vw, 5rem) !important; line-height: .94 !important; }
body #et-main-area .tml-ab-stats .tml-ab-stat-label p { margin: var(--s-2) 0 var(--s-3) !important; color: var(--ink-1) !important; font-family: var(--font-display) !important; font-size: clamp(1.05rem, 1.45vw, 1.45rem) !important; font-weight: 800 !important; line-height: 1.1 !important; }
body #et-main-area .tml-ab-stats .tml-ab-stat-copy p { max-width: 32ch !important; color: var(--ink-2) !important; font-size: 1rem !important; line-height: 1.5 !important; }
body #et-main-area .tml-featured .tml-fw-headcol { width: 100% !important; flex: 1 1 100% !important; }
@media (max-width: 767px) {
  body #et-main-area .tml-hero-break { display: none; }
  body #et-main-area .tml-service-row { grid-template-columns: 2.7rem minmax(0, 1fr) auto !important; }
  body #et-main-area .tml-service-line { grid-column: 2 / -1; }
  body #et-main-area .tml-service-icon { width: 2.35rem; height: 2.35rem; }
  body #et-main-area .tml-service-map-paths { grid-template-columns: 1fr; }
}

/* Final feedback pass: balanced CTA imagery, denser service rows, and stronger
   editorial hierarchy. These rules intentionally come last so Divi's generated
   module styles cannot collapse the layout back into a narrow text column. */
body #et-main-area .tml-hero .tml-hero-title h1 { font-size: clamp(4.25rem, 5.9vw, 6.25rem) !important; line-height: 1.02 !important; }
body #et-main-area .tml-sec:is(.tml-closing,.tml-wk-cta,.tml-svc-cta,.tml-ab-cta,.tml-blog-cta) h2,
body #et-main-area .tml-sec:is(.tml-closing,.tml-wk-cta,.tml-svc-cta,.tml-ab-cta,.tml-blog-cta) .et_pb_module_header { font-size: clamp(3rem, 4.1vw, 4.1rem) !important; line-height: 1.04 !important; max-width: none !important; }
body #et-main-area .tml-closing .tml-closing-photo img,
body #et-main-area .tml-wk-cta .tml-wk-cta-photo img,
body #et-main-area .tml-svc-cta .tml-svc-cta-photo img,
body #et-main-area .tml-ab-cta .tml-ab-cta-photo img { aspect-ratio: 1 / 1 !important; width: 100% !important; height: auto !important; min-height: 0 !important; object-fit: cover !important; }
body #et-main-area .tml-closing .tml-closing-photo img { object-position: 55% 46% !important; }
body #et-main-area .tml-wk-cta .tml-wk-cta-photo img { object-position: 50% 19% !important; }
body #et-main-area .tml-svc-cta .tml-svc-cta-photo img { object-position: 50% 42% !important; }
body #et-main-area .tml-ab-cta .tml-ab-cta-photo img { object-position: 50% 42% !important; }
body #et-main-area .tml-ct-left .ct-consultation-photo img { aspect-ratio: 1 / 1 !important; height: auto !important; min-height: 0 !important; object-fit: cover !important; object-position: 70% 44% !important; }
body #et-main-area .tml-svc-list .tml-svc-c3 { align-content: start; }
body #et-main-area .tml-svc-list .tml-svc-c3 .tml-svc-point:last-child { grid-column: 1 / -1; }
body #et-main-area .tml-svc-list .tml-svc-point { min-height: 0 !important; }
body #et-main-area .tml-ab-story-title,
body #et-main-area .tml-ab-process-title { margin: var(--s-4) 0 var(--s-6) !important; }
body #et-main-area .tml-ab-story-title h2,
body #et-main-area .tml-ab-process-title h2 { width: 100% !important; max-width: none !important; font-size: clamp(2.1rem, 3vw, 3.2rem) !important; line-height: 1.08 !important; }
body #et-main-area .tml-ct-left .ct-verticals { width: 100% !important; margin-top: var(--s-8) !important; padding-top: var(--s-6) !important; border-top: 1px solid var(--line) !important; }
body #et-main-area .tml-ct-left .ct-verticals .vert-set { grid-template-columns: repeat(4, minmax(0, 1fr)); }
body #et-main-area .tml-ct-left .ct-verticals .vert-chip { width: 3.75rem; height: 3.75rem; }
body #et-main-area .tml-ct-left .ct-verticals .vert-chip svg { width: 1.95rem; height: 1.95rem; }
body #et-main-area .tml-ct-hero { background: radial-gradient(48rem 24rem at 86% 18%, rgba(241,90,38,.16), transparent 68%), linear-gradient(135deg, rgba(16,28,54,.94), rgba(7,9,15,.96)); }
body #et-main-area .tml-blog-template.et_pb_section { padding: var(--section-pad) 0; border-top: 1px solid var(--line); }
body #et-main-area .tml-blog-template-title { margin: var(--s-4) 0 var(--s-4) !important; }
body #et-main-area .tml-blog-template-title h2 { width: 100% !important; max-width: none !important; }
body #et-main-area .tml-blog-template-copy { width: 100% !important; max-width: 70ch !important; color: var(--ink-2); font-size: var(--text-lg); line-height: 1.6; }
body #et-main-area .tml-blog-template-cards { width: 100% !important; margin-top: var(--s-8) !important; }
body #et-main-area .tml-blog-template-cards .tml-blog-template-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: var(--s-4); width: 100%; }
body #et-main-area .tml-blog-template-cards article { min-height: 12rem; padding: var(--s-5); border: 1px solid var(--line-strong); border-radius: 14px; background: linear-gradient(145deg, color-mix(in srgb, var(--navy-soft) 52%, var(--bg-1)), var(--bg-1)); }
body #et-main-area .tml-blog-template-cards article > span { display: block; margin-bottom: var(--s-4); color: var(--accent); font-family: var(--font-mono); font-size: var(--text-label); letter-spacing: var(--tracking-label); text-transform: uppercase; }
body #et-main-area .tml-blog-template-cards h3 { margin: 0 0 var(--s-3); color: var(--ink-1); font-size: 1.25rem; line-height: 1.15; }
body #et-main-area .tml-blog-template-cards p { margin: 0; color: var(--ink-2); line-height: 1.5; }
body #et-main-area .tml-blog-feed .more-link { display: inline-flex !important; align-items: center; width: fit-content; margin-top: var(--s-4) !important; padding: .72rem 1rem; border: 1px solid var(--accent) !important; border-radius: 999px; color: #fff !important; background: var(--accent); font-weight: 700; text-decoration: none; }
body #et-main-area .tml-blog-feed .more-link:hover { color: #fff !important; background: var(--accent-hover); border-color: var(--accent-hover) !important; transform: translateY(-1px); }
body #et-main-area .tml-blog-feed .comments-number,
body #et-main-area .tml-blog-feed .comment-count,
body #et-main-area .tml-blog-feed .post-meta .comments { display: none !important; }
@media (max-width: 1024px) {
  body #et-main-area .tml-hero .tml-hero-title h1 { font-size: clamp(3.75rem, 6.5vw, 5.25rem) !important; }
  body #et-main-area .tml-blog-template-cards .tml-blog-template-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 767px) {
  body #et-main-area .tml-hero .tml-hero-title h1 { font-size: 2.75rem !important; }
  body #et-main-area .tml-svc-list .tml-svc-c3 .tml-svc-point:last-child { grid-column: auto; }
  body #et-main-area .tml-ct-left .ct-verticals .vert-set { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body #et-main-area .tml-blog-template-cards .tml-blog-template-grid { grid-template-columns: 1fr; }
}

/* Production-matched homepage hero: natural balanced wrapping, bottom anchored. */
body #et-main-area .tml-hero .tml-hero-title h1 {
  font-size: var(--text-display-1) !important;
  max-width: 13ch !important;
  line-height: var(--leading-display) !important;
  letter-spacing: var(--tracking-tight) !important;
  text-wrap: balance !important;
}

/* Keep the homepage hero to two intentional lines at every breakpoint. On
   narrow screens the type scales down instead of collapsing into four short
   lines, preserving the intended message hierarchy. */
@media (min-width: 768px) {
  body #et-main-area .tml-hero .tml-hero-title h1 { max-width: none !important; font-size: clamp(2.9rem, 6.5vw, 6.25rem) !important; text-wrap: nowrap !important; }
  body #et-main-area .tml-hero .tml-hero-title .tml-hero-break { display: block !important; }
}
@media (max-width: 767px) {
  body #et-main-area .tml-hero .tml-hero-title h1 { max-width: none !important; font-size: clamp(1.45rem, 8vw, 2.6rem) !important; line-height: 1.05 !important; text-wrap: nowrap !important; }
  body #et-main-area .tml-hero .tml-hero-title .tml-hero-break { display: block !important; }
}

/* Keep the fixed chat launcher clear of the homepage's closing CTA while
   retaining the footer-safe position everywhere else. */
body.home .tml-chat-launcher { bottom: 220px; }
@media (max-width: 767px) {
  body.home .tml-chat-launcher { bottom: 132px; }
}

/* A text fallback keeps the PKA client tile useful until a supplied logo asset is available. */
body #et-main-area .tml-trusted .tml-logo-fallback { width: auto; max-width: 100%; margin: 0 !important; text-align: center; }
body #et-main-area .tml-trusted .tml-logo-fallback-word { display: block; max-width: 15ch; color: #111827; font-family: var(--font-display); font-size: clamp(.78rem, 1.35vw, 1.15rem); font-weight: 800; line-height: 1.05; letter-spacing: -.02em; }

/* Keep the Blog module's article hierarchy at 2/3 copy + 1/3 image. */
body #et-main-area .tml-blog-feed .et_pb_post { grid-template-columns: minmax(0, 2fr) minmax(11rem, 1fr) !important; align-items: start; }
body #et-main-area .tml-blog-feed .et_pb_post > .entry-title,
body #et-main-area .tml-blog-feed .et_pb_post > .post-meta,
body #et-main-area .tml-blog-feed .et_pb_post > .post-content { grid-column: 1; }
body #et-main-area .tml-blog-feed .et_pb_post > .entry-featured-image-url { grid-column: 2; grid-row: 1 / span 3; width: 100%; margin: 0 !important; }
body #et-main-area .tml-blog-feed .et_pb_post.et_pb_no_thumb::after { content: ""; grid-column: 2; grid-row: 1 / span 3; display: block; width: 100%; min-height: 12rem; border: 1px solid var(--line); border-radius: 14px; background: url('/wp-content/themes/wordpress-divi-child-theme/img/blog-hero-v1.webp') center / cover no-repeat; visibility: visible !important; opacity: 1 !important; }

/* Work section labels use the same compact editorial label treatment as the Work intro. */
body #et-main-area .tml-wk-flag .tml-sec-label,
body #et-main-area .tml-wk-approach .tml-sec-label { margin-bottom: var(--s-4) !important; color: var(--ink-3); font-family: var(--font-mono) !important; font-size: var(--text-label) !important; font-weight: 500 !important; letter-spacing: var(--tracking-label) !important; line-height: 1.2 !important; text-transform: uppercase; }

/* Contact details replace the duplicated consultation image with real studio routes. */
body #et-main-area .tml-ct .ct-contact-info { display: flex; flex-direction: column; gap: 0 !important; margin-top: 0; padding: var(--s-6); border: 1px solid var(--line-strong); border-radius: 18px; background: radial-gradient(32rem 18rem at 0% 0%, color-mix(in srgb, var(--accent) 14%, transparent), transparent 70%), var(--bg-1); }
body #et-main-area .tml-ct .ct-info-kicker-wrap { margin: 0 0 var(--s-4) !important; }
body #et-main-area .tml-ct .ct-info-kicker { margin: 0 !important; color: var(--accent); }
body #et-main-area .tml-ct .ct-info-title { margin: 0 0 var(--s-4) !important; }
body #et-main-area .tml-ct .ct-info-title h2 { width: 100%; max-width: none; font-size: clamp(2rem, 3.4vw, 3.4rem) !important; line-height: 1.05 !important; }
body #et-main-area .tml-ct .ct-info-lede { margin: 0 0 var(--s-6) !important; color: var(--ink-2); font-size: var(--text-lg); line-height: 1.55; }
body #et-main-area .tml-ct .ct-info-list { display: grid; gap: var(--s-4); margin: 0 0 var(--s-6); padding-top: var(--s-5); border-top: 1px solid var(--line); }
body #et-main-area .tml-ct .ct-info-list p { display: grid; gap: .3rem; margin: 0 !important; color: var(--ink-2); line-height: 1.45; }
body #et-main-area .tml-ct .ct-info-list a { color: var(--ink-1); font-size: 1.15rem; font-weight: 700; text-decoration: underline; text-decoration-color: var(--accent); text-underline-offset: .18em; }
body #et-main-area .tml-ct .ct-info-label { color: var(--accent); font-family: var(--font-mono); font-size: var(--text-label); letter-spacing: var(--tracking-label); text-transform: uppercase; }
body #et-main-area .tml-ct .ct-info-book { margin: 0 !important; }
body #et-main-area .tml-ct .ct-info-book .tml-cta { display: inline-flex; align-items: center; gap: .5rem; }

@media (max-width: 767px) {
  body #et-main-area .tml-blog-feed .et_pb_post { grid-template-columns: 1fr !important; }
  body #et-main-area .tml-blog-feed .et_pb_post > .entry-featured-image-url,
  body #et-main-area .tml-blog-feed .et_pb_post.et_pb_no_thumb::after { grid-column: 1; grid-row: auto; }
  body #et-main-area .tml-blog-feed .et_pb_post.et_pb_no_thumb::after { height: auto !important; min-height: 9rem; aspect-ratio: 16 / 10; }
}

/* Make the inquiry form reachable before the longer studio/niche details on phones. */
@media (max-width: 767px) {
  body #et-main-area .tml-ct-grid .tml-ct-right { order: 1; }
  body #et-main-area .tml-ct-grid .tml-ct-left { order: 2; }
  /* The compact main header has room for chat; keep it clear of page copy/CTAs. */
  body:not(.page-id-75) .tml-chat-launcher { top: 16px; bottom: auto !important; right: 84px; padding: 9px 12px; }
}
/* <<< zoverrides */

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}
