.page-header { padding-top: 7rem; background: #1a1714; }
  .page-header-inner { max-width: var(--max-wide); margin: 0 auto; padding: 3rem var(--col-pad) 0; display: grid; grid-template-columns: 1fr 280px; gap: 4rem; align-items: end; }
  .page-header-text { padding-bottom: 3.5rem; }
  .page-label { font-family: var(--sans); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(245,242,238,0.55); margin-bottom: 1.25rem; display: flex; align-items: center; gap: 0.75rem; opacity: 0; animation: fadeInUp 0.6s ease 0.2s forwards; }
  .page-label::before { content: ""; width: 24px; height: 1px; background: #2b4a6f; flex-shrink: 0; }
  .page-title { font-family: var(--serif); font-size: clamp(3rem, 6vw, 5.5rem); font-weight: 400; line-height: 0.95; letter-spacing: -0.03em; color: #f5f2ee; margin-bottom: 2rem; opacity: 0; animation: fadeInUp 0.6s ease 0.35s forwards; }
  .page-title em { font-style: italic; color: #d4cfc9; }
  .page-standfirst { font-family: var(--sans); font-size: 1.05rem; font-weight: 300; line-height: 1.8; color: rgba(245,242,238,0.72); max-width: 520px; opacity: 0; animation: fadeInUp 0.6s ease 0.5s forwards; }
  .page-header-photo { align-self: end; opacity: 0; animation: photoRise 0.8s ease 0.3s forwards; }
  .page-header-photo img { display: block; width: 100%; height: 320px; object-fit: cover; object-position: center 12%; -webkit-mask-image: linear-gradient(to bottom, black 55%, transparent 100%); mask-image: linear-gradient(to bottom, black 55%, transparent 100%); }
  .contact-wrap { max-width: var(--max-wide); margin: 0 auto; padding: 5rem var(--col-pad); display: grid; grid-template-columns: 1fr 400px; gap: 5rem; align-items: start; background: #f5f2ee; }
  .form-section { background: #f5f2ee; }
  .form-intro { font-size: 1.0625rem; font-weight: 400; color: #1a1714; line-height: 1.85; margin-bottom: 2.5rem; background: transparent; }
  .form-intro-link { color: #1a1714; text-underline-offset: 3px; }
  .form-intro-link:hover { color: #2b4a6f; }
  .form-group { margin-bottom: 1.5rem; }
  .enquiry-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; }
  .enquiry-option { position: relative; }
  .enquiry-option input[type="radio"] { position: absolute; opacity: 0; width: 0; height: 0; }
  .enquiry-label { display: flex; align-items: center; gap: 0.6rem; padding: 0.75rem 1rem; border: 2px solid #d4cfc9; cursor: pointer; font-size: 0.875rem; font-weight: 400; color: #1a1714; transition: all 0.2s; background: #f5f2ee; min-height: 44px; }
  .enquiry-label::before { content: ""; width: 14px; height: 14px; flex-shrink: 0; border: 2px solid #d4cfc9; border-radius: 50%; transition: all 0.2s; }
  .enquiry-option input:checked + .enquiry-label { border-color: #2b4a6f; background: rgba(43,74,111,0.05); color: #2b4a6f; }
  .enquiry-option input:checked + .enquiry-label::before { background: #2b4a6f; border-color: #2b4a6f; }
  .enquiry-option input:focus-visible + .enquiry-label { outline: 3px solid #2b4a6f; outline-offset: 2px; }
  .form-submit { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; margin-top: 2rem; }
  .btn-submit { display: inline-flex; align-items: center; justify-content: center; font-family: var(--sans); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; text-decoration: none; padding: 0.875rem 2rem; min-height: 44px; background: #1a1714; color: #f5f2ee; border: 2px solid #1a1714; cursor: pointer; transition: all 0.2s ease; }
  .btn-submit:hover { background: #2b4a6f; border-color: #2b4a6f; }
  .form-note { font-size: 0.8rem; color: #5c5652; line-height: 1.6; }
  .contact-sidebar { background: transparent; }
  .sidebar-block { margin-bottom: 2.5rem; padding-bottom: 2.5rem; border-bottom: 1px solid #d4cfc9; }
  .sidebar-block:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
  .sidebar-label { font-family: var(--sans); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: #5c5652; margin-bottom: 1.25rem; display: block; }
  .commitment-list { list-style: none; }
  .commitment-list li { display: flex; align-items: flex-start; gap: 0.875rem; padding: 0.75rem 0; border-bottom: 1px solid #ede9e3; font-size: 0.9rem; color: #1a1714; line-height: 1.6; }
  .commitment-list li:last-child { border-bottom: none; }
  .commitment-dot { width: 6px; height: 6px; background: #2b4a6f; border-radius: 50%; flex-shrink: 0; margin-top: 0.45rem; }
  .direct-links { list-style: none; }
  .direct-links li { margin-bottom: 0.875rem; }
  .direct-links a { display: flex; align-items: center; gap: 0.75rem; font-size: 0.9rem; font-weight: 600; color: #1a1714; text-decoration: none; transition: color 0.2s; padding: 0.5rem 0; }
  .direct-links a:hover { color: #2b4a6f; text-decoration: underline; }
  .direct-links .link-label { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: #5c5652; display: block; margin-bottom: 0.1rem; }
  .direct-links .link-value { font-size: 0.9rem; font-weight: 400; color: #1a1714; }
  .expect-box { background: #1a1714; padding: 1.75rem; }
  .expect-heading { font-family: var(--serif); font-size: 1.1rem; font-weight: 400; color: #f5f2ee; margin-bottom: 1rem; }
  .expect-list { list-style: none; }
  .expect-list li { display: flex; align-items: flex-start; gap: 0.75rem; padding: 0.6rem 0; border-bottom: 1px solid rgba(212,207,201,0.15); font-size: 0.875rem; color: rgba(245,242,238,0.75); line-height: 1.6; }
  .expect-list li:last-child { border-bottom: none; }
  .expect-dot { width: 5px; height: 5px; background: #2b4a6f; border-radius: 50%; flex-shrink: 0; margin-top: 0.5rem; }
  .elsewhere-section { background: #ede9e3; padding: 4rem var(--col-pad); border-top: 1px solid #d4cfc9; }
  .elsewhere-inner { max-width: var(--max-wide); margin: 0 auto; display: grid; grid-template-columns: 1fr 2fr; gap: 4rem; align-items: center; }
  .elsewhere-heading { font-family: var(--serif); font-size: clamp(1.5rem, 2.5vw, 2rem); font-weight: 400; color: #1a1714; line-height: 1.2; }
  .elsewhere-links { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
  .elsewhere-link { display: block; padding: 1.25rem; background: #f5f2ee; border: 1px solid #d4cfc9; text-decoration: none; transition: border-color 0.2s; }
  .elsewhere-link:hover { border-color: #2b4a6f; }
  .elsewhere-link-label { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #5c5652; display: block; margin-bottom: 0.35rem; }
  .elsewhere-link-name { font-family: var(--serif); font-size: 1rem; font-weight: 400; color: #1a1714; display: block; }
@media (max-width: 900px) {
  .page-header-inner { grid-template-columns: 1fr; }
  .page-header-photo { display: none; }
  .contact-wrap { grid-template-columns: 1fr; gap: 3rem; }
  .contact-sidebar { border-top: 1px solid #d4cfc9; padding-top: 3rem; }
  .elsewhere-inner { grid-template-columns: 1fr; gap: 2rem; }
  .elsewhere-links { grid-template-columns: 1fr 1fr; }
  .enquiry-grid { grid-template-columns: 1fr; }
}
@media (max-width: 580px) {
  .elsewhere-links { grid-template-columns: 1fr; }
}
/* Former inline style attributes. Moved out so the CSP can drop
   'unsafe-inline' from style-src — a style="" attribute is blocked
   by that directive just as an inline <style> block is. */
  .x-contact-1.x-contact-1.x-contact-1 { background:#f5f2ee; }
  .x-contact-2.x-contact-2.x-contact-2 { position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0); }
  .x-contact-3.x-contact-3.x-contact-3 { border:none;padding:0;margin:0; }
