/* Mobile layout pass: compact, content-led composition for phone viewports. */
@media (max-width: 700px) {
  :root {
    --mobile-gutter: 16px;
    --mobile-section: 52px;
  }

  html { scroll-padding-top: 72px; }
  body {
    padding-bottom: calc(64px + env(safe-area-inset-bottom));
    font-size: 16px;
  }
  .container { width: min(calc(100% - (var(--mobile-gutter) * 2)), var(--container)); }
  .section { padding: var(--mobile-section) 0; }

  /* Header and persistent contact action */
  .header-inner,
  .service-header-inner { min-height: 64px; }
  .brand,
  .service-logo { width: min(205px, 59vw); }
  .header-inner,
  .service-header-inner { gap: 12px; }
  .brand.brand-head,
  .service-logo.brand-head { width: min(287px, calc(100vw - 115px)); }
  .menu-button { width: 44px; height: 44px; }
  .mobile-menu {
    top: 64px;
    height: calc(100dvh - 64px);
    padding: 18px var(--mobile-gutter) calc(22px + env(safe-area-inset-bottom));
  }
  .mobile-menu-links { margin-top: 12px; }
  .mobile-menu .mobile-menu-links a { min-height: 56px; font-size: 22px; }
  .mobile-menu-contact { margin-top: 16px; grid-template-columns: 1fr; gap: 10px; }
  .mobile-menu .mobile-menu-phone { width: 100%; min-height: 54px; font-size: 17px; }
  .mobile-call-bar {
    min-height: calc(64px + env(safe-area-inset-bottom));
    padding: 8px var(--mobile-gutter) calc(8px + env(safe-area-inset-bottom));
  }
  .mobile-call-bar span { font-size: 13px; }
  .mobile-call-bar b { font-size: 12px; }
  .mobile-call-bar a {
    min-height: 44px;
    padding: 9px 11px 9px 9px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border-radius: 999px;
    font-size: 15px;
    font-weight: 500;
    white-space: nowrap;
  }
  .mobile-call-bar a svg { width: 18px; height: 18px; flex: 0 0 auto; fill: currentColor; }
  .mobile-call-bar a span { font-size: inherit; font-weight: 400; white-space: nowrap; }

  /* Main page: measured vertical rhythm */
  .hero { padding-top: 84px; }
  .hero-inner { min-height: 0; padding-bottom: 16px; }
  .hero h1 { font-size: clamp(36px, 10vw, 42px); line-height: .94; }
  .hero .hero-actions { display: none; }
  .hero-clients-shell {
    width: 100%;
    margin-inline: 0;
    min-height: 0;
    padding: 10px 0 9px;
    display: block;
  }
  .hero-clients h2 {
    padding: 0 16px 8px;
    font-size: 14px;
  }
  .hero-clients-scroll {
    padding-inline: 8px;
    scroll-padding-inline: 8px;
    scroll-snap-type: x proximity;
  }
  .hero-clients-track {
    min-width: max-content;
    display: flex;
    grid-template-columns: none;
  }
  .hero-clients-track a {
    width: max-content;
    min-width: 132px;
    height: 70px;
    padding: 4px 10px;
    flex: 0 0 auto;
    scroll-snap-align: start;
  }
  .hero-clients-track img {
    width: auto;
    height: auto;
    max-width: 220px;
    max-height: 62px;
  }

  .proof { padding: 34px 0; }
  .proof-intro { min-height: 0; padding: 18px 16px; }
  .proof-metrics > div {
    min-height: 110px;
    padding: 14px 8px 12px;
    grid-template-rows: 38px auto;
  }
  .proof-metrics strong { font-size: 28px; }
  .proof-metrics span { margin-top: 5px; font-size: 12px; line-height: 1.25; }

  .solutions { padding: 48px 0 36px; }
  .content-heading,
  .journey-heading { margin-bottom: 24px; }
  .content-heading h2,
  .journey-heading h2 { font-size: clamp(32px, 9vw, 38px); line-height: 1; }
  .content-heading > p,
  .journey-heading > p { font-size: 16px; line-height: 1.5; }
  .solution-grid { gap: 12px; }
  .solution-tile,
  .solution-tile-wide,
  .solution-grid > .solution-tile:nth-child(n) {
    min-height: 0;
    display: flex;
    flex-direction: column;
  }
  .solution-visual,
  .solution-tile-wide .solution-visual,
  .solution-tile-direction .solution-visual {
    min-height: 0;
    height: 176px;
    flex: 0 0 176px;
    padding: 14px;
  }
  .solution-visual img,
  .solution-tile-wide .solution-visual img,
  .solution-tile-direction .solution-visual img {
    width: min(72%, 250px);
    height: 150px;
    max-height: 150px;
  }
  .solution-copy,
  .solution-tile-wide .solution-copy { padding: 21px; }
  .solution-copy h3 { margin-top: 8px; font-size: 27px; line-height: 1.02; }
  .solution-copy p { margin-top: 10px; font-size: 15px; line-height: 1.5; }
  .solution-copy > a,
  .solution-copy > i { margin-top: 18px; padding-top: 16px; }

  .journey { padding: 48px 0 52px; }
  .journey-layout { gap: 12px; }
  .journey-outcome {
    min-height: 0;
    padding: 18px;
    gap: 16px;
  }
  .journey-outcome-intro > strong { font-size: 22px; }
  .journey-outcome ul { grid-template-columns: 1fr; gap: 6px; }
  .journey-outcome li { min-height: 48px; padding: 10px 12px 10px 36px; }
  .journey-outcome > a { width: 100%; min-height: 48px; }
  .journey-stages { gap: 8px; }
  .journey-stages article {
    min-height: 0;
    padding: 20px;
    align-content: start;
  }
  .journey-stages h3 { font-size: 21px; }
  .journey-stages p { font-size: 15px; }

  .equipment { padding: 52px 0; }
  .equipment-panel { grid-template-columns: 1fr; }
  .equipment-panel header { padding: 18px; }
  .equipment-panel h3 { font-size: 23px; }
  .equipment-panel-content { padding: 18px 18px 20px; }
  .equipment-panel-content p { font-size: 15px; line-height: 1.52; }
  .equipment-cta { margin-top: 12px; padding: 20px; }

  .model-links { padding: 52px 0; }
  .model-links-heading { margin-bottom: 24px; }
  .model-links-heading h2 { font-size: clamp(31px, 8.5vw, 37px); }
  .model-links-grid { gap: 7px; }
  .model-links-grid a {
    min-height: 60px;
    padding: 12px 14px;
    grid-template-columns: 1fr 22px;
  }
  .model-links-grid a > span:first-child { display: none; }
  .model-links-grid b { font-size: 17px; }

  .company { padding: 52px 0; }
  .company-layout { gap: 32px; }
  .reasons-grid { gap: 8px; }
  .reasons-grid article,
  .reasons-grid article:last-child {
    min-height: 0;
    padding: 21px;
    display: block;
  }
  .reasons-grid h3,
  .reasons-grid article:last-child h3 { margin: 0 0 9px; font-size: 23px; }
  .reasons-grid p { font-size: 15px; line-height: 1.5; }

  .trust-section { padding: 52px 0; }
  .trust-heading { margin-bottom: 30px; }
  .trust-heading h2 { font-size: clamp(31px, 8.7vw, 38px); }
  .document-group { margin-top: 36px; }
  .document-strip,
  .document-strip-certificates { grid-auto-columns: minmax(218px, 72vw); }
  .document-card { grid-template-rows: 230px minmax(96px, auto); }
  .document-card img { height: 230px; }
  .document-card > span { min-height: 96px; }

  .contact-layout {
    padding-top: 52px;
    padding-bottom: 52px;
    gap: 34px;
  }
  .contact-section h2 { font-size: clamp(34px, 9vw, 40px); }
  .contact-card { padding: 4px 18px; }
  .contact-row { padding: 17px 0; }
  .site-footer { padding-top: 46px; }
  .footer-main { gap: 34px; }
  .footer-nav { gap: 28px 18px; }

  /* Brand/model pages */
  .service-hero,
  .direction-hero { padding-top: 12px; }
  .breadcrumbs { margin-bottom: 8px; font-size: 12px; }
  .service-hero-grid,
  .direction-hero-grid { min-height: 0; }
  .service-hero-copy,
  .direction-hero-copy { padding: 18px 18px 22px; }
  .service-hero h1,
  .direction-hero h1 {
    margin: 9px 0 12px;
    font-size: clamp(34px, 10vw, 42px);
    line-height: .98;
  }
  body.direction-page .direction-hero h1 {
    font-size: clamp(31px, 9vw, 36px);
    overflow-wrap: anywhere;
  }
  .service-subject,
  .service-offer,
  .direction-hero-copy > p { font-size: 15.5px; line-height: 1.43; }
  .service-offer { margin-top: 16px; padding: 10px 0 10px 14px; border-left-width: 5px; }
  .service-actions { margin-top: 18px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .service-actions .button { min-height: 48px; padding: 9px 8px; justify-content: center; font-size: 14px; text-align: center; }
  .service-hero-art,
  .direction-hero-art {
    min-height: 0;
    height: 190px;
    padding: 12px;
  }
  .service-hero-art img,
  .direction-hero-art img {
    width: min(70%, 240px);
    height: 166px;
    max-height: 166px;
  }
  .service-facts-grid > div,
  .direction-facts article {
    min-height: 0;
    padding: 13px 16px;
  }
  .service-facts strong,
  .direction-facts h2 { font-size: 20px; }

  .service-content-section,
  .service-process,
  .service-other,
  .direction-work,
  .direction-packages { padding: 38px 0; }
  .service-content-grid { gap: 20px; }
  .service-content-grid,
  .service-content-title,
  .service-description,
  .service-model-card,
  .service-input-card { min-width: 0; }
  .service-content-title h2,
  .service-model-card strong { overflow-wrap: anywhere; }
  .service-content-section h2,
  .service-process h2,
  .service-other h2,
  .service-cta h2,
  .direction-section-heading h2,
  .direction-packages-heading h2 {
    font-size: clamp(31px, 8.7vw, 38px);
    line-height: 1;
  }
  .service-instrument-strip {
    min-height: 0;
    height: 124px;
    padding: 9px;
  }
  .service-instrument-strip img { height: 96px; }
  .service-description { gap: 7px; }
  .service-description-lead { padding: 15px; font-size: 15.5px; line-height: 1.45; }
  .service-model-card,
  .service-input-card { min-height: 0; padding: 16px; }
  .service-model-card span,
  .service-input-card span { margin-bottom: 16px; }
  .service-input-card p { line-height: 1.45; }
  .service-process-layout { gap: 18px; }
  .service-process ol { gap: 8px; border: 0; }
  .service-process li {
    min-height: 0;
    padding: 15px 16px;
    border: 1px solid rgba(255,255,255,.24);
    border-radius: 14px;
  }
  .service-process li > div { margin-top: 0; }
  .service-process h3 { margin-bottom: 6px; }
  .service-process p { line-height: 1.45; }
  .service-other nav { margin-top: 18px; grid-template-columns: 1fr 1fr; gap: 7px; }
  .service-other nav a { min-height: 48px; padding: 10px 11px; font-size: 14px; line-height: 1.25; }
  .service-cta { padding: 34px 0; }
  .service-cta .container { gap: 16px; }
  .service-cta h2 { margin-top: 9px; }
  .service-cta-phone { font-size: 27px; white-space: normal; }
  .service-cta p { margin-top: 11px; }
  .service-footer { padding: 28px 0 84px; }
  .service-footer .container { gap: 18px; }
  .service-footer img { width: 235px; }

  /* Direction pages */
  .direction-section-heading,
  .direction-packages-heading { margin-bottom: 20px; gap: 10px; }
  .direction-section-heading h2,
  .direction-packages-heading h2 { margin-top: 9px; }
  .direction-section-heading > p,
  .direction-packages-heading > p { line-height: 1.45; }
  .direction-work-layout { gap: 8px; }
  .direction-visual-panel {
    min-height: 0;
    height: 210px;
    padding: 12px;
  }
  .direction-main-device { height: 132px; }
  .direction-device-row { margin-top: -8px; }
  .direction-device-row img { height: 43px; }
  .direction-visual-panel strong { padding-top: 7px; font-size: 14.5px; line-height: 1.25; }
  .direction-work-grid { gap: 7px; border: 0; }
  .direction-work-grid article,
  .direction-work-grid article:nth-child(5) {
    min-height: 0;
    padding: 15px 16px;
    border: 1px solid var(--line);
    border-radius: 14px;
  }
  .direction-work-grid article > div { margin-top: 0; }
  .direction-work-grid h3 { margin-bottom: 6px; font-size: 20px; }
  .direction-work-grid p { font-size: 15px; line-height: 1.45; }
  .direction-package-grid { margin-top: 18px; grid-template-columns: 1fr 1fr; gap: 7px; border: 0; }
  .direction-package-grid article {
    min-height: 92px;
    padding: 15px;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 14px;
  }
  .direction-package-grid h3 { margin: 0 0 4px; font-size: 18px; }
  .direction-package-grid strong { font-size: 14px; }
}

@media (max-width: 370px) {
  .brand,
  .service-logo { width: 185px; }
  .mobile-call-bar a { padding-left: 8px; padding-right: 10px; }
}
