/* Standard input capabilities also cover Safari's eye-and-hand input on visionOS.
   Avoid device detection: keyboards, trackpads and window sizes can change. */
a[href],button:not(:disabled),summary,select,[role="button"]{cursor:pointer}
input:focus-visible,select:focus-visible,textarea:focus-visible,[role="button"]:focus-visible{outline:3px solid var(--red);outline-offset:4px}
button:disabled{cursor:default}

@media (any-pointer:coarse){
  /* Enlarge actual hit regions, without overlapping invisible pseudo-elements. */
  .language-switch{gap:8px}
  .language-switch a{min-width:48px;min-height:48px;font-size:.875rem;border-radius:4px}
  .topline-inner{flex-wrap:wrap;row-gap:8px;padding-block:4px}
  .nav a,.subnav a{display:inline-flex;align-items:center;min-height:48px;padding:10px 8px;border-radius:4px;white-space:normal}
  .nav{flex-wrap:wrap}
  .subnav{gap:12px 18px}
  .text-link{min-height:48px;padding-block:10px;line-height:1.5;border-radius:3px}
  .button,.menu-button,.boat-board button,.agenda-button,.editor-tabs button,.editor-logout{min-height:48px;min-width:48px}
  .menu-button{font-size:1rem}
  .link-list a,.webcam-groups a{min-height:48px;align-items:center}
  .legal-links a,.footer-links>a:not(.trail-sign){display:inline-flex;align-items:center;min-height:48px}
  summary{min-height:48px;padding-block:10px}
  input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,textarea{min-height:48px;font-size:1rem}
  .confirm-choice{min-height:48px;cursor:pointer}
  .agenda-layout{grid-template-columns:minmax(370px,1fr) minmax(0,2fr);gap:30px}
  .agenda-days{gap:4px}
  .agenda-day,.agenda-month-nav button{min-height:44px;min-width:44px}
  .agenda-day{border-radius:4px}
  .agenda-month-nav{flex-wrap:wrap}
  #photo-map .leaflet-control-zoom a{width:48px;height:48px;line-height:48px}
  #photo-map .leaflet-popup-close-button{width:44px;height:44px;line-height:44px}
  #photo-map .leaflet-popup-content{margin-right:40px}
  #photo-map .leaflet-popup-content a{display:inline-flex;align-items:center;min-height:48px}
  #photo-map .photo-pin{font-size:18px;line-height:44px;border-radius:50%}
}
@media (any-pointer:coarse) and (min-width:941px){
  .header-row{flex-wrap:wrap}
  .nav{flex:1;justify-content:flex-end;gap:8px 12px}
}
@media (any-pointer:coarse) and (max-width:1100px){
  .agenda-layout{grid-template-columns:minmax(0,1fr)}
  .agenda-calendar{position:static;max-width:500px;width:100%;padding:16px}
}
@media (any-pointer:coarse) and (max-width:400px){
  .agenda-calendar{padding:10px 0}
  .agenda-days{gap:2px}
  .agenda-day{min-width:0}
  .topline-inner{justify-content:center;text-align:center}
  .topline-message{max-width:none}
}
@media (hover:none){
  a.button:hover,a.trail-sign:hover,.card .image-link:hover img{transform:none}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}
  a.button:hover,a.trail-sign:hover,.card .image-link:hover img{transform:none}
}
