/* NOIR: dark technical grid, orbital composition, sharp modular surfaces. */
.design-noir { font-family:Arial,Helvetica,sans-serif; }
.design-noir h1,.design-noir h2,.design-noir h3 { font-family:Arial,Helvetica,sans-serif; }
.design-noir .site-header { height:108px; background:var(--paper); border-bottom:1px solid var(--line); backdrop-filter:none; }
.design-noir .header-inner { height:83px; }
.design-noir .wordmark { font:500 28px/.95 Arial,sans-serif; text-transform:uppercase; letter-spacing:-.055em; }
.design-noir .wordmark span { font:8px/1 monospace; letter-spacing:.12em; margin-top:9px; }
.design-noir .main-nav a { font:10px/1.5 monospace; text-transform:uppercase; letter-spacing:.07em; }
.design-noir .header-caption { padding-bottom:10px; font:8px/1.5 monospace; color:var(--muted); }
.design-noir .button { border-radius:2px; color:var(--paper); font-size:12px; }
.design-noir .button-small { padding:12px 18px; }
.design-noir .menu-toggle span { background:var(--ink); }
.noir-hero { overflow:hidden; border-bottom:1px solid var(--line); }
.noir-grid { position:absolute; inset:0; background-image:linear-gradient(#9cbd9e08 1px,transparent 1px),linear-gradient(90deg,#9cbd9e08 1px,transparent 1px); background-size:68px 68px; pointer-events:none; z-index:-1; mask-image:linear-gradient(90deg,transparent,#000); }
.noir-topline { display:flex; justify-content:space-between; padding-block:28px 5px; color:var(--muted); font:9px/1.5 monospace; letter-spacing:.12em; text-transform:uppercase; }
.noir-topline > span:last-child { color:var(--olive); }
.noir-composition { display:grid; grid-template-columns:1.25fr 1fr; gap:35px; align-items:center; min-height:610px; }
.noir-copy { position:relative; z-index:2; padding-block:25px; }
.noir-copy .eyebrow { color:var(--muted); font:9px/1.5 monospace; letter-spacing:.15em; }
.noir-copy h1 { font-size:clamp(75px,7.7vw,116px); text-transform:uppercase; font-weight:500; line-height:.9; letter-spacing:-.065em; margin-top:22px; }
.noir-copy h1 em { font-style:normal; color:var(--olive); font-weight:inherit; }
.noir-copy .hero-description { color:var(--muted); max-width:340px; margin-top:28px; font-size:13px; }
.noir-copy .hero-buttons { gap:27px; }
.noir-copy .inline-link { color:var(--ink); }
.noir-art { position:relative; height:550px; display:grid; place-items:center; min-width:0; }
.noir-photo { width:66%; height:390px; transform:rotate(9deg); overflow:hidden; border:1px solid #a6b3a666; }
.noir-photo img { width:100%; height:100%; filter:grayscale(1) contrast(1.08); object-position:40% center; }
.noir-orbit { position:absolute; width:490px; height:490px; border:1px solid #d9ef7566; border-radius:50%; transform:rotate(-30deg); }
.noir-orbit::before,.noir-orbit::after { content:""; position:absolute; inset:35px; border:1px solid #d9ef7526; border-radius:50%; }
.noir-orbit::after { inset:-20px 95px; border-color:#d9ef7566; transform:rotate(25deg); }
.noir-orbit span { position:absolute; top:18%; left:9%; width:11px; height:11px; background:var(--olive); border-radius:50%; box-shadow:0 0 25px #d9ef7540; }
.noir-orbit i { position:absolute; right:-9px; top:50%; width:18px; height:18px; border:1px solid var(--olive); background:var(--paper); transform:rotate(45deg); }
.noir-art-label { position:absolute; bottom:23px; right:0; display:flex; gap:12px; align-items:center; background:var(--paper); border:1px solid var(--line); padding:15px; font:9px/1.6 monospace; text-transform:uppercase; letter-spacing:.07em; }
.noir-art-label > span { color:var(--olive); font-size:25px; }
.noir-bottom { display:flex; justify-content:space-between; gap:30px; padding-block:20px 25px; border-top:1px solid var(--line); font:9px/1.7 monospace; color:var(--muted); }
.noir-index { color:var(--olive); align-self:center; flex-shrink:0; }
.design-noir .eyebrow { font-family:monospace; letter-spacing:.12em; }
.design-noir .values-strip { font:10px/1.8 monospace; padding-block:32px; border-top:0; text-transform:uppercase; }
.design-noir .values-strip i { background:var(--olive); border-radius:0; width:5px; height:5px; }
.design-noir h2 { font-weight:500; text-transform:uppercase; letter-spacing:-.055em; }
.design-noir .section-heading h2 { font-size:clamp(40px,4.4vw,63px); }
.design-noir .service-preview { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; border:1px solid var(--line); background:var(--line); }
.design-noir .service-card,.design-noir .service-card:first-child { background:var(--paper); padding:36px; border:0; display:grid; grid-template-columns:40px 1fr; column-gap:20px; }
.design-noir .service-card:hover { background:var(--soft); }
.design-noir .service-card .service-index { grid-row:1/4; color:var(--olive); font:11px/1.8 monospace; padding-top:7px; }
.design-noir .service-card h3 { font:500 36px/1.15 Arial,sans-serif; letter-spacing:-.04em; text-transform:uppercase; margin:0 0 18px; }
.design-noir .service-card h3 br { display:none; }
.design-noir .service-card > div { grid-column:2; }
.design-noir .round-arrow { border-radius:0; color:var(--olive); }
.design-noir .team-teaser { grid-template-columns:1fr 1.1fr; gap:90px; border-top:1px solid var(--line); padding-top:80px; }
.design-noir .team-photo { order:2; background:var(--soft); }
.design-noir .team-photo img { filter:grayscale(1); aspect-ratio:1.12; }
.design-noir .photo-label { color:var(--ink); border:1px solid var(--line); }
.design-noir .team-teaser-copy { order:1; }
.design-noir .team-teaser h2 { font-size:clamp(40px,4vw,57px); }
.design-noir .handwritten { font:12px/1.8 monospace; color:var(--olive); }
.design-noir .booking-banner { color:var(--paper); }
.design-noir .booking-banner h2 { font-size:clamp(40px,4.4vw,63px); }
.design-noir .booking-banner .button { background:var(--paper); border-color:var(--paper); color:var(--ink); }
.design-noir .booking-banner .eyebrow { color:var(--paper); }
.design-noir .site-footer { background:var(--paper); padding-top:50px; border-top:1px solid var(--line); }
.design-noir .footer-tag { color:var(--olive); font-family:monospace; }
.design-noir .footer-display { font-family:Arial,sans-serif; text-transform:uppercase; color:transparent; -webkit-text-stroke:1px var(--muted); line-height:1; margin-block:55px; }
.design-noir .page-intro { padding-block:75px; border-bottom:1px solid var(--line); margin-bottom:55px; }
.design-noir .page-intro h1 { text-transform:uppercase; font-size:clamp(55px,6vw,86px); letter-spacing:-.055em; }
.design-noir .service-row h2 { font-size:33px; }
.design-noir .service-row-end strong { font:500 36px/1.5 Arial,sans-serif; color:var(--olive); }
.design-noir .team-wide img { filter:grayscale(1); }
.design-noir .team-profiles { grid-template-columns:1fr; gap:0; }
.design-noir .team-profiles article { display:grid; grid-template-columns:1fr 1.25fr .8fr; column-gap:45px; border-top:1px solid var(--line); padding-block:34px; align-items:start; }
.design-noir .team-profiles article > .eyebrow { grid-column:1; grid-row:1; color:var(--olive); }
.design-noir .team-profiles h2 { grid-column:1; grid-row:2/4; font-size:43px; margin-top:12px; }
.design-noir .team-profiles h2 span { text-transform:none; font-weight:400; }
.design-noir .team-profiles p { grid-column:2; grid-row:1/4; margin-top:0; }
.design-noir .profile-specialty { grid-column:3; grid-row:1; margin:0; padding:0; font-size:10px; }
.design-noir .team-profiles .inline-link { grid-column:3; grid-row:2; margin-top:20px; justify-self:start; }
.design-noir .contact-layout { padding-top:15px; }
.design-noir .map-panel { border:1px solid var(--line); }
.design-noir .contact-form-section { border-block:1px solid var(--line); }
.design-noir .contact-form-layout h2 { font-size:52px; }
.design-noir .demo-inline { border-color:var(--olive); }
.design-noir .booking-dialog { border:1px solid var(--line); border-radius:3px; }
.design-noir .booking-dialog h2 { font-size:47px; }
.design-noir .booking-dialog::backdrop { background:#000b; }
.design-noir .booking-progress li[aria-current],.design-noir .booking-progress li.complete { color:var(--olive); }
.design-noir .booking-step h3 { font-size:25px; text-transform:none; }
.design-noir .success-mark { border:1px solid var(--olive); }
@media(max-width:1100px) {
  .noir-composition { gap:15px; }
  .noir-orbit { width:400px; height:400px; }
  .noir-photo { height:340px; }
  .noir-art { height:470px; }
  .noir-art-label { right:0; font-size:8px; }
  .noir-copy h1 { font-size:8vw; }
  .design-noir .team-teaser { gap:50px; }
}
@media(max-width:800px) {
  .design-noir .site-header { height:86px; }
  .design-noir .header-inner { height:86px; }
  .design-noir .header-caption { display:none; }
  .design-noir .wordmark { font-size:24px; }
  .design-noir .main-nav { top:86px; border-bottom:1px solid var(--line); }
  .noir-topline { font-size:8px; padding-top:23px; }
  .noir-composition { grid-template-columns:1.2fr 1fr; gap:10px; min-height:540px; }
  .noir-copy h1 { font-size:8.8vw; }
  .noir-copy .eyebrow { font-size:8px; }
  .noir-copy .hero-description { font-size:12px; }
  .noir-copy .hero-buttons { gap:17px; }
  .noir-art { height:420px; }
  .noir-orbit { width:330px; height:330px; }
  .noir-photo { width:79%; height:280px; }
  .noir-art-label { font-size:7px; bottom:0; padding:10px; }
  .design-noir .team-profiles article { grid-template-columns:1fr 1.2fr; gap:20px; }
  .design-noir .profile-specialty { grid-column:2; grid-row:4; }
  .design-noir .team-profiles .inline-link { grid-column:1; grid-row:4; margin:0; }
}
@media(max-width:560px) {
  .design-noir .wordmark { font-size:22px; }
  .design-noir .wordmark span { font-size:6px; }
  .noir-topline { font-size:6px; gap:15px; }
  .noir-composition { display:flex; flex-direction:column; align-items:stretch; gap:0; }
  .noir-copy { padding-top:28px; }
  .noir-copy h1 { font-size:clamp(43px,13.7vw,73px); line-height:.93; }
  .design-noir .header-actions .button { font-size:10px; padding:11px 10px; gap:9px; white-space:nowrap; }
  .noir-copy .hero-description { max-width:300px; font-size:13px; margin-top:23px; }
  .noir-copy .hero-buttons { margin-top:23px; }
  .noir-art { width:100%; height:365px; }
  .noir-orbit { width:300px; height:300px; }
  .noir-photo { width:58%; height:270px; }
  .noir-art-label { font-size:7px; padding:11px; bottom:7px; }
  .noir-bottom { padding-block:22px; font-size:8px; }
  .design-noir .values-strip { font-size:7px; }
  .design-noir .service-preview { grid-template-columns:1fr; }
  .design-noir .service-card,.design-noir .service-card:first-child { padding:28px 23px; grid-template-columns:22px 1fr; gap:14px; }
  .design-noir .service-card h3 { font-size:29px; margin-bottom:12px; }
  .design-noir .team-teaser { display:flex; flex-direction:column; gap:35px; padding-top:45px; }
  .design-noir .team-photo { order:1; width:100%; }
  .design-noir .team-teaser-copy { order:2; }
  .design-noir .team-teaser-copy h2 { font-size:40px; }
  .design-noir .booking-banner h2 { font-size:40px; }
  .design-noir .team-profiles article { display:flex; flex-direction:column; align-items:flex-start; gap:0; }
  .design-noir .team-profiles p { margin-top:20px; }
  .design-noir .profile-specialty { padding-top:16px; }
  .design-noir .team-profiles .inline-link { margin-top:20px; }
  .design-noir .page-intro h1 { font-size:clamp(45px,12vw,62px); }
  .design-noir .contact-form-layout h2 { font-size:43px; }
  .design-noir .footer-display { font-size:clamp(43px,12vw,68px); margin-block:35px; }
}
@media(max-width:360px) {
  .design-noir .wordmark { font-size:20px; }
  .design-noir .header-actions .button { font-size:9px; padding:11px 9px; }
  .design-noir .header-actions .button svg { display:none; }
  .design-noir .menu-toggle { width:31px; padding:5px; }
}
