/* Touch-first shell. Desktop presentation remains the V9 visual system. */
.sf-mobile-dock,.sf-mobile-scrim,.sf-install-prompt{display:none}
@media(max-width:700px){
  html{-webkit-tap-highlight-color:transparent;scroll-padding-top:100px}
  body{padding-bottom:calc(84px + env(safe-area-inset-bottom,0px));overscroll-behavior-y:none}
  .site-header{top:calc(10px + env(safe-area-inset-top,0px))}
  .nav-row{width:calc(100% - 24px);gap:8px;height:50px;align-items:center}
  .brand{width:148px;min-height:48px;height:48px;padding:11px 13px;border-radius:26px;flex-shrink:1;min-width:120px}
  .brand img{width:100%;max-width:129px}
  .nav-end{height:48px;min-height:48px;gap:0;padding:2px 4px;flex-shrink:0;border-radius:26px}
  .nav-end .v9-theme{width:38px;height:44px;padding:10px;min-height:44px}
  .nav-end .v9-theme svg{width:19px;height:19px}
  .lang-link{height:44px;min-height:44px;min-width:36px;display:flex;align-items:center;justify-content:center;font-size:11px;padding:0 4px}
  .menu-button{width:38px;height:44px;min-height:44px;padding:9px}
  .menu-button svg{width:20px;height:20px}
  .brand,.nav-end{box-shadow:0 3px 18px #101b3c04;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}
  .sf-mobile-dock{position:fixed;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch;left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom,0px));height:64px;padding:5px 6px;background:rgba(255,255,255,.92);border:1px solid #e1e4ee;border-top-color:#fff;border-radius:25px;box-shadow:0 7px 30px #161e3920,0 1px 4px #121a3508;backdrop-filter:blur(25px);-webkit-backdrop-filter:blur(25px);z-index:60}
  .sf-mobile-dock a{display:flex;min-height:52px;min-width:0;flex-direction:column;align-items:center;justify-content:center;gap:4px;border-radius:19px;font-size:10px;line-height:1.2;color:#747987;text-decoration:none;transition:color .15s,background .15s,transform .15s;font-weight:500}
  .sf-mobile-dock a svg{width:21px;height:21px;flex:none}
  .sf-mobile-dock a[aria-current=page]{color:#315efb;background:#edf1ff}
  .sf-mobile-dock a:active{transform:scale(.95);background:#f1f3f9}
  .sf-mobile-dock a:focus-visible{outline:2px solid #315efb;outline-offset:1px}
  .sf-mobile-scrim{position:fixed;inset:0;display:block;background:#0a102f50;border:0;padding:0;z-index:65;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);animation:sf-scrim-in .2s ease}
  .sf-mobile-scrim[hidden]{display:none}
  .mobile-menu{position:fixed;top:auto!important;bottom:calc(88px + env(safe-area-inset-bottom,0px));left:12px;right:12px;max-height:calc(100dvh - 178px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));overflow-y:auto;overscroll-behavior:contain;border-radius:28px;background:rgba(255,255,255,.98);box-shadow:0 -4px 35px #15204518}
  .mobile-menu.is-open{padding:25px 24px 20px;animation:sf-sheet-in .28s cubic-bezier(.22,1,.36,1)}
  .mobile-menu:before{content:"";display:block;width:34px;height:4px;border-radius:99px;background:#d6d9e3;margin:-12px auto 15px}
  .mobile-menu .menu-main a{min-height:48px;display:flex;align-items:center;font-size:20px;font-weight:500;line-height:1.5;padding:9px 0}
  .mobile-menu .menu-secondary{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;margin-top:12px}
  .mobile-menu .menu-secondary a{min-height:44px;display:flex;align-items:center;font-size:13px;padding:8px 0}
  .mobile-menu .btn{width:100%;justify-content:center;min-height:48px;margin-top:17px}
  .mobile-menu .menu-language{min-height:44px;display:flex;align-items:center;justify-content:center;margin-top:9px;font-size:12px}
  .home-hero>.wrap{min-height:650px;padding-top:128px;padding-bottom:100px}
  .home-hero h1{font-size:clamp(33px,8.5vw,43px);line-height:1.18;letter-spacing:-.045em}
  .home-hero .lead{font-size:16px;line-height:1.75;max-width:340px;margin-top:23px}
  .home-hero .v8-hero-support{font-size:13px;line-height:1.8;max-width:325px}
  .home-hero .actions{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:27px}
  .home-hero .actions .btn,.home-hero .actions>.text-link{min-height:48px;font-size:12px;padding:12px 17px}
  .home-hero .actions .btn:after{margin-left:12px}
  .home-hero .kicker{font-size:10px;padding:7px 11px;margin-bottom:25px}
  .home-hero.v8-home-hero{background:linear-gradient(#030304 0,#030304 575px,#fff 700px)}
  .v9-hero-art{height:680px}
  .v9-hero-art:after{background:linear-gradient(180deg,#0001 15%,#0005 38%,transparent 65%),linear-gradient(0deg,#fff,transparent 15%)}
  .home-visual{width:calc(100% - 32px);border-radius:22px}
  .home-caption{width:calc(100% - 40px)}
  .section{padding-block:54px}
  .section-head h2,h2{font-size:31px;line-height:1.25;letter-spacing:-.03em}
  .section-head{margin-bottom:27px;gap:16px}
  .section-head>p{font-size:15px;line-height:1.8}
  .v8-service-card,.application-card,.v8-audience-card,.starting-card{border-radius:23px}
  .v8-service-photo,.v8-home-case .photo,.v8-rounded-photo img{border-radius:17px}
  .application-card{padding:13px}.application-card .card-copy{padding:17px 9px 12px}
  .application-card h3,.v8-home-case h3{font-size:26px;line-height:1.4}
  .v8-audience-card{padding:27px 24px}
  .btn,.field input,.field textarea,.field select{min-height:48px}
  .field input,.field textarea,.field select,.ui-inquiry-form input,.ui-inquiry-form textarea{font-size:16px!important}
  .field textarea,.ui-inquiry-form textarea{min-height:150px}
  button,a,input,textarea,select{touch-action:manipulation}
  .field input:focus,.field textarea:focus{scroll-margin-block:120px}
  .v9-backtop{bottom:calc(91px + env(safe-area-inset-bottom,0px));right:18px;width:39px;height:39px;font-size:19px}
  .site-footer{padding-bottom:22px}.footer-bottom{padding-bottom:16px}
  .sf-page-enter{animation:sf-page-in .23s cubic-bezier(.22,1,.36,1)}
  .sf-keyboard-open .sf-mobile-dock,.sf-keyboard-open .v9-backtop,.sf-keyboard-open .sf-install-prompt{display:none}
  .sf-install-prompt{position:fixed;display:flex;align-items:center;gap:12px;left:16px;right:16px;bottom:calc(87px + env(safe-area-inset-bottom,0px));padding:13px 12px 13px 16px;border-radius:19px;background:rgba(255,255,255,.98);box-shadow:0 6px 30px #141e3e20;border:1px solid #e2e6f1;z-index:61}
  .sf-install-prompt p{margin:0;flex:1;font-size:12px;line-height:1.6;color:#545b6d}
  .sf-install-prompt button{border:0;min-height:44px;padding:9px 14px;border-radius:99px;background:#315efb;color:white;font-size:12px;cursor:pointer}
  .sf-install-prompt .sf-install-close{background:transparent;color:#72798b;font-size:22px;padding:0;min-width:30px}
  html[data-theme=dark] .sf-mobile-dock{background:#16171eea;border-color:#333540;border-top-color:#41444e;box-shadow:0 7px 30px #0004}
  html[data-theme=dark] .sf-mobile-dock a{color:#9a9eac}
  html[data-theme=dark] .sf-mobile-dock a[aria-current=page]{color:#b2c2ff;background:#252f4b}
  html[data-theme=dark] .sf-mobile-dock a:active{background:#2a2c38}
  html[data-theme=dark] .mobile-menu{background:#15161dfb;border-color:#343641}
  html[data-theme=dark] .mobile-menu:before{background:#434652}
  html[data-theme=dark] .mobile-menu .menu-main a{border-color:#30323d}
  html[data-theme=dark] .home-hero.v8-home-hero{background:linear-gradient(#030304 0,#030304 575px,#0b0b0e 700px)}
  html[data-theme=dark] .v9-hero-art:after{background:linear-gradient(180deg,#0001 15%,#0005 38%,transparent 65%),linear-gradient(0deg,#0b0b0e,transparent 15%)}
  html[data-theme=dark] .sf-install-prompt{background:#171a24f5;border-color:#343d54}
  html[data-theme=dark] .sf-install-prompt p{color:#bcc4d8}
}
@media(max-width:360px){.brand{width:133px;min-width:120px;padding-inline:10px}.nav-end .v9-theme{width:35px}.lang-link{min-width:33px}.menu-button{width:35px}.nav-row{gap:6px}.home-hero>.wrap{padding-top:123px;min-height:665px}.home-hero .kicker{font-size:9px}.home-hero .actions{gap:8px}.home-hero .actions .btn,.home-hero .actions>.text-link{font-size:11px;padding-inline:14px}.sf-mobile-dock{left:9px;right:9px}.sf-mobile-dock a{font-size:9px}.mobile-menu.is-open{padding-inline:21px}}
@keyframes sf-sheet-in{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:none}}
@keyframes sf-scrim-in{from{opacity:0}to{opacity:1}}
@keyframes sf-page-in{from{opacity:.72;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.sf-page-enter,.sf-mobile-scrim,.mobile-menu.is-open{animation:none}.sf-mobile-dock a{transition:none}.sf-mobile-dock a:active{transform:none}}
