/* Shared interaction styles preserve Aranzu's existing warm palette. */
:root { --accessible-accent: var(--ar-secondary-soft); --control-border: var(--ar-text-soft); }
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
    outline: 4px solid var(--ar-secondary-soft);
    outline-offset: 4px;
    box-shadow: 0 0 0 8px var(--ar-white);
}
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link {
    position: fixed;
    top: 16px;
    left: 16px;
    z-index: 300;
    padding: 8px 16px;
    background: var(--ar-secondary);
    color: var(--ar-white);
    transform: translateY(-200%);
}
.skip-link:focus { transform: translateY(0); }
.mobile-toggle, .admin-header > button, .sidebar-close {
    min-width: 48px;
    min-height: 48px;
    align-items: center;
    gap: 8px;
}
.menu-label { font: 700 12px Arial, sans-serif; }
.sidebar-close { align-self: flex-end; padding: 8px !important; }
.admin-sidebar { visibility: hidden; overflow-y: auto; }
.admin-sidebar.open { visibility: visible; }
.admin-sidebar nav { gap: 8px; margin-top: 24px; }
.admin-sidebar nav a { display: flex; align-items: center; min-height: 48px; }
.admin-sidebar form { padding-bottom: 16px; }
.admin-sidebar form button { min-height: 48px; }
.admin-main,.admin-header > div,.admin-panel,.manage-grid > *{ min-width: 0; }
.admin-header { min-height: 80px; height: auto; padding-block: 16px; }
.admin-header h1 { font-size: clamp(1.25rem, 2.2vw, 1.75rem); overflow-wrap: anywhere; }
.admin-header > span { overflow-wrap: anywhere; }
.checkout-form input,.checkout-form textarea,.admin-form input,.admin-form select,.admin-form textarea{
    border-bottom-color: var(--control-border);
}
.checkout-form input:focus-visible,.checkout-form textarea:focus-visible,.admin-form input:focus-visible,.admin-form select:focus-visible,.admin-form textarea:focus-visible{
    outline: 4px solid var(--ar-secondary-soft);
    outline-offset: 4px;
}
.pill,.admin-button{ min-height: 48px; }
.checkout-page h1,.simple-page h1{
    font-size: clamp(2rem, 4vw, 3.5rem);
    line-height: 1.12;
    margin: 24px 0 32px;
}
.account-page { padding-top: 32px; }
.account-page .account-head h1 { font-size: clamp(1.75rem, 3vw, 2.5rem); line-height: 1.15; }
.gallery-header h1 { font-size: clamp(1.75rem, 3vw, 2.75rem); line-height: 1.15; }
.gallery-callout small,.revision-active small,.media-workspace__head > span{ color: var(--accessible-accent); }
.photo-choice .photo-zoom { min-width: 48px; min-height: 48px; }
.photo-choice input:focus-visible + .photo-choice__status {
    outline: 4px solid var(--ar-white);
    outline-offset: -8px;
    background: var(--ar-secondary);
}
.photo-choice__status { min-height: 64px; }
.photo-choice__status > span { min-width: 0; overflow-wrap: anywhere; }
.gallery-lightbox [hidden] { display: none !important; }
.gallery-lightbox { height: 100dvh; }
.lightbox-stage { height: 100dvh; }
.lightbox-stage img, .lightbox-stage video { max-height: calc(100dvh - 120px); }
.lightbox-nav { width: 48px; height: 48px; }
.workspace-switcher { position: static; }
.worker-card-head h3,.booking-top h2,.booking-meta{
    overflow-wrap: anywhere;
}
.gallery-error, .admin-flash, .error { overflow-wrap: anywhere; }
@media (max-width: 900px) {
    .mobile-toggle { display: inline-flex; }
    .main-nav { max-height: calc(100dvh - 72px); overflow-y: auto; gap: 8px; }
    .main-nav > a{ display: flex; align-items: center; min-height: 48px; }
    .admin-sidebar { width: min(280px, calc(100vw - 48px)); margin-left: -280px; padding: 24px; }
    .admin-sidebar.open { margin-left: 0; }
    .admin-header { gap: 16px; padding-inline: 16px; }
    .hero { min-height: calc(85svh - 72px); }
    .checkout-form{ padding: 32px 24px; }
        .simple-page { padding: 48px 5vw; }
        .panel-head, .booking-top { flex-wrap: wrap; gap: 16px; }
    .footer { padding-bottom: calc(96px + env(safe-area-inset-bottom)); }
}
@media (max-width: 560px) {
    .checkout-form input,.checkout-form textarea,.admin-form input,.admin-form select,.admin-form textarea,.video-revision-form textarea{ font-size: 16px; }
    .lightbox-stage { padding-top: 72px; }
    .gallery-lightbox[open] { grid-template-columns: 48px minmax(0, 1fr) 48px; }
    .selection-bar { position: static; margin-bottom: 32px; }
    .admin-panel { padding: 16px; }
    .worker-card > .booking-meta { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
}

/* Touch targets: links and controls outside running text are at least 44px tall (antislop R-03).
   :where() keeps this a baseline that component styles can still size up. */
:where(button, summary, [type="submit"], [type="button"]) { min-height: 44px; }
.footer a,.arrow-link,.gallery-back,.pagination-simple a,.skip-link{
    display: inline-flex;
    align-items: center;
    min-height: 44px;
}
.footer > div { gap: 0; }
