@media (max-width: 1280px) {
  html, body { background: var(--paper); }
  .site-frame { width: 100%; max-width: none; margin: 0; box-shadow: none; }
  .site-header.is-scrolled { width: 100%; }
  .hero { min-height: 840px; }
  .hero__content { min-height: 840px; }
  .lawyer { min-height: 700px; }
  .lawyer__portrait { min-height: 700px; }
}

@media (max-width: 1080px) {
  .site-nav { gap: 20px; }
  .site-nav a { font-size: 11px; }
  .header-cta { display: none; }

  .hero__main { width: min(720px, 64%); }

  .situations__grid { grid-template-columns: .9fr 1.1fr; gap: 48px; }
  .method { grid-template-columns: 52% 48%; }

  .areas__layout { grid-template-columns: 1fr; }
  .areas__aside { position: static; max-width: 540px; }
  .area-row { grid-template-columns: 40px minmax(190px,.6fr) minmax(240px,1fr) 24px; }

  .lawyer { grid-template-columns: .95fr 1.05fr; }
  .principle__statement { grid-template-columns: 1fr .48fr; gap: 48px; }
  .principle__band { padding-inline: 28px; }
  .principle__band article { padding-inline: 24px; }

  .before__head { grid-template-columns: 1fr .5fr; gap: 48px; }
  .before__body { grid-template-columns: .72fr 1.28fr; gap: 48px; }

  .contact__quick { grid-template-columns: 1fr 1fr; }
  .contact__quick > div:nth-child(3) { border-left: 0; border-top: 1px solid rgba(23,23,20,.14); }
  .contact__quick > div:nth-child(4) { border-top: 1px solid rgba(23,23,20,.14); }
  .contact-form__fields { grid-template-columns: 1fr 1fr; }
  .contact-form--document .field--message { grid-column: 1 / -1; }
}

@media (max-width: 820px) {
  body.menu-open { overflow: hidden; }
  .site-header__inner { min-height: 68px; padding: 0 20px; grid-template-columns: 1fr auto; }
  .site-logo__mark { font-size: 28px; }
  .site-logo__name { font-size: 11px; }
  .site-logo__type { font-size: 8px; }
  .site-nav { display: none; }
  .menu-toggle { display: block; }
  .mobile-panel {
    display: block;
    position: fixed;
    inset: 0;
    background: var(--paper-2);
    color: var(--ink);
    z-index: 25;
    padding: 96px 22px 28px;
    transform: translateX(100%);
    transition: transform .34s var(--ease);
  }
  body.menu-open .mobile-panel { transform: translateX(0); }
  .mobile-panel nav { display: grid; border-top: 1px solid var(--line); }
  .mobile-panel nav a { padding: 16px 0; border-bottom: 1px solid var(--line); font: 400 31px/1 var(--display); }
  .mobile-panel__contact { margin-top: 34px; display: grid; gap: 9px; }

  .hero { min-height: 780px; }
  .hero__image { inset: 68px 0 0; height: calc(100% - 68px); object-position: 62% 50%; }
  .hero::before { inset: 68px 0 0; background: linear-gradient(0deg, rgba(20,18,16,.83) 0%, rgba(20,18,16,.54) 48%, rgba(20,18,16,.12) 100%); }
  .hero::after { inset: 68px 0 0; background: none; }
  .hero-rail { display: none; }
  .hero__content { min-height: 780px; padding: 116px 22px 40px; display: block; }
  .hero__main { position: absolute; left: 22px; right: 22px; bottom: 64px; width: auto; max-width: 620px; transform: none; }
  .hero h1 { font-size: clamp(49px, 12.5vw, 67px); max-width: 600px; margin-bottom: 20px; }
  .hero__intro { font-size: 16px; max-width: 520px; }
  .hero__actions { margin-top: 24px; }

  .situations { padding: 70px 22px 0; }
  .situations__grid { display: block; }
  .situations__intro { max-width: 620px; margin-bottom: 50px; }
  .situations__intro .section-title { font-size: clamp(44px, 10vw, 61px); }
  .situation-row { grid-template-columns: 38px 1fr 22px; }
  .situations__callout { margin: 46px -22px 0; padding: 26px 22px; grid-template-columns: 1fr; gap: 16px; }
  .situations__callout a { justify-self: start; }

  .method { display: block; min-height: 0; }
  .method__visual { min-height: 490px; }
  .method__visual::after { top: auto; left: 0; right: 0; bottom: 0; width: auto; height: 7px; }
  .method__visual-note { left: 22px; right: 22px; bottom: 24px; }
  .method__content { padding: 64px 22px 72px; }
  .method__content .section-title { font-size: clamp(47px, 10vw, 64px); }
  .method__lead { margin-bottom: 38px; }

  .areas { padding: 72px 22px 70px; }
  .areas__head { grid-template-columns: 1fr; gap: 22px; padding-bottom: 42px; }
  .areas__head .section-title { font-size: clamp(46px, 10vw, 63px); }
  .areas__layout { grid-template-columns: 1fr; gap: 36px; }
  .areas__aside { position: static; }
  .areas__note { padding: 20px 18px 22px; }
  .area-row { grid-template-columns: 38px 1fr 22px; gap: 12px; padding: 20px 0; }
  .area-row__title { grid-column: 2 / 3; }
  .area-row h3 { font-size: 28px; }
  .area-row__lead, .area-row__copy { grid-column: 2 / 3; }
  .area-row__arrow { grid-column: 3; grid-row: 1 / span 3; align-self: center; }
  .areas__availability { width: 100%; }

  .lawyer { display: flex; flex-direction: column; min-height: 0; }
  .lawyer__portrait { min-height: 0; height: min(115vw, 650px); }
  .lawyer__portrait img { object-position: 48% 42%; }
  .lawyer__bio { padding: 62px 22px 64px; }
  .lawyer__bio h2 { font-size: clamp(45px, 10vw, 61px); }

  .principle { padding-bottom: 58px; }
  .principle__statement { min-height: 0; padding: 66px 22px 42px; grid-template-columns: 1fr; gap: 22px; }
  .principle__statement h2 { font-size: clamp(46px, 10vw, 61px); }
  .principle__statement-note { max-width: 620px; }
  .principle__image { height: min(78vw, 390px); }
  .principle__band { width: calc(100% - 44px); margin-top: -38px; padding: 26px 22px 24px; grid-template-columns: 1fr; }
  .principle__band article { padding: 22px 0; border-left: 0; border-top: 1px solid rgba(23,23,20,.13); }
  .principle__band article:first-child { padding-top: 0; border-top: 0; }
  .principle__band article:last-child { padding-bottom: 0; }
  .principle__band span { margin-bottom: 12px; }
  .principle__band h3 { font-size: clamp(28px, 7vw, 36px); }

  .before { padding: 72px 22px 78px; }
  .before__head { grid-template-columns: 1fr; gap: 22px; padding-bottom: 42px; }
  .before__head .section-title { font-size: clamp(44px, 10vw, 61px); }
  .before__body { grid-template-columns: 1fr; gap: 38px; }
  .before__faq { padding: 24px 20px 14px; }
  .before__faq-head { display: block; }
  .before__faq-head > p { margin-top: 8px; }

  .contact { padding: 70px 22px 76px; }
  .contact__intro { max-width: none; }
  .contact__intro .section-title { font-size: clamp(46px, 10vw, 62px); }
  .contact__lead { font-size: 16px; }
  .contact__quick { grid-template-columns: 1fr; margin-top: 34px; }
  .contact__quick > div { padding: 15px 0; border-left: 0 !important; border-top: 1px solid rgba(23,23,20,.14); }
  .contact__quick > div + div { padding-left: 0; }
  .contact__quick > div:first-child { border-top: 0; }
  .contact-form--document { width: 100%; margin-top: 34px; padding: 28px 22px 26px; }
  .contact-form__head { grid-template-columns: 1fr; gap: 12px; padding-bottom: 22px; }
  .contact-form__head h3 { font-size: 34px; }
  .contact-form__fields { grid-template-columns: 1fr; gap: 0; padding-top: 22px; }
  .contact-form--document .field--message { grid-column: auto; margin-top: 12px; }
  .contact-form__footer { grid-template-columns: 1fr; gap: 20px; }
  .contact-form__submit { justify-content: space-between; }

  .site-footer { padding: 30px 22px 26px; }
  .site-footer__inner { grid-template-columns: 1fr; gap: 22px; }
  .site-footer nav { gap: 14px 20px; }
  .site-footer__copyright, .site-footer__developer { grid-column: 1; justify-self: start; }
}

@media (max-width: 520px) {
  .hero { min-height: 748px; }
  .hero__content { min-height: 748px; }
  .hero__image { object-position: 63% 50%; }
  .hero h1 { font-size: clamp(46px, 13.4vw, 58px); }
  .hero__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .btn { min-height: 50px; padding: 0 13px; font-size: 10px; gap: 8px; }
  .situation-row h3 { font-size: 25px; }
  .method__visual { min-height: 390px; }
  .method-step { grid-template-columns: 32px 86px 1fr; gap: 8px; }
  .method-step h3 { font-size: 23px; }
  .method-step p { font-size: 12px; }
  .before__route article { grid-template-columns: 34px 1fr; }
  .before__faq { margin-inline: -4px; padding-inline: 16px; }
  .question__button { grid-template-columns: 32px 1fr 20px; gap: 9px; }
  .question__answer p { margin-left: 41px; margin-right: 18px; }
  .contact-form__submit { display: grid; gap: 12px; }
  .contact-form__submit .btn { width: 100%; }
}

@media (max-width: 360px) {
  .hero__actions { grid-template-columns: 1fr; }
  .method-step { grid-template-columns: 30px 1fr; }
  .method-step p { grid-column: 2; }
  .area-row h3 { font-size: 26px; }
}

@media (min-width: 1920px) {
  body { padding-block: 22px; }
  .site-frame { margin-block: 0; }
  .hero { min-height: 920px; }
  .hero__content { min-height: 920px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .001ms !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; }
}
@media (max-width: 820px) { section[id] { scroll-margin-top: 72px; } }
