:root {
  --weblyc-primary: var(--wp--preset--color--primary, #09342b);
  --weblyc-accent: var(--wp--preset--color--accent, #e5f937);
  --weblyc-ink: var(--wp--preset--color--ink, #3b3b33);
  --weblyc-base: var(--wp--preset--color--base, #f8f8f3);
  --weblyc-proof: var(--wp--preset--color--proof, #ded3bf);
  --weblyc-border: rgb(59 59 51 / 20%);
  --weblyc-gutter: 24px;
  --weblyc-radius: 6px;
  --weblyc-radius-lg: 12px;
  --weblyc-button-height: 48px;
  --weblyc-content-gap: 24px;
  --weblyc-title-measure: 928px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { overflow-x: clip; font-size: 16px; }
a, button, input, textarea, select { transition: color 150ms ease-out, background-color 150ms ease-out, border-color 150ms ease-out, transform 150ms ease-out; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 3px solid var(--weblyc-accent); outline-offset: 3px; }
.wp-site-blocks > * { margin-block-start: 0; }

.site-header { position: sticky; z-index: 20; top: 0; padding-inline: var(--weblyc-gutter); min-height: 72px; border-bottom: 1px solid var(--weblyc-border); background: rgb(248 248 243 / 82%); backdrop-filter: blur(20px); }
.site-header__inner { min-height: 72px; gap: 24px; }
.site-header .wp-block-navigation { margin-left: auto; }
.site-header .wp-block-navigation__container { gap: 24px; }
.site-header__mobile-cta { display: none; }
.site-header + main, .wp-block-template-part + main { margin-block-start: 0 !important; }
.wp-block-button__link { display: inline-flex; min-height: var(--weblyc-button-height); align-items: center; justify-content: center; padding: 12px 24px; border-radius: var(--weblyc-radius); font-family: var(--wp--preset--font-family--utility); font-size: 13px; font-weight: 500; line-height: 1; letter-spacing: .04em; text-transform: uppercase; }

.section { padding: 80px var(--weblyc-gutter); }
.section--compact { padding-block: 56px; }
.tracebuild-page-hero__inner { width: min(100%, var(--wp--style--global--wide-size, 1366px)); margin-inline: auto; }
.section--dark { color: var(--wp--preset--color--on-dark); background: var(--weblyc-primary); }
.section--neutral { background: var(--wp--preset--color--neutral); }
.section--accent { background: var(--weblyc-accent); }
.section--image { position: relative; isolation: isolate; background-position: center; background-size: cover; color: var(--wp--preset--color--on-dark); }
.section--image::before { content: ""; position: absolute; z-index: -1; inset: 0; background: rgb(9 52 43 / 78%); }
.eyebrow { margin: 0; font-family: var(--wp--preset--font-family--utility); font-size: 13px; font-weight: 500; letter-spacing: .05em; text-transform: uppercase; }
.lead { max-width: 620px; font-size: 16px; }
.stack > * + * { margin-block-start: 24px; }
.stack--tight > * + * { margin-block-start: var(--weblyc-content-gap); }
.stack--large > * + * { margin-block-start: 48px; }
.measure { max-width: 690px; }
.section-title, .section h2 { max-width: min(100%, var(--weblyc-title-measure)); margin-inline: 0; text-wrap: balance; }
.section .measure:has(> h2) { max-width: var(--weblyc-title-measure); }
.section-header, .case-study-showcase__intro { display: flex; max-width: min(100%, var(--weblyc-title-measure)); margin: 0; flex-flow: column; align-items: flex-start; gap: var(--weblyc-content-gap); }
.section-header > *, .case-study-showcase__intro > * { margin: 0; }
.section-header .lead, .case-study-showcase__intro .lead { max-width: 620px; }
.section-header--center, .case-study-showcase__intro { margin-inline: auto; align-items: center; text-align: center; }
.section-header--center .lead, .case-study-showcase__intro .lead { margin-inline: auto; }
.tracebuild-section-intro { display: grid; width: 100%; grid-template-columns: minmax(0, var(--weblyc-title-measure)) auto; gap: 48px; align-items: center; justify-content: space-between; }
.tracebuild-section-intro .section-header { width: 100%; }
.tracebuild-section-intro .wp-block-buttons { margin: 0; justify-self: end; }

.hero { padding-block: clamp(96px, 12vw, 180px); }
.hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(340px, .86fr); align-items: center; gap: 72px; }
.hero__content { display: flex; flex-flow: column; align-items: flex-start; gap: var(--weblyc-content-gap); }
.hero__content > * { margin: 0; }
.hero__content > * + * { margin-block-start: 0; }
.hero__content h1 { max-width: 750px; margin: 0; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.hero__visual { min-height: 480px; width: 100%; object-fit: cover; border-radius: var(--weblyc-radius-lg); }
.hero--center { text-align: center; }
.hero--center .lead, .hero--center .hero__actions { margin-inline: auto; justify-content: center; }
.hero--minimal { padding-bottom: 96px; }
.hero--minimal .hero__content { max-width: 900px; }
.hero--visual { min-height: 560px; display: grid; align-content: end; }
.hero-landing { position: relative; min-height: 100svh; height: 100svh; max-height: 100svh; padding: 0; color: var(--wp--preset--color--on-dark); }
.hero-landing .wp-block-cover__background { background: linear-gradient(90deg, rgb(0 0 0 / 56%) 0%, rgb(0 0 0 / 42%) 36%, rgb(0 0 0 / 14%) 70%, rgb(0 0 0 / 8%) 100%) !important; opacity: 1 !important; }
.site-header + main .hero-landing, .wp-block-template-part + main .hero-landing { min-height: calc(100svh - 96px); height: calc(100svh - 96px); max-height: calc(100svh - 96px); }
.hero-landing .wp-block-cover__inner-container { display: flex; width: 100%; height: 100%; min-height: 0; padding: 0; align-self: stretch; }
.hero-landing__frame { display: grid; width: 100%; max-width: none !important; height: 100%; min-height: 0; margin: 0 !important; grid-template-rows: minmax(0, 1fr) auto; }
.hero-landing__content { display: grid; width: 100%; max-width: none !important; margin: 0 !important; padding: clamp(72px, 10vh, 120px) max(var(--weblyc-gutter), calc((100% - 1366px) / 2)) clamp(24px, 4vh, 48px); align-content: center; }
.hero-landing__copy { display: flex; width: min(700px, 100%); max-width: 700px; margin: 0 !important; flex-flow: column; align-items: flex-start; gap: var(--weblyc-content-gap); }
.hero-landing__copy > * { margin: 0; }
.hero-landing__copy .eyebrow { color: inherit; }
.hero-landing__copy h1 { max-width: 700px; margin: 0; text-wrap: balance; }
.hero-landing__copy .lead { max-width: 620px; margin: 0; font-size: 16px; line-height: 1.4; }
.hero-landing__stats { position: relative; z-index: 1; width: 100%; max-width: none !important; padding: 24px var(--weblyc-gutter); color: var(--weblyc-ink); background: var(--weblyc-proof); }
.hero-landing__stats::before, .hero-landing__stats::after { display: none; }
.hero-landing__stats-grid { position: relative; z-index: 1; display: grid; max-width: 1366px; margin-inline: auto; grid-template-columns: minmax(220px, 1.25fr) repeat(3, minmax(0, 1fr)); align-items: center; gap: 12px; }
.hero-landing__stats-title { max-width: 360px; margin: 0; font-size: clamp(1.5rem, 2vw, 1.875rem); line-height: 1.08; text-wrap: balance; }
.hero-landing__metric { display: grid; min-width: 0; min-height: 64px; padding-left: 12px; border-left: 1px solid var(--weblyc-border); grid-template-rows: 64px auto; align-items: end; }
.hero-landing__metric-number { align-self: end; margin: 0; font-size: clamp(1.75rem, 2.25vw, 2.75rem); line-height: 1; }
.hero-landing__metric-logo { display: flex; height: 64px; margin: 0; align-self: end; align-items: center; background: var(--wp--preset--color--proof); isolation: isolate; }
.hero-landing__metric-logo img { display: block; max-width: min(100%, 176px); max-height: 64px; width: auto; height: auto; object-fit: contain; object-position: left center; mix-blend-mode: multiply !important; }
.hero-landing__metric-logo--bizsafe img { max-width: 132px; }
.hero-landing__metric-label { align-self: start; margin: 6px 0 0; font-family: var(--wp--preset--font-family--utility); font-size: 12px; line-height: 1.35; letter-spacing: .04em; text-transform: uppercase; }
@media (min-width: 768px) {
  /* The people-free landscape hero is displayed at its native 1697:927 ratio. */
  .hero-landing,
  .site-header + main .hero-landing,
  .wp-block-template-part + main .hero-landing {
    min-height: 0;
    height: auto;
    max-height: none;
    aspect-ratio: 1697 / 927;
  }
  .hero-landing__copy { width: min(920px, 100%); max-width: 920px; }
  .hero-landing__copy h1 { white-space: nowrap; }
  .hero-landing .wp-block-cover__image-background { z-index: 1; width: 100%; height: 100%; object-fit: contain; object-position: center; }
  .hero-landing .wp-block-cover__background { z-index: 2; }
  .hero-landing .wp-block-cover__inner-container { position: relative; z-index: 3; }
}

.trust-bar { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; text-align: center; }
.trust-bar__item { min-width: 0; padding: 6px; }
.trust-bar__number { display: block; font-size: clamp(2rem, 4vw, 3.25rem); line-height: 1; }
.trust-bar__label { display: block; margin-top: 12px; font-size: 13px; }
.card-grid { display: grid; gap: 24px; grid-template-columns: repeat(var(--weblyc-columns, 3), minmax(0, 1fr)); }
.card-grid.is-style-weblyc-four-columns, .benefit-grid.is-style-weblyc-four-columns, .process-grid.is-style-weblyc-four-columns, .stat-grid.is-style-weblyc-four-columns { --weblyc-columns: 4; }
.card { min-height: 100%; border: 1px solid var(--weblyc-border); border-radius: var(--weblyc-radius); overflow: hidden; background: var(--wp--preset--color--surface); }
.card:hover { border-color: rgb(59 59 51 / 45%); transform: translateY(-2px); }
.card__image { display: block; width: 100%; }
.card > .card__image { overflow: hidden; aspect-ratio: 16 / 10; }
.card > .card__image > img { display: block; width: 100%; height: 100%; object-fit: cover; }
.card__body { padding: 24px; }
.card__body > * + * { margin-block-start: 12px; }
.card__link { display: inline-flex; margin-top: 24px; font-family: var(--wp--preset--font-family--utility); font-size: 13px; letter-spacing: .04em; text-transform: uppercase; }
.case-study-showcase { display: grid; gap: 72px; }
.case-study-showcase > .tracebuild-projects-grid { width: min(100%, 1366px); margin-inline: auto; }
.case-study-showcase > .case-study-showcase__action { display: flex; width: min(100%, 1366px); margin: 0 auto; justify-content: center; }
.case-study-showcase__link { margin: 0; }
.case-study-showcase__link a { display: inline-flex; align-items: center; gap: 12px; color: inherit; font-family: var(--wp--preset--font-family--utility); font-size: 13px; font-weight: 500; letter-spacing: .05em; text-decoration: none; text-transform: uppercase; }
.case-study-showcase__link a > span { display: grid; width: 48px; height: 48px; border-radius: 50%; background: var(--weblyc-accent); color: var(--weblyc-ink); font-family: var(--wp--preset--font-family--body); font-size: 20px; letter-spacing: 0; place-items: center; text-transform: none; }
.case-study-showcase__link a:hover > span { transform: translate(2px, -2px); }
.case-study-grid { display: grid; width: 100%; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.case-study-card { position: relative; display: block; min-width: 0; overflow: hidden; aspect-ratio: 3 / 4; border-radius: var(--weblyc-radius); background: var(--weblyc-primary); color: var(--wp--preset--color--on-dark); isolation: isolate; }
.case-study-card__image { width: 100%; height: 100%; object-fit: cover; transition: transform 200ms ease-out; }
.case-study-card__image--placeholder { display: block; background: linear-gradient(135deg, var(--weblyc-primary), var(--weblyc-ink)); }
.case-study-card__overlay { position: absolute; z-index: 1; inset: 0; display: flex; flex-flow: column; justify-content: flex-end; gap: 24px; padding: 24px; background: linear-gradient(180deg, rgb(0 0 0 / 0%) 35%, rgb(0 0 0 / 90%) 100%); }
.case-study-card__topline { display: flex; justify-content: space-between; gap: 24px; align-items: flex-end; }
.case-study-card__meta { display: grid; gap: 6px; font-family: var(--wp--preset--font-family--utility); font-size: 13px; font-weight: 500; letter-spacing: .05em; text-transform: uppercase; }
.case-study-card__meta strong { font: inherit; }
.case-study-card__title { margin: 0; color: inherit; text-transform: none; }
.case-study-card__arrow { display: grid; width: 36px; height: 36px; border: 1px solid rgb(248 248 243 / 65%); border-radius: 50%; font-family: var(--wp--preset--font-family--body); font-size: 18px; letter-spacing: 0; place-items: center; }
.case-study-card__logo { width: auto; max-width: min(180px, 70%); max-height: 36px; object-fit: contain; object-position: left bottom; }
.case-study-card:hover .case-study-card__image { transform: scale(1.025); }
.case-study-grid__empty { margin: 0; padding: 24px; border: 1px dashed var(--weblyc-border); color: var(--weblyc-ink); text-align: center; }
.service-list { border-top: 1px solid var(--weblyc-border); }
.service-list__item { display: grid; grid-template-columns: 96px 1fr auto; gap: 24px; align-items: start; padding-block: 24px; border-bottom: 1px solid var(--weblyc-border); }
.service-list__index { font-family: var(--wp--preset--font-family--utility); font-size: 13px; }
.image-text { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: center; }
.image-text--reverse > :first-child { order: 2; }
.image-text.is-style-weblyc-image-right > :first-child { order: 2; }
.image-text__media { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--weblyc-radius-lg); }
.client-marquee { overflow: hidden; padding-block: 36px; border-bottom: 1px solid var(--weblyc-border); background: var(--weblyc-base); }
.client-marquee__label { margin: 0 0 24px; color: var(--weblyc-ink); font-family: var(--wp--preset--font-family--utility); font-size: 13px; font-weight: 500; letter-spacing: .05em; text-align: center; text-transform: uppercase; }
.client-marquee__viewport { width: 100%; overflow: hidden; mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent); }
.client-marquee__track { display: flex; width: max-content; animation: weblyc-marquee 30s linear infinite; }
.client-marquee__set { display: flex; flex: none; gap: 48px; padding-right: 48px; align-items: center; }
.client-marquee__item { display: grid; width: 260px; height: 88px; margin: 0; place-items: center; }
.client-marquee__item img { display: block; width: auto; max-width: 100%; height: auto; max-height: 64px; object-fit: contain; }
@keyframes weblyc-marquee { to { transform: translateX(-50%); } }
.purpose { display: grid; width: min(calc(100% - (var(--weblyc-gutter) * 2)), 1366px); margin-inline: auto; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 72px; align-items: center; padding: 64px 0 80px; }
.purpose__media { display: flex; width: 100%; margin: 0; overflow: hidden; aspect-ratio: 1 / 1; border-radius: var(--weblyc-radius); align-items: center; justify-content: center; }
.purpose__media img { display: block; width: 110%; max-width: none; min-height: 130%; object-fit: cover; }
.purpose__content { width: 100%; align-self: center; }
.purpose__content.section-header { max-width: 620px; }
.purpose__content h2 { max-width: 620px; margin: 0; text-wrap: balance; }
.benefit-grid, .process-grid { display: grid; gap: 24px; grid-template-columns: repeat(var(--weblyc-columns, 3), minmax(0, 1fr)); }
.benefit, .process-step { padding: 24px 0; border-top: 1px solid currentColor; }
.benefit__icon, .process-step__number { display: grid; width: 48px; height: 48px; margin-bottom: 24px; border: 1px solid currentColor; border-radius: 50%; place-items: center; font-family: var(--wp--preset--font-family--utility); font-size: 13px; }
.stat-grid { display: grid; grid-template-columns: repeat(var(--weblyc-columns, 4), minmax(0, 1fr)); gap: 24px; }
.stat { padding: 24px 0; border-top: 1px solid var(--weblyc-border); }
.stat strong { display: block; font-size: clamp(2.5rem, 5vw, 4.5rem); font-weight: 400; line-height: 1; }
.tracebuild-certification-mark { display: flex; height: 72px; margin: 0; align-items: center; }
.tracebuild-certification-mark img { display: block; max-width: min(100%, 220px); max-height: 72px; width: auto; height: auto; object-fit: contain; object-position: left center; mix-blend-mode: multiply; }
.tracebuild-certification-mark--bizsafe img { max-width: 142px; }
.tracebuild-certification-text { display: flex !important; min-height: 72px; align-items: center; font-size: clamp(1.25rem, 1.8vw, 1.75rem) !important; font-weight: 400; line-height: 1.2; }

/* Tracebuild About Us page. */
.tracebuild-about-page__hero { min-height: 420px; padding: 96px var(--weblyc-gutter); color: var(--wp--preset--color--on-dark); }
.tracebuild-about-page__hero .wp-block-cover__background { background: linear-gradient(90deg, rgb(10 30 43 / 86%), rgb(10 30 43 / 57%) 58%, rgb(10 30 43 / 30%)) !important; opacity: 1 !important; }
.tracebuild-about-page__hero-content { width: min(100%, 690px); margin-inline: max(0px, calc((100vw - 1366px) / 2)); }
.tracebuild-about-page__purpose, .tracebuild-about-page__values, .tracebuild-about-page__accreditations { display: grid; gap: 72px; }
/* WordPress constrained groups centre direct children with !important margins.
   These proposition headers intentionally begin on the shared content line. */
.tracebuild-about-page__purpose > .section-header,
.tracebuild-about-page__values > .section-header,
.tracebuild-about-page__expertise > .section-header,
.tracebuild-about-page__accreditations > .section-header {
  width: min(100%, 1366px);
  max-width: none;
  margin-left: max(0px, calc((100% - 1366px) / 2)) !important;
  margin-right: 0 !important;
}
.tracebuild-about-page__purpose > .section-header > .section-title,
.tracebuild-about-page__values > .section-header > .section-title,
.tracebuild-about-page__expertise > .section-header > .section-title,
.tracebuild-about-page__accreditations > .section-header > .section-title,
.tracebuild-about-page__purpose > .section-header > .lead,
.tracebuild-about-page__values > .section-header > .lead,
.tracebuild-about-page__expertise > .section-header > .lead,
.tracebuild-about-page__accreditations > .section-header > .lead { max-width: none; }
.tracebuild-about-page__mission-grid, .tracebuild-about-page__values-grid, .tracebuild-about-page__accreditation-grid { display: grid; gap: 24px; }
.tracebuild-about-page__mission-grid { width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tracebuild-about-page__mission-grid > div, .tracebuild-about-page__values-grid > div { padding-top: 24px; border-top: 1px solid var(--weblyc-border); }
.tracebuild-about-page__mission-grid p, .tracebuild-about-page__values-grid p, .tracebuild-about-page__values-grid h3 { margin: 0; }
.tracebuild-about-page__mission-grid .lead { max-width: none; }
.tracebuild-about-page__mission-grid .eyebrow { margin-bottom: 24px; }
.tracebuild-about-page__values-grid { width: 100%; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.tracebuild-about-page__value-number { margin-bottom: 24px !important; font-family: var(--wp--preset--font-family--utility); font-size: 13px; letter-spacing: .06em; }
.tracebuild-about-page__expertise { display: grid; gap: 72px; align-items: center; }
.tracebuild-about-page__accreditation-grid { width: 100%; grid-template-columns: repeat(auto-fit, minmax(260px, 350px)); justify-content: start; }
.tracebuild-about-page__accreditation-grid figure { display: flex; min-height: 180px; margin: 0; padding: 36px; border: 1px solid var(--weblyc-border); border-radius: var(--weblyc-radius); align-items: center; justify-content: flex-start; background: var(--wp--preset--color--surface); }
.tracebuild-about-page__accreditation-grid img { display: block; max-width: 100%; max-height: 108px; width: auto; height: auto; object-fit: contain; object-position: left center; }
.tracebuild-about-page__accreditation-grid figure:last-child img { max-width: 220px; }
.tracebuild-about-page__cta .wp-block-buttons { margin: 0; }
.testimonial { padding: 48px; border-radius: var(--weblyc-radius-lg); background: var(--wp--preset--color--surface); }
.testimonial__quote { max-width: 900px; margin: 0; font-size: clamp(1.5rem, 3vw, 2.5rem); line-height: 1.2; }
.testimonial__meta { margin-top: 36px; font-family: var(--wp--preset--font-family--utility); font-size: 13px; letter-spacing: .04em; text-transform: uppercase; }
.testimonial-carousel { display: flex; gap: 24px; overflow-x: auto; padding: 24px 2px; scroll-snap-type: x mandatory; }
.testimonial-carousel > .wp-block-column { min-width: min(420px, 88vw); scroll-snap-align: start; }
.faq details { padding-block: 24px; border-top: 1px solid var(--weblyc-border); }
.faq details:last-child { border-bottom: 1px solid var(--weblyc-border); }
.faq summary { cursor: pointer; list-style: none; font-size: 1.25rem; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; float: right; font-family: var(--wp--preset--font-family--utility); }
.faq details[open] summary::after { content: "−"; }
.faq details p { max-width: 690px; margin: 18px 48px 0 0; }
.cta { display: flex; flex-flow: column; align-items: center; gap: 48px; text-align: center; }
.cta > * { margin: 0; }
.cta .wp-block-buttons { justify-content: center; }
.cta--split { flex-flow: row; justify-content: space-between; gap: 48px; align-items: end; text-align: left; }
.cta--split .wp-block-buttons { justify-content: flex-start; flex-shrink: 0; }
.contact-grid { display: grid; grid-template-columns: minmax(0, 480px) minmax(0, 690px); gap: 48px; justify-content: space-between; }
.contact-grid > .contact-form-wrap { justify-self: end; }
.contact-form-wrap { width: min(100%, 690px); }
.contact-form { display: grid; gap: 24px; width: 100%; margin: 0; text-align: left; }
.contact-form__fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.contact-form__fields > p, .contact-form__submit, .contact-form__privacy { margin: 0; }
.contact-form__field--full { grid-column: 1 / -1; }
.contact-form label { display: grid; gap: 8px; font-size: 13px; font-family: var(--wp--preset--font-family--utility); }
.contact-form__label { display: inline-flex; gap: 4px; align-items: baseline; }
.contact-form__required { color: var(--tracebuild-button-accent, var(--weblyc-accent)); font-weight: 500; }
.contact-form input, .contact-form textarea, .contact-form select { width: 100%; min-height: 60px; padding: 12px; border: 1px solid var(--weblyc-border); border-radius: var(--weblyc-radius); background: transparent; color: inherit; font: inherit; }
.contact-form textarea { min-height: 160px; }
.contact-form button { display: inline-flex; min-height: var(--weblyc-button-height); align-items: center; justify-content: center; padding: 12px 24px; border: 0; border-radius: var(--weblyc-radius); background: var(--tracebuild-button-accent, var(--weblyc-accent)); color: #fff; font-family: var(--wp--preset--font-family--utility); font-size: 13px; font-weight: 500; line-height: 1; letter-spacing: .04em; text-transform: uppercase; cursor: pointer; }
.contact-form__honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.contact-form__status { margin: 0 0 24px; padding: 12px; border: 1px solid currentColor; border-radius: var(--weblyc-radius); font-size: 16px; }
.contact-form__status--sent { color: var(--weblyc-primary); }
.contact-form__status--error { color: #8f2d22; }
.site-footer { padding: 72px var(--weblyc-gutter) 48px; background: var(--weblyc-primary); color: var(--wp--preset--color--on-dark); }
.section.is-style-weblyc-compact-section { padding-block: 72px; }
.site-footer a { color: inherit; }
.brand-mark { display: inline-flex; align-items: center; gap: 12px; color: inherit; font-family: var(--wp--preset--font-family--body); font-size: 1.375rem; font-weight: 500; letter-spacing: -.03em; text-decoration: none; }
.brand-mark__symbol { display: grid; width: 32px; height: 32px; border-radius: 50%; background: var(--weblyc-accent); color: var(--weblyc-ink); font-family: var(--wp--preset--font-family--utility); font-size: 14px; letter-spacing: 0; place-items: center; }
.brand-mark--custom .custom-logo-link { display: inline-flex; }
.brand-mark--custom .custom-logo { display: block; width: auto; max-height: 40px; }
.site-footer__top { display: grid; width: min(100%, 1366px); margin-inline: auto; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.9fr); gap: 72px; }
.site-footer__brand { display: grid; align-content: start; gap: 24px; }
.site-footer__brand > p { max-width: 400px; margin: 0; font-size: 16px; line-height: 1.4; }
.site-footer__links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.site-footer__links > div { display: grid; align-content: start; gap: 18px; }
.site-footer__links p, .site-footer__links ul { margin: 0; }
.site-footer__links ul { display: grid; gap: 12px; padding: 0; list-style: none; }
.site-footer__links a { text-decoration: none; }
.site-footer__links a:hover, .site-footer__links a:focus-visible { text-decoration: underline; }
.site-footer__social { display: flex !important; flex-wrap: wrap; gap: 12px; }
.site-footer__bottom { display: flex; width: min(100%, 1366px); margin: 72px auto 0; padding-top: 24px; border-top: 1px solid rgb(248 248 243 / 25%); justify-content: space-between; gap: 24px; font-family: var(--wp--preset--font-family--utility); font-size: 12px; letter-spacing: .03em; }
.site-footer__bottom p { margin: 0; }
.site-footer__bottom p:last-child { display: flex; gap: 18px; }
.wp-block-separator { opacity: .3; }
.wp-block-button__link:hover { transform: translateY(-1px); background: var(--wp--preset--color--primary); color: var(--wp--preset--color--on-dark); }
.wp-block-button.is-style-outline > .wp-block-button__link { border-color: currentColor; background: transparent; color: inherit; }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--weblyc-accent); border-color: var(--weblyc-accent); color: var(--weblyc-ink); }

@media (max-width: 1023px) {
  .card-grid.is-style-weblyc-four-columns, .process-grid.is-style-weblyc-four-columns { --weblyc-columns: 2; }
  .section { padding-block: 72px; }
  .section--compact { padding-block: 48px; }
  .purpose { padding: 64px 0 72px; }
  .hero__grid, .image-text, .contact-grid, .purpose { gap: 48px; }
  .contact-grid { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
  .case-study-showcase { gap: 48px; }
  .case-study-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero__visual { min-height: 400px; }
  .hero-landing__content { padding-top: 72px; }
  .hero-landing__stats { padding-top: 24px; padding-bottom: 24px; }
  .hero-landing__stats-grid { grid-template-columns: minmax(320px, 1.1fr) repeat(3, minmax(0, 1fr)); gap: 12px; }
  .hero-landing__metric { padding-left: 12px; }
}
@media (max-width: 767px) {
  :root {
    --weblyc-gutter: 24px;
    --tracebuild-mobile-header-height: 60px;
    --tracebuild-mobile-proof-peek: 96px;
    --tracebuild-mobile-hero-photo-height: calc(100svh - var(--tracebuild-mobile-header-height) - var(--tracebuild-mobile-proof-peek));
  }
  .tracebuild-section-intro { grid-template-columns: 1fr; gap: 24px; }
  .tracebuild-section-intro .wp-block-buttons { justify-self: start; }
  .site-header { min-height: 60px; background: var(--weblyc-base); backdrop-filter: none; }
  .site-header__inner { min-height: 60px; }
  .site-header .wp-block-buttons { display: none; }
  .site-header .wp-block-navigation__responsive-container-open, .site-header .wp-block-navigation__responsive-container-close { display: grid; width: 48px; height: 48px; padding: 12px; border: 0; background: transparent; color: var(--weblyc-ink); place-items: center; }
  .site-header .wp-block-navigation__responsive-container-open { flex: 0 0 48px; }
  .site-header .wp-block-navigation__responsive-container.is-menu-open { position: fixed; z-index: 100000; inset: 0; display: flex; width: 100%; height: 100svh; padding: 6px var(--weblyc-gutter) 24px; overflow-y: auto; background: var(--weblyc-base); color: var(--weblyc-ink); }
  .site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { display: flex; width: 100%; padding-top: 72px; flex-flow: column; align-items: stretch; gap: 36px; }
  .site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { display: flex !important; width: 100%; gap: 12px; flex-direction: column; align-items: stretch; justify-content: flex-start; }
  .site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { display: block; width: 100%; margin: 0 !important; }
  .site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { display: flex; width: 100%; min-height: 48px; padding: 12px 0; align-items: center; justify-content: flex-start; font-size: 1.25rem; line-height: 1.2; text-align: left; }
  .site-header .wp-block-navigation__responsive-container.is-menu-open li.wp-block-navigation-submenu {
    display: flex;
    width: 100%;
    margin: 0 !important;
    flex-direction: row !important;
    flex-wrap: wrap;
    align-items: center !important;
    justify-content: flex-start !important;
    text-align: left;
  }
  .site-header .wp-block-navigation__responsive-container.is-menu-open li.wp-block-navigation-submenu > .wp-block-navigation-item__content { width: auto !important; margin: 0 !important; padding-right: 0; flex: 0 0 auto; text-align: left; }
  .site-header .wp-block-navigation__responsive-container.is-menu-open li.wp-block-navigation-submenu > .wp-block-navigation-submenu__toggle {
    display: grid;
    width: 48px;
    min-width: 48px;
    height: 48px;
    padding: 14px;
    border: 0;
    background: transparent;
    color: inherit;
    margin: 0;
    flex: 0 0 48px;
    place-items: center;
  }
  .site-header .wp-block-navigation__responsive-container.is-menu-open li.wp-block-navigation-submenu > .wp-block-navigation-submenu__toggle svg {
    width: 20px;
    height: 20px;
    transition: transform 150ms ease-out;
  }
  .site-header .wp-block-navigation__responsive-container.is-menu-open li.wp-block-navigation-submenu > .wp-block-navigation-submenu__toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
  .site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
    position: static;
    display: none;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0 0 12px 24px;
    border: 0;
    background: transparent;
    box-shadow: none;
    flex-basis: 100%;
  }
  .site-header .wp-block-navigation__responsive-container.is-menu-open li.wp-block-navigation-submenu:has(> .wp-block-navigation-submenu__toggle[aria-expanded="true"]) > .wp-block-navigation__submenu-container { display: flex !important; flex-direction: column; align-items: stretch; }
  .site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { display: block; width: 100%; }
  .site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
    width: 100%;
    min-height: 48px;
    padding: 12px 0;
    font-size: 1rem;
    text-align: left;
  }
  .site-header .wp-block-navigation__responsive-container.is-menu-open .site-header__mobile-cta { display: block; margin-top: 12px; }
  .site-header .wp-block-navigation__responsive-container.is-menu-open .site-header__mobile-cta .wp-block-navigation-item__content { justify-content: center; padding-inline: 24px; border-radius: var(--weblyc-radius); background: var(--weblyc-accent); color: var(--weblyc-ink); font-family: var(--wp--preset--font-family--utility); font-size: 13px; font-weight: 500; letter-spacing: .04em; text-align: center; text-transform: uppercase; }
  .section { padding-block: 56px; }
  .section--compact { padding-block: 40px; }
  .hero { padding-block: 72px; }
  .hero__grid, .image-text, .contact-grid, .purpose { grid-template-columns: 1fr; gap: 36px; }
  .image-text--reverse > :first-child { order: initial; }
  .hero__visual { min-height: 300px; }
  .hero-landing { min-height: auto; height: auto; max-height: none; background: #000; }
  .site-header + main .hero-landing, .wp-block-template-part + main .hero-landing { min-height: auto; height: auto; max-height: none; }
  .hero-landing .wp-block-cover__inner-container, .hero-landing__frame { height: auto; min-height: auto; }
  .hero-landing .wp-block-cover__image-background,
  .hero-landing .wp-block-cover__background {
    right: 0;
    bottom: auto;
    left: 0;
    height: var(--tracebuild-mobile-hero-photo-height);
  }
  .hero-landing__content {
    min-height: var(--tracebuild-mobile-hero-photo-height);
    padding-top: 60px;
    padding-bottom: 36px;
    align-content: end;
  }
  .hero-landing__copy { max-width: 620px; }
  .hero-landing__copy { gap: 18px; }
  .hero-landing__copy .lead { font-size: 16px; line-height: 1.4; }
  .hero-landing__copy h1 { font-size: clamp(2rem, 7.5vw, 2.5rem); line-height: 1.1; }
  .hero-landing__copy .wp-block-buttons { gap: 12px; }
  .hero-landing .wp-block-cover__image-background { object-position: center 58%; }
  .hero-landing__stats { padding: 24px var(--weblyc-gutter); }
  .hero-landing__stats::before, .hero-landing__stats::after { display: none; }
  .hero-landing__stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
  .hero-landing__stats-title { grid-column: 1 / -1; max-width: 420px; }
  .hero-landing__metric { padding-left: 12px; }
  .hero-landing__metric:last-child { grid-column: 1 / -1; }
  .trust-bar, .card-grid, .benefit-grid, .process-grid, .stat-grid, .case-study-grid { grid-template-columns: 1fr; }
  .service-list__item { grid-template-columns: 48px 1fr; }
  .service-list__item > :last-child { grid-column: 2; }
  .testimonial { padding: 24px; }
  .cta--split { display: block; text-align: left; }
  .cta--split .wp-block-buttons { margin-top: 24px; }
  .contact-form__fields { grid-template-columns: 1fr; }
  .contact-form__field--full { grid-column: auto; }
  .site-footer { padding-block: 72px 48px; }
  .site-footer__top, .site-footer__links { grid-template-columns: 1fr; gap: 48px; }
  .site-footer__links { gap: 36px; }
  .site-footer__bottom { margin-top: 48px; flex-flow: column; align-items: flex-start; }
  .client-marquee { padding-block: 24px; }
  .client-marquee__label { margin-bottom: 18px; }
  .client-marquee__set { gap: 24px; padding-right: 24px; }
  .client-marquee__item { width: 180px; height: 64px; }
  .client-marquee__item img { max-height: 48px; }
  .purpose { padding: 56px 0; }
}

/* Preserve the standard header/footer surface treatment for this client theme. */
.site-header { background: rgb(247 248 247 / 94%); color: var(--weblyc-ink); border-color: var(--weblyc-border); }
.site-header .wp-block-navigation-item__content, .site-header .wp-block-navigation__responsive-container-open, .site-header .wp-block-navigation__responsive-container-close { color: inherit; }
.site-header .wp-block-button__link { background: var(--weblyc-accent); color: var(--weblyc-ink); }
.site-footer { background: var(--weblyc-primary); }
@media (max-width: 767px) {
  .site-header .wp-block-navigation__responsive-container.is-menu-open { background: var(--weblyc-base); color: var(--weblyc-ink); }
}

/* Accessible Tracebuild enquiry form: white text on primary blue meets WCAG AA. */
:root { --tracebuild-cta-button-ink: #0a1e2b; }
.section--dark.cta .contact-form { color: var(--wp--preset--color--on-dark); }
.section--dark.cta .contact-form label,
.section--dark.cta .contact-form__privacy,
.section--dark.cta .tracebuild-contact__address { color: var(--wp--preset--color--on-dark); }
.section--dark.cta .contact-form input,
.section--dark.cta .contact-form textarea,
.section--dark.cta .contact-form select {
  border-color: #ffffff;
  background: #ffffff;
  color: var(--weblyc-ink);
}
.section--dark.cta .contact-form input::placeholder,
.section--dark.cta .contact-form textarea::placeholder { color: #526977; opacity: 1; }
.section--dark.cta .contact-form input:focus-visible,
.section--dark.cta .contact-form textarea:focus-visible,
.section--dark.cta .contact-form select:focus-visible {
  outline-color: #ffffff;
  outline-offset: 3px;
  border-color: var(--tracebuild-cta-button-ink);
}
.section--dark.cta .contact-form button {
  background: var(--weblyc-accent);
  color: var(--tracebuild-cta-button-ink);
}
.section--dark.cta .contact-form button:hover { background: #ffffff; color: var(--weblyc-primary); }
.section--dark.cta .contact-form button:focus-visible { outline-color: #ffffff; }
.section--dark.cta .contact-form__status { border-color: #ffffff; background: #ffffff; }
.section--dark.cta .contact-form__status--sent { color: var(--tracebuild-cta-button-ink); }
.section--dark.cta .contact-form__status--error { color: #8f2d22; }

@media (max-width: 767px) and (pointer: fine) {
  .site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { right: 15px; }
}
@media (max-width: 479px) {
  :root { --weblyc-gutter: 12px; }
  .hero-landing__content { padding-inline: var(--weblyc-gutter); }
  .hero-landing__stats { padding-inline: var(--weblyc-gutter); }
  .hero-landing__stats-grid { grid-template-columns: 1fr; gap: 18px; }
  .hero-landing__stats-title, .hero-landing__metric:last-child { grid-column: auto; }
  .hero-landing__metric { padding: 12px 0 0; border-top: 1px solid var(--weblyc-border); border-left: 0; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .client-marquee__track { animation: none; } *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; } }

/* Tracebuild client layer: all visual values map to the base template's token rhythm. */
:root { --weblyc-primary: #054d7f; --weblyc-accent: #f15a2b; --weblyc-base: #f7f8f7; --weblyc-ink: #173042; --weblyc-border: rgb(23 48 66 / 20%); }
.site-header { background: #07141e; color: var(--wp--preset--color--on-dark); border-color: rgb(247 248 247 / 20%); }
.site-header .wp-block-navigation-item__content, .site-header .wp-block-navigation__responsive-container-open, .site-header .wp-block-navigation__responsive-container-close { color: inherit; }
.site-header .wp-block-button__link { background: var(--weblyc-accent); color: #fff; }
.brand-mark__symbol { background: var(--weblyc-primary); color: var(--wp--preset--color--on-dark); }
.brand-mark__word { letter-spacing: .04em; }
.brand-mark--tracebuild { display: inline-flex; height: 48px; }
.brand-mark--tracebuild img { display: block; width: auto; max-width: 180px; height: 48px; object-fit: contain; }
.tracebuild-hero { position: relative; min-height: 100svh; overflow: hidden; color: var(--wp--preset--color--on-dark); background: var(--weblyc-primary); }
.tracebuild-hero__image { position: absolute; inset: 0; background: linear-gradient(125deg, rgb(5 77 127 / 94%), rgb(5 77 127 / 66%)), repeating-linear-gradient(120deg, rgb(255 255 255 / 7%) 0 1px, transparent 1px 52px), linear-gradient(30deg, #073c63, #0c689c); }
.tracebuild-hero__image::after { position: absolute; right: 24px; bottom: 24px; color: rgb(247 248 247 / 65%); content: 'PROJECT IMAGE PLACEHOLDER'; font-family: var(--wp--preset--font-family--utility); font-size: 12px; letter-spacing: .06em; }
.tracebuild-hero__frame { position: relative; z-index: 1; display: grid; min-height: 100svh; grid-template-rows: 1fr auto; width: min(calc(100% - (var(--weblyc-gutter) * 2)), 1366px); margin-inline: auto; }
.tracebuild-hero__copy { display: grid; max-width: 720px; align-content: center; gap: 24px; padding-top: 72px; padding-bottom: 72px; }
.tracebuild-hero__copy > * { margin: 0; }
.tracebuild-hero__copy .eyebrow, .section--dark .eyebrow { color: inherit; }
.tracebuild-hero__copy .wp-block-button.is-style-outline > .wp-block-button__link { border-color: rgb(247 248 247 / 80%); color: var(--wp--preset--color--on-dark); }
.tracebuild-proof { display: grid; grid-template-columns: minmax(280px, 1.15fr) repeat(3, minmax(0, 1fr)); gap: 24px; align-items: center; margin-inline: calc(var(--weblyc-gutter) * -1); padding: 36px var(--weblyc-gutter); color: var(--weblyc-ink); background: var(--wp--preset--color--proof); }
.tracebuild-proof__title, .tracebuild-proof__metric p { margin: 0; }
.tracebuild-proof__title { max-width: 360px; font-size: clamp(2rem, 3vw, 3rem); font-weight: 400; line-height: 1.05; text-wrap: balance; }
.tracebuild-proof__metric { min-height: 72px; padding-left: 24px; border-left: 1px solid var(--weblyc-border); }
.tracebuild-proof__number { font-size: clamp(1.75rem, 2.5vw, 2.5rem); font-weight: 400; line-height: 1.05; }
.tracebuild-proof__label { margin-top: 6px !important; font-family: var(--wp--preset--font-family--utility); font-size: 12px; letter-spacing: .04em; line-height: 1.3; text-transform: uppercase; }
.tracebuild-about { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: center; }
.tracebuild-about__content { max-width: 620px; }
.tracebuild-placeholder { display: grid; overflow: hidden; color: rgb(5 77 127 / 82%); background: linear-gradient(135deg, #d7e5ed, #eef3f5); place-items: center; }
.tracebuild-placeholder span { font-family: var(--wp--preset--font-family--utility); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }
.tracebuild-placeholder--square { width: 100%; aspect-ratio: 1 / 1; border-radius: var(--weblyc-radius); }
.tracebuild-placeholder--card { aspect-ratio: 16 / 10; border-radius: var(--weblyc-radius) var(--weblyc-radius) 0 0; }
.tracebuild-placeholder--work { aspect-ratio: 3 / 4; border-radius: var(--weblyc-radius); }
.tracebuild-services, .tracebuild-credentials, .tracebuild-current-work { display: grid; gap: 72px; }
.tracebuild-card-grid, .tracebuild-strength-grid, .tracebuild-credential-grid, .tracebuild-work-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.tracebuild-service-card { overflow: hidden; border: 1px solid var(--weblyc-border); border-radius: var(--weblyc-radius); background: var(--wp--preset--color--surface); }
.tracebuild-service-card h3, .tracebuild-service-card > p { margin: 0 24px; }
.tracebuild-service-card h3 { margin-top: 24px; font-size: 2rem; font-weight: 400; line-height: 1.2; }
.tracebuild-service-card > p { margin-top: 12px; margin-bottom: 24px; }
.tracebuild-strengths { display: grid; gap: 72px; }
.tracebuild-strength-grid > div { padding-top: 24px; border-top: 1px solid rgb(247 248 247 / 40%); }
.tracebuild-strength-grid p, .tracebuild-strength-grid h3 { margin: 0; }
.tracebuild-strength__number { margin-bottom: 24px !important; font-family: var(--wp--preset--font-family--utility); font-size: 13px; letter-spacing: .06em; }
.tracebuild-strength-grid h3 { font-size: 2rem; font-weight: 400; line-height: 1.2; }
.tracebuild-strength-grid h3 + p { margin-top: 12px; }
.tracebuild-credential-grid > div { padding: 24px; border: 1px solid var(--weblyc-border); border-radius: var(--weblyc-radius); }
.tracebuild-credential-grid p, .tracebuild-credential-grid h3 { margin: 0; }
.tracebuild-credential-grid h3 { margin-top: 24px; font-size: 1.75rem; font-weight: 400; line-height: 1.2; }
.tracebuild-credential-grid h3 + p { margin-top: 12px; }
.tracebuild-work-grid article { display: grid; gap: 12px; }
.tracebuild-work-grid p, .tracebuild-work-grid h3 { margin: 0; }
.tracebuild-work-grid h3 { font-size: 1.75rem; font-weight: 400; line-height: 1.2; }
.tracebuild-contact__address { margin: 0; font-family: var(--wp--preset--font-family--utility); font-size: 12px; letter-spacing: .04em; }
.site-footer { background: #07334f; }
.site-footer .brand-mark__symbol { background: var(--weblyc-accent); color: var(--weblyc-ink); }

@media (max-width: 1023px) {
  .tracebuild-proof { grid-template-columns: minmax(240px, 1fr) repeat(3, minmax(0, 1fr)); gap: 18px; }
  .tracebuild-about { gap: 48px; }
  .tracebuild-services, .tracebuild-credentials, .tracebuild-current-work, .tracebuild-strengths { gap: 48px; }
  .tracebuild-about-page__purpose, .tracebuild-about-page__values, .tracebuild-about-page__accreditations { gap: 48px; }
}
@media (max-width: 767px) {
  .site-header .wp-block-navigation__responsive-container.is-menu-open { background: var(--weblyc-base); color: var(--weblyc-ink); }
  .tracebuild-hero, .tracebuild-hero__frame { min-height: auto; }
  .tracebuild-hero__copy { min-height: 560px; padding-top: 120px; padding-bottom: 72px; }
  .tracebuild-proof { grid-template-columns: 1fr; gap: 18px; margin-inline: calc(var(--weblyc-gutter) * -1); padding: 36px var(--weblyc-gutter); }
  .tracebuild-proof__metric { padding: 18px 0 0; border-top: 1px solid var(--weblyc-border); border-left: 0; }
  .tracebuild-about { grid-template-columns: 1fr; gap: 36px; }
  .tracebuild-card-grid, .tracebuild-strength-grid, .tracebuild-credential-grid, .tracebuild-work-grid { grid-template-columns: 1fr; }
  .tracebuild-services, .tracebuild-credentials, .tracebuild-current-work, .tracebuild-strengths { gap: 48px; }
  .tracebuild-placeholder--square { aspect-ratio: 3 / 2; }
  .tracebuild-placeholder--work { aspect-ratio: 16 / 10; }
  .tracebuild-about-page__hero { min-height: 420px; padding-block: 72px; }
  .tracebuild-about-page__hero-content { margin-inline: 0; }
  .tracebuild-about-page__purpose, .tracebuild-about-page__values, .tracebuild-about-page__accreditations { gap: 48px; }
  .tracebuild-about-page__mission-grid, .tracebuild-about-page__values-grid, .tracebuild-about-page__accreditation-grid { grid-template-columns: 1fr; }
  .tracebuild-about-page__expertise { gap: 48px; }
  .tracebuild-about-page__accreditation-grid figure { min-height: 144px; padding: 24px; }
}

/* Final client overrides: preserve the standard template geometry and surfaces. */
:root { --weblyc-proof: #dbe6ed; }
.site-header { background: rgb(247 248 247 / 94%); color: var(--weblyc-ink); border-color: var(--weblyc-border); }
.site-header .wp-block-navigation-item__content, .site-header .wp-block-navigation__responsive-container-open, .site-header .wp-block-navigation__responsive-container-close { color: inherit; }
.site-header .wp-block-button__link { background: var(--weblyc-accent); color: var(--weblyc-ink); }
.site-footer { background: var(--weblyc-primary); }
@media (max-width: 767px) {
  .site-header .wp-block-navigation__responsive-container.is-menu-open { background: var(--weblyc-base); color: var(--weblyc-ink); }
}

/* Final Tracebuild header and footer treatment. */
.site-header .site-header__mobile-cta { display: none; }
:root { --tracebuild-footer: #ffffff; }
.site-footer { background: var(--tracebuild-footer); color: var(--weblyc-ink); }
.site-footer .brand-mark--footer img { filter: none; }
.site-footer .eyebrow { color: var(--weblyc-ink); }
.site-footer__bottom { border-top-color: var(--weblyc-border); }
.site-footer__top { grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); }
.site-footer__links { width: 100%; max-width: 690px; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px; justify-self: end; }
.site-footer__contact { padding-top: 0; border-top: 0; }
.site-footer__contact > p { margin: 0; }
@media (max-width: 767px) {
  .site-footer__top { grid-template-columns: 1fr; gap: 48px; }
  .site-footer__links { max-width: none; grid-template-columns: 1fr; justify-self: stretch; }
}

/* Tracebuild services page: capability gallery followed by editorial service modules. */
.tracebuild-services-hero { min-height: 420px; padding: 96px var(--weblyc-gutter); color: var(--wp--preset--color--on-dark); }
.tracebuild-services-hero .wp-block-cover__background { background: linear-gradient(90deg, rgb(10 30 43 / 84%), rgb(10 30 43 / 57%) 56%, rgb(10 30 43 / 26%)) !important; opacity: 1 !important; }
.tracebuild-services-hero__content { width: min(100%, 690px); margin-inline: max(0px, calc((100vw - 1366px) / 2)); }
.tracebuild-services-hero__content .lead { max-width: 620px; }
.tracebuild-team-gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 190px; gap: 24px; }
.tracebuild-team-gallery__intro { display: flex; max-width: none; padding: 48px; grid-column: span 2; grid-row: span 2; align-items: flex-start; justify-content: center; background: var(--wp--preset--color--neutral); }
.tracebuild-team-gallery__intro > p:not(.eyebrow) { margin: 0; max-width: 620px; }
.tracebuild-team-gallery__image { min-width: 0; height: 100%; margin: 0; overflow: hidden; border-radius: var(--weblyc-radius); }
.tracebuild-team-gallery__image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.tracebuild-team-gallery__image--tall { grid-row: span 2; }
.tracebuild-service-page { display: grid; gap: 72px; }
.tracebuild-service-modules { display: grid; gap: 72px; }
.tracebuild-service-module { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 72px; padding-top: 72px; border-top: 1px solid var(--weblyc-border); align-items: center; }
.tracebuild-service-module--reverse .tracebuild-service-module__media { order: 2; }
.tracebuild-service-module--reverse .tracebuild-service-module__content { order: 1; }
.tracebuild-service-module__media { width: 100%; aspect-ratio: 3 / 2; margin: 0; overflow: hidden; border-radius: var(--weblyc-radius); }
.tracebuild-service-module__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.tracebuild-service-module__content { display: grid; max-width: 570px; gap: 24px; }
.tracebuild-service-module__content > * { margin: 0; }
.tracebuild-service-module__number { font-family: var(--wp--preset--font-family--utility); font-size: 13px; font-weight: 500; letter-spacing: .05em; text-transform: uppercase; }
.tracebuild-service-module__content .lead { max-width: 570px; }
.tracebuild-service-module__content ul { display: grid; gap: 12px; padding: 0; list-style: none; }
.tracebuild-service-module__content li { display: grid; grid-template-columns: 12px 1fr; gap: 12px; align-items: start; }
.tracebuild-service-module__content li::before { width: 6px; height: 6px; margin-top: .55em; border-radius: 50%; background: var(--weblyc-accent); content: ""; }
.tracebuild-service-module__action a { display: inline-flex; min-height: var(--weblyc-button-height); padding: 12px 24px; border: 1px solid currentColor; border-radius: var(--weblyc-radius); align-items: center; gap: 12px; color: var(--weblyc-ink); font-family: var(--wp--preset--font-family--utility); font-size: 13px; font-weight: 500; letter-spacing: .04em; text-decoration: none; text-transform: uppercase; }
.tracebuild-service-module__action a:hover { border-color: var(--weblyc-accent); background: var(--weblyc-accent); color: var(--weblyc-ink); transform: translateY(-1px); }
.tracebuild-services-cta .wp-block-buttons { margin: 0; }
@media (max-width: 1023px) {
  .tracebuild-services-hero { min-height: 360px; padding-block: 72px; }
  .tracebuild-team-gallery { grid-auto-rows: 160px; }
  .tracebuild-team-gallery__intro { padding: 36px; }
  .tracebuild-service-page, .tracebuild-service-modules { gap: 48px; }
  .tracebuild-service-module { gap: 48px; padding-top: 48px; }
}
@media (max-width: 767px) {
  .tracebuild-services-hero { min-height: 420px; padding-block: 72px; }
  .tracebuild-services-hero__content { margin-inline: 0; }
  .tracebuild-team-gallery { grid-template-columns: 1fr; grid-auto-rows: auto; gap: 24px; }
  .tracebuild-team-gallery__intro { min-height: auto; padding: 36px 24px; grid-column: auto; grid-row: auto; }
  .tracebuild-team-gallery__image, .tracebuild-team-gallery__image--tall { aspect-ratio: 3 / 2; grid-row: auto; }
  .tracebuild-service-module, .tracebuild-service-module--reverse { grid-template-columns: 1fr; gap: 36px; padding-top: 48px; }
  .tracebuild-service-module--reverse .tracebuild-service-module__media, .tracebuild-service-module--reverse .tracebuild-service-module__content { order: initial; }
  .tracebuild-service-module__content { max-width: none; }
}

/* Tracebuild projects page: an editorial work index with approval-safe captions. */
.tracebuild-projects-hero { min-height: 420px; padding: 96px var(--weblyc-gutter); color: var(--wp--preset--color--on-dark); }
.tracebuild-projects-hero .wp-block-cover__background { background: linear-gradient(90deg, rgb(10 30 43 / 86%), rgb(10 30 43 / 57%) 58%, rgb(10 30 43 / 30%)) !important; opacity: 1 !important; }
.tracebuild-projects-hero__content { width: min(100%, 690px); margin-inline: max(0px, calc((100vw - 1366px) / 2)); }
.tracebuild-projects { display: grid; gap: 72px; }
.tracebuild-projects-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.tracebuild-project-gallery.is-layout-constrained > .tracebuild-project-gallery__content { display: block; width: min(100%, 1366px) !important; max-width: none !important; margin-inline: auto !important; }
.tracebuild-project-gallery__content > .wp-block-post-content { width: 100% !important; max-width: none !important; margin-inline: 0 !important; }
.tracebuild-project-gallery__content > .wp-block-gallery { display: grid !important; width: 100%; max-width: none; margin: 0; grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.tracebuild-project-gallery__content > .wp-block-gallery .wp-block-image,
.tracebuild-project-gallery__content > .wp-block-image { width: 100%; min-width: 0; margin: 0; overflow: hidden; aspect-ratio: 3 / 2; border-radius: var(--weblyc-radius); }
.tracebuild-project-gallery__content > .wp-block-gallery .wp-block-image img,
.tracebuild-project-gallery__content > .wp-block-image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform var(--weblyc-transition); }
.tracebuild-project-gallery__content > .wp-block-gallery .wp-block-image:hover img,
.tracebuild-project-gallery__content > .wp-block-gallery .wp-block-image:focus-within img { transform: scale(1.03); }
.tracebuild-projects-cta .wp-block-buttons { margin: 0; }
@media (max-width: 1199px) {
  .tracebuild-projects { gap: 48px; }
  .tracebuild-projects-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tracebuild-project-gallery__content,
  .tracebuild-project-gallery__content > .wp-block-gallery,
  .tracebuild-project-gallery__content > .wp-block-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Current work and accreditation grids remain content-led as Tracebuild adds approved material. */
.tracebuild-sector-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--weblyc-gap); }
.tracebuild-certification-grid { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.tracebuild-certification-grid .stat { min-width: 0; }
@media (max-width: 767px) {
  .tracebuild-sector-grid { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
  .tracebuild-projects-hero { min-height: 420px; padding-block: 72px; }
  .tracebuild-projects-hero__content { margin-inline: 0; }
  .tracebuild-projects { gap: 48px; }
  .tracebuild-projects-grid { grid-template-columns: 1fr; }
  .tracebuild-project-gallery__content,
  .tracebuild-project-gallery__content > .wp-block-gallery,
  .tracebuild-project-gallery__content > .wp-block-gallery { grid-template-columns: 1fr; }
}

/* One consistent, comfortably paced image-led page-hero composition. */
:root {
  --tracebuild-page-hero-height: 520px;
  --tracebuild-page-hero-padding: 120px;
}
.tracebuild-about-page__hero,
.tracebuild-services-hero,
.tracebuild-projects-hero {
  min-height: var(--tracebuild-page-hero-height);
  height: var(--tracebuild-page-hero-height);
  padding-block: var(--tracebuild-page-hero-padding);
}
@media (max-width: 1023px) {
  :root {
    --tracebuild-page-hero-height: 480px;
    --tracebuild-page-hero-padding: 96px;
  }
}
@media (max-width: 767px) {
  :root {
    --tracebuild-page-hero-height: 480px;
    --tracebuild-page-hero-padding: 72px;
  }
}

/* Tracebuild orange buttons use a darker accessible surface with white text. */
:root {
  --tracebuild-button-accent: var(--weblyc-accent);
  --tracebuild-button-accent-hover: color-mix(in srgb, var(--weblyc-accent) 90%, #000);
}
.wp-block-button:not(.is-style-outline) > .wp-block-button__link {
  background: var(--tracebuild-button-accent);
  color: #fff;
}
.section--dark.cta .contact-form button {
  background: var(--tracebuild-button-accent);
  color: #fff;
}
.case-study-showcase__link a > span {
  background: var(--tracebuild-button-accent);
  color: #fff;
}

/* Button hover feedback darkens the existing treatment without changing its role. */
.wp-block-button:not(.is-style-outline) > .wp-block-button__link:hover {
  background: var(--tracebuild-button-accent-hover);
  color: #fff;
  transform: none;
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover {
  border-color: currentColor;
  background: color-mix(in srgb, currentColor 8%, transparent);
  color: inherit;
  transform: none;
}

.contact-form button:hover {
	background: var(--tracebuild-button-accent-hover, color-mix(in srgb, var(--weblyc-accent) 90%, #000));
	color: #fff;
  transform: none;
}
.section--dark.cta .contact-form button:hover {
  background: var(--tracebuild-button-accent-hover);
  color: #fff;
}
.tracebuild-service-module__action a:hover {
  border-color: currentColor;
  background: color-mix(in srgb, currentColor 8%, transparent);
  color: inherit;
  transform: none;
}
@media (max-width: 767px) {
  .site-header .wp-block-navigation__responsive-container.is-menu-open .site-header__mobile-cta .wp-block-navigation-item__content {
    background: var(--tracebuild-button-accent);
    color: #fff;
  }
}

/* Desktop submenus extend the header surface rather than floating over it. */
@media (min-width: 768px) {
  .site-header { background: var(--weblyc-base); }
  .site-header .wp-block-navigation-submenu { position: relative; }
  .site-header .wp-block-navigation-submenu::after {
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    height: 26px;
    content: "";
  }
  .site-header .wp-block-navigation__submenu-container {
    top: calc(100% + 26px) !important;
    min-width: 216px;
    padding-block: 6px;
    border: 0;
    border-radius: var(--weblyc-radius);
    background: var(--weblyc-base);
    background-color: var(--weblyc-base) !important;
    box-shadow: 0 10px 18px rgb(23 48 66 / 14%);
    overflow: hidden;
  }
  .site-header .wp-block-navigation__submenu-container .wp-block-navigation-item { width: 100%; }
  .site-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
    display: flex;
    min-height: 48px;
    padding: 12px 24px;
    align-items: center;
    color: var(--weblyc-ink);
  }
  .site-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
    background: rgb(23 48 66 / 6%);
  }
}

/* Individual Featured Works begin promptly below the shared header. */
.tracebuild-project-single {
  padding-top: 48px;
  padding-bottom: 80px;
}
@media (max-width: 767px) {
  .tracebuild-project-single {
    padding-top: 48px;
    padding-bottom: 56px;
  }
}
