:root {
  color-scheme: dark;
  --bg: #050505;
  --surface: #111111;
  --surface-2: #191919;
  --text: #f8f8f8;
  --muted: #aeaeae;
  --line: #393939;
  --gold: #e3c58e;
  --gold-deep: #a68942;
  --field: #111111;
  --focus: #e3c58e;
  scroll-behavior: smooth;
}
.mobile-fixed-cta { display:none; }
@media (max-width:700px) {
  body { padding-bottom:57px; }
  .mobile-fixed-cta { position:fixed;z-index:70;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:18px 23px;background:#e3c58e;color:#050505;text-decoration:none;font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.04em; }
}

.trap-field { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; opacity: 0 !important; }
.experience-gallery { padding-bottom: clamp(3rem, 6vw, 6rem); }
.gallery-heading { margin: 2.5rem 0 1.25rem; font-size: clamp(1.35rem, 2vw, 2rem); }
.gallery-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; }
.gallery-card { margin: 0; border: 1px solid var(--line); background: var(--surface); overflow: hidden; }
.gallery-card img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.gallery-card figcaption { padding: 1rem; }
.gallery-card strong { display: block; font-size: 1.05rem; }
.gallery-card p { margin: .4rem 0 0; color: var(--muted); line-height: 1.5; }

:root[data-theme="light"] {
  color-scheme: light;
  --bg: #f8f8f8;
  --surface: #ffffff;
  --surface-2: #ededed;
  --text: #050505;
  --muted: #4c4c4c;
  --line: #cfcfcf;
  --gold: #a68942;
  --gold-deep: #a68942;
  --field: #ffffff;
  --focus: #7c642c;
}

* { box-sizing: border-box; }
html { scroll-padding-top: 5rem; overflow-x: clip; }
main section[id] { scroll-margin-top: 5rem; }
body { margin: 0; min-width: 320px; overflow-x: clip; background: var(--bg); color: var(--text); font-family: Inter, Arial, Helvetica, sans-serif; font-size: 1rem; line-height: 1.55; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 4px; }
::selection { background: var(--gold); color: #050505; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: absolute; left: 1rem; top: -4rem; z-index: 100; padding: .65rem 1rem; background: var(--gold); color: #050505; }
.skip-link:focus { top: .8rem; }
.wrap { width: min(100% - 3rem, 1360px); margin-inline: auto; }
.rule { border-top: 1px solid var(--line); }
.eyebrow { margin: 0; color: var(--gold); font-size: .78rem; font-weight: 700; line-height: 1.45; letter-spacing: .13em; text-transform: uppercase; }
.section-number { display: inline-block; min-width: 2.3rem; color: var(--gold); font-size: .8rem; font-weight: 700; letter-spacing: .07em; }
.section-head { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 3rem; align-items: start; margin-bottom: 3.7rem; }
.section-head h2 { margin: 0; max-width: 14ch; font-family: "Arial Black", Arial, sans-serif; font-size: clamp(2.4rem, 5.3vw, 5.6rem); line-height: .98; letter-spacing: -.055em; text-transform: uppercase; }
.section-head p { max-width: 33rem; margin: .8rem 0 0; color: var(--muted); font-size: clamp(1rem, 1.45vw, 1.2rem); }
.section { padding-block: clamp(5.5rem, 10vw, 10rem); }

.site-header { position: sticky; top: 0; z-index: 60; height: 78px; border-bottom: 1px solid var(--line); background: color-mix(in srgb, var(--bg) 94%, transparent); backdrop-filter: blur(18px); }
.header-inner { display: flex; align-items: center; justify-content: space-between; height: 100%; gap: 2rem; }
.brand { display: flex; align-items: center; width: 202px; height: 48px; flex: 0 0 auto; overflow: hidden; }
.brand img { width: 202px; height: 202px; max-width: none; object-fit: cover; object-position: center; }
:root[data-theme="light"] .brand { background: #050505; }
.desktop-nav { display: flex; align-items: center; gap: clamp(1rem, 2vw, 2rem); margin-left: auto; }
.desktop-nav a, .mobile-nav a { color: var(--muted); font-size: .85rem; font-weight: 700; letter-spacing: .025em; }
.desktop-nav a:hover, .mobile-nav a:hover { color: var(--text); }
.header-actions { display: flex; align-items: center; gap: .6rem; }
.icon-button, .language-link { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid var(--line); background: transparent; color: var(--text); font-size: .86rem; font-weight: 700; }
.icon-button:hover, .language-link:hover { border-color: var(--gold); }
.icon-button { font-size: 1.25rem; }
.header-cta { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 0 1.1rem; background: var(--gold); color: #050505; font-size: .8rem; font-weight: 800; letter-spacing: .035em; text-transform: uppercase; }
.header-cta:hover, .button-primary:hover { background: #f1d5a1; }
.menu-toggle { display: none; }
.mobile-nav { display: none; }

.hero { min-height: calc(100svh - 78px); display: flex; align-items: center; padding-block: clamp(3rem, 5vw, 5rem) 3rem; overflow: hidden; }
.hero-grid { display: grid; grid-template-columns: minmax(0, 1.34fr) minmax(280px, .66fr); align-items: end; gap: clamp(2rem, 5vw, 7rem); }
.hero h1 { max-width: 10.5ch; margin: 1.45rem 0 1.55rem; font-family: "Arial Black", Arial, sans-serif; font-size: clamp(3.9rem, 8vw, 8.9rem); font-weight: 900; line-height: .9; letter-spacing: -.073em; text-transform: uppercase; }
.hero h1 span { color: var(--gold); }
.hero-copy { max-width: 39rem; margin: 0; color: var(--muted); font-size: clamp(1.03rem, 1.55vw, 1.27rem); line-height: 1.58; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.6rem; }
.button-primary, .button-secondary { display: inline-flex; align-items: center; justify-content: center; min-height: 54px; padding: .82rem 1.4rem; font-size: .85rem; font-weight: 800; letter-spacing: .025em; text-transform: uppercase; }
.button-primary { background: var(--gold); color: #050505; border: 1px solid var(--gold); }
.button-secondary { border: 1px solid var(--line); }
.button-secondary:hover { border-color: var(--text); }
.hero-visual { justify-self: end; width: min(100%, 390px); }
.hero-tile { border: 1px solid var(--line); aspect-ratio: 1; overflow: hidden; background: #050505; }
.hero-tile img { width: 100%; height: 100%; object-fit: cover; }
.hero-visual p { display: flex; justify-content: space-between; gap: 1rem; margin: .8rem 0 0; color: var(--muted); font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.signal-bar { border-block: 1px solid var(--line); }
.signal-list { display: grid; grid-template-columns: repeat(4, 1fr); padding-block: 1.1rem; gap: .5rem 1rem; }
.signal-list span { color: var(--muted); font-size: .77rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.signal-list b { margin-right: .65rem; color: var(--gold); font-weight: 700; }

.problems { background: var(--surface); }
.problem-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.problem { min-width: 0; min-height: 230px; padding: 1.5rem 1.4rem 1.8rem 0; border-right: 1px solid var(--line); }
.problem + .problem { padding-left: 1.4rem; }
.problem:last-child { border-right: 0; }
.problem > .section-number { display: block; color: var(--gold) !important; font-size: clamp(1.25rem, 1.8vw, 1.55rem); font-weight: 900; line-height: 1; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.problem h3 { max-width: 16ch; margin: 2.1rem 0 .7rem; font-family: "Arial Black", Arial, sans-serif; font-size: clamp(1.2rem, 1.9vw, 1.65rem); line-height: 1.12; letter-spacing: -.04em; text-transform: uppercase; }
.problem p { max-width: 25ch; margin: 0; color: var(--text); font-size: clamp(1.08rem, 1.35vw, 1.2rem); font-weight: 500; line-height: 1.48; }

.method-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.phase { display: flex; flex-direction: column; min-height: 530px; padding: clamp(1.5rem, 3vw, 3rem); border: 1px solid var(--line); }
.phase:first-child { background: var(--surface); }
.phase:last-child { background: var(--text); color: var(--bg); }
.phase:last-child .phase-index, .phase:last-child .phase-list { color: color-mix(in srgb, var(--bg) 70%, transparent); }
.phase-index { display: flex; align-items: center; justify-content: space-between; color: var(--muted); font-size: .76rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.phase h3 { max-width: 10ch; margin: 4rem 0 1.2rem; font-family: "Arial Black", Arial, sans-serif; font-size: clamp(2.7rem, 4.5vw, 5.3rem); line-height: .94; letter-spacing: -.06em; text-transform: uppercase; }
.phase p { max-width: 32rem; margin: 0; font-size: 1.03rem; }
.phase-list { display: flex; flex-wrap: wrap; gap: .45rem 1rem; margin: auto 0 0; padding-top: 3rem; color: var(--muted); font-size: .84rem; font-weight: 700; }
.phase-list span::after { content: " /"; margin-left: 1rem; }
.phase-list span:last-child::after { content: ""; }

.system { background: var(--surface); }
.system-list { border-top: 1px solid var(--line); }
.system-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(180px, .75fr); align-items: start; gap: 1rem; padding-block: 1.3rem 1.7rem; border-bottom: 1px solid var(--line); }
.system-row h3 { margin: 0; font-family: "Arial Black", Arial, sans-serif; font-size: clamp(1.35rem, 2.6vw, 2.7rem); line-height: 1; letter-spacing: -.045em; text-transform: uppercase; }
.system-row p { margin: 0; color: var(--muted); font-size: .98rem; }

.sectors-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.sector { padding: 1.7rem; min-height: 290px; border: 1px solid var(--line); }
.sector h3 { margin: 1.7rem 0 .8rem; font-family: "Arial Black", Arial, sans-serif; font-size: clamp(1.5rem, 2.3vw, 2.5rem); line-height: 1; letter-spacing: -.045em; text-transform: uppercase; }
.sector p { margin: 0; max-width: 28ch; color: var(--muted); }
.cases { background: var(--surface); }
.case-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.case { min-height: 300px; display: flex; flex-direction: column; padding: 1.7rem; border: 1px solid var(--line); }
.case span { color: var(--gold); font-size: .73rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.case h3 { margin: auto 0 .7rem; font-family: "Arial Black", Arial, sans-serif; font-size: clamp(1.55rem, 2.3vw, 2.45rem); line-height: 1.05; letter-spacing: -.045em; text-transform: uppercase; }
.case p { margin: 0; color: var(--muted); }
.case-note { max-width: 38rem; margin: 1.4rem 0 0; color: var(--muted); font-size: .84rem; }
.about-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 8vw, 10rem); }
.about-grid h2 { max-width: 12ch; margin: 0; font-family: "Arial Black", Arial, sans-serif; font-size: clamp(2.7rem, 5vw, 5.4rem); line-height: .98; letter-spacing: -.055em; text-transform: uppercase; }
.about-grid .lead { margin: 0 0 1.5rem; font-size: clamp(1.15rem, 1.8vw, 1.55rem); line-height: 1.45; }
.about-grid p:not(.lead) { max-width: 38rem; color: var(--muted); }
.about-principles { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 2.5rem; }
.about-principles span {
  padding: .65rem .85rem;
  border: 1px solid var(--line);
  color: #f8f8f8 !important;
  font-size: clamp(.9rem, .98vw, 1rem);
  font-weight: 800;
  line-height: 1.35;
  letter-spacing: .015em;
  text-transform: uppercase;
}
:root[data-theme="light"] .about-principles span { color: #050505 !important; }

.contact { padding-block: clamp(5.5rem, 10vw, 9rem); background: var(--surface); }
.contact-grid { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); gap: clamp(2rem, 7vw, 8rem); }
.contact h2 { max-width: 10ch; margin: 1.2rem 0 1.5rem; font-family: "Arial Black", Arial, sans-serif; font-size: clamp(2.8rem, 5.4vw, 5.8rem); line-height: .98; letter-spacing: -.058em; text-transform: uppercase; }
.contact-intro { max-width: 29rem; color: var(--muted); font-size: 1.07rem; }
.contact-direct { margin-top: 3rem; padding-top: 1.1rem; border-top: 1px solid var(--line); }
.contact-direct p { margin: 0 0 .75rem; color: var(--muted); font-size: .8rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.contact-direct a { display: block; width: fit-content; margin-bottom: .55rem; border-bottom: 1px solid var(--gold); font-size: 1rem; overflow-wrap: anywhere; }
.diagnostic-form { display: grid; grid-template-columns: 1fr 1fr; gap: 1.15rem; }
.field { display: flex; flex-direction: column; gap: .43rem; min-width: 0; }
.field.full { grid-column: 1 / -1; }
.field label { font-size: .8rem; font-weight: 800; letter-spacing: .035em; }
.field input, .field select, .field textarea { width: 100%; min-height: 50px; padding: .75rem .85rem; border: 1px solid var(--line); border-radius: 0; background: var(--field); color: var(--text); outline: 0; }
.field textarea { min-height: 122px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--gold); outline: 1px solid var(--gold); }
.field input::placeholder, .field textarea::placeholder { color: var(--muted); opacity: .9; }
.form-note { grid-column: 1 / -1; margin: .2rem 0 0; color: var(--muted); font-size: .83rem; }
.form-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; }
.form-actions button { min-width: 200px; }
.form-status { margin: 0; color: var(--gold); font-size: .84rem; }

.site-footer { padding-block: 2.5rem 1.5rem; border-top: 1px solid var(--line); }
.footer-top { display: flex; justify-content: space-between; gap: 2rem; align-items: start; }
.footer-top strong { display: block; font-family: "Arial Black", Arial, sans-serif; font-size: clamp(2rem, 4vw, 4.7rem); line-height: 1; letter-spacing: -.055em; }
.footer-top p { margin: .5rem 0 0; color: var(--muted); font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; }
.footer-top nav { display: flex; flex-wrap: wrap; gap: .7rem 1.5rem; font-size: .85rem; }
.footer-bottom { display: flex; justify-content: space-between; gap: 1rem; margin-top: 5rem; padding-top: 1rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .76rem; }

.resources-home-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .8rem; }
.resource-home-card { display: flex; min-width: 0; min-height: 230px; flex-direction: column; padding: 1.25rem; border: 1px solid var(--line); }
.resource-home-card > span, .blog-home-grid article > span { color: var(--gold); font-size: .74rem; font-weight: 800; letter-spacing: .1em; }
.resource-home-card h3 { margin: auto 0 .65rem; font-family: "Arial Black", Arial, sans-serif; font-size: clamp(1.05rem, 1.5vw, 1.45rem); line-height: 1.1; letter-spacing: -.035em; text-transform: uppercase; }
.resource-home-card p { margin: 0; color: var(--muted); font-size: .91rem; line-height: 1.5; }
.blog-home-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.blog-home-grid article { min-width: 0; padding: 1.4rem 0 1.6rem; border-top: 1px solid var(--line); }
.blog-home-grid h3 { max-width: 16ch; margin: 2.4rem 0 .7rem; font-family: "Arial Black", Arial, sans-serif; font-size: clamp(1.35rem, 2.1vw, 2.1rem); line-height: 1.06; letter-spacing: -.045em; text-transform: uppercase; }
.blog-home-grid p { max-width: 38ch; margin: 0; color: var(--muted); }
.faq-home-list { max-width: 1050px; margin-inline: auto; border-top: 1px solid var(--line); }
.faq-home-list details { border-bottom: 1px solid var(--line); }
.faq-home-list summary { position: relative; padding: 1.2rem 3rem 1.2rem 0; font-size: clamp(1rem, 1.55vw, 1.2rem); font-weight: 750; line-height: 1.35; list-style: none; cursor: pointer; }
.faq-home-list summary::-webkit-details-marker { display: none; }
.faq-home-list summary::after { position: absolute; right: .25rem; color: var(--gold); content: "+"; font-size: 1.5rem; line-height: 1; }
.faq-home-list details[open] summary::after { content: "−"; }
.faq-home-list details p { max-width: 68ch; margin: 0; padding: 0 2rem 1.25rem 0; color: var(--muted); }

:root[data-theme="light"] .eyebrow,
:root[data-theme="light"] .section-number,
:root[data-theme="light"] .case span,
:root[data-theme="light"] .form-status { color: var(--text); }

@media (max-width: 1080px) {
  .resources-home-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .desktop-nav { display: none; }
  .menu-toggle { display: grid; }
  .mobile-nav { position: absolute; top: 77px; left: 0; right: 0; padding: 1rem 1.5rem 1.5rem; border-bottom: 1px solid var(--line); background: var(--bg); }
  .mobile-nav.is-open { display: grid; gap: 0; }
  .mobile-nav a { display: block; padding: .8rem 0; border-bottom: 1px solid var(--line); font-size: 1rem; }
  .hero-grid { grid-template-columns: minmax(0, 1.2fr) minmax(250px, .8fr); gap: 2rem; }
  .hero h1 { font-size: clamp(3.6rem, 7vw, 6rem); }
}

@media (max-width: 760px) {
  .wrap { width: min(100% - 2rem, 1360px); }
  .site-header { height: 68px; }
  .brand { width: 170px; height: 42px; }
  .brand img { width: 170px; height: 170px; }
  .header-cta { display: none; }
  .mobile-nav { top: 67px; }
  .hero { min-height: auto; padding-block: 4.2rem 3rem; }
  .hero-grid { grid-template-columns: 1fr; }
  .hero h1 { max-width: 11ch; font-size: clamp(3.3rem, 12vw, 6rem); }
  .hero-visual { display: none; }
  .signal-list { grid-template-columns: repeat(2, 1fr); }
  .section-head { grid-template-columns: 1fr; gap: 1.3rem; margin-bottom: 2.5rem; }
  .resources-home-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .blog-home-grid { grid-template-columns: 1fr; gap: .25rem; }
  .problem-grid { grid-template-columns: 1fr 1fr; }
  .problem:nth-child(2) { border-right: 0; }
  .problem:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .problem:nth-child(3) { padding-left: 0; }
  .method-grid, .about-grid, .contact-grid { grid-template-columns: 1fr; }
  .phase { min-height: 420px; }
  .phase h3 { margin-top: 3rem; }
  .system-row { grid-template-columns: minmax(0, 1fr); }
  .system-row p { grid-column: 1; }
  .sectors-grid, .case-grid { grid-template-columns: 1fr; }
  .sector, .case { min-height: 220px; }
  .sector h3 { margin-top: 1.7rem; }
  .footer-top { flex-direction: column; }
}

@media (max-width: 480px) {
  .hero h1 { font-size: clamp(3.05rem, 12.5vw, 4.4rem); }
  .hero-actions { display: grid; }
  .button-primary, .button-secondary { width: 100%; }
  .signal-list { grid-template-columns: 1fr 1fr; }
  .signal-list span { font-size: .69rem; }
  .problem-grid { grid-template-columns: 1fr; }
  .problem, .problem + .problem, .problem:nth-child(3) { min-height: 190px; padding: 1.2rem 0 1.5rem; border-right: 0; border-bottom: 1px solid var(--line); }
  .problem:last-child { border-bottom: 0; }
  .problem > .section-number { font-size: 1.3rem; }
  .problem h3 { margin-top: 1.55rem; }
  .resource-home-card { min-height: 205px; padding: 1rem; }
  .resource-home-card h3 { margin-top: auto; }
  .diagnostic-form { grid-template-columns: 1fr; }
  .field.full, .form-note, .form-actions { grid-column: auto; }
  .footer-bottom { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) { :root { scroll-behavior: auto; } }

/* ELEMENT brand system and responsive layout safeguards */
:root {
  --ink: #050505;
  --paper: #f8f8f8;
  --bg: var(--ink);
  --surface: var(--paper);
  --surface-2: var(--paper);
  --text: var(--paper);
  --muted: rgba(248, 248, 248, .74);
  --line: rgba(248, 248, 248, .22);
  --gold: #a68942;
  --gold-light: #e3c58e;
  --gold-deep: #a68942;
  --field: var(--ink);
  --focus: var(--gold-light);
  font-family: Inter, Arial, Helvetica, sans-serif;
}

:root[data-theme="light"] {
  color-scheme: light;
  --bg: var(--paper);
  --surface: var(--ink);
  --surface-2: var(--ink);
  --text: var(--ink);
  --muted: rgba(5, 5, 5, .72);
  --line: rgba(5, 5, 5, .22);
  --gold: var(--gold-deep);
  --gold-deep: #a68942;
  --gold-light: #e3c58e;
  --field: var(--paper);
  --focus: var(--gold-deep);
}

html, body { max-width: 100%; }
h1, h2, h3 { overflow-wrap: anywhere; }
.hero-grid > *, .section-head > *, .problem-grid > *, .method-grid > *,
.system-row > *, .sectors-grid > *, .case > *, .about-grid > *, .contact-grid > * { min-width: 0; }
.header-cta, .button-primary { background: var(--gold-light); border-color: var(--gold-light); color: var(--ink); }
.header-cta:hover, .button-primary:hover { background: var(--gold-light); border-color: var(--gold-light); }
.hero h1 span { color: var(--gold-light); }
.hero-grid { grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); align-items: center; gap: clamp(2rem, 5vw, 5rem); }
.hero h1 { max-width: 10.5ch; font-family: "Neue Haas Grotesk Display Pro", "Helvetica Now", "Arial Black", Helvetica, Arial, sans-serif; font-size: clamp(3.25rem, 7.2vw, 8.2rem); letter-spacing: -.065em; overflow-wrap: anywhere; }
.hero-visual { width: min(100%, 610px); margin: 0; }
.hero-tile { aspect-ratio: 1.45; border: 0; border-bottom: 1px solid var(--gold); background: var(--ink); }
.hero-photo { width: 100%; height: 100%; object-fit: cover; object-position: center; filter: grayscale(1) contrast(1.04); }
.section-light { color: var(--ink); background: var(--paper); --text: var(--ink); --muted: rgba(5, 5, 5, .76); --line: rgba(5, 5, 5, .2); --gold: #050505; --gold-deep: #a68942; --field: var(--paper); --focus: #a68942; }
:root[data-theme="light"] .section-light { color: var(--paper); background: var(--ink); --text: var(--paper); --muted: rgba(248, 248, 248, .74); --line: rgba(248, 248, 248, .22); --gold: var(--gold-light); --gold-deep: #a68942; --field: var(--ink); --focus: var(--gold-light); }
.section-light .section-number, .section-light .eyebrow { color: var(--gold); }
.section-light .button-primary { color: var(--ink); background: var(--gold-light); border-color: var(--gold-light); }
.section-light .problem-grid, .section-light .system-list { border-color: var(--line); }
.contact { color: var(--text); background: var(--bg); }
.contact-grid { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(2rem, 4.5vw, 4.5rem); align-items: start; }
.contact-grid > * { min-width: 0; }
.contact h2 { max-width: 12ch; font-family: "Neue Haas Grotesk Display Pro", "Helvetica Now", "Arial Black", Helvetica, Arial, sans-serif; font-size: clamp(2.7rem, 5.2vw, 5.5rem); line-height: .98; overflow-wrap: anywhere; }
.diagnostic-form, .diagnostic-form > *, .field { min-width: 0; }
.field input, .field select, .field textarea { max-width: 100%; min-width: 0; border-radius: 0; }
.case-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; border-top: 1px solid var(--line); }
.case { min-height: 0; display: grid; grid-template-columns: minmax(0, .58fr) minmax(0, .78fr) minmax(0, 1.3fr); align-items: center; gap: clamp(1rem, 3vw, 3rem); padding: 1.65rem 0; border: 0; border-bottom: 1px solid var(--line); transition: padding-left .18s ease, border-color .18s ease; }
.case span { grid-column: 1; grid-row: 1; color: var(--gold-light); }
.case h3 { grid-column: 2; margin: 0; font-family: "Neue Haas Grotesk Display Pro", "Helvetica Now", "Arial Black", Helvetica, Arial, sans-serif; font-size: clamp(1.45rem, 2.25vw, 2.2rem); }
.case p { grid-column: 3; color: var(--muted); }
.case:hover { padding-left: .6rem; border-color: var(--gold); }
.cases { background: var(--bg); color: var(--text); }
.cases .section-head h2, .cases .section-head p { color: var(--text); }
.cases .section-head p, .case p, .case-note { color: var(--muted); }
.footer-brand { max-width: 340px; min-width: 0; }
.footer-logo { width: 100%; height: 68px; object-fit: cover; object-position: center; background: var(--ink); }
.footer-brand p { margin-top: .5rem; }
.site-footer { background: var(--bg); color: var(--text); }
.footer-top nav a:hover { color: var(--gold-light); }
.footer-bottom { border-color: var(--line); }
.section-head h2, .about-grid h2, .phase h3 { font-family: "Neue Haas Grotesk Display Pro", "Helvetica Now", "Arial Black", Helvetica, Arial, sans-serif; }
.phase:first-child { color: var(--ink); background: var(--paper); --muted: rgba(5, 5, 5, .72); --line: rgba(5, 5, 5, .22); --gold: #a68942; }
.phase:first-child .phase-index, .phase:first-child .phase-list { color: rgba(5, 5, 5, .72); }
.phase:last-child { color: var(--ink); background: var(--paper); }
.phase:last-child .phase-index, .phase:last-child .phase-list { color: rgba(5, 5, 5, .72); }
.sector { border: 0; border-top: 1px solid var(--line); padding: 1.5rem 0; transition: border-color .18s ease; }
.sector:hover { border-color: var(--gold); }
.sector h3 { font-family: "Neue Haas Grotesk Display Pro", "Helvetica Now", "Arial Black", Helvetica, Arial, sans-serif; font-size: clamp(1.25rem, 2vw, 1.75rem); line-height: 1.08; max-width: 100%; overflow-wrap: anywhere; }
.mobile-fixed-cta { background: var(--gold-light); color: var(--ink); }
.site-header, .mobile-nav { border-color: var(--line); }
.brand img { object-position: center 50%; }

.experience-gallery { padding-top: 1rem; }
.experience-list { border-top: 1px solid var(--line); }
.experience-item { position: relative; display: grid; grid-template-columns: minmax(9rem, .55fr) minmax(12rem, .75fr) minmax(15rem, 1.3fr); align-items: center; gap: clamp(1rem, 3vw, 3rem); min-width: 0; padding: 1.2rem 0; border-bottom: 1px solid var(--line); transition: padding-left .2s ease, border-color .2s ease, transform .2s ease; }
.experience-item:hover, .experience-item:focus-within { padding-left: .55rem; border-color: var(--gold); transform: translateY(-2px); }
.experience-image { position: relative; overflow: hidden; aspect-ratio: 4 / 3; background: var(--surface-2); }
.experience-image::after { position: absolute; inset: 0; content: ""; background: linear-gradient(110deg, transparent 28%, rgb(255 255 255 / 25%) 48%, transparent 68%); transform: translateX(-130%); transition: transform .65s ease; pointer-events: none; }
.experience-item:hover .experience-image::after, .experience-item:focus-within .experience-image::after { transform: translateX(130%); }
.experience-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.experience-item:hover .experience-image img, .experience-item:focus-within .experience-image img { transform: scale(1.045); }
.experience-image-placeholder { display: grid; width: 100%; height: 100%; place-items: center; color: var(--muted); font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-align: center; text-transform: uppercase; background: linear-gradient(145deg, var(--surface), var(--surface-2)); }
.experience-client { min-width: 0; }
.experience-category { display: block; margin-bottom: .45rem; color: var(--gold); font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.experience-client h3 { margin: 0; font-family: "Neue Haas Grotesk Display Pro", "Helvetica Now", "Arial Black", Helvetica, Arial, sans-serif; font-size: clamp(1.25rem, 2vw, 2rem); line-height: 1.08; letter-spacing: -.035em; text-transform: uppercase; overflow-wrap: anywhere; }
.experience-description { margin: 0; color: var(--muted); font-size: .95rem; line-height: 1.6; }

@media (max-width: 760px) {
  .experience-item { grid-template-columns: minmax(6.5rem, 31%) minmax(0, 1fr); gap: .85rem 1rem; padding: 1rem 0; }
  .experience-image { grid-column: 1; grid-row: 1 / span 2; align-self: stretch; min-height: 6.5rem; }
  .experience-client { grid-column: 2; grid-row: 1; }
  .experience-description { grid-column: 2; grid-row: 2; font-size: .85rem; }
}

@media (max-width: 1120px) {
  .contact-grid { grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
  .contact h2 { max-width: 14ch; }
  .contact-intro { max-width: 45rem; }
  .hero-grid { grid-template-columns: minmax(0, 1fr); align-items: start; }
  .hero-visual { justify-self: stretch; width: 100%; max-width: none; }
  .hero-tile { aspect-ratio: 1.8; }
  .hero { min-height: auto; }
}

@media (max-width: 760px) {
  .wrap { width: min(100% - 2rem, 1360px); }
  .hero { padding-block: 3rem 2.5rem; }
  .hero-grid { gap: 2rem; }
  .hero h1 { max-width: 11ch; font-size: clamp(3rem, 11.8vw, 5rem); line-height: .94; }
  .hero-visual { display: block; }
  .hero-tile { aspect-ratio: 1.35; }
  .section-head { grid-template-columns: minmax(0, 1fr); gap: 1.2rem; margin-bottom: 2.3rem; }
  .section-head h2 { max-width: 12ch; font-size: clamp(2.2rem, 9vw, 4rem); }
  .problem-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .method-grid, .about-grid { grid-template-columns: minmax(0, 1fr); }
  .phase { min-height: 370px; }
  .phase h3 { margin-top: 2.5rem; }
  .system-row { grid-template-columns: minmax(0, 1fr); }
  .system-row h3 { min-width: 0; }
  .system-row p { grid-column: 1; }
  .sectors-grid { grid-template-columns: minmax(0, 1fr); gap: 1.2rem; }
  .sector { min-height: 0; }
  .sector h3 { margin: 1.7rem 0 .7rem; }
  .case { grid-template-columns: minmax(0, 1fr); gap: .55rem; padding: 1.3rem 0; }
  .case span, .case h3, .case p { grid-column: 1; grid-row: auto; }
  .case p { margin: .35rem 0 0; }
  .contact h2 { max-width: 12ch; font-size: clamp(2.6rem, 11vw, 4.6rem); }
  .footer-top { flex-direction: column; }
  .footer-logo { width: min(100%, 320px); height: 64px; }
}

@media (max-width: 480px) {
  .hero h1 { font-size: clamp(2.85rem, 12.2vw, 4.1rem); }
  .hero-actions { display: grid; grid-template-columns: minmax(0, 1fr); }
  .hero-actions a { width: 100%; }
  .signal-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .problem-grid { grid-template-columns: minmax(0, 1fr); }
  .problem, .problem + .problem, .problem:nth-child(3) { min-height: 0; padding: 1.2rem 0 1.4rem; border-right: 0; border-bottom: 1px solid var(--line); }
  .problem > .section-number { font-size: 1.3rem; }
  .problem h3 { margin: 1.3rem 0 .55rem; }
  .diagnostic-form { grid-template-columns: minmax(0, 1fr); }
  .field.full, .form-note, .form-actions { grid-column: 1; }
  .form-actions button { width: 100%; }
  .footer-bottom { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* ELEMENT global day and night themes */
:root {
  --bg: #050505;
  --surface: #050505;
  --surface-2: #050505;
  --text: #f8f8f8;
  --muted: rgba(248, 248, 248, .74);
  --line: rgba(248, 248, 248, .22);
  --gold: #c39d3d;
  --gold-deep: #a68942;
  --gold-light: #c39d3d;
  --gold-fill: #c39d3d;
  --field: #050505;
  --focus: #c39d3d;
  color-scheme: dark;
}
:root[data-theme="light"] {
  --bg: #f8f8f8;
  --surface: #f8f8f8;
  --surface-2: #f8f8f8;
  --text: #050505;
  --muted: rgba(5, 5, 5, .72);
  --line: rgba(5, 5, 5, .22);
  --gold: #8b6a20;
  --gold-deep: #8b6a20;
  --gold-light: #8b6a20;
  --gold-fill: #c09a3b;
  --field: #f8f8f8;
  --focus: #8b6a20;
  color-scheme: light;
}
body { background: var(--bg); color: var(--text); }
html, body { max-width: 100%; }
h1, h2, h3 { min-width: 0; overflow-wrap: normal; word-break: normal; hyphens: none; }
.site-header, .mobile-nav, .signal-bar, .section, .section-light, .problems, .system,
.cases, .about, .contact, .site-footer, .phase, .sector, .case {
  background: var(--bg) !important;
  color: var(--text);
}
.site-header { border-color: var(--line); }
.header-inner { color: var(--text); }
.mobile-nav, .signal-bar, .site-footer, .contact, .section-light { color: var(--text); }
.section-light { --muted: rgba(248, 248, 248, .74); --line: rgba(248, 248, 248, .22); --gold: #c39d3d; }
:root[data-theme="light"] .section-light { --muted: rgba(5, 5, 5, .72); --line: rgba(5, 5, 5, .22); --gold: #8b6a20; }
.phase:first-child, .phase:last-child { background: var(--bg) !important; color: var(--text) !important; --muted: rgba(248, 248, 248, .74); --line: rgba(248, 248, 248, .22); }
:root[data-theme="light"] .phase:first-child, :root[data-theme="light"] .phase:last-child { --muted: rgba(5, 5, 5, .72); --line: rgba(5, 5, 5, .22); }
.phase:first-child .phase-index, .phase:first-child .phase-list,
.phase:last-child .phase-index, .phase:last-child .phase-list { color: var(--muted); }
.eyebrow, .section-number, .section-light .section-number, .section-light .eyebrow,
.signal-list b, .case span { color: var(--muted) !important; }
.hero h1 span { color: var(--text); }
.header-cta, .button-primary, .mobile-fixed-cta, .form-actions .button-primary {
  background: var(--gold-fill); border-color: var(--gold-fill); color: #050505;
}
.header-cta:hover, .button-primary:hover { background: var(--gold-fill); border-color: var(--gold-fill); color: #050505; filter: brightness(1.08); }
.button-secondary { border-color: var(--line); }
.button-secondary:hover { border-color: var(--gold); }
.contact-direct a { border-color: var(--line); }
.contact-direct a:hover { border-color: var(--gold); }
.case:hover, .sector:hover { border-color: var(--gold); }
.hero { position: relative; isolation: isolate; min-height: max(620px, calc(100svh - 78px)); padding-block: clamp(3rem, 5vw, 5rem); background: var(--bg); }
.hero-background { position: absolute; z-index: 0; inset: 0; overflow: hidden; margin: 0; pointer-events: none; }
.hero-photo { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 54%; opacity: .36; filter: grayscale(1) contrast(1.16); mix-blend-mode: screen; }
.hero-background::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--bg) 0%, color-mix(in srgb, var(--bg) 88%, transparent) 34%, color-mix(in srgb, var(--bg) 52%, transparent) 100%); }
.hero-grid { position: relative; z-index: 1; display: flex; align-items: center; min-height: inherit; gap: 0; }
.hero-grid > div:first-child { position: relative; z-index: 1; width: min(100%, 1120px); padding-block: clamp(3rem, 7vh, 6rem); }
.hero h1 { max-width: 100%; font-size: clamp(1.8rem, 6vw, 6.8rem); line-height: .92; letter-spacing: -.065em; overflow-wrap: normal; word-break: normal; hyphens: none; }
.hero h1 .headline-line { display: block; }
.hero .hero-copy { max-width: 42rem; }
.hero-visual, .hero-tile { display: none; }
.contact-grid { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: start; }
.contact h2 { max-width: 100%; font-size: clamp(1.35rem, 3vw, 2.7rem); line-height: 1.02; letter-spacing: -.045em; overflow-wrap: normal; word-break: normal; hyphens: none; }
.contact h2 span { display: block; }
.mobile-fixed-cta.is-hidden { display: none; }
.brand { background: transparent !important; }
.brand img, .footer-logo { background: transparent !important; }
.footer-logo { display: block; }
.diagnostic-form, .field input, .field select, .field textarea { background-color: var(--bg); color: var(--text); }
.diagnostic-form { border-color: var(--line); }

@media (max-width: 1120px) {
  .contact-grid { grid-template-columns: minmax(0, 1fr); gap: 2.25rem; }
  .contact h2 { font-size: clamp(1.75rem, 5vw, 3.3rem); }
}
@media (max-width: 760px) {
  .hero { min-height: max(590px, calc(100svh - 78px)); padding-block: 2rem; }
  .hero h1 { max-width: 100%; font-size: clamp(1.35rem, 7vw, 4.5rem); line-height: .94; }
  .contact h2 { font-size: clamp(1.35rem, 6.5vw, 2.7rem); }
}
@media (max-width: 480px) {
  .hero { min-height: max(560px, calc(100svh - 78px)); }
  .hero h1 { font-size: clamp(1.35rem, 7vw, 2rem); }
}
:root[data-theme="light"] .hero-photo { opacity: .45; filter: grayscale(1) contrast(1.16) brightness(.48); mix-blend-mode: multiply; }
:root[data-theme="light"] .hero-background::after { background: rgba(248, 248, 248, .06); }
.brand { position: relative; }
.brand .theme-logo { position: absolute; top: 50%; left: 0; display: block; transform: translateY(-50%); }
.footer-brand { display: grid; width: 320px; max-width: 100%; height: auto; gap: 1rem; }
.footer-logo-link { position: relative; display: block; width: 100%; height: 68px; overflow: hidden; }
/* Align the visible mark: the 800px assets have 64px/72px left insets. */
.footer-logo-link .theme-logo { position: absolute; inset: 0 auto 0 -8%; display: block; width: 100%; height: 100%; object-fit: cover; }
.footer-logo-link .theme-logo-light { left: -9%; }
.footer-logo-link:focus-visible { outline: 2px solid var(--focus); outline-offset: 4px; }
.footer-brand p { margin: 0; line-height: 1.6; text-align: left; }
.site-footer .footer-top { display: grid; grid-template-columns: minmax(0, 320px) minmax(0, 1fr); gap: clamp(2rem, 5vw, 5rem); }
.site-footer .footer-top nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem 1.5rem; min-width: 0; }
.site-footer .footer-top nav a { display: inline-flex; align-items: center; width: fit-content; max-width: 100%; min-height: 44px; line-height: 1.5; }
.site-footer .footer-bottom { margin-top: 2.5rem; align-items: center; flex-wrap: wrap; }
.theme-logo-light { display: none !important; }
:root[data-theme="light"] .theme-logo-dark { display: none !important; }
:root[data-theme="light"] .theme-logo-light { display: block !important; }
@media (max-width: 760px) {
  .site-footer .footer-top { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
  .site-footer .footer-top nav { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem 1rem; }
  .site-footer .footer-bottom { align-items: start; margin-top: 2rem; }
  .footer-logo-link { height: 64px; }
}

/* Keep the sticky header opaque so page text cannot show through the logo. */
.site-header { background: var(--bg); backdrop-filter: none; }

@media (max-width: 760px) {
  .header-inner { gap: .5rem; }
  .brand { width: 148px; }
  .brand .theme-logo { width: 148px; height: 148px; }
  .header-actions { gap: .35rem; }
  .icon-button, .language-link { width: 36px; height: 36px; }
}

/* Problem section: visual context and restrained motion */
.problem-story { padding-block:clamp(4.5rem,8.5vw,8rem); overflow:clip; color:var(--text); background:var(--bg); }
.problem-story .wrap { position:relative; }
.problem-story-topline { display:flex; align-items:center; justify-content:space-between; gap:1rem 2rem; padding-bottom:1rem; margin-bottom:clamp(2rem,4.5vw,4rem); border-bottom:1px solid var(--line); }
.problem-story-topline .eyebrow { margin:0; }
.problem-story-label { margin:0; color:var(--muted); font-size:.7rem; font-weight:800; letter-spacing:.12em; text-align:right; text-transform:uppercase; }
.problem-story-feature { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.98fr); align-items:center; gap:clamp(2rem,5vw,5rem); }
.problem-story-copy { min-width:0; }
.problem-story-copy h2 { display:grid; max-width:12ch; margin:0 0 1.7rem; font-family:"Neue Haas Grotesk Display Pro","Helvetica Now","Arial Black",Helvetica,Arial,sans-serif; font-size:clamp(3.2rem,6vw,6.1rem); font-weight:950; line-height:.86; letter-spacing:-.085em; text-transform:uppercase; }
.problem-story-copy h2 span { display:block; }
.problem-story-copy h2 .problem-title-accent { color:var(--gold); }
.problem-story-intro { max-width:37rem; margin:0; color:var(--muted); font-size:clamp(1.05rem,1.5vw,1.25rem); line-height:1.55; }
.problem-story-note { display:flex; align-items:center; gap:.75rem; margin:1.5rem 0 0; font-size:.86rem; font-weight:800; }
.problem-story-note span { color:var(--gold); font-size:1.5rem; line-height:1; }
.problem-graphic { min-width:0; margin:0; border:1px solid var(--line); background:var(--surface); }
.problem-graphic-topline { display:flex; min-height:48px; align-items:center; justify-content:space-between; gap:.75rem; padding:.7rem 1rem; border-bottom:1px solid var(--line); font-size:.64rem; font-weight:800; letter-spacing:.105em; }
.problem-graphic-status { display:inline-flex; align-items:center; gap:.55rem; color:var(--muted); white-space:nowrap; }
.problem-graphic-status i { width:7px; height:7px; border-radius:50%; background:var(--gold); box-shadow:0 0 0 4px color-mix(in srgb,var(--gold) 16%,transparent); animation:problem-pulse 2.8s ease-in-out infinite; }
.problem-graphic svg { display:block; width:100%; height:auto; }
.problem-svg-surface { fill:var(--surface); }
.problem-grid-line { stroke:var(--line); }
.problem-svg-kicker { fill:var(--muted); font:800 10px Arial,sans-serif; letter-spacing:1.4px; }
.problem-svg-node { fill:var(--bg); stroke:var(--line); stroke-width:1.2; }
.problem-svg-contact { fill:var(--surface-2); stroke:var(--text); stroke-width:1.2; }
.problem-svg-missing { fill:var(--bg); stroke:var(--gold); stroke-width:1.4; stroke-dasharray:5 4; }
.problem-graphic,.method-map { --diagram-glow:color-mix(in srgb,var(--gold) 12%,transparent); }
.problem-map-node { transition:transform .24s ease; }
.problem-map-node > rect { transition:stroke .24s ease,filter .24s ease; }
.problem-map-node:hover { transform:translateY(-4px); }
.problem-map-node:hover > rect { stroke:var(--gold); filter:drop-shadow(0 10px 15px var(--diagram-glow)); }
.problem-svg-label { fill:var(--text); font:800 11px Arial,sans-serif; letter-spacing:.8px; }
.problem-svg-detail { fill:var(--muted); font:9px Arial,sans-serif; letter-spacing:.35px; }
.problem-svg-gold { fill:var(--gold); }
.problem-svg-question { fill:var(--gold); font:900 30px Arial,sans-serif; }
.problem-svg-divider { stroke:var(--line); stroke-width:1; }
.problem-flow-line,.problem-flow-gap { fill:none; stroke:var(--gold); stroke-width:1.4; stroke-dasharray:4 6; }
.problem-flow-line { animation:problem-dash 18s linear infinite; }
.problem-flow-gap { opacity:.6; }
.problem-flow-dot { fill:var(--muted); }
.problem-flow-pulse { fill:var(--gold); animation:problem-pulse 2.8s ease-in-out infinite; }
.problem-frictions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:clamp(2.5rem,5vw,4.5rem); border-top:1px solid var(--line); }
.problem-friction { position:relative; min-width:0; min-height:245px; padding:1.35rem clamp(1rem,2vw,1.6rem) 1.8rem 0; border-right:1px solid var(--line); border-bottom:1px solid var(--line); transition:transform .22s ease,border-color .22s ease; }
.problem-friction + .problem-friction { padding-left:clamp(1rem,2vw,1.6rem); }
.problem-friction:last-child { border-right:0; }
.problem-friction::after { position:absolute; right:0; bottom:-1px; left:0; height:2px; content:""; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .22s ease; }
.problem-friction:hover { transform:translateY(-4px); }
.problem-friction:hover::after { transform:scaleX(1); }
.problem-friction-top { display:flex; align-items:center; justify-content:space-between; }
.problem-friction-top .section-number { color:var(--gold)!important; font-size:clamp(1.25rem,1.8vw,1.55rem); font-weight:900; line-height:1; letter-spacing:-.03em; font-variant-numeric:tabular-nums; }
.problem-friction-top svg { width:38px; height:38px; color:var(--muted); }
.problem-friction h3 { max-width:15ch; margin:2.4rem 0 .7rem; font-family:"Neue Haas Grotesk Display Pro","Helvetica Now","Arial Black",Helvetica,Arial,sans-serif; font-size:clamp(1.3rem,2vw,1.9rem); font-weight:900; line-height:1; letter-spacing:-.045em; text-transform:uppercase; }
.problem-friction p { max-width:34ch; margin:0; color:var(--text); font-size:clamp(1.08rem,1.35vw,1.2rem); font-weight:500; line-height:1.48; }
@keyframes problem-dash { to { stroke-dashoffset:-80; } }
@keyframes problem-pulse { 50% { opacity:.42; transform:scale(.82); } }
@media(max-width:900px) {
  .problem-story-feature { grid-template-columns:minmax(0,1fr); align-items:start; }
  .problem-story-copy h2 { max-width:none; font-size:clamp(3.2rem,9vw,6rem); }
  .problem-story-copy h2 span { width:fit-content; }
  .problem-graphic { width:min(100%,690px); }
  .problem-friction { min-height:225px; }
}
@media(max-width:600px) {
  .problem-story-topline { align-items:flex-start; flex-direction:column; }
  .problem-story-label { text-align:left; }
  .problem-story-copy h2 { font-size:clamp(2.3rem,10vw,3.8rem); }
  .problem-story-intro { font-size:1rem; }
  .problem-graphic-topline { min-height:43px; padding-inline:.7rem; font-size:.55rem; }
  .problem-frictions { grid-template-columns:minmax(0,1fr); }
  .problem-friction,.problem-friction + .problem-friction { min-height:0; padding:1.2rem 0 1.45rem; border-right:0; }
  .problem-friction-top .section-number { font-size:1.3rem; }
  .problem-friction h3 { max-width:18ch; margin:1.3rem 0 .55rem; }
}
@media(prefers-reduced-motion:reduce) {
  .problem-graphic-status i,.problem-flow-line,.problem-flow-pulse { animation:none; }
  .problem-map-node,.problem-map-node > rect { transition:none; }
  .problem-map-node:hover { transform:none; }
  .problem-friction { transition:none; }
}


/* ELEMENT method redesign */
.method-intro { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); align-items:center; gap:clamp(2rem,5vw,5.4rem); margin-bottom:clamp(3rem,6vw,5.2rem); }
.method-intro-copy { min-width:0; max-width:620px; }
.method-intro-copy > .eyebrow { margin-bottom:1.25rem; }
.method-intro-copy h2 { display:grid; margin:0; max-width:7.2ch; font-family:"Neue Haas Grotesk Display Pro","Helvetica Now","Arial Black",Helvetica,Arial,sans-serif; font-size:clamp(3.8rem,6.4vw,6.2rem); font-weight:900; line-height:.86; letter-spacing:-.075em; text-transform:uppercase; }
.method-intro-copy h2 span { display:block; }
.method-intro-copy h2 span:last-child { color:var(--gold); }
.method-lead { max-width:37rem; margin:1.45rem 0 0; color:var(--muted); font-size:clamp(1.05rem,1.35vw,1.22rem); line-height:1.62; }
.method-map { position:relative; min-width:0; margin:0; overflow:hidden; border:1px solid var(--line); background-color:var(--surface); background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px); background-size:34px 34px; }
.method-map-head { position:relative; display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:48px; padding:.8rem 1.1rem; border-bottom:1px solid var(--line); color:var(--muted); font-size:.68rem; font-weight:800; letter-spacing:.12em; }
.method-map-head span:last-child { color:var(--gold); text-align:right; }
.method-map-track { position:relative; display:grid; grid-template-columns:minmax(0,1fr) 2rem minmax(0,1fr) 2rem minmax(0,1fr); align-items:center; gap:.4rem; padding:clamp(1.1rem,2vw,1.8rem); }
.method-map-node { min-width:0; min-height:156px; padding:1rem .9rem; border:1px solid var(--line); background:var(--bg); transition:transform .24s ease,border-color .24s ease,box-shadow .24s ease; }
.method-map-node:hover { transform:translateY(-4px); border-color:var(--gold); box-shadow:0 10px 30px var(--diagram-glow); }
.method-map-index { display:block; color:var(--gold); font-size:.64rem; font-weight:800; letter-spacing:.1em; }
.method-map-node h3 { margin:1.25rem 0 .35rem; font-family:"Neue Haas Grotesk Display Pro","Helvetica Now","Arial Black",Helvetica,Arial,sans-serif; font-size:clamp(1rem,1.5vw,1.28rem); line-height:1.05; letter-spacing:-.035em; }
.method-map-node p { margin:0; color:var(--muted); font-size:.76rem; line-height:1.5; }
.method-map-connector { position:relative; height:1px; overflow:hidden; background:var(--line); }
.method-map-connector::before { position:absolute; inset:0 auto 0 -55%; width:55%; background:var(--gold); content:""; animation:method-route 2.8s linear infinite; }
.method-map-connector::after { position:absolute; top:50%; right:0; width:6px; height:6px; border-top:1px solid var(--gold); border-right:1px solid var(--gold); content:""; transform:translateY(-50%) rotate(45deg); }
.method-map-loop { position:relative; display:flex; align-items:center; gap:.75rem; padding:.75rem 1.1rem .95rem; border-top:1px dashed var(--line); }
.method-map-loop > span { flex:0 0 auto; color:var(--gold); font-size:1.55rem; line-height:1; }
.method-map-loop p { margin:0; color:var(--muted); font-size:.82rem; }
.method-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.method-grid .phase { min-height:420px; padding:clamp(1.45rem,2.2vw,2.3rem); border-top:2px solid var(--line); transition:transform .24s ease,border-color .24s ease; }
.method-grid .phase:hover { transform:translateY(-4px); border-top-color:var(--gold); }
.method-grid .phase h3 { max-width:12ch; margin:clamp(2.5rem,4vw,3.7rem) 0 1rem; font-size:clamp(1.9rem,2.8vw,3.05rem); line-height:.98; }
.method-grid .phase p { max-width:35rem; font-size:.98rem; line-height:1.62; }
.method-grid .phase-list { gap:.45rem .75rem; padding-top:2.2rem; font-size:.78rem; }
@keyframes method-route { to { transform:translateX(280%); } }
@media (max-width:1100px) {
  .method-intro { grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:2rem; }
  .method-intro-copy h2 { font-size:clamp(3.5rem,6vw,5.6rem); }
  .method-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .method-grid .phase--improvement { grid-column:1/-1; min-height:330px; }
}
@media (max-width:900px) {
  .method-intro { grid-template-columns:minmax(0,1fr); gap:2rem; }
  .method-intro-copy { max-width:720px; }
  .method-map { width:100%; }
  .method-intro-copy h2 { max-width:8ch; font-size:clamp(4rem,8vw,5.8rem); }
}
@media (max-width:760px) {
  .method-intro { gap:1.8rem; margin-bottom:2.8rem; }
  .method-intro-copy h2 { font-size:clamp(3.5rem,13vw,5rem); }
  .method-map-head { align-items:flex-start; padding:.75rem .8rem; font-size:.58rem; }
  .method-map-track { grid-template-columns:minmax(0,1fr); gap:0; padding:.85rem; }
  .method-map-node { min-height:0; padding:1rem; }
  .method-map-node h3 { margin:.65rem 0 .25rem; font-size:1.2rem; }
  .method-map-node p { font-size:.84rem; }
  .method-map-connector { justify-self:center; width:1px; height:24px; overflow:visible; }
  .method-map-connector::before { inset:-55% 0 auto; width:1px; height:55%; animation:method-route-vertical 2.8s linear infinite; }
  .method-map-connector::after { top:auto; right:auto; bottom:0; left:50%; transform:translateX(-50%) rotate(135deg); }
  .method-map-loop { padding:.75rem .85rem .9rem; }
  .method-map-loop p { font-size:.78rem; }
  .method-grid { grid-template-columns:minmax(0,1fr); }
  .method-grid .phase,.method-grid .phase--improvement { grid-column:auto; min-height:0; padding:1.35rem; }
  .method-grid .phase h3 { max-width:14ch; margin:2rem 0 .85rem; font-size:clamp(2rem,8vw,2.8rem); }
  .method-grid .phase-list { margin-top:1.8rem; padding-top:1.2rem; }
}
@keyframes method-route-vertical { to { transform:translateY(280%); } }
@media (prefers-reduced-motion:reduce) {
  .method-map-connector::before { animation:none; }
  .method-map-node,.method-grid .phase { transition:none; }
  .method-map-node:hover,.method-grid .phase:hover { transform:none; }
}

/* ELEMENT system section */
:root .section-light { --text:#f8f8f8; }
:root[data-theme="light"] .section-light { --text:#050505; }
.method-section.section { padding-bottom:clamp(2.75rem,3.5vw,3.5rem); }
.system.section { padding-block:clamp(2.75rem,3.5vw,3.5rem); }
.system .section-head {
  grid-template-columns:minmax(0,.58fr) minmax(0,1.42fr);
  gap:clamp(1.5rem,4vw,3.75rem);
  margin-bottom:clamp(2.3rem,4vw,3.4rem);
}
.system .section-head > .eyebrow { margin:0; padding-top:.55rem; }
.system .section-head h2 {
  max-width:15ch;
  font-size:clamp(3rem,5.7vw,6rem);
  line-height:.94;
  letter-spacing:-.065em;
  text-wrap:balance;
}
.system .system-intro > p {
  max-width:40rem;
  margin:1rem 0 0;
  color:var(--muted);
  font-size:clamp(1.05rem,1.3vw,1.25rem);
  line-height:1.55;
}
.system .system-list {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1px;
  overflow:hidden;
  border:1px solid var(--line);
  background:var(--line);
}
.system .system-row {
  position:relative;
  display:flex;
  flex-direction:column;
  gap:0;
  min-width:0;
  min-height:265px;
  margin:0;
  padding:clamp(1.3rem,2vw,1.9rem);
  border:0;
  background:var(--bg);
  transition:background .18s ease,transform .18s ease,box-shadow .18s ease;
}
.system .system-row .section-number {
  width:100%;
  min-width:0;
  padding-bottom:1rem;
  border-bottom:1px solid var(--line);
  color:var(--gold)!important;
  font-size:.86rem;
  font-weight:800;
}
.system .system-row h3 {
  margin:1rem 0 .7rem;
  font-size:clamp(1.55rem,2.1vw,2.35rem);
  line-height:.98;
}
.system .system-row p {
  max-width:30ch;
  margin:0;
  color:var(--muted);
  font-size:1rem;
  line-height:1.52;
}
.system .system-row:hover {
  z-index:1;
  transform:translateY(-3px);
  background:var(--surface);
  box-shadow:inset 0 2px var(--gold);
}
@media(max-width:1000px) {
  .system .system-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .system .system-row { min-height:230px; }
  .system .section-head { grid-template-columns:minmax(0,.56fr) minmax(0,1.44fr); }
}
@media(max-width:700px) {
  .method-section.section { padding-bottom:3rem; }
  .system.section { padding-block:3rem 4rem; }
  .system .section-head {
    grid-template-columns:minmax(0,1fr);
    gap:1rem;
    margin-bottom:2rem;
  }
  .system .section-head > .eyebrow { padding-top:0; }
  .system .section-head h2 {
    max-width:12ch;
    font-size:clamp(2.65rem,10.5vw,4.1rem);
  }
  .system .system-list { grid-template-columns:minmax(0,1fr); }
  .system .system-row { min-height:0; padding:1.2rem; }
  .system .system-row h3 {
    margin:1.25rem 0 .55rem;
    font-size:clamp(1.6rem,7vw,2rem);
  }
  .system .system-row p { max-width:45ch; font-size:1rem; }
}
@media(prefers-reduced-motion:reduce) {
  .system .system-row { transition:none; }
  .system .system-row:hover { transform:none; }
}


/* Sectors image paired with its headline */
.sectors-section .sectors-head {
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  grid-template-areas: "label ." "image copy";
  gap: 1rem clamp(2rem, 5vw, 4.5rem);
  align-items: stretch;
}
.sectors-aside {
  display: contents;
}
.sectors-aside .eyebrow { grid-area: label; margin: 0; }
.sectors-visual {
  grid-area: image;
  position: relative;
  flex: 1 1 auto;
  min-height: 17rem;
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--surface-2);
}
.sectors-visual img {
  width: 100%;
  height: 100%;
  min-height: inherit;
  object-fit: cover;
  object-position: 74% 48%;
  filter: grayscale(1) brightness(.72) contrast(1.06);
  transition: transform .7s cubic-bezier(.2,.7,.2,1);
}
.sectors-visual:hover img { transform: scale(1.045); }
:root[data-theme="light"] .sectors-visual img { filter: grayscale(1) brightness(.88) contrast(1.02); }
.sectors-copy { grid-area: copy; min-width: 0; }
.sectors-copy h2 {
  max-width: 13ch;
  font-size: clamp(2.5rem, 4.3vw, 4.65rem);
  overflow-wrap: normal;
  text-box-trim: trim-start;
  text-box-edge: cap alphabetic;
}
.sectors-copy > p { max-width: 33rem; }
/* Section label above a shared image/headline row. */
.cases .experience-head, .resources-home .resources-head, .blog-home .blog-head {
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  grid-template-areas: "label ." "image copy";
  gap: 1rem clamp(2rem, 5vw, 4.5rem);
  align-items: stretch;
}
.experience-head > .eyebrow, .resources-head > .eyebrow, .blog-head > .eyebrow { grid-area: label; margin: 0; }
.experience-intro-visual, .resources-intro-visual, .blog-intro-visual {
  grid-area: image;
  position: relative;
  min-width: 0;
  min-height: 17rem;
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--surface-2);
}
.experience-intro-visual img, .resources-intro-visual img, .blog-intro-visual img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.experience-intro-copy, .resources-intro-copy, .blog-intro-copy { grid-area: copy; min-width: 0; }
.experience-intro-copy h2, .resources-intro-copy h2, .blog-intro-copy h2 {
  color: var(--text);
  text-box-trim: trim-start;
  text-box-edge: cap alphabetic;
}
@media (max-width: 760px) {
  .cases .experience-head, .resources-home .resources-head, .blog-home .blog-head {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "label" "image" "copy";
    gap: 1.15rem;
    margin-bottom: 2.4rem;
  }
  .experience-intro-visual, .resources-intro-visual, .blog-intro-visual { min-height: 0; aspect-ratio: 1.5; }
  .sectors-section .sectors-head {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "label" "image" "copy";
    gap: 1.15rem;
    margin-bottom: 2.4rem;
  }
  .sectors-aside { display: contents; }
  .sectors-aside .eyebrow { grid-row: 1; margin: 0; }
  .sectors-visual { grid-row: 2; min-height: 0; aspect-ratio: 1.5; flex: none; }
  .sectors-copy { grid-row: 3; }
  .sectors-copy h2 { max-width: 12ch; font-size: clamp(2.05rem, 8vw, 3.6rem); }
}
@media (max-width: 480px) {
  .sectors-visual { aspect-ratio: 1.28; }
}
@media (prefers-reduced-motion: reduce) {
  .sectors-visual img { transition: none; }
}

/* Paired section content shares one row; the text determines its height. */
.section .section-pair, .contact .section-pair {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  grid-template-areas: "label ." "visual copy";
  align-items: stretch;
  gap: 1rem clamp(1.5rem, 2.5vw, 2.5rem);
  margin-bottom: clamp(2.5rem, 4vw, 3.5rem);
}
.section .section-pair.pair-reversed {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-template-areas: "label ." "copy visual";
}
.section .section-pair.pair-no-label { grid-template-areas: "copy visual"; margin-bottom: 0; }
.section-pair > .eyebrow, .section-pair .pair-label, .section-pair .sectors-aside > .eyebrow {
  grid-area: label; margin: 0; padding: 0;
}
.section-pair .pair-copy { grid-area: copy; min-width: 0; max-width: none; color: var(--text); }
.section-pair.pair-reversed .pair-copy, .section-pair.pair-reversed > .pair-label { text-align: right; }
.section-pair .pair-copy h2 {
  display: block;
  max-width: none;
  margin: 0 0 1.25rem;
  color: var(--text);
  font-family: "Neue Haas Grotesk Display Pro", "Helvetica Now", "Arial Black", Helvetica, Arial, sans-serif;
  font-size: clamp(2.5rem, 4.7vw, 5rem);
  line-height: .99;
  letter-spacing: -.055em;
  text-transform: uppercase;
  text-wrap: balance;
  text-box-trim: trim-start;
  text-box-edge: cap alphabetic;
}
.section-pair .pair-copy h2 > span { display: block; width: auto; }
.section-pair.pair-reversed .pair-copy h2 { font-size: clamp(3.2rem, 5.4vw, 5.5rem); }
.section-pair .pair-copy > p {
  max-width: none; margin: 0 0 1rem; color: var(--muted);
  font-size: clamp(1rem, 1.15vw, 1.1rem); line-height: 1.55;
}
.section-pair .pair-copy > :last-child { margin-bottom: 0; }
.section-pair .pair-copy > p:last-child { text-box-trim: trim-end; text-box-edge: text; }
.section-pair .problem-story-note { justify-content: flex-end; }
.section-pair .pair-visual {
  grid-area: visual; position: relative; min-width: 0; min-height: 0;
  width: 100%; margin: 0; align-self: stretch; contain: size;
  overflow: hidden; border: 1px solid var(--line); background-color: var(--surface-2);
}
.section-pair .pair-photo { aspect-ratio: auto; }
.section-pair .pair-photo img {
  position: absolute; inset: 0; width: 100%; height: 100%; min-height: 0;
  object-fit: cover; object-position: center;
}
.section-pair .problem-graphic { display: flex; flex-direction: column; }
.section-pair .problem-graphic-topline { flex: 0 0 auto; }
.section-pair .problem-graphic svg { flex: 1 1 0; width: 100%; height: 100%; min-height: 0; }
.section-pair .method-map { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
.section-pair .method-map-track { align-content: center; padding: 1.1rem; }
.section-pair .contact-direct { margin-top: 1.5rem; }
.section-pair .contact-direct > a:last-child { margin-bottom: 0; }
.contact-layout > .diagnostic-form { max-width: 1000px; margin-inline: auto; }
@media (max-width: 900px) {
  .section .section-pair, .contact .section-pair {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "label" "visual" "copy";
    gap: 1.2rem;
  }
  .section .section-pair.pair-reversed { grid-template-columns: minmax(0, 1fr); grid-template-areas: "label" "copy" "visual"; }
  .section .section-pair.pair-no-label { grid-template-areas: "copy" "visual"; }
  .section-pair .sectors-aside > .eyebrow, .section-pair .sectors-visual, .section-pair .sectors-copy { grid-row: auto; }
  .section-pair.pair-reversed .pair-copy, .section-pair.pair-reversed > .pair-label { text-align: left; }
  .section-pair .pair-copy h2, .section-pair.pair-reversed .pair-copy h2 { font-size: clamp(2rem, 6vw, 3.8rem); }
  .section-pair .pair-copy > p { font-size: 1rem; }
  .section-pair .problem-story-note { justify-content: flex-start; }
  .section-pair .pair-visual { contain: none; }
  .section-pair .pair-photo { aspect-ratio: 1.5; }
  .section-pair .problem-graphic svg { flex: none; height: auto; }
  .section-pair .method-map { display: block; }
}

/* Header controls stay legible against the light theme. */
:root[data-theme="light"] .desktop-nav a,
:root[data-theme="light"] .mobile-nav a,
:root[data-theme="light"] .icon-button,
:root[data-theme="light"] .language-link,
:root[data-theme="light"] .header-cta {
  color: #050505 !important;
}
:root[data-theme="light"] .icon-button,
:root[data-theme="light"] .language-link,
:root[data-theme="light"] .icon-button:hover,
:root[data-theme="light"] .language-link:hover {
  border-color: #050505 !important;
}

/* Special-project CTA: one restrained gold edge and a clear primary action. */
.tier-home-more {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(1.25rem, 4vw, 3rem);
  margin-top: clamp(2rem, 4vw, 3.25rem);
  padding: clamp(1.35rem, 3vw, 2.3rem);
  border: 1px solid var(--line);
  border-left: 5px solid var(--gold);
  background: var(--bg);
  color: var(--text);
}
.tier-home-more-copy { min-width: 0; }
.tier-home-more-label {
  margin: 0 0 .7rem;
  color: var(--gold);
  font-size: .75rem;
  font-weight: 800;
  line-height: 1.4;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.tier-home-more h3 {
  max-width: 38ch;
  margin: 0;
  font-size: clamp(1.5rem, 2.6vw, 2.3rem);
  font-weight: 850;
  line-height: 1.08;
  letter-spacing: -.04em;
  text-wrap: balance;
}
.tier-home-more-button {
  justify-self: end;
  gap: .85rem;
  max-width: 22rem;
  min-height: 60px;
  padding: 1rem 1.35rem;
  line-height: 1.25;
  text-align: left;
}
.tier-home-more-button span[aria-hidden="true"] {
  flex: none;
  font-size: 1.3rem;
  line-height: 1;
}
@media (max-width: 760px) {
  .tier-home-more {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.15rem;
  }
  .tier-home-more h3 { max-width: 32ch; }
  .tier-home-more-button {
    justify-self: stretch;
    width: 100%;
    max-width: none;
    justify-content: space-between;
  }
}

.tier-home-more .tier-home-more-button { color: #050505; }

/* Shared hover state for the public site's content blocks. Text stays unchanged. */
:root {
  --card-lift: -4px;
  --card-motion: 220ms cubic-bezier(.2,.7,.2,1);
  --card-inset: clamp(1rem, 1.8vw, 1.5rem);
  --card-accent: var(--gold);
  --card-accent-shadow: inset 0 -2px var(--gold), 0 8px 24px rgb(192 154 59 / .13);
}
/* One interior spacing scale for every public content card, in every state. */
:root :is(.problem-friction, .method-grid .phase, .system .system-row,
  .sector, .resource-home-card, .blog-home-grid > article, .tier-home-card,
  .method-map-node, .inner-site .tier-card, .inner-site .tier-scope-card,
  .inner-site .inner-process > article, .inner-site .inner-prose > article) {
  padding: var(--card-inset);
}
:root .about-principles > span { padding: .75rem 1rem; }
:root :is(.faq-home-list > details > summary, .inner-site .inner-faq summary) {
  padding: 1rem var(--card-inset);
}
:root[data-theme] .faq-home-list > details > summary { padding-inline-end: calc(var(--card-inset) + 2rem); }
:root .faq-home-list > details > summary::after { right: var(--card-inset); }
:root :is(.faq-home-list > details p, .inner-site .inner-faq details > p) {
  padding-inline: var(--card-inset);
}
:root .inner-site .inner-service-row {
  padding-inline: var(--card-inset);
  transition: border-color var(--card-motion), box-shadow var(--card-motion);
}
:root :is(.experience-item, .case) { padding-inline: var(--card-inset); }
:root .diagnostic-form .field :is(input, select, textarea) { padding: .75rem 1.25rem; }
:root :is(.problem-friction, .method-grid .phase, .system .system-row,
  .sector, .about-principles > span, .resource-home-card,
  .blog-home-grid > article, .faq-home-list > details) {
  position: relative;
  transform: none;
  color: var(--text);
  border-color: var(--line);
  background-color: var(--bg);
  box-shadow: none;
  transition: transform var(--card-motion), border-color var(--card-motion),
    box-shadow var(--card-motion);
}
/* Let the lifted system cards extend above their grid without clipping. */
:root .system .system-list { overflow: visible; }
:root .problem-friction::after { content: none; }

/* Move a FAQ row as one piece, without stacking the button's separate lift. */
:root .faq-home-list > details > summary {
  translate: none !important;
  box-shadow: none !important;
}
:root .diagnostic-form > .field {
  position: relative;
  transition: transform var(--card-motion);
}
:root .diagnostic-form > .field :is(input, select, textarea) {
  transition: border-color var(--card-motion), box-shadow var(--card-motion);
}

@media (hover: hover) and (pointer: fine) {
  :root :is(.problem-friction, .method-grid .phase, .system .system-row,
    .sector, .about-principles > span, .resource-home-card,
    .blog-home-grid > article, .faq-home-list > details):hover {
    z-index: 1;
    transform: translateY(var(--card-lift));
    border-color: var(--card-accent);
    background-color: var(--bg);
    box-shadow: var(--card-accent-shadow);
  }
  :root .diagnostic-form > .field:hover {
    z-index: 1;
    transform: translateY(var(--card-lift));
  }
  :root .diagnostic-form > .field:hover :is(input, select, textarea) {
    border-color: var(--card-accent);
    box-shadow: var(--card-accent-shadow);
  }
}
/* The same visible state for keyboard users; decorative cards stay unfocusable. */
:root .faq-home-list > details:focus-within {
  z-index: 1;
  transform: translateY(var(--card-lift));
  border-color: var(--card-accent);
  box-shadow: var(--card-accent-shadow);
}
:root .diagnostic-form > .field:focus-within {
  z-index: 1;
  transform: translateY(var(--card-lift));
}
:root .diagnostic-form > .field:focus-within :is(input, select, textarea) {
  border-color: var(--card-accent);
  box-shadow: var(--card-accent-shadow);
}
/* Keep the small raised state from the reference, with no animated movement. */
@media (prefers-reduced-motion: reduce) {
  :root :is(.problem-friction, .method-grid .phase, .system .system-row,
    .sector, .about-principles > span, .resource-home-card,
    .blog-home-grid > article, .faq-home-list > details,
    .diagnostic-form > .field),
  :root .diagnostic-form > .field :is(input, select, textarea) {
    transition: none;
  }
}


/* Small CRM shortcut in the public header */
.crm-entry { display:inline-flex; align-items:center; justify-content:center; min-height:30px; padding:0 .55rem; border:1px solid var(--line); color:var(--muted); font-size:.66rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; white-space:nowrap; }
.crm-entry:hover, .crm-entry:focus-visible { border-color:var(--gold); color:var(--gold); }
@media (max-width:760px) {
  .crm-entry { min-height:30px; padding-inline:.4rem; font-size:.62rem; }
  .header-actions { gap:.35rem; }
}

/* Compact wordmark crop and consistent spacing across the public home page. */
.brand { width:202px; height:37px; aspect-ratio:685 / 125; }
.brand .theme-logo { top:-94px; left:-18px; width:236px; height:236px; transform:none; }
main > section.section { padding-block:clamp(3.5rem,6vw,5.5rem) !important; }
main > section.contact { padding-block:clamp(3.5rem,6vw,5.5rem) !important; }
.section .section-pair, .contact .section-pair { margin-bottom:clamp(1.5rem,3vw,2.5rem); }
.problem-story-topline { margin-bottom:clamp(1.5rem,3vw,2.5rem); }
.method-intro { margin-bottom:clamp(2rem,4vw,3.2rem); }
.sectors-grid { grid-template-columns:repeat(4,minmax(0,1fr)); align-items:stretch; }
.sectors-grid .sector { min-height:250px; }

.floating-actions { position:fixed; z-index:90; right:1.25rem; bottom:1.25rem; display:flex; flex-direction:column; gap:.6rem; }
.floating-action { display:grid; width:48px; height:48px; place-items:center; padding:0; border:1px solid var(--line); border-radius:50%; cursor:pointer; box-shadow:0 5px 20px rgb(0 0 0 / .25); transition:opacity .18s ease, transform .18s ease, background .18s ease; }
.floating-action svg { width:22px; height:22px; }
.floating-whatsapp { border-color:#25d366; background:#25d366; color:#fff; }
.floating-whatsapp svg { width:25px; height:25px; fill:currentColor; }
.floating-top { background:var(--gold-fill); color:#050505; opacity:0; pointer-events:none; transform:translateY(5px); }
.floating-top svg { fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.floating-top.is-visible { opacity:1; pointer-events:auto; transform:translateY(0); }
.floating-action:hover { transform:translateY(-2px); }
.floating-top:not(.is-visible):hover { transform:translateY(5px); }

@media (max-width:1000px) {
  .sectors-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:760px) {
  body { padding-bottom:50px; }
  .mobile-fixed-cta { min-height:50px; padding:12px 18px; font-size:12px; }
  .brand { width:148px; height:27px; }
  .brand .theme-logo { top:-69px; left:-13px; width:173px; height:173px; }
  .hero { min-height:0 !important; padding-block:1.75rem 2.25rem !important; }
  .hero-grid { min-height:0; }
  .hero-grid > div:first-child { padding-block:0; }
  main > section.section, main > section.contact { padding-block:2.75rem 3.25rem !important; }
  .section-head { margin-bottom:1.75rem; }
  .problem-story-topline { margin-bottom:1.4rem; }
  .method-intro { gap:1.2rem; margin-bottom:1.8rem; }
  .sectors-section .sectors-head, .cases .experience-head, .resources-home .resources-head, .blog-home .blog-head { margin-bottom:1.6rem; }
  .floating-actions { right:12px; bottom:62px; gap:6px; }
  .floating-action { width:40px; height:40px; }
  .floating-action svg { width:19px; height:19px; }
  .floating-whatsapp svg { width:22px; height:22px; }
}
@media (max-width:560px) {
  .sectors-grid { grid-template-columns:minmax(0,1fr); gap:.65rem; }
  .sectors-grid .sector { min-height:0; }
}
@media (prefers-reduced-motion:reduce) {
  .floating-action { transition:none; }
}

/* CRM-managed case studies and editorial pages */
.header-actions > .language-link,
.header-actions > .crm-entry,
.header-actions > [data-theme-toggle],
.header-actions > .menu-toggle {
  display: grid; place-items: center; flex: 0 0 42px; width: 42px; min-width: 42px; height: 42px; min-height: 42px;
  padding: 0; border: 1px solid var(--line); background: transparent; color: var(--text); font-size: .82rem; font-weight: 800; line-height: 1;
}
.header-actions > .menu-toggle { display: none; }
.header-actions > [data-theme-toggle] { font-size: 1.2rem; }
.header-actions > .language-link:hover, .header-actions > .crm-entry:hover, .header-actions > [data-theme-toggle]:hover { border-color: var(--gold); }
.sectors-note { display: flex; flex-wrap: wrap; align-items: baseline; gap: .25rem 1rem; margin: 1.5rem 0 0; padding: 1.2rem 1.4rem; border-left: 3px solid var(--gold); background: var(--surface-2); color: var(--text); }
.sectors-note strong { color: var(--gold); font-size: .74rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.sectors-note span { font-size: clamp(1rem,1.45vw,1.22rem); line-height: 1.5; }
.resources-context { display: grid; grid-template-columns: minmax(10rem,.35fr) minmax(0,1fr); gap: 1.3rem; align-items: start; margin-top: 1.5rem; padding: 1.35rem 1.5rem; border-left: 3px solid var(--gold); background: var(--surface-2); }
.resources-context strong { color: var(--gold); font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; }
.resources-context p { max-width: 60ch; margin: 0; color: var(--text); font-size: clamp(1rem,1.4vw,1.18rem); line-height: 1.55; }
.experience-item { color: inherit; text-decoration: none; }
.experience-item:hover, .experience-item:focus-visible { color: inherit; }
.experience-read-more { grid-column: 2 / -1; justify-self: end; color: var(--gold); font-size: .74rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.experience-description { grid-column: 3; grid-row: 1; }
.blog-home-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: .8rem; }
.blog-card-link { display: block; min-width: 0; border-top: 1px solid var(--line); transition: border-color .18s ease, transform .18s ease; }
.blog-card-link:hover, .blog-card-link:focus-visible { border-color: var(--gold); transform: translateY(-3px); }
.blog-home-grid article { display: flex; height: 100%; min-height: 230px; flex-direction: column; gap: .7rem; padding: 1.3rem; border-top: 0; background: var(--surface-2); }
.blog-home-grid h3 { margin: auto 0 .25rem; }
.blog-home-grid p { max-width: 42ch; }
.blog-home-grid article b { margin-top: .5rem; color: var(--gold); font-size: .74rem; letter-spacing: .08em; text-transform: uppercase; }
.blog-home-grid article b i { font-style: normal; }
.story-header { position: sticky; z-index: 60; top: 0; display: flex; height: 78px; align-items: center; justify-content: space-between; gap: 1.5rem; padding-inline: max(1.5rem,calc((100vw - 1360px)/2)); border-bottom: 1px solid var(--line); background: color-mix(in srgb,var(--bg) 94%,transparent); backdrop-filter: blur(18px); }
.story-header nav { display: flex; align-items: center; gap: .6rem; }
.story-header nav > a:not(.language-link):not(.crm-entry) { padding: .5rem .75rem; color: var(--muted); font-size: .84rem; font-weight: 700; }
.story-main { width: min(100% - 3rem,1100px); margin: 0 auto; padding: clamp(2rem,5vw,4.5rem) 0 5rem; }
.story-back { display: inline-block; margin-bottom: 2rem; color: var(--muted); font-size: .87rem; }
.story-back:hover { color: var(--gold); }
.story-article { max-width: 860px; margin: 0 auto; }
.story-article h1 { margin: .8rem 0 1.2rem; font-family: "Arial Black",Arial,sans-serif; font-size: clamp(2.5rem,6vw,5.6rem); line-height: .98; letter-spacing: -.055em; text-transform: uppercase; }
.story-summary { max-width: 68ch; margin: 0 0 2rem; color: var(--muted); font-size: clamp(1.1rem,2vw,1.4rem); line-height: 1.55; }
.story-cover { max-height: 620px; margin: 2rem 0; overflow: hidden; background: var(--surface-2); }
.story-cover img { width: 100%; max-height: 620px; object-fit: cover; }
.story-body { max-width: 72ch; margin: 2.5rem auto; }
.story-body p { margin: 0 0 1.2rem; font-size: 1.05rem; line-height: 1.85; }
.story-pending { color: var(--muted); }
.story-gallery { margin-top: 4rem; }
.story-gallery h2 { margin: .5rem 0 1.5rem; font-family: "Arial Black",Arial,sans-serif; font-size: clamp(1.8rem,4vw,3rem); line-height: 1; text-transform: uppercase; }
.story-gallery-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); align-items: start; gap: 1rem; }
.story-gallery-item { position: relative; margin: 0; overflow: hidden; border: 1px solid var(--line); background: var(--surface-2); }
.story-gallery-item.format-4-5 { aspect-ratio: 4 / 5; }
.story-gallery-item.format-9-16 { aspect-ratio: 9 / 16; }
.story-gallery-item img { width: 100%; height: 100%; object-fit: cover; }
.story-gallery-item figcaption { position: absolute; right: .5rem; bottom: .5rem; padding: .25rem .45rem; background: rgba(0,0,0,.72); color: white; font-size: .68rem; }
.story-contact { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-top: 5rem; padding: 2rem 0; border-top: 1px solid var(--line); }
.story-contact h2 { max-width: 18ch; margin: .4rem 0 0; font-family: "Arial Black",Arial,sans-serif; font-size: clamp(1.5rem,3vw,2.5rem); line-height: 1.02; text-transform: uppercase; }
.story-footer { display: flex; justify-content: space-between; gap: 1rem; padding: 1.5rem max(1.5rem,calc((100vw - 1360px)/2)); border-top: 1px solid var(--line); color: var(--muted); font-size: .78rem; }
.story-footer a:first-child { color: var(--text); font-weight: 900; }
@media(max-width:760px) {
  .header-actions > .language-link,.header-actions > .crm-entry,.header-actions > [data-theme-toggle],.header-actions > .menu-toggle { flex-basis: 36px; width: 36px; min-width: 36px; height: 36px; min-height: 36px; }
  .header-actions > .menu-toggle { display: grid; }
  .sectors-note { display: grid; gap: .45rem; padding: 1rem; }
  .resources-context { grid-template-columns: 1fr; gap: .45rem; padding: 1rem; }
  .experience-read-more { grid-column: 2; }
  .blog-home-grid { grid-template-columns: 1fr; gap: .55rem; }
  .blog-home-grid article { min-height: 190px; }
  .story-header { height: 64px; padding-inline: 1rem; }
  .story-header .brand { width: 150px; height: 40px; }
  .story-header .brand img { width: 150px; height: 150px; }
  .story-header nav { gap: .35rem; }
  .story-header nav > a:not(.language-link):not(.crm-entry) { display: none; }
  .story-header nav > .language-link,.story-header nav > .crm-entry,.story-header nav > [data-theme-toggle] { flex: 0 0 36px; width: 36px; min-width: 36px; height: 36px; min-height: 36px; padding: 0; display: grid; place-items: center; }
  .story-main { width: min(100% - 2rem,1100px); padding-top: 1.5rem; }
  .story-gallery-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .65rem; }
  .story-contact { align-items: start; flex-direction: column; margin-top: 3rem; }
  .story-contact .button-primary { width: 100%; }
  .story-footer { flex-wrap: wrap; padding-inline: 1rem; }
}
