

:root {
  --paper: var(--wp--preset--color--paper, #faf9f6);
  --paper-deep: var(--wp--preset--color--paper-deep, #f1eee7);
  --ink: var(--wp--preset--color--ink, #2a2b29);
  --body-copy: var(--wp--preset--color--body-copy, #555650);
  --muted: var(--wp--preset--color--muted, #6b6c64);
  --gold: var(--wp--preset--color--gold, #806746);
  --line: var(--wp--preset--color--line, #dedbd2);
  --white: var(--wp--preset--color--white, #fffefa);
  --serif: var(--wp--preset--font-family--serif, "Cormorant Garamond", serif);
  --sans: var(--wp--preset--font-family--sans, "Tenor Sans", sans-serif);
  --mono: var(--wp--preset--font-family--mono, "Syne", sans-serif);
  --display-size: clamp(2.6624125rem,4.92745vw,4.371125rem);
  --display-leading: 1.08;
  --display-tracking: -.05em;
  --editorial-weight: 500;
  --card-title-size: 1.3113375rem;
  --compact-title-size: 1.986875rem;
  --background: var(--paper);
  --foreground: var(--ink);
  --popover: var(--white);
  --popover-foreground: var(--ink);
  --border: var(--line);
  --muted-foreground: var(--muted);
  --ring: var(--gold);
  --radius: 2px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 120px; background: var(--paper); }
body { margin: 0; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
button, input, textarea, select { color: inherit; font: inherit; }
button { border: 0; cursor: pointer; }
a { color: inherit; text-decoration: none; }
button, a { -webkit-tap-highlight-color: transparent; }
img { display: block; max-width: 100%; }
p, h1, h2, h3, figure, dl, dd { margin: 0; }
h1, h2, h3 { overflow-wrap: break-word; }
h1, h2 { letter-spacing: -.045em; line-height: 1.1; }
h2 { font-size: clamp(1.7881875rem, 3.33795vw, 2.9803125rem); }
h3 { line-height: 1.25; }
em { font-weight: inherit; }
::selection { background: var(--ink); color: var(--paper); }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 5px; }
.site-frame { min-height: 100svh; display: flex; flex-direction: column; }
main { flex: 1; min-width: 0; }
.container { width: min(100%, 1280px); margin-inline: auto; padding-inline: 64px; }
.eyebrow { color: var(--gold); font-family: var(--sans); font-size: 0.5960625rem; letter-spacing: .18em; line-height: 1.65; text-transform: uppercase; }
.index-number { color: var(--gold); font: 0.5960625rem/1.6 var(--mono); letter-spacing: .06em; }
.skip-link { position: fixed; top: 8px; left: 16px; z-index: 100; padding: 12px 20px; color: var(--paper); background: var(--ink); transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }
.screen-reader-text { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* Existing wordmark and header geometry, with a clearer navigation state. */
.site-header { position: sticky; top: 0; z-index: 40; border-bottom: 1px solid var(--line); background: rgba(250,249,246,.96); backdrop-filter: blur(14px); }
.site-header-inner { display: flex; align-items: center; justify-content: space-between; gap: 32px; width: min(100%,1280px); min-height: 93px; margin-inline: auto; padding-inline: 64px; }
.header-wordmark { flex: 0 0 auto; }
.brand-wordmark { width: 228px; height: 46px; object-fit: contain; object-position: left center; }
.header-actions { display: flex; align-items: center; gap: 36px; }
.page-navigation { text-transform: uppercase; display: flex; align-items: center; gap: 28px; }
.page-navigation a, .header-liaison { position: relative; display: inline-flex; align-items: center; min-height: 44px; color: var(--body-copy); font-size: 0.6321875rem; letter-spacing: .045em; }
.page-navigation a::after { position: absolute; bottom: 3px; left: 0; right: 0; height: 1px; background: var(--gold); content: ""; transform: scaleX(0); transform-origin: left; transition: transform .2s ease; }
.page-navigation a:hover::after, .page-navigation a[aria-current=page]::after { transform: scaleX(1); }
.page-navigation a[aria-current=page] { color: var(--ink); }
.header-liaison { padding: 0; color: var(--ink); background: transparent; border-bottom: 1px solid var(--ink); font-size: 0.541875rem; letter-spacing: .12em; text-transform: uppercase; }
.header-liaison:hover { color: var(--gold); border-color: var(--gold); }

.primary-cta, .liaison-submit { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; max-width: 100%; padding: 15px 28px; border: 1px solid var(--ink); border-radius: 999px; background: var(--ink); color: var(--paper); font-size: 0.5960625rem; letter-spacing: .13em; line-height: 1.4; text-align: center; text-transform: uppercase; transition: background .2s ease, border-color .2s ease, color .2s ease; }
.primary-cta:hover, .liaison-submit:hover:not(:disabled) { border-color: var(--gold); background: var(--gold); }
.text-link { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; color: var(--body-copy); font-size: 0.69540625rem; line-height: 1.5; }
.text-link:hover { color: var(--gold); }
.text-link svg { flex-shrink: 0; transition: transform .2s ease; }
.text-link:hover svg { transform: translateX(3px); }

/* Editorial opening. */
.home-hero { display: grid; grid-template-columns: minmax(0,1.24fr) minmax(0,1fr); align-items: center; gap: 64px; padding-block: 64px 88px; }
.hero-copy { min-width: 0; }
.hero-copy > .eyebrow { margin-bottom: 28px; max-width: 390px; }
.hero-copy h1, .page-heading h1, .legal-heading h1, .not-found h1 { font-size: var(--display-size); line-height: var(--display-leading); letter-spacing: var(--display-tracking); }
.hero-copy h1 em, .section-heading h2 em { color: var(--gold); }
.hero-description { max-width: 480px; margin-top: 30px; color: var(--body-copy); font-size: 0.89409375rem; line-height: 1.75; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; margin-top: 30px; }
.hero-location { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; margin-top: 34px; color: var(--muted); font-size: 0.5960625rem; letter-spacing: .04em; }
.hero-location span { width: 24px; height: 1px; background: var(--line); }
.hero-image { width: 100%; aspect-ratio: 4/5; background: var(--paper-deep); }
.hero-image img { width: 100%; height: 100%; object-fit: cover; }

/* Numbered practice links, with the whole row as a target. */
.expertise-section { padding-block: 80px 100px; border-top: 1px solid var(--line); }
.section-heading { display: grid; grid-template-columns: minmax(160px,.6fr) minmax(0,1.4fr); gap: 48px; align-items: start; }
.section-heading > .eyebrow { padding-top: 9px; }
.section-heading p:not(.eyebrow) { max-width: 540px; margin-top: 22px; color: var(--body-copy); font-size: 0.79475rem; }
.expertise-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 52px; margin-top: 52px; }
.expertise-link { display: grid; grid-template-columns: 24px minmax(0,1fr) 20px; gap: 16px; align-items: start; padding: 30px 0; border-top: 1px solid var(--line); }
.expertise-link .index-number { padding-top: 5px; }
.expertise-link h3 { font-size: var(--card-title-size); letter-spacing: -.025em; }
.expertise-link p { margin-top: 10px; color: var(--body-copy); font-size: 0.745078125rem; }
.expertise-link > svg { margin-top: 7px; color: var(--gold); transition: transform .2s ease; }
.expertise-link:hover h3 { color: var(--gold); }
.expertise-link:hover > svg { transform: translateX(4px); }

.audience-section { padding-block: 84px; background: var(--paper-deep); }
.audience-inner { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 80px; }
.audience-intro h2 { margin-top: 30px; font-size: clamp(1.7881875rem,3.099525vw,2.70215rem); }
.audience-list > div { padding-block: 24px; border-bottom: 1px solid #d8d2c5; }
.audience-list > div:first-child { padding-top: 0; }
.audience-list > div:last-child { padding-bottom: 0; border-bottom: 0; }
.audience-list dt { font-family: var(--serif); font-weight: var(--editorial-weight); font-size: 1.2716rem; line-height: 1.35; }
.audience-list dd { margin-top: 10px; color: var(--body-copy); font-size: 0.79475rem; }

.home-enquiry { padding-block: 80px 0; }
.enquiry-panel { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,1fr); align-items: center; gap: 64px; padding: 58px 64px; background: var(--ink); color: var(--paper); }
.enquiry-panel .eyebrow { color: #c6b28f; }
.enquiry-panel h2 { margin-top: 22px; font-size: clamp(1.986875rem,3.417425vw,3.02005rem); }
.enquiry-panel-action { justify-self: end; }
.enquiry-panel-action > p { margin-bottom: 26px; color: #e0ded7; font-size: 0.79475rem; }
.light-cta { border-color: var(--paper); background: var(--paper); color: var(--ink); }
.light-cta:hover { color: var(--paper); }
.location-block { padding-block: 54px; text-align: center; }
.location-block h2 { color: var(--gold); font: 0.645734375rem/1.5 var(--sans); letter-spacing: .16em; text-transform: uppercase; }
.location-block address { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 4px 32px; margin-top: 16px; color: var(--body-copy); font-style: normal; font-size: 0.69540625rem; }
.location-block address a { display: inline-flex; align-items: center; min-height: 44px; }
.location-block a:hover { color: var(--gold); }

/* Services: a persistent index and disclosure of useful detail. */
.page-heading { padding: 64px 0 66px; text-align: center; }
.page-heading h1 { margin-top: 28px; }
.page-heading h1 em { color: var(--gold); }
.page-heading > p:not(.eyebrow) { max-width: 590px; margin: 30px auto 0; color: var(--body-copy); font-size: 0.89409375rem; line-height: 1.75; }
.services-page { padding-bottom: 88px; }
.services-layout { display: grid; grid-template-columns: 245px minmax(0,1fr); gap: 64px; padding-top: 40px; border-top: 1px solid var(--line); }
.practice-index { position: sticky; top: 126px; align-self: start; }
.practice-index nav { margin-top: 18px; }
.practice-index nav a { display: grid; grid-template-columns: 20px minmax(0,1fr); gap: 10px; align-items: baseline; min-height: 44px; padding-block: 10px; color: var(--body-copy); font-size: 0.69540625rem; line-height: 1.5; }
.practice-index nav a:hover { color: var(--gold); }
.practice-index > .text-link { margin-top: 28px; border-bottom: 1px solid var(--line); }
.practice-content { min-width: 0; }
.practice-image { width: 100%; aspect-ratio: 2.4 / 1; margin: 8px 0 32px; overflow: hidden; background: var(--paper-deep); }
.practice-image:first-child { margin-top: 0; }
.practice-image img { width: 100%; height: 100%; object-fit: cover; }
.practice-image:nth-of-type(3) img { object-position: center 45%; }
.practice-group { padding: 0 0 52px; scroll-margin-top: 16px; }
.practice-group + .practice-group { padding-top: 32px; border-top: 1px solid var(--line); }
.practice-group h2 { margin-top: 14px; font-size: clamp(1.5895rem,2.38425vw,2.1855625rem); }
.practice-summary { max-width: 650px; margin-top: 18px; color: var(--body-copy); font-size: 0.79475rem; }
.service-accordion { margin-top: 24px; border-top: 1px solid var(--line); }
.service-accordion [data-slot=accordion-item] { border-bottom: 1px solid var(--line); }
.service-accordion .service-trigger { align-items: center; padding: 22px 0; border-radius: 0; background: transparent; color: var(--ink); font: var(--editorial-weight) var(--card-title-size)/1.25 var(--serif); letter-spacing: -.025em; text-decoration: none; box-shadow: none; }
.service-trigger:hover { color: var(--gold); }
.service-trigger svg { color: var(--gold); }
.service-accordion .service-detail { padding: 0 8px 26px 0; color: var(--body-copy); font: 0.79475rem/1.8 var(--sans); }
.scope-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px 24px; margin: 22px 0 0; padding: 0; list-style: none; }
.scope-list li { border-left: 1px solid #b6a487; padding-left: 12px; font-size: 0.69540625rem; line-height: 1.55; }
.practice-note { margin-top: 22px; font-size: 0.69540625rem; color: var(--muted); }
.practice-method { margin-top: 40px; padding-block: 60px 80px; border-top: 1px solid var(--line); }
.practice-method ol { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 32px; margin: 44px 0 0; padding: 0; list-style: none; }
.practice-method h3 { margin-top: 18px; font-size: var(--card-title-size); letter-spacing: -.025em; }
.practice-method li p { margin-top: 14px; color: var(--body-copy); font-size: 0.745078125rem; }

/* A calm, accessible first contact. */
.contact-page { padding-bottom: 96px; }
.contact-grid { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); align-items: start; gap: 80px; padding-top: 16px; }
.contact-image { width: 100%; min-width: 0; aspect-ratio: 16 / 10; overflow: hidden; background: var(--paper-deep); }
.contact-image img { width: 100%; height: 100%; object-fit: cover; object-position: center 60%; }
@media (min-width:801px) {
  .contact-grid { row-gap: 32px; grid-template-rows: auto 1fr; }
  .contact-details { grid-area: 1 / 1; }
  .contact-form-panel { grid-area: 1 / 2 / 3 / 3; }
  .contact-image { grid-area: 2 / 1; }
}
.contact-details { padding-top: 28px; }
.contact-details h2 { margin: 14px 0 32px; font-size: var(--compact-title-size); }
.contact-details address { display: grid; gap: 24px; color: var(--body-copy); font-style: normal; font-size: 0.79475rem; }
.contact-details address > div { display: grid; gap: 4px; min-width: 0; }
.contact-details address a { display: flex; min-height: 44px; align-items: center; overflow-wrap: anywhere; }
.contact-details address a:hover { color: var(--gold); }
.contact-timing { max-width: 290px; margin-top: 32px; color: var(--muted); font-size: 0.69540625rem; }
.contact-details > .text-link { margin-top: 12px; }
.contact-form-panel { min-width: 0; padding: 40px; background: var(--paper-deep); }
.contact-form-title { font-size: var(--compact-title-size); }
.contact-intro { margin-top: 12px; color: var(--body-copy); }
.liaison-form { display: grid; gap: 20px; margin-top: 28px; }
.liaison-fields { display: grid; gap: 20px; margin: 0; padding: 0; border: 0; min-width: 0; }
.liaison-fields:disabled { opacity: .7; }
.liaison-form label { display: grid; gap: 8px; min-width: 0; color: var(--body-copy); font-size: 0.69540625rem; line-height: 1.5; }
.liaison-form label > span { display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
.field-optional { margin-left: auto; color: var(--muted); font-size: 0.5960625rem; }
.liaison-form input, .liaison-form textarea, .liaison-form select { width: 100%; min-width: 0; min-height: 48px; padding: 12px 14px; border: 1px solid #d4d0c5; border-radius: 0; outline: none; background: var(--white); color: var(--ink); font-family: var(--sans); font-size: 0.79475rem; line-height: 1.5; letter-spacing: 0; box-shadow: none; transition: border-color .2s ease; }
.liaison-form input::placeholder, .liaison-form textarea::placeholder { color: #737369; opacity: 1; }
.liaison-form select { height: auto; padding-right: 40px; }
.liaison-form [data-slot=native-select-wrapper] { width: 100%; }
.liaison-form input:focus, .liaison-form textarea:focus, .liaison-form select:focus { border-color: var(--gold); outline: 2px solid var(--gold); outline-offset: 2px; }
.liaison-form textarea { min-height: 112px; resize: vertical; }
.liaison-form-pair { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.form-guidance { margin-top: -8px; color: var(--muted); font-size: 0.645734375rem; line-height: 1.65; }
.liaison-submit { width: 100%; }
.liaison-submit:disabled { cursor: wait; opacity: .7; }
.form-privacy { justify-self: center; min-height: 44px; display: inline-flex; align-items: center; color: var(--body-copy); font-size: 0.645734375rem; text-decoration: underline; text-underline-offset: 4px; }
.form-privacy:hover { color: var(--gold); }
.form-status { font-size: 0.69540625rem; overflow-wrap: anywhere; }
.form-status:empty { display: none; }
.form-status { scroll-margin-block: 150px 24px; }
.form-status a { text-decoration: underline; text-underline-offset: 3px; }
.form-status-success { color: #3f623f; }
.form-status-error { color: #923b32; }
.form-trap { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; }
.button-spinner { width: 16px; height: 16px; margin-right: 10px; animation: spin .85s linear infinite; }

.wordpress-theme-page { padding-bottom: 96px; }
.theme-download-panel { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 48px; padding: 54px 58px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--paper-deep); }
.theme-download-panel h2 { margin-top: 16px; font-size: var(--compact-title-size); }
.theme-download-panel ul { display: grid; gap: 13px; margin: 26px 0 0; padding: 0; list-style: none; color: var(--body-copy); }
.theme-download-panel li { position: relative; padding-left: 18px; font-size: 0.79475rem; line-height: 1.6; }
.theme-download-panel li::before { position: absolute; top: .75em; left: 0; width: 6px; height: 1px; background: var(--gold); content: ""; }
.theme-download-link { gap: 10px; white-space: nowrap; }
[data-slot=dialog-overlay] { z-index: 80; background: rgba(28,29,27,.68); backdrop-filter: blur(5px); }
[data-slot=dialog-content].liaison-dialog { z-index: 90; display: block; width: min(540px,calc(100% - 32px)); max-width: 540px !important; max-height: calc(100svh - 32px); max-height: calc(100dvh - 32px); overflow-y: auto; overscroll-behavior: contain; padding: 0 !important; border: 1px solid var(--line); border-radius: 2px !important; background: var(--paper); color: var(--ink); box-shadow: 0 24px 100px #0003; }
.liaison-dialog-inner { padding: 0 38px 28px; }
.liaison-dialog-header { position: sticky; top: 0; z-index: 2; display: flex; align-items: flex-start; flex-direction: row; justify-content: space-between; gap: 16px; padding: 30px 0 22px; border-bottom: 1px solid var(--line); background: var(--paper); text-align: left; }
.liaison-dialog-header [data-slot=dialog-title] { margin-top: 10px; font: var(--editorial-weight) 1.7087125rem/1.2 var(--serif); letter-spacing: -.035em; }
.liaison-dialog-header [data-slot=dialog-title]:focus { outline: none; }
.liaison-close { display: flex; width: 44px; height: 44px; flex-shrink: 0; align-items: center; justify-content: center; margin-right: -10px; background: transparent; color: var(--body-copy); }
.liaison-close:hover { color: var(--gold); }
.liaison-intro { margin-top: 24px; color: var(--body-copy) !important; font-size: 0.79475rem !important; line-height: 1.7 !important; }

/* Legal documents share the same typographic discipline. */
.legal-page { padding: 40px 64px 80px; }
.legal-document { width: min(100%,960px); margin-inline: auto; }
.legal-toolbar { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 20px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.legal-toolbar a, .legal-toolbar span, .legal-print { display: inline-flex; align-items: center; min-height: 44px; color: var(--muted); background: transparent; font-size: 0.5960625rem; letter-spacing: .08em; }
.legal-print { justify-self: end; }
.legal-toolbar a:hover, .legal-print:hover { color: var(--gold); }
.legal-heading { padding: 60px 0 48px; border-bottom: 1px solid var(--line); }
.legal-heading h1 { margin: 28px 0 24px; overflow-wrap: break-word; }
.legal-heading > p:not(.eyebrow) { margin-top: 4px; color: var(--muted); font-size: 0.5960625rem; letter-spacing: .08em; }
.legal-section { display: grid; grid-template-columns: 235px minmax(0,1fr); gap: 44px; padding: 36px 0; border-bottom: 1px solid var(--line); }
.legal-section-title { display: grid; grid-template-columns: 24px minmax(0,1fr); gap: 12px; align-content: start; }
.legal-section-title > span { padding-top: 5px; }
.legal-section-title h2 { font-size: var(--card-title-size); letter-spacing: -.025em; line-height: 1.3; }
.legal-section-copy { min-width: 0; color: var(--body-copy); font-size: 0.79475rem; line-height: 1.8; overflow-wrap: anywhere; }
.legal-section-copy p + p { margin-top: 14px; }
.legal-section-copy ul { margin: 14px 0 0; padding-left: 20px; }
.legal-section-copy li { margin-block: 8px; }
.legal-section-copy strong { color: var(--ink); font-weight: 600; }
.legal-closing { display: flex; justify-content: space-between; align-items: center; gap: 30px; margin-top: 54px; padding: 30px; background: var(--paper-deep); }
.legal-closing h2 { font-size: var(--card-title-size); line-height: 1.3; }
.legal-closing p { margin-top: 10px; font-size: 0.69540625rem; color: var(--body-copy); overflow-wrap: anywhere; }
.legal-closing-actions { display: flex; flex-wrap: wrap; flex-shrink: 0; max-width: 100%; gap: 12px; }
.secondary-cta { background: transparent; color: var(--ink); border-color: var(--line); }
.secondary-cta:hover { color: var(--paper); }
.not-found { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 100px 24px; gap: 24px; text-align: center; }
.not-found > p:not(.eyebrow) { color: var(--body-copy); }

.site-footer { text-transform: uppercase; border-top: 1px solid var(--line); }
.site-footer-inner { display: flex; width: min(100%,1280px); min-height: 99px; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px 24px; margin-inline: auto; padding: 24px 64px; }
.site-footer p { color: var(--muted); font-size: 0.541875rem; letter-spacing: .08em; }
.site-footer nav { display: flex; align-items: center; flex-wrap: wrap; gap: 24px; }
.site-footer a, .footer-liaison { display: inline-flex; align-items: center; min-height: 44px; padding: 0; background: transparent; color: var(--muted); font-size: 0.58703125rem; }
.footer-liaison { color: var(--gold); text-transform: uppercase; }
.site-footer a:hover, .footer-liaison:hover { color: var(--ink); }

@keyframes spin { to { transform: rotate(360deg); } }
@media (min-width:1600px) { .home-hero { gap: 80px; } }
@media (max-width:1100px) {
  .container { padding-inline: 40px; }
  .site-header-inner, .site-footer-inner { padding-inline: 40px; }
  .home-hero { gap: 40px; }
  :root { --display-size: clamp(2.5829375rem,4.7685vw,3.576375rem); }
  .audience-inner { gap: 48px; }
  .enquiry-panel { padding: 48px; gap: 40px; }
  .services-layout { grid-template-columns: 210px minmax(0,1fr); gap: 40px; }
  .contact-grid { gap: 48px; }
  .contact-form-panel { padding: 30px; }
  .legal-page { padding-inline: 40px; }
  .legal-section { grid-template-columns: 200px minmax(0,1fr); gap: 30px; }
  .legal-closing { flex-direction: column; align-items: stretch; }
}
@media (max-width:800px) {
  .theme-download-panel { grid-template-columns: 1fr; padding: 38px 28px; }
  .theme-download-link { justify-self: start; white-space: normal; }
}
@media (max-width:800px) {
  html { scroll-padding-top: 130px; }
  .container { padding-inline: 24px; }
  .site-header-inner { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 0 20px; min-height: 0; padding: 12px max(24px,env(safe-area-inset-right)) 0 max(24px,env(safe-area-inset-left)); }
  .header-actions { display: contents; }
  .header-wordmark { grid-column: 1; grid-row: 1; }
  .brand-wordmark { width: 166px; max-width: 100%; height: auto; }
  .header-liaison { grid-column: 2; grid-row: 1; justify-self: end; max-width: 128px; text-align: right; font-size: 0.541875rem; letter-spacing: .07em; }
  .page-navigation { grid-column: 1 / -1; grid-row: 2; display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 10px; border-top: 1px solid var(--line); }
  .page-navigation a { justify-content: center; min-height: 48px; }
  .page-navigation a::after { bottom: 8px; left: 25%; right: 25%; }
  .home-hero { grid-template-columns: minmax(0,1fr); gap: 36px; padding-block: 44px 56px; }
  .hero-copy > .eyebrow { margin-bottom: 24px; }
  :root { --display-size: clamp(2.2650375rem,6.596425vw,3.576375rem); --card-title-size: 1.1523875rem; --compact-title-size: 1.7881875rem; }
  .hero-description { max-width: 540px; font-size: 0.89409375rem; }
  .hero-actions { gap: 10px 24px; }
  .hero-location { margin-top: 24px; }
  .hero-image { aspect-ratio: 16/10; max-height: 380px; }
  .hero-image img { object-position: center 56%; }
  .section-heading { grid-template-columns: minmax(0,1fr); gap: 20px; }
  .section-heading > .eyebrow { padding-top: 0; }
  .expertise-section { padding-block: 52px 60px; }
  .expertise-grid { margin-top: 36px; column-gap: 28px; }
  .expertise-link { grid-template-columns: 20px minmax(0,1fr) 16px; gap: 10px; padding-block: 24px; }
  .expertise-link p { font-size: 0.69540625rem; }
  .audience-section { padding-block: 56px; }
  .audience-inner { grid-template-columns: minmax(0,1fr); gap: 36px; }
  .audience-intro h2 { margin-top: 20px; }
  .audience-list > div { padding-block: 22px; }
  .home-enquiry { padding-top: 56px; }
  .enquiry-panel { grid-template-columns: minmax(0,1fr); gap: 28px; padding: 36px; }
  .enquiry-panel-action { justify-self: start; }
  .enquiry-panel-action > p { margin-bottom: 22px; }
  .location-block { padding-block: 36px; }
  .location-block address { flex-direction: column; gap: 0; }
  .location-block address > span { max-width: 420px; margin-bottom: 8px; }
  .page-heading { padding-block: 44px 56px; }
  .page-heading h1, .legal-heading h1 { margin-top: 24px; }
  .services-page { padding-bottom: 56px; }
  .services-layout { grid-template-columns: minmax(0,1fr); gap: 36px; padding-top: 28px; }
  .practice-index { position: static; }
  .practice-index nav { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px 24px; }
  .practice-index > .text-link { margin-top: 12px; }
  .practice-image { aspect-ratio: 16 / 9; margin-bottom: 28px; }
  .practice-group { padding-bottom: 32px; }
  .practice-group h2 { font-size: 1.7881875rem; }
  .practice-method { margin-top: 16px; padding-block: 44px 56px; }
  .practice-method ol { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 30px; margin-top: 32px; }
  .contact-page { padding-bottom: 56px; }
  .contact-grid { grid-template-columns: minmax(0,1fr); gap: 36px; padding-top: 0; }
  .contact-image { aspect-ratio: 16 / 9; }
  .contact-details { padding-top: 0; }
  .contact-details h2 { margin-bottom: 24px; }
  .contact-details address { gap: 18px; }
  .contact-timing { margin-top: 22px; }
  .contact-form-panel { padding: 28px; }
  .legal-page { padding: 28px 24px 56px; }
  .legal-heading { padding-block: 36px; }
  .legal-section { grid-template-columns: minmax(0,1fr); gap: 22px; padding-block: 30px; }
  .site-footer-inner { flex-direction: column; padding: 24px 24px max(24px,env(safe-area-inset-bottom)); gap: 10px; text-align: center; }
  .site-footer nav { justify-content: center; gap: 8px 24px; }
  .site-footer a, .footer-liaison { font-size: 0.6321875rem; }
}
@media (max-width:540px) {
  .expertise-grid { grid-template-columns: minmax(0,1fr); }
  :root { --card-title-size: 1.2716rem; }
  .expertise-link { gap: 14px; }
  .enquiry-panel { padding: 32px 26px; }
  .enquiry-panel h2 { font-size: clamp(1.74845rem,6.755375vw,2.622675rem); }
  .practice-index nav { grid-template-columns: minmax(0,1fr); gap: 0; }
  .practice-index nav a { border-bottom: 1px solid var(--line); }
  .practice-method ol { gap: 24px; }
  .scope-list { grid-template-columns: minmax(0,1fr); }
  .liaison-form-pair { grid-template-columns: minmax(0,1fr); gap: 20px; }
  .liaison-dialog-inner { padding-inline: 24px; }
  .liaison-dialog-header { padding-top: 22px; }
  .liaison-dialog-header [data-slot=dialog-title] { font-size: 1.510025rem; }
  .contact-form-panel { padding: 24px; }
  .legal-toolbar { grid-template-columns: minmax(0,1fr) auto; gap: 12px; }
  .legal-toolbar > span { display: none; }
  .legal-closing { padding: 24px; }
  .legal-closing-actions { flex-direction: column; }
}
@media (max-width:360px) {
  .container { padding-inline: 20px; }
  .site-header-inner { padding-inline: 16px; column-gap: 14px; }
  .brand-wordmark { width: 138px; }
  .header-liaison { max-width: 112px; font-size: 0.49671875rem; }
  :root { --display-size: 2.1060875rem; }
  .legal-page { padding-inline: 20px; }
  .hero-actions { align-items: flex-start; flex-direction: column; }
  .hero-location { gap: 10px; font-size: 0.546390625rem; }
  .contact-form-panel { padding: 22px 18px; }
  .liaison-dialog-inner { padding-inline: 20px; }
  .practice-method ol { grid-template-columns: minmax(0,1fr); }
}
/* Keep functional text legible without changing the approved editorial scale. */
.liaison-form input, .liaison-form textarea, .liaison-form select { font-size: 1.1rem; }
.liaison-form label, .form-status, .contact-intro, .contact-details address { font-size: 0.9625rem; }
.liaison-intro { font-size: 0.9625rem !important; }
.field-optional, .form-guidance, .form-privacy { font-size: 0.825rem; }
.page-navigation a, .header-liaison, .site-footer a, .footer-liaison { font-size: .75rem; }
.primary-cta, .liaison-submit, .text-link, .legal-print, .legal-toolbar a { font-size: 0.825rem; }
.legal-section-copy a, .legal-closing p a { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width:800px) {
  .page-navigation a, .site-footer a, .footer-liaison { font-size: .875rem; }
  .text-link { font-size: 0.9625rem; }
}
@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
@media print {
  .site-header, .site-footer, .legal-toolbar, .legal-closing, .skip-link, [data-sonner-toaster] { display: none !important; }
  body { background: white; color: #222; }
  .legal-page { padding: 0; }
  .legal-document { max-width: none; }
  .legal-heading { padding-top: 0; }
  .legal-section { break-inside: avoid; }
  .legal-section-copy { font-size: 12.1pt; }
  .legal-heading > p:not(.eyebrow) { font-size: 9.9pt; }
  .practice-index { position: static; }
}

/* Compact mobile chrome; page typography above is enlarged by 10%. */
@media (max-width:800px) {
  html { scroll-padding-top: 116px; }
  .site-header-inner {
    column-gap: 12px;
    padding: 6px max(16px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left));
  }
  .header-wordmark { min-width: 0; }
  .brand-wordmark { width: clamp(124px,36vw,152px); height: auto; }
  .header-liaison {
    max-width: 116px;
    font-size: clamp(.625rem,2.5vw,.6875rem);
    letter-spacing: .055em;
    line-height: 1.4;
  }
  .page-navigation { gap: 16px; margin-top: 4px; }
  .page-navigation a { min-height: 44px; font-size: clamp(.6875rem,2.8vw,.75rem); }
  .page-navigation a::after { bottom: 5px; }
  .site-footer-inner {
    min-height: 0;
    padding: 16px max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));
    gap: 4px;
  }
  .site-footer p { font-size: .5rem; letter-spacing: .06em; overflow-wrap: anywhere; }
  .site-footer nav { width: 100%; column-gap: clamp(12px,4vw,24px); row-gap: 0; }
  .site-footer a, .footer-liaison { font-size: clamp(.625rem,2.8vw,.75rem); min-height: 44px; }
}

/* Contact-page form only: reduce the current typography by 15%. */
.contact-form-panel { font-size: .6755375rem; }
.contact-form-panel .contact-form-title { font-size: calc(var(--compact-title-size) * .85); }
.contact-form-panel .contact-intro,
.contact-form-panel .liaison-form label,
.contact-form-panel .form-status { font-size: .818125rem; }
.contact-form-panel .liaison-form input,
.contact-form-panel .liaison-form textarea,
.contact-form-panel .liaison-form select { font-size: .935rem; }
.contact-form-panel .field-optional,
.contact-form-panel .form-guidance,
.contact-form-panel .form-privacy,
.contact-form-panel .liaison-submit { font-size: .70125rem; }

/* Block markup adapters preserve the approved frontend proportions. */
.wp-site-blocks { min-height: 100svh; display: flex; flex-direction: column; }
.wp-site-blocks > main { flex: 1; width: 100%; }
:where(.wp-site-blocks, .wp-block-post-content, .wp-block-group) > :where(*) { margin-block-start: 0; margin-block-end: 0; }
.wp-block-group { box-sizing: border-box; }
.wp-block-image img { vertical-align: middle; }
.wp-block-navigation .wp-block-navigation-item__content { color: inherit; }
.header-wordmark { width: 228px; margin: 0; }
.header-wordmark img { width: 228px; height: auto; }
.page-navigation .wp-block-navigation__container { gap: 28px; }
.page-navigation a { white-space: nowrap; }
.wp-block-buttons { gap: 12px; }
.wp-block-button { margin: 0; max-width: 100%; }
/* Appearance controls on a Button block apply to its real link. */
.wp-block-button:is(.primary-cta,.header-liaison,.footer-liaison,.legal-print,.liaison-close) { display: block; padding: 0; border: 0; background: none; border-radius: 0; min-height: 0; color: inherit; }
.wp-block-button__link { font-family: inherit; text-decoration: none; box-shadow: none; box-sizing: border-box; }
.primary-cta > .wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 15px 28px; border: 1px solid var(--ink); border-radius: 999px; background: var(--ink); color: var(--paper); font-size: .825rem; letter-spacing: .13em; line-height: 1.4; text-transform: uppercase; }
.primary-cta > .wp-block-button__link:hover { background: var(--gold); border-color: var(--gold); }
.light-cta > .wp-block-button__link { background: var(--paper); border-color: var(--paper); color: var(--ink); }
.light-cta > .wp-block-button__link:hover { color: var(--paper); }
.header-liaison > .wp-block-button__link { display: inline-flex; align-items: center; min-height: 44px; padding: 0; background: none; border-radius: 0; border-bottom: 1px solid var(--ink); color: var(--ink); font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; }
.footer-liaison > .wp-block-button__link { display: inline-flex; align-items: center; min-height: 44px; padding: 0; border-radius: 0; background: none; color: var(--gold); font-size: .75rem; text-transform: uppercase; }
.footer-navigation { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.footer-navigation .wp-block-navigation__container { gap: 24px; }
.footer-navigation .wp-block-button { line-height: inherit; }
.text-link { display: block; }
.text-link > a { display: inline-flex; min-height: 44px; align-items: center; gap: 12px; }
.hero-actions { align-items: center; }
.expertise-link { position: relative; }
.expertise-link h3 a::after { content: ''; position: absolute; inset: 0; }
.expertise-link h3 a:focus-visible::after { outline: 2px solid var(--gold); outline-offset: 4px; }
.expertise-link .index-number { margin: 0; }
.expertise-link .card-arrow { color: var(--gold); font: 1.2rem/1 var(--sans); margin: 7px 0 0; }
.audience-list h3 { font-size: 1.2716rem; line-height: 1.35; }
.audience-list p { margin-top: 10px; color: var(--body-copy); font-size: .79475rem; }
.location-address { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 4px 32px; margin-top: 16px; color: var(--body-copy); font-size: .69540625rem; }
.location-address a { display: inline-flex; min-height: 44px; align-items: center; }
.practice-jumps { margin-top: 18px; }
.practice-jumps a { display: grid; grid-template-columns: 20px minmax(0,1fr); gap: 10px; min-height: 44px; padding-block: 10px; align-items: baseline; color: var(--body-copy); font-size: .69540625rem; line-height: 1.5; }
.practice-jumps a:hover { color: var(--gold); }
.practice-group + .practice-group { border: 0; }
.service-disclosure { border-bottom: 1px solid var(--line); }
.service-disclosure > summary { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 22px 0; cursor: pointer; list-style: none; color: var(--ink); font: var(--editorial-weight) var(--card-title-size)/1.25 var(--serif); letter-spacing: -.025em; }
.service-disclosure > summary::-webkit-details-marker { display: none; }
.service-disclosure > summary::after { content: '+'; font: 1.125rem var(--sans); color: var(--gold); }
.service-disclosure[open] > summary::after { content: '−'; }
.service-disclosure > p { color: var(--body-copy); font-size: .79475rem; line-height: 1.8; }
.service-disclosure > :last-child:not(summary) { margin-bottom: 26px; }
.service-disclosure .practice-note { font-size: .69540625rem; margin-top: 22px; }
.method-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 32px; margin-top: 44px; }
.method-step p:not(.index-number) { margin-top: 14px; color: var(--body-copy); font-size: .745078125rem; }
.contact-address { display: grid; gap: 24px; color: var(--body-copy); font-size: .9625rem; }
.contact-address > div { display: grid; gap: 4px; min-width: 0; }
.contact-address a { display: flex; align-items: center; min-height: 44px; overflow-wrap: anywhere; }
.legal-reference { color: var(--muted); font-size: .5960625rem; letter-spacing: .08em; }
.legal-print .wp-block-button__link { padding: 0; min-height: 44px; display: inline-flex; align-items: center; border-radius: 0; background: none; color: var(--muted); font-size: .825rem; }
.legal-section-title .index-number { padding-top: 5px; }
.legal-closing > .wp-block-buttons { flex-wrap: nowrap; flex-shrink: 0; }
.generic-page { padding-block: 64px 80px; }
.generic-page h1 { margin-bottom: 32px; }
.liaison-part { display: none; }
dialog.publique-dialog { width: min(540px,calc(100% - 32px)); max-width: 540px; max-height: calc(100dvh - 32px); padding: 0; border: 1px solid var(--line); border-radius: 2px; background: var(--paper); color: var(--ink); overflow-y: auto; overscroll-behavior: contain; box-shadow: 0 24px 100px #0003; }
dialog.publique-dialog::backdrop { background: rgba(28,29,27,.68); backdrop-filter: blur(5px); }
.publique-dialog .liaison-dialog-header h2 { margin-top: 10px; font: var(--editorial-weight) 1.7087125rem/1.2 var(--serif); letter-spacing: -.035em; }
.publique-dialog .liaison-dialog-header h2:focus { outline: none; }
.liaison-close > .wp-block-button__link { min-width: 44px; min-height: 44px; padding: 0; display: inline-flex; align-items: center; justify-content: center; background: none; color: var(--body-copy); border-radius: 0; font-size: .75rem; }
body.publique-dialog-open { overflow: hidden; }
.admin-bar .site-header { top: 32px; }
@media(max-width:1100px) { .legal-closing > .wp-block-buttons { flex-wrap: wrap; } }
@media(max-width:800px) {
  .header-wordmark { width: clamp(124px,36vw,152px); }
  .header-wordmark img { width: 100%; }
  .header-actions > .wp-block-buttons { grid-column: 2; grid-row: 1; justify-self: end; }
  .header-liaison > .wp-block-button__link { max-width: 116px; font-size: clamp(.625rem,2.5vw,.6875rem); letter-spacing: .055em; line-height: 1.4; text-align: right; }
  .page-navigation { display: block; width: 100%; }
  .page-navigation .wp-block-navigation__container { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); width: 100%; gap: 16px; }
  .page-navigation .wp-block-navigation-item { justify-content: center; }
  .page-navigation a { font-size: clamp(.6875rem,2.8vw,.75rem); }
  .footer-navigation { justify-content: center; gap: clamp(12px,4vw,24px); }
  .footer-navigation .wp-block-navigation__container { gap: clamp(12px,4vw,24px); }
  .footer-navigation nav { width: auto; }
  .footer-liaison > .wp-block-button__link { font-size: clamp(.625rem,2.8vw,.75rem); }
  .location-address { flex-direction: column; gap: 0; }
  .location-address > p:first-child { max-width: 420px; margin-bottom: 8px; }
  .practice-jumps { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px 24px; }
  .method-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 30px; margin-top: 32px; }
  .contact-address { gap: 18px; }
}
@media(max-width:782px) { .admin-bar .site-header { top: 46px; } }
@media(max-width:600px) { .admin-bar .site-header { top: 0; } }
@media(max-width:540px) {
  .practice-jumps { grid-template-columns: minmax(0,1fr); gap: 0; }
  .practice-jumps a { border-bottom: 1px solid var(--line); }
  .method-grid { gap: 24px; }
  .publique-dialog .liaison-dialog-header h2 { font-size: 1.510025rem; }
  .legal-reference { display: none; }
  .legal-closing > .wp-block-buttons { flex-direction: column; align-items: stretch; }
}
@media(max-width:360px) { .method-grid { grid-template-columns: minmax(0,1fr); } }
@media print { .liaison-part, dialog.publique-dialog { display: none !important; } }

/* Explicit form block style choices take precedence over the starter sizes. */
.publique-enquiry-block[style*="font-size"] .liaison-form,
.publique-enquiry-block[style*="font-size"] .liaison-form :is(label,input,textarea,select,.field-optional,.form-guidance,.form-privacy,.liaison-submit,.form-status),
.publique-enquiry-block.has-custom-font-size .liaison-form :is(label,input,textarea,select,.field-optional,.form-guidance,.form-privacy,.liaison-submit,.form-status) { font-size: inherit; }
.publique-enquiry-block.has-text-color .liaison-form :is(label,.form-guidance,.form-privacy,.form-status) { color: inherit; }
