:root {
    --ink: #101010;
    --paper: #f4f1ea;
    --muted: #6f6b63;
    --line: #d0cbc1;
    --acid: #d9ff39;
    --black: #080808
}

* { box-sizing: border-box; margin: 0; padding: 0 }
html { scroll-behavior: smooth }
body { font-family: Manrope, Arial, sans-serif; background: var(--paper); color: var(--ink) }
a { color: inherit; text-decoration: none }
button, input, select, textarea { font: inherit }
.mono { font-family: "DM Mono", monospace }
.wrap { width: min(100% - 76px, 1364px); margin-inline: auto }

.site-header { background: var(--black); color: #fff; border-bottom: 1px solid #292929 }
.nav { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 28px }
.logo { font-size: 20px; font-weight: 800; letter-spacing: -.06em }
.logo span { font-weight: 500 }
.site-nav { display: flex; align-items: center; gap: 28px; font-size: 12px; letter-spacing: .1em; text-transform: uppercase }
.site-nav a { opacity: .72; transition: opacity .2s ease }
.site-nav a:hover, .site-nav a[aria-current="page"] { opacity: 1 }
.site-nav .nav-cta { padding: 10px 14px; border: 1px solid currentColor; border-radius: 99px; opacity: 1 }

.page-hero { background: var(--black); color: #fff; padding: 100px 0 86px }
.eyebrow { color: #bbb; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; margin-bottom: 26px }
.page-hero h1 { max-width: 1000px; font-size: clamp(58px, 9vw, 132px); line-height: .94; letter-spacing: -.075em }
.page-hero p { max-width: 670px; margin-top: 34px; color: #bebebe; font-size: 17px; line-height: 1.7 }

.page-body { padding: 88px 0 120px }
.contact-layout { display: grid; grid-template-columns: minmax(260px, .62fr) minmax(0, 1.38fr); gap: clamp(55px, 8vw, 120px); align-items: start }
.side-copy { position: sticky; top: 40px }
.side-copy h2 { font-size: clamp(34px, 4vw, 58px); line-height: 1; letter-spacing: -.055em }
.side-copy p { margin-top: 24px; color: var(--muted); font-size: 16px; line-height: 1.75 }
.direct-email { display: inline-block; margin-top: 26px; padding-bottom: 5px; border-bottom: 1px solid var(--ink); font-size: 15px }

.enquiry-form { border-top: 1px solid var(--ink) }
.honeypot { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 22px }
.field { padding-top: 25px; margin-bottom: 28px; border-top: 1px solid var(--line) }
.enquiry-form > .field:first-child, .enquiry-form > .form-row:first-child .field { border-top: 0 }
label, legend { display: block; margin-bottom: 11px; font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase }
.optional { color: var(--muted); font-weight: 400; text-transform: none; letter-spacing: 0 }
input, select, textarea { width: 100%; border: 0; border-bottom: 1px solid #9c978e; border-radius: 0; background: transparent; padding: 9px 0 13px; color: var(--ink); font-size: 17px; outline: none }
input:focus, select:focus, textarea:focus { border-color: var(--ink) }
textarea { min-height: 130px; resize: vertical; line-height: 1.6 }
.check { display: grid; grid-template-columns: 20px 1fr; gap: 12px; align-items: start; margin: 4px 0 30px }
.check input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--ink) }
.check label { margin: 0; font-size: 14px; font-weight: 400; line-height: 1.55; letter-spacing: 0; text-transform: none }
.check a { text-decoration: underline; text-underline-offset: 3px }
.submit-row { display: flex; align-items: center; gap: 20px; flex-wrap: wrap }
.submit-btn { border: 1px solid var(--ink); border-radius: 99px; background: var(--acid); color: var(--ink); padding: 15px 22px; cursor: pointer; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; transition: background .2s ease, transform .2s ease }
.submit-btn:hover { background: #fff; transform: translateY(-2px) }
.submit-btn:disabled { cursor: wait; opacity: .65; transform: none }
.form-note, .form-status { color: var(--muted); font-size: 13px; line-height: 1.55 }
.form-status.is-success { color: #376000 }
.form-status.is-error { color: #9c1d12 }
.form-status { width: 100%; min-height: 21px; color: var(--ink) }
.result-card { max-width: 780px; padding: clamp(34px, 6vw, 70px); border: 1px solid var(--line); background: #ebe7dd }
.result-card h2 { font-size: clamp(36px, 6vw, 72px); line-height: 1; letter-spacing: -.06em }
.result-card p { margin-top: 22px; max-width: 610px; color: var(--muted); font-size: 16px; line-height: 1.75 }
.result-actions { display: flex; flex-wrap: wrap; gap: 13px; margin-top: 30px }
.result-actions a { padding: 12px 17px; border: 1px solid var(--ink); border-radius: 99px; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase }
.result-actions .primary { background: var(--acid) }

.policy-layout { display: grid; grid-template-columns: minmax(210px, .45fr) minmax(0, 1.55fr); gap: clamp(50px, 8vw, 130px); align-items: start }
.policy-aside { position: sticky; top: 40px; font-size: 12px; line-height: 1.7; color: var(--muted) }
.policy-aside strong { display: block; color: var(--ink); margin-bottom: 7px }
.policy-content { max-width: 850px }
.policy-section { padding: 0 0 42px; margin-bottom: 42px; border-bottom: 1px solid var(--line) }
.policy-section:last-child { margin-bottom: 0; border-bottom: 0 }
.policy-section h2 { margin-bottom: 18px; font-size: clamp(25px, 3vw, 38px); line-height: 1.12; letter-spacing: -.045em }
.policy-section p, .policy-section li { color: #504d47; font-size: 16px; line-height: 1.8 }
.policy-section p + p { margin-top: 16px }
.policy-section ul { padding-left: 21px }
.policy-section a { color: var(--ink); text-decoration: underline; text-underline-offset: 4px }

.site-footer { background: var(--black); color: #fff; padding: 34px 0 }
.footer-row { display: flex; justify-content: space-between; align-items: center; gap: 24px; color: #8e8e8e; font-size: 11px }
.footer-links { display: flex; gap: 20px }
.footer-links a:hover { color: #fff }

a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid #799000; outline-offset: 5px }

@media (max-width: 760px) {
    .wrap { width: min(100% - 40px, 1364px) }
    .nav { min-height: 74px; flex-wrap: wrap; padding: 17px 0 }
    .site-nav { width: 100%; justify-content: space-between; gap: 13px; font-size: 10px }
    .site-nav .nav-cta { padding: 8px 10px }
    .page-hero { padding: 72px 0 62px }
    .page-hero h1 { font-size: clamp(54px, 17vw, 86px) }
    .page-body { padding: 65px 0 82px }
    .contact-layout, .policy-layout { grid-template-columns: 1fr; gap: 52px }
    .side-copy, .policy-aside { position: static }
    .form-row { grid-template-columns: 1fr; gap: 0 }
    .enquiry-form > .form-row:first-child .field + .field { border-top: 1px solid var(--line) }
    .footer-row { align-items: flex-start; flex-direction: column }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto }
    * { transition: none !important }
}
