/* Shared component contract. Use mc-* markup from either rendering path.
   Load after live.css; keep page-specific layout outside this file. */
.mc-stack { display: grid; align-content: start; gap: var(--mc-space-5); min-width: 0; }
.mc-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--mc-space-3); }
.mc-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--mc-space-6); }
.mc-grid[data-layout="gallery"] { grid-template-columns: minmax(0, 1.18fr) minmax(0, 1fr); }
.mc-grid > .mc-empty { grid-column: 1 / -1; }
.mc-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.mc-eyebrow { font-size: var(--mc-text-caption); font-weight: 550; letter-spacing: .1em; text-transform: uppercase; color: var(--mc-muted); }
.mc-muted { color: var(--mc-muted); }
.mc-caption { color: var(--mc-muted); font-size: var(--mc-text-caption); line-height: 1.6; }
.mc-button {
  display: inline-flex; align-items: center; justify-content: center; gap: .625rem;
  min-height: 2.75rem; max-width: 100%; padding: .6875rem 1rem;
  border: 1px solid var(--mc-accent); border-radius: var(--mc-radius-control);
  background: var(--mc-accent); color: var(--mc-on-accent);
  font: 500 var(--mc-text-small)/1.4 var(--mc-font);
  text-align: center; text-decoration: none; overflow-wrap: anywhere;
  transition: background var(--mc-motion), color var(--mc-motion), border-color var(--mc-motion), transform var(--mc-motion);
}
.mc-button:not(:disabled):not([aria-disabled="true"]):hover { background: var(--mc-accent-hover); border-color: var(--mc-accent-hover); color: var(--mc-on-accent); }
.mc-button:not(:disabled):not([aria-disabled="true"]):active { transform: translateY(1px); }
.mc-button[data-variant="secondary"] { background: var(--mc-surface); color: var(--mc-ink); border-color: var(--mc-line); }
.mc-button[data-variant="secondary"]:not(:disabled):not([aria-disabled="true"]):hover { background: var(--mc-soft); border-color: var(--mc-field-line); color: var(--mc-ink); }
.mc-button[data-variant="quiet"] { color: var(--mc-accent); background: transparent; border-color: transparent; padding-inline: .5rem; }
.mc-button[data-variant="quiet"]:not(:disabled):not([aria-disabled="true"]):hover { color: var(--mc-accent); background: var(--mc-tint); border-color: transparent; }
.mc-button[data-size="small"] { padding: .5rem .75rem; min-height: 2.5rem; font-size: var(--mc-text-caption); }
.mc-button[data-block="true"] { width: 100%; }
.mc-button[data-icon-only="true"] { width: 2.75rem; padding: .6875rem; flex-shrink: 0; border-radius: var(--mc-radius-round); }
.mc-button:disabled, .mc-button[aria-disabled="true"] { opacity: .55; cursor: not-allowed; }
.mc-button[aria-busy="true"] { cursor: progress; }
.mc-button[aria-pressed="true"] { color: var(--mc-on-accent); background: var(--mc-accent); border-color: var(--mc-accent); }
.mc-button[aria-pressed="true"]:not(:disabled):hover { color: var(--mc-on-accent); background: var(--mc-accent-hover); border-color: var(--mc-accent-hover); }
.mc-button > svg, .mc-button > span > svg { flex-shrink: 0; width: 1.125rem; height: 1.125rem; }
.mc-panel { padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid var(--mc-line); border-radius: var(--mc-radius-panel); background: var(--mc-surface); min-width: 0; }
.mc-panel[data-tone="soft"] { background: var(--mc-soft); border-color: transparent; }
.mc-panel[data-tone="tint"] { background: var(--mc-tint); border-color: transparent; }
.mc-panel[data-padding="compact"] { padding: var(--mc-space-5); }
.mc-section-heading { display: flex; justify-content: space-between; align-items: end; gap: var(--mc-space-5); }
.mc-section-heading > div { display: grid; gap: var(--mc-space-3); min-width: 0; }
.mc-section-heading h1 { font: 550 var(--mc-text-display)/1.08 var(--mc-font-reading); letter-spacing: -.045em; text-wrap: balance; }
.mc-section-heading h2 { font: 550 var(--mc-text-section)/var(--mc-leading-title) var(--mc-font-reading); letter-spacing: -.03em; text-wrap: balance; }
.mc-section-heading h3 { font: 550 var(--mc-text-title)/1.25 var(--mc-font-reading); letter-spacing: -.02em; }
.mc-section-heading p:not(.mc-eyebrow) { max-width: var(--mc-measure); color: var(--mc-muted); font-size: var(--mc-text-body); line-height: var(--mc-leading-body); }
.mc-media { margin: 0; min-width: 0; }
.mc-media-frame { position: relative; overflow: hidden; isolation: isolate; background: var(--mc-soft); border-radius: var(--mc-radius-panel); aspect-ratio: 8/5; }
.mc-media-frame[data-ratio="square"] { aspect-ratio: 1; }
.mc-media-frame[data-ratio="portrait"] { aspect-ratio: 4/5; }
.mc-media-frame[data-ratio="wide"] { aspect-ratio: 16/9; }
.mc-media-frame > img, .mc-media-frame > video { display: block; width: 100%; height: 100%; object-fit: cover; }
.mc-media-frame[data-fit="contain"] > img, .mc-media-frame[data-fit="contain"] > video { object-fit: contain; }
.mc-media-frame > video { background: #181a1e; }
.mc-media figcaption { margin-top: .625rem; color: var(--mc-muted); font-size: var(--mc-text-caption); }
.mc-card { min-width: 0; display: grid; align-content: start; gap: var(--mc-space-4); }
.mc-card[data-variant="contained"] { border: 1px solid var(--mc-line); border-radius: calc(var(--mc-radius-panel) + .5rem); padding: .5rem; background: var(--mc-surface); }
.mc-card[data-variant="contained"] .mc-card-body { padding: 0 .75rem .75rem; }
.mc-card[data-variant="contained"][data-has-media="false"] .mc-card-body { padding: 1rem; }
.mc-card[data-variant="compact"] { grid-template-columns: 7rem minmax(0, 1fr); gap: var(--mc-space-4); align-items: center; }
.mc-card[data-variant="compact"] .mc-media-frame { aspect-ratio: 1; border-radius: var(--mc-radius-inner); }
.mc-card[data-variant="compact"][data-has-media="false"] { grid-template-columns: minmax(0, 1fr); }
.mc-card-body { display: grid; gap: .5rem; min-width: 0; }
.mc-card h2, .mc-card h3 { overflow-wrap: anywhere; font: 550 var(--mc-text-title)/1.25 var(--mc-font-reading); letter-spacing: -.025em; }
.mc-card h2 a, .mc-card h3 a { text-decoration: none; }
.mc-card h2 a:hover, .mc-card h3 a:hover { text-decoration: underline; }
.mc-card-description { overflow-wrap: anywhere; color: var(--mc-muted); font-size: var(--mc-text-small); line-height: 1.65; }
.mc-card-meta { display: flex; flex-wrap: wrap; gap: .375rem 1rem; justify-content: space-between; font-size: var(--mc-text-caption); color: var(--mc-muted); }
.mc-card-footer { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .5rem; border-top: 1px solid var(--mc-line); padding-top: .5rem; margin-top: .25rem; }
.mc-field { display: grid; gap: .5rem; min-width: 0; }
.mc-field > label { margin: 0; font-size: var(--mc-text-small); font-weight: 550; color: var(--mc-ink); }
.mc-field-optional { font-size: var(--mc-text-caption); color: var(--mc-muted); font-weight: 400; margin-left: .375rem; }
.mc-control, input.mc-control, textarea.mc-control, select.mc-control { width: 100%; min-width: 0; max-width: 100%; min-height: 2.75rem; border: 1px solid var(--mc-field-line); border-radius: var(--mc-radius-control); background: var(--mc-bg); color: var(--mc-ink); padding: .75rem .875rem; font: 400 1rem/1.5 var(--mc-font); }
textarea.mc-control { resize: vertical; min-height: 8rem; }
.mc-control::placeholder { color: var(--mc-muted); opacity: 1; }
.mc-control[aria-invalid="true"] { border-color: var(--mc-error); }
.mc-control:disabled { opacity: .6; cursor: not-allowed; }
.mc-control:read-only:not(select) { background: var(--mc-soft); }
.mc-field-hint, .mc-field-error { font-size: var(--mc-text-caption); line-height: 1.6; }
.mc-field-hint { color: var(--mc-muted); }
.mc-field-error { color: var(--mc-error); }
.mc-check { display: flex; align-items: flex-start; gap: .75rem; margin: 0; font-size: var(--mc-text-small); font-weight: 400; line-height: 1.65; color: var(--mc-ink); cursor: pointer; }
.mc-check > input { appearance: auto; width: 1.125rem; height: 1.125rem; flex-shrink: 0; margin: .2rem 0 0; accent-color: var(--mc-accent); }
.mc-check[data-disabled="true"] { opacity: .6; cursor: not-allowed; }
.mc-filters { display: flex; flex-wrap: wrap; gap: .375rem; align-items: center; }
.mc-filter { min-height: 2.75rem; padding: .5625rem .75rem; border: 1px solid transparent; border-radius: var(--mc-radius-control); background: transparent; color: var(--mc-muted); font-size: var(--mc-text-small); line-height: 1.4; text-decoration: none; }
.mc-filter:hover { background: var(--mc-soft); color: var(--mc-ink); }
.mc-filter[aria-current="page"], .mc-filter[aria-pressed="true"] { background: var(--mc-surface); border-color: var(--mc-line); color: var(--mc-ink); }
.mc-steps { display: flex; flex-wrap: wrap; gap: var(--mc-space-4); padding: 0; margin: 0; list-style: none; }
.mc-steps > li { display: flex; align-items: center; gap: .5rem; color: var(--mc-muted); font-size: var(--mc-text-caption); }
.mc-step-number { display: grid; place-items: center; min-width: 1.5rem; height: 1.5rem; padding: .125rem; border-radius: 50%; background: var(--mc-soft); color: var(--mc-muted); }
.mc-steps [aria-current="step"] { color: var(--mc-ink); font-weight: 550; }
.mc-steps [aria-current="step"] .mc-step-number { background: var(--mc-tint); color: var(--mc-accent); }
.mc-notice { padding: 1rem; border-radius: var(--mc-radius-inner); background: var(--mc-soft); color: var(--mc-ink); font-size: var(--mc-text-small); line-height: 1.65; }
.mc-notice[data-tone="info"] { background: var(--mc-tint); }
.mc-notice[data-tone="error"] { background: var(--mc-error-bg); color: var(--mc-error); }
.mc-notice[data-tone="success"] { background: var(--mc-success-bg); color: var(--mc-success); }
.mc-notice strong { display: block; font-weight: 550; margin-bottom: .25rem; }
.mc-empty { padding: clamp(1.5rem, 4vw, 3rem); border: 1px solid var(--mc-line); border-radius: var(--mc-radius-panel); background: var(--mc-surface); display: grid; gap: .75rem; justify-items: start; }
.mc-empty h2 { font-size: var(--mc-text-section); line-height: 1.2; }
.mc-empty p { color: var(--mc-muted); max-width: 48ch; font-size: var(--mc-text-small); }
.mc-skeleton { border-radius: var(--mc-radius-inner); background: var(--mc-soft); }
.mc-skeleton-media { aspect-ratio: 8/5; border-radius: var(--mc-radius-panel); }
.mc-skeleton-line { height: 1rem; width: 75%; }
.mc-skeleton-line:last-child { width: 50%; }
.mc-facts { margin: 0; display: grid; gap: 0; }
.mc-facts > div { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1fr); gap: 1.5rem; border-top: 1px solid var(--mc-line); padding-block: 1rem; }
.mc-facts dt { font-size: var(--mc-text-small); color: var(--mc-muted); }
.mc-facts dd { margin: 0; font-size: var(--mc-text-small); overflow-wrap: anywhere; }
.mc-header { display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; padding-block: 1.5rem 1.1875rem; border-bottom: 1px solid var(--mc-line); }
.mc-brand { display: inline-flex; align-items: center; gap: .3125rem; color: var(--mc-ink); font: 650 1.6875rem/1 var(--mc-font); letter-spacing: -.1rem; text-decoration: none; flex-shrink: 0; }
.mc-brand > .mc-icon { width: 1.25rem; height: 1.25rem; color: var(--mc-accent); }
.mc-brand > span { color: var(--mc-accent); font-size: 1.125rem; }
.mc-header-nav { display: flex; align-items: center; gap: 1.5rem; }
.mc-header-nav > a:not(.mc-button) { padding-block: .625rem; font-size: .75rem; font-weight: 500; text-decoration: none; color: var(--mc-muted); }
.mc-header-nav > a:not(.mc-button):hover, .mc-header-nav [aria-current="page"] { color: var(--mc-accent); text-decoration: underline; text-underline-offset: .4rem; }
.mc-footer { display: flex; justify-content: space-between; align-items: start; gap: 2rem; padding-block: 2rem; border-top: 1px solid var(--mc-line); }
.mc-footer > div { display: grid; gap: .75rem; }
.mc-footer p { font-size: var(--mc-text-caption); color: var(--mc-muted); }
.mc-footer-nav { display: flex; flex-wrap: wrap; justify-content: end; gap: .375rem 1.25rem; max-width: 39rem; }
.mc-footer-nav a { min-height: 2.75rem; display: inline-flex; align-items: center; font-size: var(--mc-text-caption); text-decoration: none; color: var(--mc-muted); white-space: normal; }
.mc-footer-nav a:hover { color: var(--mc-accent); text-decoration: underline; }
.mc-header, .mc-footer { width: min(var(--mc-container), calc(100% - 7rem)); margin-inline: auto; }
@media (max-width: 767px) {
  .mc-header, .mc-footer { width: calc(100% - 2.5rem); }
  .mc-header { position: relative; display: block; padding-block: 1.25rem .5rem; }
  .mc-brand { min-height: 2.75rem; font-size: 1.5rem; }
  .mc-header-nav { margin-top: .5rem; gap: 1.25rem; }
  .mc-header-nav > .mc-button { position: absolute; top: 1.25rem; right: 0; font-size: .75rem; padding-inline: .75rem; }
  .mc-header-nav > a:not(.mc-button) { font-size: var(--mc-text-small); }
  .mc-footer { flex-direction: column; gap: 1.25rem; }
  .mc-footer-nav { justify-content: start; }
  .mc-grid, .mc-grid[data-layout="gallery"] { grid-template-columns: minmax(0, 1fr); }
  .mc-section-heading { align-items: start; flex-direction: column; gap: 1rem; }
  .mc-card[data-variant="compact"] { grid-template-columns: 5rem minmax(0, 1fr); }
  .mc-facts > div { grid-template-columns: 1fr; gap: .375rem; }
}
@media (pointer: coarse) {
  .mc-button[data-size="small"] { min-height: 2.75rem; }
  .mc-check { min-height: 2.75rem; }
}
@media (max-width: 380px) {
  .mc-header .mc-brand { font-size: 1.35rem; }
  .mc-header-nav > .mc-button { font-size: .6875rem; padding-inline: .625rem; }
}

/* Profile composition, shared with the Gallery page reference. */
.mc-icon { flex-shrink: 0; vertical-align: middle; }
.mc-breadcrumbs { display: flex; align-items: center; flex-wrap: wrap; gap: .5625rem; padding-top: 1.25rem; color: var(--mc-muted); font-size: .75rem; }
.mc-breadcrumbs a { display: inline-flex; align-items: center; gap: .5rem; min-height: 2rem; text-decoration: none; }
.mc-breadcrumbs a:hover { text-decoration: underline; }
.mc-profile-heading { padding: 1.375rem 0 1.5rem; display: flex; justify-content: space-between; align-items: end; gap: 1.5625rem; }
.mc-profile-heading > div { min-width: 0; }
.mc-profile-heading h1 { overflow-wrap: anywhere; }
.mc-profile-heading .mc-eyebrow { margin-bottom: .9375rem; letter-spacing: .12em; }
.mc-profile-heading h1 { max-width: 20ch; font: 550 var(--mc-text-display)/1.08 var(--mc-font-reading); letter-spacing: -.10625rem; text-wrap: balance; }
.mc-profile-lead { margin-top: .8125rem; max-width: 48ch; color: var(--mc-muted); font-size: var(--mc-text-body); line-height: 1.65; }
.mc-profile-actions { flex-shrink: 0; }
.mc-profile-actions .mc-button { gap: .5625rem; }
.mc-profile-actions .mc-icon { width: 1rem; height: 1rem; }
.mc-media-frame[data-ratio="profile"] { aspect-ratio: 1.65; }
.mc-media-label { position: absolute; top: .875rem; left: .875rem; border-radius: .4375rem; padding: .3125rem .5625rem; font-size: var(--mc-text-caption); color: var(--mc-ink); background: var(--mc-surface); }
.mc-media-gallery { margin: 0; }
.mc-media-gallery-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: .75rem; }
.mc-media-gallery[data-has-detail="true"] .mc-media-gallery-grid { grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); }
.mc-media-gallery[data-has-detail="true"] .mc-media-gallery-grid > :last-child { aspect-ratio: auto; }
.mc-media-gallery figcaption { padding-top: .5625rem; color: var(--mc-muted); font-size: var(--mc-text-caption); }
.mc-profile-content { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 2.5rem; padding: 1.8125rem 0 .9375rem; }
.mc-profile-prose h2, .mc-enquiry-panel h2 { font: 550 var(--mc-text-section)/1.2 var(--mc-font-reading); letter-spacing: -.04375rem; }
.mc-profile-prose h2 { margin-bottom: .8125rem; }
.mc-profile-prose > p { color: var(--mc-muted); font-size: var(--mc-text-body); line-height: 1.75; }
.mc-service-list { display: grid; gap: 0; margin: 1.25rem 0 0; padding: 0; list-style: none; }
.mc-service-list li { display: flex; align-items: start; gap: .75rem; padding: .9375rem 0; border-top: 1px solid var(--mc-line); font-size: var(--mc-text-small); }
.mc-service-list .mc-icon { margin-top: .125rem; color: var(--mc-muted); }
.mc-service-list strong { display: block; margin-bottom: .25rem; font-weight: 550; }
.mc-service-list p { font-size: .75rem; color: var(--mc-muted); }
.mc-enquiry-panel { align-self: start; }
.mc-enquiry-panel > .mc-eyebrow { margin-bottom: .9375rem; font-size: var(--mc-text-small); letter-spacing: .12em; }
.mc-enquiry-panel h2 { margin-bottom: .625rem; }
.mc-enquiry-description { font-size: var(--mc-text-small); color: var(--mc-muted); }
.mc-enquiry-panel > .mc-button { margin-top: 1.3125rem; gap: .5625rem; }
.mc-enquiry-panel > .mc-button .mc-icon { width: 1rem; height: 1rem; }
.mc-private-note { display: flex; align-items: start; gap: .5625rem; margin-top: 1rem; font-size: .75rem; line-height: 1.6; color: var(--mc-muted); }
.mc-private-note .mc-icon { margin-top: .125rem; }
.mc-facts[data-variant="summary"] { border-top: 1px solid var(--mc-line); margin-top: 1.3125rem; padding-top: .9375rem; gap: .625rem; }
.mc-facts[data-variant="summary"] > div { display: flex; justify-content: space-between; gap: .9375rem; padding: 0; border: 0; }
.mc-facts[data-variant="summary"] dt, .mc-facts[data-variant="summary"] dd { font-size: .75rem; }
.mc-facts[data-variant="summary"] dd { text-align: right; font-weight: 500; }
.mc-footer-compact { margin-top: 1.6875rem; padding-block: 1.25rem 1.4375rem; display: flex; flex-direction: row; justify-content: space-between; align-items: center; gap: .9375rem; font-size: var(--mc-text-caption); color: var(--mc-muted); }
.mc-footer-compact nav { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem; }
.mc-footer-compact a { display: inline-flex; align-items: center; min-height: 1.875rem; text-decoration: none; }
.mc-footer-compact p { max-width: 27ch; text-align: right; }
.mc-footer-wordmark .mc-icon { width: .75rem; height: .75rem; }
.mc-gallery-shell { container-type: inline-size; max-width: 64rem; margin-inline: auto; font-size: var(--mc-text-body); line-height: 1.55; }
.mc-preview-frame { width: calc(100% - 1rem); max-width: 50rem; margin-block: .3125rem; border: 1px solid var(--mc-line); border-radius: 1rem; }
.mc-gallery-wrap { padding-inline: 2rem; }
.mc-gallery-wrap > main#content, .mc-gallery-wrap > .mc-header, .mc-gallery-wrap > .mc-footer { width: 100%; max-width: none; margin-inline: 0; }
.mc-gallery-wrap .mc-header { display: flex; position: static; padding-block: 1.5rem 1.1875rem; }
.mc-gallery-wrap .mc-brand { font-size: 1.6875rem; }
.mc-gallery-wrap .mc-header-nav { margin-top: 0; }
.mc-gallery-wrap .mc-header-nav > .mc-button { position: static; }
@container (max-width: 800px) {
  .mc-gallery-wrap { padding-inline: 1.5rem; }
  .mc-gallery-wrap .mc-header-nav { gap: .9375rem; }
  .mc-gallery-wrap .mc-header-nav > a:not(.mc-button) { font-size: .6875rem; }
  .mc-gallery-wrap .mc-header-nav .mc-button { font-size: .75rem; padding-inline: .8125rem; }
  .mc-gallery-wrap .mc-profile-content { gap: 1.5625rem; }
}
@media (max-width: 800px) {
  .mc-profile-content { gap: 1.5625rem; }
}
@media (max-width: 720px) {
  .mc-profile-content { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
}
@media (max-width: 620px) {
  .mc-profile-heading { flex-direction: column; align-items: start; gap: .875rem; }
  .mc-profile-heading h1 { font-size: 2.125rem; }
  .mc-media-gallery[data-has-detail="true"] .mc-media-gallery-grid { grid-template-columns: minmax(0, 1fr); }
  .mc-media-gallery[data-has-detail="true"] .mc-media-gallery-grid > :last-child { aspect-ratio: 2.6; }
  .mc-profile-content { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
  .mc-enquiry-panel { padding: 1.375rem; }
  .mc-footer-compact { align-items: start; flex-direction: column; gap: .5rem; }
  .mc-footer-compact p { max-width: none; text-align: left; }
}
@container (max-width: 620px) {
  .mc-gallery-wrap { padding-inline: 1.25rem; }
  .mc-gallery-wrap .mc-header { position: relative; display: flex; flex-wrap: wrap; gap: .25rem; padding-block: 1.125rem .75rem; }
  .mc-gallery-wrap .mc-brand { font-size: 1.5625rem; min-height: 2.75rem; }
  .mc-gallery-wrap .mc-header-nav { width: 100%; margin: 0; gap: 1.375rem; }
  .mc-gallery-wrap .mc-header-nav > a:not(.mc-button) { font-size: .75rem; }
  .mc-gallery-wrap .mc-header-nav > .mc-button { position: absolute; top: 1.125rem; right: 0; font-size: .6875rem; padding-inline: .6875rem; }
}
@container (max-width: 355px) {
  .mc-gallery-wrap { padding-inline: .875rem; }
  .mc-gallery-wrap .mc-brand { font-size: 1.4375rem; }
  .mc-gallery-wrap .mc-header-nav > .mc-button { padding-inline: .5625rem; }
}

/* Explicit editorial type; controls and small utility labels retain DM Sans. */
.mc-section-heading p, .mc-card-description, .mc-card-meta, .mc-eyebrow,
.mc-profile-lead, .mc-profile-prose, .mc-enquiry-description,
.mc-media figcaption, .mc-media-gallery figcaption { font-family: var(--mc-font-reading); }
