/* Touchscreen presentation only. Desktop retains its approved composition. */
.mobile-service-link{display:none}

@media (max-width:1024px) and (pointer:coarse) and (hover:none) {
  :root{--gutter:max(clamp(22px,6vw,40px),env(safe-area-inset-left,0px),env(safe-area-inset-right,0px));--header-height:78px}
  html{-webkit-text-size-adjust:100%;scroll-padding-top:0}
  body{overflow-x:clip}

  /* No canvas or render loop on phones. One uninterrupted, quiet backdrop. */
  #signal,.scene-fallback,.grain,.motion-toggle,.journey-hud,
  .hero-object-caption,.scene-annotation,.service-visual-label,
  .method-center-label,.scroll-cue{display:none!important}
  .atmosphere{background:radial-gradient(ellipse at 95% 0%,rgba(160,137,88,.10),transparent 48%),var(--bg)}

  .site-header{
    height:calc(var(--header-height) + env(safe-area-inset-top,0px));
    padding:env(safe-area-inset-top,0px) max(var(--gutter),env(safe-area-inset-right,0px)) 0 max(var(--gutter),env(safe-area-inset-left,0px));
    background:linear-gradient(180deg,rgba(11,12,11,.98) 0%,rgba(11,12,11,.96) 76%,rgba(11,12,11,.88));
  }
  .brand{width:126px;height:40px}
  .brand img{width:126px}
  .desktop-nav{display:none}
  .header-actions{gap:8px}
  .header-contact{min-height:44px;padding:9px 14px;gap:13px;font-size:11px}
  .header-contact span{font-size:17px}
  .menu-toggle{display:block;width:44px;height:44px;padding:10px}
  .menu-toggle span{width:24px;margin:7px 0}
  .skip-link{max-width:calc(100% - 24px)}

  .hero{
    height:auto;min-height:min(760px,92svh);padding:calc(124px + env(safe-area-inset-top,0px)) var(--gutter) 44px;
    display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;gap:40px;
  }
  .hero-content,.vision-content,.solutions-content,.contact-layout{width:100%;max-width:620px;margin-inline:auto;padding:0}
  .eyebrow,.hero .eyebrow,.method-heading .eyebrow,.contact-intro .eyebrow{
    font-size:9px;line-height:1.8;letter-spacing:.13em;gap:9px;white-space:normal;
  }
  .hero h1{font-size:clamp(62px,19.6vw,106px);line-height:1.01;letter-spacing:-.065em;margin:25px 0 27px}
  .hero h1 em{font-size:1.08em;line-height:1.04}
  .hero-description{font-size:15px;line-height:1.75;letter-spacing:-.015em;margin-bottom:28px;max-width:38ch;color:#b9bcaf}
  .button{min-height:56px;padding:8px 9px 8px 22px;gap:18px;font-size:13px;line-height:1.45;max-width:100%}
  .button-arrow{width:37px;height:37px;font-size:22px;flex:none}
  .hero .button{justify-content:space-between;min-width:min(300px,100%)}
  .button:hover,.button:active{transform:none}
  .button:hover .button-arrow{transform:none}
  .quiet-link{font-size:12px;min-height:48px;line-height:1.65}
  .explore{display:flex;margin-top:9px;gap:15px;color:#b9bcaf}
  .hero-disciplines{
    position:static;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:8px 10px;
    width:100%;max-width:620px;margin-inline:auto;font-size:10px;line-height:1.8;letter-spacing:0;color:#949c87;
  }
  .hero-disciplines i{color:#626d50}

  .vision{min-height:0;display:block;padding:82px var(--gutter) 64px}
  .vision h2{font-size:clamp(40px,10.5vw,64px);line-height:1.1;letter-spacing:-.055em;margin:22px 0 26px}
  .vision h2 br:nth-child(3){display:initial}
  .body-copy{font-size:15px;line-height:1.85;max-width:45ch;color:#b3b9a8}
  .vision-sequence{display:flex;flex-wrap:wrap;gap:11px;font-size:11px;margin-top:28px;line-height:1.8}

  /* All four services are available without waiting for a pinned animation. */
  .solutions,.js .solutions{height:auto;min-height:0}
  .solutions-stage,.js .solutions-stage{position:static;height:auto;min-height:0;display:block;padding:72px var(--gutter) 0}
  .solutions h2{font-size:clamp(42px,11vw,66px);line-height:1.07;margin:22px 0 33px}
  .service-tabs,.service-panel{display:none}
  .services-fallback,.js .services-fallback{
    display:grid;grid-template-columns:minmax(0,1fr);gap:0;
    padding:0 var(--gutter) 28px;max-width:calc(620px + 2 * var(--gutter));margin-inline:auto;counter-reset:service;
  }
  .services-fallback article{position:relative;padding:27px 0 24px 37px;border-top:1px solid var(--line);min-width:0;counter-increment:service}
  .services-fallback article::before{content:counter(service,decimal-leading-zero);position:absolute;top:31px;left:0;color:var(--gold);font-size:10px;font-variant-numeric:tabular-nums;letter-spacing:.03em}
  .services-fallback h3{color:var(--ivory);font-size:clamp(20px,5.4vw,26px);font-weight:500;line-height:1.3;letter-spacing:-.035em;margin:0 0 13px}
  .services-fallback p{font-size:14px;line-height:1.8;color:#aeb6a1;max-width:44ch}
  .mobile-service-link{display:inline-flex;align-items:center;gap:15px;min-height:48px;margin-top:7px;font-size:12px;color:var(--gold);line-height:1.6}
  .mobile-service-link span{font-size:19px;flex:none}

  .method,.js .method{height:auto;min-height:0}
  .method-stage,.js .method-stage{position:static;height:auto;min-height:0;padding:68px var(--gutter) 40px}
  .method-stage::after{display:none}
  .method-heading{max-width:620px;margin-inline:auto;text-align:left}
  .method-heading .eyebrow{justify-content:flex-start}
  .method h2{font-size:clamp(37px,9.4vw,60px);line-height:1.12;margin-top:22px;letter-spacing:-.055em}
  .method-steps{position:static;display:grid;grid-template-columns:minmax(0,1fr);gap:0;max-width:620px;margin:32px auto 0;padding:0;pointer-events:auto}
  .method-step,.method-step.is-current{opacity:1;gap:19px;padding:22px 0;min-width:0;transition:none}
  .method-step::before{display:none}
  .method-step:nth-child(3){grid-column:auto}
  .method-step h3,.method-step.is-current h3{color:var(--ivory);font-size:25px;line-height:1.25;margin-bottom:8px;letter-spacing:-.04em}
  .method-step p{font-size:14px;line-height:1.8;max-width:38ch;color:#aeb6a1}
  .step-index{font-size:10px;min-width:19px;line-height:2.7;color:var(--gold)}

  .contact{min-height:0;display:block;padding:76px var(--gutter) calc(25px + env(safe-area-inset-bottom,0px))}
  .contact-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:42px}
  .contact-intro{padding:0;text-align:left;min-width:0}
  .contact-intro .eyebrow{font-size:8px;letter-spacing:.1em;justify-content:flex-start;margin-bottom:24px}
  .contact h2{font-size:clamp(42px,11.3vw,66px);line-height:1.1;letter-spacing:-.055em}
  .contact-description{font-size:15px;line-height:1.8;margin-top:25px}
  .contact-reassurance{font-size:12px;line-height:1.8;margin:23px 0 8px;color:#a7b094}
  .faq-trigger{font-size:12px;line-height:1.65;min-height:48px;padding:6px 0;text-align:left;gap:13px}
  .faq-trigger span{font-size:23px;flex:none}
  .form-wrap{width:100%;min-width:0}
  .form-wrap h3{font-size:23px;line-height:1.4;font-weight:500;letter-spacing:-.04em;max-width:26ch;margin-bottom:26px}
  .preview-notice{font-size:12px;line-height:1.7;padding-bottom:24px}
  .form-grid{grid-template-columns:minmax(0,1fr);gap:25px}
  .field-wide{grid-column:auto}
  .field label{font-size:13px;line-height:1.6;margin-bottom:6px;color:#d9dfcc}
  .field label span{font-size:11px;color:#a0aa90}
  .field input,.field select,.field textarea{font-size:16px;line-height:1.6;padding:10px 0 13px;min-height:52px;background:transparent;border-bottom-color:#697456;scroll-margin-block:110px 100px}
  .field input::placeholder,.field textarea::placeholder{font-size:15px;color:#909b80}
  .field select{font-size:16px;padding-right:18px;min-height:54px}
  .field textarea{min-height:116px;max-height:320px}
  .form-consent{font-size:12px;line-height:1.8;gap:12px;min-height:48px;margin:28px 0;color:#b4bea5}
  .form-consent input{width:20px;height:20px;flex:none;margin:3px 0 0}
  .form-submit{width:100%;min-width:0;min-height:58px}
  .form-status{font-size:12px;line-height:1.8;margin-top:20px;max-width:46ch}
  .form-success{min-height:0;padding:12px 0 25px}
  .form-success h3{font-size:clamp(36px,10vw,48px);line-height:1.16;margin-bottom:22px}
  .form-success>p:not(.eyebrow){font-size:15px;line-height:1.8}
  .form-success .eyebrow{font-size:9px;justify-content:flex-start}
  .form-success .receipt-reference{font-size:12px!important}
  .form-success .quiet-link{font-size:13px}

  .site-footer{position:static;display:grid;grid-template-columns:1fr auto;gap:19px;width:100%;max-width:620px;margin:66px auto 0;padding:25px 0 0;align-items:center}
  .footer-signature{font-size:23px}
  .footer-signature>span{font-size:9px;line-height:1.6;letter-spacing:0;margin-top:8px}
  .copyright{font-size:9px}
  .site-footer nav{grid-column:1/-1;grid-row:2;display:flex;flex-wrap:wrap;justify-content:space-between;gap:0 18px;font-size:11px;line-height:1.5}
  .site-footer a{min-height:48px;display:inline-flex;align-items:center;padding:10px 0}

  dialog{max-height:calc(100dvh - 24px);-webkit-overflow-scrolling:touch}
  .menu-dialog{height:100dvh;max-height:100dvh;padding:calc(20px + env(safe-area-inset-top,0px)) max(var(--gutter),env(safe-area-inset-right,0px)) calc(24px + env(safe-area-inset-bottom,0px)) max(var(--gutter),env(safe-area-inset-left,0px));margin:0;max-width:none}
  .menu-dialog .dialog-top{position:sticky;top:0;z-index:1;background:#11140f;margin:0;padding-bottom:18px}
  .dialog-top .eyebrow{font-size:9px}
  .close-dialog{width:48px;height:48px}
  .menu-dialog nav{gap:4px;margin-top:20px}
  .menu-dialog nav a{font-size:clamp(31px,8.8vw,48px);line-height:1.3;min-height:65px;gap:17px;padding:12px 0}
  .menu-dialog nav a span{font-size:10px}
  .menu-dialog>p{font-size:24px;line-height:1.45;margin:30px 0 0}
  .faq-dialog{width:calc(100% - 24px);max-width:620px;margin:auto;padding:23px;border-radius:4px}
  .faq-dialog .dialog-top{margin-bottom:20px;gap:14px}
  .faq-dialog h2{font-size:37px;line-height:1.14;margin-bottom:24px}
  .faq-dialog summary{font-size:14px;line-height:1.6;min-height:70px;gap:15px;padding:17px 0}
  .faq-dialog summary span{flex:none}
  .faq-dialog details p{font-size:14px;line-height:1.85;padding:0 0 24px}
  .faq-dialog .button{width:100%;justify-content:space-between;margin-top:27px;font-size:12px;padding-left:16px}
  .admin-bar .site-header{top:46px}
}

@media (max-width:359px) and (pointer:coarse) and (hover:none) {
  .brand,.brand img{width:111px}
  .header-actions{gap:3px}
  .header-contact{gap:8px;padding-inline:11px}
  .hero h1{font-size:62px}
  .hero-description{font-size:14px}
  .contact-intro .eyebrow{font-size:7px}
  .services-fallback article{padding-left:29px}
  .mobile-service-link{font-size:11px;gap:9px}
}

@media (min-width:761px) and (max-width:1024px) and (pointer:coarse) and (hover:none) {
  .hero{min-height:0;padding-top:130px;padding-bottom:48px}
  .hero h1{font-size:94px}
  .admin-bar .site-header{top:32px}
}
