@charset "UTF-8";
/* Palette and typography are defined in design-tokens.css. */
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:100px
}
body {
  margin:0;
  background:var(--site-background);
  color:var(--ink);
  font-family:var(--font);
  font-size:var(--text-base);
  line-height:1.7;
  font-weight:var(--weight-body);
  -webkit-font-smoothing:antialiased
}
body.menu-open {
  overflow:hidden
}
a {
  color:inherit;
  text-decoration:none
}
button,input,textarea {
  font:inherit
}
a,button {
  -webkit-tap-highlight-color:transparent
}
button {
  cursor:pointer
}
img {
  max-width:100%;
  height:auto
}
h1,h2,h3,p {
  margin:0
}
h1,h2,h3 {
  font-weight:var(--weight-heading);
  line-height:1.18;
  letter-spacing:-.025em
}
p {
  color:var(--muted)
}
::selection {
  background:var(--orange);
  color:var(--on-accent)
}
:focus-visible {
  outline:3px solid var(--orange);
  outline-offset:5px
}
.icon-library {
  position:absolute;
  width:0;
  height:0;
  overflow:hidden
}
.icon {
  width:21px;
  height:21px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.65;
  stroke-linecap:round;
  stroke-linejoin:round;
  flex-shrink:0
}
.section-wrap {
  width:min(var(--max),calc(100% - 112px));
  margin-inline:auto
}
.skip-link {
  position:fixed;
  top:10px;
  left:10px;
  z-index:100;
  background:var(--ink);
  color:var(--paper);
  padding:12px 20px;
  border-radius:8px;
  transform:translateY(-150%)
}
.skip-link:focus {
  transform:translateY(0)
}
.site-header {
  background:var(--paper);
  position:relative;
  z-index:20
}
.header-inner {
  height:102px;
  width:min(1376px,calc(100% - 80px));
  margin:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px
}
.brand {
  display:inline-flex;
  align-items:center;
  gap:9px;
  white-space:nowrap;
  font-size:var(--brand-size);
  font-weight:var(--weight-strong);
  letter-spacing:-1.4px;
  line-height:1
}
.brand-mark {
  width:37px;
  height:37px
}
.brand-dot {
  color:var(--orange)
}
.main-navigation {
  display:flex;
  align-items:center;
  gap:32px;
  font-size:var(--text-sm);
  font-weight:var(--weight-ui)
}
.navigation-primary>a:not(.button) {
  padding:15px 0;
  position:relative
}
.navigation-primary>a:not(.button)::after {
  content:"";
  position:absolute;
  bottom:7px;
  height:2px;
  left:0;
  width:100%;
  background:var(--orange);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .2s
}
.navigation-primary>a:hover::after,.navigation-primary>a[aria-current=page]::after {
  transform:scaleX(1)
}
.button {
  min-height:51px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:26px;
  padding:14px 22px;
  border:0;
  border-radius:6px;
  font-size:var(--text-sm);
  line-height:1.5;
  font-weight:var(--weight-ui);
  transition:background .2s,transform .2s
}
.button:hover {
  transform:translateY(-2px)
}
.button-dark {
  background:var(--orange);
  color:var(--on-accent)
}
.button-dark:hover {
  background:var(--orange-dark)
}
.button-orange {
  background:var(--orange);
  color:var(--on-accent)
}
.button-orange:hover {
  background:var(--orange-dark)
}
.button-cream {
  background:var(--paper);
  color:var(--ink)
}
.button-cream:hover {
  background:var(--surface-hover)
}
.header-contact {
  margin-left:6px;
  min-height:45px;
  padding:12px 17px;
  gap:23px
}
.header-contact .icon {
  width:17px;
  height:17px
}
.menu-toggle {
  display:none
}
/* One shared hero: identical image, crop and type positions on every page. */
.hero {
  --hero-original-height:450px;
  --hero-crop-height:calc(var(--hero-original-height) * .64);
  position:relative;
  isolation:isolate;
  width:calc(100% - 48px);
  max-width:1440px;
  min-height:var(--hero-crop-height);
  margin:0 auto;
  overflow:hidden;
  border-radius:16px;
  background:#1d2226;
  color:white;
}
.hero-visual {
  position:absolute;
  inset:0;
  width:100%;
  height:var(--hero-crop-height);
  overflow:hidden;
  border-radius:inherit;
  background:#1d2226;
  z-index:-1;
  isolation:isolate;
}
.hero-image,.hero-shade { position:absolute; inset:0; width:100%; height:100%; }
.hero-image {
  top:calc(var(--hero-original-height) * -.2);
  height:calc(var(--hero-original-height) * 1.5);
  object-fit:cover;
  object-position:50% 0%;
  z-index:0;
}
.hero-shade {
  z-index:1;
  background:linear-gradient(0deg,rgba(5,10,13,.8),transparent 75%),linear-gradient(90deg,rgba(10,16,20,.84),rgba(10,16,20,.45) 58%,rgba(10,16,20,.08));
}
.hero-values {
  position:absolute;
  right:24px;
  left:24px;
  bottom:14px;
  z-index:2;
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:24px;
  margin:0;
  padding:0;
  list-style:none;
  color:#fff;
  font-family:var(--font-values);
  font-size:.8125rem;
  font-weight:400;
  line-height:1.5;
  letter-spacing:.1em;
  text-transform:uppercase;
  white-space:nowrap;
  text-align:right;
  text-shadow:0 1px 8px #000;
}
.hero-values li { flex:0 0 auto; }
.hero-content {
  padding:12px 66px;
  width:min(100%,1000px);
  display:grid;
  grid-template-columns:minmax(0,1fr);
  row-gap:8px;
  font-size:var(--hero-title-size);
}
.hero-intro {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  grid-template-rows:minmax(20px,auto) minmax(2.24em,auto);
  row-gap:8px;
}
.hero .eyebrow { align-self:start; min-width:0; }
.hero h1 {
  font-size:inherit;
  line-height:1.12;
  letter-spacing:-.03em;
  font-weight:var(--weight-heading);
  overflow-wrap:break-word;
}
.hero h1 span { color:var(--orange-dark); }
.hero-content>p {
  max-width:690px;
  font-size:var(--text-base);
  line-height:1.7;
  color:#f0f1ed;
}

.eyebrow {
  font-size:var(--text-xs);
  letter-spacing:1.8px;
  font-weight:var(--weight-ui);
  line-height:1.5;
  display:flex;
  align-items:center;
  gap:12px;
  color:var(--ink)
}
.eyebrow.light {
  color:#f0f1ec;
  font-size:var(--text-xs);
  letter-spacing:2px
}
.small-dash {
  width:25px;
  height:2px;
  background:var(--orange);
  display:inline-block;
  flex-shrink:0
}
.expertise-strip {
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:min(var(--max),calc(100% - 112px));
  margin:auto;
  padding:16px 0;
  border-bottom:1px solid var(--line);
  gap:24px
}
.expertise-strip>span {
  color:var(--muted);
  font-size:var(--text-xs);
  letter-spacing:1.4px
}
.expertise-strip>div {
  display:flex;
  align-items:center;
  gap:27px;
  font-size:var(--text-xs);
  color:var(--muted)
}
.expertise-strip i {
  width:3px;
  height:3px;
  background:var(--line);
  border-radius:50%
}
.explore {
  padding-top:32px;
  padding-bottom:90px;
  scroll-margin-top:25px
}
.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:40px;
  margin-bottom:37px
}
.section-heading h2 {
  font-size:var(--heading-lg);
  line-height:1.18;
  margin-top:18px;
  letter-spacing:-1.7px
}
.section-heading h2 span {
  color:var(--muted)
}
.section-heading>p {
  font-size:var(--text-sm);
  line-height:1.8;
  padding-bottom:5px;
  padding-right:12px
}
.page-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:17px
}
.page-card {
  display:flex;
  flex-direction:column;
  padding:28px 29px 23px;
  min-height:294px;
  border:1px solid var(--card-border);
  border-radius:var(--radius);
  background:var(--card-bg);
  color:var(--card-text);
  transition:transform .2s,border-color .2s,box-shadow .2s;
  overflow:hidden
}
.page-card:hover {
  transform:translateY(-5px);
  border-color:var(--orange);
  box-shadow:0 12px 25px #00000020
}
.card-featured {
  background:var(--card-bg);
  border-color:var(--card-border)
}
.card-top {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  margin-bottom:32px
}
.card-top>span {
  font-size:var(--text-xs);
  color:var(--card-muted);
  font-family:monospace
}
.card-icon {
  width:31px;
  height:31px;
  fill:none;
  stroke:var(--orange-dark);
  stroke-width:1.3;
  stroke-linecap:round;
  stroke-linejoin:round
}
.card-featured .card-icon {
  stroke:var(--orange)
}
.page-card h3 {
  font-size:var(--heading-sm);
  letter-spacing:-.7px;
  line-height:1.25;
  margin-bottom:12px
}
.page-card p {
  color:var(--card-muted);
  font-size:var(--text-sm);
  line-height:1.85;
  max-width:290px;
  flex:1
}
.card-bottom {
  margin-top:25px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px
}
.card-bottom>span:first-child {
  font-size:var(--text-sm);
  font-weight:var(--weight-ui);
  color:var(--card-muted)
}
.circle-arrow {
  border:1px solid var(--card-border);
  border-radius:50%;
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  transition:background .2s,color .2s,border-color .2s
}
.circle-arrow .icon {
  width:16px;
  height:16px
}
.card-featured .circle-arrow,.page-card:hover .circle-arrow {
  background:var(--orange);
  color:var(--on-accent);
  border-color:var(--orange)
}
.approach {
  padding-block:57px 76px;
  border-top:1px solid var(--line);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:110px
}
.approach h2 {
  font-size:var(--heading-md);
  line-height:1.2;
  letter-spacing:-1px;
  margin-top:20px
}
.approach-intro>p:not(.eyebrow) {
  font-size:var(--text-sm);
  margin-top:20px;
  line-height:1.8
}
.inline-link {
  display:inline-flex;
  gap:20px;
  align-items:center;
  font-size:var(--text-sm)}
.inline-link:hover {
  color:var(--orange-dark)
}
.approach .inline-link {
  margin-top:25px
}
.inline-link .icon {
  width:18px;
  height:18px
}
.process-list {
  list-style:none;
  margin:0;
  padding:0
}
.process-list li {
  display:flex;
  gap:26px;
  border-bottom:1px solid var(--line);
  padding:24px 0
}
.process-list li:first-child {
  padding-top:5px
}
.process-list li:last-child {
  border-bottom:0
}
.process-list li>span {
  font-size:var(--text-xs);
  color:var(--orange-dark);
  white-space:nowrap;
  letter-spacing:1px;
  padding-top:2px
}
.process-list h3 {
  font-size:var(--heading-sm);
  letter-spacing:-.5px;
  margin-bottom:10px
}
.process-list p {
  font-size:var(--text-sm);
  line-height:1.8;
  max-width:365px
}
.project-cta {
  position:relative;
  isolation:isolate;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:45px;
  padding:49px 52px;
  background:var(--orange);
  color:white;
  border-radius:var(--radius);
  overflow:hidden
}
.project-cta .eyebrow {
  color:#ffe4d7;
  font-size:var(--text-xs)
}
.project-cta h2 {
  font-size:var(--heading-lg);
  letter-spacing:-1.3px;
  line-height:1.15;
  margin-top:14px
}
.project-cta p:not(.eyebrow) {
  color:#ffe4d7;
  font-size:var(--text-sm);
  margin-top:16px
}
.project-cta .button {
  white-space:nowrap;
  font-size:var(--text-sm);
  z-index:1
}
.cta-art {
  position:absolute;
  right:15px;
  bottom:-30px;
  width:300px;
  height:300px;
  opacity:.16;
  color:#fff;
  z-index:-1
}
.site-footer {
  padding-top:61px;
  padding-bottom:23px
}
.footer-top {
  display:flex;
  align-items:center;
  gap:34px;
  padding-bottom:37px;
  border-bottom:1px solid var(--line)
}
.footer-top .brand {
  font-size:var(--brand-size)
}
.footer-top .brand-mark {
  width:30px;
  height:30px
}
.footer-top>p {
  font-size:var(--text-xs)
}
.footer-top>.inline-link {
  margin-left:auto
}
.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:25px;
  font-size:var(--text-xs);
  color:var(--muted);
  padding-top:20px
}
.footer-navigation {
  display:flex;
  flex-wrap:wrap;
  gap:12px 28px;
  margin:0 0 24px;
  font-size:var(--text-sm);
  font-weight:var(--weight-ui);
}
.footer-navigation a:hover { color:var(--orange-dark); }
.footer-bottom>div {
  display:flex;
  gap:34px
}
.footer-bottom a:hover {
  color:var(--orange-dark)
}
.article-content {
  padding-block:28px 70px;
  min-height:350px
}
.article-content.wp-content> :first-child { margin-top:0; }
.article-content>h2 {
  font-size:var(--heading-md);
  margin-bottom:24px;
  letter-spacing:-1px
}
.article-content>p {
  max-width:760px;
  margin-bottom:24px;
  font-size:var(--text-base)
}
.article-content h2:not(:first-child) {
  margin-top:50px
}
.article-content a:not(.button) {
  text-decoration:underline;
  text-underline-offset:4px
}
.article-content ul {
  color:var(--muted);
  padding-left:20px
}
.article-content .content-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
  margin:30px 0 42px
}
.content-panel {
  padding:30px;
  background:var(--white);
  border:1px solid var(--line);
  border-radius:12px
}
.content-panel .eyebrow {
  color:var(--orange-dark);
  margin-bottom:22px
}
.content-panel h2,.content-panel h3 {
  font-size:var(--heading-sm);
  line-height:1.25;
  letter-spacing:-.5px;
  margin-bottom:15px
}
.content-panel p {
  font-size:var(--text-base);
  line-height:1.8
}
.article-content .service-index {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px 32px;
  margin:24px 0 36px;
  padding:0;
  list-style:none;
}
.service-index li { border-top:1px solid var(--line); padding-top:18px; }
.service-index h3 { font-size:var(--heading-sm); margin-bottom:12px; }
.content-details { margin:28px 0; padding:18px 22px; border:1px solid var(--line); border-radius:8px; }
.content-details summary { cursor:pointer; font-weight:var(--weight-ui); color:var(--ink); }
.content-details summary::marker { color:var(--orange-dark); }
.content-details[open] summary { margin-bottom:22px; }
.content-details h2 { font-size:var(--heading-md); margin-block:28px 18px; }
.content-details p { margin-bottom:18px; }
.main-navigation>.nav-business { color:var(--orange-dark); font-weight:var(--weight-strong); }
.content-panel ul {
  font-size:var(--text-sm);
  line-height:2;
  margin-bottom:0
}
.content-grid.two {
  grid-template-columns:repeat(2,minmax(0,1fr))
}
.module-tag {
  display:inline-flex;
  padding:6px 10px;
  border-radius:4px;
  background:var(--pale);
  color:var(--orange-dark);
  font-size:var(--text-xs);
  margin-bottom:20px;
  letter-spacing:.7px
}
.note {
  border-left:2px solid var(--orange);
  padding:14px 22px;
  background:var(--surface);
  max-width:850px
}
.reference-list {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
  margin-bottom:35px
}
.reference-card {
  display:flex;
  flex-direction:column;
  min-height:240px;
  background:var(--surface);
  border-radius:12px;
  padding:34px;
  text-decoration:none!important;
  transition:transform .2s
}
.reference-card:nth-child(2) {
  background:var(--pale)
}
.reference-card:hover {
  transform:translateY(-4px)
}
.reference-card .reference-wordmark {
  font-size:var(--reference-size);
  font-weight:var(--weight-ui);
  letter-spacing:-.03em;
  margin-block:13px 25px
}
.reference-card>div {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-top:auto;
  font-size:var(--text-sm)
}
.reference-card .eyebrow {
  font-size:var(--text-xs)
}
.contact-details {
  margin-top:36px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:25px
}
.contact-details a {
  overflow-wrap:anywhere
}
.contact-details h2 {
  font-size:var(--heading-sm);
  letter-spacing:-.5px
}
.contact-details p {
  margin-top:13px
}
.contact-setup-note {
  color:var(--muted);
  font-size:var(--text-base)
}
.wp-content>h2 {
  font-size:var(--heading-md);
  margin-block:35px 20px
}
.wp-content>h3 {
  font-size:var(--heading-sm);
  margin-block:28px 15px
}
.wp-content>p {
  margin-block:0 22px;
  max-width:850px
}
.wp-content a {
  color:var(--orange-dark)
}
.wp-content figure {
  margin-inline:0
}
.wp-content table {
  width:100%;
  border-collapse:collapse
}
.wp-content td,.wp-content th {
  border:1px solid var(--line);
  padding:12px
}
.wp-content pre {
  overflow:auto;
  padding:20px;
  background:var(--surface)
}
.wp-content iframe {
  max-width:100%
}
.not-found {
  text-align:center;
  padding-block:100px
}
.not-found h1 {
  font-size:var(--page-title-size);
  margin-bottom:20px
}
.not-found p {
  margin-bottom:30px
}
/* Keep small text and action labels readable against their backgrounds. */
.button-orange {
  background:var(--orange)
}
.button-orange:hover {
  background:var(--orange-dark)
}
.project-cta .eyebrow,.project-cta p:not(.eyebrow) {
  color:var(--on-accent)
}
.expertise-strip>span,.footer-bottom {
  color:var(--muted)
}
.card-top>span {
  color:var(--card-muted)
}
@media(min-width:1600px) {
  .hero { --hero-original-height:460px; }
  .hero-content { padding-left:90px; }
}
@media(max-width:1150px) {
  .hero-content { padding-inline:44px; }
  .main-navigation {
    gap:20px
  }
  .header-inner {
    width:calc(100% - 56px)
  }
  .section-wrap,.expertise-strip {
    width:calc(100% - 80px)
  }
  .page-card {
    padding:25px 24px 20px
  }
  .page-card h3 {
    font-size:var(--heading-sm)
  }
  .approach {
    gap:65px
  }
  .project-cta {
    padding:42px 38px
  }
  .project-cta h2 {
    font-size:var(--heading-md)
  }
}
@media(max-width:1100px) {
  .main-navigation { max-height:calc(100dvh - 94px); overflow-y:auto; overscroll-behavior:contain; }
  .hero { width:calc(100% - 32px); --hero-original-height:450px; min-height:0; background:transparent; }
  .hero-content { padding:0; width:100%; display:block; }
  .hero-intro { min-height:var(--hero-crop-height); padding:12px 35px; grid-template-rows:minmax(20px,auto) auto; align-content:start; }
  .hero-content>p { padding:16px 16px 0; max-width:none; color:var(--muted); }
  .header-inner {
    height:86px
  }
  .brand {
    font-size:var(--brand-size)
  }
  .menu-toggle {
    display:flex;
    align-items:center;
    gap:13px;
    border:1px solid var(--line);
    border-radius:6px;
    background:transparent;
    padding:9px 13px;
    font-size:var(--text-sm);
    min-height:42px
  }
  .menu-lines {
    width:18px;
    height:12px;
    position:relative;
    border-block:1.5px solid currentColor
  }
  .menu-lines::after {
    content:"";
    position:absolute;
    top:4px;
    left:0;
    width:18px;
    height:1.5px;
    background:currentColor
  }
  .main-navigation {
    display:none;
    position:absolute;
    top:74px;
    left:28px;
    right:28px;
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:10px;
    padding:20px;
    box-shadow:0 15px 30px #2223;
    flex-direction:column;
    gap:3px;
    align-items:stretch
  }
  .main-navigation.is-open {
    display:flex
  }
  .navigation-primary>a:not(.button) {
    padding:12px
  }
  .navigation-primary>a:not(.button)::after {
    display:none
  }
  .navigation-primary>a[aria-current=page]:not(.button) {
    color:var(--orange-dark)
  }
  .header-contact {
    margin:10px 0 0;
    justify-content:space-between
  }
  .expertise-strip>span {
    display:none
  }
  .expertise-strip {
    justify-content:center
  }
  .expertise-strip>div {
    width:100%;
    justify-content:space-between;
    gap:15px
  }
  .section-wrap,.expertise-strip {
    width:calc(100% - 64px)
  }
  .section-heading h2 {
    font-size:var(--heading-lg)
  }
  .section-heading>p {
    font-size:var(--text-sm)
  }
  .page-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .page-card {
    min-height:287px
  }
  .page-card p {
    font-size:var(--text-sm)
  }
  .approach {
    gap:40px
  }
  .approach h2 {
    font-size:var(--heading-md)
  }
  .project-cta {
    gap:25px;
    padding:35px 30px
  }
  .project-cta h2 {
    font-size:var(--heading-sm)
  }
  .project-cta .button {
    gap:13px;
    padding:13px 17px
  }
  .article-content .content-grid {
    grid-template-columns:1fr 1fr
  }
  .footer-bottom>div>span {
    display:none
  }
}
@media(max-width:640px) {
  .article-content .service-index { grid-template-columns:1fr; }
  .content-details { padding:16px; }
  .content-details h2 { font-size:var(--heading-sm); }
  .hero { --hero-original-height:620px; width:calc(100% - 24px); min-height:0; border-radius:12px; background:transparent; }
  .hero-image { object-position:80% 0%; }
  .hero-shade { background:linear-gradient(0deg,rgba(5,10,13,.85),transparent 80%),linear-gradient(90deg,rgba(9,15,19,.85),rgba(9,15,19,.5)); }
  .hero-values { left:16px; right:16px; bottom:10px; gap:5px; font-size:.625rem; letter-spacing:0; }
  .hero-content { padding:0; display:block; }
  .hero-intro { min-height:var(--hero-crop-height); padding:16px 23px; grid-template-rows:minmax(40px,auto) auto; row-gap:12px; align-content:start; }
  .hero-content>p { padding:16px 8px 0; max-width:none; color:var(--muted); }
  .hero .eyebrow { letter-spacing:1.1px; gap:10px; }

  html {
    scroll-padding-top:20px
  }
  .header-inner {
    height:77px;
    width:calc(100% - 40px)
  }
  .brand {
    font-size:var(--brand-size);
    gap:6px
  }
  .brand-mark {
    width:32px;
    height:32px
  }
  .menu-label {
    font-size:var(--text-xs)
  }
  .main-navigation {
    left:20px;
    right:20px;
    top:67px
  }
  .small-dash {
    width:19px
  }
  .desktop-break {
    display:none
  }
  .section-wrap,.expertise-strip {
    width:calc(100% - 40px)
  }
  .expertise-strip {
    padding-block:16px
  }
  .expertise-strip>div {
    font-size:var(--text-xs);
    gap:8px;
    flex-wrap:wrap;
    justify-content:center
  }
  .expertise-strip i {
    margin-inline:2px
  }
  .explore {
    padding-block:24px 51px
  }
  .section-heading {
    flex-direction:column;
    align-items:flex-start;
    gap:20px;
    margin-bottom:27px
  }
  .eyebrow {
    font-size:var(--text-xs);
    letter-spacing:1.4px
  }
  .section-heading h2 {
    font-size:var(--heading-md);
    letter-spacing:-1px;
    margin-top:15px
  }
  .section-heading>p {
    font-size:var(--text-sm);
    padding:0
  }
  .section-heading>p br {
    display:none
  }
  .page-grid {
    grid-template-columns:1fr;
    gap:13px
  }
  .page-card {
    min-height:260px;
    padding:25px 25px 21px
  }
  .card-top {
    margin-bottom:23px
  }
  .page-card h3 {
    font-size:var(--heading-sm)
  }
  .page-card p {
    max-width:none;
    font-size:var(--text-sm);
    line-height:1.8
  }
  .card-bottom {
    margin-top:22px
  }
  .card-bottom>span:first-child {
    font-size:var(--text-sm)}
  .approach {
    grid-template-columns:1fr;
    gap:34px;
    padding-block:41px 44px
  }
  .approach h2 {
    font-size:var(--heading-md)
  }
  .approach-intro>p:not(.eyebrow) {
    font-size:var(--text-base)
  }
  .approach-intro>p br {
    display:none
  }
  .process-list li {
    padding-block:23px;
    gap:23px
  }
  .process-list h3 {
    font-size:var(--heading-sm)
  }
  .process-list p {
    font-size:var(--text-sm)
  }
  .project-cta {
    padding:31px 25px 35px;
    flex-direction:column;
    align-items:flex-start;
    gap:27px
  }
  .project-cta h2 {
    font-size:var(--heading-md);
    line-height:1.17;
    letter-spacing:-1.1px
  }
  .project-cta p:not(.eyebrow) {
    font-size:var(--text-sm);
    max-width:250px
  }
  .project-cta .button {
    font-size:var(--text-sm);
    gap:23px
  }
  .cta-art {
    width:250px;
    right:-40px;
    opacity:.12
  }
  .site-footer {
    padding-top:42px;
    padding-bottom:22px
  }
  .footer-top {
    flex-wrap:wrap;
    gap:18px;
    padding-bottom:25px
  }
  .footer-top .brand {
    font-size:var(--brand-size)
  }
  .footer-top>p {
    order:3;
    flex-basis:100%;
    font-size:var(--text-sm)
  }
  .footer-top>.inline-link {
    font-size:var(--text-sm)}
  .footer-bottom {
    font-size:var(--text-xs);
    gap:15px
  }
  .footer-bottom>div {
    gap:0
  }
  .article-content {
    padding-block:24px 45px
  }
  .article-content>h2 {
    font-size:var(--heading-sm);
    line-height:1.2
  }
  .article-content>p {
    font-size:var(--text-base)
  }
  .article-content .content-grid,.article-content .content-grid.two,.reference-list,.contact-details {
    grid-template-columns:1fr;
    gap:16px
  }
  .content-panel {
    padding:26px
  }
  .content-panel h2,.content-panel h3 {
    font-size:var(--heading-sm)
  }
  .content-panel p {
    font-size:var(--text-base)
  }
  .reference-card {
    min-height:220px;
    padding:28px
  }
  .reference-card .reference-wordmark {
    font-size:var(--reference-size)
  }
  .wp-content>h2 {
    font-size:var(--heading-sm)
  }
  .wp-content>p {
    font-size:var(--text-base)
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*::before,*::after {
    transition:none!important;
    animation:none!important
  }
}
@media print {
  :root { color-scheme:light; --paper:#fff; --white:#fff; --surface:#fff; --surface-raised:#fff; --ink:#232622; --muted:#545c52; --line:#b7bbb0; --orange:#b93d19; --orange-dark:#b93d19; --pale:#f5eae1; --card-bg:#fff; --card-text:#232622; --card-muted:#545c52; --card-border:#b7bbb0; --site-background:#fff; --on-accent:#fff; --surface-gradient:#fff; --warm-gradient:#fff; }
  .site-header,.project-cta,.site-footer,.skip-link {
    display:none
  }
  .page-grid {
    grid-template-columns:repeat(2,1fr)
  }
  .page-card {
    break-inside:avoid
  }
  .section-wrap {
    width:100%
  }
  body {
    background:#fff
  }
}
/* Three-language navigation and the detailed development principles. */
.header-inner {
  gap:24px
}
.header-inner>.brand {
  order:0
}
.main-navigation {
  order:1;
  margin-left:auto;
  gap:23px
}
.header-controls {
  order:2;
  display:flex;
  align-items:center;
  gap:12px
}
.language-switch {
  display:flex;
  align-items:center;
  border:1px solid var(--line);
  border-radius:6px;
  padding:3px;
  gap:2px;
  font-size:var(--text-xs);
  line-height:1;
  font-weight:var(--weight-ui)
}
.language-switch a {
  padding:9px 7px;
  border-radius:3px
}
.language-switch a[aria-current=page] {
  background:var(--ink);
  color:var(--paper)
}
.language-switch a:hover:not([aria-current]) {
  background:var(--surface-hover)
}
.section-heading>p {
  max-width:310px
}
.approach-intro>p:not(.eyebrow) {
  max-width:360px
}
.principles-list {
  list-style:none!important;
  margin:32px 0 42px;
  padding:0!important;
  max-width:950px
}
.principles-list li {
  display:grid;
  grid-template-columns:45px 1fr;
  gap:22px;
  padding:27px 0;
  border-top:1px solid var(--line)
}
.principle-number {
  font-size:var(--text-sm);
  font-family:monospace;
  color:var(--orange-dark);
  padding-top:5px
}
.principles-list h3 {
  font-size:var(--heading-sm);
  margin-bottom:15px;
  line-height:1.25
}
.principles-list p {
  font-size:var(--text-base);
  line-height:1.85;
  max-width:790px
}
.principles-list .principle-example {
  margin-top:14px;
  padding:13px 18px;
  background:var(--surface);
  border-radius:6px;
  font-size:var(--text-sm)
}
.principle-example strong {
  color:var(--ink);
  font-weight:var(--weight-ui)
}
.brand-quote {
  margin:35px 0;
  padding:22px 27px;
  border-left:3px solid var(--orange);
  max-width:900px
}
.brand-quote p {
  font-size:var(--quote-size);
  line-height:1.4;
  letter-spacing:-.7px;
  color:var(--ink)
}
.project-cta .button {
  white-space:normal;
  flex-shrink:0;
  max-width:100%
}
.content-panel h3,.page-card h3 {
  overflow-wrap:anywhere
}
.not-found .eyebrow {
  justify-content:center
}
.not-found h1 {
  font-size:var(--page-title-size);
  line-height:1.15
}
@media(min-width:1101px) and (max-width:1150px) {
  .main-navigation {
    gap:15px;
    font-size:var(--text-sm)
  }
  .header-contact {
    gap:12px;
    padding-inline:13px
  }
  .header-inner {
    gap:17px
  }
  .header-inner .brand {
    font-size:var(--brand-size)
  }
  .header-inner .brand-mark {
    width:31px
  }
}
@media(max-width:1100px) {
  .header-inner {
    gap:12px
  }
  .header-controls {
    margin-left:auto
  }
  .main-navigation {
    margin-left:0;
    gap:3px
  }
  .language-switch a {
    padding-block:10px
  }
}
@media(max-width:640px) {
  .header-controls {
    gap:8px
  }
  .header-inner {
    gap:8px
  }
  .header-inner .brand {
    font-size:var(--brand-size);
    gap:4px
  }
  .header-inner .brand-mark {
    width:28px;
    height:28px
  }
  .language-switch {
    font-size:var(--text-xs);
    padding:2px;
    gap:1px
  }
  .language-switch a {
    padding:10px 4px
  }
  .menu-toggle {
    padding:10px;
    min-height:38px
  }
  .menu-label {
    display:none
  }
  .principles-list li {
    grid-template-columns:27px 1fr;
    gap:13px;
    padding-block:24px
  }
  .principles-list h3 {
    font-size:var(--heading-sm)
  }
  .principles-list p {
    font-size:var(--text-base)
  }
  .principles-list .principle-example {
    font-size:var(--text-sm);
    padding:12px 14px
  }
  .brand-quote {
    padding:15px 20px;
    margin-inline:0
  }
  .brand-quote p {
    font-size:var(--quote-size)
  }
  .section-heading>p {
    max-width:100%
  }
  .project-cta h2 {
    overflow-wrap:anywhere
  }
  .footer-top>p {
    max-width:100%
  }
}
/* Readable copy keeps intentional line breaks from the admin editor. */
.hero-content>p,.page-card p,.section-heading>p,.process-list p,.approach-intro>p,.project-cta p {
  white-space:pre-line
}
.language-switch a {
  min-height:38px;
  display:inline-flex;
  align-items:center;
  justify-content:center
}
.project-cta .button {
  min-height:54px
}

/* Preserve the supplied logo proportions at every header breakpoint. */
.header-inner .brand-mark.brand-logo {
  display:block;
  width:50px;
  height:auto;
  flex-shrink:0;
  object-fit:contain;
}
@media(min-width:1101px) and (max-width:1150px) {
  .header-inner .brand-mark.brand-logo { width:42px; }
}
@media(max-width:640px) {
  .header-inner .brand-mark.brand-logo { width:36px; }
}
@media(max-width:360px) {
  .header-inner .brand-mark.brand-logo { width:32px; }
}

/* The primary menu and the always-visible service row share one navigation landmark. */
.navigation-primary,.navigation-services { display:flex; align-items:center; }
.navigation-primary { gap:22px; }
.navigation-primary>a,.navigation-services>a { line-height:1.5; }

.navigation-services>a { padding:10px 8px; border-radius:5px; }
.navigation-services>a:hover,.navigation-services>a[aria-current=page] { color:var(--orange-dark); background:var(--pale); }
@media(min-width:1101px) {
 .site-header { padding-bottom:0; }
 .main-navigation { display:block; align-self:flex-start; margin-top:24px; }
 .navigation-primary>a:not(.button) { white-space:nowrap; padding:15px 0 5px; }
 .navigation-services { position:absolute; top:68px; left:50%; transform:translateX(-50%); width:min(1376px,calc(100% - 80px)); min-height:32px; justify-content:flex-end; gap:22px; }
}
@media(min-width:1101px) and (max-width:1250px) {
 .navigation-primary { gap:13px; }
 .header-inner { gap:16px; }
}
@media(max-width:1100px) {
 .navigation-primary,.navigation-services { flex-direction:column; align-items:stretch; gap:0; }
 .navigation-primary>a,.navigation-services>a { padding:12px; overflow-wrap:anywhere; }
 .navigation-services { border-top:1px solid var(--line); padding-top:8px; margin-top:8px; }
}

/* Secondary links belong to the selected Services section only. */
.navigation-services[hidden] { display:none !important; }
.navigation-primary>a[aria-current=page],.navigation-primary>a.is-current-section { color:var(--orange-dark); }
.navigation-primary>a.is-current-section::after { transform:scaleX(1); }
@media(min-width:1101px) {
 .site-header .header-inner { height:102px; border-bottom:1px solid var(--line); }
 .navigation-services>a { padding:4px 8px; }
 .navigation-primary>a:not(.button)::after { bottom:1px; }

}

/* Approved Obsidian direction: shared site chrome and restrained accent surfaces. */
.menu-toggle { color:var(--ink); }
.site-header .brand-logo { background:var(--logo-surface); padding:4px; border-radius:5px; box-sizing:content-box; }
.hero { box-shadow:0 18px 70px #00000026; }
.hero-values { font-weight:400; letter-spacing:.12em; }
.language-switch a[aria-current=page] { background:var(--orange); color:var(--on-accent); }
.section-heading h2 span { color:var(--ink); }
.section-heading>p { max-width:380px; }
.explore { padding-block:54px 58px; }
.approach-visual .service-illustration { filter:drop-shadow(0 12px 25px #00000026); }
.site-footer { background:var(--footer-surface); border-top:1px solid var(--line); }
.footer-navigation { gap:16px 24px; }
.content-details { background:var(--white); }
.article-content a:not(.button) { color:var(--orange-dark); }
@media(prefers-reduced-motion:reduce) { .page-card:hover,.reference-card:hover,.button:hover { transform:none; } }
@media print { .hero { box-shadow:none; } .site-footer { background:#fff; } .page-card::after { display:none; } .page-card .page-card-art { display:none; } }
