/* GESO mobile layout: editorial type, readable copy, and touch-safe controls. */
@media (max-width:700px){
  html{scroll-padding-top:5rem}
  body{overflow-x:clip}
  img,video{max-width:100%}
  .site-header{height:76px;padding:0 5vw;z-index:120}
  .site-header:after{left:5vw;right:5vw}
  .brand-logo img{width:clamp(118px,34vw,150px);max-width:100%;height:auto}
  .language-switch{height:36px;min-width:72px;justify-content:center}
  .language-switch button{font-size:.7rem;min-width:32px;min-height:36px}
  .site-header .menu-toggle{z-index:125;width:44px;height:44px;display:block;touch-action:manipulation}
  .site-header.menu-open{z-index:150}
  .site-header.menu-open .menu-toggle{position:fixed;right:5vw;top:16px}
  .site-header.menu-open .language-switch{right:calc(5vw + 56px);top:20px}
  .site-header.menu-open nav{height:100dvh;max-height:100dvh;padding:calc(90px + env(safe-area-inset-top)) 6vw calc(20px + env(safe-area-inset-bottom));overscroll-behavior:contain}
  .nav-primary>a{min-height:clamp(60px,10dvh,78px);grid-template-columns:1.7rem minmax(0,1fr) 2rem;gap:.5rem}
  .nav-primary>a>strong{font-size:clamp(1.5rem,7vw,2.5rem);white-space:normal;line-height:1.04}
  .nav-primary>a>b{width:2rem;height:2rem}
  .nav-aside{padding-top:1.1rem}
  .nav-data{padding:.9rem 0;margin-bottom:1rem}
  .nav-contact{min-height:48px}
  .nav-footer{padding-top:1rem;font-size:.7rem}

  .video-hero{height:100svh;min-height:580px;max-height:940px}
  .video-hero-media{object-position:center center}
  .video-hero-content{left:5vw;right:5vw;bottom:23%;max-width:none}
  .video-hero-content h1{font-size:clamp(2.05rem,8.25vw,3.6rem);line-height:1.04;letter-spacing:-.05em;overflow-wrap:normal}
  .video-hero-meta{top:94px;left:6vw;right:6vw;font-size:.72rem;line-height:1.4}
  .video-hero-scroll{bottom:30px;left:6vw;transform:none;font-size:.72rem;white-space:nowrap}
  .video-toggle{bottom:20px;right:5vw;width:48px;height:48px;z-index:5}

  .entry{padding:0 5vw}
  .entry-kicker{text-align:center;font-size:.76rem;line-height:1.5;letter-spacing:.14em}
  .enter-button{min-height:56px;min-width:min(252px,85vw)}
  .enter-button span{font-size:.75rem}

  .intro#company{display:block;min-height:0;padding:6rem 6vw 4rem}
  .intro#company .section-label{margin-bottom:2rem;font-size:.75rem}
  .intro-copy,.intro-body{position:relative;z-index:2}
  .intro#company h2{font-size:clamp(2.45rem,10.5vw,4.4rem);line-height:1.02;overflow-wrap:break-word}
  .intro#company .eyebrow{font-size:.72rem;line-height:1.5;letter-spacing:.14em}
  .intro-signature{margin-top:2.2rem;gap:.75rem;flex-wrap:wrap}
  .intro-signature i{width:32px}
  .intro-body{margin-top:3.4rem;padding:1.4rem 0 .5rem 1.25rem}
  .intro#company .intro-body .intro-lead{font-size:clamp(1.35rem,5.8vw,1.75rem);line-height:1.25}
  .intro#company .intro-body p:not(.intro-lead){font-size:1rem;line-height:1.65}
  .intro-principles span{font-size:.72rem;line-height:1.3}
  .naval-radar{--radar-size:min(86vw,390px);left:50%;top:19rem;opacity:.43}
  .radar-status{top:auto;bottom:1rem;right:6vw;opacity:.7}
  .intro#company .metrics{position:relative;z-index:2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:3rem 0 0}
  .intro#company .metrics div{min-height:145px;padding:1rem}
  .intro#company .metrics strong{font-size:clamp(3.5rem,17vw,5rem)}
  .intro#company .metrics span{font-size:.7rem;line-height:1.4;letter-spacing:.04em}

  .build-manifesto{height:auto;min-height:740px;padding:0 5vw}
  .build-manifesto .manifesto-copy.reveal,.build-manifesto .manifesto-copy.reveal.visible{top:13%;width:90vw}
  .build-manifesto .manifesto-copy h2{font-size:clamp(2rem,8.2vw,3.65rem);line-height:1.04;letter-spacing:-.04em}
  .service-orbit{width:125vw;bottom:-17rem}
  .service-card{top:12%;width:min(74vw,430px);padding:1rem .5rem}
  .build-manifesto .service-card h3{font-size:clamp(1.8rem,7.5vw,3rem);line-height:1.03;overflow-wrap:anywhere}
  .service-card>p:nth-of-type(3){font-size:1rem;line-height:1.48}
  .service-arrow{top:25%;width:48px;height:48px}
  .service-prev{left:10vw}.service-next{right:10vw}
  .ocean-depth{right:5vw;top:34%;bottom:14%;font-size:.65rem}
  .water-hint{display:none}

  .collaborations-intro{height:auto;min-height:380px;padding:5rem 6vw}
  .collaborations-intro h2{font-size:clamp(3.1rem,13vw,5.5rem);line-height:.97}
  .collaborations-intro>p:not(.eyebrow){font-size:1.1rem;line-height:1.45;margin-top:1.5rem}
  .collaborations-intro>span{margin-top:1.8rem;font-size:.72rem}
  .project-panel{height:max(100svh,690px);min-height:690px;border-radius:14px 14px 0 0}
  .project-panel>img{object-position:center center}
  .project-top{top:1.5rem;left:6vw;right:6vw;font-size:.68rem;line-height:1.5}
  .project-copy{left:6vw;right:6vw;bottom:clamp(3rem,7vh,5rem)}
  .project-copy>p:first-child{font-size:.72rem;margin-bottom:.8rem}
  .project-copy h3{width:auto;max-width:100%;white-space:normal!important;overflow-wrap:normal;font-size:clamp(1.85rem,8vw,3rem);line-height:1.04;letter-spacing:-.055em}
  .project-copy>p:nth-of-type(2){font-size:1rem;line-height:1.48;max-width:none;margin-top:1.1rem}
  .project-copy ul{margin-top:1rem;gap:.4rem}
  .project-copy li{font-size:.66rem;line-height:1.25;padding:.5rem .65rem;letter-spacing:.04em}
  .project-details-button{min-height:44px;font-size:.68rem}
  .project-details-card{bottom:clamp(1.5rem,5vh,3rem);max-height:76%;overflow-y:auto;padding:1.2rem}
  .project-details-card dt,.project-details-card dd{font-size:.78rem}

  .services#trades,.locations.section,.record#record,.team#team{padding:5rem 6vw}
  .services#trades .section-label,.locations .section-label,.record#record .section-label,.team#team .section-label{font-size:.72rem;margin-bottom:2rem}
  .services#trades .services-head h2,.locations-head h2,.record-head h2,.team#team .team-title h2{font-size:clamp(2.35rem,10vw,4.3rem);line-height:1.02;overflow-wrap:break-word}
  .services#trades .services-intro p,.locations-photo p,.team-statement>p{font-size:1rem;line-height:1.6}
  .services#trades .service-grid{margin-top:2.5rem}
  .services#trades .service-grid article{padding:0 1.3rem 1.6rem}
  .services#trades .service-grid article>p,.record#record .vessel-class>p,.team#team .process p{font-size:1rem;line-height:1.55}
  .services#trades .service-grid li{font-size:.72rem;line-height:1.35}
  .services#trades .service-grid h3{font-size:clamp(2rem,9vw,3rem)}
  .locations-head{min-width:0}
  .location-list article{grid-template-columns:32px minmax(0,1fr) auto;gap:.6rem}
  .location-list h3{font-size:clamp(1.6rem,7vw,2.2rem)}
  .location-list b{font-size:.7rem}
  .locations-photo{grid-template-columns:1fr}
  .locations-photo img{width:100%;height:280px;object-fit:cover}
  .record#record .record-grid{margin-top:2rem}
  .record#record .vessel-class{min-height:0;padding:1.3rem}
  .record#record .vessel-class h3{margin-top:1rem;font-size:1.7rem;line-height:1.08}
  .record#record .vessel-class>p{margin-bottom:1.3rem}
  .record-visual>div{height:300px;min-height:0}
  .record#record .record-visual img{object-position:center}
  .record#record .record-visual figcaption{font-size:.68rem;flex-wrap:wrap}
  .team-statement{padding-top:1.25rem}
  .team#team .trades>span{min-height:100px}
  .team#team .process article,.team#team .process article+article{min-height:190px}

  .contact{min-height:660px;display:flex;align-items:center}
  .contact>img{width:100%;height:100%;object-fit:cover;object-position:center}
  .contact-content{padding:6rem 6vw 5rem;width:100%}
  .contact h2{font-size:clamp(2.6rem,11vw,4.5rem);line-height:1.02;overflow-wrap:break-word}
  .contact-content>p:not(.eyebrow){font-size:1rem;line-height:1.6}
  .contact-actions{gap:1rem;max-width:100%}
  .contact-actions a{font-size:.9rem;line-height:1.4;overflow-wrap:anywhere;min-height:44px}
  footer{display:grid;grid-template-columns:1fr;gap:1.4rem;padding:3rem 6vw 2rem}
  footer p,footer a{font-size:.9rem;line-height:1.6}
  footer small{font-size:.72rem;line-height:1.5}
  .floating-contact{right:14px;bottom:calc(14px + env(safe-area-inset-bottom))}
  .floating-contact-toggle,.contact-orb{width:48px;height:48px}
}
@media(max-width:390px){
  .site-header{column-gap:.25rem}
  .brand-logo img{width:118px}
  .project-copy h3{font-size:clamp(1.75rem,7.7vw,2.4rem)}
  .service-orbit{width:135vw}
  .service-arrow{top:27%}
}
@media(max-width:700px) and (max-height:700px){
  .site-header.menu-open nav{padding-top:78px}
  .nav-primary>a{min-height:57px}
  .nav-aside{padding-top:.6rem}
  .nav-data{display:none}
  .video-hero-content{bottom:20%}
  .project-panel{height:690px}
}
@media(prefers-reduced-motion:reduce){
  .naval-radar-sweep,.radar-contact{animation:none}
}

/* Second mobile pass: keep long copy in document flow at every phone height. */
@media(max-width:700px){
  .build-manifesto{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;min-height:0;height:auto;padding:5.5rem 6vw 5rem;overflow:hidden}
  .build-manifesto .manifesto-copy.reveal,.build-manifesto .manifesto-copy.reveal.visible{position:relative;top:auto;left:auto;right:auto;width:100%;transform:none!important;text-align:center}
  .build-manifesto .manifesto-copy h2{font-size:clamp(2rem,8vw,3.6rem);line-height:1.08;margin:1rem 0 0}
  .build-manifesto .manifesto-copy .eyebrow{font-size:.76rem;line-height:1.4}
  .service-orbit{position:relative;inset:auto;width:100%;height:auto;min-height:360px;aspect-ratio:auto;margin:2.5rem 0 0;transform:none}
  .service-ring{inset:auto;left:50%;top:50%;width:min(105vw,450px);height:min(105vw,450px);translate:-50% -50%}
  .service-ring-b{width:min(84vw,360px);height:min(84vw,360px)}
  .service-ring-c{width:min(62vw,270px);height:min(62vw,270px)}
  .service-card{position:relative;top:auto;left:auto;width:min(100%,440px);margin:0 auto;padding:3.5rem 3rem 2rem;min-height:360px;display:flex;flex-direction:column;align-items:center;justify-content:center}
  .service-counter{font-size:.82rem;line-height:1.3;margin-bottom:.6rem}
  .service-label{font-size:.75rem;line-height:1.3}
  .build-manifesto .service-card h3{font-size:clamp(1.9rem,8vw,3rem);line-height:1.07;margin-bottom:.8rem}
  .service-card>p:nth-of-type(3){font-size:1rem;line-height:1.5;max-width:22rem}
  .service-progress{margin-top:1.3rem}
  .service-arrow{top:50%;transform:translateY(-50%);width:46px;height:46px;background:rgba(4,13,25,.72)}
  .service-arrow:hover{transform:translateY(-50%)}
  .service-prev{left:0}.service-next{right:0}
  .ocean-depth{z-index:0;opacity:.35;top:34%;bottom:8%}

  .project-step{display:block}
  .project-panel{position:relative;top:auto;display:flex;flex-direction:column;justify-content:flex-end;height:auto!important;min-height:max(630px,100svh);padding:6rem 6vw 2.25rem;transform:none!important;filter:none!important;will-change:auto}
  .project-panel>img{transform:none!important;transition:none;object-position:center center}
  .project-top{top:1.4rem}
  .project-copy{position:relative;left:auto;right:auto;bottom:auto;width:100%;max-width:none}
  .project-copy h3{font-size:clamp(2rem,8.2vw,3rem);line-height:1.08;white-space:normal!important;overflow-wrap:break-word}
  .project-copy>p:nth-of-type(2){font-size:1rem;line-height:1.55}
  .project-copy li{font-size:.7rem;line-height:1.25}
  .project-panel.details-open .project-copy{opacity:1}
  .project-details-card{position:relative;inset:auto;display:none;width:100%;max-height:none;overflow:visible;margin:1.25rem 0 0;padding:1.2rem;opacity:1;visibility:visible;transform:none}
  .project-panel.details-open .project-details-card{display:block;transform:none}
  .project-details-card dl{margin:1.5rem 0 0}
  .project-details-card dd{font-size:.82rem;line-height:1.45}

  .services#trades .service-grid article>p,.record#record .vessel-class>p,.team#team .process p,.intro#company .intro-body p,.contact-content>p:not(.eyebrow){font-size:1rem;line-height:1.65}
  .intro#company .eyebrow,.services#trades .eyebrow,.record-head .eyebrow,.team-title .eyebrow,.contact .eyebrow{font-size:.76rem;line-height:1.4;letter-spacing:.12em}
  .services#trades .service-grid li,.intro#company .metrics span,.record#record .vessel-class>small,.team#team .trades small{font-size:.75rem;line-height:1.45}
  .contact-actions a{font-size:1rem;max-width:100%;white-space:normal;overflow-wrap:anywhere}
  .site-header.menu-open .menu-toggle{background:rgba(6,19,32,.85);border-radius:50%}
  .site-header.menu-open .menu-toggle span{top:21px}
  .site-header.menu-open .menu-toggle span+span{top:21px}
}
@media(max-width:380px){
  .service-card{padding-left:2.4rem;padding-right:2.4rem}
  .service-arrow{width:42px;height:42px}
  .nav-primary>a>strong{font-size:1.45rem}
}
@media(max-width:700px) and (max-height:680px){
  .entry-brand{top:1rem}
  .entry-kicker{top:4.4rem}
  .compass-wrap{transform:scale(.8)}
  .enter-button{top:calc(50% + 125px)}
  .coordinates{bottom:1rem}
}

/* Mobile company composition and overlapping project sequence. */
@media(max-width:700px){
  .intro#company{display:flex;flex-direction:column;align-items:stretch;overflow:hidden}
  .intro#company .section-label{order:1}
  .intro#company .intro-copy{order:2}
  .intro#company .naval-radar{order:3;position:relative;top:auto;left:auto;transform:none;flex:none;align-self:flex-end;width:min(75vw,330px);height:min(75vw,330px);margin:2.5rem 2vw 1rem 0;opacity:.82;background:radial-gradient(circle,rgba(3,22,38,.97) 0%,rgba(3,22,38,.92) 68%,rgba(3,22,38,.68) 100%)}
  .intro#company .intro-body{order:4;margin-top:2rem}
  .intro#company .metrics{order:5}
  .intro#company .radar-status{display:none}
  .intro#company:after{background-position:center,center,20% center}

  .collaborations-intro{width:100%;min-width:0;overflow:hidden;padding:5rem 5vw 4rem}
  .collaborations-intro h2{display:block;max-width:100%;font-family:Inter,Arial,sans-serif;font-size:clamp(1.85rem,8vw,3.2rem);font-weight:750;line-height:1.08;letter-spacing:-.075em;overflow-wrap:normal;white-space:normal}
  .collaborations-intro h2 em{font-weight:650;font-style:normal}

  .collaborations .project-step{display:contents}
  .collaborations .project-panel{position:sticky;top:0;display:flex;flex-direction:column;justify-content:flex-end;height:100svh!important;min-height:0;padding:5.5rem 6vw max(2.25rem,env(safe-area-inset-bottom));transform:none!important;filter:none!important;will-change:auto}
  .collaborations .project-copy{position:relative;left:auto;right:auto;bottom:auto;width:100%;max-width:none}
  .collaborations .project-panel.details-open .project-details-card{position:absolute;top:auto;left:6vw;right:6vw;bottom:1rem;display:block;width:auto;max-height:75svh;overflow-y:auto;z-index:4}
  .collaborations .project-panel.details-open .project-copy{opacity:.2}
}

/* Three distinct company figures: balance the final card on narrow screens. */
@media(max-width:700px){.intro#company .metrics>div:last-child{grid-column:1/-1;border-right:0}}
