/* Existing content and controls, arranged for one-handed phone browsing. */
.home-page :is(button,a),.gallery-page :is(button,a),.service-page :is(button,a) {touch-action:manipulation;}
:is(.home-page,.gallery-page,.service-page) .footer .footer-bottom {padding-inline-end:92px;}
.gallery-page .video-gallery .video-card {min-width:204px;}

@media(min-width:940px) {
  .home-page .footer .footer-grid {padding-inline-end:84px;}
}

@media(max-width:939px) {
  html {scroll-padding-top:0;}
  :is(.home-page,.gallery-page,.service-page) main [id] {scroll-margin-top:88px;}
  .home-page #start-project {scroll-margin-top:88px;}
  .home-page {--header-height:72px;--nav-height:72px;}
  .home-page .header {position:sticky;top:0;z-index:80;background:#fffffff5;}
  .home-page .header-inner {height:72px;min-height:72px;}
  .home-page .menu-toggle,.home-page .menu-close {min-width:48px;min-height:48px;}
  .home-page :is(.menu-scroll nav>a,.mobile-services) {min-height:52px;font-size:20px;}
  .home-page .menu-scroll .service-links a {min-height:64px;padding:12px 14px;}
  .home-page .mobile-menu-actions {
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;
    padding:14px 18px calc(142px + env(safe-area-inset-bottom,0px));
  }
  .home-page .mobile-menu-actions .button {width:100%;min-height:48px;padding:12px 8px;font-size:15px;}
  .home-page .mobile-menu-actions .button svg {display:none;}
  .home-page #contact :is(input,select,textarea) {font-size:16px;scroll-margin-block:90px 145px;}
  .home-page #contact .contact-form-wrap {padding-bottom:44px;}
  .home-page .footer {padding-bottom:calc(148px + env(safe-area-inset-bottom,0px));}
  :is(.home-page,.gallery-page,.service-page) .footer .footer-bottom {padding-inline-end:0;}
  .home-page .footer-nav>a {display:inline-flex;align-items:center;min-height:48px;}
  .home-page .service-dialog .dialog-media,.home-page .project-dialog .project-dialog-footer {
    padding-bottom:calc(148px + env(safe-area-inset-bottom,0px));
  }
}

@media(max-width:639px) {
  .gallery-page .video-gallery {width:100%;gap:14px;}
  .gallery-page .video-gallery>.video-card {flex-basis:100%;width:100%;min-width:204px;max-width:none;}
  .home-page .container {width:calc(100% - 36px);}
  .home-page .text-announcement a {min-height:44px;padding-block:6px;}
  .home-page .text-announcement-detail {display:none;}
  .home-page .text-announcement a>span {font-size:13px;}
  .home-page .header .brand img {width:190px;}
  .home-page #home .hero-lead {grid-template-columns:minmax(0,1fr);padding:24px 0 32px;gap:0;}
  .home-page #home .hero-statement {grid-row:1;padding:0;text-align:left;}
  .home-page #home #hero-title {max-width:none;margin:0;font-size:clamp(32px,8.7vw,38px);line-height:1.12;text-align:left;text-wrap:balance;}
  .home-page #home .hero-continuation {max-width:34ch;margin:16px 0 0;font-size:17px;line-height:1.5;text-align:left;}
  .home-page #home .hero-actions {grid-row:2;display:flex;align-items:stretch;gap:10px;margin:18px 0 0;}
  .home-page #home .hero-actions>a {display:flex;justify-content:center;align-items:center;min-width:0;min-height:50px;padding:12px;font-size:16px;line-height:1.35;white-space:nowrap;}
  .home-page #home .hero-actions>.button {flex:1.3;}
  .home-page #home .hero-meet-link {flex:1;border:1px solid #bfd2cc;border-radius:10px;background:#fff;}
  .home-page #home .hero-actions svg {display:none;}
  .home-page #home .hero-photo {grid-row:4;margin:20px 0 0;}
  .home-page #home .hero-photo img {width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;object-position:50% 43%;}
  .home-page #home .hero-credentials {grid-row:3;width:100%;max-width:none;margin:18px 0 0;padding:14px 3px;}
  .home-page #home .hero-credentials>div {padding-inline:6px;}
  .home-page #home .hero-credentials strong {font-size:clamp(25px,7vw,29px);}
  .home-page #home .hero-credentials>div>span {margin-top:6px;font-size:12px;line-height:1.4;}

  .home-page #home .founder-story {gap:24px;}
  .home-page #home .founder-video {max-width:350px;margin-inline:auto;}
  .home-page :is(#work,#solutions,#pricing) {padding-block:44px;}
  .home-page :is(.section-title,.recognition-copy .section-title,#solutions .section-video-inline .section-title) {font-size:31px;line-height:1.17;}
  .home-page #work .section-intro,.home-page #solutions .context-intro,.home-page #pricing .section-intro {font-size:17px;line-height:1.55;}
  .home-page .service-page-links {gap:10px;margin-bottom:22px;padding-bottom:10px;scroll-snap-type:x proximity;}
  .home-page .service-page-links>a {min-height:48px;padding:10px 13px;border:1px solid #cbdcd6;border-radius:10px;background:#f4f8f6;font-size:14px;white-space:nowrap;scroll-snap-align:start;text-decoration:none;}

  /* Reuse the arrows below each rail, leaving the card contents unobstructed. */
  .home-page :is(#solutions,#work,#pricing) .carousel-side-shell {width:100%;margin-inline:0;padding:0;}
  .home-page :is(#solutions,#work,#pricing) .carousel-side-shell>.carousel-side-rail {
    width:100%;margin-inline:0;gap:14px;padding:2px 1px 10px;
    scroll-padding-inline:1px;scrollbar-width:thin;scrollbar-color:#a4c4ba transparent;
  }
  .home-page :is(#solutions,#work,#pricing) .carousel-side-rail>:is(.solution-card,.service-video-tile,.portfolio-card,.people-card,.price-card) {
    flex-basis:88%;width:88%;scroll-snap-align:start;
  }
  .home-page #work .carousel-side-rail.people-rail {--slide:88%;}
  .home-page :is(#solutions,#work,#pricing) .carousel-side-controls {
    display:flex;position:static;align-items:center;justify-content:flex-start;gap:10px;
    width:100%;min-height:52px;margin-top:10px;padding:0 76px 0 0;pointer-events:auto;
  }
  .home-page #work .portfolio-rail-tools.carousel-side-controls>div {display:flex;align-items:center;gap:10px;}
  .home-page :is(#solutions,#work,#pricing) .carousel-side-controls .icon-button {
    position:static;inset:auto;flex:0 0 52px;width:52px;min-width:52px;height:52px;min-height:52px;
    padding:0;transform:none;border:1px solid #b1ccc3;border-radius:50%;background:#fff;box-shadow:none;
  }
  .home-page :is(#solutions,#work,#pricing) .carousel-side-controls .icon-button::before {content:none;}
  .home-page :is(#solutions,#work,#pricing) .carousel-side-controls :is(.mobile-rail-position,.portfolio-position,.people-position) {
    position:static;inset:auto;transform:none;min-width:46px;font-size:14px;line-height:1.4;text-align:center;
  }
  .home-page .structured-rail-tools {min-height:52px;gap:10px;padding-right:76px;margin-top:10px;}
  .home-page .structured-rail-tools button {flex-basis:52px;width:52px;height:52px;min-height:52px;}
  .home-page :is(.carousel-side-controls .icon-button,.structured-rail-tools button):focus-visible {outline:3px solid #126a78;outline-offset:3px;}

  .home-page #solutions #services-rail>.solution-card {min-height:380px!important;}
  .home-page #solutions #services-rail>.service-video-tile {flex-basis:100%;width:100%;min-height:380px;padding:8px;}
  .home-page #solutions .service-video-title {max-width:none;font-size:20px;line-height:1.2;}
  .home-page #solutions .service-video-tile .video-card__media {max-width:350px;margin-top:12px;}
  .home-page #solutions .advertising-demo-layout .advertising-video {max-width:350px;margin-inline:auto;}
  .home-page #working-together .process-video {width:min(350px,calc(100vw - 52px));max-width:none;align-self:center;margin-inline:0;}
  .home-page #solutions #services-rail .card-copy {padding:20px;}
  .home-page #solutions #services-rail .card-copy h3 {font-size:23px;line-height:1.2;}
  .home-page #solutions #services-rail .card-copy>p {font-size:16px;line-height:1.5;}
  .home-page #solutions #services-rail .solution-card :is(.site-art.device-preview,.service-visual) {min-height:220px;padding:12px;}
  .home-page #work .portfolio-actions :is(.text-button,.text-link) {min-height:48px;font-size:14px;}
  .home-page #pricing .plan-tabs.plan-steps {gap:8px;margin-bottom:24px;}
  .home-page #pricing .plan-tabs.plan-steps>button {min-height:112px;padding:8px 4px 10px;gap:5px;}
  .home-page #pricing .plan-steps .step-number {flex:none;width:34px;min-width:34px;height:34px;min-height:34px;padding:0;font-size:18px;line-height:1;}
  .home-page #pricing .plan-steps strong {font-size:18px;}
  .home-page #pricing .plan-steps .step-caption {font-size:12px;line-height:1.3;}
  .home-page #pricing .price-card {padding:22px;}
  .home-page #pricing .price-card .button {min-height:50px;font-size:16px;}
  .home-page #pricing .plan-features summary {min-height:48px;}
  .home-page #faq summary {min-height:58px;font-size:17px;line-height:1.4;padding-block:16px;}
  .home-page #contact .discovery-panel>.contact-copy,.home-page #contact .discovery-panel>.contact-form-wrap {padding:24px 20px;}
  .home-page #contact .discovery-panel>.contact-form-wrap {padding-bottom:40px;}
  .home-page #contact .discovery-panel .contact-form-wrap h3 {font-size:25px;line-height:1.2;}
  .home-page #contact .discovery-direct {gap:10px;}
  .home-page #contact .discovery-investment {margin-bottom:18px;}
  .home-page #contact .contact-form-wrap label {margin-bottom:16px;}
  .home-page #contact #prepare-project-email {width:calc(100% - 64px);min-height:52px;font-size:16px;white-space:normal;}
  .home-page .service-dialog .dialog-top {padding:24px 20px;}
  .home-page .service-dialog .dialog-top :is(.button,.text-link),.home-page .project-dialog-footer :is(.button,.text-link) {min-height:48px;}
  .home-page .footer-nav {gap:2px 20px;}
}

@media(max-width:939px) and (max-height:560px) {
  .home-page .mobile-menu-actions {
    grid-template-columns:minmax(0,1fr);min-height:142px;
    padding:14px calc(84px + env(safe-area-inset-right,0px)) calc(14px + env(safe-area-inset-bottom,0px)) 18px;
  }
}

@media(max-width:359px) {
  .home-page .header .brand img {width:172px;}
  .home-page #home .hero-actions>a {font-size:14px;padding-inline:8px;}
  .home-page #home .hero-credentials>div {padding-inline:3px;}
  .home-page #home .hero-credentials>div>span {font-size:11px;}
  .home-page .mobile-menu-actions .button {font-size:14px;}
}
