/* Keyboard focus follows the shape of each control, with a clear two-pixel ring. */
:root { --focus-radius:8px; }
:is(.button,.icon-button,.summary-favorite,.qty,.active-filters > a,.filter-tag) { --focus-radius:999px; }
.product-detail-item > summary { --focus-radius:var(--dossier-radius,16px); }
.product-service { --focus-radius:12px; }
body :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible {
  outline:2px solid var(--focus-color,var(--ink));
  outline-offset:3px;
  border-radius:var(--focus-radius);
}
:is(.site-footer,.campaign-copy,.hero-caption,.hero-secondary-caption) { --focus-color:var(--ivory); }
.carousel-track:focus-visible,.gallery-tools button:focus-visible { outline-offset:-3px; }
.product-card__image:focus-visible,.category-tile:focus-visible,.journal-frame:focus-visible { outline-offset:-4px; }
/* Select2 keeps its native keyboard handling; match the rest of the form fields. */
.select2-container .select2-selection--single { border-radius:8px!important; }
.select2-container--focus .select2-selection { outline:2px solid var(--ink); outline-offset:3px; }
@media(max-width:760px) {
  .announcement { position:sticky; top:0; z-index:51; }
  .site-header { top:26px; padding-block:14px; background:var(--ivory); }
  body.header-on-dark .site-header .brand img { filter:none; }
}
