/* Shared footer legal navigation and legal-page layout. */
.footer__legal--aligned { display: flex; align-items: center; justify-content: space-between; gap: 1rem 2rem; text-align: initial; }
.footer__legal-links { display: flex; flex-wrap: wrap; gap: .55rem 1.25rem; }
.footer__legal-links a { color: inherit; font-size: .82rem; text-decoration: underline; text-decoration-color: rgba(207, 176, 132, .8); text-underline-offset: .2em; }
.footer__legal-links a:hover { color: #cfb084; }
.footer__copyright { margin: 0; white-space: nowrap; }

/* Accessible About us dropdown in the primary navigation. */
.site-nav a[href*="call-us"] { display: none !important; }
.site-nav__dropdown { position: relative; }
.site-nav__dropdown summary { display: flex; align-items: center; gap: .38rem; padding: .45rem .15rem; border-bottom: 2px solid transparent; color: var(--slate); cursor: pointer; font: inherit; list-style: none; transition: color .2s ease, background-color .2s ease, border-color .2s ease; }
.site-nav__dropdown summary::-webkit-details-marker { display: none; }
.site-nav__dropdown summary::after { content: none; }
.site-nav__dropdown[open] summary { border-bottom-color: var(--accent); color: var(--ink); background: #f5f1ea; }
.site-nav__dropdown-menu { position: absolute; z-index: 25; top: calc(100% + .55rem); left: -.75rem; display: grid; min-width: 10.75rem; padding: .45rem; border: 1px solid var(--line); background: var(--white); box-shadow: 0 12px 28px rgba(10, 31, 59, .13); }
.site-nav__dropdown:not([open]) .site-nav__dropdown-menu { display: none; }
.site-nav__dropdown-menu a { padding: .6rem .7rem; color: var(--ink); font-weight: 600; white-space: nowrap; }
.site-nav__dropdown-menu a:hover, .site-nav__dropdown-menu a[aria-current="page"] { background: var(--sand); color: var(--ink); }
@media (min-width: 851px) {
  .site-nav__dropdown:not([open]):hover .site-nav__dropdown-menu,
  .site-nav__dropdown:not([open]):focus-within .site-nav__dropdown-menu { display: grid; }
  .site-nav__dropdown:hover summary { border-bottom-color: var(--accent); color: var(--ink); background: #f5f1ea; }
}

.legal-page { background: var(--paper); }
.legal-hero { padding: clamp(3.5rem, 7vw, 6.5rem) 0; background: #061d3b; color: var(--white); }
.legal-hero .breadcrumb { margin-bottom: 2rem; }
.legal-hero .breadcrumb a { color: var(--white); }
.legal-hero .eyebrow { color: #cfb084; }
.legal-hero h1 { max-width: 14ch; margin: 0; color: var(--white); font-size: clamp(3rem, 6vw, 5.4rem); }
.legal-hero__lead { max-width: 52rem; margin: 1.4rem 0 0; color: #d8e6f5; font-size: 1.08rem; }
.legal-content { padding: clamp(3rem, 7vw, 6rem) 0; }
.legal-content__inner { max-width: 52rem; }
.legal-content h2 { margin: clamp(2.5rem, 5vw, 4rem) 0 1rem; font-size: clamp(1.75rem, 3vw, 2.55rem); }
.legal-content h2:first-child { margin-top: 0; }
.legal-content p, .legal-content li { color: var(--slate); font-size: 1.04rem; line-height: 1.75; }
.legal-content ul { padding-left: 1.25rem; }
.legal-content a { color: var(--ink); font-weight: 700; text-decoration: underline; text-decoration-color: var(--accent); text-underline-offset: .18em; }
.legal-content__updated { margin: 0 0 2.5rem; color: var(--muted) !important; font-size: .9rem !important; }

/* Homepage local-search introduction: useful copy near the enquiry form, not a keyword list. */
.local-advisory { padding: clamp(3rem, 6vw, 5rem) 0; border-top: 1px solid var(--line); background: #f6f3ed; }
.local-advisory__grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(18rem, .75fr); gap: clamp(2rem, 7vw, 7rem); align-items: end; }
.local-advisory h2 { max-width: 20ch; margin-bottom: 0; font-size: clamp(2.1rem, 4vw, 3.75rem); }
.local-advisory__grid > p { max-width: 43ch; margin: 0; color: var(--slate); font-size: 1.05rem; line-height: 1.65; }
.contact-local-note { max-width: 36ch; margin: 1rem 0 0 !important; color: var(--slate); font-family: var(--sans) !important; font-size: .91rem !important; line-height: 1.55; }

@media (max-width: 640px) {
  .footer__legal--aligned { align-items: flex-start; flex-direction: column; }
  .footer__copyright { white-space: normal; }
  .legal-hero { padding: 3.25rem 0; }
}

/* Shared responsive guardrails: phone, tablet, laptop and desktop. */
img { max-width: 100%; }
@media (min-width: 1151px) {
  .container { width: min(100% - 4rem, 76rem); }
}
@media (min-width: 641px) and (max-width: 1100px) {
  .header__inner { gap: 1.25rem; }
  .site-nav { gap: clamp(.85rem, 2vw, 1.4rem); }
  .site-nav a { white-space: nowrap; }
  .footer__rich { grid-template-columns: 1.2fr 1fr 1fr; }
  .footer__brand { grid-column: 1 / -1; max-width: 38rem; }
  .footer__contact { grid-column: auto; }
}
@media (max-width: 850px) {
  .site-nav { max-height: calc(100vh - 4.75rem); overflow-y: auto; }
  .site-nav__dropdown { width: 100%; }
  .site-nav__dropdown summary { justify-content: space-between; padding: .65rem 1rem; }
  .site-nav__dropdown-menu { position: static; min-width: 0; margin: 0 .5rem; box-shadow: none; }
  /* This rule comes after the desktop contact-grid rules in the design system.
     Stack the details and form before either column can become too narrow. */
  .form-layout { grid-template-columns: minmax(0, 1fr) !important; gap: 2rem; }
  .form-layout > * { min-width: 0; }
  .footer__rich { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer__brand { grid-column: 1 / -1; }
  .footer__contact { grid-column: auto; }
  .footer__column, .footer__contact { min-width: 0; }
  .footer__contact a, .footer__contact address { overflow-wrap: anywhere; }
  .content-grid, .contact-hero__grid, .form-layout, .team-section__grid, .tax-section__grid { min-width: 0; }
  .local-advisory__grid { grid-template-columns: 1fr; gap: 1rem; align-items: start; }
}
@media (max-width: 640px) {
  .footer__rich { grid-template-columns: 1fr; }
  .footer__brand, .footer__contact { grid-column: auto; }
  .footer__column { gap: .65rem; }
  .section-heading > p, .intro-copy, .legal-hero__lead { max-width: 100%; }
  .button-group, .consultation-cta__actions { width: 100%; }
  .button-group .button, .consultation-cta__actions .button { width: 100%; justify-content: center; }
  .enquiry-form { grid-template-columns: 1fr; }
  .enquiry-form .field, .enquiry-form .field--full { grid-column: auto; }
  .form-layout { gap: 1.5rem; }
  .contact-location .contact-details a { overflow-wrap: anywhere; }
  .local-advisory { padding: 3rem 0; }
  .local-advisory h2 { font-size: clamp(2rem, 9vw, 2.75rem); }
}
