@media (max-width: 1180px) {
  :root { --container: 1080px; }
  .desktop-nav a { padding-inline: 9px; font-size: 0.86rem; }
  .desktop-nav a::after { left: 9px; right: 9px; }
  .header-actions .btn { padding-inline: 17px; }
  .hero-grid { grid-template-columns: minmax(0, 1fr) minmax(380px, 0.9fr); }
  .trust-grid { grid-template-columns: repeat(2, 1fr); }
  .trust-item:nth-child(3) { border-left: 0; border-top: 1px solid var(--line); }
  .trust-item:nth-child(4) { border-top: 1px solid var(--line); }
  .icon-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-grid { grid-template-columns: 1.1fr repeat(3, 0.8fr); gap: 28px; }
}

@media (max-width: 1024px) {
  :root { --header-h: 72px; }
  .topbar { display: none; }
  .desktop-nav,
  .header-actions .btn { display: none; }
  .mobile-toggle { display: inline-flex; }
  .brand { min-width: 0; }
  .hero-grid,
  .page-hero-grid,
  .split-grid,
  .contact-layout,
  .area-panel-inner {
    grid-template-columns: 1fr;
  }
  .hero-copy { max-width: 780px; }
  .hero-visual { width: min(100%, 760px); margin-inline: auto; }
  .hero-floating-card { right: 18px; }
  .cards-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cards-3 .service-card:last-child { grid-column: 1 / -1; width: calc(50% - 12px); }
  .process-grid { grid-template-columns: 1fr; }
  .counter-grid { grid-template-columns: repeat(2, 1fr); }
  .counter-item:nth-child(3) { border-left: 0; border-top: 1px solid rgba(255,255,255,0.13); }
  .counter-item:nth-child(4) { border-top: 1px solid rgba(255,255,255,0.13); }
  .page-hero-image { width: min(100%, 680px); }
  .content-grid { grid-template-columns: 1fr; }
  .sidebar-card { position: static; }
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 768px) {
  :root {
    --radius-lg: 26px;
    --section-space: 78px;
  }
  body { font-size: 15.5px; }
  .container,
  .container-narrow { width: min(calc(100% - 32px), var(--container)); }
  .header-inner { min-height: 70px; }
  .brand-mark { width: 44px; height: 44px; flex-basis: 44px; }
  .brand-name { font-size: 1.12rem; }
  .brand-tagline { font-size: 0.57rem; letter-spacing: 0.1em; }
  .hero { padding-top: 46px; }
  .hero-grid { gap: 44px; }
  .hero h1 { font-size: clamp(2.55rem, 11vw, 4.6rem); }
  .hero-actions { display: grid; grid-template-columns: 1fr; }
  .hero-actions .btn { width: 100%; }
  .hero-floating-card {
    position: relative;
    right: auto;
    bottom: auto;
    width: calc(100% - 22px);
    margin: -22px auto 0;
  }
  .trust-strip { margin-top: -18px; }
  .trust-grid { grid-template-columns: 1fr; }
  .trust-item + .trust-item,
  .trust-item:nth-child(3),
  .trust-item:nth-child(4) { border-top: 1px solid var(--line); border-left: 0; }
  .route-board { min-height: 470px; }
  .route-board-card.start { top: 34px; left: 22px; }
  .route-board-card.end { right: 22px; bottom: 34px; }
  .route-path { top: 150px; left: 74px; width: 60%; }
  .route-pin.one { top: 130px; left: 58px; }
  .route-pin.two { right: 58px; bottom: 118px; }
  .cards-3,
  .detail-grid,
  .gallery-grid { grid-template-columns: 1fr; }
  .cards-3 .service-card:last-child { grid-column: auto; width: 100%; }
  .service-media { min-height: 230px; }
  .icon-grid { grid-template-columns: 1fr; }
  .icon-card { min-height: 0; }
  .counter-grid { grid-template-columns: 1fr; }
  .counter-item + .counter-item,
  .counter-item:nth-child(3),
  .counter-item:nth-child(4) { border-top: 1px solid rgba(255,255,255,0.13); border-left: 0; }
  .counter-item { min-height: 150px; }
  .cta-banner-inner { align-items: flex-start; flex-direction: column; }
  .cta-banner-actions { width: 100%; }
  .cta-banner-actions .btn { flex: 1 1 100%; }
  .page-hero { padding-block: 54px 68px; }
  .page-hero-grid { gap: 36px; }
  .form-grid { grid-template-columns: 1fr; }
  .form-field.full { grid-column: auto; }
  .map-card-footer { align-items: flex-start; flex-direction: column; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-bottom-inner { align-items: flex-start; flex-direction: column; }
  .gallery-media { min-height: 260px; }
}

@media (max-width: 520px) {
  :root { --header-h: 68px; }
  .container,
  .container-narrow { width: min(calc(100% - 28px), var(--container)); }
  .header-inner { min-height: 68px; gap: 12px; }
  .brand { gap: 9px; }
  .brand-mark { width: 40px; height: 40px; flex-basis: 40px; }
  .brand-name { font-size: 1.02rem; }
  .brand-tagline { max-width: 170px; font-size: 0.52rem; }
  .mobile-toggle { width: 46px; height: 46px; border-radius: 13px; }
  .mobile-menu-shell { grid-template-columns: 1fr min(92vw, 375px); }
  .mobile-panel { padding: 18px; }
  .hero { padding-top: 38px; }
  .hero h1 { font-size: clamp(2.35rem, 12.3vw, 3.7rem); }
  .hero-lead { font-size: 1rem; }
  .hero-checks { display: grid; gap: 10px; }
  .hero-image-frame { padding: 8px; border-radius: 22px; }
  .hero-image-frame::before { display: none; }
  .hero-image-frame img { border-radius: 15px; }
  .hero-floating-card { width: calc(100% - 14px); padding: 18px; }
  .trust-item { min-height: 94px; padding: 18px; }
  .section-heading { margin-bottom: 34px; }
  .route-board { min-height: 430px; }
  .route-board-card { padding: 16px; }
  .route-board-card.start { width: 200px; }
  .route-board-card.end { width: 215px; }
  .route-path { left: 62px; width: 58%; height: 165px; }
  .service-body,
  .process-card,
  .detail-card,
  .contact-card { padding: 22px; }
  .service-media { min-height: 190px; }
  .feature-image { padding: 8px; border-radius: 22px; }
  .feature-image img { border-radius: 15px; }
  .area-panel { padding: 28px 22px; border-radius: 24px; }
  .area-callout { padding: 22px; }
  .faq-question { min-height: 64px; padding: 17px 18px; font-size: 1.03rem; }
  .faq-answer-inner { padding: 0 18px 20px; }
  .page-hero h1 { font-size: clamp(2.45rem, 12vw, 3.6rem); }
  .page-hero-image { padding: 7px; border-radius: 18px; }
  .page-hero-image img { border-radius: 12px; }
  .gallery-media { min-height: 220px; }
  .gallery-caption { padding: 19px 20px; }
  .map-card iframe { min-height: 360px; }
  .cta-banner { padding: 32px 22px; border-radius: 24px; }
  .footer-main { padding-top: 58px; }
  .floating-actions { right: max(13px, env(safe-area-inset-right)); bottom: max(18px, env(safe-area-inset-bottom)); gap: 10px; }
  .float-btn { width: 52px; height: 52px; }
  .float-tooltip { display: none; }
  .back-to-top { right: max(76px, calc(env(safe-area-inset-right) + 76px)); bottom: max(20px, env(safe-area-inset-bottom)); width: 44px; height: 44px; }
}

@media (max-width: 360px) {
  .brand-tagline { display: none; }
  .brand-name { font-size: 1rem; }
  .hero h1 { font-size: 2.25rem; }
  .btn { padding-inline: 16px; }
  .route-board-card.start { width: 180px; }
  .route-board-card.end { width: 190px; }
  .route-board-card strong { font-size: 1.15rem; }
}
