/* =====================================================================
   RESPONSIVE — art direction per breakpoint (not just column collapse)
   ===================================================================== */

/* ---------------------------------------------------------- ≤ 1240 */
@media (max-width: 1240px) {
  .primary-nav__link {
    padding-inline: 10px;
  }
  .primary-nav__link::after {
    inset-inline: 10px;
  }
  .mega__inner {
    grid-template-columns: minmax(0, 2.6fr) minmax(0, 6.6fr) minmax(0, 2.8fr);
    gap: 28px;
  }
}

/* ---------------------------------------------------------- ≤ 1080 : mobile header */
@media (max-width: 1080px) {
  .primary-nav {
    display: none;
  }
  .menu-toggle {
    display: inline-flex;
  }
  .site-header__inner {
    grid-template-columns: auto 1fr;
  }
  .site-header__actions {
    justify-self: end;
  }
}

/* ---------------------------------------------------------- ≤ 1024 : tablet */
@media (max-width: 1024px) {
  /* Bento — manual ordering */
  .bento {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    grid-template-rows: auto;
  }
  .bento__item--a {
    grid-column: 1 / -1;
    grid-row: auto;
    min-height: 380px;
  }
  .bento__item--b {
    grid-column: 1 / span 3;
    grid-row: span 2;
  }
  .bento__item--c {
    grid-column: 4 / -1;
    grid-row: auto;
  }
  .bento__item--d {
    grid-column: 4 / -1;
    grid-row: auto;
  }

  /* Sectors */
  .sectors__head {
    grid-column: 1 / -1;
    position: static;
    margin-bottom: 48px;
    max-width: 640px;
  }
  .sectors__list {
    grid-column: 1 / -1;
  }

  /* Journey 2 × 2 */
  .journey__track {
    display: none;
  }
  .journey__steps {
    grid-template-columns: 1fr 1fr;
    row-gap: 24px;
  }
  .journey__node {
    display: none;
  }
  .journey__file {
    margin-top: 34px;
  }

  /* CTA */
  .home-cta__content {
    grid-column: 1 / -1;
  }
  .home-cta__visual {
    grid-column: 1 / span 6;
    margin-top: 56px;
  }

  /* Footer */
  .site-footer__main {
    grid-template-columns: 1fr 1fr 1fr;
  }
  .site-footer__brand {
    grid-column: 1 / -1;
    grid-template-columns: auto 1fr;
    align-items: center;
    column-gap: 40px;
  }
  .site-footer__brand .btn {
    grid-column: 1 / -1;
  }

  /* Closing */
  .closing__title,
  .closing__side {
    grid-column: 1 / -1;
  }
  .closing__contacts {
    width: 100%;
  }

  /* About page */
  .about-who__content {
    grid-column: 1 / -1;
  }
  .about-who__media {
    grid-column: 1 / span 9;
    margin-top: 40px;
  }
  .msteps__list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    row-gap: 36px;
  }
  .msteps__line {
    display: none;
  }
  .values__matrix {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .value:not(:nth-child(3n)) {
    border-inline-end: 0;
  }
  .value:nth-child(odd) {
    border-inline-end: 1px solid var(--color-border-strong);
  }

  .services-close__statement,
  .services-close__side {
    grid-column: 1 / -1;
  }
  .services-close__side {
    margin-top: 32px;
  }

  /* Litigation */
  .register__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .register__cell:not(:nth-child(3n)) {
    border-inline-end: 0;
  }
  .register__cell:nth-child(odd) {
    border-inline-end: 1px solid var(--color-border-strong);
  }
  .memos__content {
    grid-column: 1 / -1;
    grid-row: 2;
    margin-top: 48px;
  }
  .memos__media {
    grid-column: 1 / span 8;
    grid-row: 1;
  }

  /* Corporate */
  .corp-hero__ledger {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .corp-hero__ledger span:nth-child(4) {
    border-inline-start: 0;
  }
  .corp-hero__ledger span:nth-child(n + 4) {
    border-top: 1px solid var(--color-border);
  }
  .sheet {
    grid-column: 1 / -1;
    grid-row: 2;
  }
  .clauses__aside {
    grid-column: 1 / -1;
    grid-row: 1;
    margin-bottom: 40px;
  }
  .clauses__sticky {
    position: static;
    grid-template-columns: 1fr 1fr;
    align-items: end;
  }
  .clauses__sticky .eyebrow {
    grid-column: 1 / -1;
  }

  /* Arbitration */
  .settle__media {
    grid-column: 1 / -1;
    grid-row: 1;
  }
  .settle__panel {
    grid-column: 1 / span 9;
    grid-row: 2;
    margin-top: -80px;
  }
  .settle__detail {
    display: none;
  }

  /* Consultations */
  .moments__content {
    grid-column: 1 / -1;
  }
  .teaser {
    grid-column: 1 / -1;
    margin-top: 48px;
    max-width: 560px;
  }
  .cons-areas__head {
    grid-column: 1 / -1;
    position: static;
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: var(--grid-gap);
    align-items: end;
    margin-bottom: 48px;
  }
  .cons-areas__head .eyebrow,
  .cons-areas__head .h2 {
    grid-column: 1;
  }
  .cons-areas__media {
    grid-column: 2;
    grid-row: 1 / span 2;
    margin-top: 0;
  }
  .cons-areas__list {
    grid-column: 1 / -1;
  }

  /* FAQ */
  .faq__aside {
    grid-column: 1 / -1;
  }
  .faq__contact {
    display: none;
  }
  .faq__sticky {
    position: static;
  }
  .faq__contact {
    display: none;
  }
  .faq .accordion {
    grid-column: 1 / -1;
    margin-top: 40px;
  }

  /* Contact */
  .contact__intro {
    grid-column: 1 / -1;
  }
  .contact__form-wrap {
    grid-column: 1 / -1;
    padding-inline-start: 0;
    margin-top: 48px;
  }
}

/* ---------------------------------------------------------- ≤ 768 : mobile */
@media (max-width: 768px) {
  .site-header__actions .btn {
    display: none;
  }
  .brand__logo {
    height: 44px;
  }
  .is-scrolled .brand__logo {
    height: 40px;
  }
  .site-header.is-scrolled {
    height: 64px;
  }

  .section-head {
    margin-bottom: 36px;
  }

  /* Bento */
  .bento {
    grid-template-columns: 1fr 1fr;
    gap: 12px;
  }
  .bento__item {
    gap: 20px;
    padding: 22px;
  }
  .bento__item--a {
    grid-column: 1 / -1;
    min-height: 320px;
  }
  .bento__item--b {
    grid-column: 1 / -1;
    grid-row: auto;
  }
  .bento__rules {
    display: none;
  }
  .bento__item--c,
  .bento__item--d {
    grid-column: span 1;
  }
  .bento__item--d {
    padding-inline: 0;
  }
  .bento__item--c .bento__body p,
  .bento__item--d .bento__body p {
    font-size: 14.5px;
  }
  .bento__item--c .bento__title,
  .bento__item--d .bento__title {
    font-size: 19px;
  }

  /* Sectors */
  .sectors__list {
    grid-template-columns: 1fr;
  }
  .sector,
  .sector:nth-child(odd) {
    min-height: 0;
    padding: 26px 0 30px;
    border-inline-end: 0;
  }
  .sector__title {
    margin-top: 18px;
  }

  /* Journey — vertical */
  .journey__track {
    display: block;
    top: 0;
    bottom: 0;
    inset-inline: auto;
    inset-inline-start: 7px;
    width: 1px;
    height: auto;
  }
  .journey__progress {
    inset: 0 -0.5px;
    transform-origin: top center;
    transform: scaleY(var(--p, 1));
  }
  .journey__steps {
    grid-template-columns: 1fr;
    row-gap: 20px;
  }
  .journey__step {
    padding-inline-start: 36px;
  }
  .journey__node {
    display: block;
    position: absolute;
    inset-inline-start: 0;
    top: 46px;
  }
  .journey__file {
    margin-top: 32px;
  }
  .journey__step.is-active .journey__file {
    transform: none;
  }

  /* CTA */
  .home-cta__actions .btn {
    flex: 1 1 auto;
  }
  .home-cta__visual {
    grid-column: 1 / -1;
    width: 60%;
    margin-top: 40px;
    justify-self: start;
  }
  .home-cta__visual::before {
    inset: 14px -14px -14px 14px;
  }
  .crop {
    display: none;
  }

  /* Footer */
  .site-footer__main {
    grid-template-columns: 1fr 1fr;
    row-gap: 44px;
  }
  .site-footer__brand {
    grid-template-columns: 1fr;
  }
  .site-footer__brand .btn {
    width: 100%;
  }
  .site-footer__main > :last-child {
    grid-column: 1 / -1;
  }
  .site-footer__bar {
    grid-template-columns: 1fr;
    justify-items: start;
  }
  .site-footer__credit {
    justify-self: start;
  }

  /* Closing / action bar */
  .closing__actions .btn {
    flex: 1 1 auto;
  }
  .action-bar__label {
    font-size: clamp(28px, 8vw, 40px);
  }

  /* Mega / accordion */
  .accordion__trigger {
    grid-template-columns: 36px 1fr 40px;
    padding-block: 22px;
  }
  .accordion__icon {
    width: 40px;
    height: 40px;
  }
  .accordion__inner p {
    padding: 0 36px 24px 0;
  }

  /* About page */
  .about-who__media {
    grid-column: 1 / -1;
  }
  .vm__grid {
    grid-template-columns: 1fr;
  }
  .msteps__list {
    grid-template-columns: 1fr;
    row-gap: 0;
  }
  .msteps__item {
    grid-template-columns: 44px 1fr;
    align-items: center;
    gap: 16px;
    padding-block: 12px;
  }
  .values__matrix {
    grid-template-columns: 1fr;
  }
  .value,
  .value:nth-child(odd) {
    border-inline-end: 0;
    min-height: 0;
    padding-inline: 0;
    gap: 10px;
  }
  .value::before {
    inset-inline: calc(-1 * var(--gutter));
  }

  /* Litigation */
  .register__grid {
    grid-template-columns: 1fr;
  }
  .register__cell,
  .register__cell:nth-child(odd) {
    border-inline-end: 0;
    min-height: 0;
    padding-inline: 0;
  }
  .register__cell::before {
    inset-inline-start: calc(-1 * var(--gutter));
  }
  .memos__media {
    grid-column: 1 / -1;
  }
  .memos__docs {
    grid-template-columns: 1fr;
  }

  /* Corporate */
   .image-placeholder {
    aspect-ratio: 0 !important;
  }
  .corp-hero__ledger {
    grid-template-columns: 1fr;
  }
  .corp-hero__ledger span,
  .corp-hero__ledger span + span {
    border-inline-start: 0;
    border-top: 1px solid var(--color-border);
  }
  .corp-hero__ledger span:first-child {
    border-top: 0;
  }
  .clauses__sticky {
    grid-template-columns: 1fr;
  }
  .sheet {
    padding: 28px 40px 28px 20px;
  }
  .sheet__margin {
    inset-inline-start: 22px;
  }
  .clause {
    grid-template-columns: 1fr;
    gap: 6px;
    padding-block: 26px;
  }
  .clause__label {
    display: flex;
    align-items: baseline;
    gap: 8px;
  }
  .clause__label b {
    font-size: 24px;
  }
  .sheet__sign {
    padding-inline-start: 0;
  }

  .arb-services__head {
    text-align: start;
  }
  .balance {
    padding-bottom: 0;
  }
  .balance__axis {
    left: auto;
    right: 4px;
  }
  .balance__list {
    grid-template-columns: 1fr;
  }
  .balance__item {
    padding-inline-start: 32px;
  }
  .balance__item--b {
    top: 0;
  }
  .balance__tick {
    display: none;
  }
  .balance__item--a::before,
  .balance__item--b::before {
    right: 0;
    left: auto;
  }
  .settle__panel {
    grid-column: 1 / -1;
    margin-top: -48px;
    margin-inline: 12px;
  }

  /* Consultations */
  .cons-areas__head {
    grid-template-columns: 1fr;
  }
  .cons-areas__media {
    grid-column: 1;
    grid-row: auto;
    margin-top: 28px;
  }
  .cons-areas__list {
    grid-template-columns: 1fr;
    padding-bottom: 0;
  }
  .area:nth-child(even) {
    top: 0;
  }
  .area {
    grid-template-columns: auto 1fr;
    column-gap: 18px;
    padding-block: 24px 28px;
  }
  .area__num {
    grid-row: span 2;
    font-size: 36px;
  }
  .moment {
    font-size: 16px;
    padding: 12px 16px;
  }

  /* Contact */
  .cform {
    padding: 24px 18px 28px;
    border-radius: var(--radius-sm);
  }
  .cform__grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}

/* ---------------------------------------------------------- ≤ 420 */
@media (max-width: 420px) {
  .bento {
    grid-template-columns: 1fr;
  }
  .bento__item--c,
  .bento__item--d {
    grid-column: 1 / -1;
  }
}

/* ---------------------------------------------------------- touch / reduced motion */
@media (hover: none) {
  .value:hover::before {
    transform: scaleY(0);
  }
  .value:hover {
    color: inherit;
  }
  .value:hover .value__desc {
    color: var(--color-text-muted);
  }
  .value:hover .value__num {
    color: var(--color-gold-text);
  }
}

/* ---------------------------------------------------------- motion initial states
   Only applied while the `motion` class is present (JS + GSAP available and
   reduced-motion off). If anything fails, the class is removed and all
   content renders statically. */
.motion [data-reveal="heading"] {
  visibility: hidden;
}
.motion [data-reveal="clip"],
.motion [data-reveal="hero-clip"] {
  clip-path: inset(0 0 0 100%);
}
.motion [data-reveal="line"] {
  transform: scaleX(0);
}
.motion [data-reveal="stagger"] > *,
.motion [data-reveal="register"] > *,
.motion [data-reveal="bento"] > * {
  opacity: 0;
}
.motion [data-reveal="rise"],
.motion [data-reveal="sheet"] {
  opacity: 0;
}
.motion [data-reveal="side-a"],
.motion [data-reveal="side-b"] {
  opacity: 0;
}
.motion [data-reveal="axis"] {
  transform: scaleY(0);
}
.motion [data-reveal="frame"] {
  opacity: 0;
}
.motion [data-hero-item],
.motion [data-hero-bar] {
  opacity: 0;
}

/* Word mask for heading reveals */
.w {
  display: inline-block;
  vertical-align: top;
  padding-bottom: 0.2em;
  margin-bottom: -0.2em;
  clip-path: inset(-0.6em -0.3em 0 -0.3em);
}
.w__i {
  display: inline-block;
  will-change: transform;
}

/* Print */
@media print {
  .site-header,
  .mmenu,
  .action-bar__icon {
    display: none !important;
  }
  body {
    background: #fff;
  }
}

/* Legal illustrations — responsive placement */
@media (max-width: 1180px) {
  .page-hero__art {
    height: calc((100% - var(--header-h)) * 0.6);
    color: rgba(214, 196, 158, 0.35);
  }
}
@media (max-width: 768px) {
  .page-hero {
    padding-top: calc(var(--header-h) + 28px);
    padding-bottom: 44px;
  }
  .page-hero__art {
    top: auto;
    bottom: 14px;
    left: var(--gutter);
    height: 84px;
    transform: none;
    color: rgba(214, 196, 158, 0.4);
  }
  .page-hero__inner {
    padding-bottom: 76px;
  }
  .bento__motif {
    width: 34%;
    left: 22px;
    top: 22px;
  }
  .home-cta__motif {
    width: 180px;
  }
}

/* Homepage — hero / about / services slider */
@media (max-width: 1180px) {
}
@media (max-width: 1024px) {
  .hero {
    min-height: 0;
  }
  .home-about__content {
    grid-column: 1 / -1;
  }
}
@media (max-width: 768px) {
  .hero__title {
    font-size: clamp(34px, 9vw, 42px);
  }
  .hero__actions .btn {
    flex: 1 1 auto;
  }
  .hero__traits {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    width: 100%;
  }
  .hero__trait {
    font-size: 14px;
  }
  .hero__call {
    flex-wrap: wrap;
    gap: 10px 18px;
  }
  .svc__controls {
    gap: 16px;
  }
  .svc__btn {
    width: 46px;
    height: 46px;
  }
  .svc-card {
    width: 82vw;
    min-height: 440px;
  }
  .svc-card.is-active {
    transform: none;
  }
}
@media (max-width: 768px) {
}

/* Home hero background + about collage */
@media (max-width: 1024px) {
  .acollage {
    grid-column: 1 / -1;
    margin-top: 56px;
  }
}
@media (max-width: 768px) {
  .hero {
    padding-top: calc(var(--header-h) + 64px);
  }
  .acollage {
    aspect-ratio: auto;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto;
    gap: 12px;
    margin-bottom: 0;
  }
  .acollage__item--main {
    grid-column: 1 / -1;
    grid-row: 1;
    aspect-ratio: 4 / 3.4;
  }
  .acollage__item--top,
  .acollage__item--bottom {
    grid-row: 2;
    top: 0;
    aspect-ratio: 1;
  }
  .acollage__item--top {
    grid-column: 1;
  }
  .acollage__item--bottom {
    grid-column: 2;
  }
}

/* Phone only — menu sizing, single-line contacts, hero traits hidden */
@media (max-width: 768px) {
  .mmenu__link {
    padding-block: 13px;
    font-size: 20px;
    gap: 12px;
  }
  .mmenu__num {
    font-size: 11px;
    min-width: 18px;
  }
  .mmenu__sub a {
    padding-block: 7px;
    font-size: 15px;
  }
  .hero__traits {
    display: none;
  }
}
@media (max-width: 1024px) {
  .faq__aside,
  .faq .accordion {
    grid-column: 1 / -1;
  }
  .moments__content,
  .teaser {
    grid-column: 1 / -1;
  }
}

/* Phone: hero buttons compact and side by side (never full-width blocks) */
@media (max-width: 768px) {
  .hero__actions {
    flex-wrap: nowrap;
    gap: 8px;
  }
  .hero__actions .btn {
    flex: 0 0 auto;
    --btn-h: 46px;
    padding-inline: 14px;
    gap: 8px;
    font-size: 14px;
  }
  .hero__actions .btn__icon {
    font-size: 16px;
  }
}
/* Very small phones: contact line drops its icons so it stays on one line */
@media (max-width: 380px) {
  .contact-line > .contact-link .i {
    display: none;
  }
  .contact-line > .contact-link {
    font-size: clamp(10px, 3.5cqi, 14px);
  }
  .contact-line > .contact-link + .contact-link {
    margin-inline-start: clamp(8px, 2.4cqi, 20px);
  }
  .teaser {
    padding-inline: 18px;
  }
}

@media (max-width: 1100px) {
  .sgrid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 600px) {
  .sgrid {
    grid-template-columns: 1fr;
  }
  .stile {
    min-height: 0;
    display: grid;
    grid-template-columns: 56px 1fr;
    column-gap: 16px;
    align-content: start;
  }
  .stile__head {
    grid-row: 1 / span 3;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    margin-bottom: 0;
  }
  .stile__icon {
    width: 56px;
    height: 56px;
  }
  .stile__icon .legal-art {
    width: 36px;
    height: 36px;
  }
  .stile__title {
    grid-column: 2;
    font-size: 19px;
    margin-bottom: 6px;
  }
  .stile__desc,
  .stile__link {
    grid-column: 2;
  }
  .stile__link {
    margin-top: 14px;
  }
}
@media (max-width: 600px) {
  .stile__link {
    justify-self: start;
  }
}

/* Home about (single image) + service pages why block */
@media (max-width: 1024px) {
  .acollage--single {
    grid-column: 1 / -1;
    max-width: 560px;
  }
  .svc-why__content {
    grid-column: 1 / -1;
  }
  .svc-why__art {
    display: none;
  }
}
@media (max-width: 768px) {
  .acollage--single {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    aspect-ratio: auto;
  }
  .acollage--single .acollage__item--main {
    aspect-ratio: 1;
  }
}
@media (max-width: 1024px) {
  .why__grid .why__head,
  .why__acc {
    grid-column: 1 / -1;
  }
  .why__grid .why__head {
    margin-bottom: clamp(32px, 4vw, 48px);
  }
}

/* Home hero: image moves under the content on tablet/phone */
@media (max-width: 1024px) {
  .hero__content,
  .hero__media {
    grid-column: 1 / -1;
  }
  .hero__media {
    justify-self: start;
    width: 100%;
    max-width: 480px;
    margin-top: 48px;
  }
}
@media (max-width: 768px) {
  .register__grid--2 {
    grid-template-columns: 1fr;
  }
  .register__grid--2 .register__cell:nth-child(odd) {
    border-inline-end: 0;
  }
}

/* Legal pages + footer bottom bar */
@media (max-width: 1024px) {
  .legal__aside,
  .legal__body {
    grid-column: 1 / -1;
  }
  .legal__aside {
    margin-bottom: 40px;
  }
  .legal__sticky {
    position: static;
  }
  .legal__toc ol {
    max-height: none;
  }
  .legal__contact {
    display: none;
  }
  .legal__body {
    max-width: none;
  }
  .site-footer__bar {
    grid-template-columns: 1fr;
    justify-items: start;
  }
  .site-footer__credit {
    justify-self: start;
  }
}
@media (max-width: 768px) {
  .legal__toc {
    padding: 20px 18px;
  }
  .legal__section {
    padding-block: 28px;
  }
  .legal__ol > li,
  .legal__ul > li {
    padding-inline-start: 26px;
  }
}
