/* IT Cave – ručně napsaný responzivní design, bez frameworků a JavaScriptu. */
:root {
  --bg: #101416;
  --bg-deep: #0c1011;
  --panel: #181d1f;
  --panel-2: #1d2325;
  --paper: #f3f3ef;
  --ink: #191e20;
  --white: #f8f8f4;
  --muted: #9da8a9;
  --orange: #ff4b1a;
  --orange-light: #ff754a;
  --line: rgba(231, 236, 232, 0.12);
  --radius: 20px;
  --container: 1216px;
}
*,*::before,*::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 84px; }
body { margin: 0; background: var(--bg); color: var(--white); font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif; -webkit-font-smoothing: antialiased; line-height: 1.55; }
img,svg { max-width: 100%; }
img { display:block; }
a { color:inherit; text-decoration:none; }
a:focus-visible,summary:focus-visible { outline: 3px solid var(--orange-light); outline-offset: 5px; }
::selection { background: var(--orange); color: #fff; }
.container { width: min(var(--container), calc(100% - 80px)); margin-inline: auto; }
.svg-sprite { position:absolute; width:0; height:0; overflow:hidden; }
.icon { display:inline-block; width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round; flex:0 0 auto; }
.skip-link { position: fixed; left: 16px; top: -70px; z-index: 200; background: var(--orange); padding: 12px 18px; font-weight: 750; border-radius: 8px; }
.skip-link:focus { top: 12px; }
.site-header { position: sticky; top:0; z-index: 50; background: rgba(14,18,19,.93); border-bottom: 1px solid var(--line); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); }
.header-inner { min-height: 88px; display: flex; align-items:center; gap: 48px; }
.brand { width: 180px; flex:0 0 180px; }
.brand img { width:100%; height:auto; }
.desktop-nav { display:flex; gap: 34px; align-items:center; margin-left:auto; }
.desktop-nav a, .footer-nav a { color: #cad1ce; font-size: 14px; font-weight:550; transition: color .2s ease; }
.desktop-nav a:hover, .footer-nav a:hover { color: var(--orange-light); }
.header-cta { display:inline-flex; align-items:center; gap: 10px; background: var(--orange); color:#141415; border-radius: 9px; padding: 13px 17px; font-size:13px; font-weight:800; white-space:nowrap; transition: background .2s ease, transform .2s ease; }
.header-cta:hover { background:#ff7853; transform:translateY(-2px); }
.header-cta .icon { width:16px; height:16px; }
.mobile-menu { display:none; }

.hero { position:relative; min-height: 686px; overflow:hidden; isolation:isolate; background: radial-gradient(ellipse at 75% 50%,#172025 0%,#101517 46%,#0b0f10 100%); }
.hero-grid { position:absolute; z-index:-1; inset:0; opacity:.22; background-image:linear-gradient(rgba(188,205,205,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(188,205,205,.13) 1px,transparent 1px); background-size: 76px 76px; mask-image:linear-gradient(to right,transparent 0%,#000 45%,#000 100%); }
.hero::before { content:""; position:absolute; z-index:-1; pointer-events:none; inset:0; background:radial-gradient(circle at 83% 50%,rgba(255,75,26,.09),transparent 37%); }
.hero-inner { padding-top: 93px; padding-bottom: 74px; display:grid; grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr); gap: 46px; align-items:center; }
.hero-copy { position:relative; z-index:3; }
.eyebrow,.section-kicker,.contact-kicker { font-size:11px; font-weight:800; letter-spacing:.18em; }
.eyebrow { color:#dde5df; display:flex; align-items:center; gap:13px; margin-bottom:30px; white-space:nowrap; }
.eyebrow-line { display:block; width:26px; height:2px; background:var(--orange); }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { line-height:1.12; letter-spacing:-.052em; }
h1 { font-size: clamp(45px, 5.45vw, 81px); font-weight:780; line-height:1.09; margin:0 0 28px; }
h1 > span { color:var(--orange); }
.orange-dot { color:var(--white); }
.hero-description { max-width:550px; color:#b5bfbd; font-size:17px; line-height:1.85; margin-bottom:32px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:13px; align-items:center; }
.btn { display:inline-flex; align-items:center; justify-content:center; min-height:54px; gap:22px; border-radius:10px; padding:14px 21px; font-size:14px; font-weight:750; transition:transform .2s ease, background .2s ease, border-color .2s ease; }
.btn:hover { transform:translateY(-3px); }
.btn-primary { color:#151719; background:var(--orange); }
.btn-primary:hover { background:#ff7853; }
.btn-primary .icon { width:18px; }
.btn-outline { border:1px solid #465054; color:var(--white); }
.btn-outline:hover { background:#202729; border-color:#8d9b9e; }
.btn-outline span { font-size:20px; font-weight:350; line-height:1; }
.hero-note { display:flex; gap:10px; align-items:center; color:#a6b1b1; font-size:12px; margin-top:33px; }
.status-dot,.tiny-live { width:7px; height:7px; border-radius:50%; background:#85b99b; box-shadow:0 0 0 4px rgba(133,185,155,.1); flex:none; }
.hero-art { position:relative; height:508px; display:flex; align-items:center; justify-content:center; min-width:0; }
.art-orbit { position:absolute; border-radius:50%; border:1px solid rgba(234,109,75,.15); pointer-events:none; }
.art-orbit-one { width:590px; height:590px; right:-135px; top:-25px; }
.art-orbit-two { width:440px; height:440px; right:-66px; top:48px; }
.showcase { position:relative; width:min(100%,508px); height:396px; margin-left:12px; border:1px solid #41494a; border-radius:18px; background:linear-gradient(142deg,#252b2e 0%,#111719 72%); box-shadow:0 35px 90px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.05); overflow:hidden; transform:perspective(1000px) rotateY(-5deg) rotateX(2deg); }
.showcase::after { content:""; position:absolute; inset:0; background:linear-gradient(124deg,rgba(255,255,255,.05),transparent 38%); pointer-events:none; }
.showcase-bar { height:49px; border-bottom:1px solid #333b3d; display:flex; align-items:center; justify-content:space-between; padding:0 21px; font-size:10px; letter-spacing:.16em; color:#a1adae; }
.bar-dots { display:flex; gap:5px; }
.bar-dots i { width:6px; height:6px; border:1px solid #657273; border-radius:50%; }
.bar-dots i:first-child { background:var(--orange); border-color:var(--orange); }
.bar-symbol { font-size:19px; color:var(--orange); }
.showcase-heading { position:relative; padding:26px 28px 0; z-index:2; }
.tiny-heading { display:block; color:var(--orange-light); font-size:10px; letter-spacing:.19em; font-weight:700; margin-bottom:9px; }
.showcase-heading strong { font-size:31px; font-weight:770; letter-spacing:-.055em; line-height:1.12; }
.showcase-heading em { font-style:normal; color:#a4b2b1; }
.showcase-map { position:absolute; top:97px; right:-1px; bottom:31px; width:60%; }
.map-hub { position:absolute; right:36%; top:37%; display:flex; align-items:center; justify-content:center; width:107px; height:107px; border-radius:22px; border:1px solid rgba(255,75,26,.6); background:rgba(255,75,26,.11); box-shadow:0 0 0 12px rgba(255,75,26,.04),0 0 55px rgba(255,75,26,.07); z-index:2; transform:rotate(-11deg); }
.map-hub img { width:70px; height:auto; transform:rotate(11deg); }
.map-line { position:absolute; z-index:0; height:1px; background:linear-gradient(90deg,rgba(255,75,26,.6),rgba(142,155,156,.24)); transform-origin:0 0; }
.line-a { top:57%; right:65%; width:95px; transform:rotate(-142deg); }
.line-b { top:57%; left:53%; width:120px; transform:rotate(-47deg); }
.line-c { top:61%; left:58%; width:100px; transform:rotate(40deg); }
.map-node { position:absolute; display:flex; align-items:center; gap:8px; z-index:2; background:#242c2e; border:1px solid #485154; color:#cdd6d4; border-radius:9px; padding:9px 11px; font-size:9px; font-weight:750; white-space:nowrap; letter-spacing:.05em; }
.node-icon { color:var(--orange); font-size:14px; }
.node-a { top:21%; right:71%; }
.node-b { top:17%; right:1%; }
.node-c { bottom:18%; right:0; }
.showcase-bottom { position:absolute; bottom:0; inset-inline:0; display:flex; align-items:center; justify-content:space-between; height:40px; padding:0 20px; border-top:1px solid #343d3e; color:#7f9190; font-size:9px; letter-spacing:.11em; }
.showcase-bottom span:first-child { display:flex; align-items:center; gap:10px; }
.tiny-live { width:6px; height:6px; box-shadow:none; }
.floating-label { position:absolute; z-index:3; bottom:31px; left:-18px; display:flex; gap:9px; align-items:center; padding:14px 17px; border-radius:11px; border:1px solid #363f41; background:#1f2628; box-shadow:0 12px 33px rgba(0,0,0,.4); letter-spacing:.11em; font-size:10px; font-weight:700; }
.floating-label .icon { width:16px; height:16px; color:var(--orange); }
.hero-footer { height:70px; display:flex; align-items:center; gap:25px; border-top:1px solid var(--line); color:#788889; font-size:10px; font-weight:700; letter-spacing:.14em; }
.hero-footer-line { flex:1; height:1px; background:rgba(255,255,255,.08); }
.hero-footer a:hover { color:var(--orange-light); }
.hero-footer a span { color:var(--orange); font-size:16px; padding-left:10px; }

.section-pad { padding-block:115px 125px; }
.services { background:var(--paper); color:var(--ink); }
.section-topline { display:flex; justify-content:space-between; gap:16px; padding-bottom:20px; border-bottom:1px solid rgba(29,35,35,.16); color:#697477; font-size:10px; font-weight:750; letter-spacing:.17em; }
.section-intro { display:grid; grid-template-columns:1.2fr .64fr; gap:65px; align-items:end; margin:63px 0 42px; }
.section-kicker { margin-bottom:22px; color:var(--orange); }
h2 { font-size:clamp(36px,4.15vw,57px); line-height:1.14; font-weight:780; margin-bottom:0; }
h2 span { color:#7b8586; }
.section-intro > p { color:#637073; font-size:16px; line-height:1.9; padding-bottom:2px; margin:0; }
.service-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; }
.service-card { display:flex; flex-direction:column; background:#fff; border:1px solid #e2e4e0; border-radius:var(--radius); padding:32px 30px 27px; min-height:348px; transition:transform .25s ease, box-shadow .25s ease,border-color .25s ease; }
.service-card:hover { transform:translateY(-5px); box-shadow:0 18px 45px rgba(20,27,26,.07); border-color:#ffb9a5; }
.card-header { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:33px; }
.service-icon { display:flex; align-items:center; justify-content:center; width:54px; height:54px; border-radius:13px; color:var(--orange); background:#fff0eb; }
.service-icon .icon { width:26px; height:26px; stroke-width:1.6; }
.card-number { color:#a3acaa; font-size:10px; font-weight:800; letter-spacing:.1em; }
.service-card h3 { font-size:26px; line-height:1.2; margin-bottom:15px; font-weight:770; }
.service-card > p { color:#697477; font-size:14px; line-height:1.82; margin-bottom:25px; }
.card-tags { display:flex; flex-wrap:wrap; gap:6px; margin-top:auto; }
.card-tags span { display:inline-flex; border:1px solid #e2e6e2; color:#6a7777; border-radius:100px; padding:6px 10px; font-size:10px; font-weight:650; }

.approach { background:#131819; }
.approach-grid { display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1fr); align-items:center; gap:clamp(55px,8vw,130px); }
.approach-visual { position:relative; height:540px; background:radial-gradient(ellipse at 51% 51%,#282e30,#191e20 48%,#14191b 75%); border:1px solid #333e3f; border-radius:23px; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.approach-visual::before { content:""; position:absolute; inset:0; opacity:.3; background:linear-gradient(90deg,transparent 49.85%,#606b6a 50%,transparent 50.15%),linear-gradient(transparent 49.85%,#606b6a 50%,transparent 50.15%); }
.outline-frame { position:absolute; border:1px solid rgba(255,75,26,.32); transform:rotate(45deg); }
.frame-outer { width:350px; height:350px; border-radius:48px; }
.frame-inner { width:260px; height:260px; border-radius:29px; border-color:rgba(255,75,26,.17); }
.approach-visual-center { display:flex; position:relative; align-items:center; justify-content:center; flex-direction:column; width:260px; height:260px; background:#1b2122; border:1px solid #384143; border-radius:23px; box-shadow:0 25px 85px rgba(0,0,0,.3); }
.approach-visual-center img { width:170px; height:auto; }
.visual-caption { position:absolute; bottom:19px; font-size:11px; letter-spacing:.15em; color:#f7f7f1; font-weight:800; }
.visual-caption span { color:#889494; font-weight:600; }
.edge-label { position:absolute; color:#8c9b9d; font-size:10px; font-weight:700; letter-spacing:.16em; }
.edge-label-top { top:30px; left:32px; }
.edge-label-bottom { bottom:31px; right:32px; }
.approach-copy .section-kicker { margin-bottom:25px; }
.approach-copy h2 { max-width:650px; }
.approach-copy h2 span { color:var(--orange); }
.approach-lead { max-width:560px; color:#a5b0af; font-size:16px; line-height:1.9; margin:28px 0 33px; }
.benefit { display:flex; align-items:flex-start; gap:17px; padding:17px 0; border-top:1px solid #303839; }
.benefit-icon { display:flex; flex:0 0 30px; align-items:center; justify-content:center; width:30px; height:30px; border-radius:50%; background:rgba(255,75,26,.13); color:var(--orange); }
.benefit-icon .icon { width:16px; height:16px; stroke-width:2.5; }
.benefit h3 { font-size:16px; letter-spacing:-.025em; margin:0 0 5px; }
.benefit p { color:#9faeac; font-size:13px; margin:0; line-height:1.65; }
.text-link { display:inline-flex; align-items:center; gap:18px; margin-top:20px; color:var(--orange-light); font-size:14px; font-weight:700; }
.text-link .icon { transition:transform .2s; }
.text-link:hover .icon { transform:translateX(5px); }

.process { background:#1b2022; }
.process .section-topline { border-bottom-color:#344042; color:#839193; }
.process-heading { max-width:740px; margin-top:58px; }
.process-heading h2 span { color:var(--orange); }
.process-heading > p:last-child { color:#9da9a8; font-size:16px; line-height:1.8; max-width:570px; margin:24px 0 0; }
.step-grid { list-style:none; padding:0; margin:65px 0 0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; counter-reset:steps; }
.step-grid li { position:relative; border-top:1px solid #64706e; padding-top:24px; }
.step-grid li::before { position:absolute; top:-4px; left:0; content:""; width:7px; height:7px; background:var(--orange); border-radius:50%; }
.step-number { display:block; font-size:57px; line-height:1; font-weight:760; letter-spacing:-.065em; color:#eef1ea; margin-bottom:31px; }
.step-dot { color:var(--orange); }
.step-grid h3 { font-size:19px; letter-spacing:-.03em; margin-bottom:14px; max-width:240px; }
.step-grid p { max-width:260px; color:#9eabaa; font-size:14px; line-height:1.75; }

.contact { padding:107px 0; background:var(--bg); }
.contact-panel { position:relative; min-height:465px; display:flex; align-items:center; justify-content:space-between; gap:50px; padding:65px 76px; background:var(--orange); border-radius:25px; overflow:hidden; }
.contact-panel::after { content:""; position:absolute; z-index:0; right:-170px; top:-190px; width:800px; height:800px; border:1px solid rgba(32,23,17,.22); border-radius:50%; box-shadow:0 0 0 80px rgba(22,20,15,.045),0 0 0 162px rgba(22,20,15,.04); pointer-events:none; }
.contact-content { position:relative; z-index:2; max-width:670px; }
.contact-kicker { color:#451f16; margin-bottom:19px; display:flex; align-items:center; gap:9px; }
.contact-dot { width:7px; height:7px; border-radius:50%; background:#27211e; }
.contact h2 { color:#171b1b; font-size:clamp(49px,5vw,72px); line-height:1.02; }
.contact h2 span { color:#fff8f1; }
.contact-content > p:not(.contact-kicker) { color:#432722; max-width:485px; font-size:16px; line-height:1.8; margin:25px 0 27px; }
.contact-links { display:flex; align-items:center; flex-wrap:wrap; gap:25px; }
.btn-dark { background:#161b1d; color:#fff; }
.btn-dark:hover { background:#2d3739; }
.contact-email { display:inline-flex; align-items:center; gap:9px; font-weight:750; font-size:14px; color:#26201c; text-decoration:underline; text-underline-offset:5px; }
.contact-email .icon { width:15px; height:15px; }
.contact-side { position:relative; align-self:stretch; display:flex; flex-direction:column; align-items:center; justify-content:center; z-index:1; width:270px; flex:0 0 270px; gap:32px; }
.contact-side img { width:224px; height:auto; filter:brightness(0) saturate(100%) invert(14%) sepia(8%) saturate(550%) hue-rotate(131deg) brightness(90%); opacity:.8; }
.contact-side span { color:#48261e; font-size:10px; font-weight:800; letter-spacing:.2em; white-space:nowrap; }

.site-footer { background:#0d1112; }
.footer-main { padding:60px 0 48px; display:flex; justify-content:space-between; align-items:flex-start; gap:40px; }
.footer-brand a { display:block; width:191px; margin-bottom:17px; }
.footer-brand a img { width:100%; height:auto; }
.footer-brand p { margin:0; color:#849292; font-size:13px; }
.footer-nav { display:flex; flex-wrap:wrap; gap:30px; margin-top:21px; }
.footer-back { margin-top:17px; font-size:12px; font-weight:750; white-space:nowrap; color:var(--orange-light); }
.footer-bottom { border-top:1px solid #283031; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:21px 0 26px; color:#728081; font-size:11px; }
.footer-bottom span:last-child { font-size:9px; letter-spacing:.12em; }

@media (max-width: 1190px) {
  .header-inner { gap:28px; }
  .desktop-nav { gap:22px; }
  .hero-inner { gap:10px; }
  .showcase { transform:perspective(1000px) rotateY(-3deg); }
  .floating-label { left:0; }
  .approach-grid { gap:55px; }
  .contact-panel { padding-inline:55px; }
}
@media (max-width: 990px) {
  .container { width:min(var(--container),calc(100% - 52px)); }
  .header-inner { min-height:76px; }
  .brand { width:157px; flex-basis:157px; }
  .desktop-nav,.header-cta { display:none; }
  .mobile-menu { display:block; position:relative; margin-left:auto; }
  .mobile-menu summary { list-style:none; display:flex; align-items:center; gap:15px; cursor:pointer; font-size:13px; font-weight:700; padding:12px; }
  .mobile-menu summary::-webkit-details-marker { display:none; }
  .hamburger { display:flex; flex-direction:column; gap:5px; width:21px; }
  .hamburger span { width:100%; height:2px; background:var(--orange); }
  .mobile-menu[open] .hamburger span:first-child { transform:translateY(3.5px) rotate(45deg); }
  .mobile-menu[open] .hamburger span:last-child { transform:translateY(-3.5px) rotate(-45deg); }
  .mobile-menu-panel { position:absolute; right:0; top:calc(100% + 15px); display:flex; flex-direction:column; min-width:245px; padding:12px; border:1px solid #454e4f; background:#1b2224; box-shadow:0 15px 45px #0008; border-radius:12px; }
  .mobile-menu-panel a { padding:11px 12px; font-size:14px; border-radius:7px; }
  .mobile-menu-panel a:hover { background:#30383a; }
  .mobile-contact { margin-top:7px; background:var(--orange); color:#171b1b; font-weight:800; }
  .hero-inner { grid-template-columns:1fr 1fr; }
  h1 { font-size:clamp(44px,5.6vw,66px); }
  .hero-description { font-size:15px; }
  .hero-art { height:430px; }
  .showcase { height:350px; }
  .showcase-map { width:74%; }
  .showcase-heading strong { font-size:25px; }
  .floating-label { bottom:18px; left:-4px; }
  .service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .section-intro { gap:35px; }
  .approach-grid { grid-template-columns:.87fr 1fr; gap:35px; }
  .approach-visual { height:480px; }
  .frame-outer { width:275px; height:275px; }
  .frame-inner { width:220px; height:220px; }
  .approach-visual-center { width:225px; height:225px; }
  .step-grid { gap:15px; }
  .step-grid h3 { font-size:17px; }
  .contact-side { width:180px; flex-basis:180px; }
  .contact-side img { width:174px; }
  .contact-panel { padding:65px 50px; }
  .footer-main { flex-wrap:wrap; }
}
@media (max-width: 740px) {
  html { scroll-padding-top:75px; }
  .container { width:calc(100% - 40px); }
  .hero-inner { display:block; padding-block:74px 30px; }
  .hero { min-height:0; }
  .eyebrow { font-size:9px; letter-spacing:.12em; }
  h1 { font-size:clamp(45px,9.5vw,69px); }
  .hero-description { max-width:590px; font-size:16px; }
  .hero-art { max-width:560px; margin:30px auto 0; height:410px; }
  .showcase { height:355px; margin:0; }
  .showcase-map { width:60%; }
  .floating-label { bottom:0; left:0; }
  .hero-footer { height:62px; font-size:8px; }
  .hero-footer a { white-space:nowrap; }
  .section-pad { padding-block:80px 90px; }
  .section-intro { display:block; margin-block:43px 32px; }
  .section-intro > p { max-width:640px; margin-top:20px; }
  h2 { font-size:clamp(36px,7.4vw,48px); }
  .service-card { padding:28px 24px; min-height:330px; }
  .service-card h3 { font-size:24px; }
  .approach-grid { display:flex; flex-direction:column; }
  .approach-visual { order:2; width:100%; height:380px; }
  .approach-copy { order:1; }
  .step-grid { grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:40px; }
  .process-heading { margin-top:43px; }
  .step-grid { margin-top:45px; }
  .contact { padding-block:70px; }
  .contact-panel { min-height:0; padding:55px 40px; }
  .contact-side { display:none; }
  .footer-main { padding-top:45px; }
  .footer-nav { margin-top:0; }
  .footer-bottom { flex-wrap:wrap; }
}
@media (max-width: 520px) {
  .container { width:calc(100% - 32px); }
  .header-inner { min-height:70px; }
  .brand { width:146px; flex-basis:146px; }
  .hero-inner { padding-top:59px; }
  .eyebrow { margin-bottom:25px; white-space:normal; }
  h1 { font-size:clamp(43px,11vw,59px); }
  .hero-description { font-size:15px; line-height:1.75; }
  .hero-actions { gap:10px; }
  .btn { padding-inline:16px; min-height:51px; gap:10px; font-size:12px; }
  .hero-note { font-size:11px; align-items:flex-start; }
  .hero-art { margin-top:18px; height:330px; }
  .art-orbit-one { width:390px; height:390px; right:-78px; top:-22px; }
  .art-orbit-two { width:290px; height:290px; right:-25px; top:20px; }
  .showcase { width:100%; height:306px; margin:0; transform:none; }
  .showcase-bar { height:40px; padding-inline:14px; font-size:8px; }
  .showcase-heading { padding:17px 18px 0; }
  .showcase-heading strong { font-size:24px; }
  .showcase-map { width:66%; top:75px; right:0; bottom:36px; }
  .map-hub { width:75px; height:75px; right:34%; top:40%; border-radius:17px; }
  .map-hub img { width:50px; }
  .map-node { font-size:7px; gap:4px; padding:7px; }
  .node-icon { font-size:11px; }
  .node-a { right:70%; top:23%; }
  .node-b { right:1%; }
  .node-c { bottom:14%; }
  .floating-label { font-size:8px; padding:10px; bottom:2px; left:-4px; }
  .hero-footer > span:first-child { display:none; }
  .hero-footer-line { background:transparent; }
  .section-topline { font-size:8px; }
  .service-grid { grid-template-columns:1fr; }
  .service-card { min-height:296px; }
  .service-card h3 { font-size:26px; }
  .card-header { margin-bottom:25px; }
  .section-pad { padding-block:72px 80px; }
  h2 { font-size:clamp(35px,9.3vw,45px); }
  .approach-visual { height:315px; }
  .approach-visual-center { height:185px; width:185px; }
  .approach-visual-center img { width:123px; }
  .visual-caption { font-size:8px; }
  .frame-outer { width:238px; height:238px; }
  .frame-inner { width:188px; height:188px; }
  .edge-label { font-size:8px; }
  .step-grid { grid-template-columns:1fr; gap:28px; }
  .step-grid li { padding-top:15px; }
  .step-number { font-size:48px; margin-bottom:16px; }
  .step-grid p { margin-bottom:0; }
  .step-grid h3 { font-size:20px; }
  .contact { padding:60px 0; }
  .contact-panel { padding:48px 26px; border-radius:17px; }
  .contact h2 { font-size:clamp(47px,12vw,66px); }
  .contact-content > p:not(.contact-kicker) { font-size:14px; }
  .contact-links { gap:20px; }
  .footer-main { gap:24px; }
  .footer-nav { width:100%; gap:14px 23px; }
  .footer-nav a { font-size:12px; }
  .footer-back { margin-top:0; }
  .footer-bottom { gap:9px; padding-block:21px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition-duration:.01ms !important; animation-duration:.01ms !important; }
}
