/* Authoritative Clinician — load after the existing theme styles.
   Component-specific overrides preserve clinical media, native controls and forms. */
:root {
  --navy: #142b49;
  --royal-navy: #203f67;
  --teal: #326c78;
  --slate: #526982;
  --cream: #faf9f5;
  --white: #ffffff;
  --pale-blue: #edf2f6;
  --light-blue: #dbe8ee;
  --ink: var(--navy);
  --dark: var(--navy);
  --muted: var(--slate);
  --line: #d5dfe6;
  --paper: var(--white);
  --warm: var(--cream);
  --accent: var(--teal);
  --citrus: var(--light-blue);
  --wp--preset--color--forest: var(--royal-navy);
  --wp--preset--color--ink: var(--navy);
  --wp--preset--color--ivory: var(--cream);
  --wp--preset--color--stone: var(--pale-blue);
  --wp--preset--color--brass: var(--teal);
  --dew-gutter: clamp(16px, 3.2vw, 48px);
  --dew-strip-height: 44px;
  --dew-header-height: 104px;
  --dew-admin-offset: 0px;
  --dew-sticky-height: calc(var(--dew-strip-height) + var(--dew-header-height) + var(--dew-admin-offset));
}
html {
  width: 100%;
  min-width: 0;
  scroll-padding-top: calc(var(--dew-sticky-height) + 24px);
}
body {
  width: 100%;
  min-width: 0;
  margin: 0;
  padding-bottom: 96px;
  background: var(--white);
  color: var(--navy);
  font-family: "Poppins", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.8;
}
body.admin-bar { --dew-admin-offset: 32px; }
main, .main-column, .shared-content, .wp-block-group, .wp-block-column,
.content-with-panel > *, .contact-layout > *, .footer-content {
  min-width: 0;
}
.container {
  width: min(1320px, calc(100% - var(--dew-gutter) * 2));
  margin-inline: auto;
}
h1, h2, h3, h4, h5, h6 { color: var(--navy); }
h1, h2 { letter-spacing: -0.045em; }
h1 em, h2 em, .hero h1 em, .hero-v2 h1 em, .page-intro h1 em {
  color: var(--teal);
}
p { color: var(--slate); }
p, li, h1, h2, h3, h4, address, figcaption, label, summary {
  overflow-wrap: anywhere;
}
.lead { color: var(--royal-navy); }
.eyebrow, .credential-heading .eyebrow, .case-category,
.qualification-row > span, .document-section .eyebrow,
.large-form-section .eyebrow, dialog .eyebrow {
  color: var(--teal);
}
/* Existing saved blocks may still carry the previous editor palette slugs. */
.has-forest-color { color: var(--royal-navy) !important; }
.has-ink-color { color: var(--navy) !important; }
.has-ivory-color { color: var(--cream) !important; }
.has-stone-color { color: var(--pale-blue) !important; }
.has-brass-color { color: var(--teal) !important; }
.has-forest-background-color { background-color: var(--royal-navy) !important; }
.has-ink-background-color { background-color: var(--navy) !important; }
.has-ivory-background-color { background-color: var(--cream) !important; }
.has-stone-background-color { background-color: var(--pale-blue) !important; }
.has-brass-background-color { background-color: var(--teal) !important; }
.eyebrow { font-size: 12px; letter-spacing: 0.12em; }
.fineprint, .rail-note { font-size: 12px; color: var(--slate); }
::selection { color: var(--navy); background: var(--light-blue); }
a:focus-visible, button:focus-visible, input:focus-visible,
textarea:focus-visible, select:focus-visible, summary:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid var(--teal);
  outline-offset: 4px;
}
.skip-link { background: var(--navy); color: var(--white); }
.request-panel :focus-visible, .closing-cta :focus-visible,
.top-strip :focus-visible, .education-stage :focus-visible {
  outline: 3px solid var(--light-blue);
  outline-offset: 4px;
}

/* Contact and navigation remain available at the top of the page. */
.top-strip {
  position: sticky;
  top: var(--dew-admin-offset);
  z-index: 31;
  height: var(--dew-strip-height);
  padding: 0 var(--dew-gutter);
  gap: 16px;
  background: var(--navy);
  color: var(--white);
  border: 0;
  line-height: 1.45;
}
.top-strip > span {
  min-width: 0;
  flex: 1 1 auto;
  max-width: none;
  color: var(--light-blue);
  font-size: 12px;
  letter-spacing: 0;
}
.top-strip a {
  flex: 0 0 auto;
  align-items: center;
  min-height: 44px;
  gap: 16px;
  color: var(--white);
  font-size: 14px;
  white-space: nowrap;
}
.site-header {
  top: calc(var(--dew-strip-height) + var(--dew-admin-offset));
  z-index: 30;
  height: var(--dew-header-height);
  padding: 0 var(--dew-gutter);
  gap: 24px;
  background: var(--white);
  color: var(--navy);
  border-color: var(--line);
  box-shadow: 0 4px 18px #142b4906;
}
.site-header .service-brand {
  width: clamp(200px, 18vw, 245px);
  max-width: 245px;
  min-width: 0;
  flex: 0 0 clamp(200px, 18vw, 245px);
}
.brand > .service-wordmark {
  max-width: 245px;
  margin: 0;
  color: var(--navy);
  font-size: 20px;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: -0.035em;
}
.brand-dot { color: var(--teal); }
.brand > .brand-endorsement { color: var(--slate); font-size: 11px; }
.brand-endorsement > span { border-color: var(--line); }
.site-header nav {
  min-width: 0;
  gap: 16px;
  color: var(--navy);
  font-size: 13px;
}
.dew-menu {
  min-width: 0;
  gap: clamp(12px, 1.2vw, 20px);
}
.dew-menu a {
  min-height: 44px;
  padding: 12px 0;
  color: var(--navy);
  font-size: 13px;
  line-height: 1.5;
}
.site-header nav > a:not(.nav-contact)::after { background: var(--teal); }
.dew-menu .current-menu-item > a { box-shadow: 0 2px 0 var(--teal); }
.dew-menu a:hover, .footer-menu a:hover { color: var(--teal); }
.site-header nav .nav-contact, .dew-menu .nav-contact {
  background: var(--royal-navy) !important;
  color: var(--white);
  border-color: var(--royal-navy) !important;
}
.dew-menu .nav-contact a {
  padding: 14px 18px;
  color: var(--white);
}
.site-header nav .nav-contact:hover, .dew-menu .nav-contact:hover {
  background: var(--navy) !important;
}
.menu-toggle {
  flex: none;
  min-width: 48px;
  min-height: 48px;
  padding: 12px;
  border: 1px solid var(--line);
  background: var(--white);
  color: var(--navy);
}
.menu-toggle span { background: var(--navy); }

/* Quiet, high-contrast actions rather than bright promotional colours. */
.button {
  max-width: 100%;
  min-height: 52px;
  padding: 16px 22px;
  gap: 20px;
  background: var(--royal-navy);
  color: var(--white);
  border-color: var(--royal-navy);
  font-size: 14px;
  line-height: 1.6;
  white-space: normal;
  overflow-wrap: anywhere;
}
.button:hover { background: var(--navy); border-color: var(--navy); }
.button.outline { color: var(--royal-navy); border-color: var(--royal-navy); }
.button.outline:hover { background: var(--pale-blue); }
.button span, .text-link span { flex: none; }
.text-link, .sitemap-list .text-link {
  max-width: 100%;
  min-height: 44px;
  gap: 16px;
  border-color: var(--teal);
  color: var(--teal);
  font-size: 14px;
  line-height: 1.7;
  white-space: normal;
  overflow-wrap: anywhere;
}
.text-link:hover { gap: 20px; }

/* Native clinical player: no crop, forced playback or overlapping portrait. */
.hero.hero-v2 {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(32px, 4vw, 64px);
  max-width: 1416px;
  min-height: 0;
  padding: clamp(40px, 4vw, 64px) var(--dew-gutter);
  margin-inline: auto;
  overflow: visible;
}
.hero-v2 .hero-copy { padding: 0; min-width: 0; }
.hero-v2 h1 {
  font-size: clamp(40px, 4.5vw, 64px);
  line-height: 1.15;
  letter-spacing: -0.05em;
  max-width: 700px;
}
.hero-v2 h1 em::after {
  right: 0;
  bottom: -4px;
  background: var(--teal);
}
.hero-kicker {
  font-size: 12px;
  color: var(--slate);
  letter-spacing: 0.025em;
  margin-bottom: 24px;
  gap: 12px;
}
.hero-v2 .hero-kicker { margin-bottom: 24px; }
.hero-kicker > p {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  font-size: inherit;
  color: inherit;
}
.status-dot { display: inline-block; background: var(--teal); }
.tiny-rule { background: var(--teal); }
.hero-v2 .hero-subtitle {
  margin-top: 24px;
  color: var(--royal-navy);
  font-size: clamp(20px, 1.8vw, 24px);
  line-height: 1.6;
  letter-spacing: -0.025em;
}
.hero-v2 .hero-description {
  margin-top: 20px;
  max-width: 590px;
  color: var(--slate);
  font-size: 15px;
  line-height: 1.85;
}
.hero-v2 .hero-buttons {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px !important;
  margin-top: 28px;
}
.hero-v2 .hero-buttons > p {
  min-width: 0;
  max-width: 100%;
  flex-direction: row;
  align-items: center;
  gap: 20px;
}
.hero-v2 .hero-buttons .button {
  padding: 16px 20px;
  gap: 20px;
  font-size: 14px;
}
.hero-v2 .hero-buttons .text-link {
  max-width: 100%;
  font-size: 14px;
  gap: 16px;
}
.hero-v2 .hero-trust {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 16px;
  font-size: 12px;
  margin-top: 24px;
}
.hero-trust > span {
  color: var(--slate);
  border-color: var(--line);
  font-size: 12px;
}
.hero-trust i { color: var(--teal); }
.hero-trust > p { gap: 16px; font-size: 12px; color: var(--slate); }
.hero-trust > p > span { border-color: var(--teal); }
.hero-scope-line, .hero-scope-line > p {
  font-size: 13px;
  line-height: 1.8;
  color: var(--slate);
}
.hero-v2 .hero-scope-line { margin-top: 16px; }
.hero-scope-line > p { margin: 0; }
.hero-scope-line > span, .hero-scope-line p > span { color: var(--teal); }
.hero .hero-visual, .hero .hero-visual:has(.examination-media) {
  position: relative;
  align-self: center;
  justify-self: center;
  width: min(100%, 340px);
  max-width: 360px;
  height: auto;
  min-height: 0;
  padding: 0;
  margin: 0;
}
.hero-visual .hero-clinic, .hero-visual .examination-media {
  height: auto;
  margin: 0;
  border: 1px solid var(--line);
  background: var(--navy);
}
.hero-clinic::after {
  background: linear-gradient(transparent, #142b49e6);
}
.hero-clinic.examination-media::after { display: none; }
.hero-visual .examination-media video {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  min-height: 0;
  max-height: 560px;
  aspect-ratio: auto;
  object-fit: contain;
  object-position: center;
  background: var(--navy);
  transform: none !important;
}
.hero .hero-visual.is-landscape,
.hero .hero-visual[data-aspect="landscape"] {
  width: 100%;
  max-width: 560px;
}
.hero-clinic.examination-media figcaption {
  position: static;
  padding: 16px 20px;
  border-color: var(--slate);
  background: var(--royal-navy);
  color: var(--white);
  font-size: 13px;
  line-height: 1.7;
}
.hero-clinic figcaption .eyebrow,
.hero-clinic figcaption > span:last-child { color: var(--light-blue); }
.video-description {
  max-width: 560px;
  margin-top: 16px;
  color: var(--slate);
  font-size: 13px;
  line-height: 1.8;
}
.hero-profile {
  position: static;
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  align-items: center;
  gap: 4px 16px;
  width: 100%;
  min-width: 0;
  margin-top: 24px;
  padding: 16px;
  background: var(--cream);
  border: 1px solid var(--line);
  box-shadow: none;
  color: var(--navy);
}
.hero-profile > img, .hero-profile > .wp-block-image {
  grid-column: 1;
  grid-row: 1 / span 3;
  width: 72px;
  height: 80px;
  margin: 0;
}
.hero-profile > img, .hero-profile > .wp-block-image > img {
  width: 72px;
  height: 80px;
  object-fit: cover;
  object-position: 50% 35%;
  border-radius: 2px;
  transform: none !important;
}
.hero-profile > div {
  grid-column: 2;
  grid-row: 1 / span 3;
  min-width: 0;
  flex: 1 1 150px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 0;
  color: var(--navy);
  line-height: 1.6;
}
.hero-profile strong {
  color: var(--navy);
  font-size: 17px;
  font-weight: 500;
  letter-spacing: -0.025em;
}
.hero-profile > strong, .hero-profile > span, .hero-profile > small { grid-column: 2; }
.hero-copy > .hero-profile { max-width: 560px; margin-top: 24px; }
.hero-profile span, .hero-profile small {
  color: var(--slate);
  font-size: 13px;
  letter-spacing: 0;
}
.hero-index {
  position: static;
  display: block;
  writing-mode: horizontal-tb;
  margin-top: 16px;
  padding: 0;
  color: var(--slate);
  background: transparent;
  font-size: 11px;
}

/* Native Gutenberg image/paragraph wrappers retain the original component intent. */
.credential-banner { padding: 28px var(--dew-gutter); background: var(--cream); }
.credential-heading { flex-wrap: wrap; gap: 16px; }
.credential-heading .eyebrow { margin: 0; font-size: 12px; max-width: none; }
.credential-heading p { font-size: 13px; max-width: none; }
.logo-rail { gap: 32px; scrollbar-color: var(--slate) transparent; }
.logo-rail > figure {
  flex: 0 0 150px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  width: 150px;
  height: 80px;
  margin: 0;
}
.logo-rail > figure > img {
  width: auto;
  height: auto;
  max-width: 150px;
  max-height: 64px;
  object-fit: contain;
}
.logo-rail > .institution { color: var(--slate); }
.logo-rail img.light-logo, .logo-rail img[src*="institution-eaed"],
.logo-rail > figure.light-logo {
  background: var(--navy);
  mix-blend-mode: normal;
}
.logo-rail > figure.light-logo { padding: 8px 12px; }
.logo-rail > figure.light-logo > img { max-width: 126px; mix-blend-mode: normal; }
.rail-note { margin-top: 12px; }
.content-with-panel {
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: clamp(32px, 3.4vw, 48px);
  align-items: start;
  padding-top: 8px;
}
.section-block { padding: clamp(40px, 4.5vw, 64px) 0; }
.section-block h2 { font-size: clamp(30px, 3vw, 40px); line-height: 1.25; }
.section-block > p, .shared-content p, .qualification-row p,
.compact-list p, .report-definitions p, .expertise-list p,
.service-columns p, .case-card p, .paired-gallery .case-card p,
.publications p, .faq-list p, .steps p, .checklist li,
.fee-list p, .notice, .address-box p, .address-box address,
.large-form-section > p, .document-section p, .case-detail p,
.engagement-intro p, .terms-section p, .terms-section li, .terms-item p,
.legal-context p {
  font-size: 15px;
  line-height: 1.85;
}
.section-block > .lead { font-size: 18px; }
.section-block > .eyebrow { font-size: 12px; }
.section-block > .eyebrow::before { background: var(--teal); }
.stats { flex-wrap: wrap; gap: 24px; }
.stats > div { min-width: 0; flex: 1 1 130px; }
.stats span { font-size: 12px; max-width: none; color: var(--slate); }
.credential-focus { gap: 24px; flex-wrap: wrap; }
.credential-focus > p {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  min-width: 0;
  margin: 0;
}
.credential-focus > a, .credential-focus > p > a {
  min-width: 0;
  flex: 1 1 140px;
}
.credential-focus strong { font-size: 25px; color: var(--royal-navy); }
.credential-focus span { font-size: 13px; color: var(--slate); }
.legal-context { display: flex; flex-wrap: wrap; gap: 24px; }
.legal-context article {
  display: block;
  flex: 1 1 185px;
  border-color: var(--teal);
  padding-block: 20px 0;
}
.legal-context article > span, .legal-context article > p:first-child {
  margin: 0;
  font-size: 12px;
  color: var(--teal);
}
.legal-context h3 { font-size: 17px; margin-top: 12px; }
.expertise-list article { gap: 20px; }
.expertise-list article > div { min-width: 0; }
.expertise-list article > p:first-child, .expertise-list article > p:last-child {
  margin: 0;
  flex: none;
  color: var(--teal);
  font-size: 13px;
}
.expertise-list article > span:first-child, .expertise-list article > span:last-child {
  color: var(--teal);
}
.service-columns { gap: 24px; }
.service-columns article { min-width: 0; }
.service-columns h3 { font-size: 17px; }
.service-icon { color: var(--teal); border-color: var(--line); }
.professional-link { border-color: var(--line); }
.professional-link strong { color: var(--royal-navy); }
.professional-link > span { font-size: 15px; color: var(--slate); }
.professional-link .external-label { font-size: 13px; color: var(--teal); }
.publications article { gap: 20px; }
.publications article > div { min-width: 0; }
.publications .pub-year { margin: 0; flex: none; color: var(--teal); font-size: 13px; }
.publications h3 { font-size: 17px; }
.pub-label { background: var(--pale-blue); color: var(--royal-navy); border-color: var(--line); }
.faq-list summary { font-size: 15px; gap: 20px; }
.faq-list summary > span { flex: none; }
.faq-list p { padding-right: 0; }
.page-intro { background: var(--cream); padding-block: 32px 48px; }
.page-intro::after { background: var(--teal); left: var(--dew-gutter); }
.page-intro h1 { font-size: clamp(34px, 4.3vw, 54px); line-height: 1.2; }
.page-intro .lead { font-size: 16px; line-height: 1.85; }
.breadcrumb, .breadcrumb > p { flex-wrap: wrap; font-size: 12px; color: var(--slate); }
.breadcrumb { gap: 16px; margin-bottom: 28px; }
.about-portrait > div { max-width: calc(100% - 40px); border-color: var(--teal); }
.qualification-row > p:first-child { color: var(--teal); font-size: 13px; }
.section-block blockquote { color: var(--royal-navy); border-color: var(--teal); }
.section-block cite { color: var(--slate); font-size: 12px; }
.notice, .address-box, .large-form-section, .document-section, .terms-toc {
  min-width: 0;
  background: var(--cream);
  border-left-color: var(--teal);
}
.document-section, .large-form-section, .address-box, .terms-toc {
  padding: clamp(20px, 2.8vw, 36px);
}
.document-links a { gap: 16px; font-size: 14px; color: var(--teal); border-color: var(--line); }
.document-links span { font-size: 12px; white-space: normal; }
.steps article { gap: 20px; }
.steps article > div, .terms-item > div, .fee-list article > div { min-width: 0; }
.steps article > span, .tags span { border-color: var(--line); }
.checklist li::before { color: var(--teal); }
.fee-list article { flex-wrap: wrap; gap: 16px 24px; }
.fee-list article > div { flex: 1 1 220px; }
.fee-list strong { color: var(--royal-navy); white-space: normal; }
.terms-item { gap: 20px; }
.terms-item > span { flex: none; color: var(--teal); }
.terms-toc ol { gap: 32px; }
.terms-toc li { font-size: 14px; color: var(--teal); }
.terms-section li { color: var(--slate); }
.terms-section h2 { font-size: clamp(25px, 2.6vw, 30px); line-height: 1.4; }
.terms-fee-table {
  width: 100%;
  max-width: 100%;
  table-layout: fixed;
  font-size: 14px;
}
.terms-fee-table caption { color: var(--teal); font-size: 13px; }
.terms-fee-table thead { background: var(--royal-navy); color: var(--white); }
.terms-fee-table th, .terms-fee-table td {
  min-width: 0;
  padding: 16px 12px;
  font-size: 14px;
  overflow-wrap: anywhere;
  white-space: normal;
}
.terms-fee-table th:first-child { width: 64%; }
.terms-fee-table tbody td { min-width: 0; width: 36%; color: var(--royal-navy); }
.wp-block-table { max-width: 100%; margin-inline: 0; overflow-x: auto; }
.wp-block-table table { width: 100%; }
.wp-block-table th, .wp-block-table td { overflow-wrap: anywhere; }
.tags { gap: 12px; }
.tags span { font-size: 12px; }
.location-graphic {
  color: var(--slate);
  background: repeating-linear-gradient(90deg, var(--cream), var(--cream) 48px, var(--line) 49px, var(--cream) 51px);
}
.location-graphic::before, .location-graphic b { border-color: var(--line); }
.location-graphic small { background: var(--pale-blue); }

/* Matched clinical views are always contained and never animated or rotated. */
.case-grid.dew-cases-compact {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
  gap: 28px;
}
.case-card { min-width: 0; }
.case-card h3 { font-size: 18px; }
.case-pair, .dew-cases-compact .case-pair {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.case-pair figure, .dew-cases-compact .case-pair figure,
.case-pair img, .comparison img { background: var(--navy); }
.dew-cases-compact .case-pair figure { padding: 0; }
.case-pair img, .case-detail .case-pair img, .case-pair [data-scroll-media] > img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto !important;
  min-height: 0;
  aspect-ratio: 16 / 10;
  object-fit: contain !important;
  object-position: center;
  transform: none !important;
  rotate: none !important;
  translate: none !important;
  scale: none !important;
  will-change: auto !important;
  transition: none;
}
.case-pair figcaption, .dew-cases-compact .case-pair figcaption {
  padding: 10px 12px;
  color: var(--white);
  background: var(--navy);
  font-size: 12px;
  line-height: 1.6;
}
.case-pair figure:last-child figcaption { background: var(--royal-navy); color: var(--white); }
.case-detail figure { background: var(--cream); }
.case-detail figcaption { color: var(--slate); font-size: 12px; }
.case-detail .case-pair figcaption { color: var(--white); font-size: 12px; }
.comparison { gap: 16px; }
.case-image { background: var(--pale-blue); }

/* Keep the desktop WPForms panel sticky, including on short viewports. */
.request-panel {
  display: block;
  position: sticky;
  top: calc(var(--dew-sticky-height) + 20px);
  max-height: calc(100dvh - var(--dew-sticky-height) - 44px);
  overflow-y: auto;
  overscroll-behavior-y: contain;
  scrollbar-width: thin;
  scrollbar-color: var(--slate) var(--navy);
  margin-top: 56px;
  padding: 28px 24px;
  background: var(--navy);
  color: var(--white);
  border-top: 3px solid var(--teal);
}
.request-panel h2 { color: var(--white); font-size: 27px; }
.request-panel h2 em { color: var(--light-blue); font-size: 25px; }
.request-panel .eyebrow { color: var(--light-blue); font-size: 12px; }
.request-panel > p { color: var(--light-blue); font-size: 14px; line-height: 1.8; }
.request-panel .consent { color: var(--light-blue); font-size: 13px; }
.request-panel .form-note { color: var(--light-blue) !important; font-size: 12px !important; }
.request-panel .button { background: var(--cream); border-color: var(--cream); color: var(--navy); }
.request-panel .button:hover { background: var(--white); }
.panel-links, .panel-phone { border-color: var(--slate); }
.panel-links > p { margin: 0; }
.panel-links a { padding: 10px 0; gap: 16px; color: var(--light-blue); font-size: 13px; }
.panel-links a:hover { color: var(--white); }
.panel-phone > span { color: var(--light-blue); font-size: 12px; }
.panel-phone a { color: var(--white); font-size: 22px; flex-wrap: wrap; gap: 16px; }
.enquiry-form label, .full-form label { font-size: 14px; }
.form-grid, .full-form .form-grid { gap: 16px; }
.enquiry-form input:not([type="checkbox"]), .enquiry-form select, .enquiry-form textarea {
  min-width: 0;
  max-width: 100%;
  min-height: 48px;
  color: var(--navy);
  border-color: var(--line);
  font-size: 16px;
}
.enquiry-form input::placeholder, .enquiry-form textarea::placeholder { color: var(--slate); }
.enquiry-form input[type="checkbox"] { accent-color: var(--teal); }
.request-options { gap: 16px; }
.request-options label, .request-options legend { font-size: 13px; }
.enquiry-form .consent, .full-form .consent { font-size: 13px; }
.enquiry-form .button, .full-form .button { font-size: 14px; }
.form-note, .full-form .form-note, dialog .form-note {
  color: var(--slate) !important;
  font-size: 12px !important;
}
.dew-enquiry { min-width: 0; }
.dew-enquiry div.wpforms-container-full {
  --wpforms-field-border-color: var(--line);
  --wpforms-field-text-color: var(--navy);
  --wpforms-label-color: var(--navy);
  --wpforms-label-sublabel-color: var(--slate);
  --wpforms-button-background-color: var(--royal-navy);
  --wpforms-button-text-color: var(--white);
  --wpforms-field-size-font-size: 16px;
}
.dew-enquiry div.wpforms-container-full .wpforms-field { min-width: 0; padding-block: 10px !important; }
.dew-enquiry div.wpforms-container-full .wpforms-field-label {
  color: var(--navy) !important;
  font-size: 14px !important;
  line-height: 1.7 !important;
}
.dew-enquiry div.wpforms-container-full input:not([type="checkbox"]):not([type="radio"]),
.dew-enquiry div.wpforms-container-full textarea,
.dew-enquiry div.wpforms-container-full select {
  min-width: 0;
  max-width: 100% !important;
  min-height: 48px;
  padding: 12px 14px !important;
  background: var(--white) !important;
  color: var(--navy) !important;
  border-color: var(--line) !important;
  font-size: 16px !important;
  line-height: 1.6 !important;
}
.dew-enquiry div.wpforms-container-full button[type="submit"] {
  min-height: 52px;
  max-width: 100%;
  height: auto !important;
  background: var(--royal-navy) !important;
  color: var(--white) !important;
  border-color: var(--royal-navy) !important;
  padding: 16px 20px !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
  white-space: normal;
}
.dew-enquiry div.wpforms-container-full button[type="submit"]:hover {
  background: var(--navy) !important;
  border-color: var(--navy) !important;
}
.dew-enquiry div.wpforms-container-full .wpforms-field-description,
.dew-enquiry div.wpforms-container-full .wpforms-field-sublabel {
  color: var(--slate) !important;
  font-size: 13px !important;
  line-height: 1.8 !important;
}
.dew-enquiry div.wpforms-container-full .wpforms-field-checkbox label {
  color: var(--navy) !important;
  font-size: 13px !important;
  line-height: 1.8 !important;
}
.dew-enquiry div.wpforms-container-full input[type="checkbox"],
.dew-enquiry div.wpforms-container-full input[type="radio"] { accent-color: var(--teal); }
.dew-enquiry div.wpforms-container-full input:focus,
.dew-enquiry div.wpforms-container-full textarea:focus,
.dew-enquiry div.wpforms-container-full select:focus {
  border-color: var(--teal) !important;
  outline: 2px solid var(--teal) !important;
  outline-offset: 2px;
  box-shadow: none !important;
}
.request-panel .dew-enquiry div.wpforms-container-full .wpforms-field-label,
.request-panel .dew-enquiry div.wpforms-container-full .wpforms-field-checkbox label {
  color: var(--white) !important;
}
.request-panel .dew-enquiry div.wpforms-container-full .wpforms-field-description,
.request-panel .dew-enquiry div.wpforms-container-full .wpforms-field-sublabel {
  color: var(--light-blue) !important;
}
.request-panel .dew-enquiry div.wpforms-container-full button[type="submit"] {
  background: var(--cream) !important;
  color: var(--navy) !important;
  border-color: var(--cream) !important;
}
.request-panel .dew-enquiry div.wpforms-container-full button[type="submit"]:hover {
  background: var(--white) !important;
  border-color: var(--white) !important;
}
.request-panel .dew-enquiry a { color: var(--light-blue) !important; }
.request-panel .wpforms-confirmation-container-full {
  background: var(--light-blue) !important;
  color: var(--navy) !important;
  border-color: var(--light-blue) !important;
}
.dew-enquiry.full-form .wpforms-field-container { gap: 0 20px; }
#enquiry, #enquiry-panel { scroll-margin-top: calc(var(--dew-sticky-height) + 24px); }

/* Contact, closing section and footer use the same restrained palette. */
.contact-layout {
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: clamp(32px, 4vw, 64px);
  padding-top: 48px;
}
.dew-contact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
.dew-contact-grid address, .dew-contact-grid .big-phone { color: var(--royal-navy); }
.dew-contact-grid .email-address { font-size: 15px; color: var(--teal); }
.clinical-note { color: var(--slate); }
.closing-cta {
  padding: clamp(36px, 5vw, 64px) var(--dew-gutter);
  gap: 32px;
  background: var(--royal-navy);
  overflow: visible;
}
.closing-cta > div { min-width: 0; }
.closing-cta h2 { color: var(--white); font-size: clamp(32px, 3.5vw, 46px); }
.closing-cta h2 em, .closing-cta .eyebrow { color: var(--light-blue); }
.closing-cta p { color: var(--light-blue); font-size: 15px; }
.closing-cta .button { background: var(--navy); border-color: var(--light-blue); font-size: 14px; }
.closing-cta .button:hover { background: var(--royal-navy); }
.closing-cta .contact-number { color: var(--white); font-size: 17px; }
.footer-top { padding: 48px var(--dew-gutter); gap: 36px; }
.footer-top > div { min-width: 0; }
.footer-top .brand { margin-right: 0; }
.footer-top a, .footer-top address { font-size: 14px; }
.footer-top address, .footer-content > p { color: var(--slate); }
.footer-top .eyebrow, .dew-footer-contacts .eyebrow { font-size: 12px; }
.dew-footer-contacts { flex-wrap: wrap; gap: 28px 40px; }
.dew-footer-contacts > div { flex: 1 1 210px; min-width: 0; }
.dew-footer-contacts .big-phone, .dew-footer-contacts .email-address { font-size: 14px; }
.dew-footer-contacts address, .dew-footer-contacts p { font-size: 13px; }
.dew-footer-contacts .text-link { font-size: 13px; }
.footer-content > p { font-size: 13px; }
.footer-bottom, .no-sidebar .footer-bottom {
  flex-wrap: wrap;
  align-items: center;
  margin-inline: var(--dew-gutter);
  padding-bottom: 28px;
  gap: 20px;
  color: var(--slate);
  font-size: 12px;
}
.footer-menu { flex-wrap: wrap; gap: 16px 24px; font-size: 13px; }
.footer-menu a { display: inline-flex; align-items: center; min-height: 44px; }
a.mobile-request, .no-sidebar a.mobile-request,
html:not(.js-navigation) a.mobile-request {
  display: flex;
  position: fixed;
  z-index: 25;
  left: auto;
  right: var(--dew-gutter);
  bottom: max(20px, env(safe-area-inset-bottom));
  width: min(290px, calc(100% - var(--dew-gutter) * 2));
  min-height: 56px;
  padding: 16px 20px;
  gap: 20px;
  align-items: center;
  justify-content: space-between;
  background: var(--royal-navy);
  color: var(--white);
  border: 1px solid var(--royal-navy);
  border-color: var(--royal-navy);
  box-shadow: 0 6px 24px #142b4930;
  font-size: 14px;
  line-height: 1.6;
}
a.mobile-request:hover, .no-sidebar a.mobile-request:hover { background: var(--navy); }
a.mobile-request span { flex: none; font-size: 20px; }
dialog { color: var(--navy); background: var(--cream); border-color: var(--line); }
dialog::backdrop { background: #142b49b3; }
dialog p { font-size: 15px; }
.dialog-close { min-width: 44px; min-height: 44px; color: var(--navy); }
#email-preview { max-width: 100%; border-color: var(--line); color: var(--navy); font-size: 16px; }
.dialog-actions { gap: 16px; flex-wrap: wrap; }
.dialog-actions .button { font-size: 14px; }

/* Education implementation is supplied separately; these are shared media primitives. */
.education-stage {
  position: relative;
  display: grid;
  place-items: center;
  width: 100%;
  min-width: 0;
  aspect-ratio: 16 / 9;
  background: var(--navy);
  color: var(--white);
  border: 1px solid var(--line);
}
.education-player, .education-stage video, .education-stage iframe {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  aspect-ratio: 16 / 9;
  object-fit: contain;
  object-position: center;
  background: var(--navy);
  border: 0;
}
video.education-player, .education-stage video { height: auto; transform: none !important; }
.education-stage > .education-player, .education-stage > iframe { height: 100%; }
.education-placeholder {
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 16px;
  width: 100%;
  min-width: 0;
  padding: 24px;
  color: var(--light-blue);
  text-align: center;
  font-size: 15px;
  line-height: 1.8;
}
.education-placeholder p, .education-placeholder strong { color: inherit; }
.education-track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: min(340px, 85%);
  gap: 20px;
  max-width: 100%;
  min-width: 0;
  padding: 6px 4px 20px;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: x proximity;
  scroll-padding-inline: 4px;
  scrollbar-width: thin;
  scrollbar-color: var(--slate) var(--pale-blue);
}
.education-track > * { min-width: 0; scroll-snap-align: start; }
.education-controls { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 20px; }
.education-controls button { min-height: 48px; min-width: 48px; }

/* Eight navigation items get a real menu, not increasingly tiny links. */
@media (max-width: 1120px) {
  :root { --dew-header-height: 92px; }
  .site-header { height: var(--dew-header-height); }
  .site-header .service-brand { width: 245px; max-width: calc(100% - 72px); flex: 0 1 245px; }
  .site-header .brand > .service-wordmark { font-size: 20px; }
  .site-header .menu-toggle { display: none; }
  html.js-navigation .site-header .menu-toggle {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 8px;
    width: 48px;
    height: 48px;
  }
  .site-header nav {
    display: flex;
    position: static;
    width: 100%;
    max-height: none;
    padding: 16px 0 0;
    margin-top: 0;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    background: var(--white);
    border: 0;
    box-shadow: none;
    overflow: visible;
    font-size: 15px;
  }
  html.js-navigation .site-header nav {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    width: 100%;
    max-height: calc(100dvh - var(--dew-sticky-height) - 12px);
    margin: 0;
    padding: 20px var(--dew-gutter) 24px;
    overflow-y: auto;
    overscroll-behavior-y: contain;
    border-bottom: 1px solid var(--line);
    box-shadow: 0 16px 28px #142b4912;
  }
  html.js-navigation .site-header nav.open,
  html.js-navigation .site-header nav[data-open="true"] {
    display: flex;
  }
  .site-header .dew-menu { flex-direction: column; align-items: stretch; gap: 4px; }
  .site-header .dew-menu li { min-width: 0; }
  .site-header .dew-menu a, .site-header nav > a {
    padding: 12px 0;
    min-height: 48px;
    font-size: 15px;
    white-space: normal;
    overflow-wrap: anywhere;
  }
  .site-header .dew-menu .nav-contact { margin-top: 12px; }
  .site-header .dew-menu .nav-contact a { padding: 14px 18px; font-size: 15px; }
  html:not(.js-navigation) .site-header {
    position: relative;
    top: auto;
    height: auto;
    flex-wrap: wrap;
    gap: 16px;
    padding-block: 20px;
  }
  html:not(.js-navigation) .site-header nav {
    display: flex;
    position: static;
    max-height: none;
    padding: 0;
    margin: 0;
    overflow: visible;
  }
  .hero.hero-v2 { gap: 32px; }
  .hero-v2 h1 { font-size: clamp(38px, 4.5vw, 52px); }
  .content-with-panel { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .request-panel {
    position: static;
    display: block;
    max-height: none;
    overflow: visible;
    margin: 0 0 32px;
    padding: 32px;
  }
  .request-panel .compact-form .wpforms-field-container {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 24px;
  }
  .request-panel .compact-form .wpforms-field-checkbox { grid-column: 1 / -1; }
  .contact-layout { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .dew-contact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-top { flex-wrap: wrap; }
  .footer-top > div { min-width: 0; }
}
@media (max-width: 900px) {
  .hero.hero-v2 { grid-template-columns: minmax(0, 1fr); gap: 32px; padding-block: 36px 44px; }
  .hero-v2 h1 { font-size: clamp(36px, 6.4vw, 56px); }
  .hero-v2 .hero-description { max-width: 680px; }
  .hero .hero-visual { justify-self: start; }
  .hero-v2 .hero-buttons, .hero-v2 .hero-buttons > p { flex-direction: row; }
  .closing-cta { flex-wrap: wrap; }
  .closing-cta > div:last-child { flex-wrap: wrap; gap: 20px; }
}
@media (max-width: 782px) { body.admin-bar { --dew-admin-offset: 46px; } }
@media (max-width: 620px) {
  :root { --dew-gutter: 20px; --dew-strip-height: 72px; --dew-header-height: 88px; }
  body { font-size: 15px; padding-bottom: calc(112px + env(safe-area-inset-bottom)); }
  .top-strip > span { font-size: 12px; }
  .top-strip a { font-size: 13px; gap: 12px; }
  .site-header { gap: 16px; }
  .site-header .brand > .service-wordmark { font-size: 18px; }
  .hero.hero-v2 { padding-block: 32px 40px; }
  .hero-v2 h1 { font-size: clamp(34px, 9vw, 49px); letter-spacing: -0.045em; }
  .hero-kicker { font-size: 12px; margin-bottom: 22px; }
  .hero-v2 .hero-description { font-size: 15px; }
  .hero-v2 .hero-buttons, .hero-v2 .hero-buttons > p {
    flex-direction: column;
    align-items: flex-start;
    gap: 20px !important;
    width: 100%;
  }
  .hero-v2 .hero-buttons .button, .hero-v2 .hero-buttons .text-link { font-size: 14px; }
  .hero-v2 .hero-trust { flex-direction: row; gap: 16px; }
  .hero-scope-line, .hero-scope-line > p { font-size: 13px; }
  .hero-profile { gap: 4px 16px; padding: 16px; }
  .hero-profile strong { font-size: 16px; }
  .hero-profile span, .hero-profile small { font-size: 13px; }
  .credential-heading { display: flex; align-items: flex-start; gap: 12px; }
  .credential-heading p { margin: 0; text-align: left; font-size: 13px; }
  .credential-banner { padding-block: 24px; }
  .logo-rail { gap: 24px; }
  .section-block > p, .terms-section p, .terms-section li,
  .terms-item p, .legal-context p, .expertise-list p,
  .publications p, .case-card p { font-size: 15px; }
  .section-block h2 { font-size: clamp(28px, 7.5vw, 35px); }
  .credential-focus, .credential-focus > p { gap: 20px; }
  .credential-focus > a, .credential-focus > p > a { flex-basis: 130px; }
  .credential-focus strong { font-size: 24px; }
  .credential-focus span { font-size: 13px; }
  .legal-context { gap: 20px; }
  .legal-context article { flex-basis: 100%; }
  .expertise-list article { gap: 16px; }
  .publications article { gap: 16px; }
  .publications h3 { font-size: 16px; }
  .case-grid.dew-cases-compact { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .case-pair, .dew-cases-compact .case-pair { gap: 16px; }
  .case-pair figcaption, .dew-cases-compact .case-pair figcaption { font-size: 12px; }
  .terms-toc ol { columns: 1; }
  .terms-toc li { font-size: 14px; }
  .terms-fee-table th, .terms-fee-table td { padding: 12px 8px; font-size: 14px; }
  .terms-fee-table tbody td { width: 36%; }
  .document-links a { flex-wrap: wrap; }
  .request-panel { padding: 24px 20px; }
  .request-panel .compact-form .wpforms-field-container,
  .dew-enquiry.full-form .wpforms-field-container,
  .full-form .form-grid { grid-template-columns: minmax(0, 1fr); }
  .request-panel .compact-form .wpforms-field-checkbox { grid-column: auto; }
  .contact-layout { padding-top: 36px; }
  .contact-layout .large-form-section { padding: 24px 20px; }
  .dew-contact-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .dew-contact-grid .email-address { font-size: 15px; }
  .closing-cta { display: flex; flex-direction: column; align-items: stretch; }
  .closing-cta > div:last-child { margin-top: 0; align-items: flex-start; }
  .footer-top { padding-block: 36px; gap: 28px; }
  .footer-top > div { min-width: 0; flex-basis: 100%; }
  .dew-footer-contacts { flex-direction: column; gap: 28px; }
  .dew-footer-contacts > div { flex: none; }
  .footer-top .brand > .service-wordmark { font-size: 20px; }
  .footer-bottom { padding-bottom: 28px; }
  a.mobile-request, .no-sidebar a.mobile-request,
  html:not(.js-navigation) a.mobile-request {
    left: var(--dew-gutter);
    right: var(--dew-gutter);
    width: auto;
    bottom: calc(16px + env(safe-area-inset-bottom));
    min-height: 56px;
    font-size: 14px;
  }
  .education-track { grid-auto-columns: 88%; gap: 16px; }
  .education-placeholder { padding: 20px; font-size: 14px; }
}
@media (max-width: 360px) {
  :root { --dew-gutter: 16px; }
  .site-header .brand > .service-wordmark { font-size: 17px; }
  .hero-profile { grid-template-columns: 56px minmax(0, 1fr); }
  .hero-profile > img, .hero-profile > .wp-block-image { flex-basis: 56px; width: 56px; height: 64px; }
  .hero-profile > img, .hero-profile > .wp-block-image > img { width: 56px; height: 64px; }
  .hero-profile > div { flex-basis: 130px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .education-track { scroll-behavior: auto; scroll-snap-type: none; }
  .button:hover { transform: none; }
  .professional-link:hover { padding-left: 0; }
  .js-motion .reveal:not(.is-visible) { opacity: 1; transform: none; }
  .section-block > .eyebrow::before, [data-scroll-media] > img,
  .about-portrait > .wp-block-image > img, .practice-image > .wp-block-image > img {
    transform: none !important;
    transition: none;
    will-change: auto;
  }
}

/* Confirmed native Gutenberg inline paragraph wrapper in the headshot card. */
.hero-profile>.wp-block-group>p{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin:0;line-height:1.6}
.hero-profile>.wp-block-group>p>strong{display:block;font-size:15px;font-weight:500}
.hero-profile>.wp-block-group>p>span{display:block;font-size:11px;color:var(--slate)}
.hero-profile>.wp-block-group>p>a{display:inline-flex;align-items:center;gap:9px;margin-top:4px;font-size:12px;line-height:1.7}
.hero-profile>.wp-block-group>p>a span{display:inline!important}
@media(max-width:620px){.hero-profile>.wp-block-group>p>strong{font-size:14px}.hero-profile>.wp-block-group>p>a{margin-top:2px}}

/* Never float contact access over an already visible form, primary action or player. */
.contact-context-visible .mobile-request{visibility:hidden;opacity:0;pointer-events:none}
