.site-header, .site-footer {
  font-family: var(--font-body);
  font-size: var(--text-base);
  line-height: var(--leading-body);
}
.site-header a, .site-footer a { text-decoration: none; }
.site-header { position: sticky; top: 0; z-index: 100; background: var(--color-paper); }
.admin-bar .site-header { top: 32px; }
.site-header :where(a, button):focus-visible, .site-footer :where(a, button, input, textarea):focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 4px;
}
.site-footer :where(a, button, input, textarea):focus-visible { outline-color: var(--color-focus-inverse); }
.screen-reader-text, .form-trap {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
.skip-link { position: fixed; top: 12px; left: 12px; z-index: 1000; padding: var(--space-5) var(--space-7); background: var(--color-ink); color: var(--color-white); transform: translateY(-200%); }
.skip-link:focus { transform: translateY(0); }
.header-strip { background: var(--color-ink); color: var(--color-white); font-size: var(--text-micro); line-height: var(--leading-micro); font-weight: var(--font-weight-medium); }
.header-strip > .container { display: flex; justify-content: space-between; align-items: center; gap: var(--space-8); min-height: 32px; padding-block: var(--space-2); }
.header-contacts { display: flex; gap: var(--space-9); align-items: center; }
.header-bar { position: relative; z-index: 20; border-radius: 0 0 var(--radius-pill) var(--radius-pill); background: color-mix(in srgb, var(--color-paper) 67%, transparent); backdrop-filter: blur(10px); }
.header-bar > .container { display: flex; align-items: center; justify-content: space-between; gap: var(--space-8); min-height: 64px; padding-block: var(--space-3); }
.brand { display: inline-flex; flex-shrink: 0; align-items: center; }
.header-logo { display: block; width: 169px; height: 48px; object-fit: contain; }
.navigation, .header-actions { display: flex; align-items: center; gap: var(--space-5); }
.navigation { flex: 1; justify-content: flex-end; }
.primary-menu, .footer-menu, ul.document-links { display: flex; list-style: none; margin: 0; padding: 0; flex-wrap: wrap; }
.primary-menu { gap: var(--space-1); font-size: var(--text-small); font-weight: var(--font-weight-medium); }
.primary-menu li { position: relative; }
.primary-menu a { display: block; padding: var(--space-3) var(--space-5); border-radius: var(--radius-card); }
.primary-menu a:hover, .primary-menu .current-menu-item > a { background: var(--color-pink-soft); }
.primary-menu .sub-menu { display: none; position: absolute; min-width: 220px; inset-block-start: 100%; inset-inline-start: 0; padding: var(--space-3); margin: 0; list-style: none; background: var(--color-paper); border-radius: 16px; box-shadow: 0 8px 24px rgb(35 31 32 / 12%); }
.primary-menu li:hover > .sub-menu, .primary-menu li:focus-within > .sub-menu { display: block; }
.languages { display: flex; align-items: center; gap: var(--space-4); padding: var(--space-2) 14px; border-radius: var(--radius-card); background: var(--color-ink); color: var(--color-white); font-size: var(--text-micro); }
.languages a, .languages span { display: inline-flex; align-items: center; min-height: 28px; }
.languages span { font-weight: var(--font-weight-bold); }
.languages a:hover { text-decoration: underline; }
.shell-button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: var(--space-5) var(--space-8); border-radius: var(--radius-card); background: var(--color-pink); color: var(--color-ink); font-size: var(--text-base); font-weight: var(--font-weight-bold); text-align: center; }
.shell-button:hover { background: var(--color-pink-hover); }
.menu-toggle { display: none; width: 44px; height: 44px; align-items: center; justify-content: center; border: 0; background: transparent; border-radius: 8px; cursor: pointer; }
.menu-toggle img { width: 24px; height: 24px; }
.menu-backdrop { display: none; }
.menu-panel { display: contents; }
/* Cover decorations that extend beyond the preceding section. */
.site-footer { position: relative; z-index: 1; background: var(--color-ink); color: var(--color-white); }
.footer-body { padding-block: var(--space-14); display: grid; gap: var(--space-12); }
.footer-heading, .footer-brand-row { display: flex; align-items: center; justify-content: space-between; gap: var(--space-9); }
.footer-heading h2 { margin: 0; font-size: var(--text-h4); line-height: var(--leading-h4); font-weight: var(--font-weight-medium); }
.footer-logo { display: block; width: 286px; height: 80px; max-width: 100%; object-fit: contain; }
.contact-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 448px); gap: var(--space-13); }
.contact-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-10) var(--space-7); align-content: start; margin: 0; }
.contact-details dt { color: var(--color-muted); font-size: var(--text-small); margin-bottom: var(--space-2); }
.contact-details dd { margin: 0; font-size: var(--text-base); font-weight: var(--font-weight-medium); overflow-wrap: anywhere; }
.contact-details dd a, .contact-details dd span { display: block; }
.contact-details dd a:hover, .document-links a:hover, .footer-menu a:hover { text-decoration: underline; }
.contact-map { display: grid; gap: var(--space-5); }
.contact-map iframe { display: block; width: 100%; height: 419px; border: 0; border-radius: var(--radius-map); background: var(--color-paper); }
.contact-map > a { font-size: var(--text-small); text-decoration: underline; }
.socials { display: grid; justify-items: end; gap: var(--space-5); }
.socials > span { font-size: var(--text-small); color: var(--color-muted); }
.social-menu { list-style: none; margin: 0; padding: 0; display: flex; gap: var(--space-5); }
.socials a { font-size: var(--text-small); display: flex; width: 44px; height: 44px; border: 1px solid var(--color-white); border-radius: var(--radius-circle); align-items: center; justify-content: center; }
.socials img { display: block; width: 20px; height: 20px; object-fit: contain; }
.socials a:hover { background: var(--color-dark-hover); }
.document-links { display: flex; justify-content: space-between; flex-wrap: wrap; gap: var(--space-7); font-size: var(--text-small); color: var(--color-muted); }
.footer-menu { gap: var(--space-8); }
.consultation { display: grid; grid-template-columns: minmax(0, 477px) minmax(0, 1fr); gap: var(--space-13); align-items: center; padding-block: var(--space-13); scroll-margin-top: calc(112px + var(--wp-admin--admin-bar--height, 0px)); }
.consultation-image { width: 100%; aspect-ratio: 477 / 434; border-radius: var(--radius-card); overflow: hidden; }
.consultation-portrait { display: block; width: 100%; height: 100%; object-fit: cover; }
.consultation-image > picture { display: block; width: 100%; height: 100%; }
.consultation-content h2 { margin: 0 0 var(--space-8); font-size: var(--text-h4); font-weight: var(--font-weight-medium); line-height: var(--leading-h4); }
.consultation-content .text-highlight { color: var(--color-pink); font-weight: var(--font-weight-bold); }
.consultation-content > p { margin: 0 0 var(--space-9); color: var(--color-muted); font-size: var(--text-small); line-height: var(--leading-body); }
.consultation-form { display: grid; gap: var(--space-7); position: relative; }
.form-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); }
.form-field { min-width: 0; }
.form-field--comment { grid-column: 1 / -1; }
.form-field input, .form-field textarea { display: block; width: 100%; min-height: 48px; padding: var(--space-5) var(--space-7); border: 1px solid var(--color-input-border); border-radius: var(--radius-input); background: var(--color-white); color: var(--color-ink); font: inherit; font-size: var(--text-small); }
.form-field input::placeholder, .form-field textarea::placeholder { color: var(--color-placeholder-readable); opacity: 1; }
.form-field textarea { resize: vertical; min-height: 84px; }
.form-consent { display: flex; align-items: start; gap: var(--space-4); font-size: var(--text-small); color: var(--color-muted); cursor: pointer; }
.form-consent input { flex: 0 0 auto; width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--color-pink); }
.form-consent a { text-decoration: underline; }
.form-submit { display: flex; align-items: center; justify-content: space-between; gap: var(--space-6); padding: var(--space-2) var(--space-2) var(--space-2) var(--space-6); min-height: 48px; border: 0; border-radius: var(--radius-pill); background: var(--color-white); color: var(--color-action-text); font: inherit; font-size: var(--text-base); font-weight: var(--font-weight-bold); cursor: pointer; }
.form-submit-icon { display: flex; width: 36px; height: 36px; flex-shrink: 0; padding: var(--space-3); align-items: center; justify-content: center; border-radius: var(--radius-circle); background: var(--color-pink); }
.form-submit-icon img { display: block; width: 20px; height: 20px; }
.form-submit:hover { background: var(--color-surface-hover); }
.form-submit:disabled { cursor: wait; opacity: .7; }
.form-feedback { margin: 0; color: inherit; font-size: var(--text-base); line-height: var(--leading-body); }
.consultation-content .form-status { color: var(--color-white); border-inline-start: 3px solid var(--color-pink); padding-inline-start: var(--space-6); }

.booking-modal-open, .booking-modal-open body { overflow: hidden; }
.booking-modal { width: min(600px, calc(100% - 32px)); max-height: calc(100dvh - 32px); margin: auto; padding: var(--space-12) var(--space-9) var(--space-9); border: 0; border-radius: var(--radius-card); background: var(--color-ink); color: var(--color-white); font-family: var(--font-body); font-size: var(--text-base); line-height: var(--leading-body); overscroll-behavior: contain; }
.booking-modal::backdrop { background: rgb(35 31 32 / 70%); }
.booking-modal__close { position: absolute; top: var(--space-3); right: var(--space-3); display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: var(--radius-circle); background: transparent; color: var(--color-white); font: inherit; font-size: var(--text-h4); cursor: pointer; }
.booking-modal__close:hover { background: var(--color-dark-hover); }
.booking-modal :where(a, button, input, textarea):focus-visible { outline: 3px solid var(--color-focus-inverse); outline-offset: 4px; }
@media (max-width: 767px) {
  .booking-modal { padding-inline: var(--space-7); }
  .booking-modal .form-fields { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 1199px) {
  .header-bar { border-radius: 0; }
  .header-bar > .container { flex-wrap: wrap; }
  .menu-ready .menu-toggle { display: inline-flex; }
  .navigation { width: 100%; flex-basis: 100%; flex-direction: column; align-items: stretch; gap: var(--space-7); padding-block: var(--space-6); }
  .menu-ready .menu-panel {
    display: block;
    position: absolute;
    inset: 100% 0 auto;
    overflow: hidden;
    visibility: hidden;
    pointer-events: none;
    transition: visibility 280ms;
  }
  .menu-is-open .menu-panel { visibility: visible; }
  .menu-ready .navigation {
    width: auto;
    padding-inline: max(var(--page-gutter), calc((100% - var(--content-width)) / 2));
    max-height: calc(100dvh - var(--mobile-header-height, 112px) - var(--wp-admin--admin-bar--height, 0px));
    overflow-y: auto;
    overscroll-behavior: contain;
    background: var(--color-paper);
    transform: translateY(-100%);
    pointer-events: none;
    transition: transform 280ms ease;
  }
  .menu-ready .navigation.is-open { transform: translateY(0); pointer-events: auto; }
  .menu-ready .menu-backdrop {
    display: block;
    position: absolute;
    inset: 100% 0 auto;
    height: 100dvh;
    background: rgb(0 0 0 / 48%);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 240ms ease, visibility 240ms;
  }
  .menu-is-open .menu-backdrop { opacity: 1; visibility: visible; pointer-events: auto; }
  .primary-menu { flex-direction: column; font-size: var(--text-base); gap: var(--space-1); }
  .primary-menu a { padding: var(--space-5); }
  .primary-menu .sub-menu { display: block; position: static; margin-inline-start: var(--space-6); min-width: 0; padding: 0; box-shadow: none; }
  .header-actions { justify-content: space-between; flex-wrap: wrap; }
  .consultation, .contact-grid { gap: var(--space-9); }
}
@media (max-width: 767px) {
  .header-strip { display: none; }
  .header-bar > .container { min-height: 88px; padding-block: var(--space-7); }
  .footer-body { padding-block: var(--space-11); gap: var(--space-10); }
  .footer-heading, .footer-brand-row { align-items: flex-start; flex-direction: column; gap: var(--space-8); }
  .footer-heading h2 { font-size: var(--text-h5); line-height: var(--leading-h5); }
  .footer-logo { width: 169px; height: 48px; }
  .contact-grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-9); }
  .contact-details { gap: var(--space-9) var(--space-7); }
  .contact-details dd { font-size: var(--text-small); font-weight: var(--font-weight-regular); }
  .contact-map iframe { height: 320px; }
  .socials { justify-items: start; }
  .document-links { flex-direction: column; gap: var(--space-6); }
  .consultation { grid-template-columns: minmax(0, 1fr); padding-block: var(--space-11); gap: var(--space-9); }
  .consultation-content h2 { font-size: var(--text-h5); line-height: var(--leading-h5); }
  .consultation-image { max-width: 477px; }
  .form-fields { grid-template-columns: minmax(0, 1fr); }
  .form-field input, .form-field textarea { font-size: var(--text-base); }
}
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .site-header { top: 0; } }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .menu-ready .menu-panel, .menu-ready .navigation, .menu-ready .menu-backdrop { transition: none; transform: none; }
}

.menu-ready .menu-toggle[hidden] { display: none; }
.languages [aria-current] { gap: var(--space-3); }
.language-flag { display: block; width: 26.6667px; height: 20px; border-radius: var(--radius-card); }

.booking-menu { display: flex; flex-wrap: wrap; gap: var(--space-5); list-style: none; margin: 0; padding: 0; }
/* Full consultation block: source type hierarchy; footer copy retains its smaller scale. */
.consultation-content h2 { font-size: var(--text-title); line-height: var(--leading-title); margin-bottom: var(--space-6); }
.consultation-content .text-highlight { display: block; margin-top: -10px; font-size: var(--text-display); line-height: var(--leading-display); }
.consultation-content > p { max-width: 303px; }
.booking-modal .consultation-content h2 { font-size: var(--text-h4); line-height: var(--leading-h4); }
.booking-modal .text-highlight { display: inline; margin: 0; font-size: inherit; line-height: inherit; }
.booking-modal .consultation-content > p { max-width: none; }
@media(max-width:767px) {
  .consultation { gap: var(--space-8); }
  .consultation-image { aspect-ratio: 350/320; }
  .consultation-content h2 { font-size: var(--text-h4); line-height: var(--leading-h4); margin-bottom: var(--space-8); }
  .consultation-content .text-highlight { display: inline; margin: 0; font-size: inherit; line-height: inherit; }
  .consultation-content > p { max-width: none; font-size: var(--text-base); margin-bottom: var(--space-8); }
  .consultation .form-fields { gap: var(--space-5); }
  .consultation .form-field input, .consultation .form-field textarea { border: 0; padding: var(--space-6); line-height: var(--leading-body); }
  .consultation .form-field input { min-height: 56px; }
  .consultation .form-field textarea { min-height: 112px; }
}
