/* Both appearances share the Classic Navy palette. Only the selector is global. */
#hdr .jm-brand { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }
/* Compact, consistent section rhythm. */
#view .expertise-page .pm-section { padding:40px 0; }
#view .expertise-page .pm-intro { padding-top:28px; padding-bottom:0; }
#view .expertise-page .pm-feature { margin:24px auto 0; }
#view .expertise-page .pm-section h2 { margin-top:0; margin-bottom:20px; }
#view .expertise-page .pm-list { padding-top:0; }
#view .expertise-page .pm-list li { padding:20px; }
#view .expertise-page .pm-foundations { margin-top:24px; row-gap:22px; }
#view .expertise-page .pm-results { margin-top:24px; gap:20px; }
#view .expertise-page .ex-services { margin-top:24px; }
#view .expertise-page .ex-related { padding:28px 0; }
#view .jm-page-section { padding-top:44px; padding-bottom:44px; }
#view .jm-savings { padding-top:40px; padding-bottom:40px; }
#home :is(.hn-approach,.jm-audiences,.hn-news,.jm-factory-teaser) { padding-top:40px; padding-bottom:40px; }
html[data-style=rounded] #home .hn-approach { padding-top:36px; padding-bottom:36px; }
html[data-style=rounded] #home .hn-expertise { padding-bottom:32px; }
#home .jm-motion-panel { padding-top:36px; padding-bottom:36px; }
#view .jm-booking-compact { padding:28px 0 24px; }
body:has(#view .expertise-page) .jm-sticky-contact { display:none; }
footer.jm-footer.jm-footer-dark { padding-top:40px; }
footer.jm-footer.jm-footer-dark .jm-footer-main { padding-bottom:32px; }
footer.jm-footer.jm-footer-dark .jm-footer-identity .jm-brand { margin-bottom:22px; }
#view .jm-booking-compact .jm-booking-shell { max-width:1180px; grid-template-columns:minmax(0,.9fr) minmax(0,1.5fr); }
#view .jm-booking-compact .jm-booking-story { padding:24px; }
#view .jm-booking-compact h2 { font-size:25px; margin:0 0 8px; }
#view .jm-booking-compact .jm-booking-topic { border:0; padding:0; margin:0 0 14px; font-size:14px; }
#view .jm-booking-compact .jm-booking-meta { margin-bottom:8px; }
#view .jm-booking-compact .jm-booking-meta span { padding:5px 9px; }
#view .jm-booking-compact .jm-booking-story>a { font-size:14px; margin-top:0; }
#view .jm-booking-compact .jm-booking-panel { padding:24px; gap:12px; }
#view .jm-booking-compact .jm-booking-panel h3 { font-size:20px; margin:0 0 10px; }
#view .jm-booking-picker { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:20px; }
#view .jm-booking-picker-footer { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:18px; }
#view .jm-booking-picker-footer p { font-size:12px; line-height:1.5; }
#view .jm-booking-compact .jm-booking-open { font-size:15px; padding:12px 18px; }
#view .jm-booking-compact .jm-booking-next { margin:0; flex:none; align-self:center; }
#view .jm-booking-compact .jm-calendar-slots { gap:6px; }
#view .jm-booking-compact .jm-calendar-slots button { min-height:36px; padding:7px 3px; font-size:13px; }
#view .jm-booking-compact .jm-slot-date { min-height:34px; padding:0 0 10px; line-height:1.4; }
#view .jm-booking-compact .jm-booking-form { gap:12px; }
#view .jm-booking-compact .jm-booking-form input,#view .jm-booking-compact .jm-booking-form textarea { padding:9px 10px; }
#view .jm-booking-compact .jm-booking-selection { margin:0 0 12px!important; font-size:13px!important; }
#view .jm-booking-compact .jm-booking-back { margin-bottom:12px; }
#view .jm-booking-status-text,#view .jm-booking-confirmation { font-size:14px; margin:0; }
#view .jm-booking-compact [hidden] { display:none!important; }
@media(max-width:1000px) {
 #view .jm-booking-compact .jm-booking-shell { grid-template-columns:1fr; }
}
@media(max-width:760px) {
 footer.jm-footer.jm-footer-dark { padding-top:30px; }
 #view .expertise-page .pm-section { padding:28px 0; }
 #view .expertise-page .pm-intro { padding-top:24px; }
 #view .expertise-page .pm-feature { margin-top:20px; margin-bottom:0; }
 #view .expertise-page .pm-list li { padding:16px; }
 #view .jm-page-section { padding-top:30px; padding-bottom:30px; }
 #home :is(.hn-approach,.jm-audiences,.hn-news,.jm-factory-teaser) { padding-top:30px; padding-bottom:30px; }
 #view .jm-booking-compact .jm-booking-story,#view .jm-booking-compact .jm-booking-panel { padding:20px; }
}
@media(max-width:600px) {
 #view .jm-booking-picker { grid-template-columns:1fr; }
 #view .jm-booking-picker { gap:18px; }
 #view .jm-booking-picker-footer { display:grid; gap:12px; }
 #view .jm-booking-compact .jm-booking-next { width:100%; }
}
#hdr .jm-header-wordmark { display:block; font:inherit; line-height:1; }
#hdr .jm-header-motto { display:block!important; margin-top:5px; color:#fff; font:400 10.5px/1.3 Roboto,Arial,sans-serif; letter-spacing:0; white-space:nowrap; }
@media(max-width:760px) { #hdr .jm-header-motto { font-size:9px; margin-top:4px; } }
#hdr .jm-appearance { margin-left:auto; flex:none; }
#hdr .jm-appearance select { width:152px; min-height:38px; padding:8px 10px; border:1px solid #557294; border-radius:9px; background:#001a3c; color:#fff; font:500 13px/1.3 Roboto,Arial,sans-serif; cursor:pointer; }
#hdr .jm-appearance select:focus-visible { outline:2px solid #ff751f; outline-offset:3px; }
@media(max-width:1190px) { #hdr.jm-header nav.jm-navigation { gap:18px; } }
@media(max-width:760px) {
 #hdr.jm-header nav.jm-navigation { gap:8px; }
 #hdr .jm-appearance select { width:126px; font-size:12px; }
 #hdr .jm-mobile-toggle { padding:8px 0 8px 8px; }
}
@media(max-width:360px) { #hdr.jm-header .jm-brand { font-size:26px; } #hdr .jm-appearance select { width:115px; } }

/* Rounded Navy: consistent geometry, restrained depth and the existing navy palette. */
#view .expertise-page .pm-action-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px; max-width:1000px; margin:40px auto 0; }
#view .expertise-page .pm-action-cards .pm-result { padding:36px 30px; }
#view .expertise-page .pm-action-cards h3 { color:#ff751f; font-size:25px; line-height:1.3; margin:0 0 14px; }
#view .expertise-page .pm-action-cards p { font-size:16px; line-height:1.65; margin:0; }
#view .expertise-page .pm-action-cta { text-align:center; margin-top:30px; }
@media(max-width:760px) {
 #view .expertise-page .pm-action-cards { grid-template-columns:1fr; gap:20px; margin-top:30px; }
 #view .expertise-page .pm-action-cards .pm-result { padding:30px 24px; }
}
html[data-style=rounded] { --jm-card-radius:18px; --jm-media-radius:24px; }
html[data-style=rounded] #home .hn-expertise-card,
html[data-style=rounded] #view .expertise-page :is(.ex-service-card,.pm-result,.pm-list li),
html[data-style=rounded] #view :is(.jm-index-card,.jm-contact-card,.jm-quiet-panel,.jm-resource-bottom) {
 border-radius:var(--jm-card-radius); overflow:hidden; border-color:#294c76;
}
html[data-style=rounded] :is(.hn-news-photo,.jm-role-image,.jm-perspective-image,.jm-perspective-quote),
html[data-style=rounded] #view :is(.pm-row img,.pm-feature,.pm-feature img,.pm-feature video,.jm-featured-case,.jm-form-panel,.jm-resource-cover,.hn-article-body figure img),
html[data-style=rounded] #factory .factory-preview-wrap:not(.is-active) {
 border-radius:var(--jm-media-radius); overflow:hidden;
}
html[data-style=rounded] #view .expertise-page .pm-contact,
html[data-style=rounded] #view .jm-savings,
html[data-style=rounded] .jm-booking-shell { border-radius:24px; overflow:hidden; }
html[data-style=rounded] #home .hn-step-grid { gap:24px; }
html[data-style=rounded] #home .hn-step-grid article {
 padding:30px; border:1px solid #294c76; border-radius:18px; background:#002450;
}
html[data-style=rounded] #home .hn-step-grid h3 { margin-bottom:12px; }
html[data-style=rounded] #home .hn-step-grid svg { margin-bottom:18px; }
html[data-style=rounded] #home .hn-expertise { padding-bottom:64px; }
html[data-style=rounded] #home .hn-approach { padding-top:48px; padding-bottom:64px; }
html[data-style=rounded] #home .hn-approach h2 { margin-bottom:32px; }
html[data-style=rounded] #home .hn-card-copy { padding:24px; }
html[data-style=rounded] .hn-contact { padding:64px 0; }
html[data-style=rounded] .hn-contact > .jm-container {
 padding:48px; border:1px solid #294c76; border-radius:24px; background:linear-gradient(125deg,#002450,#062d60);
}
html[data-style=rounded] .hn-contact .jm-button:first-child { background:#ff751f; border-color:#ff751f; color:#fff; }
html[data-style=rounded] #hdr .jm-menu { border-radius:0 0 18px 18px; }
html[data-style=rounded] .hn-reveal.hn-pending { transform:translateY(16px); }
html[data-style=rounded] .hn-reveal.hn-visible {
 transition:opacity .45s ease,transform .45s ease,border-color .22s ease,box-shadow .22s ease;
 transition-delay:0ms;
}
html[data-style=rounded] :is(.hn-expertise-card,.ex-service-card,.jm-index-card) { transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease; }
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
 html[data-style=rounded] :is(.hn-expertise-card.hn-visible,.ex-service-card,.jm-index-card):hover {
  transform:translateY(-4px); border-color:#ff751f; box-shadow:0 12px 26px #0003;
 }
 html[data-style=rounded] :is(.hn-expertise-card:hover img,.hn-news-photo:hover img) { transform:scale(1.025); }
}
html[data-style=rounded] :is(.hn-expertise-card,.ex-service-card,.jm-index-card):focus-within { outline:2px solid #ff751f; outline-offset:3px; }
@media(max-width:760px) {
 html[data-style=rounded] #home .hn-expertise { padding-bottom:40px; }
 html[data-style=rounded] #home .hn-approach { padding:32px 0 44px; }
 html[data-style=rounded] #home .hn-step-grid { gap:16px; }
 html[data-style=rounded] #home .hn-step-grid article { padding:24px; }
 html[data-style=rounded] .hn-contact { padding:40px 0; }
 html[data-style=rounded] .hn-contact > .jm-container { padding:28px 22px; }
}
@media(prefers-reduced-motion:reduce) {
 html[data-style=rounded] .hn-reveal.hn-pending { opacity:1; transform:none; }
 html[data-style=rounded] :is(.hn-reveal,.hn-expertise-card,.ex-service-card,.jm-index-card) { transition:none!important; transform:none!important; }
}

/* Keep the expertise action cards separate from the final contact/calendar panel. */
#view .expertise-page .jm-insight { padding-bottom:12px; }
#view .expertise-page .jm-insight .pm-action-cards { margin-top:20px; gap:20px; }
#view .expertise-page .jm-insight .pm-result { padding:24px; }
#view .expertise-page .jm-insight h3 { font-size:22px; margin-bottom:10px; }
@media(max-width:760px) {
 #view .expertise-page .jm-insight .pm-action-cards { gap:14px; }
 #view .expertise-page .jm-insight .pm-result { padding:20px; }
}

/* Company address and a compact footer legal/attribution area on every screen. */
.jm-company-address { font-style:normal; line-height:1.6; }
footer.jm-footer.jm-footer-dark .jm-footer-identity .jm-company-address { font:400 14px/1.65 Roboto,Arial,sans-serif; color:#d2dfed; margin:0 0 14px; }
footer.jm-footer.jm-footer-dark .jm-footer-legal { padding:20px 0 12px; }
footer.jm-footer.jm-footer-dark .jm-footer-legal-inner { align-items:flex-start; gap:12px 28px; }
footer.jm-footer.jm-footer-dark .jm-footer-legal nav { padding:0; gap:8px 18px; }
footer.jm-footer.jm-footer-dark .jm-footer-legal a+a:before { content:none; }
footer.jm-footer.jm-footer-dark .jm-footer-legal :is(a,button) { font:400 13px/1.6 Roboto,Arial,sans-serif; margin:0; color:#d2dfed; }
footer.jm-footer.jm-footer-dark .jm-footer-legal button { padding:0; background:none; border:0; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
footer.jm-footer.jm-footer-dark .jm-footer-credits { padding-top:0; padding-bottom:24px; }
footer.jm-footer.jm-footer-dark .jm-media-credits { font:400 12px/1.7 Roboto,Arial,sans-serif; color:#d2dfed; max-width:900px; }
footer.jm-footer.jm-footer-dark .jm-media-credits summary { cursor:pointer; width:fit-content; padding:6px 0; }
footer.jm-footer.jm-footer-dark .jm-media-credits summary:focus-visible { outline:2px solid #ff751f; outline-offset:3px; }
footer.jm-footer.jm-footer-dark .jm-media-credits ul { display:block; padding:8px 0 0 18px; margin:0; }
footer.jm-footer.jm-footer-dark .jm-media-credits li { display:list-item; margin:0 0 7px; padding:0; overflow-wrap:anywhere; }
footer.jm-footer.jm-footer-dark .jm-media-credits a { display:inline; font:inherit; margin:0; padding:0; color:inherit; text-decoration:underline; text-underline-offset:3px; }
@media(max-width:800px) {
 footer.jm-footer.jm-footer-dark .jm-footer-legal-inner { flex-direction:column; gap:10px; }
 footer.jm-footer.jm-footer-dark .jm-footer-legal nav { gap:8px 16px; }
}

/* Mega menu: dark floating panel with icon tiles and photo cards (built in site-enhancements.js). */
#hdr .jm-menu.jm-mega { left:50%; right:auto; width:min(980px,calc(100vw - 48px)); transform:translateX(-50%); top:calc(100% - 6px); padding:10px; gap:10px; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) minmax(0,1fr); background:rgba(6,14,28,.94); -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px); border:1px solid rgba(255,255,255,.09); border-radius:18px; box-shadow:0 24px 60px rgba(0,0,0,.45); max-height:none; overflow:visible; animation:jm-mega-in .18s ease-out; }
#hdr .jm-menu.jm-mega[hidden] { display:none; }
#hdr :is(#jm-menu-expertise,#jm-menu-company).jm-mega { grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) minmax(0,1fr); padding:10px; gap:10px; }
@keyframes jm-mega-in { from { opacity:0; transform:translate(-50%,-6px); } to { opacity:1; transform:translate(-50%,0); } }
#hdr .jm-mega-tiles { display:grid; gap:8px; }
#hdr .jm-menu.jm-mega a { text-decoration:none!important; padding:0; }
#hdr .jm-mega-tile { display:flex!important; align-items:center; min-height:80px; gap:14px; padding:14px!important; border-radius:12px; background:rgba(255,255,255,.045); transition:background .15s; }
#hdr .jm-mega-tile:hover, #hdr .jm-mega-tile:focus-visible { background:rgba(255,255,255,.1); }
#hdr .jm-mega-icon { flex:none; width:44px; height:44px; display:grid; place-items:center; border-radius:10px; background:#fff; color:#001a3c; box-shadow:3px 3px 0 rgba(255,255,255,.18); transition:color .15s; }
#hdr .jm-mega-tile:hover .jm-mega-icon { color:#ff751f; }
#hdr .jm-mega-icon svg { width:22px; height:22px; }
#hdr .jm-menu.jm-mega strong { display:block; font:600 15px/1.3 Montserrat,Arial,sans-serif!important; color:#fff; }
#hdr .jm-menu.jm-mega small { display:block; margin-top:3px; font:400 13px/1.4 Roboto,Arial,sans-serif; color:#a9b8cc; }
#hdr .jm-mega-card { position:relative; display:block!important; min-height:340px; border-radius:12px; overflow:hidden; background:#0b1a30; }
#hdr .jm-mega-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.8; transition:transform .4s, opacity .2s; }
#hdr .jm-mega-card:hover img { transform:scale(1.04); opacity:.95; }
#hdr .jm-mega-card::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(6,14,28,0) 40%,rgba(6,14,28,.92) 100%); }
#hdr .jm-mega-card>span { position:absolute; left:16px; right:16px; bottom:14px; z-index:1; }
#hdr .jm-mega-card small { color:#c5d1df!important; }
#hdr .jm-mega-card:hover strong { color:#ff751f; }
@media (max-width:1190px) { #hdr .jm-menu.jm-mega { display:none; } }
@media (prefers-reduced-motion:reduce) { #hdr .jm-menu.jm-mega { animation:none; } #hdr .jm-mega-card img { transition:none; } }

/* Theme switch button (both themes). */
#hdr .jm-theme-toggle { flex:none; width:34px; height:34px; margin-left:auto; margin-right:10px; display:grid; place-items:center; border-radius:50%; border:1px solid rgba(255,255,255,.28); background:transparent; color:#fff; cursor:pointer; transition:color .15s, border-color .15s; }
#hdr .jm-theme-toggle:hover { border-color:#ff751f; color:#ff751f; }
#hdr .jm-theme-toggle svg { width:18px; height:18px; transition:transform .35s; }
#hdr .jm-theme-toggle[aria-pressed=true] svg { transform:rotate(180deg); }
#hdr .jm-theme-toggle + .jm-language { margin-left:0!important; }

/* Dialed theme: black header and a hero with grid lines, light beams and bento cards. */
.jm-dialed-hero { display:none; }
html[data-theme=dialed] body { background:#000; }
html[data-theme=dialed] #hdr.jm-header, html[data-theme=dialed] #hdr.jm-header.hn-scrolled { background:rgba(0,0,0,.82)!important; -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); border-bottom:1px solid rgba(255,255,255,.08); }
html[data-theme=dialed] #home .hn-hero { display:none; }
html[data-theme=dialed] .jm-dialed-hero { display:block; position:relative; overflow:hidden; background:#000; color:#fff; padding:150px 24px 40px; isolation:isolate; }
.jd-grid { position:absolute; inset:0; z-index:-2; background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px); background-size:140px 140px; background-position:center top; -webkit-mask-image:radial-gradient(ellipse 75% 70% at 50% 20%,#000 30%,transparent 80%); mask-image:radial-gradient(ellipse 75% 70% at 50% 20%,#000 30%,transparent 80%); }
.jd-beams { position:absolute; inset:-30% -10% auto -30%; height:120%; z-index:-1; background:repeating-linear-gradient(115deg,transparent 0 70px,rgba(255,255,255,.13) 70px 120px,transparent 120px 210px); filter:blur(16px); -webkit-mask-image:linear-gradient(160deg,#000 10%,transparent 60%); mask-image:linear-gradient(160deg,#000 10%,transparent 60%); animation:jd-beams 14s ease-in-out infinite alternate; }
@keyframes jd-beams { from { transform:translateX(-3%); opacity:.75; } to { transform:translateX(3%); opacity:1; } }
.jd-copy { text-align:center; max-width:1180px; margin:0 auto 44px; }
.jm-dialed-hero h2 { margin:0 0 26px; font:700 clamp(28px,3.3vw,54px)/1.14 Montserrat,Arial,sans-serif; letter-spacing:-.02em; color:#fff; }
.jd-l1, .jd-l2 { display:block; }
.jd-l2 { color:#8d8d8d; }
.jm-dialed-hero h2 span span { display:inline-block; opacity:0; filter:blur(10px); transform:translateY(10px); }
html[data-theme=dialed] .jm-dialed-hero h2 span span { animation:jd-word .7s cubic-bezier(.2,.7,.2,1) var(--d) forwards; }
@keyframes jd-word { to { opacity:1; filter:blur(0); transform:none; } }
.jd-pill { display:inline-flex; align-items:center; gap:12px; padding:5px 20px 5px 5px; border-radius:999px; background:#fff; color:#000!important; font:600 15px/1 Roboto,Arial,sans-serif; text-decoration:none!important; transition:transform .2s, box-shadow .2s; }
.jd-pill:hover { transform:translateY(-1px); box-shadow:0 8px 30px rgba(255,255,255,.15); }
.jd-pill-dot { width:34px; height:34px; border-radius:50%; background:#000; color:#fff; display:grid; place-items:center; transition:background .2s; }
.jd-pill:hover .jd-pill-dot { background:#ff751f; }
.jd-pill-dot svg { width:16px; height:16px; }
.jd-bento { display:grid; grid-template-columns:1fr 2fr 1fr; gap:14px; max-width:1240px; margin:0 auto; }
.jd-col { display:grid; gap:14px; grid-template-rows:1fr 1fr; }
.jd-card { position:relative; display:block; border-radius:18px; overflow:hidden; background:#0c0c0c; border:1px solid rgba(255,255,255,.1); text-decoration:none!important; color:#fff; }
.jd-sq { aspect-ratio:1/1; }
.jd-main { min-height:100%; }
.jd-main video, .jd-slide img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.jd-main::after, .jd-slide::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.75)); pointer-events:none; }
.jd-slide { position:absolute; inset:0; opacity:0; transition:opacity .9s; pointer-events:none; }
.jd-slide.is-on { opacity:1; pointer-events:auto; }
.jd-slide img { filter:grayscale(.35) brightness(.85); transition:transform .6s, filter .4s; }
.jd-card:hover .jd-slide img { transform:scale(1.04); filter:none; }
.jd-tag { position:absolute; left:16px; bottom:14px; z-index:1; display:flex; align-items:center; gap:8px; font:600 14px/1.2 Roboto,Arial,sans-serif; color:#fff; }
.jd-tag i { width:8px; height:8px; border-radius:50%; background:#ff751f; box-shadow:0 0 10px #ff751f; }
.jd-col:last-child { grid-template-rows:auto 1fr; }
.jd-cta { display:grid; place-items:center; min-height:110px; }
.jd-tall { min-height:260px; }
.jd-pill-dark { background:rgba(255,255,255,.08); color:#fff!important; padding:10px 10px 10px 18px; border:1px solid rgba(255,255,255,.14); }
.jd-arrow { width:26px; height:26px; border-radius:50%; background:#fff; color:#000; display:grid; place-items:center; font-size:14px; }
.jd-cta:hover .jd-arrow { background:#ff751f; color:#fff; }
@media (max-width:900px) {
 html[data-theme=dialed] .jm-dialed-hero { padding:120px 16px 28px; }
 .jd-bento { grid-template-columns:1fr 1fr; }
 .jd-main { grid-column:1/-1; grid-row:1; aspect-ratio:16/10; }
 .jd-col:last-child { grid-template-rows:auto auto; }
}
@media (max-width:560px) { .jd-bento { grid-template-columns:1fr; } .jd-col { grid-template-rows:none; grid-template-columns:1fr 1fr; } .jd-col:last-child { grid-template-columns:1fr; } .jd-tall { min-height:200px; } }
@media (prefers-reduced-motion:reduce) { .jd-beams { animation:none; } html[data-theme=dialed] .jm-dialed-hero h2 span span { animation:none; opacity:1; filter:none; transform:none; } }

/* Theme menu (all themes). */
#hdr .jm-theme-menu { position:absolute; top:calc(100% - 14px); right:70px; z-index:80; min-width:170px; padding:6px; display:grid; gap:2px; background:#0d1626; border:1px solid rgba(255,255,255,.12); border-radius:12px; box-shadow:0 16px 40px rgba(0,0,0,.35); }
#hdr .jm-theme-menu[hidden] { display:none; }
#hdr .jm-theme-menu button { display:flex; align-items:center; gap:10px; width:100%; padding:9px 10px; border:0; border-radius:8px; background:transparent; color:#fff; font:500 14px/1.2 Roboto,Arial,sans-serif; text-align:left; cursor:pointer; }
#hdr .jm-theme-menu button:hover, #hdr .jm-theme-menu button[aria-checked=true] { background:rgba(255,255,255,.08); }
#hdr .jm-theme-menu button[aria-checked=true]::after { content:"\2713"; margin-left:auto; color:#ff751f; }
.jm-swatch { width:16px; height:16px; border-radius:50%; border:1px solid rgba(255,255,255,.3); }
.jm-swatch-navy { background:#001a3c; } .jm-swatch-dialed { background:#000; } .jm-swatch-bio { background:linear-gradient(135deg,#fff 50%,#111214 50%); }

/* Editorial theme: fonts. */
@font-face { font-family:"JM Geist"; src:url(/fonts/collection-geist-400-normal.ttf) format("truetype"); font-weight:400; font-display:swap; }
@font-face { font-family:"JM Geist"; src:url(/fonts/collection-geist-500-normal.ttf) format("truetype"); font-weight:500; font-display:swap; }
@font-face { font-family:"JM Geist"; src:url(/fonts/collection-geist-600-normal.ttf) format("truetype"); font-weight:600; font-display:swap; }
@font-face { font-family:"JM Serif"; src:url(/fonts/collection-instrument-serif-400-normal.ttf) format("truetype"); font-weight:400; font-display:swap; }
html[data-theme=bio] body, html[data-theme=bio] body :is(h1,h2,h3,h4,p,a,li,span,small,strong,button,summary,label,input,textarea,select) { font-family:"JM Geist",Arial,sans-serif!important; letter-spacing:-.005em; }
html[data-theme=bio] body :is(h1,h2) { font-weight:400!important; letter-spacing:-.02em!important; }

/* Editorial theme: header. Transparent over the homepage hero, solid black elsewhere and once scrolled. */
html[data-theme=bio] #hdr.jm-header, html[data-theme=bio] #hdr.jm-header.hn-scrolled { background:transparent!important; border-bottom:1px solid rgba(255,255,255,.1); -webkit-backdrop-filter:none; backdrop-filter:none; transition:background .3s, border-color .3s!important; }
html[data-theme=bio] #hdr.jm-header.bio-solid { background:rgba(10,10,12,.92)!important; -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); }
html[data-theme=bio] #hdr .jm-header-wordmark { font:400 22px/1 "JM Geist",Arial,sans-serif!important; letter-spacing:.42em!important; text-transform:uppercase; color:#fff!important; }
html[data-theme=bio] #hdr .jm-header-wordmark span { color:#fff!important; }
html[data-theme=bio] #hdr .jm-header-motto { display:none; }
html[data-theme=bio] #hdr .jm-navlinks a:not(.jm-button), html[data-theme=bio] #hdr .jm-menutrigger { font:500 14px "JM Geist",Arial,sans-serif!important; color:#fff!important; }
html[data-theme=bio] #hdr .jm-navlinks a:not(.jm-button):hover, html[data-theme=bio] #hdr .jm-menutrigger:hover { opacity:.7; }
html[data-theme=bio] #hdr .jm-button { background:#fff!important; color:#111!important; border:0!important; border-radius:8px!important; padding:9px 16px!important; font:500 14px "JM Geist",Arial,sans-serif!important; }
html[data-theme=bio] #hdr .jm-menu.jm-mega { background:rgba(17,18,20,.97); border-color:rgba(255,255,255,.1); }
html[data-theme=bio] #hdr .jm-mega-icon { box-shadow:none; border-radius:8px; }
html[data-theme=bio] #hdr .jm-language summary { background:transparent!important; border-color:rgba(255,255,255,.3)!important; }

/* Editorial theme: homepage swap. */
#bio-home { display:none; }
html[data-theme=bio] #home:not([hidden]) { display:block!important; height:0!important; min-height:0!important; padding:0!important; margin:0!important; border:0!important; overflow:hidden!important; }
html[data-theme=bio] #home:not([hidden]) > :not(#factory) { display:none!important; }
html[data-theme=bio] #home[hidden] { display:none!important; }
html[data-theme=bio] #bio-home { display:block; background:#fff; color:#27272c; }
#bio-home { --ink:#27272c; --muted:#6b6b73; --line:#ececee; --wrap:1240px; }
#bio-home .bio-wrap { width:min(var(--wrap),calc(100% - 64px)); margin:0 auto; }
#bio-home a { color:inherit; text-decoration:none; }
#bio-home .bio-eyebrow { margin:0 0 18px; font:600 10px/1 "JM Geist",Arial,sans-serif!important; letter-spacing:.24em!important; text-transform:uppercase; color:inherit; opacity:.9; }
#bio-home .bio-head { text-align:center; max-width:760px; margin:0 auto 56px; padding:0 24px; }
#bio-home .bio-head h2 { margin:0 0 18px; font-size:clamp(32px,3.4vw,46px); line-height:1.05; color:inherit; }
#bio-home .bio-head p { margin:0 auto 26px; max-width:620px; font-size:16px; line-height:1.5; color:var(--muted); }
#bio-home .bio-dark .bio-head p, #bio-home .bio-place .bio-head p, #bio-home .bio-end .bio-head p { color:rgba(255,255,255,.72); }
#bio-home .bio-btn { display:inline-flex; align-items:center; justify-content:center; height:40px; padding:0 18px; border-radius:8px; font:500 14px "JM Geist",Arial,sans-serif!important; border:0; cursor:pointer; transition:transform .2s, background .2s, opacity .2s; }
#bio-home .bio-btn:hover { transform:translateY(-1px); }
#bio-home .bio-btn-dark { background:#111214; color:#fff!important; }
#bio-home .bio-btn-light { background:#fff; color:#111214!important; }
#bio-home .bio-btn-soft { background:#f3f3f4; color:#27272c!important; }
#bio-home .bio-center { text-align:center; margin-top:44px; }
#bio-home .bio-section { padding:120px 0; }
#bio-home .bio-tight { padding:56px 0; }
#bio-home .bio-light { background:#fff; color:var(--ink); }
#bio-home .bio-soft { background:#f9f9f9; color:var(--ink); }
#bio-home .bio-dark { background:linear-gradient(180deg,#111214 0%,#1d2023 100%); color:#fff; overflow:hidden; }
#bio-home .bio-reveal { opacity:0; transform:translateY(24px); transition:opacity .9s cubic-bezier(.2,.7,.2,1) calc(var(--i,0) * .08s), transform .9s cubic-bezier(.2,.7,.2,1) calc(var(--i,0) * .08s); }
#bio-home .bio-reveal.in { opacity:1; transform:none; }

/* Hero */
#bio-home .bio-hero { position:relative; height:100vh; min-height:640px; overflow:hidden; background:#000; color:#fff; }
#bio-home .bio-hero-media { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transform:scale(1.04); animation:bio-zoom 14s ease-out forwards; }
@keyframes bio-zoom { to { transform:scale(1); } }
#bio-home .bio-hero-shade { position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,.1) 35%,rgba(0,0,0,.75) 100%); }
#bio-home .bio-hero-copy { position:absolute; left:0; right:0; bottom:72px; }
#bio-home .bio-hero h1 { margin:0 0 16px; max-width:760px; font-size:clamp(40px,4.6vw,64px); line-height:.95; color:#fff; }
#bio-home .bio-hero p { margin:0 0 26px; max-width:500px; font-size:16px; line-height:1.5; color:rgba(255,255,255,.82); }
#bio-home .bio-hero-stat { position:absolute; right:32px; bottom:72px; text-align:right; display:grid; gap:2px; color:#fff; }
#bio-home .bio-hero-stat strong { font:400 15px "JM Geist",Arial,sans-serif!important; }
#bio-home .bio-hero-stat span { font-size:12px; color:rgba(255,255,255,.7); }

/* Method */
#bio-home .bio-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
#bio-home .bio-step-media { position:relative; aspect-ratio:4/5; border-radius:8px; overflow:hidden; background:#eee; margin-bottom:22px; }
#bio-home .bio-step-media img { width:100%; height:100%; object-fit:cover; transition:transform 1.2s cubic-bezier(.2,.7,.2,1); }
#bio-home .bio-step:hover img { transform:scale(1.04); }
#bio-home .bio-chip { position:absolute; left:14px; top:14px; padding:6px 10px; border-radius:6px; background:rgba(255,255,255,.18); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); color:#fff; font-size:12px; }
#bio-home .bio-step h3 { margin:0 0 8px; font:500 15px/1.3 "JM Geist",Arial,sans-serif!important; color:var(--ink); }
#bio-home .bio-step p { margin:0; max-width:360px; font-size:14px; line-height:1.5; color:var(--muted); }

/* Quote */
#bio-home .bio-quote { text-align:center; border-top:1px solid var(--line); }
#bio-home .bio-quote blockquote { margin:0 auto 34px; max-width:900px; padding:0 24px; font:400 clamp(32px,3.6vw,50px)/1.12 "JM Serif",Georgia,serif!important; letter-spacing:-.01em; color:var(--ink); }
#bio-home .bio-quote-by { display:flex; flex-direction:column; align-items:center; gap:10px; margin:0; font-size:13px; color:var(--muted); }
#bio-home .bio-badge { width:32px; height:32px; display:inline-grid; place-items:center; border-radius:8px; background:#111214; color:#fff; font:600 11px "JM Geist",Arial,sans-serif!important; letter-spacing:.04em; flex:none; }

/* Stats */
#bio-home .bio-stats { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--line); border-radius:8px; }
#bio-home .bio-stat { min-height:290px; padding:26px 22px; display:flex; flex-direction:column; justify-content:space-between; }
#bio-home .bio-stat + .bio-stat { border-left:1px solid var(--line); }
#bio-home .bio-stat strong { font:400 64px/1 "JM Geist",Arial,sans-serif!important; letter-spacing:-.03em; color:var(--ink); }
#bio-home .bio-stat p { margin:0; max-width:300px; font-size:14px; line-height:1.5; color:var(--muted); }

/* Marquee */
#bio-home .bio-marquee-wrap { text-align:center; }
#bio-home .bio-marquee { overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent); mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent); }
#bio-home .bio-marquee-track { display:flex; gap:64px; width:max-content; animation:bio-marquee 40s linear infinite; }
#bio-home .bio-marquee-track span { font:500 22px "JM Geist",Arial,sans-serif!important; color:#3a3a40; white-space:nowrap; }
@keyframes bio-marquee { to { transform:translateX(-50%); } }

/* Pillars */
#bio-home .bio-pillars { display:flex; gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; padding:0 max(32px,calc((100vw - var(--wrap)) / 2)) 10px; scrollbar-width:none; }
#bio-home .bio-pillars::-webkit-scrollbar { display:none; }
#bio-home .bio-pillar { position:relative; flex:0 0 min(560px,82vw); min-height:460px; scroll-snap-align:center; padding:28px; border-radius:10px; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); display:flex; flex-direction:column; justify-content:flex-end; color:#fff; transition:background .3s; }
#bio-home .bio-pillar:hover { background:rgba(255,255,255,.07); }
#bio-home .bio-info { position:absolute; left:24px; top:24px; width:18px; height:18px; border:1px solid rgba(255,255,255,.5); border-radius:50%; display:grid; place-items:center; font:500 11px "JM Geist",Arial,sans-serif!important; color:rgba(255,255,255,.7); }
#bio-home .bio-orb { position:absolute; left:50%; top:58px; width:170px; height:170px; margin-left:-85px; border-radius:50%; overflow:hidden; box-shadow:0 0 80px color-mix(in srgb,var(--c) 45%,transparent); }
#bio-home .bio-orb img { width:100%; height:100%; object-fit:cover; transition:transform 1.2s; }
#bio-home .bio-pillar:hover .bio-orb img { transform:scale(1.08); }
#bio-home .bio-pillar h3 { margin:0 0 8px; font:500 15px "JM Geist",Arial,sans-serif!important; color:#fff; }
#bio-home .bio-pillar p { margin:0 0 20px; font-size:15px; line-height:1.45; color:rgba(255,255,255,.75); }
#bio-home .bio-pillar small { display:block; padding:16px 0 0 14px; border-top:1px solid rgba(255,255,255,.1); border-left:2px solid var(--c); font-size:12px; line-height:1.5; color:rgba(255,255,255,.6); }
#bio-home .bio-dots { display:flex; justify-content:center; gap:6px; margin-top:34px; }
#bio-home .bio-dots i { width:50px; height:2px; background:rgba(255,255,255,.2); transition:background .3s; }
#bio-home .bio-dots i.on { background:#fff; }

/* Solutions */
#bio-home .bio-solutions { position:relative; overflow:hidden; padding-top:230px; }
#bio-home .bio-floaters { position:absolute; inset:40px 0 auto; height:240px; pointer-events:none; }
#bio-home .bio-floaters img { position:absolute; width:74px; height:74px; object-fit:cover; border-radius:14px; box-shadow:0 18px 30px rgba(0,0,0,.12); animation:bio-float 7s ease-in-out infinite; animation-delay:calc(var(--i) * -.9s); }
#bio-home .bio-floaters img:nth-child(1) { left:8%; top:150px; transform:rotate(-24deg); }
#bio-home .bio-floaters img:nth-child(2) { left:20%; top:70px; transform:rotate(18deg); }
#bio-home .bio-floaters img:nth-child(3) { left:34%; top:20px; transform:rotate(-12deg); }
#bio-home .bio-floaters img:nth-child(4) { left:48%; top:0; transform:rotate(22deg); }
#bio-home .bio-floaters img:nth-child(5) { left:62%; top:20px; transform:rotate(-30deg); }
#bio-home .bio-floaters img:nth-child(6) { left:76%; top:70px; transform:rotate(14deg); }
#bio-home .bio-floaters img:nth-child(7) { left:88%; top:150px; transform:rotate(-18deg); }
@keyframes bio-float { 50% { translate:0 -10px; } }
#bio-home .bio-list { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; max-height:320px; overflow:hidden; position:relative; transition:max-height .8s ease; }
#bio-home .bio-list::after { content:""; position:absolute; left:0; right:0; bottom:0; height:120px; background:linear-gradient(180deg,rgba(255,255,255,0),#fff); pointer-events:none; transition:opacity .4s; }
#bio-home .bio-list.open { max-height:1400px; }
#bio-home .bio-list.open::after { opacity:0; }
#bio-home .bio-item { display:flex; align-items:center; gap:14px; padding:8px; border-radius:8px; background:#f9f9fa; border:1px solid #f0f0f2; transition:background .2s; }
#bio-home .bio-item:hover { background:#f1f1f3; }
#bio-home .bio-item img { width:48px; height:48px; border-radius:6px; object-fit:cover; flex:none; }
#bio-home .bio-item strong { display:block; font:500 14px/1.3 "JM Geist",Arial,sans-serif!important; color:var(--ink); }
#bio-home .bio-item small { display:block; font-size:13px; color:var(--muted); }

/* Virtual factory */
#bio-home .bio-place { position:relative; background:#111214; color:#fff; padding:0 0 120px; overflow:hidden; }
#bio-home .bio-place-media { width:100%; height:78vh; min-height:520px; object-fit:cover; display:block; }
#bio-home .bio-place-shade { position:absolute; left:0; right:0; top:0; height:78vh; min-height:520px; background:linear-gradient(180deg,rgba(17,18,20,.1) 30%,#111214 100%); }
#bio-home .bio-place-head { position:relative; margin-top:-230px; color:#fff; }
#bio-home .bio-places { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; max-width:820px; }
#bio-home .bio-place-card { position:relative; aspect-ratio:1/1; border-radius:8px; overflow:hidden; }
#bio-home .bio-place-card img { width:100%; height:100%; object-fit:cover; transition:transform 1.2s; }
#bio-home .bio-place-card:hover img { transform:scale(1.05); }
#bio-home .bio-place-card span { position:absolute; left:0; right:0; bottom:0; padding:60px 20px 20px; background:linear-gradient(180deg,transparent,rgba(0,0,0,.7)); }
#bio-home .bio-place-card strong { display:block; font:500 15px "JM Geist",Arial,sans-serif!important; color:#fff; }
#bio-home .bio-place-card small { font-size:13px; color:rgba(255,255,255,.75); }

/* Plans */
#bio-home .bio-plans { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; max-width:1040px; }
#bio-home .bio-plan { padding:32px 28px; border-radius:10px; display:flex; flex-direction:column; text-align:center; }
#bio-home .bio-plan-light { background:#f6f6f7; color:var(--ink); }
#bio-home .bio-plan-dark { background:#111214; color:#fff; }
#bio-home .bio-plan-icon { width:40px; height:40px; margin:0 auto 18px; border-radius:6px; background:linear-gradient(135deg,#bfe7ff,#7cc4ff 50%,#e6f6ff); }
#bio-home .bio-plan-dark .bio-plan-icon { background:radial-gradient(circle at 60% 40%,#ff751f,#6b2bd9 55%,#1a1030); }
#bio-home .bio-plan h3 { margin:0 0 8px; font:400 24px "JM Geist",Arial,sans-serif!important; color:inherit; }
#bio-home .bio-plan-sub { margin:0 0 22px; font-size:14px; color:var(--muted); }
#bio-home .bio-plan-dark .bio-plan-sub { color:rgba(255,255,255,.65); }
#bio-home .bio-plan-btn { display:block; padding:11px; border-radius:6px; background:#111214; color:#fff!important; font:500 13px "JM Geist",Arial,sans-serif!important; margin-bottom:28px; transition:opacity .2s; }
#bio-home .bio-plan-dark .bio-plan-btn { background:#ececee; color:#111214!important; }
#bio-home .bio-plan-btn:hover { opacity:.85; }
#bio-home .bio-plan-lead { margin:0 0 12px; text-align:left; font:600 13px "JM Geist",Arial,sans-serif!important; }
#bio-home .bio-plan ul { list-style:none; margin:0 0 28px; padding:0; text-align:left; display:grid; gap:11px; }
#bio-home .bio-plan li { display:flex; gap:10px; align-items:flex-start; font-size:13px; line-height:1.4; color:inherit; opacity:.85; }
#bio-home .bio-plan li svg { width:16px; height:16px; flex:none; color:#2f80ed; }
#bio-home .bio-plan-more { margin-top:auto; padding-top:18px; border-top:1px solid rgba(127,127,127,.2); text-align:left; font-size:13px; opacity:.8; }

/* Phases */
#bio-home .bio-grid { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--line); border-radius:8px; background:#fff; }
#bio-home .bio-cell { min-height:170px; padding:24px; display:flex; flex-direction:column; justify-content:space-between; transition:background .2s; }
#bio-home .bio-cell + .bio-cell { border-left:1px solid var(--line); }
#bio-home .bio-cell:hover { background:#f6f6f7; }
#bio-home .bio-cell span { font-size:12px; color:var(--muted); }
#bio-home .bio-cell strong { font:400 26px "JM Geist",Arial,sans-serif!important; color:var(--ink); }

/* Notes */
#bio-home .bio-notes { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; max-width:1040px; }
#bio-home .bio-note { padding:18px; border-radius:10px; background:#f6f6f7; display:flex; flex-direction:column; gap:10px; transition:background .2s; }
#bio-home .bio-note:hover { background:#efeff1; }
#bio-home .bio-note-top { display:flex; align-items:center; gap:10px; }
#bio-home .bio-note-top strong { display:block; font:500 13px "JM Geist",Arial,sans-serif!important; color:var(--ink); }
#bio-home .bio-note-top small { display:block; font-size:12px; color:var(--muted); }
#bio-home .bio-note-arrow { margin-left:auto; font-size:16px; color:var(--ink); }
#bio-home .bio-note b { font:500 15px/1.35 "JM Geist",Arial,sans-serif!important; color:var(--ink); }
#bio-home .bio-note p { margin:0; font-size:13px; line-height:1.5; color:var(--muted); }

/* FAQ */
#bio-home .bio-faq-sub { text-align:center; margin:-40px 0 48px; font-size:15px; color:var(--muted); }
#bio-home .bio-faq-sub a { color:#2f6fed; text-decoration:underline; text-underline-offset:3px; }
#bio-home .bio-faq { max-width:800px; margin:0 auto; padding:0 24px; }
#bio-home .bio-faq details { border-top:1px solid var(--line); }
#bio-home .bio-faq details:last-child { border-bottom:1px solid var(--line); }
#bio-home .bio-faq summary { list-style:none; display:flex; justify-content:space-between; gap:20px; padding:22px 0; cursor:pointer; font:500 15px "JM Geist",Arial,sans-serif!important; color:var(--ink); }
#bio-home .bio-faq summary::-webkit-details-marker { display:none; }
#bio-home .bio-faq summary i { position:relative; width:12px; height:12px; flex:none; margin-top:4px; }
#bio-home .bio-faq summary i::before, #bio-home .bio-faq summary i::after { content:""; position:absolute; left:0; right:0; top:5px; height:1.5px; background:var(--muted); transition:transform .3s; }
#bio-home .bio-faq summary i::after { transform:rotate(90deg); }
#bio-home .bio-faq details[open] summary i::after { transform:rotate(0); }
#bio-home .bio-faq details p { margin:0 0 22px; max-width:680px; font-size:14px; line-height:1.6; color:var(--muted); }

/* Closing */
#bio-home .bio-end { position:relative; height:86vh; min-height:560px; display:grid; place-items:center; overflow:hidden; color:#fff; }
#bio-home .bio-end-media { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
#bio-home .bio-end-shade { position:absolute; inset:0; background:rgba(0,0,0,.42); }
#bio-home .bio-end .bio-head { position:relative; margin:0 auto; }
#bio-home .bio-end h2 { font-size:clamp(38px,4.6vw,64px)!important; color:#fff; }

/* Editorial theme: light footer. */

@media (max-width:900px) {
 #bio-home .bio-wrap { width:calc(100% - 32px); }
 #bio-home .bio-section { padding:80px 0; }
 #bio-home .bio-steps, #bio-home .bio-stats, #bio-home .bio-plans, #bio-home .bio-notes, #bio-home .bio-places { grid-template-columns:1fr; }
 #bio-home .bio-stat { min-height:170px; }
 #bio-home .bio-stat + .bio-stat { border-left:0; border-top:1px solid var(--line); }
 #bio-home .bio-list { grid-template-columns:1fr; max-height:300px; }
 #bio-home .bio-list.open { max-height:2200px; }
 #bio-home .bio-grid { grid-template-columns:1fr 1fr; }
 #bio-home .bio-cell:nth-child(3) { border-left:0; }
 #bio-home .bio-cell:nth-child(n+3) { border-top:1px solid var(--line); }
 #bio-home .bio-hero-copy { bottom:48px; }
 #bio-home .bio-hero-stat { display:none; }
 #bio-home .bio-floaters img:nth-child(n+5) { display:none; }
 #bio-home .bio-floaters img { width:56px; height:56px; }
 html[data-theme=bio] #hdr .jm-header-wordmark { font-size:18px!important; letter-spacing:.3em!important; }
}
@media (prefers-reduced-motion:reduce) { #bio-home .bio-reveal { opacity:1; transform:none; transition:none; } #bio-home .bio-marquee-track, #bio-home .bio-floaters img, #bio-home .bio-hero-media { animation:none; } }
html[data-theme=bio] #hdr .jm-header-motto { display:none!important; }
html[data-theme=bio] #hdr .jm-header-wordmark span { font-weight:400!important; letter-spacing:inherit!important; }
html[data-theme=bio] #hdr.jm-header.bio-light-bar { background:rgba(255,255,255,.94)!important; border-bottom-color:#ececee; }
html[data-theme=bio] #hdr.bio-light-bar :is(.jm-header-wordmark,.jm-header-wordmark span,.jm-navlinks a:not(.jm-button),.jm-menutrigger,.jm-theme-toggle,.jm-language summary) { color:#111214!important; }
html[data-theme=bio] #hdr.bio-light-bar .jm-button { background:#111214!important; color:#fff!important; }
html[data-theme=bio] #hdr.bio-light-bar :is(.jm-theme-toggle,.jm-language summary) { border-color:rgba(0,0,0,.2)!important; }
html[data-theme=bio] #hdr.bio-light-bar .jm-mobile-toggle span { background:#111214!important; }
@media (max-width:900px) { #bio-home .bio-solutions { padding-top:170px; } #bio-home .bio-floaters { inset:24px 0 auto; height:130px; transform:scale(.62); transform-origin:top center; } }

/* 3D icons in the "From Idea to Production" steps. */
.hn-step-grid article img.jm-icon3d { display:block; width:84px; height:84px; object-fit:contain; margin:-6px 0 14px -8px; filter:drop-shadow(0 14px 18px rgba(0,0,0,.35)); transition:transform .5s cubic-bezier(.2,.7,.2,1); }
.hn-step-grid article:hover img.jm-icon3d { transform:translateY(-4px) rotate(-4deg) scale(1.04); }

html[data-theme=bio] #hdr .jm-header-wordmark span, html[data-theme=bio] #hdr.bio-light-bar .jm-header-wordmark span { color:#ff751f!important; }
#bio-home video.bio-hero-media { animation:none; transform:none; }
html[data-theme=bio] #hdr.jm-header.bio-light-bar .jm-navigation .jm-header-wordmark span { color:#ff751f!important; }

/* Factory video banner (every theme). */
.jm-factory-banner { position:relative; min-height:78vh; display:grid; place-items:end center; overflow:hidden; background:#000; color:#fff; isolation:isolate; }
.jm-factory-banner video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.jm-factory-banner-shade { position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,.15) 40%,rgba(0,0,0,.7) 100%); }
.jm-factory-banner-copy { max-width:760px; padding:0 24px 96px; text-align:center; align-self:center; }
.jm-factory-banner .jm-factory-banner-eyebrow, #bio-home .jm-factory-banner .bio-eyebrow { margin:0 0 18px; font:600 11px/1 Roboto,Arial,sans-serif; letter-spacing:.24em; text-transform:uppercase; color:rgba(255,255,255,.85)!important; }
.jm-factory-banner h2 { margin:0 0 18px; font-size:clamp(32px,4vw,56px)!important; line-height:1.05!important; color:#fff!important; }
.jm-factory-banner p { margin:0 auto; max-width:620px; font-size:17px; line-height:1.5; color:rgba(255,255,255,.82)!important; }
html:not([data-theme]) .jm-factory-banner { background:#001a3c; }
html:not([data-theme]) .jm-factory-banner-shade { background:linear-gradient(180deg,rgba(0,26,60,.6) 0%,rgba(0,26,60,.15) 40%,rgba(0,26,60,.85) 100%); }
#bio-home .bio-branches { grid-template-columns:repeat(4,1fr); }
#bio-home .bio-branches .bio-step-media { aspect-ratio:3/4; }
#bio-home .bio-branches a { color:inherit; }
@media (max-width:900px) { #bio-home .bio-branches { grid-template-columns:1fr 1fr; } .jm-factory-banner { min-height:64vh; } .jm-factory-banner-copy { padding-bottom:64px; } }
/* Page heroes: text sits straight on the image, no panel behind it. */
html body #view .pm-hero .pm-title, html body #view .pm-hero .pm-title * { background:transparent!important; box-shadow:none!important; }
html body #view .pm-hero .pm-title :is(h1,p) { text-shadow:0 2px 18px rgba(0,0,0,.55); }
html body #view .expertise-page .pm-hero .pm-title, html body #view .pm-page .pm-hero .pm-title { background:transparent!important; box-shadow:none!important; }

/* Only the video banner shows the factory; the interactive tour keeps running from the hidden section and opens full screen. */
html body #home #factory.jm-factory-teaser { height:0!important; min-height:0!important; padding:0!important; margin:0!important; border:0!important; overflow:hidden!important; }
.jm-factory-banner-btn { display:inline-flex; align-items:center; gap:10px; margin-top:28px; padding:13px 22px; border:0; border-radius:999px; background:#ff751f; color:#10171c; font:600 15px/1 Roboto,Arial,sans-serif; cursor:pointer; transition:transform .2s, box-shadow .2s, background .2s; }
.jm-factory-banner-btn:hover { transform:translateY(-1px); box-shadow:0 10px 30px rgba(255,117,31,.35); }
.jm-factory-banner-btn:focus-visible { outline:3px solid #fff; outline-offset:4px; }
html[data-theme=bio] .jm-factory-banner-btn { border-radius:8px; background:#fff; color:#111214; font-family:"JM Geist",Arial,sans-serif!important; font-weight:500; }
html[data-theme=bio] .jm-factory-banner-btn:hover { box-shadow:0 10px 30px rgba(255,255,255,.2); }


/* Editorial theme: light footer (restored). */
html[data-theme=bio] footer.jm-footer, html[data-theme=bio] footer.jm-footer * { background-color:transparent!important; border-color:#ececee!important; }
html[data-theme=bio] footer.jm-footer { background:#fff!important; color:#27272c!important; }
html[data-theme=bio] footer.jm-footer :is(a,p,span,li,small,h3,h4,strong,address,summary,button) { color:#27272c!important; }
html[data-theme=bio] footer.jm-footer a:hover { color:#6b6b73!important; }
html[data-theme=bio] footer.jm-footer .jm-brand, html[data-theme=bio] footer.jm-footer .jm-brand * { color:#111214!important; letter-spacing:.3em; text-transform:uppercase; font-weight:400!important; }
html[data-theme=bio] body footer.jm-footer.jm-footer-dark, html[data-theme=bio] body footer.jm-footer.jm-footer-dark * { background-color:transparent!important; border-color:#ececee!important; }
html[data-theme=bio] body footer.jm-footer.jm-footer-dark, html[data-theme=bio] body footer#footer.jm-footer.jm-footer-dark { background:#fff!important; }
html[data-theme=bio] body footer.jm-footer.jm-footer-dark :is(a,p,span,li,small,h2,h3,h4,strong,address,summary,button,b) { color:#27272c!important; }
html[data-theme=bio] body footer.jm-footer.jm-footer-dark :is(p,small,address,li) { color:#6b6b73!important; }
html[data-theme=bio] body footer#footer.jm-footer.jm-footer-dark .jm-brand span { color:#ff751f!important; }

/* Max 2.0 Test Station section (every theme). */
.jm-max20 { padding:110px 0; background:var(--hn-navy,#001a3c); color:#fff; }
.jm-max20-inner { width:min(1280px,calc(100% - 48px)); margin:0 auto; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:64px; align-items:center; }
.jm-max20-media { position:relative; border-radius:18px; overflow:hidden; background:linear-gradient(160deg,#ffffff 0%,#eef2f6 100%); aspect-ratio:16/11; box-shadow:0 30px 70px rgba(0,0,0,.35); }
.jm-max20-media video { width:100%; height:100%; object-fit:cover; display:block; }
.jm-max20-badge { position:absolute; left:18px; top:18px; padding:7px 12px; border-radius:999px; background:#ff751f; color:#10171c; font:700 13px/1 Roboto,Arial,sans-serif; letter-spacing:.02em; }
.jm-max20-eyebrow { margin:0 0 14px; font:600 12px/1 Roboto,Arial,sans-serif; letter-spacing:.2em; text-transform:uppercase; color:#ff751f!important; }
.jm-max20 h2 { margin:0 0 18px; font-size:clamp(32px,3.6vw,52px)!important; line-height:1.05!important; color:#fff!important; }
.jm-max20-text { margin:0 0 28px; font-size:17px; line-height:1.6; color:rgba(255,255,255,.82)!important; max-width:560px; }
.jm-max20-specs { margin:0 0 30px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.12); border-radius:12px; overflow:hidden; }
.jm-max20-specs div { padding:14px 16px; background:var(--hn-navy,#001a3c); }
.jm-max20-specs dt { margin:0 0 5px; font:600 11px/1.2 Roboto,Arial,sans-serif; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.55); }
.jm-max20-specs dd { margin:0; font-size:14px; line-height:1.45; color:#fff; }
.jm-max20-cta { display:inline-flex; align-items:center; gap:10px; padding:13px 22px; border-radius:999px; background:#ff751f; color:#10171c!important; font:600 15px/1 Roboto,Arial,sans-serif; text-decoration:none!important; transition:transform .2s, box-shadow .2s; }
.jm-max20-cta:hover { transform:translateY(-1px); box-shadow:0 10px 30px rgba(255,117,31,.35); }
html[data-theme=dialed] .jm-max20, html[data-theme=dialed] .jm-max20-specs div { background:#000; }
/* Featured news card. */
.hn-news-grid .jm-max20-news { grid-column:1/-1; display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:36px; align-items:center; padding-bottom:28px; border-bottom:1px solid rgba(255,255,255,.12); }
.jm-max20-news .hn-news-photo { display:block; border-radius:14px; overflow:hidden; aspect-ratio:16/8.5; }
.jm-max20-news .hn-news-photo img { width:100%; height:100%; object-fit:cover; transition:transform .6s; }
.jm-max20-news:hover .hn-news-photo img { transform:scale(1.03); }
.jm-max20-tag { display:inline-block; margin-bottom:12px; padding:5px 10px; border-radius:999px; background:#ff751f; color:#10171c; font:700 11px/1 Roboto,Arial,sans-serif; letter-spacing:.08em; text-transform:uppercase; }
.jm-max20-news h3 { font-size:clamp(22px,2vw,30px)!important; line-height:1.15!important; margin:0 0 12px!important; }
/* Editorial theme variants. */
#bio-home .jm-max20 { background:#fff; color:#27272c; padding:120px 0; }
#bio-home .jm-max20 h2 { color:#27272c!important; font-weight:400!important; }
#bio-home .jm-max20-text { color:#6b6b73!important; }
#bio-home .jm-max20-eyebrow { color:#27272c!important; font-family:"JM Geist",Arial,sans-serif!important; font-size:10px; letter-spacing:.24em; }
#bio-home .jm-max20-media { box-shadow:none; border-radius:10px; background:#f6f6f7; }
#bio-home .jm-max20-specs { background:#ececee; border-color:#ececee; border-radius:8px; }
#bio-home .jm-max20-specs div { background:#fff; }
#bio-home .jm-max20-specs dt { color:#6b6b73; }
#bio-home .jm-max20-specs dd { color:#27272c; }
#bio-home .jm-max20-cta { border-radius:8px; background:#111214; color:#fff!important; font-family:"JM Geist",Arial,sans-serif!important; font-weight:500; }
#bio-home .bio-note-feature { grid-column:1/-1; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); grid-template-rows:auto auto 1fr; column-gap:24px; }
#bio-home .bio-note-feature img { grid-row:1/4; width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:8px; }
@media (max-width:900px) {
 .jm-max20 { padding:72px 0; }
 .jm-max20-inner { grid-template-columns:1fr; gap:32px; width:calc(100% - 32px); }
 .jm-max20-specs { grid-template-columns:1fr; }
 .hn-news-grid .jm-max20-news { grid-template-columns:1fr; gap:18px; }
 #bio-home .bio-note-feature { grid-template-columns:1fr; }
 #bio-home .bio-note-feature img { grid-row:auto; }
}
.jm-max20-media video { transform:scale(1.18); transform-origin:50% 55%; }

/* Factory tour: loading state while the 3D scene starts, and stacking for browsers without the Popover API. */
#factory-stage.is-active:not(.is-ready)::after { content:attr(data-loading-text); position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); padding:16px 22px 16px 54px; border-radius:999px; background:rgba(8,11,14,.86); color:#eef3f5; font:500 15px/1 Roboto,Arial,sans-serif; z-index:13; pointer-events:none; background-image:radial-gradient(circle at 30px 50%,#ff751f 0 6px,transparent 7px); animation:jm-tour-pulse 1.2s ease-in-out infinite; }
@keyframes jm-tour-pulse { 50% { opacity:.65; } }
body.factory-active #home.hn-home { z-index:2147483646; }
/* Editorial: keep the footer hidden until the homepage is built, and stop the phases grid overflowing on phones. */
html[data-theme=bio] body:has(main#home:not([hidden])):not(:has(#bio-home)) #footer { visibility:hidden; }
@media (max-width:900px) { #bio-home .bio-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } #bio-home .bio-cell { padding:18px; min-height:130px; } #bio-home .bio-cell strong { font-size:20px!important; overflow-wrap:anywhere; } }
@media (prefers-reduced-motion:reduce) { #factory-stage.is-active:not(.is-ready)::after { animation:none; } }
#footer .jm-company-ids { margin:6px 0 0; font-size:13px; line-height:1.5; opacity:.75; }
/* Dark theme: expertise cards as Apple-style glass. The photo fills the card; the copy floats on a frosted, see-through panel with a thin light edge. */
html[data-theme=dialed] #home .hn-expertise-card { position:relative; display:flex; flex-direction:column; justify-content:flex-end; min-height:440px; border-radius:28px; overflow:hidden; isolation:isolate; background:rgba(255,255,255,.04)!important; border:1px solid rgba(255,255,255,.16)!important; box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 24px 60px rgba(0,0,0,.55)!important; }
html[data-theme=dialed] #home .hn-expertise-card .hn-card-photo { position:absolute; inset:0; z-index:-1; height:auto; aspect-ratio:auto; margin:0; border-radius:0; }
html[data-theme=dialed] #home .hn-expertise-card .hn-card-photo img { width:100%; height:100%; object-fit:cover; }
html[data-theme=dialed] #home .hn-expertise-card .hn-card-copy { position:relative; flex:none!important; height:auto!important; min-height:0!important; margin:10px; padding:20px 58px 20px 22px; border-radius:20px; background:rgba(28,28,30,.42)!important; -webkit-backdrop-filter:blur(22px) saturate(170%); backdrop-filter:blur(22px) saturate(170%); border:1px solid rgba(255,255,255,.22); box-shadow:inset 0 1px 0 rgba(255,255,255,.18); }
html[data-theme=dialed] #home .hn-expertise-card .hn-card-copy h3 { color:#fff!important; margin:0 0 6px; }
html[data-theme=dialed] #home .hn-expertise-card .hn-card-copy p { color:rgba(255,255,255,.82)!important; margin:0; }
html[data-theme=dialed] #home .hn-expertise-card .hn-card-copy > span { position:absolute; right:14px; bottom:16px; display:grid; place-items:center; width:32px; height:32px; margin:0; border-radius:50%; color:#fff; font-size:16px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.25); line-height:1; }
@media(hover:hover) and (prefers-reduced-motion:no-preference) { html[data-theme=dialed] #home .hn-expertise-card.hn-visible:hover { border-color:rgba(255,255,255,.34)!important; } }
@media(max-width:760px) { html[data-theme=dialed] #home .hn-expertise-card { min-height:400px; border-radius:24px; } html[data-theme=dialed] #home .hn-expertise-card .hn-card-copy { margin:8px; border-radius:18px; } }
/* Dark theme: the same glass look for every other card on the site. */
html[data-theme=dialed] { --jm-glass-bg:linear-gradient(160deg,rgba(255,255,255,.085),rgba(255,255,255,.025)); --jm-glass-edge:rgba(255,255,255,.16); --jm-glass-shine:inset 0 1px 0 rgba(255,255,255,.14); }
html[data-theme=dialed] :is(.jm-index-card,.jm-contact-card,.jm-quiet-panel,#view .expertise-page .pm-result,#home .hn-news-grid .hn-news-card:not(.jm-max20-news)) { background:var(--jm-glass-bg)!important; border:1px solid var(--jm-glass-edge)!important; border-radius:24px!important; box-shadow:var(--jm-glass-shine),0 20px 50px rgba(0,0,0,.45)!important; -webkit-backdrop-filter:blur(20px) saturate(160%); backdrop-filter:blur(20px) saturate(160%); }
html[data-theme=dialed] #home .hn-news-grid .hn-news-card:not(.jm-max20-news) { padding:10px 10px 20px; }
html[data-theme=dialed] #home .hn-news-grid .hn-news-card:not(.jm-max20-news) > :not(.hn-news-photo) { margin-left:10px; margin-right:10px; }
html[data-theme=dialed] #home .hn-news-grid .hn-news-card .hn-news-photo { border-radius:16px; overflow:hidden; }
/* Service cards on the expertise pages: photo fills the card, copy on a frosted panel (same as the homepage cards). */
html[data-theme=dialed] .ex-service-card { position:relative; justify-content:flex-end; min-height:420px; border-radius:28px!important; overflow:hidden; isolation:isolate; background:rgba(255,255,255,.04)!important; border:1px solid rgba(255,255,255,.16)!important; box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 24px 60px rgba(0,0,0,.55)!important; }
html[data-theme=dialed] .ex-service-card > img { position:absolute; inset:0; z-index:-1; width:100%!important; height:100%!important; max-height:none!important; aspect-ratio:auto!important; object-fit:cover; border-radius:0!important; }
html[data-theme=dialed] .ex-service-card > div { flex:none!important; margin:10px; padding:20px 22px!important; border-radius:20px; background:rgba(28,28,30,.42)!important; -webkit-backdrop-filter:blur(22px) saturate(170%); backdrop-filter:blur(22px) saturate(170%); border:1px solid rgba(255,255,255,.22); box-shadow:inset 0 1px 0 rgba(255,255,255,.18); }
html[data-theme=dialed] .ex-service-card > div :is(h3,p) { color:#fff!important; } html[data-theme=dialed] .ex-service-card > div p { color:rgba(255,255,255,.82)!important; }
/* "Who we help": the role name floats on a glass pill over the photo. */
html[data-theme=dialed] .jm-role-toggle { position:relative; }
html[data-theme=dialed] .jm-role-image { border-radius:24px!important; overflow:hidden; box-shadow:0 0 0 1px rgba(255,255,255,.16),0 24px 60px rgba(0,0,0,.5); }
html[data-theme=dialed] .jm-role-title { position:absolute!important; left:10px; right:10px; bottom:10px; margin:0!important; padding:14px 18px!important; border-radius:18px; color:#fff!important; background:rgba(28,28,30,.42); -webkit-backdrop-filter:blur(22px) saturate(170%); backdrop-filter:blur(22px) saturate(170%); border:1px solid rgba(255,255,255,.22); box-shadow:inset 0 1px 0 rgba(255,255,255,.18); }
html[data-theme=dialed] .jm-role-title::before { display:none!important; }
@media(max-width:760px) { html[data-theme=dialed] .ex-service-card { min-height:380px; border-radius:24px!important; } html[data-theme=dialed] .ex-service-card > div { margin:8px; border-radius:18px; } }
html[data-theme=dialed] .jm-index-card :is(.jm-index-visual,.jm-index-card-copy) { background:transparent!important; }
html[data-theme=dialed] .jm-index-card .jm-index-visual { border-bottom:1px solid rgba(255,255,255,.08); }
html[data-theme=dialed] .jm-index-card .jm-index-visual svg { filter:drop-shadow(0 0 14px rgba(255,255,255,.12)); }
/* Dark theme: frosted-glass buttons. Neutral glass for grey buttons, orange-tinted glass for the orange calls to action. */
html[data-theme=dialed] :is(#hdr .jm-navlinks .jm-button,.jm-theme-toggle,#jm-language > summary,.totop,.jm-booking-next) { background:rgba(255,255,255,.1)!important; border:1px solid rgba(255,255,255,.24)!important; color:#fff!important; box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 8px 24px rgba(0,0,0,.35)!important; -webkit-backdrop-filter:blur(16px) saturate(180%); backdrop-filter:blur(16px) saturate(180%); }
html[data-theme=dialed] :is(#hdr .jm-navlinks .jm-button,.jm-theme-toggle,#jm-language > summary,.totop,.jm-booking-next):hover { background:rgba(255,255,255,.18)!important; border-color:rgba(255,255,255,.36)!important; color:#fff!important; }
html[data-theme=dialed] :is(.jm-max20-cta,.jm-factory-banner-btn,.factory-enter,.hn-contact-actions .jm-button:first-child,.hn-contact .jm-button:first-child) { background:linear-gradient(180deg,rgba(255,130,50,.62),rgba(255,117,31,.38))!important; border:1px solid rgba(255,170,115,.6)!important; color:#fff!important; box-shadow:inset 0 1px 0 rgba(255,220,190,.45),0 10px 30px rgba(255,117,31,.18)!important; -webkit-backdrop-filter:blur(16px) saturate(180%); backdrop-filter:blur(16px) saturate(180%); }
html[data-theme=dialed] :is(.jm-max20-cta,.jm-factory-banner-btn,.factory-enter,.hn-contact-actions .jm-button:first-child,.hn-contact .jm-button:first-child):hover { background:linear-gradient(180deg,rgba(255,130,50,.78),rgba(255,117,31,.52))!important; }
/* Dark theme: "From Idea to Production" is replaced by a cinematic footage band. Other themes keep the original section. */
.jm-reel { display:none; }
html[data-theme=dialed] #home .hn-approach { display:none; }
html[data-theme=dialed] .jm-reel { display:flex; position:relative; isolation:isolate; overflow:hidden; align-items:center; min-height:min(82vh,820px); margin:0; background:#000; }
.jm-reel-media { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; filter:brightness(.5) contrast(1.12) saturate(.8); transform:scale(1.12); transition:transform 1.8s cubic-bezier(.2,.7,.2,1); }
.jm-reel.is-on .jm-reel-media { transform:scale(1.02); }
.jm-reel::before { content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; background:linear-gradient(180deg,#000 0%,rgba(0,0,0,0) 22%,rgba(0,0,0,0) 70%,#000 100%),linear-gradient(90deg,rgba(0,0,0,.78) 0%,rgba(0,0,0,.35) 45%,rgba(0,0,0,0) 75%); }
.jm-reel-copy { width:min(1280px,calc(100% - 160px)); margin:0 auto; opacity:0; transform:translateY(24px); transition:opacity 1s ease .3s,transform 1.1s cubic-bezier(.2,.7,.2,1) .3s; }
.jm-reel.is-on .jm-reel-copy { opacity:1; transform:none; }
.jm-reel-eyebrow { display:inline-block; padding:7px 14px; border-radius:999px; font:600 12px/1 Roboto,Arial,sans-serif; letter-spacing:.14em; text-transform:uppercase; color:#fff; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.24); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); }
.jm-reel-copy h2 { margin:22px 0 18px; max-width:820px; font:700 clamp(44px,6.4vw,96px)/1.0 Roboto,Arial,sans-serif; letter-spacing:-.04em; color:transparent; background:linear-gradient(180deg,#fff 35%,rgba(255,255,255,.6)); -webkit-background-clip:text; background-clip:text; }
.jm-reel-copy p { margin:0; max-width:520px; font-size:19px; line-height:1.55; color:rgba(255,255,255,.75); }
@media(max-width:760px) {
 html[data-theme=dialed] .jm-reel { min-height:78svh; align-items:flex-end; padding-bottom:64px; }
 .jm-reel-media { object-position:60% 50%; }
 .jm-reel::before { background:linear-gradient(180deg,#000 0%,rgba(0,0,0,0) 25%,rgba(0,0,0,.35) 55%,#000 100%); }
 .jm-reel-copy { width:calc(100% - 44px); } .jm-reel-copy p { font-size:16px; }
}
@media(prefers-reduced-motion:reduce) { .jm-reel-media,.jm-reel-copy { transition:none; transform:none; opacity:1; } }
html[data-theme=dialed] #home .hn-expertise { background:#000!important; }
/* ---- Premium polish for the Dark theme (2026-10-27) ---- */
/* 3. Every page heading in the hero style: Roboto Bold, tight tracking, white fading to grey. */
html[data-theme=dialed] :is(h1,h2):not(.jm-dialed-hero h2):not(.jm-reel-copy h2):not(.jm-film-copy h2):not(.jm-motion-panel h2):not(#jm-none):not(#jm-none2) { font-family:Roboto,Arial,sans-serif!important; font-weight:700!important; letter-spacing:-.03em!important; color:transparent!important; background:linear-gradient(180deg,#fff 35%,rgba(255,255,255,.62))!important; -webkit-background-clip:text!important; background-clip:text!important; text-shadow:none!important; }
html[data-theme=dialed] h1:not(.jm-dialed-hero h1) { filter:drop-shadow(0 2px 14px rgba(0,0,0,.55)); }
html[data-theme=dialed] :is(h1,h2) .hn-max { color:#ff751f!important; -webkit-text-fill-color:#ff751f; }
html[data-theme=dialed] :is(h1,h2) :is(a,span:not(.hn-max)) { color:inherit!important; }
/* 1. Cookie banner: dark glass with pill buttons. */
html[data-theme=dialed] .jm-consent { background:rgba(22,22,24,.78)!important; border:1px solid rgba(255,255,255,.16)!important; border-radius:22px!important; box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 24px 60px rgba(0,0,0,.6)!important; -webkit-backdrop-filter:blur(24px) saturate(170%); backdrop-filter:blur(24px) saturate(170%); }
html[data-theme=dialed] .jm-consent p { font-size:14.5px; line-height:1.5; color:rgba(255,255,255,.78); } html[data-theme=dialed] .jm-consent a { color:#fff; }
html[data-theme=dialed] .jm-consent button { height:40px; padding:0 18px!important; border-radius:999px!important; font-size:14px!important; font-weight:600; color:#fff!important; background:rgba(255,255,255,.1)!important; border:1px solid rgba(255,255,255,.24)!important; box-shadow:inset 0 1px 0 rgba(255,255,255,.25); }
html[data-theme=dialed] .jm-consent button:last-child { background:linear-gradient(180deg,rgba(255,130,50,.7),rgba(255,117,31,.45))!important; border-color:rgba(255,170,115,.6)!important; }
/* 2. Max 2.0 render: a soft studio card instead of a glaring white box. */
html[data-theme=dialed] .jm-max20-media { border-radius:28px!important; overflow:hidden; background:linear-gradient(160deg,#e9ebee,#c9cdd3)!important; box-shadow:0 0 0 1px rgba(255,255,255,.18),0 30px 80px rgba(0,0,0,.6),0 0 120px rgba(255,117,31,.08)!important; }
html[data-theme=dialed] .jm-max20-media :is(video,img) { filter:brightness(.9) contrast(1.04); }
/* 4. Outline buttons become glass pills. */
html[data-theme=dialed] main .jm-button { border-radius:999px!important; color:#fff!important; background:rgba(255,255,255,.1)!important; border:1px solid rgba(255,255,255,.24)!important; box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 8px 24px rgba(0,0,0,.35)!important; -webkit-backdrop-filter:blur(16px) saturate(180%); backdrop-filter:blur(16px) saturate(180%); }
html[data-theme=dialed] main .jm-button:hover { background:rgba(255,255,255,.18)!important; border-color:rgba(255,255,255,.36)!important; }
/* 5. Closing panel: factory footage still behind glass. */
html[data-theme=dialed] .jm-motion-panel { border-radius:32px!important; background:#000!important; border:1px solid rgba(255,255,255,.14); box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 30px 80px rgba(0,0,0,.6); }
html[data-theme=dialed] .jm-motion-panel::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(0,0,0,.88),rgba(0,0,0,.45) 60%,rgba(0,0,0,.2)),url(/images/jm-photo-38852436.jpg) center/cover; filter:saturate(.75); transform:scale(1.06); animation:jm-kenburns 24s ease-in-out infinite alternate; }
html[data-theme=dialed] .jm-motion-panel .jm-gradient { display:none; }
html[data-theme=dialed] .jm-motion-panel .jm-reveal-line { background:linear-gradient(90deg,#ff751f,rgba(255,117,31,0))!important; }
@keyframes jm-kenburns { to { transform:scale(1.14) translateX(-2%); } }
@media(prefers-reduced-motion:reduce) { html[data-theme=dialed] .jm-motion-panel::before { animation:none; } }
/* 6. Phones: the back-to-top button is dropped so only the chat bubble floats over content. */
@media(max-width:760px) { html[data-theme=dialed] .totop { display:none!important; } }
/* Dark theme footer: fewer links, one typeface, compact on phones. */
html[data-theme=dialed] .jm-footer, html[data-theme=dialed] .jm-footer :is(a,p,h3,address,button,summary,li) { font-family:Roboto,Arial,sans-serif!important; }
html[data-theme=dialed] .jm-footer { background:#000!important; border-top:1px solid rgba(255,255,255,.08); }
html[data-theme=dialed] .jm-footer :is(.jm-footer-contact,.jm-footer-group a[href="/portfolio/"],.jm-footer-group a[href="/resources/"],.jm-footer-group a[href="/use-cases/"],.jm-footer-legal a[href="/contact/"]) { display:none!important; }
html[data-theme=dialed] .jm-footer-main { display:grid!important; grid-template-columns:1.4fr 1fr 1fr; gap:48px; padding-top:64px!important; padding-bottom:48px!important; }
html[data-theme=dialed] .jm-footer-identity h3 { font-size:14px!important; font-weight:600!important; color:rgba(255,255,255,.85)!important; margin:18px 0 4px!important; }
html[data-theme=dialed] .jm-footer-identity :is(address,p) { font-size:14px!important; line-height:1.55!important; font-style:normal; color:rgba(255,255,255,.55)!important; margin:0 0 4px!important; }
html[data-theme=dialed] .jm-footer-identity .jm-brand-motto { color:rgba(255,255,255,.75)!important; margin-top:10px!important; }
html[data-theme=dialed] .jm-footer-email { display:inline-block; margin-top:12px; font-size:15px!important; color:#fff!important; }
html[data-theme=dialed] .jm-footer-group h3 { font-size:13px!important; font-weight:600!important; letter-spacing:.08em!important; text-transform:uppercase; color:rgba(255,255,255,.45)!important; margin:0 0 16px!important; background:none!important; -webkit-text-fill-color:currentColor; }
html[data-theme=dialed] .jm-footer-group a { display:block; padding:0!important; margin:0 0 12px!important; font-size:15px!important; line-height:1.4!important; color:rgba(255,255,255,.85)!important; }
html[data-theme=dialed] .jm-footer-group a::before { display:none!important; }
html[data-theme=dialed] .jm-footer-group a:hover { color:#ff8a3d!important; }
html[data-theme=dialed] .jm-footer-legal { border-top:1px solid rgba(255,255,255,.08)!important; background:transparent!important; }
html[data-theme=dialed] .jm-footer-legal-inner { display:flex!important; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 24px; padding:20px 0!important; }
html[data-theme=dialed] .jm-footer-legal :is(p,a,button) { font-size:13px!important; color:rgba(255,255,255,.5)!important; text-decoration:none!important; margin:0!important; }
html[data-theme=dialed] .jm-footer-legal nav { display:flex!important; flex-wrap:wrap; gap:8px 20px; }
html[data-theme=dialed] .jm-footer-legal :is(a,button):hover { color:#fff!important; }
html[data-theme=dialed] .jm-footer-credits summary { font-size:12px!important; color:rgba(255,255,255,.35)!important; }
@media(max-width:760px) {
 html[data-theme=dialed] .jm-footer-main { grid-template-columns:1fr 1fr; gap:32px 20px; padding-top:44px!important; padding-bottom:32px!important; }
 html[data-theme=dialed] .jm-footer-identity { grid-column:1 / -1; }
 html[data-theme=dialed] .jm-footer-legal-inner { flex-direction:column; align-items:flex-start; }
 html[data-theme=dialed] .jm-footer-legal nav { gap:8px 16px; }
}
@media(max-width:760px) { html[data-theme=dialed] .jm-footer .jm-brand { font-size:30px!important; } html[data-theme=dialed] .jm-footer-identity h3 { margin-top:12px!important; } }
/* Dark theme: virtual factory band fades into black top and bottom, like the .jm-reel band */
html[data-theme=dialed] .jm-factory-banner video { filter:brightness(.62) contrast(1.1) saturate(.85); }
html[data-theme=dialed] .jm-factory-banner-shade { background:linear-gradient(180deg,#000 0%,rgba(0,0,0,0) 24%,rgba(0,0,0,.28) 50%,rgba(0,0,0,0) 74%,#000 100%),radial-gradient(ellipse 70% 55% at 50% 50%,rgba(0,0,0,.42),rgba(0,0,0,0) 75%); }
html[data-theme=dialed] #home .jm-audiences, html[data-theme=dialed] #home .hn-news { background:#000; }

/* Company film on the homepage: poster frame with a play button; plays with sound and controls on click */
.jm-film { background:#000; color:#fff; }
.jm-film-stage { position:relative; height:clamp(400px,36vw,600px); overflow:hidden; background:#000; isolation:isolate; }
.jm-film-video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; background:#000; z-index:0; }
.jm-film-shade { position:absolute; inset:0; z-index:1; pointer-events:none; background:linear-gradient(90deg,rgba(0,0,0,.78) 0%,rgba(0,0,0,.45) 42%,rgba(0,0,0,0) 72%),linear-gradient(0deg,rgba(0,0,0,.85) 0%,rgba(0,0,0,0) 46%),linear-gradient(180deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,0) 18%); transition:opacity .4s ease; }
.jm-film-copy { position:absolute; z-index:2; left:max(24px,calc((100% - 1180px)/2)); right:24px; bottom:clamp(32px,4.5vw,64px); max-width:560px; transition:opacity .4s ease; }
.jm-film-copy h2 { margin:0 0 14px; font-family:"Segoe UI",Arial,sans-serif; font-size:clamp(30px,3vw,52px); line-height:1.07; letter-spacing:-.045em; font-weight:700; font-style:normal; color:#fff; }
.jm-film-copy h2 span { display:inline-block; }
.jm-film-accent { color:#ff751f; }
.jm-film-copy p { margin:0 0 20px; max-width:440px; font-family:"Segoe UI",Arial,sans-serif; font-size:clamp(15px,1.1vw,18px); line-height:1.5; letter-spacing:-.015em; font-weight:400; color:#b7b7bb; text-wrap:pretty; }
.jm-film-play { display:inline-flex; gap:12px; align-items:center; padding:4px 4px 4px 14px; min-height:34px; border:0; border-radius:99px; cursor:pointer; background:#fff; color:#141414; font:600 13px/1 "Segoe UI",Arial,sans-serif; }
.jm-film-play span { display:grid; place-items:center; width:26px; height:26px; border-radius:50%; background:#fff0e7; transition:transform .2s; }
.jm-film-play svg { width:11px; height:11px; fill:#ff751f; margin-left:2px; }
.jm-film-play:hover span { transform:translateX(3px); }
.jm-film-play:focus-visible, .jm-film-close:focus-visible { outline:2px solid #ff751f; outline-offset:5px; }
.jm-film-close { position:absolute; z-index:3; top:18px; right:18px; display:none; place-items:center; width:44px; height:44px; border-radius:50%; border:1px solid rgba(255,255,255,.3); background:rgba(0,0,0,.55); cursor:pointer; }
.jm-film-close svg { width:20px; height:20px; stroke:#fff; stroke-width:2.2; fill:none; stroke-linecap:round; }
.jm-film.is-playing .jm-film-video { object-fit:contain; }
.jm-film.is-playing .jm-film-shade, .jm-film.is-playing .jm-film-copy { opacity:0; pointer-events:none; }
.jm-film.is-playing .jm-film-close { display:grid; }
@media (max-width:760px) {
  .jm-film-stage { height:min(66svh,560px); min-height:420px; }
  .jm-film-shade { background:linear-gradient(0deg,rgba(0,0,0,.92) 0%,rgba(0,0,0,.6) 45%,rgba(0,0,0,.1) 75%),linear-gradient(180deg,rgba(0,0,0,.5) 0%,rgba(0,0,0,0) 20%); }
  .jm-film-copy { left:20px; right:20px; bottom:28px; }
  .jm-film-copy h2 { font-size:clamp(28px,8vw,36px); letter-spacing:-.04em; }
  .jm-film-copy p { font-size:15px; margin-bottom:16px; }
  .jm-film-play { font-size:13px; min-height:34px; padding-left:14px; }
  .jm-film-play span { width:26px; height:26px; }
  .jm-film.is-playing .jm-film-stage { height:auto; min-height:0; aspect-ratio:16/9; }
}
@media (prefers-reduced-motion:reduce) { .jm-film-play span, .jm-film-shade, .jm-film-copy { transition:none; } }

/* Home expertise cards: same type as the hero (Segoe UI, tight tracking, soft grey body). */
html[data-theme=dialed] #home .hn-expertise-card .hn-card-copy h3 { font-family:"Segoe UI",Arial,sans-serif!important; font-weight:700!important; letter-spacing:-.04em!important; line-height:1.07!important; font-style:normal; }
html[data-theme=dialed] #home .hn-expertise-card .hn-card-copy p { font-family:"Segoe UI",Arial,sans-serif!important; font-weight:400; letter-spacing:-.015em; line-height:1.5; color:#b7b7bb!important; }
html[data-theme=dialed] #home .hn-expertise-card .hn-card-copy h3 { margin-right:-38px!important; }
/* Home expertise cards: darken the lower photo so the glass text stays readable on bright photos. */
html[data-theme=dialed] #home .hn-expertise-card .hn-card-photo::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,0) 35%,rgba(0,0,0,.5) 100%); pointer-events:none; }

/* Hero typography on the home CTA panel and the footer (Segoe UI, tight tracking, soft grey body, white pill button). */
html[data-theme=dialed] .jm-motion-panel h2 { font-family:"Segoe UI",Arial,sans-serif!important; font-weight:700!important; font-style:normal; font-size:clamp(34px,4vw,62px)!important; line-height:1.07!important; letter-spacing:-.045em!important; color:#fff!important; background:none!important; -webkit-text-fill-color:#fff!important; margin-bottom:22px!important; }
html[data-theme=dialed] .jm-motion-panel p { font-family:"Segoe UI",Arial,sans-serif!important; font-weight:400; font-size:clamp(16px,1.3vw,21px)!important; line-height:1.5!important; letter-spacing:-.015em; color:#b7b7bb!important; max-width:620px; margin-bottom:30px!important; }
html[data-theme=dialed] .jm-motion-panel .jm-button { display:inline-flex!important; gap:26px; align-items:center; padding:9px 10px 9px 25px!important; min-height:54px; border:0!important; border-radius:99px!important; background:#fff!important; color:#141414!important; font:600 15px/1.2 "Segoe UI",Arial,sans-serif!important; letter-spacing:normal!important; box-shadow:none!important; -webkit-backdrop-filter:none!important; backdrop-filter:none!important; }
html[data-theme=dialed] .jm-motion-panel .jm-button span { display:grid; place-items:center; width:37px; height:37px; border-radius:50%; background:#fff0e7; color:#ff751f; font-size:25px; font-weight:400; line-height:1; transition:transform .2s; }
html[data-theme=dialed] .jm-motion-panel .jm-button:hover span { transform:translateX(3px); }
@media(max-width:760px) { html[data-theme=dialed] .jm-motion-panel .jm-button { font-size:14px!important; min-height:49px; padding-left:22px!important; } html[data-theme=dialed] .jm-motion-panel .jm-button span { width:32px; height:32px; } }
html[data-theme=dialed] .jm-footer, html[data-theme=dialed] .jm-footer :is(a,p,h3,address,button,summary,li) { font-family:"Segoe UI",Arial,sans-serif!important; letter-spacing:-.015em; }
html[data-theme=dialed] .jm-footer .jm-brand, html[data-theme=dialed] .jm-footer .jm-brand span { font-family:"Segoe UI",Arial,sans-serif!important; font-weight:900!important; font-style:normal; letter-spacing:-.02em!important; }
html[data-theme=dialed] .jm-footer-identity h3 { font-size:15px!important; font-weight:600!important; color:#fff!important; }
html[data-theme=dialed] .jm-footer-identity :is(address,p) { color:#b7b7bb!important; }
html[data-theme=dialed] .jm-footer-identity .jm-brand-motto { color:#fff!important; font-weight:600; }
html[data-theme=dialed] .jm-footer-email { font-weight:600; }
html[data-theme=dialed] .jm-footer-group h3 { letter-spacing:.08em!important; }
html[data-theme=dialed] .jm-footer-group a { color:#b7b7bb!important; }
html[data-theme=dialed] .jm-footer-group a:hover { color:#fff!important; }
/* One vertical line on wide screens: header logo, hero copy (dark-hero/hero.css .copy) and the first home card all start at max(5.5vw, centred 1440px). */
@media(min-width:761px) { :where(html[data-theme=dialed]) .jm-container { width:calc(100% - 11vw); max-width:1440px; } }
html[data-theme=dialed] #home .hn-expertise-grid { gap:32px!important; }
