:is(a,button,input,select,textarea,summary,[tabindex]):focus-visible {
  outline: 3px solid var(--ws-focus);
  outline-offset: 4px;
}
.skip { z-index: 100; }
:where(button,a,input,select,textarea,summary) { touch-action: manipulation; }
:where(button,.button,.primary-button,.secondary-button,.access-primary) {
  transition: background-color var(--ws-motion-fast) var(--ws-ease), border-color var(--ws-motion-fast) var(--ws-ease), color var(--ws-motion-fast) var(--ws-ease), box-shadow var(--ws-motion-fast) var(--ws-ease);
}
.button,.primary-button,.secondary-button,.guest-access .access-primary {
  min-height: var(--ws-control-height);
  font-size: var(--ws-label);
  line-height: 1.5;
  font-weight: 600;
}
.button:hover { transform: none; }
:is(.primary,.primary-button):hover:not(:disabled) { background: var(--ws-primary-hover); }
:is(.primary,.primary-button):active:not(:disabled) { background: var(--ws-primary-active); }
:is(.button,.primary-button,.secondary-button):disabled { cursor: not-allowed; }
:is(input,select,textarea):disabled { background:var(--ws-disabled); color:var(--ws-disabled-text); cursor:not-allowed; }
:is(#consultation-form,#contact-form,#enquiry-form) .button[type=submit],.lead-review.is-saved .button {
  background: linear-gradient(145deg, #1c2d4c, var(--ws-primary));
  color: var(--ws-surface-elevated);
  border: 1px solid var(--ws-primary);
  box-shadow: inset 0 1px 0 #ffffff35, 0 4px 12px #05133712;
  border-radius: var(--ws-radius-control);
  text-shadow: none;
}
:is(#consultation-form,#contact-form,#enquiry-form) .button[type=submit]:hover:not(:disabled),.lead-review.is-saved .button:hover { background: var(--ws-primary-hover); }
:is(#consultation-form,#contact-form,#enquiry-form) .button[type=submit]:active:not(:disabled),.lead-review.is-saved .button:active { background: var(--ws-primary-active); }
:is(#consultation-form,#contact-form,#enquiry-form) label { font-size: var(--ws-label); line-height:1.5; gap:var(--ws-space-2); }
:is(#consultation-form,#contact-form,#enquiry-form) :is(input:not([type=radio]):not([type=checkbox]),select,textarea) {
  min-height:var(--ws-control-height); font-size:var(--ws-body); border-radius:var(--ws-radius-control); border-color:var(--ws-border); padding:var(--ws-space-3);
}
:is(#consultation-form,#contact-form,#enquiry-form) small { font-size:var(--ws-caption); line-height:1.65; }
.lead-review.is-saved p { font-size:var(--ws-label); line-height:1.65; }
:is(#consultation-form,#contact-form,#enquiry-form) :is(input,select,textarea)[aria-invalid=true] { border-color:var(--ws-error); }
form small.lead-field-error { color:var(--ws-error); margin:0; }
.lead-form-hint { grid-column:1/-1; margin:0; color:var(--ws-text-secondary); font-size:var(--ws-caption); line-height:1.6; }
.lead-privacy a { text-underline-offset:4px; text-decoration-thickness:1px; }
.lead-review:not(.is-saved) { margin-top:var(--ws-space-5); padding:var(--ws-space-5); border:1px solid var(--ws-border); border-radius:var(--ws-radius-control); }
.lead-review:not(.is-saved) h3 { font-size:var(--ws-title); line-height:1.2; }
.lead-review:not(.is-saved) p { margin:var(--ws-space-3) 0; font-size:var(--ws-label); }
.lead-review:not(.is-saved) .button { margin-top:var(--ws-space-3); }
.lead-review.is-pending { border:0; padding:0; margin-top:var(--ws-space-3); }
.lead-review.is-pending h3 { font:400 var(--ws-caption)/1.6 var(--ws-font-body); color:var(--ws-text-secondary); }
.lead-review.is-pending p { display:none; }
.lead-review.is-error { border-color:var(--ws-error); }
.lead-new-enquiry { min-height:44px; font-size:var(--ws-label); }
.line-link,.property-details>a,.article-toc nav a,.breadcrumbs>a { min-height:44px; display:inline-flex; align-items:center; }
.article-toc nav a { padding-block:8px; }
.contact-details dd>a:not(.contact-whatsapp-link) { display:inline-flex; align-items:center; min-height:44px; }
.site-header .nav-cta { min-height:44px; }
.dialog-close,.gallery-arrow,.testimonials-controls button,.footer-top-link { min-width:44px; min-height:44px; }
.recognition-badge[href] { min-height:44px; }
.portal-playback { min-height:44px; padding:8px; margin-left:auto; border:0; border-radius:8px; background:transparent; color:inherit; font:500 var(--ws-caption)/1.5 var(--ws-font-body); text-decoration:underline; text-underline-offset:4px; }
.portal-playback:hover { background:#ffffff12; }
.footer-primary a { min-width:44px; }
.site-header .main-nav a[aria-current=page],.line-link:hover,.text-link:hover { text-decoration:underline; text-underline-offset:5px; }
.lead-review,.contact-form-panel,.consultation-panel { overflow-wrap:anywhere; }
.portal-playback[hidden] { display:none; }
@media (max-width:650px) {
  .line-link { font-size:var(--ws-label); }
  .dialog-close { top:12px; right:12px; }
  .enquiry-inner { padding-top:60px; }
}
@media (prefers-reduced-motion:reduce) {
  :where(*,*::before,*::after) { scroll-behavior:auto; }
  :is(.button,.primary-button,.secondary-button,.access-primary) { transition:none; }
}
