/* Version 3 development colour and type system; original layout rules remain intact. */
:root{--ink:#222222;--ink-deep:#687039;--paper:#F7F7F3;--white:#FFFFFF;--blue:#7FB4D6;--blue-dark:#687039;--line:#CFE3F1;--muted:#222222;--brand:#80863B}
body{font-family:'Source Sans 3',sans-serif;font-weight:400;line-height:1.65;font-optical-sizing:auto}
button,input,select,textarea,.wp-block-button__link{font-family:'Source Sans 3',sans-serif}
h1,h2,h3,h4,.ip-quote-mark,.ip-footer-tagline,.ip-email-address{font-family:'Source Sans 3',sans-serif;font-optical-sizing:auto}
h1,h2{font-weight:600;letter-spacing:-.018em;line-height:1.12}
h3,h4{font-weight:600;letter-spacing:0;line-height:1.3}
strong,b{font-weight:600}
.ip-hero-content h1{line-height:1.12;letter-spacing:-.018em}
.ip-quote h2{line-height:1.3;letter-spacing:-.012em}
.ip-eyebrow,.ip-footer-label{font-size:13px;font-weight:600;text-transform:none;letter-spacing:.02em;line-height:1.5}
.ip-navigation a,.wp-block-button__link{font-size:14px!important;font-weight:600;letter-spacing:0}
.ip-menu-toggle{font-family:'Source Sans 3',sans-serif;font-weight:600}
.ip-header,.ip-footer,.ip-navigation{background:#687039;color:#FFFFFF}
.ip-navigation a:hover,.ip-navigation a[aria-current=page]{color:#FFFFFF;text-decoration:underline;text-decoration-color:#CFE3F1;text-underline-offset:6px}
.ip-header-contact,.ip-menu-toggle{border-color:#CFE3F1}
.ip-header-contact:hover{border-color:#FFFFFF}
.ip-hero .ip-eyebrow{color:#CFE3F1;text-transform:none;letter-spacing:.02em;font-size:13px}
.ip-hero-note{color:#FFFFFF}
.wp-block-button__link{background:#687039;color:#FFFFFF}
.wp-block-button__link:hover{background:#222222;color:#FFFFFF}
.ip-hero .wp-block-button__link{background:#FFFFFF;color:#222222}
.ip-hero .wp-block-button__link:hover{background:#CFE3F1;color:#222222}
.ip-rule{border-color:#80863B}
.ip-service-row{border-color:#CFE3F1}
.ip-service-row:first-child{border-color:#80863B}
.ip-service-number{color:#687039;font-size:13px;letter-spacing:0}
.ip-intro-copy,.ip-service-row>p:last-child,.ip-prose>p{line-height:1.65}
p+p{margin-top:1.1em}
.ip-story-copy .ip-eyebrow{color:#CFE3F1}
.ip-story-copy>p:last-child{color:#FFFFFF;line-height:1.65}
.ip-quote-mark{color:#80863B}
.ip-quote-attribution{font-size:14px;letter-spacing:0;color:#222222}
.ip-contact-band,.ip-inner-hero{background:#CFE3F1}
.ip-contact-band p:last-child,.ip-inner-hero .ip-lead{color:#222222}
.ip-footer,.ip-footer-label,.ip-footer-bottom{color:#FFFFFF}
.ip-footer-tagline{font-weight:400;letter-spacing:0;line-height:1.4}
.ip-footer-label{font-size:13px}
.ip-footer a{font-size:14px}
.ip-footer a:hover{color:#FFFFFF;text-decoration-color:#7FB4D6}
.ip-footer-bottom{border-color:#CFE3F1;font-size:12px}
.ip-email-address{font-weight:400;letter-spacing:0}
:focus-visible{outline-color:#687039}
.ip-header :focus-visible,.ip-footer :focus-visible,.ip-hero :focus-visible{outline-color:#FFFFFF}
/* The existing brand lettering is an explicit exception to the test type system. */
.ip-brand,.ip-wordmark,.ip-brand-descriptor{font-family:Arial,Helvetica,sans-serif}
.ip-wordmark{font-weight:600}
@media(max-width:900px){.ip-navigation{border-top-color:#CFE3F1}.ip-navigation a{font-size:16px!important}}
@media(max-width:640px){.ip-hero-content h1{letter-spacing:-.018em;line-height:1.12}.ip-hero .ip-eyebrow{font-size:13px;letter-spacing:.02em}.ip-footer-bottom{font-size:12px}.ip-quote-attribution{font-size:14px}}

/* Shared type scale for both alternatives. Existing grid, gutter and section-spacing rules are preserved. */
:root{--test-h1:clamp(43px,5.5vw,82px);--test-h2:clamp(35px,3.7vw,57px);--test-h3:23px;--test-body:17px;--test-lead:19px}
h1,.ip-hero-content h1,.ip-inner-hero h1{font-size:var(--test-h1)}
h2,.ip-intro h2,.ip-services-heading h2,.ip-story-copy h2,.ip-quote h2,.ip-contact-band h2,.ip-prose h2,.ip-detail h2,.ip-contact-layout h2{font-size:var(--test-h2)}
h3,h4{font-size:var(--test-h3)}
body,.ip-intro-copy p+p,.ip-service-row>p:last-child,.ip-services-heading>p:last-child,.ip-story-copy>p:last-child,.ip-contact-band p:last-child,.ip-prose>p,.ip-detail>p,.ip-service-list>p,.ip-process>div>p:last-child,.ip-contact-prompt{font-size:var(--test-body)}
.ip-intro-copy,.ip-inner-hero .ip-lead{font-size:var(--test-lead);line-height:1.65}
@media(max-width:640px){:root{--test-h1:clamp(39px,8.9vw,56px);--test-body:16px;--test-lead:18px}}

/* Option B: serif restricted to major headings and editorial statements. */
h1,h2,.ip-quote-mark,.ip-footer-tagline{font-family:'Source Serif 4',serif;font-weight:400;font-optical-sizing:auto}
h3,h4,.ip-email-address{font-family:'Source Sans 3',sans-serif}

/* Staging refinement: balanced major headings and readable narrow-screen hierarchy. */
h1,h2{text-wrap:balance}
@media(max-width:420px){:root{--test-h1:36px;--test-h2:32px}}
@media(max-width:360px){:root{--test-h1:34px;--test-h2:30px}.ip-header-inner{gap:10px}}
.editor-styles-wrapper{font-family:'Source Sans 3',sans-serif;color:#222222;background:#F7F7F3}

/* Contact legibility and keyboard/touch usability refinements. */
.ip-menu-toggle{min-height:44px;min-width:74px}
.ip-footer li a{display:inline-block;min-height:24px}
@media(max-width:640px){.ip-email-address{font-size:clamp(22px,6.1vw,26px)}}
@media(max-width:360px){.ip-menu-toggle{min-width:64px;padding-inline:10px}}

/* Keep long contact links within the existing narrow footer columns. */
.ip-footer-top>div{min-width:0}.ip-footer a{overflow-wrap:anywhere}

/* Final approved visibility and narrow-screen corrections. */
.ip-navigation .ip-header-contact {
  border-width: 2px;
  border-color: #CFE3F1;
  background-color: rgba(255, 255, 255, 0.07);
  color: #FFFFFF;
  font-weight: 600;
}
.ip-navigation .ip-header-contact:hover {
  border-color: #FFFFFF;
  color: #FFFFFF;
}
.ip-footer a[href="mailto:enquiries@interpolitan.com"] {
  color: #FFFFFF;
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: #CFE3F1;
  text-underline-offset: 4px;
}
.ip-menu-toggle {
  white-space: nowrap;
}
@media (max-width: 360px) {
  .ip-header-inner {
    padding-inline: 12px;
    gap: 0;
  }
  .ip-menu-toggle {
    padding-inline: 8px;
  }
}
