
/* OFICIAL v4 / revision 15 — measured alignment and typography refinements.
   Keeps the approved Montserrat family, palette and editorial compositions. */
.v4-site { --page-gutter: 48px; }
.v4-site .site-header .container,
.v4-site .site-footer > .container,
.v4-site .selection-wrap,
.v4-site .impact-container {
  width: calc(100% - var(--page-gutter) * 2);
  max-width: 1600px;
  margin-inline: auto;
  padding-inline: 0;
}

/* A consistent small-type scale; fine labels remain distinct from body copy. */
.v4-site .selection-label,
.v4-site .impact-eyebrow { font-size: 11px; line-height: 1.65; }
.v4-site .site-header .btn { font-size: 12px; min-height: 44px; }
.v4-site .nav-main a { font-size: 13px; }
.v4-site .nav-toggle { width: 44px; height: 44px; min-width: 44px; }
.v4-site .selection-link,
.v4-site .selection-button,
.v4-site .impact-link { font-size: 13px; line-height: 1.65; }
.v4-site .impact-action small { font-size: 11px; line-height: 1.5; }
.v4-site .perspective-button,
.v4-site .impact-focus a,
.v4-site .entry-panel__meta > span,
.v4-site .impact-intake__action > span:last-child { font-size: 12px; }
.v4-site .method-hero__top > p:last-child,
.v4-site .firm-hero__top > span,
.v4-site .method-hero__caption,
.v4-site .services-hero__caption,
.v4-site .audience-hero__visual figcaption,
.v4-site .desk-hero__rule,
.v4-site .editorial-memo__topic,
.v4-site .memo-list__number { font-size: 11px; line-height: 1.7; }
.v4-site .reading-meta,
.v4-site .contact-paper__heading p,
.v4-site .contact-actions > a,
.v4-site .step-heading > p,
.v4-site .file-drop small { font-size: 12px; line-height: 1.8; }
.v4-site .editorial-memo p,
.v4-site .threshold p,
.v4-site .sponsor-note,
.v4-site .firm-method p:last-child,
.v4-site .doors-note p,
.v4-site .corridors > p,
.v4-site .contact-note p,
.v4-site .gate-footnote p,
.v4-site .intake-aside > p { font-size: 14px; line-height: 1.85; }
.v4-site .four-doors p { font-size: 15px; line-height: 1.85; }

/* Footer columns share the page grid and have an even reading rhythm. */
.v4-site .site-footer .footer-col h2 {
  font-size: 11px;
  line-height: 1.65;
  letter-spacing: .08em;
  margin: 0 0 14px;
}
.v4-site .site-footer .footer-col a { font-size: 13px; line-height: 1.8; display: inline-block; padding-block: 3px; }
.v4-site .site-footer .footer-col ul { gap: 9px; }
.v4-site .site-footer .footer-brand > p { font-size: 14px; line-height: 1.85; }
.v4-site .site-footer .footer-bottom { font-size: 11px; line-height: 1.85; }
.v4-site .site-footer .footer-bottom .motto { color: var(--brand-bronze-text); }

/* Reading controls and intake progress are useful text, not tiny captions. */
.v4-site .memo-filters button { font-size: 12px; }
.v4-site .progress-step .p-label { font-size: 12px; line-height: 1.5; }
.v4-site .field > label,
.v4-site .field > legend { font-size: 13px; }
.v4-site .pill { font-size: 12px; }
.v4-site .message-preview dt,
.v4-site .intake-summary dt { font-size: 11px; }
.v4-site .form-preview-note,
.v4-site .intake-notice { font-size: 13px; line-height: 1.8; }

/* Anti-spam field: invisible to people, filled in only by bots. */
.form-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* The portrait source places the vessel below its centre. */
.v4-site .gate-track:first-child .gate-track__image { object-position: 50% 70%; }

@media (max-width: 1200px) {
  .v4-site { --page-gutter: 36px; }
  .v4-site .nav-main a { font-size: 12px; }
}
@media (min-width: 981px) and (max-width: 1100px) {
  .v4-site .nav-main { gap: 13px; }
  .v4-site .nav-main a { font-size: 11px; }
  .v4-site .site-header .container { gap: 18px; }
  .v4-site .site-header .btn { font-size: 11px; padding-inline: 16px; }
}
@media (max-width: 980px) {
  .v4-site { --page-gutter: 24px; }
  .v4-site .nav-main a { font-size: 17px; }
}
@media (max-width: 600px) {
  .v4-site { --page-gutter: 20px; }
  .v4-site .site-header .btn { font-size: 11px; }
  .v4-site .impact-hero__actions { align-items: stretch; }
  .v4-site .impact-action { align-items: center; }
  .v4-site .impact-action small { font-size: 10px; }
  .v4-site .impact-action strong { font-size: 15px; }
  .v4-site .method-hero__top > p:last-child { max-width: 150px; }
  .v4-site .method-note p { font-size: 12px; }
  .v4-site .firm-hero__top { gap: 12px; }
  .v4-site .firm-hero__top > span { max-width: 150px; }
  .v4-site .four-doors .selection-label { font-size: 10px; }
  .v4-site .firm-method__line {
    flex-wrap: nowrap;
    justify-content: space-between;
    gap: 8px;
    font-size: clamp(20px, 5.4vw, 32px);
    line-height: 1.4;
    letter-spacing: -.05em;
    white-space: nowrap;
  }
  .v4-site .firm-method__line span { font-size: 1em; }
  .v4-site .memo-filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; gap: 8px; }
  .v4-site .memo-filters button { min-height: 48px; padding: 11px 12px; text-align: left; line-height: 1.5; }
  .v4-site .progress-step .p-label { font-size: 11px; min-height: 3em; }
  .v4-site .site-footer .footer-col:not(:last-child) h2 { min-height: 3.3em; }
  .v4-site .site-footer .footer-col:last-child h2 { min-height: 0; }
  .v4-site .contact-close p:last-child { font-size: 21px; }
}
@media (max-width: 360px) {
  .v4-site .site-header .container { gap: 10px; }
  .v4-site .header-cta { gap: 9px; }
  .v4-site .site-header .btn { padding-inline: 11px; }
  .v4-site .firm-hero__top > span { font-size: 10px; }
  .v4-site .impact-hero__actions { display: grid; grid-template-columns: 1fr; gap: 1px; }
  .v4-site .impact-action { min-height: 72px; padding-inline: 17px; }
  .v4-site .impact-action small { font-size: 11px; }
}
@media print {
  .v4-site .selection-wrap, .v4-site .impact-container { width: 100%; }
}


/* Routes without the A/B/C/D letters: the letter column is removed. */
.v4-site .route-row { grid-template-columns: 1fr 1.2fr; }
@media (max-width: 980px) {
  .v4-site .route-row { grid-template-columns: 1fr 1.3fr; }
}
@media (max-width: 600px) {
  .v4-site .route-row { grid-template-columns: 1fr; }
  .v4-site .route-row p { grid-column: auto; }
}

/* Footer column titles are plain bold text, not headings; same look as before. */
.v4-site .site-footer .footer-col__title {
  display: block;
  font-family: 'Montserrat', Arial, sans-serif;
  font-style: normal;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.65;
  letter-spacing: .08em;
  margin: 0 0 14px;
  color: #514b48;
}
@media (max-width: 600px) {
  .v4-site .site-footer .footer-col:not(:last-child) .footer-col__title { min-height: 3.3em; }
}
