/* Ormskirk Media responsive fixes — draft only */
@media (max-width: 900px) {
  .detailed-services article {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: .75rem;
    padding: 3rem 0;
  }
  .detailed-services article > span {
    display: block;
    margin-bottom: .35rem;
    font-size: 1.25rem;
  }
  .detailed-services article > div {
    display: block;
    min-width: 0;
    width: 100%;
  }
  .detailed-services .kicker { margin: .25rem 0 .75rem; }
  .detailed-services h2 {
    max-width: 100%;
    margin: .75rem 0 1rem;
    font-size: clamp(2rem, 9vw, 2.8rem);
    overflow-wrap: anywhere;
  }
  .detailed-services div > p:not(.kicker) { font-size: 1rem; }
  .detailed-services ul {
    display: block;
    margin: 1.5rem 0;
    padding: 0;
    width: 100%;
  }
  .detailed-services li { width: 100%; }
  .detailed-services div > p { max-width: 100%; }
  .detailed-services a {
    display: inline;
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: normal;
    line-height: 1.5;
  }

  /* Site-wide mobile header, menu and footer consistency */
  .site-header { position: relative; }

  .header-inner {
    min-height: 68px !important;
    gap: 1rem !important;
  }

  .site-logo-image {
    width: min(210px, 62vw) !important;
    max-width: 100% !important;
  }

  .menu-button {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    padding: 0 !important;
    border: 1px solid rgba(7,17,31,.14) !important;
    background: rgba(255,255,255,.72) !important;
  }

  .menu-button svg {
    width: 24px;
    height: 24px;
  }

  .mobile-nav {
    padding: .55rem 20px 1rem !important;
    background: #07111f !important;
  }

  .mobile-nav a {
    padding: .9rem 0 !important;
    font-size: 1.12rem !important;
    line-height: 1.25;
  }

  .mobile-nav a:last-child {
    margin-top: .55rem;
    padding: .9rem 1rem !important;
    background: #ff2d7a;
    color: #fff;
    border-bottom: 0 !important;
    text-align: center;
  }

  .site-footer { padding-top: 3.5rem !important; }

  .footer-grid {
    gap: 2rem !important;
    padding-bottom: 2.5rem !important;
  }

  .footer-logo-image {
    width: min(270px, 78vw) !important;
  }

  .footer-brand { margin-bottom: 1rem !important; }
  .footer-grid h2 { margin-bottom: .8rem !important; }
  .footer-grid > div:nth-child(2) a { margin: .4rem 0 !important; }

  .footer-bottom {
    display: flex !important;
    flex-direction: column;
    gap: .35rem !important;
    padding-block: 1rem !important;
  }

  /* Homepage mobile/tablet-width repair. Some phones report a CSS viewport
     wider than 600px, so these rules intentionally apply up to 900px. */
  html,
  body,
  .site-main,
  main,
  .hero,
  .section {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  .shell {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .hero {
    min-height: auto !important;
  }

  .hero-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 1.5rem !important;
    padding-top: 4rem !important;
    padding-bottom: 2.5rem !important;
  }

  .hero-grid > * {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  .hero h1 {
    max-width: 100% !important;
    font-size: clamp(2.8rem, 9.5vw, 4.5rem) !important;
    overflow-wrap: anywhere !important;
  }

  .hero-art {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 300px !important;
    overflow: hidden !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: .75rem 0 1.25rem !important;
  }

  .hero-monogram-image {
    display: block !important;
    width: min(68vw, 340px) !important;
    max-width: 100% !important;
    height: auto !important;
    margin-left: auto !important;
    margin-right: auto !important;
    transform: rotate(-3deg) !important;
  }

  .hero-art p {
    position: relative !important;
    z-index: 2 !important;
    max-width: calc(100% - 40px) !important;
    margin: .75rem auto 0 !important;
    padding: 0 !important;
    text-align: center !important;
    font-size: .68rem !important;
    line-height: 1.55 !important;
    letter-spacing: .12em !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
  }

  .colour-dots {
    position: static !important;
    margin-top: .7rem !important;
    justify-content: center !important;
  }

  .trust-strip {
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .trust-strip span {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    padding: 1rem 24px !important;
    border-right: 0 !important;
    border-bottom: 1px solid rgba(245,243,237,.12) !important;
    text-align: center !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
  }

  .trust-strip span:last-child {
    border-bottom: 0 !important;
  }

  .service-grid,
  .homepage-route-grid,
  .portfolio-grid,
  .values-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .service-card,
  .homepage-route-grid .service-card,
  .portfolio-grid .service-card {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
  }
}

@media (max-width: 480px) {
  .header-inner { min-height: 64px !important; }

  .site-logo-image {
    width: min(185px, 58vw) !important;
  }

  .menu-button {
    width: 44px;
    height: 44px;
    flex-basis: 44px;
  }

  .mobile-nav { padding-inline: 14px !important; }
  .site-footer { padding-top: 3rem !important; }
}
