/* Widrow — front-end styles for the DAT child theme.
   Brand source of truth: docs/brand/widrow/tokens.css (DEF repo).
   Enqueued as an asset: inline <style>/<script> in a wp:html block gets
   texturized by WordPress (&& -> &#038;&#038;), which breaks JS. */
/* Switzer @font-face is emitted by WordPress from theme.json (fontDisplay: swap).
   Do NOT redeclare it here — two declarations fight over font-display. */

:root{
  --paper:#F4F0E6; --paper-2:#EAE4D6; --card:#FCFAF4;
  --ink:#0C1413; --ink-soft:#4A5551; --line:rgba(12,20,19,.12);
  --navy:#0C302E; --navy-deep:#08211F; --header-navy:#0E403C;
  --blue:#43AC9C; --blue-deep:#2E8C82; --yellow:#C8A24E;
  --on-navy:#F4F0E6; --on-navy-soft:#B5C6C1; --on-navy-line:rgba(244,240,230,.16);
  --teal-ink:#1F6F66; --brass-ink:#6B5A1F; /* text-safe accents (WCAG AA on paper/card) */
  --font-display:"Switzer",system-ui,-apple-system,"Segoe UI","Helvetica Neue",Arial,sans-serif;
  --wrap:1180px; --radius:10px;
  /* type scale (2026-09-24): body 17 Regular; nothing read as text below 15px */
  --fs-label:.875rem; --fs-small:.9375rem; --fs-body:1.0625rem; --fs-lead:1.1875rem; --fs-h3:1.3125rem; --fs-h2:clamp(2rem,5vw,3.2rem);
}
/* Dark scheme: only the light surfaces flip — the teal/brass sections are
   fixed brand grounds and stay as designed. */
@media (prefers-color-scheme: dark){
  :root{
    --paper:#0A1F1E; --paper-2:#0E2A28; --card:#123330;
    --ink:#ECEFF0; --ink-soft:#9FB2AD; --line:rgba(244,240,230,.12);
    --teal-ink:#43AC9C; --brass-ink:#C8A24E;
  }
}
:root[data-theme="dark"]{
  --paper:#0A1F1E; --paper-2:#0E2A28; --card:#123330;
  --ink:#ECEFF0; --ink-soft:#9FB2AD; --line:rgba(244,240,230,.12);
  --teal-ink:#43AC9C; --brass-ink:#C8A24E;
}
body{background:var(--paper);color:var(--ink);font-family:var(--font-display);font-size:1.0625rem;line-height:1.6;-webkit-font-smoothing:antialiased}

/* --- section shells (a3-blockpress/section) --- */
.sec-pad{padding-block:clamp(4rem,9vw,7rem)}
.sec-light{background:var(--paper);color:var(--ink)}
.sec-navy{background:var(--navy);color:var(--on-navy)}
.sec-navy-deep{background:var(--navy-deep);color:var(--on-navy)}
.hero{background:radial-gradient(120% 120% at 85% 0%,#14514A 0%,var(--navy) 44%,var(--navy-deep) 100%);color:var(--on-navy);overflow:hidden}
/* a3 Section renders is-layout-flow: constrain every direct child to the brand width. */
/* Home sections render is-layout-flow: constrain every direct child to the brand width.
   Page templates use CONSTRAINED sections that pad themselves - exclude them or the
   gutter doubles (measured 40px vs the home page's 20px at 390, 2026-09-29). */
.a3-block-section:not(.is-layout-constrained) > *{max-width:var(--wrap);margin-inline:auto;padding-inline:clamp(1.25rem,4vw,2.5rem);box-sizing:border-box}
.a3-block-section{overflow-x:hidden}
/* blocks placed straight in the page, outside a Section, take the same brand width and side gutter */
.wp-block-post-content > .a3-blockpress-row{max-width:var(--wrap);margin-inline:auto;padding-inline:clamp(1.25rem,4vw,2.5rem);box-sizing:border-box}
/* a3 Row/Column grids — BlockPress sizes its own columns (each carries a
   gutter margin-right), so never override column flex-basis/width here.
   Equal-height cards: a3 Row's vertical-alignment control only sets
   justify-content (top/middle/bottom), so matching card heights is a CSS job —
   stretch the columns and let the card fill. Scoped to the card rows so the
   hero and Ask Joe rows keep their natural alignment. */
.a3-blockpress-column__inner{display:flex;flex-direction:column}
.emp-row .a3-blockpress-row__inner,
.lobes-row .a3-blockpress-row__inner{align-items:stretch}
.emp-row .a3-blockpress-column,
.lobes-row .a3-blockpress-column{display:flex}
.emp-row .a3-blockpress-column__inner,
.lobes-row .a3-blockpress-column__inner{flex:1}

/* headings/text must inherit the section colour — DAT global styles set these directly */
.hero h1,.hero h2,.hero h3,.hero p,.sec-navy h1,.sec-navy h2,.sec-navy h3,.sec-navy h4,.sec-navy p,.sec-navy li,
.sec-navy-deep h2,.sec-navy-deep h4,.sec-navy-deep p{color:inherit}
.sec-head{margin-bottom:1rem}
.sec-head h2{font-size:var(--fs-h2);margin:.7rem 0 0;letter-spacing:-.02em;line-height:1.05}
p.lead,p.is-style-lead{margin-top:1rem;font-size:var(--fs-lead);color:var(--ink-soft)}
.sec-navy p.lead,.sec-navy-deep p.lead,.sec-navy p.is-style-lead,.sec-navy-deep p.is-style-lead{color:var(--on-navy-soft)}
p.eyebrow,p.is-style-eyebrow{font-weight:600;font-size:var(--fs-label);letter-spacing:.2em;text-transform:uppercase;color:var(--teal-ink);margin:0}
p.eyebrow.on-navy,.sec-navy p.is-style-eyebrow,.hero p.is-style-eyebrow{color:var(--blue)}
.btn{display:inline-flex;align-items:center;font-weight:600;font-size:var(--fs-body);padding:.7rem 1.2rem;border-radius:999px;text-decoration:none}

/* --- Header parts --- */

/* Co-brand bar */

/* Shared content wrapper */
.wrap {
	width: 100%;
	max-width: var(--wrap);
	margin-inline: auto;
	padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}

/* Main header */
.site-head-inner {
	position: sticky;
	top: 0;
	z-index: 40;
	background: color-mix(in srgb, var(--paper) 90%, transparent);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border-bottom: 1px solid var(--line);
}

/* Offset sticky header below the WordPress admin bar */
body.admin-bar .site-head-inner {
	top: 32px;
}

@media screen and (max-width: 782px) {
	body.admin-bar .site-head-inner {
		top: 46px;
	}
}

.site-head-inner .wrap {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding-block: .85rem;
}

/* Brand */
.brand {
	display: flex;
	align-items: center;
	gap: .6rem;
	color: var(--ink);
	font-size: 1.4rem;
	font-weight: 600;
	letter-spacing: -.02em;
	text-decoration: none;
}

.brand .mark {
	width: 36px;
	height: auto;
	flex: none;
}

/* Gutenberg Navigation block */
nav.wp-block-navigation.main {
	margin-left: auto;
}

/* Desktop navigation styles */
@media (min-width: 861px) {

	nav.wp-block-navigation.main {
		font-size: .95rem;
	}

	nav.wp-block-navigation.main
	.wp-block-navigation__container {
		gap: 1.6rem;
	}

	nav.wp-block-navigation.main
	.wp-block-navigation-item__content {
		color: var(--ink-soft);
		font-weight: 500;
		text-decoration: none;
	}

	nav.wp-block-navigation.main
	.wp-block-navigation-item__content:hover,
	nav.wp-block-navigation.main
	.wp-block-navigation-item__content:focus-visible {
		color: var(--ink);
	}
}

/* Mobile navigation */
@media (max-width: 860px) {

	/*
	 * Backdrop filters can constrain the native fixed mobile overlay,
	 * so disable the filter on mobile.
	 */
	.site-head-inner {
		background: var(--paper);
		backdrop-filter: none;
		-webkit-backdrop-filter: none;
	}

	.site-head-inner .wrap {
		padding-block: .7rem;
	}

	nav.wp-block-navigation.main {
		margin-left: auto;
	}

	/* Style only the native mobile menu button */
	nav.wp-block-navigation.main
	.wp-block-navigation__responsive-container-open {
		display: grid;
		place-items: center;
		width: 44px;
		height: 44px;
		flex: none;
		margin: 0;
		padding: 0;
		border: 0;
		border-radius: 999px;
		background: var(--yellow);
		color: #231800;
		cursor: pointer;
		-webkit-tap-highlight-color: transparent;
	}

	nav.wp-block-navigation.main
	.wp-block-navigation__responsive-container-open svg {
		display: block;
		width: 20px;
		height: 20px;
		fill: currentColor;
	}
}


.site-footer{background:var(--navy-deep);color:var(--on-navy-soft);padding-block:3rem 2rem}
.site-footer .grid{display:flex;justify-content:space-between;gap:2rem;flex-wrap:wrap;border-bottom:1px solid var(--on-navy-line);padding-bottom:2rem}
.site-footer .foot-brand{max-width:20rem}
.site-footer .brand{color:#fff;font-size:1.5rem;margin-bottom:.8rem}
.site-footer p{font-size:var(--fs-small);color:var(--on-navy-soft)}
.site-footer a{color:var(--on-navy-soft);text-decoration:none}
.site-footer a:hover{color:#fff}
.site-footer .cols{display:flex;gap:3rem;flex-wrap:wrap}
.site-footer .cols b{color:#fff;font-size:var(--fs-label);letter-spacing:.1em;text-transform:uppercase;display:block;margin-bottom:.7rem}
.site-footer .cols ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem;font-size:var(--fs-small)}
.site-footer .fine{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:1.4rem;font-size:var(--fs-small)}

/* --- hero --- */
.hero-title{font-size:clamp(2.9rem,7vw,5.4rem);letter-spacing:-.035em;line-height:1.02;margin:.4rem 0 0}
.hero-title .stroke{color:transparent;-webkit-text-stroke:1.5px #5CC4B3}
.hero p.sub{margin-top:1.5rem;font-size:var(--fs-lead);color:var(--on-navy-soft);max-width:32rem}
.brainwrap svg{width:100%;height:auto;display:block;filter:drop-shadow(0 20px 40px rgba(0,0,0,.4))}

/* --- lobe cards --- */
.lobes-row,.emp-row,.lobes-row-feature{margin-top:2.4rem}
.lobe{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem;position:relative;overflow:hidden;width:100%}
.lobe hr.swatch{position:absolute;top:0;left:0;width:100%;height:4px;border:0;margin:0;padding:0;opacity:1}
.lobe p.num{font-weight:600;font-size:var(--fs-label);color:var(--teal-ink);letter-spacing:.05em;margin:0}
.lobe p.num.num-brass{color:var(--brass-ink)}
.lobe.feature p.num.num-brass{color:#E0C27A}
.lobe .lobe-title{font-size:var(--fs-h3);margin:.5rem 0}
.lobe p{color:var(--ink-soft);font-size:var(--fs-body)}
.lobe.feature{background:linear-gradient(100deg,var(--navy) 0%,#155650 100%);color:var(--on-navy);border-color:transparent}
.lobe.feature .lobe-title,.lobe.feature p{color:inherit}
.lobe.feature p:not(.num){color:var(--on-navy-soft)}
p.used{margin-top:1rem;display:flex;gap:.4rem;flex-wrap:wrap;align-items:center;color:var(--on-navy-soft);font-size:var(--fs-small)}
p.used a{font-size:var(--fs-label);font-weight:600;padding:.28rem .7rem;border-radius:999px;background:rgba(67,172,156,.16);color:#9BE0D4;border:1px solid rgba(67,172,156,.3);text-decoration:none;display:inline-block}

/* --- employee cards --- */
.emp{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;position:relative;display:flex;flex-direction:column;width:100%}
.emp .portrait{aspect-ratio:1/1;position:relative;background:linear-gradient(150deg,#0E403C,#43AC9C)}
.emp .portrait figure{margin:0}
.emp .portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.emp .flag,.emp .portrait .role{margin:0}
.emp .portrait svg{position:absolute;inset:0;width:100%;height:100%}
.emp .portrait .role{position:absolute;left:.8rem;bottom:.7rem;font-weight:600;font-size:var(--fs-label);letter-spacing:.12em;text-transform:uppercase;color:#F4F0E6;background:rgba(8,33,31,.8);padding:.3rem .55rem;border-radius:6px}
.emp .emp-name{font-size:var(--fs-h3);margin:1rem 1.05rem .4rem;color:var(--ink)}
.emp .emp-list{margin:0 1.05rem;padding:0;list-style:none;display:flex;flex-direction:column;gap:.35rem;font-size:var(--fs-body);color:var(--ink-soft)}
.emp .emp-list li{padding-left:1.05rem;position:relative}
.emp .emp-list li::before{content:"";position:absolute;left:0;top:.55em;width:6px;height:6px;border-radius:2px;background:var(--blue)}
.emp p.punch{margin:auto 1.05rem 1.1rem;padding-top:.7rem;border-top:1px solid var(--line);font-weight:600;font-size:var(--fs-body);color:var(--ink)}
.emp.joe{outline:2px solid var(--yellow);outline-offset:-2px}
.emp .flag{position:absolute;top:.7rem;right:.7rem;background:var(--yellow);color:#231800;font-weight:600;font-size:var(--fs-label);padding:.2rem .55rem;border-radius:999px;z-index:2}
.emp.emp-more{border-style:dashed;justify-content:center;text-align:center;padding:1.4rem}
.emp.emp-more p{color:var(--ink-soft);margin:0 1.05rem}

/* ================= Joe — the real def-core chat widget ==================
   The widget renders inside a SHADOW ROOT (#def-customer-chat-host), so page
   CSS cannot reach its internals — descendant selectors are useless here.
   What DOES cross the boundary is custom properties: def-core tokenises the
   whole widget on :host, and an outer-document rule on the host element
   overrides :host. So we re-skin it entirely through its own design tokens,
   which also means plugin updates cannot break the styling.
   (The launcher button colour is additionally set via def-core's Branding
   setting, which is the authority for that one control.) */
#def-customer-chat-host{
  --def-cc-font:"Switzer",system-ui,-apple-system,"Segoe UI","Helvetica Neue",Arial,sans-serif;

  /* surfaces — warm ivory, not white */
  --def-cc-bg:#FCFAF4;
  --def-cc-bg-alt:#EAE4D6;
  --def-cc-bg-hover:rgba(67,172,156,.12);
  --def-cc-border:rgba(12,20,19,.12);
  --def-cc-border-input:rgba(12,20,19,.18);

  /* ink */
  --def-cc-text:#0C1413;
  --def-cc-text-light:#4A5551;
  --def-cc-text-muted:#7F8F8B;

  /* primary = Widrow Teal (header, user bubble) */
  --def-cc-primary:#0C302E;
  --def-cc-primary-hover:#0E403C;
  --def-cc-primary-text:#F4F0E6;

  /* the one brass accent — send + launcher */
  --def-cc-btn-color:#C8A24E;
  --def-cc-btn-hover:#A8842F;

  /* geometry + depth to match the in-page panel */
  --def-cc-radius:12px;
  --def-cc-radius-lg:16px;
  --def-cc-radius-sm:8px;
  --def-cc-shadow:0 26px 60px rgba(12,20,19,.28);
  --def-cc-shadow-sm:0 4px 14px rgba(12,20,19,.14);
  --def-cc-focus-ring:0 0 0 3px rgba(67,172,156,.45);
  --def-cc-success:#43AC9C;
}

/* ================= site-wide surfaces (pages, posts, archives) ================= */
/* Title band — the Widrow answer to DAT's grey site-page-title strip. */
.widrow-title-band{padding-block:clamp(3rem,6vw,4.5rem)}
.widrow-title-band .widrow-page-title{font-size:clamp(2rem,5vw,3.4rem);letter-spacing:-.025em;line-height:1.05;margin:.4rem 0 0;color:var(--on-navy)}
.widrow-title-band p.lead{color:var(--on-navy-soft);max-width:46rem;margin-inline:0}
.widrow-title-band > *{margin-inline:0}
.widrow-title-band .widrow-eyebrow,.widrow-title-band .widrow-post-meta{font-size:var(--fs-label);letter-spacing:.14em;text-transform:uppercase;color:var(--blue);margin:0}
.widrow-title-band .widrow-post-meta{margin-top:.9rem;color:var(--on-navy-soft);letter-spacing:.06em}
.widrow-title-band a{color:var(--blue);text-decoration:none}

/* Article body — measure and rhythm for anything Carol publishes. */
/* Left-align the measure with the title band above it. WP's constrained layout
   centres children via a :where() rule (zero specificity), so this wins. */
.widrow-body h2{font-size:clamp(1.5rem,3vw,2.1rem);margin-top:2.4rem;letter-spacing:-.02em}
.widrow-body h3{font-size:clamp(1.2rem,2.4vw,1.5rem);margin-top:1.8rem;letter-spacing:-.015em}
.widrow-body p,.widrow-body li{color:var(--ink-soft);font-size:1.06rem;line-height:1.7}
.widrow-body a{color:var(--teal-ink);text-decoration:underline;text-underline-offset:.15em}
/* A core Button rendered as <a> keeps the button colours, not the body link colour (ties .widrow-body a,
   comes later; .btn-* rules are more specific and still win). */
.widrow-body a:where(.wp-block-button__link){color:#231800;text-decoration:none}
.widrow-body a:hover{color:var(--ink)}
.widrow-body blockquote{border-left:3px solid var(--yellow);padding-left:1.1rem;margin-left:0;font-size:1.12rem}
.widrow-body img,.widrow-body .wp-block-image img{border-radius:var(--radius)}
.widrow-body .widrow-featured img{width:100%;height:auto;border-radius:var(--radius);margin-bottom:1.6rem}
.widrow-body code,.widrow-body pre{background:var(--paper-2);border-radius:6px}
.widrow-body pre{padding:1rem;overflow-x:auto}
.widrow-tags{margin-top:2.4rem;padding-top:1.2rem;border-top:1px solid var(--line);font-size:var(--fs-small)}
.widrow-tags a{color:var(--teal-ink);text-decoration:none;border:1px solid var(--line);border-radius:999px;padding:.2rem .7rem;margin-right:.35rem;display:inline-block}

/* Blog cards — a3 Post Cards, styled to match the home page's case-study card:
   teal ground, bright-teal rule, white title, muted body. Date and author are
   OFF via the block's own attributes; the comment/category footer rows have no
   such attribute, so they are suppressed here. */
.widrow-archive,.widrow-related{background:var(--navy-deep);color:var(--on-navy)}
.widrow-more-heading{font-size:clamp(1.4rem,3vw,2rem);margin-bottom:1.8rem;letter-spacing:-.02em;color:var(--on-navy)}

.widrow-postcards .a3-post-grid-item{
  background:linear-gradient(180deg,rgba(67,172,156,.10),transparent);
  border:1px solid var(--blue);border-radius:var(--radius);overflow:hidden;
  display:flex;flex-direction:column;transition:transform .18s ease,box-shadow .18s ease}
.widrow-postcards .a3-post-grid-item:hover{transform:translateY(-4px);box-shadow:0 18px 34px rgba(0,0,0,.25)}
.widrow-postcards img{width:100%;height:auto;display:block}

.widrow-postcards h2,.widrow-postcards h3,.widrow-postcards .entry-title{
  font-size:1.15rem;line-height:1.25;letter-spacing:-.015em;margin:1rem 1.1rem .5rem}
.widrow-postcards h2 a,.widrow-postcards h3 a,.widrow-postcards .entry-title a{
  color:#fff;text-decoration:none;font-weight:600}
.widrow-postcards h2 a:hover,.widrow-postcards h3 a:hover,.widrow-postcards .entry-title a:hover{color:var(--blue)}
.widrow-postcards p,.widrow-postcards .a3-block-post-grid-excerpt,.widrow-postcards .a3-block-post-grid-excerpt-ctrl p{
  color:var(--on-navy-soft);font-size:var(--fs-small);line-height:1.6;margin:0 1.1rem 1rem}
.widrow-postcards .a3-block-post-grid-more-ctrl{margin:auto 1.1rem 1.2rem 1.1rem}
.widrow-postcards .a3-block-post-grid-more-link{
  display:inline-block;font-weight:600;font-size:var(--fs-small);letter-spacing:.01em;
  color:var(--blue);text-decoration:none}
.widrow-postcards .a3-block-post-grid-more-link:hover{color:var(--yellow)}

/* Meta furniture the block always renders but this design does not want. */
.widrow-postcards .a3-block-post-grid-footer,
.widrow-postcards .a3-block-post-grid-footer-1,
.widrow-postcards .a3-block-post-grid-footer-2,
.widrow-postcards .post-grid-footer-1,
.widrow-postcards .post-grid-footer-2,
.widrow-postcards .postcards-author,
.widrow-postcards .postcards-comments,
.widrow-postcards .a3-block-post-grid-date,
.widrow-postcards .a3-block-post-grid-cat-ctrl,
.widrow-postcards .a3-block-post-grid-comment-ctrl,
.widrow-postcards .a3-block-post-grid-author-ctrl,
.widrow-postcards .a3-block-post-grid-date-ctrl{display:none}

/* Search + pagination */
.widrow-search{max-width:34rem;margin-bottom:2.4rem}
.widrow-search input[type="search"]{border:1px solid var(--on-navy-line);border-radius:999px;padding:.7rem 1.1rem;font-family:inherit;background:rgba(244,240,230,.06);color:var(--on-navy)}
.widrow-search button{background:var(--yellow);color:#231800;border:none;border-radius:999px;padding:.7rem 1.3rem;font-weight:600;cursor:pointer}
.widrow-archive .a3-blockpress-pagination a,.widrow-archive .page-numbers{color:var(--on-navy-soft);text-decoration:none;padding:.4rem .75rem;border:1px solid var(--on-navy-line);border-radius:8px;margin-right:.35rem}
.widrow-archive .page-numbers.current{background:var(--blue);color:#08211F;border-color:transparent}
.chat{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 26px 60px rgba(12,20,19,.2);overflow:hidden}
.chat .top{display:flex;align-items:center;gap:.7rem;padding:.9rem 1.1rem;background:var(--header-navy);color:#fff}
.chat .top .av{width:34px;height:34px;border-radius:50%;background:linear-gradient(150deg,var(--blue),var(--blue-deep));display:grid;place-items:center;font-weight:600;color:#08211F}
.chat .top small{color:var(--blue);display:block;font-size:.72rem}
.chat .top .name{font-weight:600;line-height:1.1}
.bubble{max-width:82%;padding:.7rem .95rem;border-radius:14px;font-size:.92rem;line-height:1.5}
.bubble.them{background:var(--card);border:1px solid var(--line);border-bottom-left-radius:4px;align-self:flex-start}
.bubble.me{background:var(--navy);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}
.bubble.them b{color:var(--teal-ink)}
@media (prefers-reduced-motion:reduce){}

/* --- def-core Customer Chat widget skin (theming contract, def-core >= 5.5.5) ---
   The widget renders in a Shadow DOM; only --def-cc-* custom properties cross
   the boundary, set here on the host element (outer-document rule beats :host).
   Target design: chatbox.png (Widrow style kit) — teal header, ivory canvas,
   deep-teal user bubbles, brass CTAs, Switzer type. */
#def-customer-chat-host {

	/* Brand CTAs (Send, submit, focus ring) — brass with dark ink */
	--def-cc-primary: #C8A24E;
	--def-cc-primary-hover: #A8842F;
	--def-cc-primary-text: #0C1413;

	/* Header — signature teal */
	--def-cc-header-bg: #0E403C;
	--def-cc-header-text: #ffffff;
	--def-cc-header-border: #0C302E;
	--def-cc-header-icon: rgba(255, 255, 255, 0.8);
	--def-cc-header-icon-hover: #ffffff;
	--def-cc-header-icon-hover-bg: rgba(255, 255, 255, 0.15);

	/* Message canvas — warm ivory paper */
	--def-cc-messages-bg: #F4F0E6;
	--def-cc-bubble-assistant-bg: #FFFDF8;
	--def-cc-bubble-assistant-text: #0C1413;
	--def-cc-bubble-assistant-border: #E7E1D2;
	--def-cc-bubble-user-bg: #0C302E;
	--def-cc-bubble-user-text: #F4F0E6;
	--def-cc-bubble-radius: 16px;
	--def-cc-link: #1E7A70;

	/* Neutrals — warmed to match the paper */
	--def-cc-text: #0C1413;
	--def-cc-text-light: #5E6B68;
	--def-cc-text-muted: #5E6B68;
	--def-cc-text-form: #33403D;
	--def-cc-bg-alt: #EFEADD;
	--def-cc-bg-hover: #EAE4D4;
	--def-cc-border: #E3DCCB;
	--def-cc-border-input: #D9D3C4;

	/* Welcome chips + compliance footer */
	--def-cc-chip-bg: #FFFDF8;
	--def-cc-footer-bg: #F4F0E6;

	/* Type — Switzer, loaded by the theme */
	--def-cc-font: "Switzer", system-ui, -apple-system, "Segoe UI", "Helvetica Neue", Arial, sans-serif;

	/* Loading mark — the animated signal-W (set in Digital Employees settings) */
	--def-cc-loading-mark-size: 56px;
}
.int-more a{font-weight:600;color:var(--teal-ink)}
.int-more{text-align:center}

/* --- chat launcher on brass: dark ink + brand focus ring --- */
#def-customer-chat-host::part(trigger){color:#0C1413}
#def-customer-chat-host::part(trigger):focus-visible{outline-color:#A8842F}

/* --- digital brain: rotating quadrant bubbles (CSS-only, 28s cycle) --- */
.brainwrap{position:relative}
.brainwrap .bq{transform-box:fill-box;transform-origin:center}
.brainwrap .bq1{animation:bwq1 28s ease-in-out infinite}
.brainwrap .bq2{animation:bwq2 28s ease-in-out infinite}
.brainwrap .bq3{animation:bwq3 28s ease-in-out infinite}
.brainwrap .bq4{animation:bwq4 28s ease-in-out infinite}
@keyframes bwb1{0%{opacity:0;transform:translateY(9px)}2.5%,22.5%{opacity:1;transform:translateY(0)}25%,100%{opacity:0;transform:translateY(9px)}}
@keyframes bwb2{0%,25%{opacity:0;transform:translateY(9px)}27.5%,47.5%{opacity:1;transform:translateY(0)}50%,100%{opacity:0;transform:translateY(9px)}}
@keyframes bwb3{0%,50%{opacity:0;transform:translateY(9px)}52.5%,72.5%{opacity:1;transform:translateY(0)}75%,100%{opacity:0;transform:translateY(9px)}}
@keyframes bwb4{0%,75%{opacity:0;transform:translateY(9px)}77.5%,97.5%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(9px)}}
@keyframes bwq1{0%{transform:scale(1);filter:brightness(1)}2.5%,22.5%{transform:scale(1.05);filter:brightness(1.16)}25%,100%{transform:scale(1);filter:brightness(1)}}
@keyframes bwq2{0%,25%{transform:scale(1);filter:brightness(1)}27.5%,47.5%{transform:scale(1.05);filter:brightness(1.16)}50%,100%{transform:scale(1);filter:brightness(1)}}
@keyframes bwq3{0%,50%{transform:scale(1);filter:brightness(1)}52.5%,72.5%{transform:scale(1.05);filter:brightness(1.16)}75%,100%{transform:scale(1);filter:brightness(1)}}
@keyframes bwq4{0%,75%{transform:scale(1);filter:brightness(1)}77.5%,97.5%{transform:scale(1.05);filter:brightness(1.16)}100%{transform:scale(1);filter:brightness(1)}}
@media (prefers-reduced-motion:reduce){.brainwrap .bq{animation:none}}

/* --- joe CTA card (replaces the type-able preview mock) --- */
.joe-cta{display:block;position:relative;max-width:300px;margin-inline:auto;border-radius:18px;overflow:hidden;background:linear-gradient(150deg,#0E403C,#43AC9C);box-shadow:0 26px 60px rgba(12,20,19,.28);text-decoration:none;transition:transform .2s ease,box-shadow .2s ease}
.joe-cta:hover{transform:translateY(-4px);box-shadow:0 32px 70px rgba(12,20,19,.36)}
.joe-cta img{display:block;width:100%;height:auto}
.joe-cta figure{margin:0}
p.joe-cta-flag,p.joe-cta-name{margin:0}
.joe-cta-flag{position:absolute;top:12px;right:12px;z-index:2;background:var(--yellow);color:#231800;font-size:var(--fs-label);font-weight:600;padding:.3rem .7rem;border-radius:999px}
.joe-cta-name{position:absolute;left:0;right:0;bottom:0;padding:2rem 1rem .85rem;background:linear-gradient(transparent,rgba(8,33,31,.88));color:#fff;font-weight:600;font-size:1.05rem}
.joe-cta-name small{display:block;font-weight:500;font-size:var(--fs-small);color:#cfd8d5}
.joe-cta-name small b{color:#63C3B4}

/* --- accessibility: WCAG 2.2 AA (2026-09-24 audit) --- */
/* anchors land clear of the sticky header; focused controls scroll clear of the fixed Ask Joe launcher */
html{scroll-padding-top:5rem;scroll-padding-bottom:5.5rem}
/* one focus ring for every surface: light inner band + dark outer band, so one of them always contrasts */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid #0C1413;outline-offset:2px;box-shadow:0 0 0 2px #FCFAF4}
/* digital-brain labels sit on the page ground, which flips in dark mode */
.brainwrap .lobe-tag{fill:var(--ink)}
.brainwrap .lobe-tag[fill="#A8842F"]{fill:var(--brass-ink)}
/* the deep-brass text colour and brass pills follow the scheme */
body .has-widrow-brass-deep-color,body .has-widrow-brass-deep-color a{color:var(--brass-ink) !important}
.has-widrow-brass-background-color{color:#231800}
/* scroll-to-top moves to the left so the Ask Joe launcher (bottom right) never covers it */
#scrollTopButton{left:1rem;right:auto}
/* platform-surface "more" links reach the 24px target minimum */
.wid-surf__more a{display:inline-block;padding-block:.25rem}
/* dark scheme: theme.json fixes heading colour for light grounds; on flipped grounds headings follow the ink */
@media (prefers-color-scheme: dark){h1,h2,h3,h4,h5,h6{color:var(--ink)}}
:where(:root[data-theme="dark"]) :is(h1,h2,h3,h4,h5,h6){color:var(--ink)}
/* hero diagram caption: brighter brass so it passes on the lightest hero-gradient stop */
.hero svg text[fill="#C8A24E"]{fill:#E0C27A}
/* vendor-setting section (Site Editor Additional CSS fixes light-ground colours and small sizes): follow the tokens */
body .wid-vendor-setting h2{color:var(--ink);font-size:var(--fs-h2)}
body .wid-vendor-setting > p,body .wid-vendor-setting .wp-block-column > p{color:var(--ink-soft)}
body .wid-vendor-setting th{font-size:var(--fs-label)}
body .wid-vendor-setting td{font-size:var(--fs-body)}
/* enquiry partner strip (styles live in the Gravity Form's HTML field): type scale */
body .widrow-enquiry-partner__title{font-size:var(--fs-label)}
body .widrow-enquiry-partner__text{font-size:var(--fs-body)}
body .widrow-enquiry-partner__cta{font-size:var(--fs-body)}
/* vendor table cells: Regular, not the parent's Light */
body .wid-vendor-setting td{font-weight:400}
/* enquiry form labels + required marker: the 15px small-print floor */
body #gform_wrapper_1 .gform-field-label__text,body .widrow-enquiry #gform_wrapper_1 .gfield_required{font-size:var(--fs-small)}
/* enquiry copy (styles live in synced block 322): body size */
body .widrow-enquiry .widrow-enquiry__copy p{font-size:var(--fs-body)}
/* phones: the Ask Joe launcher steps aside while the chat is open (it overlapped the panel; the X closes the chat) */
@media (max-width:480px){#def-customer-chat-host[data-open]::part(trigger){display:none}}

/* Post cards (.widrow-postcards, the archive grid): the bordered card fills its
   grid cell so every box in a row is the same height, however many lines the
   title wraps. Mobile stacks, where 100% height is a no-op. */
.widrow-postcards > li > .wp-block-group{height:100%;box-sizing:border-box}
.wid-gov p{margin:0}

.wid-gov__card{background:#10362A;border:1px solid #1E4436;border-radius:10px;padding:18px 18px 20px}
figure.wid-gov__icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#C9A227;border-radius:8px;margin:0 0 .6rem}
figure.wid-gov__icon img{width:17px;height:17px}
.wid-gov__t{font-weight:600;color:#fff;font-size:var(--fs-h3);line-height:1.25;margin-bottom:.3rem}
.wid-gov__b{color:#A9BEB5;font-size:var(--fs-body);line-height:1.5}
.wid-gov__short{display:flex;gap:18px;align-items:baseline;background:#071A14;border-radius:10px;padding:18px 22px;margin-top:16px}
.wid-gov__shorth{color:#C9A227;font-weight:600;font-size:var(--fs-body);white-space:nowrap}
.wid-gov__shortb{color:#DCE7E2;font-size:var(--fs-body);line-height:1.55}
.wid-gov__shortb a{color:#C9A227;font-weight:600}

@media(max-width:781px){
.wid-gov__short{flex-direction:column;gap:6px}
.wid-gov__shorth{white-space:normal}
}
.wid-priv__band{display:flex;gap:18px;align-items:flex-start;background:#0C2B21;border-radius:12px;padding:20px 24px;margin-top:16px}
figure.wid-priv__shield{width:24px;height:24px;flex-shrink:0;margin:2px 0 0}
figure.wid-priv__shield img{width:24px;height:24px}
.wid-priv__bandh{color:#fff;font-weight:600;font-size:var(--fs-h3);margin-bottom:.2rem}
.wid-priv__bandb{color:#B9CBC3;font-size:var(--fs-body);line-height:1.55;max-width:80ch}
.wid-priv__bandb a{color:#C9A227;font-weight:600}
@media(max-width:781px){
.wid-priv__h{max-width:none}
}
.wid-surf p{margin:0}
.wid-surf{counter-reset:surf;border-top:1px solid #DCD5C4}
.wid-surf__row{border-bottom:1px solid #DCD5C4}
.wid-surf__row summary{counter-increment:surf}
.wid-surf__row summary::before{content:counter(surf,decimal-leading-zero);color:var(--brass-ink);font-size:var(--fs-label);letter-spacing:.08em;font-weight:600}
.wid-surf__row > :not(summary){margin-left:2.3rem;margin-right:.2rem;color:var(--ink-soft)}
.wid-surf__row > :last-child:not(summary){margin-bottom:1.1rem}
@media(max-width:781px){.wid-surf__row > :not(summary){margin-left:.2rem}}
.wid-surf__row summary{cursor:pointer;list-style:none;display:flex;gap:.7rem;align-items:baseline;padding:.9rem .2rem;font-weight:600;color:var(--ink);font-size:var(--fs-body)}
.wid-surf__row summary::-webkit-details-marker{display:none}
.wid-surf__row summary::after{content:"+";margin-left:auto;color:var(--brass-ink);font-weight:600;font-size:1.15rem;line-height:1}
.wid-surf__row[open] .wid-surf__row summary::after{content:"\2212"}
.wid-surf__row > p,.wid-surf__row > ul li{font-size:var(--fs-body);line-height:1.55}
.wid-surf__row > ul{padding-left:1.1rem;display:flex;flex-direction:column;gap:.35rem;list-style:disc}
.wid-surf__more{margin-top:.7rem}
.wid-surf__more a{color:var(--brass-ink);font-weight:600;font-size:var(--fs-body);text-decoration:none}
.wid-surf__row summary:focus-visible{outline:3px solid #C9A227;outline-offset:2px}


/* the digital-brain figure wrapper (was inline on the page) */
.a3-block-section > .brain-figure{max-width:440px;margin:0 auto 2.5rem}

/* comparison table (core Table block; column identity only - layout is the block's) */
.wid-compare-table table{min-width:640px}
.wid-compare-table thead th{font-size:var(--fs-label);letter-spacing:.11em;text-transform:uppercase;font-weight:600;color:var(--ink-soft);border:0}
.wid-compare-table th:last-child,.wid-compare-table td:last-child{background:#0C2B21;color:#fff;border-color:#1E4436}
.wid-compare-table thead th:last-child{color:#C9A227}
.wid-compare-table td:first-child{font-weight:600}

/* enquiry partner strip (moved out of synced block 322, 2026-09-29) */
.widrow-enquiry-partner { display: flex; align-items: center; justify-content: space-between; gap: 24px; width: 100%; box-sizing: border-box; background: #0C302E; padding: 14px 22px; border-radius: 12px 12px 0 0; border-bottom: 1px solid rgba(244, 240, 230, 0.14); margin: 0; }
.widrow-enquiry-partner__copy { min-width: 0; }
.widrow-enquiry-partner__title { margin: 0 0 4px !important; color: #F4F0E6; font-size: 0.78rem; font-weight: 700; line-height: 1.35; letter-spacing: 0.02em; }
.widrow-enquiry-partner__text { margin: 0 !important; max-width: 760px; color: #D9D3C4; font-size: 0.78rem; line-height: 1.45; }
@media (max-width: 781px){.widrow-enquiry-partner { flex-direction: column; align-items: flex-start; gap: 14px; padding: 18px 20px; }}
.widrow-enquiry-partner__title a { color: inherit; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(200,162,78,.6); }
p.widrow-enquiry-partner__title,p.widrow-enquiry-partner__text{margin:0}
