.topbar .wrap > span {
  max-width:100%;
  font-family:"Avenir Next", Avenir, "Segoe UI", Arial, Helvetica, sans-serif;
  font-size:1.7425rem;
  font-weight:700;
  line-height:1.2;
  letter-spacing:.04em;
  text-wrap:balance;
}

.mobile-nav { display:none; }
.mobile-links[hidden] { display:none; }
.mobile-menu-toggle:focus-visible,
.mobile-links a:focus-visible,
.mobile-consultation-link:focus-visible {
  outline:3px solid var(--red);
  outline-offset:3px;
}

@media (max-width:800px) {
  .wrap,.work-content { width:calc(100% - 32px); }
  .topbar { letter-spacing:.06em; }
  .topbar .wrap { gap:8px; padding:8px 0; }
  .top-social-links { gap:10px; font-size:12px; }
  .nav { display:none; }
  .mobile-nav {
    display:flex;
    position:relative;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:10px 0;
  }
  .mobile-menu-toggle {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:44px;
    padding:8px 12px;
    border:1px solid var(--line);
    border-radius:5px;
    background:var(--paper);
    color:var(--ink);
    font:600 14px/1.55 Arial,Helvetica,sans-serif;
    cursor:pointer;
  }
  .mobile-menu-toggle::after { content:"+"; color:#b43726; font-size:20px; line-height:1; }
  .mobile-menu-toggle[aria-expanded="true"]::after { content:"−"; }
  .mobile-links {
    position:absolute;
    z-index:10;
    left:0;
    right:0;
    top:100%;
    display:flex;
    flex-direction:column;
    padding:8px;
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:5px;
    box-shadow:0 6px 16px #11151818;
  }
  .mobile-links a { display:flex; align-items:center; min-height:44px; padding:8px 12px; font-size:16px; font-weight:600; }
  .mobile-links a[aria-current="page"] { color:#b43726; }
  .mobile-consultation-link {
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    padding:10px 12px;
    border-radius:5px;
    background:#b43726;
    color:#fff;
    font-size:14px;
    font-weight:600;
    line-height:1.55;
    text-align:center;
    text-decoration:none;
  }
  .mobile-consultation-link:hover { background:#942b1d; }

  body { font-size:16px; line-height:1.5; }
  .hero { min-height:0; padding:30px 0 28px; }
  .hero .wrap { padding:0; }
  .hero h1,.work-content h1 {
    font-size:32px;
    line-height:1.1;
    letter-spacing:-.025em;
    margin:12px 0 14px;
  }
  .home-page .hero .eyebrow { display:none; }
  .portfolio-page .hero { background:none; padding:0; }
  .portfolio-page .hero .eyebrow,
  .portfolio-page .hero p,
  .portfolio-page .hero .back { display:none; }
  .portfolio-page .hero h1 {
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip-path:inset(50%);
    white-space:nowrap;
  }
  .work-content h1 { font-size:28px; margin-top:0; margin-bottom:18px; }
  .hero p,.section-head p,.content p,.project-copy p,
  .faq-item p,.contact p,.analysis-card p,.notice p,.step p,.option p {
    font-size:16px;
    line-height:1.5;
  }
  .hero p { margin:0 0 16px; }
  .hero p:last-child { margin-bottom:0; }
  .hero-quote { margin:20px 0; padding-left:14px; font-size:18px; line-height:1.4; }
  .hero-quote cite { margin-top:8px; font-size:12px; }
  section { padding:32px 0; }
  .work-content { padding:24px 0 32px; }
  .service-category { padding:0; }
  .section-head { gap:16px; margin-bottom:24px; }
  .section-head h2,.content h2,.experience h2,.contact-grid h2,.footer-grid h2 {
    font-size:24px;
    line-height:1.2;
    letter-spacing:-.025em;
    margin:0 0 12px;
  }
  .section-head h2,.section-head p { margin:0; }
  .content,.experience,.contact-grid,.footer-grid { gap:24px; }
  .button-row { gap:10px; margin-top:18px; }
  .button { min-height:44px; padding:11px 14px; font-size:16px; }
  .back { display:inline-flex; align-items:center; min-height:44px; margin-top:0; font-size:14px; }
  .service,.analysis-card,.option { min-height:0; padding:20px; }
  .service h3,.analysis-card h3,.option h3 { font-size:20px; line-height:1.2; margin:12px 0 10px; }
  .standard { min-height:0; padding:20px; }
  .standard h3 { font-size:18px; margin:0 0 8px; }
  .standard p { margin:0; font-size:16px; line-height:1.5; }
  .analysis-grid,.steps { gap:20px; }
  .service-details { margin-top:20px; }
  .service-detail { padding:18px 20px; }
  .service-detail strong { font-size:12px; letter-spacing:.08em; }
  .service-detail span { font-size:16px; line-height:1.35; margin-top:8px; }
  .step h3 { font-size:20px; margin:10px 0 8px; }
  .notice { padding:20px; margin-top:24px; }
  .notice h3 { font-size:18px; }
  .details { margin-top:24px; }
  .detail { padding:16px 0; }
  .project,.project:nth-child(even) { min-height:0; }
  .project-visual { min-height:210px; padding:18px; }
  .project-copy { padding:22px; }
  .project h3 { font-size:24px; line-height:1.2; margin:10px 0; }
  .scope { gap:6px; margin-top:14px; }
  .photo-note { margin-top:12px; }
  .gallery-caption { padding:12px; gap:10px; }
  .future { padding:20px; margin-top:20px; }
  .future h2 { font-size:22px; }
  .faq-search { padding:20px; margin-bottom:24px; }
  .faq-search label { font-size:18px; }
  .faq-search-help { margin-bottom:12px; }
  .faq-search-status { margin-top:12px; }
  .faq-item summary { padding:18px 16px; gap:12px; font-size:16px; line-height:1.4; }
  .faq-item p { padding:0 16px 18px; }
  .faq-recommendation { padding:20px; margin-top:18px; }
  .faq-recommendation h3 { font-size:20px; }
  .faq-cta { margin-top:28px; padding:22px; }
  .faq-cta h2 { font-size:22px; }
  .appointment-note,.note { margin-top:20px; padding:20px; }
  .office-details { margin-top:24px; }
  .office-map { margin-top:24px; }
  .contact { font-size:16px; }
  .contact p { padding:14px 0; }
  .proof div { padding:12px 14px; }
  .proof strong { font-size:20px; }
  .quote { padding:22px; font-size:20px; line-height:1.35; }
  .quote small { margin-top:16px; }
  .fact { grid-template-columns:100px 1fr; gap:16px; padding:16px 0; }
  .fact strong { font-size:18px; }
  .footer-grid ~ .social-links { margin-top:20px; }
  .copyright { margin-top:24px; padding-top:16px; }
  .home-page footer .footer-grid { gap:16px; }
  .home-page footer .button-row { margin-top:14px; }
  .home-page footer .contact p { margin:0; padding:6px 0; }
  .home-page footer .contact p:first-child { padding-top:0; }
  .home-page footer .contact p:last-child { padding-bottom:0; }
  .home-page footer .office-map { margin-top:16px; }
  footer { padding:32px 0 24px; }
}

@media (max-width:380px) {
  .wrap,.work-content { width:calc(100% - 28px); }
}
