/* v2.9.4 – Mobile-first refinement. Loaded after all page-specific styles. */
@media (max-width: 820px) {
  html, body { width:100%; max-width:100%; overflow-x:hidden; }
  body { -webkit-text-size-adjust:100%; }
  img, svg, video, iframe, canvas { max-width:100%; height:auto; }
  .wrap, .content-wrap { width:calc(100% - 32px) !important; max-width:none !important; }
  .top { display:none !important; }
  .header { top:0 !important; }
  .nav { height:68px !important; gap:10px !important; }
  .header.scrolled .nav { height:64px !important; }
  .brand { gap:9px !important; min-width:0; }
  .brand-mark, .header.scrolled .brand-mark { width:40px !important; height:40px !important; }
  .brand-copy { min-width:0; }
  .brand-copy strong, .header.scrolled .brand-copy strong { font-size:15px !important; letter-spacing:.09em !important; white-space:nowrap; }
  .brand-copy span { display:none !important; }
  .menu-toggle { display:flex !important; width:42px !important; height:42px !important; flex:0 0 42px; }
  .navlinks, .nav > .btn, .header-cta { display:none !important; }
  .mobile-nav { top:68px !important; max-height:calc(100svh - 68px); overflow-y:auto; overscroll-behavior:contain; padding:12px 16px 22px !important; }
  .header.scrolled + .mobile-nav, .header.scrolled .mobile-nav { top:64px !important; max-height:calc(100svh - 64px); }
  .mobile-row { grid-template-columns:minmax(0,1fr) 44px !important; }
  .mobile-row > a, .mobile-direct { min-width:0; overflow-wrap:anywhere; }
  .mobile-submenu { padding-left:12px !important; }

  .page-hero, .legal-hero, .legal-hero-compact { padding:40px 0 44px !important; }
  .page-hero-grid, .page-specialization .page-hero-grid, .hero-grid { grid-template-columns:minmax(0,1fr) !important; gap:26px !important; }
  .page-hero-grid > *, .hero-grid > *, .section-head > *, .split > *, .showcase > *, .contact-grid > *, .fit-grid > *, .switch-grid > *, .career-box > *, .diff-grid > * { min-width:0; }
  .page-hero h1, .page-specialization .page-hero h1, .page-buchhaltung .page-hero h1, .page-contact .page-hero h1,
  .legal-hero h1, .legal-hero-compact h1, .hero h1, h1 {
    font-size:clamp(38px,11.2vw,50px) !important;
    line-height:.98 !important;
    letter-spacing:-.045em !important;
    max-width:none !important;
    margin:15px 0 20px !important;
    overflow-wrap:break-word;
    word-break:normal;
    hyphens:auto;
  }
  .page-hero .lead, .legal-hero .lead, .legal-hero-compact .lead, .lead {
    font-size:16px !important;
    line-height:1.58 !important;
    margin-bottom:24px !important;
    max-width:none !important;
  }
  .eyebrow { font-size:10px !important; letter-spacing:.12em !important; gap:8px !important; }
  .eyebrow:before { width:22px !important; }
  .actions { gap:9px !important; }
  .actions .btn { flex:1 1 150px; min-width:0; padding-left:14px !important; padding-right:14px !important; }

  .visual-panel { min-height:0 !important; padding:22px !important; border-radius:24px !important; }
  .visual-panel h2 { font-size:30px !important; max-width:none !important; }
  .visual-grid { grid-template-columns:1fr !important; gap:10px !important; margin-top:22px !important; }
  .visual-card { min-height:0 !important; padding:16px !important; }
  .visual-card strong { font-size:19px !important; }
  .screen-frame { padding:8px !important; border-radius:20px !important; }
  .screen-frame img { border-radius:13px !important; }
  .screen-note, .float { display:none !important; }

  section, .difference, .work, .switch, .fit, .location, .career, .cta { padding:56px 0 !important; }
  .section-head, .work-head, .board-head { grid-template-columns:minmax(0,1fr) !important; gap:16px !important; margin-bottom:28px !important; align-items:start !important; }
  .section-head h2, .work-head h2, .board-head h2, .statement h2, .manifesto h2, .switch-intro h2, .fit h2, .career-main h2, .cta h2 {
    font-size:clamp(32px,9.4vw,40px) !important;
    line-height:1.02 !important;
    letter-spacing:-.04em !important;
    max-width:none !important;
    overflow-wrap:break-word;
    hyphens:auto;
  }
  .section-head p, .work-head p, .board-head p { font-size:16px !important; line-height:1.6 !important; max-width:none !important; }

  .card-grid, .card-grid.four, .card-grid.two, .two-cols, .steps, .job-grid, .contact-grid, .loc-grid,
  .special-grid, .diff-list, .legal-grid, .legal-grid-intro, .legal-rights-grid, .fit-grid, .switch-grid, .career-box, .split {
    grid-template-columns:minmax(0,1fr) !important;
  }
  .card-grid, .two-cols, .job-grid, .contact-grid, .special-grid, .loc-grid { gap:14px !important; }
  .card, .feature-panel, .job-card, .contact-card, .special-card, .loc-card {
    min-height:0 !important; height:auto !important; padding:22px !important; border-radius:22px !important;
  }
  .card > .num + div { margin-top:24px !important; }
  .card h3, .special-card h3 { font-size:23px !important; }
  .feature-panel h3, .job-card h3, .contact-card h3 { font-size:26px !important; }
  .card p, .special-card p, .feature-panel p, .job-card p, .contact-card p, .contact-card address { overflow-wrap:anywhere; }

  .statement, .manifesto { min-height:0 !important; padding:26px !important; border-radius:24px !important; }
  .statement .quote, .manifesto .quote { font-size:17px !important; }
  .list-stack { gap:11px !important; }
  .list-row { grid-template-columns:38px minmax(0,1fr) !important; gap:12px !important; padding:18px !important; border-radius:18px !important; }
  .list-row .index { width:36px !important; height:36px !important; border-radius:11px !important; }
  .list-row h3 { font-size:19px !important; }

  .board-shell, .work-shell {
    width:100% !important; margin:0 !important; padding:24px 14px !important; border-radius:24px !important; overflow:hidden !important;
  }
  .tabs { display:flex !important; flex-wrap:nowrap !important; overflow-x:auto !important; max-width:100%; gap:7px !important; padding:0 0 5px !important; margin-bottom:14px !important; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
  .tabs::-webkit-scrollbar { display:none; }
  .tab { flex:0 0 auto; padding:9px 12px !important; font-size:11px !important; }
  .showcase { grid-template-columns:minmax(0,1fr) !important; gap:10px !important; }
  .shot { min-width:0; padding:7px !important; border-radius:18px !important; overflow:hidden; }
  .shot img { width:100% !important; height:auto !important; object-fit:contain !important; border-radius:12px !important; }
  .shot-copy { padding:20px !important; border-radius:18px !important; min-width:0; }
  .shot-copy h3 { font-size:25px !important; }
  .shot-copy .links { gap:7px !important; }
  .shot-copy .links .btn { width:100%; }

  .timeline { padding:20px !important; border-radius:22px !important; }
  .timeline-row { grid-template-columns:40px minmax(0,1fr) !important; gap:12px !important; padding:18px 0 !important; }
  .timeline-row b { width:36px !important; height:36px !important; }
  .chooser { padding:21px !important; border-radius:22px !important; }
  .choice-row, .pills, .pill-row, .seo-link-row { gap:7px !important; }
  .choice, .pill, .pills a, .pills span, .seo-link-row a { white-space:normal !important; text-align:center; overflow-wrap:anywhere; }
  .fit-result { padding:18px !important; }

  .faq-section { padding:56px 0 62px !important; }
  .faq-section .section-head { margin-bottom:26px !important; }
  .faq-section .section-head h2 { font-size:clamp(32px,9.4vw,38px) !important; }
  .faq details { padding:0 16px !important; border-radius:16px !important; }
  .faq summary { min-height:62px !important; padding:17px 0 !important; font-size:15px !important; gap:12px; }
  .faq details p, .faq details ul { font-size:14px !important; line-height:1.65 !important; padding-right:0 !important; }

  .capacity-band { padding:42px 0 !important; }
  .capacity-inner { grid-template-columns:minmax(0,1fr) !important; gap:20px !important; }
  .capacity-inner h2 { font-size:32px !important; }
  .capacity-inner .btn { width:100%; }

  .cta-box { display:flex !important; flex-direction:column !important; align-items:stretch !important; gap:22px !important; padding:26px 20px !important; border-radius:24px !important; }
  .cta-actions { width:100%; justify-content:stretch !important; }
  .cta-actions .btn { width:100%; }

  .legal-wrap, .legal-wrap-wide { padding:48px 0 62px !important; }
  .legal-layout { grid-template-columns:minmax(0,1fr) !important; gap:22px !important; }
  .legal-toc { position:static !important; display:block !important; padding:18px !important; border-radius:18px !important; }
  .legal-toc a { padding:7px 0 !important; overflow-wrap:anywhere; }
  .legal-overview { padding:18px !important; border-radius:18px !important; }
  .legal-overview-links { grid-template-columns:minmax(0,1fr) !important; gap:0 !important; }
  .legal-overview a { min-width:0; overflow-wrap:anywhere; }
  .legal-block, .legal-content-wide .legal-block { padding:22px 19px !important; border-radius:18px !important; }
  .legal-block h2, .legal-content-wide .legal-block h2 { font-size:26px !important; overflow-wrap:break-word; }
  .legal-block p, .legal-block li, .legal-block address, .legal-contact { overflow-wrap:anywhere; word-break:normal; }

  .contact-line { font-size:17px !important; overflow-wrap:anywhere; }

  footer { padding:38px 0 20px !important; }
  .footer-grid { grid-template-columns:minmax(0,1fr) !important; gap:26px !important; }
  .footer-brand, .footer-grid > div:last-child { grid-column:auto !important; min-width:0; }
  .footer-brand { padding-right:0 !important; }
  .footer-brand img, .footer-logo { width:185px !important; max-width:78vw !important; margin:-12px 0 8px !important; }
  .footer-brand p { font-size:13px !important; line-height:1.6 !important; max-width:none !important; }
  .footer-grid h4 { margin-bottom:10px !important; }
  .footer-grid p, .footer-grid a { margin:5px 0 !important; overflow-wrap:anywhere; }
  .footer-regional-block { grid-template-columns:minmax(0,1fr) !important; gap:10px !important; margin-top:18px !important; padding:16px 0 0 !important; }
  .footer-regional-label { white-space:normal !important; }
  .footer-regional-links { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:7px !important; width:100%; }
  .footer-regional-links a { justify-content:center; width:100%; min-width:0; min-height:34px !important; padding:7px 8px !important; text-align:center; white-space:normal; }
  .footer-capacity-link { width:100%; justify-content:center; min-width:0; white-space:normal !important; text-align:center; }
  .footer-bottom { margin-top:24px !important; padding-top:17px !important; flex-direction:column !important; align-items:flex-start !important; gap:10px !important; }
  .footer-legal { gap:14px !important; }

  .paths { grid-template-columns:minmax(0,1fr) !important; min-height:0 !important; }
  .path-title, .path { padding:18px 0 !important; border-left:0 !important; min-width:0; }
  .path { border-top:1px solid var(--line); }
  .path.board { padding:18px !important; }
  .bento { grid-template-columns:minmax(0,1fr) !important; gap:14px !important; }
  .tile, .tile.big { grid-column:auto !important; grid-row:auto !important; min-height:0 !important; padding:24px !important; border-radius:22px !important; }
  .tile h3, .tile.big h3 { font-size:30px !important; }
  .diff-grid { grid-template-columns:minmax(0,1fr) !important; gap:14px !important; }
  .diff-list { grid-template-columns:minmax(0,1fr) !important; gap:12px !important; }
  .diff-card { min-height:0 !important; padding:23px !important; }
  .process { overflow:hidden; }
  .steps { grid-template-columns:minmax(0,1fr) !important; gap:18px !important; }
  .step { padding-top:17px !important; }
  .loc-card { min-height:0 !important; }
  .loc-card h3 { font-size:32px !important; }
}

@media (max-width: 480px) {
  .wrap, .content-wrap { width:calc(100% - 24px) !important; }
  .nav { height:64px !important; }
  .brand-mark, .header.scrolled .brand-mark { width:38px !important; height:38px !important; }
  .brand-copy strong, .header.scrolled .brand-copy strong { font-size:14px !important; }
  .menu-toggle { width:40px !important; height:40px !important; flex-basis:40px; }
  .mobile-nav { top:64px !important; max-height:calc(100svh - 64px); padding-left:12px !important; padding-right:12px !important; }
  .page-hero h1, .page-specialization .page-hero h1, .page-buchhaltung .page-hero h1, .page-contact .page-hero h1,
  .legal-hero h1, .legal-hero-compact h1, .hero h1, h1 { font-size:clamp(36px,10.8vw,46px) !important; }
  .section-head h2, .work-head h2, .board-head h2, .statement h2, .manifesto h2, .switch-intro h2, .fit h2, .career-main h2, .cta h2 { font-size:32px !important; }
  .actions { display:grid !important; grid-template-columns:1fr !important; }
  .actions .btn { width:100%; }
  .visual-panel { padding:19px !important; }
  .card, .feature-panel, .job-card, .contact-card, .special-card, .loc-card { padding:20px !important; }
  .board-shell, .work-shell { padding:22px 12px !important; }
  .shot-copy { padding:18px !important; }
  .footer-regional-links { grid-template-columns:minmax(0,1fr) !important; }
  .footer-brand img, .footer-logo { width:175px !important; }
}

/* v2.9.4b – compact mobile footer */
@media (max-width: 560px) {
  .footer-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important; gap:24px 18px !important; }
  .footer-brand { grid-column:1 / -1 !important; }
  .footer-grid > div:last-child { grid-column:1 / -1 !important; }
  .footer-regional-links { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
}
@media (max-width: 340px) {
  .footer-grid { grid-template-columns:minmax(0,1fr) !important; }
  .footer-brand, .footer-grid > div:last-child { grid-column:auto !important; }
  .footer-regional-links { grid-template-columns:minmax(0,1fr) !important; }
}


/* v2.9.5 – mobile navigation UX + persistent brand header */
@media (max-width: 820px) {
  body { padding-top:64px !important; }
  .header {
    position:fixed !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    width:100% !important;
    z-index:1000 !important;
    background:rgba(255,255,255,.96) !important;
    -webkit-backdrop-filter:blur(18px);
    backdrop-filter:blur(18px);
  }
  .header.scrolled { box-shadow:0 8px 28px rgba(25,27,29,.08); }
  .nav, .header.scrolled .nav { height:64px !important; }
  .brand { flex:1 1 auto; }
  .brand-mark, .header.scrolled .brand-mark { width:38px !important; height:38px !important; }
  .brand-copy strong, .header.scrolled .brand-copy strong {
    display:block !important;
    font-size:15px !important;
    letter-spacing:.105em !important;
  }
  .mobile-nav,
  .header.scrolled + .mobile-nav,
  .header.scrolled .mobile-nav {
    top:64px !important;
    max-height:calc(100svh - 64px) !important;
  }
  .mobile-row {
    position:relative;
    cursor:pointer;
    -webkit-tap-highlight-color:transparent;
  }
  .mobile-row > a {
    padding-right:52px !important;
    cursor:pointer;
  }
  .mobile-row:active { background:rgba(48,50,52,.035); }
  .mobile-sub-toggle {
    position:absolute !important;
    right:0;
    top:50%;
    transform:translateY(-50%);
    pointer-events:none;
  }
}
@media (prefers-color-scheme: dark) and (max-width:820px) {
  .header { background:rgba(31,34,36,.96) !important; }
  .header.scrolled { box-shadow:0 8px 28px rgba(0,0,0,.22); }
  .mobile-row:active { background:rgba(255,255,255,.04); }
}

/* v2.9.6 – tighter mobile start: bring the first eyebrow closer to the sticky header. */
@media (max-width: 820px) {
  .hero { padding-top:24px !important; }
}
@media (max-width: 480px) {
  .hero { padding-top:18px !important; }
}

/* v2.9.11 – align Kanzlei-Board shell with mobile content width */
@media (max-width: 820px) {
  .work-shell {
    width:calc(100% - 32px) !important;
    max-width:none !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
}
@media (max-width: 480px) {
  .work-shell {
    width:calc(100% - 24px) !important;
  }
}


/* v2.9.33 – mobile Board-Kachel schmaler und sauber zentriert */
@media (max-width: 820px) {
  .board-shell {
    width: calc(100% - 48px) !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 28px 20px !important;
    border-radius: 28px !important;
  }
  .board-shell .showcase,
  .board-shell .showcase > *,
  .board-shell .shot,
  .board-shell .shot-copy {
    min-width: 0 !important;
  }
  .cta-box {
    width: 100% !important;
  }
}
@media (max-width: 480px) {
  .board-shell {
    width: calc(100% - 40px) !important;
    padding: 24px 18px !important;
    border-radius: 24px !important;
  }
}


/* v2.9.34 – mobile Board-Kachel noch etwas schmaler */
@media (max-width:820px){
  .board-shell{width:calc(100% - 48px) !important;}
}
@media (max-width:480px){
  .board-shell{width:calc(100% - 40px) !important;}
}
