/* Utility pages share the brochure palette, with the original contact and legal content. */
.utility-page .hidden { display: none !important; }
.utility-page .hp-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.utility-page .legal-document { padding-block: 94px 118px; }
.utility-page .legal-copy { max-width: 720px; margin-inline: auto; }
.utility-page .legal-eyebrow { color: #72777a; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; margin: 0 0 24px; }
.utility-page .legal-copy h1 { font-size: clamp(42px, 4.6vw, 64px); letter-spacing: -.045em; line-height: 1.08; font-weight: 400; margin: 0; }
.utility-page .legal-updated { font-size: 13px; color: #72777a; margin: 23px 0 55px; }
.utility-page main .legal-copy h2 { font-size: 24px; font-weight: 400; line-height: 1.25; letter-spacing: -.025em; margin: 38px 0 13px; }
.utility-page .legal-copy p:not(.legal-eyebrow):not(.legal-updated) { font-size: 16px; line-height: 1.75; color: #586065; }
.utility-page .legal-copy a { text-decoration: underline; text-underline-offset: 4px; overflow-wrap: anywhere; }
.utility-page .missing-content { padding-block: 130px 170px; min-height: 66svh; }
.utility-page .missing-content h1 { font-size: clamp(42px, 4.8vw, 68px); font-weight: 400; letter-spacing: -.045em; line-height: 1.08; margin: 24px 0; }
.utility-page .missing-content #errorText { color: #677077; font-size: 18px; line-height: 1.6; max-width: 420px; }
.utility-page .missing-content p:last-child { display: flex; flex-wrap: wrap; gap: 12px 35px; margin-top: 35px; }
.utility-page .missing-content .text-link::after { content: '↗'; margin-left: 12px; }

.contact-page .cr-contact-grid { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1fr); gap: clamp(64px, 8vw, 132px); padding-block: 90px 112px; align-items: start; }
.contact-page .cr-eyebrow { color: var(--muted); font-size: 11px; line-height: 1.5; letter-spacing: .11em; text-transform: uppercase; margin: 0; }
.contact-page .cr-section-head h1 { font-size: clamp(42px, 4.15vw, 60px); line-height: 1.1; letter-spacing: -.045em; font-weight: 400; text-wrap: balance; margin: 24px 0 26px; max-width: 12ch; }
.contact-page .cr-section-head > p:not(.cr-eyebrow) { font-size: 16px; line-height: 1.65; color: var(--muted); max-width: 400px; }
.contact-page .cr-contact-methods { display: grid; gap: 26px; margin-top: 44px; }
.contact-page .cr-contact-methods a { display: grid; justify-items: start; gap: 5px; width: fit-content; max-width: 100%; text-decoration: none; }
.contact-page .cr-contact-methods a > span { font-size: 12px; color: var(--muted); }
.contact-page .cr-contact-methods strong { font-size: 20px; line-height: 1.4; letter-spacing: -.015em; font-weight: 400; overflow-wrap: anywhere; }
.contact-page .cr-contact-methods small { font-size: 12px; line-height: 1.5; color: var(--muted); }
.contact-page .cr-contact-methods a:hover strong { text-decoration: underline; text-underline-offset: 5px; }
.contact-page .cr-contact-note { border-top: 1px solid var(--contact-line); margin-top: 42px; padding-top: 24px; max-width: 400px; }
.contact-page .cr-contact-note p { font-size: 13px; line-height: 1.65; color: var(--muted); }
.contact-page .cr-contact-note p + p { margin-top: 13px; }
.contact-page .cr-contact-form { border-top: 1px solid var(--contact-line); padding-top: 29px; min-width: 0; }
.contact-page .contact-mobile-copy { display: none; }
.contact-page .cr-project-details > summary { display: none; }
.contact-page .cr-form-support { font-size: 22px; line-height: 1.35; letter-spacing: -.025em; margin-top: 15px; max-width: 350px; }
.contact-page .cr-form-fields { display: grid; gap: 30px; margin-top: 42px; }
.contact-page .cr-form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.contact-page .field { min-width: 0; }
.contact-page .field label { display: block; font-size: 12px; line-height: 1.5; color: #d1d1d5; margin-bottom: 8px; }
.contact-page .field input, .contact-page .field select, .contact-page .field textarea { display: block; width: 100%; min-width: 0; color: var(--ink); font: inherit; font-size: 16px; line-height: 1.5; background: transparent; border: 0; border-bottom: 1px solid var(--contact-field-line); border-radius: 0; box-shadow: none; padding: 11px 0; min-height: 48px; }
.contact-page .field select { padding-right: 18px; }
.contact-page .field textarea { resize: vertical; min-height: 148px; max-height: 450px; }
.contact-page .field input::placeholder, .contact-page .field textarea::placeholder { color: #a1a1a8; opacity: 1; }
.contact-page .field :is(input, select, textarea):focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; }
.contact-page .field [aria-invalid="true"] { border-color: #ffb4a9; }
.contact-page .field-error { color: #ffb4a9; font-size: 12px; line-height: 1.5; margin-top: 8px; }
.contact-page .cr-form-actions { margin-top: 26px; }
.contact-page .cr-form-privacy { color: var(--muted); font-size: 12px; line-height: 1.6; max-width: 365px; }
.contact-page .cr-form-action-controls { display: flex; align-items: flex-start; flex-direction: column; gap: 8px; margin-top: 23px; }
.contact-page .cr-form-submit-note { max-width: 365px; color: var(--muted); font-size: 13px; line-height: 1.6; }
.contact-page #contactPurposeNote[hidden] { display: none; }
.contact-page .cr-btn { display: inline-flex; align-items: center; gap: 18px; min-height: 44px; padding: 8px 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; color: var(--ink); font: inherit; font-size: 15px; line-height: 1.45; text-align: left; cursor: pointer; text-decoration: none; }
.contact-page .cr-btn:hover { text-decoration: underline; text-underline-offset: 5px; }
.contact-page #contactSubmit > span { display: none; }
.contact-page #contactSubmit::after { content: '↗'; font-size: 18px; }
.contact-page .cr-btn:disabled { opacity: .45; cursor: wait; }
.contact-page .contact-email-fallback { color: var(--muted); font-size: 13px; }
.contact-page .contact-email-fallback.hidden[data-always-visible="true"] { display: inline-flex !important; }
.contact-page .contact-form-status { font-size: 14px; line-height: 1.6; margin-top: 18px; }
.contact-page .contact-form-status.is-warn { color: #ffb4a9; }
.contact-page .contact-form-status.is-success { color: #c7e3ce; }
.contact-page .cr-contact-form.is-success > .cr-form-head,
.contact-page .cr-contact-form.is-success > .cr-form-fields,
.contact-page .cr-contact-form.is-success > .cr-form-actions .cr-form-privacy,
.contact-page .cr-contact-form.is-success > .cr-form-actions .cr-form-action-controls { display: none; }
.contact-page .cr-contact-form.is-success > .cr-form-actions { min-height: 360px; display: grid; align-items: center; margin-top: 0; border-bottom: 1px solid var(--contact-line); }
.contact-page .cr-contact-form.is-success .contact-form-status { font-size: 28px; line-height: 1.35; letter-spacing: -.025em; color: var(--ink); max-width: 420px; margin: 0; }
.contact-page .foundation-noscript { font-size: 13px; line-height: 1.6; color: var(--muted); margin-top: 22px; }
.contact-page .foundation-noscript a { text-decoration: underline; overflow-wrap: anywhere; }

/* A neutral dark canvas carries through the form, navigation and footer. */
.contact-page { --paper:#101010; --ink:#f5f5f7; --muted:#b5b5ba; --contact-line:#3b3b3e; --contact-field-line:#65656b; background:var(--paper); color:var(--ink); color-scheme:dark; }
.contact-page .cr-contact { background:var(--paper); color:var(--ink); }
.contact-page .global-header { background:var(--paper); color:var(--ink); border-bottom-color:#29292c; box-shadow:none; }
.contact-page .global-brand img { filter:none; }
.contact-page .global-footer { border-top:1px solid var(--contact-line); }
.contact-page .global-footer p,
.contact-page .global-footer-bottom { color:var(--muted); }
.contact-page .global-footer-bottom { border-color:var(--contact-line); }
.contact-page .global-menu { background:#151515; color:var(--ink); }
.contact-page .global-menu::backdrop { background:#101010; }
.contact-page .global-menu nav a:hover,
.contact-page .global-menu nav a[aria-current] { color:#b5b5ba; }
.contact-page :is(a,button,summary):focus-visible { outline-color:var(--ink); }
.contact-page .field :is(input,select,textarea):disabled { color:#8d8d94; cursor:not-allowed; opacity:1; }
.contact-page .field input:-webkit-autofill,
.contact-page .field input:-webkit-autofill:hover,
.contact-page .field input:-webkit-autofill:focus { -webkit-text-fill-color:var(--ink); caret-color:var(--ink); -webkit-box-shadow:0 0 0 1000px var(--paper) inset; }
@media(min-width:801px) { .contact-page > .global-header--dark { position:relative; } }

@media (max-width: 1050px) {
  .contact-page .cr-contact-grid { gap: 55px; padding-block: 70px 90px; }
  .contact-page .cr-section-head h1 { font-size: 44px; }
  .contact-page .cr-form-row { grid-template-columns: 1fr; gap: 25px; }
  .contact-page .cr-form-fields { gap: 25px; }
}
@media (max-width: 760px) {
  .utility-page .legal-document { padding-block: 58px 78px; }
  .utility-page .legal-copy h1 { font-size: 42px; }
  .utility-page .legal-updated { margin-bottom: 40px; }
  .utility-page main .legal-copy h2 { font-size: 22px; margin-top: 32px; }
  .utility-page .legal-copy p:not(.legal-eyebrow):not(.legal-updated) { font-size: 15px; line-height: 1.75; }
  .utility-page .missing-content { min-height: 62svh; padding-block: 85px 100px; }
  .utility-page .missing-content h1 { font-size: 42px; }
  .utility-page .missing-content #errorText { font-size: 16px; }
  .utility-page .missing-content p:last-child { display: grid; gap: 4px; justify-items: start; margin-top: 28px; }
  .contact-page .cr-contact-grid { grid-template-columns: 1fr; gap: 0; padding-block: 30px 56px; }
  .contact-page .cr-contact-intro { display: contents; }
  .contact-page .cr-section-head { order: 1; }
  .contact-page .contact-desktop-copy,
  .contact-page .cr-section-head > .cr-eyebrow,
  .contact-page .cr-contact-note,
  .contact-page .cr-form-head { display: none; }
  .contact-page .contact-mobile-copy { display: inline; }
  .contact-page .cr-section-head h1 { font-size: 36px; max-width: 17ch; margin: 0 0 12px; }
  .contact-page .cr-section-head > p:not(.cr-eyebrow) { font-size: 16px; line-height: 1.5; margin: 0; }
  .contact-page .cr-contact-form { order: 2; margin-top: 30px; padding-top: 0; border-top: 0; scroll-margin-top: 90px; }
  .contact-page .cr-form-fields { margin-top: 0; gap: 22px; }
  .contact-page .cr-form-row { grid-template-columns: 1fr; gap: 22px; }
  .contact-page .cr-form-fields > .cr-form-row { order: 1; }
  .contact-page .field--message { order: 2; }
  .contact-page .field textarea { height: 112px; min-height: 112px; }
  .contact-page .cr-project-details { order: 3; border-top: 1px solid var(--contact-line); }
  .contact-page .cr-project-details > summary { display: flex; flex-wrap: wrap; align-items: center; gap: 0 5px; min-height: 48px; padding-block: 10px; font-size: 14px; line-height: 1.45; cursor: pointer; list-style: none; }
  .contact-page .cr-project-details > summary::-webkit-details-marker { display: none; }
  .contact-page .cr-details-optional { color: var(--muted); }
  .contact-page .cr-details-indicator { margin-left: auto; padding-left: 8px; font-size: 20px; }
  .contact-page .cr-project-details[open] .cr-details-indicator { transform: rotate(45deg); }
  .contact-page .cr-project-details > .cr-form-row { padding-block: 10px 4px; }
  .contact-page .cr-project-details > summary:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
  .contact-page .cr-form-actions { margin-top: 18px; }
  .contact-page .cr-form-action-controls { margin-top: 16px; }
  .contact-page #contactEmailFallback.hidden[data-always-visible="true"] { display: none !important; }
  .contact-page .cr-contact-methods { order: 3; display: flex; flex-wrap: wrap; align-items: flex-start; gap: 0 28px; margin-top: 30px; padding-top: 16px; border-top: 1px solid var(--contact-line); }
  .contact-page .cr-contact-methods > a { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; }
  .contact-page .cr-contact-methods > a::after { content: '↗'; }
  .contact-page .cr-contact-methods > a > span { font-size: 15px; color: var(--ink); }
  .contact-page .cr-contact-methods strong,
  .contact-page .cr-contact-methods small,
  .contact-page .cr-contact-methods > a[href*="instagram.com"] { display: none; }
  .contact-page .cr-contact-methods .email-help { flex-basis: 100%; width: 100%; }
}
@media (max-width: 360px) {
  .utility-page .legal-copy h1, .utility-page .missing-content h1 { font-size: 37px; }
  .contact-page .cr-section-head h1 { font-size: 33px; }
}

/* Native menus retain keyboard and mobile-picker behavior inside a composed field. */
.contact-page .field select { appearance:none; -webkit-appearance:none; border:1px solid var(--contact-field-line); border-radius:12px; background-color:#1b1b1d; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23d1d1d5' stroke-width='1.5' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E"); background-position:right 15px center; background-repeat:no-repeat; padding:13px 42px 13px 15px; min-height:50px; cursor:pointer; transition:border-color .15s,background-color .15s; }
.contact-page .field select:hover { background-color:#252527; border-color:#a1a1a8; }
.contact-page .field select:focus-visible { outline:2px solid var(--ink); outline-offset:3px; background-color:#252527; }
.contact-page .field select option { color:var(--ink); background:#1b1b1d; }
@media(forced-colors:active) { .contact-page .field select { appearance:auto; background-image:none; } }

/* Reading and entering an enquiry should not require zooming on a phone. */
@media(max-width:760px) {
 .utility-page .legal-copy p:not(.legal-eyebrow):not(.legal-updated) { font-size:18px; line-height:1.65; }
 .contact-page .cr-section-head>p:not(.cr-eyebrow) { font-size:18px; line-height:1.6; }
 .contact-page .field label { font-size:16px; }
 .contact-page .field :is(input,select,textarea) { font-size:18px; min-height:52px; }
 .contact-page .cr-project-details>summary { font-size:18px; min-height:56px; }
 .contact-page .cr-btn,.contact-page .cr-contact-methods>a>span { font-size:18px; min-height:48px; }
 .contact-page :is(.field-error,.cr-form-privacy,.cr-form-submit-note,.contact-form-status) { font-size:15px; line-height:1.6; }
}
