/* Responsive refinements — iFIXPRO, September 2026. */
.hero-copy, .about-title, .about-copy, .service-card, .social { min-width: 0; }
.hero-title-line { display: block; }
.hero-title-accent { display: block; }
.hero-notes { flex-wrap: wrap; }
.line { flex-shrink: 0; }
img { max-width: 100%; }

@media (max-width: 1050px) and (min-width: 761px) {
  .hero { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); }
  .hero h1 { font-size: clamp(2.65rem, 5.5vw, 3.7rem); letter-spacing: -.035em; }
  .hero-actions { align-items: flex-start; flex-direction: column; }
  .hero-bottom { flex-wrap: wrap; gap: 16px; }
  .service-grid { gap: 14px; }
  .card-content { padding: 22px 16px; }
  .card-content h3 { font-size: 1.4rem; letter-spacing: -.025em; }
  .card-content > p:not(.card-kicker) { min-height: 0; }
  .social-grid { grid-template-columns: 1fr; }
  .social .social-arrow { display: block; }
}

@media (max-width: 760px) {
  html { scroll-padding-top: 24px; }
  .section-wrap { padding-inline: clamp(20px, 5vw, 32px); }
  .header { height: auto; min-height: 0; padding: 20px 20px 0; flex-direction: column; gap: 16px; }
  .header .brand { align-self: center; gap: 10px; font-size: 1.55rem; }
  .header .brand img { width: 46px; height: 46px; flex-shrink: 0; }
  .header .brand small { font-size: .75rem; letter-spacing: .08em; }
  .header nav { width: 100%; max-width: 480px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; border-top: 1px solid var(--border); padding-top: 4px; font-size: .875rem; }
  .header nav a { display: grid; place-items: center; min-height: 48px; padding: 8px 4px; border-radius: 6px; }
  .header nav a:hover, .header nav a:focus-visible { background: #00cbed0d; }
  .hero { grid-template-columns: minmax(0, 1fr); min-height: 0; padding-top: 38px; }
  .hero::before { inset: 0; }
  .hero h1 { font-size: clamp(2.15rem, 8.9vw, 3.8rem); line-height: 1.16; letter-spacing: -.025em; word-spacing: normal; overflow-wrap: anywhere; }
  h2, h3 { overflow-wrap: anywhere; }
  .hero-title-accent { display: inline; }
  .hero-title-line + .hero-title-line { margin-top: .08em; }
  .eyebrow { font-size: .75rem; letter-spacing: .08em; line-height: 1.65; gap: 10px; }
  .hero-description, .section-heading > p, .card-content > p:not(.card-kicker), .about-copy > p, .contact-inner > p:not(.eyebrow):not(.phone) { font-size: 1rem; line-height: 1.8; }
  .hero-actions { display: flex; flex-direction: column; align-items: stretch; gap: 12px; }
  .hero-actions .button { width: 100%; min-height: 54px; padding: 15px 12px; gap: 10px; font-size: .875rem; }
  .hero-actions .text-link { display: flex; align-items: center; justify-content: center; min-height: 44px; font-size: .875rem; }
  .hero-notes { display: grid; gap: 10px; margin-top: 20px; font-size: .8125rem; color: #a3adbc; }
  .hero-notes span { gap: 8px; }
  .hero-art { width: min(82%, 350px); margin: 48px auto 24px; }
  .art-label { max-width: 100%; font-size: .75rem; line-height: 1.4; letter-spacing: .02em; gap: 6px; padding: 8px; }
  .label-top { top: 0; right: -3%; max-width: 85%; }
  .label-bottom { bottom: -6%; left: -3%; max-width: 106%; }
  .coordinate { display: none; }
  .hero-bottom { margin-top: 28px; padding: 20px 0; gap: 12px; align-items: center; font-size: .75rem; letter-spacing: 0; }
  .hero-bottom > span { flex: 1; min-width: 0; line-height: 1.9; }
  .hero-bottom b { margin-inline: 4px; }
  .hero-bottom > a { min-width: 44px; min-height: 44px; display: grid; place-items: center; }
  .hero-bottom a span { margin: 0; }
  .services { padding-block: 52px 60px; }
  .section-heading h2, .about h2 { font-size: clamp(1.85rem, 7.4vw, 2.5rem); line-height: 1.2; letter-spacing: -.025em; }
  .service-grid { grid-template-columns: minmax(0, 1fr); }
  .card-photo { height: clamp(210px, 65vw, 300px); }
  .card-content { padding: 24px 20px; }
  .card-content h3 { font-size: 1.75rem; letter-spacing: -.025em; }
  .card-kicker { font-size: .75rem; letter-spacing: .09em; }
  .card-content ul { font-size: .875rem; line-height: 1.8; }
  .card-content li + li { margin-top: 8px; }
  .card-content > a { min-height: 52px; gap: 12px; font-size: .875rem; }
  .about { grid-template-columns: minmax(0, 1fr); padding-block: 56px; gap: 32px; }
  .about-signature { flex-wrap: wrap; gap: 16px; }
  .about-signature > span:last-child { font-size: .75rem; letter-spacing: .04em; padding-left: 16px; }
  .about-value { gap: 14px; }
  .about-value > div { min-width: 0; }
  .about-value p { font-size: .875rem; }
  .contact { padding-block: 56px 32px; }
  .contact-inner { padding: 36px 16px 28px; }
  .contact h2 { font-size: clamp(1.65rem, 6.8vw, 2.5rem); letter-spacing: -.025em; line-height: 1.22; }
  .social-grid { grid-template-columns: minmax(0, 1fr); }
  .social { padding: 16px 12px; gap: 12px; min-height: 76px; }
  .social > span { min-width: 0; overflow-wrap: anywhere; }
  .social strong { font-size: 1rem; }
  .social small, .phone { font-size: .8125rem; }
  .social .social-arrow { display: block; }
  .footer { flex-wrap: wrap; gap: 18px; padding-bottom: 100px; }
  .footer > a:last-child { min-height: 44px; display: flex; align-items: center; font-size: .875rem; }
  .footer p { font-size: .75rem; line-height: 1.8; }
  .floating-wa { right: max(16px, env(safe-area-inset-right)); bottom: max(16px, env(safe-area-inset-bottom)); }
}

@media (hover: none) {
  .service-card:hover, .button:hover, .social:hover { transform: none; }
}
