:root {
  --mineral: #f6f3ed;
  --porcelain: #fbfaf7;
  --stone: #ede8df;
  --graphite: #171714;
  --charcoal: #27251f;
  --muted: #5e5a52;
  --quiet: #726e66;
  --amber: #d98a16;
  --amber-deep: #a45b0b;
  --amber-light: #f3be5c;
  --border: rgba(23, 23, 20, 0.11);
  --border-strong: rgba(23, 23, 20, 0.22);
  --grid: rgba(23, 23, 20, 0.055);
  --page: min(1600px, calc(100vw - 112px));
  --space-section: clamp(7rem, 10vw, 11.5rem);
  --spring-enter: linear(0, .012, .047, .101, .171, .254, .346, .444, .544, .642, .733, .815, .884, .939, .978, 1.002, 1.014, 1.016, 1.012, 1.006, 1.002, 1);
  --ease-response: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-cinematic: cubic-bezier(0.76, 0, 0.24, 1);
  --shadow-soft: 0 28px 80px rgba(46, 34, 16, 0.11);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--mineral); overflow-x: clip; }
body {
  margin: 0;
  background: var(--mineral);
  color: var(--graphite);
  font-family: var(--font-body), "Manrope", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
a { color: inherit; }
button, a, input, textarea, select { -webkit-tap-highlight-color: transparent; }
button, input, textarea, select { font: inherit; }
::selection { background: var(--amber-light); color: var(--graphite); }

.skip-link {
  position: fixed;
  left: 1rem;
  top: 1rem;
  z-index: 1000;
  transform: translateY(-160%);
  background: var(--graphite);
  color: var(--porcelain);
  padding: 0.75rem 1rem;
  border-radius: 8px;
  text-decoration: none;
  transition: transform 180ms var(--ease-response);
}
.skip-link:focus { transform: translateY(0); }

.page-shell { width: var(--page); margin-inline: auto; position: relative; z-index: 2; }
.section-grid {
  position: relative;
  background-image: repeating-linear-gradient(to right, transparent 0, transparent calc(8.333% - 1px), var(--grid) calc(8.333% - 1px), var(--grid) 8.333%);
  background-size: calc(100% - max(0px, (100vw - 1600px))) 100%;
  background-position: center top;
}

h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 {
  font-family: var(--font-display), "Chakra Petch", "Arial Narrow", sans-serif;
  text-transform: uppercase;
  text-wrap: balance;
}

.section-label {
  margin: 0 0 1.6rem;
  color: var(--amber-deep);
  font-size: 0.76rem;
  line-height: 1;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 700;
}
.section-label.is-inverse { color: var(--amber-light); }

.text-link {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-size: 0.82rem;
  line-height: 1;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  text-decoration: none;
  position: relative;
}
.text-link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 1.7rem;
  bottom: -0.5rem;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 420ms var(--ease-response);
}
.text-link:focus-visible::after { transform: scaleX(1); transform-origin: left; }
.text-link svg { width: 18px; height: 18px; transition: transform 320ms var(--ease-response); }
.text-link:focus-visible svg { transform: translateX(4px); }

.button {
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1.5rem;
  padding: 0 1.25rem;
  border-radius: 8px;
  font-size: 0.82rem;
  font-weight: 650;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  text-decoration: none;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transition: transform 320ms var(--ease-response), box-shadow 500ms var(--ease-response), background 320ms var(--ease-response);
}
.button::after {
  content: "";
  position: absolute;
  left: 16%;
  right: 16%;
  bottom: -12px;
  height: 20px;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(243, 190, 92, .72) 0%, rgba(217, 138, 22, .22) 45%, transparent 72%);
  filter: blur(6px);
  opacity: .72;
  z-index: -1;
  transform: scaleX(.72);
  transition: transform 520ms var(--ease-response), opacity 520ms var(--ease-response);
}
.button-primary { background: var(--graphite); color: var(--porcelain); box-shadow: inset 0 -1px 0 rgba(243,190,92,.65); }
.button-primary:focus-visible { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(23,23,20,.17), inset 0 -1px 0 rgba(243,190,92,.9); }
.button:focus-visible::after { transform: scaleX(1.5); opacity: 1; }
.button:active { transform: translateY(0) scale(.985); }
.button-arrow { width: 17px; height: 17px; transition: transform 320ms var(--ease-response); }
.button:focus-visible .button-arrow { transform: translateX(4px); }
.button-amber { background: var(--amber); color: var(--graphite); box-shadow: inset 0 -1px 0 rgba(255,244,215,.76); }
.button-amber::after { background: radial-gradient(ellipse, rgba(255,244,215,.9), transparent 68%); }

:focus-visible { outline: 2px solid var(--amber); outline-offset: 4px; }

/* Header */
.site-header {
  position: absolute;
  z-index: 40;
  top: 0;
  left: 0;
  right: 0;
  color: var(--graphite);
}
.site-header-inner {
  width: var(--page);
  margin-inline: auto;
  height: 118px;
  display: grid;
  grid-template-columns: minmax(210px, 1fr) auto 190px;
  gap: clamp(2.25rem, 4vw, 5rem);
  align-items: center;
}
.brand-lockup {
  display: inline-flex;
  align-items: center;
  gap: .72rem;
  width: max-content;
  color: var(--graphite);
  font-family: var(--font-display), "Arial Narrow", sans-serif;
  font-size: 1rem;
  line-height: 1;
  font-weight: 700;
  text-decoration: none;
}
.brand-lockup.is-inverse { color: var(--porcelain); }
.brand-mark { width: 34px; height: 34px; overflow: visible; }
.brand-mark path { fill: none; stroke: currentColor; stroke-width: 3.2; stroke-linecap: square; }
.brand-mark .brand-mark-accent { stroke: var(--amber); }
.desktop-nav { display: flex; align-items: center; gap: clamp(1.6rem, 2.4vw, 2.75rem); white-space: nowrap; }
.desktop-nav a {
  color: var(--muted);
  font-size: .76rem;
  line-height: 1;
  font-weight: 600;
  text-transform: uppercase;
  text-decoration: none;
  position: relative;
  transition: color 240ms var(--ease-response);
}
.desktop-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -10px;
  height: 1px;
  background: var(--amber);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 300ms var(--ease-response);
}
.desktop-nav a.is-active { color: var(--graphite); }
.desktop-nav a.is-active::after { transform: scaleX(1); transform-origin: left; }
.desktop-cta { justify-self: end; width: 190px; display: flex; justify-content: flex-end; }
.desktop-cta .button { width: 190px; }
.menu-toggle, .mobile-nav { display: none; }
.site-header-inner { animation: nav-enter 620ms var(--spring-enter) both; }
@keyframes nav-enter { from { opacity: 0; transform: translateY(-12px); } to { opacity: 1; transform: translateY(0); } }

/* Reveal system */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  filter: blur(6px);
  transition: opacity 480ms var(--ease-response) var(--reveal-delay, 0ms), transform 560ms var(--spring-enter) var(--reveal-delay, 0ms), filter 520ms var(--ease-response) var(--reveal-delay, 0ms);
}
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}
.reveal .outcome-rule {
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 540ms var(--spring-enter) var(--reveal-delay, 0ms);
}
.reveal.is-visible .outcome-rule { transform: scaleX(1); }

/* Ambient field */
.ambient-field { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.ambient-orb { position: absolute; border-radius: 50%; filter: blur(70px); will-change: transform; animation: ambient-drift 15s var(--ease-cinematic) infinite alternate; }
.ambient-field-light .ambient-orb-a { width: 48vw; height: 48vw; right: 6vw; top: 7vh; background: rgba(243,190,92,.24); }
.ambient-field-light .ambient-orb-b { width: 30vw; height: 30vw; right: 20vw; top: 30vh; background: rgba(211,201,181,.33); animation-delay: -5s; }
.ambient-field-dark .ambient-orb-a { width: 55vw; height: 55vw; right: 4vw; top: 4%; background: rgba(217,138,22,.34); filter: blur(95px); }
.ambient-field-dark .ambient-orb-b { width: 32vw; height: 32vw; left: 42%; bottom: -18%; background: rgba(243,190,92,.12); filter: blur(80px); animation-delay: -7s; }
.ambient-field-soft .ambient-orb-a { width: 36vw; height: 36vw; right: 0; top: 0; background: rgba(243,190,92,.15); }
.ambient-scan { position: absolute; inset: 0; opacity: .045; background: linear-gradient(110deg, transparent 42%, rgba(255,255,255,.7) 49%, transparent 56%); background-size: 220% 100%; background-position: 28% 0; }
@keyframes ambient-drift { from { transform: translate3d(-3%, -2%, 0) scale(.96); } to { transform: translate3d(5%, 4%, 0) scale(1.07); } }

/* Hero */
.hero { min-height: 100dvh; overflow: hidden; background-color: var(--mineral); }
.hero::before {
  content: "";
  position: absolute;
  width: min(43vw, 720px);
  aspect-ratio: .85;
  right: 4.8vw;
  top: 14vh;
  border: 1px solid rgba(168,95,13,.18);
  transform: rotate(7deg);
  background: linear-gradient(145deg, rgba(255,255,255,.38), rgba(243,190,92,.06));
  box-shadow: inset 0 0 50px rgba(255,255,255,.45), 0 40px 80px rgba(93,69,29,.06);
  z-index: 1;
  animation: hero-plane-enter 760ms var(--spring-enter) both;
}
@keyframes hero-plane-enter { from { opacity: 0; transform: rotate(7deg) translateY(18px) scale(.985); } to { opacity: 1; transform: rotate(7deg) translateY(0) scale(1); } }
.hero::after {
  content: "";
  position: absolute;
  left: 48%;
  top: 22%;
  width: 44%;
  height: 42%;
  background: radial-gradient(ellipse at center, rgba(217,138,22,.2), transparent 68%);
  filter: blur(44px);
  z-index: 0;
}
.hero-content { min-height: 100dvh; padding-top: 152px; padding-bottom: 58px; display: flex; flex-direction: column; justify-content: space-between; }
.hero-copy { width: min(1060px, 76vw); position: relative; z-index: 3; }
.hero h1 {
  margin: 0;
  font-size: clamp(4.4rem, 6.8vw, 8.5rem);
  line-height: .88;
  letter-spacing: -.055em;
  font-weight: 700;
}
.hero h1 span { display: block; }
.hero h1 span:nth-child(3) { margin-top: .08em; }
.hero-bottom { display: flex; flex-direction: column; gap: 1.6rem; width: min(560px, 46vw); position: relative; z-index: 3; }
.hero-bottom > p { margin: 0; color: var(--muted); max-width: 48ch; font-size: clamp(1rem, 1.18vw, 1.18rem); line-height: 1.55; }
.hero-actions { display: flex; align-items: center; gap: 2.2rem; }
.hero-register { position: absolute; z-index: 2; font-family: ui-monospace, monospace; font-size: 1.2rem; color: rgba(23,23,20,.72); }
.hero-register-a { left: 6.5%; top: 16%; }
.hero-register-b { left: 51%; top: 16%; }
.hero-register-c { right: 6%; bottom: 12%; }

/* Clarity */
.clarity-section { padding: var(--space-section) 0 clamp(8rem, 10vw, 11rem); background-color: var(--porcelain); overflow: hidden; }
.clarity-section::after { content: ""; position: absolute; width: 12vw; min-width: 140px; height: 130%; right: -2vw; top: -12%; background: linear-gradient(180deg, rgba(243,190,92,.06), rgba(243,190,92,.24) 60%, rgba(237,232,223,.4)); transform: rotate(3deg); filter: blur(2px); }
.clarity-intro { display: grid; grid-template-columns: 7fr 3fr; gap: 8%; align-items: end; }
.clarity-intro h2, .section-heading-row h2 { margin: 0; font-size: clamp(3.2rem, 5.1vw, 6.8rem); line-height: .92; letter-spacing: -.052em; font-weight: 700; }
.clarity-intro > p { color: var(--muted); margin: 0 0 .45rem; max-width: 38ch; font-size: .96rem; }
.outcome-grid { margin-top: clamp(7rem, 9vw, 10rem); display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; }
.outcome-item { min-height: 190px; display: flex; flex-direction: column; }
.outcome-rule { height: 1px; background: var(--border-strong); margin-bottom: 1.6rem; }
.outcome-item h3 { font-size: clamp(1.25rem, 1.4vw, 1.7rem); line-height: .96; letter-spacing: -.035em; margin: 0 0 1.2rem; }
.outcome-item p { color: var(--muted); font-size: .78rem; max-width: 28ch; }
.outcome-item > span { margin-top: auto; color: var(--amber-deep); font-size: .64rem; font-weight: 700; }

/* Services architecture */
.services-architecture { padding: var(--space-section) 0; background: var(--mineral); }
.section-heading-row { display: grid; grid-template-columns: 7fr 3fr; gap: 8%; align-items: end; }
.section-heading-row > p { color: var(--muted); max-width: 40ch; margin: 0 0 .45rem; font-size: .93rem; }
.pillar-grid { margin-top: clamp(5rem, 7vw, 7rem); display: grid; grid-template-columns: minmax(0, 1.8fr) repeat(3, minmax(0, .7fr)); gap: 1rem; }
.pillar-card {
  min-height: 470px;
  border: 1px solid var(--border-strong);
  border-radius: 28px;
  position: relative;
  overflow: hidden;
  background: rgba(251,250,247,.63);
  display: flex;
  flex-direction: column;
  transition: transform 480ms var(--ease-response), box-shadow 480ms var(--ease-response), border-color 480ms var(--ease-response);
}
.pillar-card { min-width: 0; }
.pillar-1 { background: var(--graphite); color: var(--porcelain); }
.pillar-index { position: absolute; left: 1.8rem; top: 1.7rem; z-index: 3; color: var(--amber); font-size: .72rem; font-weight: 700; }
.pillar-atmosphere { position: absolute; inset: 0; overflow: hidden; }
.pillar-atmosphere::before, .pillar-atmosphere::after { content: ""; position: absolute; border-radius: 50%; filter: blur(52px); transition: transform 760ms var(--ease-cinematic); }
.pillar-atmosphere::before { width: 80%; aspect-ratio: 1; top: 8%; left: -28%; background: rgba(243,190,92,.16); }
.pillar-atmosphere::after { width: 72%; aspect-ratio: 1; right: -30%; bottom: -12%; background: rgba(201,185,154,.12); }
.pillar-card:not(.pillar-1) .pillar-atmosphere::before { background: rgba(243,190,92,.12); }
.pillar-card:not(.pillar-1) .pillar-atmosphere::after { background: rgba(211,201,181,.28); }

.pillar-content { position: relative; z-index: 2; padding: 5.2rem 1.8rem 1.8rem; height: 100%; display: flex; flex-direction: column; }
.pillar-content h3 { margin: 0; font-size: clamp(1.55rem, 2vw, 2.5rem); line-height: .95; letter-spacing: -.045em; }
.pillar-content p { margin: 1.2rem 0 0; font-size: .86rem; line-height: 1.55; color: var(--muted); max-width: 30ch; }
.pillar-1 .pillar-content p { color: rgba(251,250,247,.64); }
@media (min-width: 1041px) { .pillar-card:not(.pillar-1) .pillar-content p { display: none; } }
.card-link { margin-top: auto; display: flex; align-items: center; justify-content: space-between; border-top: 1px solid currentColor; padding-top: 1rem; font-size: .7rem; font-weight: 700; text-transform: uppercase; text-decoration: none; opacity: .8; }
.card-link svg { width: 17px; transition: transform 300ms var(--ease-response); }
.risk-row {
  margin-top: 1rem;
  min-height: 190px;
  border-radius: 28px;
  padding: 2.4rem 2.6rem;
  background: var(--charcoal);
  color: var(--porcelain);
  display: grid;
  grid-template-columns: 1.2fr 1fr auto;
  gap: 4rem;
  align-items: center;
  box-shadow: 0 26px 60px rgba(23,23,20,.11);
}
.risk-row .section-label { margin-bottom: 1rem; }
.risk-row h3 { font-size: clamp(2rem, 3.1vw, 4rem); line-height: .92; letter-spacing: -.045em; margin: 0; }
.risk-row > p { color: rgba(251,250,247,.64); max-width: 46ch; margin: 0; }
.risk-link { display: inline-flex; align-items: center; gap: .8rem; color: var(--amber-light); text-decoration: none; font-size: .7rem; text-transform: uppercase; white-space: nowrap; }
.risk-link svg { width: 18px; }

/* Capabilities */
.capabilities-section { padding: var(--space-section) 0; background: var(--porcelain); }
.capabilities-heading { margin-bottom: clamp(5rem, 7vw, 7rem); }
.capability-grid { display: grid; grid-template-columns: 1.45fr .82fr .82fr; grid-template-rows: 250px 250px; gap: 1rem; }
.capability-card { position: relative; border-radius: 32px; overflow: hidden; min-height: 0; background: var(--stone); box-shadow: inset 0 0 0 1px rgba(23,23,20,.08); }
.capability-large { grid-column: 1; grid-row: 1 / span 2; background: var(--graphite); color: var(--porcelain); }
.capability-small { background: linear-gradient(145deg, #eee6d7, #e2ddd3); }
.capability-wide { grid-column: 2 / span 2; background: linear-gradient(145deg, #e8e1d5, #f3eee4); }
.capability-visual { position: absolute; inset: 0; overflow: hidden; }
.capability-visual::before { content: ""; position: absolute; width: 55%; aspect-ratio: 1; border-radius: 50%; left: 22%; top: 13%; background: rgba(243,190,92,.25); filter: blur(58px); transition: transform 820ms var(--ease-cinematic); }
.capability-visual::after { content: ""; position: absolute; inset: 12%; border: 1px solid rgba(168,95,13,.18); border-radius: 20px; background-image: linear-gradient(rgba(23,23,20,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(23,23,20,.055) 1px, transparent 1px); background-size: 40px 40px; transform: rotate(-2deg) scale(1.04); opacity: .62; }
.capability-large .capability-visual::after { border-color: rgba(243,190,92,.17); background-image: linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px); }
.capability-visual span { position: absolute; height: 1px; background: rgba(168,95,13,.3); width: 62%; left: 18%; top: 40%; z-index: 2; }
.capability-visual span:nth-child(2) { top: 53%; width: 44%; left: 32%; }
.capability-visual span:nth-child(3) { top: 66%; width: 56%; left: 22%; }

.capability-copy { position: absolute; z-index: 3; left: 1.6rem; right: 3.6rem; bottom: 1.5rem; }
.capability-copy > span { font-size: .62rem; text-transform: uppercase; color: var(--amber-deep); font-weight: 700; }
.capability-large .capability-copy > span { color: var(--amber-light); }
.capability-copy h3 { margin: .4rem 0 0; font-size: clamp(1.15rem, 1.7vw, 2rem); line-height: 1; letter-spacing: -.035em; }
.capability-arrow { position: absolute; top: 1.2rem; right: 1.2rem; width: 33px; height: 33px; padding: 8px; border: 1px solid currentColor; border-radius: 50%; opacity: .7; transition: transform 360ms var(--ease-response); }

.capability-all { margin-top: 2.6rem; }

/* Process home */
.process-section { padding: var(--space-section) 0; background: var(--mineral); }
.process-shell { display: grid; grid-template-columns: .85fr 1.15fr; gap: 9%; align-items: start; }
.process-sticky { position: sticky; top: 9rem; }
.process-sticky h2 { margin: 0 0 1.8rem; font-size: clamp(3.5rem, 5.2vw, 6.6rem); line-height: .9; letter-spacing: -.05em; }
.process-sticky > p { color: var(--muted); max-width: 42ch; margin-bottom: 2rem; }
.process-steps { border-top: 1px solid var(--border-strong); }
.process-step { min-height: 300px; padding: 3rem 0; border-bottom: 1px solid var(--border-strong); display: grid; grid-template-columns: 180px 1fr; gap: 2rem; align-items: start; }
.process-number { font-family: var(--font-display), sans-serif; font-size: clamp(5rem, 8vw, 9rem); line-height: .74; letter-spacing: -.07em; font-weight: 700; color: var(--graphite); }
.process-step h3 { margin: .3rem 0 1rem; font-size: clamp(2rem, 2.8vw, 3.5rem); line-height: .92; letter-spacing: -.045em; }
.process-step p { color: var(--muted); max-width: 46ch; margin: 0; }

/* Why */
.why-section { padding: var(--space-section) 0; background: var(--porcelain); }
.why-grid { display: grid; grid-template-columns: 1.35fr .78fr 24px; gap: 5%; align-items: start; }
.why-main h2 { margin: 0; font-size: clamp(3.5rem, 5.3vw, 6.6rem); line-height: .9; letter-spacing: -.052em; }
.why-visual { margin-top: 5rem; min-height: 280px; border-radius: 30px; border: 1px solid var(--border-strong); position: relative; overflow: hidden; background: linear-gradient(145deg, #e7ded0, #f5f1e9); display: flex; align-items: flex-end; padding: 1.5rem; }
.why-glow { position: absolute; width: 70%; aspect-ratio: 1; border-radius: 50%; left: 9%; top: -28%; background: rgba(243,190,92,.34); filter: blur(55px); animation: ambient-drift 13s var(--ease-cinematic) infinite alternate; }
.why-visual > span { position: relative; z-index: 2; font-size: .68rem; font-weight: 700; text-transform: uppercase; }
.why-points { padding-top: 5rem; }
.why-point { border-top: 1px solid var(--border-strong); padding: 1.5rem 0 2.3rem; }
.why-point h3 { font-size: 1.25rem; margin: 0 0 .5rem; line-height: 1; letter-spacing: -.03em; }
.why-point p { color: var(--muted); font-size: .8rem; margin: 0; max-width: 36ch; }
.why-rail { writing-mode: vertical-rl; transform: rotate(180deg); font-size: .58rem; letter-spacing: .18em; color: var(--amber-deep); padding-top: 5rem; border-left: 1px solid rgba(168,95,13,.3); min-height: 410px; }

/* Closing */
.closing-section { min-height: 92dvh; padding: clamp(6rem, 9vw, 9rem) 0 4rem; background-color: #171713; color: var(--porcelain); overflow: hidden; }
.closing-section::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255,255,255,.015), transparent 30%, rgba(217,138,22,.05)); }
.closing-inner { min-height: calc(92dvh - 10rem); display: flex; flex-direction: column; justify-content: space-between; }
.closing-inner h2 { margin: 0; font-size: clamp(4rem, 6.6vw, 8.2rem); line-height: .88; letter-spacing: -.055em; }
.closing-bottom { display: flex; justify-content: space-between; align-items: end; gap: 3rem; }
.closing-bottom p { color: rgba(251,250,247,.62); max-width: 44ch; margin: 0; }
.closing-bottom .button { min-width: 190px; }

/* Footer */
.site-footer { background: var(--porcelain); padding: 4.5rem 0 2rem; border-top: 1px solid var(--border); }
.site-footer-inner { width: var(--page); margin: auto; display: grid; grid-template-columns: 1.8fr repeat(3, .65fr); gap: 4rem; padding-bottom: 5rem; border-bottom: 1px solid var(--border-strong); }
.footer-brand p { margin: 2.2rem 0 0; color: var(--muted); max-width: 36ch; font-size: .8rem; }
.footer-col { display: flex; flex-direction: column; align-items: flex-start; gap: .7rem; font-size: .72rem; }
.footer-col > span { margin-bottom: .6rem; color: var(--quiet); text-transform: uppercase; font-size: .58rem; letter-spacing: .08em; }
.footer-col a { text-decoration: none; }

.footer-bottom { width: var(--page); margin: 1.5rem auto 0; display: flex; justify-content: space-between; align-items: center; color: var(--quiet); font-size: .58rem; }
.footer-bottom .brand-mark { width: 24px; height: 24px; }

/* General inner page hero */
.page-hero { min-height: 78dvh; padding-top: 190px; padding-bottom: 6rem; display: flex; align-items: flex-end; background-color: var(--mineral); }
.page-hero-grid { display: grid; grid-template-columns: 1.5fr .58fr; gap: 10%; align-items: end; }
.page-hero h1 { margin: 0; font-size: clamp(4.4rem, 7.2vw, 9rem); line-height: .87; letter-spacing: -.057em; }
.page-hero-copy p { color: var(--muted); max-width: 42ch; margin: 0 0 2rem; font-size: 1.04rem; }

/* Services page */
.service-map { padding: 3rem 0 var(--space-section); background: var(--porcelain); }
.service-detail { padding: 6rem 0; border-top: 1px solid var(--border-strong); }
.service-detail-heading { display: grid; grid-template-columns: 72px 1fr .8fr; gap: 3rem; align-items: start; }
.service-detail-heading > span { color: var(--amber-deep); font-size: .72rem; font-weight: 700; }
.service-detail-heading h2 { margin: 0; font-size: clamp(3rem, 4.6vw, 5.8rem); line-height: .92; letter-spacing: -.05em; }
.service-detail-heading > p { margin: .4rem 0 0; color: var(--muted); max-width: 43ch; }
.service-detail-body { margin: 5rem 0 0 72px; display: grid; grid-template-columns: 1.65fr .65fr; gap: 8%; }
.service-list { border-top: 1px solid var(--border-strong); }
.service-line { display: grid; grid-template-columns: .72fr 1fr; gap: 3rem; padding: 1.7rem 0 2rem; border-bottom: 1px solid var(--border); }
.service-line h3 { font-size: 1.15rem; margin: 0; line-height: 1.05; letter-spacing: -.025em; }
.service-line p { margin: 0; color: var(--muted); font-size: .86rem; }
.service-detail-body aside { padding-top: 1.5rem; }
.service-detail-body aside > span { color: var(--amber-deep); text-transform: uppercase; letter-spacing: .08em; font-size: .62rem; font-weight: 700; }
.service-detail-body aside > p { color: var(--muted); font-size: .88rem; margin: 1rem 0 2rem; }
.cross-pillar-section { padding: var(--space-section) 0; background: var(--stone); }
.cross-pillar-grid { display: grid; grid-template-columns: 1.1fr .75fr .75fr; gap: 1rem; align-items: stretch; }
.cross-pillar-grid > .reveal:first-child { padding-right: 5rem; }
.cross-pillar-grid h2 { font-size: clamp(3.4rem, 5vw, 6.2rem); line-height: .9; letter-spacing: -.05em; margin: 0; }
.cross-pillar-card { min-height: 360px; border-radius: 28px; border: 1px solid var(--border-strong); background: rgba(251,250,247,.7); padding: 2rem; display: flex; flex-direction: column; }
.cross-pillar-card > span { color: var(--amber-deep); font-size: .68rem; }
.cross-pillar-card h3 { margin: auto 0 1.2rem; font-size: 2rem; line-height: .95; letter-spacing: -.04em; }
.cross-pillar-card p { color: var(--muted); font-size: .84rem; margin: 0; }
.risk-detail-section { padding: var(--space-section) 0; background: var(--charcoal); color: var(--porcelain); }
.risk-detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10%; }
.risk-detail-grid h2 { margin: 0; font-size: clamp(3.8rem, 5.7vw, 7rem); line-height: .9; letter-spacing: -.052em; }
.risk-lead { color: rgba(251,250,247,.62); max-width: 46ch; margin-top: 2rem; }
.risk-detail-list { border-top: 1px solid rgba(251,250,247,.2); }
.risk-detail-list > div { display: grid; grid-template-columns: 54px 1fr; padding: 1rem 0; border-bottom: 1px solid rgba(251,250,247,.14); }
.risk-detail-list span { color: var(--amber-light); font-size: .68rem; }
.risk-detail-list p { margin: 0; font-size: .9rem; }
.risk-detail-list .button { margin-top: 2rem; }

/* About */
.about-story { padding: var(--space-section) 0; background: var(--porcelain); }
.about-story-grid { display: grid; grid-template-columns: 1.25fr .75fr; gap: 10%; }
.about-statement h2 { margin: 0; font-size: clamp(3rem, 4.7vw, 5.8rem); line-height: .93; letter-spacing: -.048em; }
.about-copy p { color: var(--muted); font-size: 1rem; margin-bottom: 1.6rem; }
.principles-section { padding: var(--space-section) 0; }
.principles-grid { margin-top: 6rem; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--border-strong); }
.principle { min-height: 330px; padding: 2rem 2rem 2rem 0; border-right: 1px solid var(--border); display: flex; flex-direction: column; }
.principle:last-child { border-right: 0; padding-right: 0; padding-left: 2rem; }
.principle:not(:first-child):not(:last-child) { padding-left: 2rem; }
.principle > span { color: var(--amber-deep); font-size: .68rem; }
.principle h3 { margin: auto 0 1rem; font-size: 1.7rem; line-height: .98; letter-spacing: -.035em; }
.principle p { color: var(--muted); font-size: .82rem; margin: 0; }
.about-bridge { padding: var(--space-section) 0; background: var(--stone); }
.about-bridge-grid { display: grid; grid-template-columns: 1.25fr .6fr; gap: 10%; align-items: end; }
.about-bridge h2 { margin: 0; font-size: clamp(3rem, 4.6vw, 5.6rem); line-height: .92; letter-spacing: -.048em; }
.about-bridge-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 2rem; }

/* How I work page */
.process-page-section { padding: 3rem 0 var(--space-section); background: var(--porcelain); }
.process-page-step { min-height: 360px; display: grid; grid-template-columns: 220px 1fr .56fr; gap: 5%; padding: 4.5rem 0; border-top: 1px solid var(--border-strong); align-items: start; }
.process-page-number { font-family: var(--font-display), sans-serif; font-weight: 700; font-size: clamp(5.5rem, 9vw, 10rem); letter-spacing: -.08em; line-height: .73; }
.process-page-copy h2 { margin: 0 0 1.2rem; font-size: clamp(2.8rem, 4.1vw, 5rem); line-height: .92; letter-spacing: -.05em; }
.process-page-copy p { color: var(--muted); max-width: 50ch; }
.process-page-note { border-top: 1px solid var(--border); padding-top: 1rem; color: var(--amber-deep); font-size: .7rem; text-transform: uppercase; letter-spacing: .05em; }
.questions-section { padding: var(--space-section) 0; }
.questions-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 10%; }
.questions-grid > .reveal h2 { font-size: clamp(3.2rem, 4.8vw, 5.8rem); line-height: .92; letter-spacing: -.05em; }
.question-row { padding: 1.7rem 0 2rem; border-top: 1px solid var(--border-strong); display: grid; grid-template-columns: .82fr 1fr; gap: 2rem; }
.question-row h3 { font-size: 1.15rem; line-height: 1.05; letter-spacing: -.025em; margin: 0; }
.question-row p { color: var(--muted); margin: 0; font-size: .86rem; }
.simple-cta { padding: var(--space-section) 0; background: var(--stone); }
.simple-cta-grid { display: grid; grid-template-columns: 1.2fr .6fr; gap: 10%; align-items: end; }
.simple-cta h2 { font-size: clamp(3.3rem, 5vw, 6rem); line-height: .91; letter-spacing: -.05em; margin: 0; }
.simple-cta-grid > .reveal:last-child p { color: var(--muted); margin-bottom: 2rem; }

/* Contact */
.contact-hero { min-height: 100dvh; padding: 180px 0 6rem; display: flex; align-items: center; background-color: var(--mineral); }
.contact-grid { display: grid; grid-template-columns: .82fr 1.18fr; gap: 7%; align-items: center; }
.contact-intro h1 { margin: 0 0 2rem; font-size: clamp(4rem, 6vw, 7.4rem); line-height: .88; letter-spacing: -.055em; }
.contact-intro > p { color: var(--muted); max-width: 48ch; font-size: .98rem; }
.contact-secondary { margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid var(--border-strong); display: flex; gap: 1.2rem; font-size: .82rem; }
.contact-secondary span { color: var(--quiet); }
.contact-secondary a { font-weight: 700; text-decoration: none; }
.booking-placeholder, .calendly-shell { min-height: 590px; border-radius: 32px; background: var(--porcelain); border: 1px solid var(--border); box-shadow: var(--shadow-soft); overflow: hidden; }
.booking-placeholder { padding: clamp(2.2rem, 4vw, 4.2rem); display: flex; flex-direction: column; justify-content: center; position: relative; }
.booking-placeholder::before { content: ""; position: absolute; width: 60%; aspect-ratio: 1; right: -12%; top: -15%; border-radius: 50%; background: rgba(243,190,92,.26); filter: blur(55px); }
.booking-placeholder > * { position: relative; z-index: 2; }
.booking-kicker { color: var(--amber-deep); text-transform: uppercase; font-size: .68rem; font-weight: 700; letter-spacing: .06em; }
.booking-placeholder h2 { margin: 1.3rem 0; font-size: clamp(2.7rem, 4vw, 4.6rem); line-height: .92; letter-spacing: -.05em; }
.booking-placeholder p { color: var(--muted); max-width: 46ch; }
.booking-placeholder code { background: var(--stone); padding: .15rem .32rem; border-radius: 4px; font-size: .82em; }
.booking-placeholder .button { align-self: flex-start; margin-top: 1rem; }
.calendly-shell iframe { width: 100%; min-height: 700px; border: 0; display: block; }
.calendly-fallback { display: flex; justify-content: center; padding: 1rem 1.25rem 1.2rem; border-top: 1px solid var(--border); background: var(--porcelain); color: var(--muted); font-size: .76rem; text-decoration: none; }
.calendly-fallback:focus-visible { color: var(--graphite); }

/* Legal */
.legal-page { min-height: 80dvh; padding: 190px 0 8rem; }
.legal-copy { max-width: 900px; margin-left: max(56px, calc((100vw - min(1600px, calc(100vw - 112px))) / 2)); margin-right: auto; }
.legal-copy h1 { font-size: clamp(3rem, 5vw, 6rem); line-height: .9; letter-spacing: -.05em; }
.legal-copy p { color: var(--muted); max-width: 60ch; }

@media (hover: hover) and (pointer: fine) {
  .text-link:hover::after { transform: scaleX(1); transform-origin: left; }
  .text-link:hover svg { transform: translateX(4px); }
  .button-primary:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(23,23,20,.17), inset 0 -1px 0 rgba(243,190,92,.9); }
  .button:hover::after { transform: scaleX(1.5); opacity: 1; }
  .button:hover .button-arrow { transform: translateX(4px); }
  .desktop-nav a:hover { color: var(--graphite); }
  .desktop-nav a:hover::after { transform: scaleX(1); transform-origin: left; }
  .pillar-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-soft); border-color: rgba(168,95,13,.28); }
  .pillar-card:hover .pillar-atmosphere::before { transform: translate(14%, 8%) scale(1.07); }
  .pillar-card:hover .pillar-atmosphere::after { transform: translate(-8%, -6%) scale(1.05); }
  .card-link:hover svg { transform: translateX(4px); }
  .capability-card:hover .capability-visual::before { transform: translate3d(8%, 5%, 0) scale(1.1); }
  .capability-card:hover .capability-arrow { transform: translate(2px, -2px); }
  .footer-col a:hover, .calendly-fallback:hover { color: var(--amber-deep); }
}

@media (max-width: 1240px) {
  :root { --page: calc(100vw - 72px); }
  .site-header-inner { grid-template-columns: minmax(190px, 1fr) auto 176px; gap: 2rem; }
  .desktop-cta, .desktop-cta .button { width: 176px; }
  .desktop-nav { gap: 1.55rem; }
  .hero h1 { font-size: clamp(4rem, 7.3vw, 6.9rem); }
  .risk-row { gap: 2.5rem; }
}

@media (max-width: 1040px) {
  :root { --page: calc(100vw - 48px); }
  .site-header { position: absolute; }
  .site-header-inner { height: 94px; grid-template-columns: 1fr auto; }
  .desktop-nav, .desktop-cta { display: none; }
  .menu-toggle { display: inline-flex; width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--border-strong); background: rgba(251,250,247,.66); align-items: center; justify-content: center; flex-direction: column; gap: 5px; cursor: pointer; }
  .menu-toggle span { width: 18px; height: 1px; background: currentColor; transition: transform 320ms var(--ease-response); }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(3px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-3px) rotate(-45deg); }
  .mobile-nav { display: block; position: absolute; top: 82px; left: 24px; right: 24px; background: var(--porcelain); border: 1px solid var(--border); border-radius: 22px; box-shadow: 0 25px 60px rgba(23,23,20,.13); transform: translateY(-12px) scale(.985); opacity: 0; visibility: hidden; transition: opacity 280ms var(--ease-response), transform 280ms var(--ease-response), visibility 280ms; }
  .mobile-nav.is-open { transform: translateY(0) scale(1); opacity: 1; visibility: visible; }
  .mobile-nav-inner { padding: 1.3rem; display: grid; }
  .mobile-nav a:not(.button) { padding: 1rem .4rem; border-bottom: 1px solid var(--border); text-decoration: none; font-family: var(--font-display), sans-serif; text-transform: uppercase; font-weight: 600; }
  .mobile-nav .button { margin-top: 1rem; }
  .hero-content { padding-top: 128px; }
  .hero-copy { width: 88%; }
  .hero::before { width: 52vw; right: -4vw; top: 25vh; opacity: .72; }
  .hero-bottom { width: 58%; }
  .clarity-intro, .section-heading-row, .page-hero-grid { grid-template-columns: 1fr; gap: 2.6rem; }
  .clarity-intro > p, .section-heading-row > p { max-width: 52ch; }
  .outcome-grid { grid-template-columns: repeat(2, 1fr); row-gap: 3rem; }
  .pillar-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pillar-card:not(.pillar-1) .pillar-content p { display: block; }
  .pillar-card { min-height: 400px; }
  .risk-row { grid-template-columns: 1fr; gap: 1.4rem; }
  .capability-grid { grid-template-columns: 1fr 1fr; grid-template-rows: 410px 260px 260px; }
  .capability-large { grid-column: 1 / span 2; grid-row: 1; }
  .capability-wide { grid-column: 1 / span 2; grid-row: 3; }
  .process-shell { grid-template-columns: 1fr; gap: 5rem; }
  .process-sticky { position: static; }
  .why-grid { grid-template-columns: 1.15fr .85fr 20px; gap: 4%; }
  .service-detail-heading { grid-template-columns: 54px 1fr; }
  .service-detail-heading > p { grid-column: 2; }
  .service-detail-body { margin-left: 54px; grid-template-columns: 1fr; gap: 3rem; }
  .cross-pillar-grid { grid-template-columns: 1fr 1fr; }
  .cross-pillar-grid > .reveal:first-child { grid-column: 1 / span 2; padding-right: 0; margin-bottom: 2rem; }
  .risk-detail-grid, .about-story-grid, .about-bridge-grid, .questions-grid, .simple-cta-grid, .contact-grid { grid-template-columns: 1fr; gap: 4rem; }
  .principles-grid { grid-template-columns: 1fr 1fr; }
  .principle { border-bottom: 1px solid var(--border); min-height: 280px; }
  .principle:nth-child(2) { border-right: 0; }
  .process-page-step { grid-template-columns: 160px 1fr; }
  .process-page-note { grid-column: 2; }
  .contact-grid { max-width: 920px; }
}

@media (max-width: 720px) {
  :root { --page: calc(100vw - 36px); --space-section: 6rem; }
  .section-grid { background-size: 100% 100%; }
  .site-header-inner { height: 82px; }
  .brand-lockup { font-size: .9rem; min-width: 44px; min-height: 44px; }
  .text-link, .risk-link { min-height: 44px; align-items: center; }
  .text-link::after { bottom: 4px; }
  .card-link { min-height: 44px; align-items: center; }
  .footer-col a { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; }
  .contact-secondary a { min-height: 44px; display: inline-flex; align-items: center; }
  .brand-mark { width: 30px; height: 30px; }
  .hero { min-height: 100svh; }
  .hero-content { min-height: 100svh; padding-top: 112px; padding-bottom: 34px; }
  .hero-copy { width: 100%; }
  .hero h1 { font-size: clamp(3.45rem, 16vw, 5.5rem); line-height: .88; letter-spacing: -.06em; }
  .hero h1 span:nth-child(3) { margin-top: .12em; }
  .hero::before { width: 80vw; right: -36vw; top: 42vh; opacity: .45; }
  .hero::after { left: 32%; top: 42%; width: 78%; }
  .hero-bottom { width: 100%; gap: 1.35rem; }
  .hero-bottom > p { max-width: 34ch; font-size: .94rem; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 1.5rem; }
  .hero-actions .button { width: 100%; justify-content: space-between; }
  .hero-register { display: none; }
  .clarity-intro h2, .section-heading-row h2 { font-size: clamp(3rem, 13vw, 4.7rem); }
  .outcome-grid { grid-template-columns: 1fr; margin-top: 5rem; }
  .outcome-item { min-height: 150px; }
  .pillar-grid { grid-template-columns: 1fr; }
  .pillar-card { min-height: 360px; }
  .pillar-content h3 { font-size: 2.2rem; }
  .risk-row { padding: 2rem; border-radius: 24px; }
  .risk-row h3 { font-size: 2.7rem; }
  .capability-grid { display: grid; grid-template-columns: 1fr; grid-template-rows: repeat(4, 300px); }
  .capability-large, .capability-small, .capability-wide { grid-column: 1; grid-row: auto; }
  .process-step { grid-template-columns: 1fr; gap: 1.4rem; min-height: 0; }
  .process-number { font-size: 6rem; }
  .why-grid { grid-template-columns: 1fr; }
  .why-main h2 { font-size: clamp(3.1rem, 13vw, 4.9rem); }
  .why-points { padding-top: 2rem; }
  .why-rail { display: none; }
  .closing-section { min-height: 84svh; }
  .closing-inner { min-height: calc(84svh - 8rem); }
  .closing-inner h2 { font-size: clamp(3.55rem, 14vw, 5.5rem); }
  .closing-bottom { align-items: stretch; flex-direction: column; }
  .closing-bottom .button { width: 100%; justify-content: space-between; }
  .site-footer-inner { grid-template-columns: 1fr 1fr; gap: 3rem 2rem; }
  .footer-brand { grid-column: 1 / span 2; }
  .footer-col:last-child { grid-column: 1 / span 2; }
  .page-hero { min-height: 76svh; padding-top: 130px; padding-bottom: 4.5rem; }
  .page-hero h1 { font-size: clamp(3.6rem, 15vw, 5.8rem); }
  .service-detail { padding: 4rem 0; }
  .service-detail-heading { grid-template-columns: minmax(0, 1fr); gap: 1.2rem; }
  .service-detail-heading > p { grid-column: auto; }
  .service-detail-heading h2 { font-size: 3.3rem; }
  .service-detail-body { margin: 3.5rem 0 0; }
  .service-line { grid-template-columns: 1fr; gap: .7rem; }
  .cross-pillar-grid { grid-template-columns: 1fr; }
  .cross-pillar-grid > .reveal:first-child { grid-column: 1; }
  .cross-pillar-card { min-height: 300px; }
  .risk-detail-grid h2 { font-size: 3.7rem; }
  .principles-grid { grid-template-columns: 1fr; }
  .principle, .principle:last-child, .principle:not(:first-child):not(:last-child) { border-right: 0; padding: 2rem 0; min-height: 240px; }
  .process-page-step { grid-template-columns: 1fr; gap: 1rem; }
  .process-page-number { font-size: 7rem; }
  .process-page-note { grid-column: auto; margin-top: 1.2rem; }
  .question-row { grid-template-columns: 1fr; }
  .contact-hero { min-height: auto; padding: 130px 0 5rem; }
  .contact-intro h1 { font-size: 4rem; }
  .booking-placeholder, .calendly-shell { min-height: 520px; border-radius: 24px; }
  .booking-placeholder { padding: 2rem; }
  .site-footer { padding-top: 3.5rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; }
  .reveal { opacity: 1; transform: none; filter: none; }
  .site-header-inner, .hero::before { animation: none !important; }
}


/* ===== Elementor-native compatibility layer ===== */
:root { --font-display: "Chakra Petch"; --font-body: "Manrope"; }
.davisconsult-main { min-height: 40vh; }
.elementor-element.section-label .elementor-heading-title { color: inherit; font-family: var(--font-body); font-size: inherit; line-height: inherit; font-weight: inherit; letter-spacing: inherit; text-transform: inherit; }
.elementor-element.hero-title .elementor-heading-title { font: inherit; }
.elementor-widget-heading .elementor-heading-title { color: inherit; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* Native Elementor buttons styled as DavisConsult controls. */
.elementor-element.dc-button { width: auto; align-self: flex-start; }
.elementor-element.dc-button .elementor-button {
  min-height: 52px; display: inline-flex; align-items: center; justify-content: center; gap: 1.5rem;
  padding: 0 1.25rem; border-radius: 8px; font-family: var(--font-body); font-size: .82rem; font-weight: 650;
  letter-spacing: .02em; text-transform: uppercase; text-decoration: none; position: relative; overflow: hidden;
  transition: transform 320ms var(--ease-response), box-shadow 500ms var(--ease-response), background 320ms var(--ease-response);
}
.elementor-element.dc-button-primary .elementor-button { background: var(--graphite); color: var(--porcelain); box-shadow: inset 0 -1px 0 rgba(243,190,92,.65); }
.elementor-element.dc-button-amber .elementor-button { background: var(--amber); color: var(--graphite); box-shadow: inset 0 -1px 0 rgba(255,244,215,.76); }
.elementor-element.dc-button .elementor-button::after { content:""; position:absolute; left:16%; right:16%; bottom:-12px; height:20px; border-radius:50%; background:radial-gradient(ellipse,rgba(243,190,92,.72) 0%,rgba(217,138,22,.22) 45%,transparent 72%); filter:blur(6px); opacity:.72; z-index:-1; transform:scaleX(.72); transition:transform 520ms var(--ease-response),opacity 520ms var(--ease-response); }
.elementor-element.dc-button-amber .elementor-button::after { background: radial-gradient(ellipse,rgba(255,244,215,.9),transparent 68%); }
.elementor-element.dc-text-link { width:auto; align-self:flex-start; }
.elementor-element.dc-text-link .elementor-button { padding:0; min-height:0; background:transparent; color:inherit; font-family:var(--font-body); font-size:.82rem; line-height:1; font-weight:700; text-transform:uppercase; letter-spacing:.03em; }
.elementor-element.dc-text-link .elementor-button:hover { background:transparent; color:var(--amber-deep); }
@media (hover:hover) and (pointer:fine) { .elementor-element.dc-button-primary .elementor-button:hover { transform:translateY(-2px); box-shadow:0 12px 28px rgba(23,23,20,.17),inset 0 -1px 0 rgba(243,190,92,.9); } }

/* Header + nav menu */
.site-header .brand-lockup { display:flex; flex-direction:row; align-items:center; gap:.72rem; }
.site-header .brand-lockup .brand-mark-image { width:34px; max-width:34px; flex:0 0 34px; }
.site-header .brand-lockup .brand-mark-image img { width:34px; height:34px; object-fit:contain; }
.site-header .brand-wordmark .elementor-heading-title { font-family:var(--font-display); font-size:1rem; font-weight:700; line-height:1; color:var(--graphite); }
.site-header .desktop-nav .elementor-nav-menu { gap:clamp(1.6rem,2.4vw,2.75rem); }
.site-header .desktop-nav .elementor-item { color:var(--muted); font-family:var(--font-body); font-size:.76rem; font-weight:600; text-transform:uppercase; padding:0; }
.site-header .desktop-nav .elementor-item.elementor-item-active, .site-header .desktop-nav .current-menu-item > a { color:var(--graphite); }
.site-header .desktop-cta { justify-self:end; width:190px; }
.site-header .desktop-cta .elementor-button { width:190px; }
.admin-bar .site-header { top:32px; }
@media(max-width:782px){ .admin-bar .site-header { top:46px; } }
@media(max-width:1040px){
  .site-header .site-header-inner { grid-template-columns:1fr auto; }
  .site-header .desktop-cta { display:none; }
  .site-header .desktop-nav.elementor-widget-nav-menu { display:block; justify-self:end; width:auto; }
  .site-header .desktop-nav .elementor-nav-menu--main { display:none; }
  .site-header .desktop-nav .elementor-menu-toggle { display:flex; width:44px; height:44px; border:1px solid var(--border-strong); border-radius:12px; color:var(--graphite); background:rgba(251,250,247,.82); }
  .site-header .desktop-nav .elementor-nav-menu--dropdown { position:absolute; right:20px; left:20px; top:82px; border:1px solid var(--border); border-radius:22px; box-shadow:0 25px 60px rgba(23,23,20,.13); overflow:hidden; background:var(--porcelain); }
  .site-header .desktop-nav .elementor-nav-menu--dropdown a { padding:1rem 1.3rem; color:var(--graphite); font-family:var(--font-display); text-transform:uppercase; font-weight:600; border-bottom:1px solid var(--border); }
}

/* Hero title uses a native Heading widget rather than nested React spans. */
.hero-copy .elementor-element.hero-title .elementor-heading-title { margin:0; font-size:clamp(4.4rem,7.4vw,9.25rem); line-height:.86; letter-spacing:-.058em; max-width:11ch; }
.hero-support { color:var(--muted); }
.outcome-item .outcome-index .elementor-heading-title, .service-index .elementor-heading-title { color:var(--amber-deep); font-family:var(--font-body); font-size:.68rem; }
.capability-eyebrow .elementor-heading-title { color:var(--muted); font-family:var(--font-body); font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.capability-arrow .elementor-heading-title { font-size:1.35rem; }
.capability-dot { position:absolute; width:5px; height:5px; border-radius:50%; background:rgba(23,23,20,.3); }
.capability-dot:nth-child(1){left:16%;top:22%}.capability-dot:nth-child(2){left:58%;top:35%}.capability-dot:nth-child(3){right:18%;bottom:22%}

/* Services page semantic-aside compatibility */
.service-detail-body .service-aside { padding-top:1.5rem; }
.service-detail-body .service-aside > .elementor-widget-heading:first-child .elementor-heading-title { color:var(--amber-deep); text-transform:uppercase; letter-spacing:.08em; font-family:var(--font-body); font-size:.62rem; font-weight:700; }
.service-detail-body .service-aside > .elementor-widget-text-editor { color:var(--muted); font-size:.88rem; }
.risk-detail-list > .risk-item { display:grid; grid-template-columns:54px 1fr; padding:1rem 0; border-bottom:1px solid rgba(251,250,247,.14); }
.risk-detail-list > .risk-item .elementor-widget-heading .elementor-heading-title { color:var(--amber-light); font-family:var(--font-body); font-size:.68rem; }
.risk-detail-list > .risk-item p { margin:0; font-size:.9rem; }

/* Footer */
.site-footer .brand-lockup { display:flex; flex-direction:row; align-items:center; gap:.72rem; }
.site-footer .brand-mark-image { width:34px; max-width:34px; }
.site-footer .brand-mark-image img { width:34px; height:34px; object-fit:contain; }
.site-footer .brand-wordmark .elementor-heading-title { font-family:var(--font-display); font-size:1rem; font-weight:700; }
.site-footer .footer-col { display:flex; flex-direction:column; align-items:flex-start; }
.site-footer .footer-col > .elementor-widget-heading:first-child .elementor-heading-title { color:var(--quiet); font-family:var(--font-body); font-size:.64rem; text-transform:uppercase; letter-spacing:.08em; margin-bottom:1rem; }
.site-footer .footer-link .elementor-heading-title { color:var(--graphite); font-family:var(--font-body); font-size:.78rem; font-weight:600; margin-bottom:.55rem; }
.site-footer .footer-bottom { width:var(--page); margin:auto; display:flex; flex-direction:row; justify-content:space-between; align-items:center; padding-top:1.5rem; }
.site-footer .copyright-shortcode { font-size:.66rem; color:var(--quiet); }
.site-footer .compact-mark { opacity:.72; }

/* Calendly */
.calendly-widget { width:100%; }
.calendly-widget .elementor-shortcode { width:100%; }

/* Fallback theme links if Theme Builder is temporarily unavailable. */
.fallback-cta { min-height:52px; display:inline-flex; align-items:center; padding:0 1.25rem; border-radius:8px; background:var(--graphite); color:var(--porcelain); text-decoration:none; text-transform:uppercase; font-size:.82rem; font-weight:700; }
.fallback-nav ul { list-style:none; display:flex; gap:2rem; margin:0; padding:0; }
.fallback-nav a { text-decoration:none; color:var(--muted); text-transform:uppercase; font-size:.76rem; font-weight:600; }
.dc-theme-fallback .brand-mark-image { width:34px; height:34px; object-fit:contain; }

@media(max-width:760px){
  .hero-copy .elementor-element.hero-title .elementor-heading-title { font-size:clamp(3.5rem,14vw,5.7rem); max-width:none; }
  .site-footer .footer-bottom { width:var(--page); }
}
