/* ============================================================
   a11y.css — shared accessibility + interaction fixes
   Loaded by every page. Additive only: defines no selector that
   the three existing stylesheets already set, so the cascade of
   existing pages is unchanged.
   ============================================================ */

/* --- Skip link (C9) -----------------------------------------
   Visually hidden until focused. Lets keyboard and screen-reader
   users bypass the nav + Collection dropdown on every page load. */
.skip-link{
  position:absolute; left:-9999px; top:0; z-index:999;
  background:var(--ink,#1D2B33); color:#fff;
  padding:12px 20px; text-decoration:none;
  font-family:var(--monof,ui-monospace,monospace);
  font-size:var(--t-xs); letter-spacing:var(--ls-wide); text-transform:uppercase;
}
.skip-link:focus{
  left:8px; top:8px;
  outline:2px solid var(--gold,#BE9E5E); outline-offset:2px;
}

/* --- Focus visibility ---------------------------------------
   Ensure a visible focus ring everywhere, including over the
   WebGL hero where the default ring can disappear. */
a:focus-visible,button:focus-visible,input:focus-visible,
textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--gold,#BE9E5E);
  outline-offset:2px;
  border-radius:1px;
}

/* --- Tap targets (C7) ---------------------------------------
   Scoped to coarse pointers (touch) so desktop rendering is
   byte-identical to before. Only standalone CTAs are targeted:
   links inside a sentence are exempt from WCAG 2.5.8 under the
   "inline" exception, and padding them would disturb text flow. */
@media (pointer: coarse){
  .card-cta,
  .nav-cta,
  .navlink,
  .btn,.btn-ghost,.btn-solid,.btn-wa,
  .ef-submit,
  .footer-links a,
  .footer-nav a,
  .foot-links a{
    min-height:44px;
    display:inline-flex;
    align-items:center;
  }
  .btn,.btn-ghost,.btn-solid,.btn-wa,.ef-submit{ justify-content:center; }

  /* Close button on the enquiry modal — was a 26px glyph. */
  .enquire-close{
    min-width:44px; min-height:44px;
    display:inline-flex; align-items:center; justify-content:center;
  }
}

/* --- Enquiry status region (C3) -----------------------------
   Success and error messaging for the enquiry forms. Hidden
   until the script populates it. */
.ef-status{
  margin-top:14px; padding:12px 14px;
  font-family:var(--sans,var(--font-sans,system-ui,sans-serif));
  font-size:var(--t-sm); line-height:1.5; border-radius:2px;
}
.ef-status:empty{ display:none; }
.ef-status[data-state="ok"]{
  background:rgba(37,211,102,.10);
  border:1px solid rgba(37,211,102,.45);
  color:var(--ink,#1D2B33);
}
.ef-status[data-state="error"]{
  background:rgba(176,58,46,.08);
  border:1px solid rgba(176,58,46,.40);
  color:#8E2B22;
}
.ef-status a{ color:inherit; text-decoration:underline; }

/* Respect reduced motion for anything added here. */
@media (prefers-reduced-motion: reduce){
  .skip-link{ transition:none; }
}

/* --- Named advisor block (Audit 5, L7) ----------------------
   Luxury at this price point is delivered by a person, not a
   phone number. Loaded site-wide so the block can be reused. */
.advisor{
  display:flex; gap:22px; align-items:flex-start;
  margin:18px 0 26px; padding:22px 24px;
  background:rgba(154,123,63,.05);
  border-left:2px solid var(--brass,#9A7B3F);
}
.advisor-name{
  font-family:var(--display,Georgia,serif);
  font-size:var(--t-md); line-height:1.2; margin:0 0 2px;
  color:var(--ink,#1D2B33);
}
.advisor-role{
  font-family:var(--monof,ui-monospace,monospace);
  font-size:var(--t-micro); letter-spacing:var(--ls-caps); text-transform:uppercase;
  color:var(--brass,#9A7B3F); margin:0 0 12px;
}
.advisor-note{ margin:0 0 12px; max-width:60ch; }
.advisor-contact{
  font-family:var(--monof,ui-monospace,monospace);
  font-size:var(--t-xs); letter-spacing:var(--ls-wide); margin:0;
  color:var(--muted,#5B6A72);
}
@media (max-width:640px){
  .advisor{ flex-direction:column; gap:14px; padding:18px; }
}

/* Named-advisor reassurance under the enquiry forms. */
.ef-advisor{
  margin-top:12px;
  font-family:var(--monof,ui-monospace,monospace);
  font-size:var(--t-micro); letter-spacing:var(--ls-wide); line-height:1.6;
  color:var(--muted,#5B6A72); text-align:center;
}
