/* ============================================================
   PHONE / TABLET / LARGE-SCREEN ADJUSTMENTS
   Rules here override the files above on small or very large screens.
   ============================================================ */
/* ---------- responsive ---------- */
@media (max-width: 1200px) {
  .nav-links,
  .nav .btn {
    display: none;
  }
  .burger {
    display: grid;
  }
}
@media (min-width: 1500px) {
  .grid {
    grid-template-columns: repeat(4, 1fr);
  }
}
@media (max-width: 1100px) {
  .nav-links {
    gap: 22px;
  }
  .p-grid > .p-tile {
    flex-basis: calc((100% - 32px) / 3);
  }
}
@media (max-width: 980px) {
  .nav-links,
  .nav .btn {
    display: none;
  }
  .burger {
    display: grid;
  }
  .grid {
    grid-template-columns: 1fr 1fr;
    gap: 18px;
  }
  .vault:first-child {
    margin-top: 40px;
  }
  .vault,
  .vault.blush {
    grid-template-columns: 1fr;
    min-height: 0;
    margin-top: 120px;
    padding-top: min(58vw, 420px);
    align-items: end;
  }
  .vault .copy,
  .vault.blush .copy {
    grid-column: 1;
    padding: 24px 28px 48px;
  }
  .vault.blush {
    padding-top: min(86vw, 560px);
  }
  .g-row {
    grid-template-columns: 1fr 1fr;
  }
  .g-item:nth-child(2) {
    margin-top: 50px;
  }
  .g-item:nth-child(3) {
    display: none;
  }
  .timeline {
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
  }
  .timeline .rail {
    display: none;
  }
  .stats {
    grid-template-columns: 1fr 1fr;
  }
  .stat:nth-child(3) {
    border-left: 0;
  }
  .stat:nth-child(n + 3) {
    border-top: 1px solid var(--line);
  }
  .ap-box {
    grid-template-columns: 1fr;
  }
  .slide.s1::after,
  .slide.s2::after,
  .slide.s3::after,
  .has-video .slide.video::after {
    background: linear-gradient(
      0deg,
      rgba(26, 4, 9, 0.95) 0%,
      rgba(26, 4, 9, 0.7) 40%,
      rgba(26, 4, 9, 0.1) 75%
    );
  }
  .slide.s1 img {
    object-position: 72% 50%;
  }
  .frame {
    inset: 12px;
  }
  .c1,
  .c2,
  .c3 {
    left: var(--pad);
    right: var(--pad);
    top: auto;
    bottom: 12vh;
    transform: none;
    text-align: left;
    max-width: none;
  }
  .c2 .eyebrow,
  .c3 .eyebrow {
    justify-content: flex-start;
  }
  .c3 .eyebrow::after {
    display: none;
  }
  .c2 p,
  .c3 p {
    margin: 0;
  }
  .chapter h1,
  .chapter h2 {
    font-size: clamp(40px, 10vw, 64px);
    margin: 14px 0 12px;
  }
  .chapter .ctas {
    margin-top: 22px;
  }
  .scroll-cue {
    display: none;
  }
  .stage {
    background:
      radial-gradient(ellipse 90% 50% at 50% 36%, #7b2233 0%, rgba(90, 21, 34, 0) 70%),
      radial-gradient(ellipse at 50% 120%, #4a0f1b 0%, #2a0810 60%), #2a0810;
  }
}
@media (max-width: 620px) {
  body {
    font-size: 14.5px;
  }
  .ticker {
    height: 26px;
  }
  .ticker-track {
    line-height: 26px;
  }
  .nav {
    height: 64px;
  }
  .brand b {
    font-size: 20px;
  }
  .brand .mono {
    width: 36px;
    height: 36px;
  }
  .grid {
    grid-template-columns: 1fr;
  }
  .timeline {
    grid-template-columns: 1fr;
  }
  .p-grid > .p-tile {
    flex-basis: calc((100% - 16px) / 2);
  }
  .fields {
    grid-template-columns: 1fr;
  }
  .chapter .sub {
    font-size: 20px;
  }
  .chapter p {
    font-size: 14px;
  }
  .chapter .btn {
    padding: 13px 18px;
  }
  .chapter-meta {
    bottom: 20px;
  }
  .collections,
  .legacy,
  .partners,
  .appoint,
  .quote {
    padding: 90px 0;
  }
  .tabs {
    border-radius: 14px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .ticker-track {
    animation: none;
  }
}

/* ---- Phone / tablet polish (added after the mobile review) ---- */
@media (max-width: 980px) {
  /* The Brilliance necklace: reserve enough room so it never touches the text under it */
  .vault.noir {
    padding-top: min(104vw, 620px);
  }
  .vault.noir .dia-stage {
    /* as wide as 78% of the screen, but never taller than the space reserved above the text */
    width: min(78%, calc((min(104vw, 620px) - 40px) / 1.2556));
    left: 0;
    right: 0;
    margin: 0 auto;
    top: calc(min(104vw, 620px) / 2);
  }

  /* Booking form: 16px text stops iPhones from zooming the page when a field is tapped */
  .field input,
  .field select,
  .field textarea {
    font-size: 16px;
  }

  /* Bigger tap areas for contact and footer links */
  .contact-list a {
    display: inline-block;
    padding: 9px 0;
  }
  .f-links a {
    padding: 9px 0;
  }
}

@media (max-width: 620px) {
  .brand small {
    font-size: 9.5px;
  }
}

/* Very small phones (320-360px): keep the firm name clear of the menu button */
@media (max-width: 360px) {
  .brand {
    gap: 8px;
  }
  .brand .logo {
    height: 36px;
  }
  .brand b {
    font-size: 16px;
    letter-spacing: 0;
  }
  .brand small {
    letter-spacing: 0.16em;
  }
}
