/* Shared page geometry. Keep secondary hero content on its own row. */
:root{--content-width:1360px;--page-gutter:clamp(20px,4vw,64px)}
.shell{width:min(calc(100% - 2 * var(--page-gutter)),var(--content-width));max-width:var(--content-width);margin-inline:auto}
.homehero,.servicehero{display:block;min-height:0;padding:144px 0 72px;overflow:clip}
.homehero>.homegrid,.servicehero>.servicehero-inner{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(32px,5vw,80px);align-items:center;width:min(calc(100% - 2 * var(--page-gutter)),var(--content-width));margin-inline:auto}
.homehero .hero-title{font-size:clamp(2.75rem,4.8vw,5.5rem);line-height:1.08;letter-spacing:-.055em}
.servicehero .hero-title{font-size:clamp(2.3rem,3.5vw,3.75rem);line-height:1.15;letter-spacing:-.045em;max-width:25ch}
.hero-title{margin:20px 0 24px;overflow-wrap:normal;word-break:normal}
.hero-object{width:100%;max-width:460px;height:440px;justify-self:center;margin:0;min-width:0}
.hero-object .ring{width:100%;max-width:440px}
.hero-object .ring.r2{width:80%;max-width:350px}
.hero-object .sphere{width:clamp(200px,19vw,290px)}
.hero-object .mini1{right:0}.hero-object .mini2{left:0}.hero-object .mini3{right:0}
.homehero>.landing-quicklinks{width:min(calc(100% - 2 * var(--page-gutter)),var(--content-width));margin:48px auto 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.servicehero>.tech-position{width:min(calc(100% - 2 * var(--page-gutter)),var(--content-width));max-width:var(--content-width);margin:64px auto 0;padding:48px 0 0;border-top:1px solid #ffffff30}
.tech-position h2{font-size:clamp(1.85rem,3vw,3rem);line-height:1.2;max-width:34ch;letter-spacing:-.035em}
.tech-position p{max-width:80ch;font-size:1.05rem}
.homehero .scrollnote,.servicehero .scrollnote{display:none}
.contacthero .hero-title{font-size:clamp(2.6rem,4.5vw,4.75rem);line-height:1.12}
@media(max-width:1100px){.homehero>.homegrid,.servicehero>.servicehero-inner{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:32px}.hero-object{height:340px}.hero-object .sphere{width:220px}.hero-object .mini{font-size:.6rem;padding:10px}.homehero .hero-title{font-size:clamp(2.75rem,5vw,4rem)}}
@media(max-width:800px){.homehero,.servicehero{padding:116px 0 56px}.homehero>.homegrid,.servicehero>.servicehero-inner{grid-template-columns:minmax(0,1fr);gap:32px}.homehero .hero-title{font-size:clamp(2.6rem,7vw,4rem);max-width:18ch}.servicehero .hero-title{font-size:clamp(2.15rem,5.7vw,3.25rem);max-width:27ch}.hero-object{max-width:360px;height:310px;margin-inline:auto}.hero-object .sphere{width:210px}.homehero>.landing-quicklinks{grid-template-columns:minmax(0,1fr);margin-top:32px}.servicehero>.tech-position{margin-top:40px;padding-top:32px}.tech-position h2{font-size:clamp(1.8rem,4.5vw,2.5rem)}.herodesc{font-size:1.05rem}}
@media(max-width:380px){.hero-object{height:265px}.hero-object .sphere{width:180px}.hero-object .mini{font-size:.55rem;padding:9px}.hero-title{letter-spacing:-.045em}}
.servicehero.dark .mini{color:#173254;background:#fff;border-color:#d8e4f4}

/* The contact hint belongs to the text column, not a separate grid cell. */
.contactgrid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:clamp(32px,5vw,80px)}
.contactgrid>.contactform{width:100%;max-width:none;margin:0;grid-column:2;grid-row:1}
.contactgrid>.contact-copy{grid-column:1;grid-row:1}
.contactgrid .contact-route-hint:empty{display:none}
.contact-route-hint{margin-top:24px}
.booking-cta{margin-top:32px}
.booking-cta p{font-size:.88rem;color:var(--muted);max-width:38ch;margin:12px 0 0}
.tech-journey .introgrid{grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);align-items:start;gap:clamp(32px,5vw,80px)}
.journey-heading h2{font-size:clamp(2rem,3.2vw,3.4rem);line-height:1.16;margin:24px 0 0;max-width:15ch}
.tech-journey .tech-audience{padding:32px;border-radius:22px;min-width:0}
.tech-journey .tech-audience h2{font-size:clamp(1.8rem,2.4vw,2.6rem);margin:20px 0 28px}
.tech-journey .audience-grid{grid-template-columns:minmax(0,1fr);gap:12px;margin-bottom:24px}
.tech-journey .audience-grid article{padding:22px}
.tech-journey .audience-grid h3{font-size:1.25rem;line-height:1.25;margin:12px 0}
.tech-journey .audience-grid p{font-size:.95rem;margin-bottom:0}
.booking-dialog{width:min(960px,calc(100% - 32px));max-height:calc(100dvh - 32px);padding:0;border:1px solid var(--line);border-radius:20px;color:var(--ink);background:#fff;box-shadow:0 24px 100px #08172b40}
.booking-dialog::backdrop{background:#08172bb3;backdrop-filter:blur(4px)}
.booking-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 24px;border-bottom:1px solid var(--line)}
.booking-dialog-header h2{font-size:1.5rem;line-height:1.3;margin:0;letter-spacing:-.03em}
.booking-close{flex:none;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:#f7f9fc;color:var(--ink);font-size:1.5rem;cursor:pointer}
.booking-body{padding:24px}
.booking-body iframe{display:block;width:100%;height:min(660px,65dvh);border:0}
.booking-body a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}
.booking-body p{font-size:.95rem;line-height:1.7}
body.booking-open{overflow:hidden}
.form-status{font-size:.9rem;line-height:1.6;margin:16px 0 0}
.form-status:empty{display:none}
.form-status[data-state=error]{color:#a42727}
.form-status[data-state=success]{color:#12603f}
.contactform button:disabled{opacity:.65;cursor:wait;transform:none}
@media(min-width:1600px){.tech-journey .audience-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.tech-journey .audience-grid article{padding:20px}.tech-journey .audience-grid h3{font-size:1.15rem}}
@media(max-width:900px){.contactgrid{grid-template-columns:minmax(0,1fr)}.contactgrid>.contactform{grid-column:1;grid-row:2}.tech-journey .introgrid{grid-template-columns:minmax(0,1fr)}.journey-heading h2{max-width:24ch}.tech-journey .tech-audience{padding:28px}.booking-dialog-header{padding:16px}.booking-body{padding:16px}}
@media(max-width:520px){.tech-journey .tech-audience{padding:22px}.tech-journey .audience-grid article{padding:20px}.booking-cta .btn{width:100%}}

/* Compact shared footer: related details stay together. */
footer{padding:24px 0 18px}
.foot{grid-template-columns:minmax(0,1fr) auto;gap:16px 32px;align-items:start}
.footbrand{display:inline-flex;line-height:1;margin-bottom:8px}
.footbrand img{display:block;width:64px;height:43px;object-fit:contain;object-position:left center}
.footer-identity{min-width:0;max-width:960px}
.footer-identity p{font-size:.82rem;line-height:1.6;margin:0}
.footer-identity p>span{display:block}
.footer-name{color:#fff;font-weight:600;margin-bottom:2px}
.footlinks{gap:4px;font-size:.82rem;padding-top:4px}
.footlinks a{padding-block:3px;line-height:1.5}
.footbottom{justify-content:flex-start;align-items:center;gap:8px 24px;margin-top:0;padding-top:14px;font-size:.75rem;line-height:1.6}
.footer-copyright{display:block}
.footer-legal{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px 18px;margin-left:auto}
.footer-legal a{text-underline-offset:3px}
.legal-copy{max-width:1000px}
.legal-copy h1{font-size:clamp(2.5rem,5vw,4.5rem);line-height:1.1}
.legal-copy section{margin-top:32px}
.legal-copy h2{font-size:clamp(1.35rem,2.4vw,1.8rem);line-height:1.3;letter-spacing:-.025em;margin-bottom:12px}
.legal-copy p{max-width:80ch;line-height:1.8}
.legal-provider-links a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}
@media(max-width:700px){.foot{grid-template-columns:minmax(0,1fr);gap:14px}.footlinks{flex-direction:row;align-items:center;flex-wrap:wrap;gap:4px 18px;padding-top:0}.footbottom{grid-column:1;gap:8px;margin-top:0}.footer-legal{width:100%}.footer-identity p{font-size:.8rem}}

/* Align the visible SVG artwork with the shared left content edge. */
.logo-img{object-position:left center}

.aboutportrait{width:100%;max-width:480px;justify-self:end;margin:0;border-radius:22px;overflow:hidden;background:#e0e5e7;box-shadow:0 16px 48px #0c1c3410}
.aboutportrait img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover}
@media(max-width:900px){.aboutportrait{max-width:440px;justify-self:start}}
@media(max-width:520px){.aboutportrait{max-width:100%;border-radius:18px}}
