@media (max-width: 1200px) {
  .service-list__item {
    grid-template-columns: 64px minmax(0, 0.85fr) minmax(220px, 1fr) auto;
  }

  .values-list {
    grid-template-columns: repeat(3, 1fr);
  }

  .value-item:nth-child(3) {
    border-right: 0;
  }
}

@media (max-width: 1024px) {
  :root {
    --header-height: 70px;
    --space-9: 4.8rem;
  }

  .hero-grid,
  .internal-hero__grid,
  .intro-split,
  .institutional-grid,
  .about-preview,
  .address-band,
  .contact-grid,
  .legal-layout {
    grid-template-columns: 1fr;
  }

  .service-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .hero-title {
    max-width: 12ch;
  }

  .intro-facts {
    border-left: 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    padding-left: 0;
  }

  .service-detail,
  .service-detail:nth-child(even) {
    grid-template-columns: 72px minmax(0, 1fr);
  }

  .service-detail__aside,
  .service-detail:nth-child(even) .service-detail__aside {
    grid-column: 2;
  }

  .service-detail:nth-child(even) .service-detail__body {
    grid-column: 2;
    grid-row: auto;
  }

  .footer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 860px) {
  .header-inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 44px;
  }

  .nav-toggle {
    justify-self: end;
  }

  .site-header .nav-toggle,
  .site-nav__close {
    display: inline-flex !important;
    flex: 0 0 auto;
  }

  .site-nav {
    background: var(--color-surface);
    border-left: var(--line);
    box-shadow: var(--shadow-soft);
    display: grid;
    gap: var(--space-5);
    grid-template-rows: auto 1fr auto;
    height: 100vh;
    max-width: 360px;
    padding: 1rem;
    position: fixed;
    right: 0;
    top: 0;
    transform: translateX(105%);
    transition: transform var(--transition);
    width: min(88vw, 360px);
    z-index: 150;
  }

  .site-nav.is-open {
    transform: translateX(0);
  }

  .site-nav__close {
    justify-self: end;
  }

  .site-nav__links {
    align-items: stretch;
    display: grid;
    gap: 0;
  }

  .site-nav a:not(.button) {
    border-bottom: var(--line);
    font-size: var(--step-0);
    padding-block: 1rem;
  }

  .site-nav .button {
    width: 100%;
  }

  .nav-backdrop {
    background: rgba(15, 45, 40, 0.32);
    display: block;
    inset: 0;
    opacity: 0;
    pointer-events: none;
    position: fixed;
    transition: opacity var(--transition);
    z-index: 130;
  }

  .nav-backdrop.is-open {
    opacity: 1;
    pointer-events: auto;
  }

  .no-js .header-inner {
    align-items: flex-start;
    flex-wrap: wrap;
    padding-block: 0.8rem;
  }

  .no-js .nav-toggle,
  .no-js .site-nav__close,
  .no-js .nav-backdrop {
    display: none;
  }

  .no-js .site-nav {
    background: transparent;
    border-left: 0;
    box-shadow: none;
    display: grid;
    gap: 0.8rem;
    grid-template-rows: none;
    height: auto;
    max-width: none;
    padding: 0;
    position: static;
    transform: none;
    width: 100%;
    z-index: auto;
  }

  .no-js .site-nav__links {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 1rem;
  }

  .no-js .site-nav a:not(.button) {
    border-bottom: 0;
    padding-block: 0.35rem;
  }

  .no-js .site-nav .button {
    width: auto;
  }

  .services-header,
  .section-header {
    grid-template-columns: 1fr;
  }

  .service-list__item {
    grid-template-columns: 54px minmax(0, 1fr) auto;
  }

  .service-list__text {
    grid-column: 2 / -1;
  }

  .process-line {
    grid-template-columns: 1fr;
  }

  .process-step {
    border-bottom: var(--line);
    border-right: 0;
    min-height: 0;
  }

  .process-step:last-child {
    border-bottom: 0;
  }

  .values-list {
    grid-template-columns: 1fr 1fr;
  }

  .value-item,
  .value-item:nth-child(3) {
    border-bottom: var(--line);
    border-right: var(--line);
    min-height: 0;
  }

  .value-item:nth-child(even),
  .value-item:last-child {
    border-right: 0;
  }
}

@media (max-width: 768px) {
  :root {
    --space-8: 3.2rem;
    --space-9: 3.6rem;
  }

  .section {
    padding-block: var(--space-8);
  }

  .hero {
    min-height: calc(100vh - var(--header-height));
    padding-block: 0;
  }

  .hero-grid {
    min-height: calc(100vh - var(--header-height));
    padding-block: 4rem;
  }

  .brand__main {
    font-size: 1.75rem;
  }

  .brand__sub {
    font-size: 0.58rem;
  }

  .intro-facts {
    grid-template-columns: 1fr;
  }

  .service-detail,
  .service-detail:nth-child(even) {
    grid-template-columns: 1fr;
  }

  .service-detail__aside,
  .service-detail:nth-child(even) .service-detail__aside,
  .service-detail:nth-child(even) .service-detail__body {
    grid-column: auto;
  }

  .footer-grid {
    grid-template-columns: 1fr;
  }

  .cookie-banner {
    border-radius: var(--radius-medium) var(--radius-medium) 0 0;
    bottom: 0;
    gap: 0.65rem;
    left: 0;
    max-height: 28vh;
    max-width: none;
    overflow: auto;
    padding: 0.75rem 1rem calc(0.75rem + env(safe-area-inset-bottom));
    right: 0;
  }

  .cookie-banner p {
    display: none;
  }

  .cookie-actions {
    gap: 0.5rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cookie-actions .button,
  .cookie-actions .button--text {
    font-size: 0.8rem;
    min-height: 36px;
    padding: 0.45rem 0.55rem;
  }

  .cookie-actions .button--text {
    grid-column: auto;
    min-height: 36px;
  }
}

@media (max-width: 480px) {
  .container {
    padding-inline: 1rem;
  }

  .hero-title,
  .page-title,
  .section-title,
  .text-large {
    max-width: 100%;
  }

  .button-row {
    align-items: stretch;
    flex-direction: column;
  }

  .button-row .button {
    width: 100%;
  }

  .cookie-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cookie-actions .button {
    min-height: 42px;
    padding-inline: 0.65rem;
  }

  .service-list__item {
    gap: 0.75rem;
    grid-template-columns: 44px minmax(0, 1fr);
  }

  .service-card-grid {
    grid-template-columns: 1fr;
  }

  .service-list__arrow {
    display: none;
  }

  .service-list__text {
    grid-column: 1 / -1;
  }

  .values-list {
    grid-template-columns: 1fr;
  }

  .value-item {
    border-right: 0;
  }
}
