/* Shared mobile layout; desktop styling remains in the existing stylesheets. */
.menu-toggle{display:none}
.popup-description-mobile{display:none}
@media(max-width:900px){
  header{position:relative;z-index:20;background:var(--ink);color:#fff}
  header nav,header .nav{position:relative;height:76px;gap:16px;border-bottom:0}
  header .brand{width:154px;height:56px;flex-shrink:0}
  .menu-toggle{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 17px;margin-left:auto;border:1px solid var(--yellow);border-radius:7px;background:var(--yellow);color:var(--ink);font:inherit;font-weight:700;line-height:1.2;cursor:pointer}
  header .navlinks{display:flex;flex-wrap:wrap;gap:12px}
  header .navlinks>a:not(.nav-cta){display:block}
  header .navlinks.mobile-ready{display:none;position:absolute;top:100%;left:0;right:0;padding:16px;background:var(--ink);border:1px solid #39434a;box-shadow:0 18px 35px #0005;max-height:calc(100vh - 146px);max-height:calc(100dvh - 146px);overflow-y:auto;overscroll-behavior:contain;flex-direction:column;align-items:stretch;gap:0}
  header .navlinks.mobile-ready.is-open{display:flex}
  header .navlinks>a,header .nav-dropdown summary{padding:13px 12px;min-height:48px;font-size:1rem;line-height:1.4}
  header .navlinks .nav-cta{margin-top:10px;text-align:center;padding:13px 12px!important}
  header .dropdown-menu{display:none;position:static;width:100%;padding:4px 10px;margin:0 0 8px;box-shadow:none;transform:none;opacity:1;visibility:visible;border-top:0;border-left:2px solid var(--yellow);background:#1c2832;color:#fff}
  header .nav-dropdown[open] .dropdown-menu{display:block}
  header .dropdown-menu a{padding:12px 10px;font-size:.95rem;line-height:1.4;border-color:#39434a;white-space:normal}
  header .dropdown-menu a:hover,header .dropdown-menu a.active{background:#26343f;color:var(--yellow)}
  .wrap>*{min-width:0}
  .home-page .hero{display:block;min-height:0;padding:0;background:var(--ink)}
  .home-page .hero-video{position:relative;display:block;inset:auto;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;object-position:center}
  .home-page .hero:before{display:none}
  .home-page .hero-content{max-width:680px;padding:30px 0 46px}
  .home-page .hero h1{font-size:clamp(2.35rem,6.8vw,4rem);line-height:1.04;letter-spacing:-.05em;margin:18px 0 22px}
  .home-page .hero p{font-size:1rem;line-height:1.65}
  .home-page .hero-meta{display:none}
  .intro,.approach-grid,.section-head,.promise,.region,.contact-layout{grid-template-columns:minmax(0,1fr);gap:30px}
  .project-grid{grid-template-columns:minmax(0,1fr)}
  .popup{padding:12px;overflow-y:auto;overscroll-behavior:contain}
  .popup-card{display:block;min-height:0;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain;width:min(520px,100%);border-radius:10px}
  .popup-close{position:sticky;display:block;top:12px;margin:12px 12px -56px auto;right:auto;z-index:3;min-height:44px;flex-shrink:0}
  .popup-copy{padding:58px 24px 24px}
  .popup-copy .eyebrow,.popup-description-desktop{display:none}
  .popup-description-mobile{display:inline}
  .popup-copy h2{font-size:1.9rem;line-height:1.05;margin:0 0 14px}
  .popup-copy p{font-size:1rem;line-height:1.45;margin-bottom:20px}
  .popup-actions{gap:12px}
  .popup-actions .button,.popup-actions .secondary-link{width:100%;min-height:48px;justify-content:center}
  .popup-actions .secondary-link,.popup-contact{display:none}
  .popup-contact img{width:150px;margin-bottom:18px}
  .popup-contact .popup-qr{width:126px;height:126px;margin-bottom:14px}
  .popup-contact a{font-size:1rem;overflow-wrap:anywhere}
  .popup-contact span{margin-top:14px}
  body.contact-popup-open{overflow:hidden}
  footer .wrap{align-items:flex-start;flex-direction:column;gap:24px}
  footer .footer-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;height:auto;border:0;padding:0;gap:0 20px;justify-content:start}
  footer .footer-nav a{display:flex;align-items:center;min-height:44px}
}
@media(max-width:560px){
  .wrap{width:calc(100% - 36px)}
  .topbar .wrap{flex-direction:row;justify-content:space-between;gap:10px;padding:8px 0;font-size:.72rem;line-height:1.4}
  .topbar a{white-space:nowrap}
  section,.content,.approach,.cta{padding:52px 0}
  .hero{padding:46px 0}
  .hero h1,.projects-head h1{font-size:clamp(2.2rem,9.5vw,3.2rem);line-height:1.06;overflow-wrap:anywhere}
  .hero p,.projects-head>p{font-size:1rem}
  .hero:after{opacity:.45;pointer-events:none}
  .eyebrow{font-size:.7rem;letter-spacing:.1em;gap:9px;line-height:1.6}
  .eyebrow:before{width:24px;flex-shrink:0}
  .section-head h2,.promise h2,.region h2,.contact-intro h2,.intro h2,.approach h2,.cta h2{font-size:clamp(2rem,8.5vw,2.7rem);line-height:1.08;overflow-wrap:anywhere}
  .section-head{margin-bottom:28px}
  .services,.features,.work-grid{grid-template-columns:minmax(0,1fr)}
  .service{min-height:0;padding:26px 24px}
  .service-icon{width:56px;height:56px;padding:14px;margin-bottom:24px}
  .service h3{font-size:1.35rem}
  .step{padding:22px 18px;grid-template-columns:30px minmax(0,1fr);gap:12px}
  .check{grid-template-columns:35px minmax(0,1fr);gap:12px}
  .features{margin-top:36px}
  .feature,.work-card{padding:26px 24px}
  .actions{gap:10px}
  .actions .button,.section-action .button{width:100%;padding:12px 16px;min-height:50px;text-align:center;line-height:1.4}
  .projects-section{padding-top:34px}
  .projects-head{margin-bottom:28px}
  .project-grid{gap:24px}
  .project-media{padding:20px 20px 0;flex-direction:column;align-items:center}
  .project-video{width:100%;max-width:330px;height:auto;aspect-ratio:9/16;object-fit:contain}
  .project-media:before{inset:34px 12px 48px}
  .project-label{position:relative;right:auto;bottom:auto;align-self:flex-start;margin:14px 0 0;padding:8px 12px;font-size:.9rem}
  .project-copy{padding:24px 20px}
  .project-copy h3{font-size:2rem;line-height:1.1}
  .points{margin-top:20px}
  .region-visual,.contact-form{box-shadow:5px 5px 0 var(--yellow)}
  .region-label{position:static;display:block;margin-top:10px;font-size:.8rem;text-align:center}
  .contact-form{padding:24px 20px}
  .form-grid{grid-template-columns:minmax(0,1fr)}
  .field{min-width:0}
  .field input,.field textarea{min-width:0;font-size:16px}
  .contact-details a,.contact-details span{overflow-wrap:anywhere}
}
