/* Original identity: page-one charcoal, gray artwork, light-to-warm orange. */
:root {
  color-scheme: dark;
  --paper: #232323;
  --paper-deep: #1d1d1d;
  --ink: #f2f2f2;
  --muted: #b5b5b5;
  --orange: #ffad03;
  --orange-dark: #ffad03;
  --orange-warm: #ff8a00;
  --brand-gray: #aeaeae;
  --brand-gradient: linear-gradient(115deg, #ffad03 0%, #ffa000 48%, #ff8a00 100%);
  --line: #454545;
  --light-line: #454545;
  --header-height: 88px;
}
html { scroll-padding-top: calc(var(--header-height) + 20px); }
body { background: var(--paper); color: var(--ink); }
::selection { background: var(--orange); color: #191919; }
::-webkit-scrollbar-track { background: #1d1d1d; }
::-webkit-scrollbar-thumb { background: #666; }
.reading-progress { background: var(--brand-gradient); }
.site-header { height: var(--header-height); background: #232323; border-bottom-color: #3d3d3d; }
.site-header.is-scrolled { box-shadow: 0 8px 28px rgba(0,0,0,.2); }
.brand { flex-shrink: 0; }
.brand-official { width: 320px; height: 53px; object-position: left center; }
.desktop-nav { gap: clamp(16px, 2vw, 30px); }
.desktop-nav a { color: #dedede; }
.desktop-nav a:hover, .desktop-nav a.is-active { color: #fff; }
.desktop-nav a::after { background: var(--brand-gradient); }
.header-contact { color: #ededed; }
.hero { background: #232323; }
.hero h1 em { -webkit-text-stroke: 0; color: var(--orange); }
.hero-support, .hero-credential > span { color: var(--muted); }
.technical-overlay, .image-caption { color: #f2f2f2; }
.dimension { background: #f2f2f2; }
.dimension-horizontal::before, .dimension-horizontal::after { background: #f2f2f2; }
.experience-seal { background: var(--brand-gradient); color: #191919; }
.button-orange, .button-dark, .button-orange:hover, .button-dark:hover { background: var(--brand-gradient); color: #171717; }
.button::before { background: #fff; }
.button-outline { color: #f2f2f2; border-color: #777; background: transparent; }
.button-outline:hover { background: #343434; color: #fff; }
.button:focus-visible, a:focus-visible, summary:focus-visible, button:focus-visible { outline-color: var(--orange); }
.skip-link { color: #171717; background: var(--brand-gradient); }
.expertise-strip { background: #171717; color: #c8c8c8; border-top: 1px solid #3d3d3d; border-bottom: 1px solid #3d3d3d; }
.strip-track > .icon { color: var(--orange); }
.motion-toggle { color: #f2f2f2; background: #262626; border-color: #555; }
.about { background: #1e1e1e; }
.about-person-frame { background: #292929; }
.signature-mark { color: var(--orange); }
.services { background: #272727; }
.solution, .solution:last-child { border-color: #4b4b4b; }
.solution[open] .solution-title, .solution summary:hover .solution-title { color: #f2f2f2; }
.solution::before { background: var(--brand-gradient); }
.solution-toggle { border-color: #666; color: #dedede; }
.solution[open] .solution-toggle { background: var(--brand-gradient); color: #191919; border-color: var(--orange); }
.solutions-visual { top: calc(var(--header-height) + 24px); background: #191919; }
.solutions-photo-copy, .service-view-label { color: #f5f5f5; }
.visual-line { stroke: #f2f2f2; }
.lifecycle { background: #202020; }
.lifecycle-stage { border-top-color: var(--orange); }
.lifecycle-phase { color: #b5b5b5; }
.lifecycle-stage summary, .lifecycle-stage > h3 { color: #ededed; }
.image-illustration { background: #292929; }
.diagnostic { background: #171717; color: #f2f2f2; }
.diagnostic-intro > p, .study-description p, .diagnostic-switch > button { color: #bcbcbc; }
.study-description h3, .diagnostic-switch > button[aria-pressed=true], .diagnostic-switch > button:hover { color: #f2f2f2; }
.building-lines { stroke: #b5b5b5; }
.building-guide { stroke: #676767; }
.building-study.has-selection .study-dots circle { stroke: #171717; }
.building-study[data-step] .study-dots circle { stroke: #f2f2f2; }
.study-dots { stroke: #171717; }
.study-tag { background: #171717; color: var(--orange); }
.building-study[data-step="0"] .tag-observe, .building-study[data-step="1"] .tag-analyze, .building-study[data-step="2"] .tag-decide { color: #171717; background: var(--brand-gradient); }
.study-label, .study-footer { color: #b5b5b5; }
.technical-profile { background: #292929; }
.profile-photo-frame, .field-photo { background: #1b1b1b; }
.profile-specialties > div, .profile-registration { border-color: #4c4c4c; }
.process { background: #202020; }
.process-intro { top: calc(var(--header-height) + 24px); }
.process-steps::before { background: #4d4d4d; }
.step-number { background: #202020; color: #c2c2c2; border-color: #606060; }
.process-steps li.is-current .step-number, .process-steps li:hover .step-number { background: var(--brand-gradient); color: #191919; border-color: var(--orange); }
.field-records { background: #252525; }
.field-record figcaption { border-bottom-color: #4c4c4c; }
.principle { color: #f2f2f2; background: #171717; }
.principle p { color: #dfdfdf; }
.faq { background: #232323; }
.faq details[open] { background: #2b2b2b; }
.contact { background: #1b1b1b; border-top: 1px solid #454545; color: #f2f2f2; }
.contact h2 em { color: var(--orange); }
.contact-availability .status-dot { background: var(--orange); }
.contact-heading > p, .contact-direct > span { color: #c4c4c4; }
.contact-direct .email-link { border-color: #777; }
.contact-socials a { color: #e2e2e2; }
.contact-socials a:hover { color: var(--orange); }
.contact-form { background: #292929; border: 1px solid #454545; }
.contact-form:focus-within { box-shadow: 0 14px 42px rgba(0,0,0,.2); }
.contact-form input, .contact-form select, .contact-form textarea { color: #f2f2f2; border-bottom-color: #686868; accent-color: var(--orange); caret-color: var(--orange); }
.contact-form select option { color: #f2f2f2; background: #292929; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color: var(--orange); }
.contact-form input:focus-visible, .contact-form select:focus-visible, .contact-form textarea:focus-visible { outline-color: var(--orange); }
.form-feedback a { color: var(--orange); }
.site-footer { background: #232323; color: #e6e6e6; }
.footer-brand .brand-official { width: 300px; height: 134px; }
.footer-message > p, .footer-bottom { color: #b7b7b7; }
.footer-socials a { border-color: #555; }
.floating-contact, .floating-contact:hover { background: #303030; color: #f2f2f2; border: 1px solid #5a5a5a; box-shadow: 0 6px 24px rgba(0,0,0,.3); }
.floating-contact .icon { color: var(--orange); }
@media (max-width: 1100px) {
  .brand-official { width: 280px; height: 46px; }
}
@media (max-width: 900px) {
  :root { --header-height: 88px; }
  .desktop-nav, .header-contact { display: none; }
  .site-header { justify-content: space-between; }
  .brand-official { width: 250px; height: 42px; }
  .menu-toggle { display: flex; flex-direction: column; justify-content: center; gap: 7px; padding: 10px; width: 46px; height: 46px; background: transparent; border: 0; }
  .menu-toggle > span { display: block; width: 26px; height: 1px; background: #ededed; }
  .mobile-nav:not([hidden]) { display: flex; position: absolute; top: var(--header-height); left: 0; right: 0; padding: 18px var(--gutter) 28px; flex-direction: column; background: #232323; border-bottom: 1px solid #555; box-shadow: 0 16px 28px rgba(0,0,0,.3); }
  .mobile-nav > a { display: flex; justify-content: space-between; min-height: 48px; align-items: center; padding: 10px 0; border-top: 1px solid var(--line); font-size: 15px; }
  .mobile-socials a { color: #dedede; }
}
@media (max-width: 700px) {
  .solutions-visual { top: auto; }
  .process-intro { top: auto; }
  .footer-brand .brand-official { width: 240px; height: 107px; }
}
@media (max-width: 370px) {
  .brand-official { width: 220px; height: 37px; }
  .footer-brand .brand-official { width: 220px; height: 98px; }
}

/* Fit the desktop introduction to the available window height at browser zoom 100%. */
@media (min-width: 901px) {
  .hero { min-height: 440px; max-height: none; height: min(760px, calc(100svh - var(--header-height) - 56px)); }
  .hero-copy { padding: clamp(24px, 4svh, 42px) clamp(24px, 3vw, 42px) clamp(20px, 3svh, 32px) var(--gutter); }
  .hero-location { margin-bottom: clamp(18px, 3.5svh, 34px); }
  .hero h1 { font-size: clamp(54px, min(5.8vw, 10svh), 88px); line-height: .98; }
  .hero-line, .hero h1 .hero-line:last-child { white-space: nowrap; max-width: none; }
  .hero-line:last-child { margin-top: 6px; }
  .hero-description { font-size: clamp(16px, min(1.35vw, 2.3svh), 20px); line-height: 1.5; margin-top: clamp(18px, 2.6svh, 28px); }
  .hero-support { font-size: clamp(12px, min(.95vw, 1.7svh), 14px); line-height: 1.8; margin-top: 12px; max-width: 430px; }
  .hero-actions { margin-top: clamp(18px, 3svh, 28px); gap: 20px; }
  .hero-actions .button { min-height: 50px; padding: 15px 20px; font-size: 12px; }
  .hero-bottom { padding-top: 14px; }
  .expertise-strip { height: 56px; }
}
@media (min-width: 901px) and (max-height: 700px) {
  :root { --header-height: 80px; }
  .site-header .brand-official { width: 280px; height: 46px; }
  .hero { height: calc(100svh - var(--header-height) - 48px); }
  .hero-copy { padding: 20px 28px 18px var(--gutter); }
  .hero-location { margin-bottom: 16px; }
  .hero h1 { font-size: clamp(50px, min(5.4vw, 9.5svh), 68px); }
  .hero-description { font-size: 16px; line-height: 1.45; margin-top: 16px; }
  .hero-support { font-size: 12px; line-height: 1.65; margin-top: 10px; }
  .hero-actions { margin-top: 16px; }
  .hero-actions .button { min-height: 48px; padding: 14px 18px; font-size: 11px; }
  .hero-bottom { padding-top: 12px; }
  .expertise-strip { height: 48px; }
}
