:root{
  --tap-size:52px;
  --mobile-space:16px;
  --mobile-radius:16px;
}

button,a,input,select,textarea{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
.reveal{opacity:1!important;transform:none!important}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:3px solid #f2bd52!important;
  outline-offset:3px;
}
.button,.map-button,.nav-tab{
  min-height:48px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.menu-button-label{
  color:#fff;
  font-size:.82rem;
  font-weight:800;
}
.site-message{
  position:fixed;
  z-index:3000;
  left:50%;
  bottom:88px;
  width:min(calc(100% - 28px),440px);
  padding:14px 16px;
  border-radius:14px;
  color:#fff;
  background:#073f2d;
  box-shadow:0 14px 40px rgba(0,0,0,.25);
  text-align:center;
  font-size:1rem;
  font-weight:700;
  transform:translate(-50%,20px);
  opacity:0;
  pointer-events:none;
  transition:.2s ease;
}
.site-message.show{transform:translate(-50%,0);opacity:1}
.mobile-only{display:none}
.event-is-today{border-color:#3f9c68!important;box-shadow:0 12px 34px rgba(15,74,52,.14)!important}
.event-today-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:30px;
  padding:5px 10px;
  border-radius:999px;
  background:#dff4e7;
  color:#0f5b36;
  font-size:.74rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
@keyframes demoCameraNudge{
  0%,82%,100%{transform:rotate(0) scale(1)}
  86%{transform:rotate(-8deg) scale(1.08)}
  90%{transform:rotate(8deg) scale(1.08)}
  94%{transform:rotate(-5deg) scale(1.05)}
  98%{transform:rotate(0) scale(1)}
}
.demo-event-today .event-camera-banner{
  border:2px solid #d0a34d;
  box-shadow:0 12px 30px rgba(157,116,41,.2);
}
.demo-camera-strip{
  position:relative;
  z-index:90;
  padding:12px 0;
  background:#f6edd8;
  border-bottom:1px solid #dfc98f;
}
.demo-camera-strip .event-camera-banner{margin:0}
.demo-event-today .event-camera-action .camera-tab-icon{
  animation:demoCameraNudge 5s ease-in-out infinite;
}

@media(max-width:850px){
  html{font-size:17px;scroll-padding-top:72px}
  body{
    line-height:1.5;
    padding-bottom:calc(82px + env(safe-area-inset-bottom));
    background:#f6f8f6;
    overflow-x:hidden;
  }
  body.mobile-menu-open{overflow:hidden}
  .shell{width:min(100% - 24px,1180px)}
  .site-header{
    min-height:64px!important;
    z-index:1500!important;
    border-bottom-color:rgba(255,255,255,.12)!important;
  }
  .header-inner,.global-site-header .header-inner{min-height:64px!important;gap:10px}
  .brand,.global-site-header .global-brand{display:flex;align-items:center;text-decoration:none}
  .brand::after,.global-site-header .global-brand::after{
    content:"BARFORD";
    margin-left:9px;
    color:#fff;
    font-size:.72rem;
    font-weight:900;
    letter-spacing:.13em;
  }
  .brand img,.global-site-header .global-brand img{width:58px!important;height:54px!important;background:transparent!important;border-radius:0!important;padding:0!important;box-shadow:none!important}
  .menu-button,.global-site-header .menu-button{
    width:auto!important;
    min-width:92px;
    height:46px!important;
    display:flex!important;
    align-items:center;
    justify-content:center;
    gap:9px;
    padding:7px 12px!important;
    position:relative;
    z-index:1502!important;
    touch-action:manipulation;
  }
  .menu-button-lines{width:23px}
  .menu-button span:not(.sr-only):not(.menu-button-label){margin:4px 0}
  .site-nav,.global-site-header .site-nav{
    position:fixed!important;
    z-index:1501!important;
    top:64px!important;
    left:12px!important;
    right:12px!important;
    max-height:calc(100dvh - 154px);
    overflow-y:auto;
    padding:8px 14px 14px!important;
    background:#061f17!important;
    border:1px solid rgba(255,255,255,.12);
    border-radius:0 0 20px 20px;
    box-shadow:0 22px 54px rgba(0,0,0,.38);
  }
  body.mobile-menu-open::before{
    content:"";
    position:fixed;
    inset:64px 0 0;
    z-index:1499;
    background:rgba(2,14,10,.56);
    backdrop-filter:blur(2px);
  }
  .site-nav a,.global-site-header .site-nav a{
    min-height:52px;
    padding:14px 12px!important;
    font-size:1rem!important;
    border-bottom:1px solid rgba(255,255,255,.1);
  }
  .site-nav a[href="index.html"],
  .site-nav a[href="events.html"],
  .site-nav a[href="scores.html"]{display:none}
  .page-hero{padding:26px 0 24px!important}
  .page-hero::after{display:none}
  .page-hero h1{font-size:2rem!important;line-height:1.08;margin-bottom:8px}
  .page-hero p:last-child{font-size:.96rem!important;line-height:1.45}
  .section{padding-block:26px!important}
  main>.section:first-child{padding-top:22px!important}
  .section-heading,.toolbar{gap:12px;margin-bottom:18px!important}
  .section-heading,.toolbar,.score-toolbar,.admin-heading{align-items:flex-start!important}
  h1{font-size:2rem}
  h2{font-size:1.45rem}
  h3{font-size:1.12rem}
  p,.muted{font-size:1rem;line-height:1.55}
  .eyebrow{font-size:.82rem}
  .button,.map-button,.nav-tab{
    min-height:52px;
    padding:12px 16px;
    border-radius:13px;
    font-size:1rem;
    font-weight:800;
  }
  .button-row{gap:10px}
  .button-row .button{width:100%}
  .mobile-quick-nav{
    left:8px!important;
    right:8px!important;
    bottom:calc(7px + env(safe-area-inset-bottom))!important;
    z-index:1400!important;
    min-height:68px;
    padding:6px!important;
    border-radius:18px!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    box-shadow:0 12px 34px rgba(3,21,15,.3)!important;
  }
  .mobile-quick-nav a{
    min-width:0;
    min-height:56px;
    gap:1px!important;
    padding:6px 2px!important;
    font-size:.78rem!important;
    line-height:1.15;
    text-align:center;
  }
  .mobile-quick-nav .quick-icon{font-size:1.25rem;line-height:1}
  .mobile-only{display:block}
  .site-footer{padding:26px 0 22px!important}
  .footer-inner{gap:14px;align-items:flex-start}
  .demo-camera-strip{padding:8px 0}
  .demo-camera-strip .shell{width:min(100% - 16px,1180px)}

  /* Member home: one clear task at a time */
  .dashboard-welcome{padding:24px 0!important}
  .dashboard-welcome-inner{display:block!important}
  .dashboard-welcome h1{font-size:2rem!important}
  .dashboard-welcome p:not(.eyebrow){display:none}
  .dashboard-member{margin-top:14px;padding:10px 12px!important}
  .dashboard-content{display:block!important;padding-top:16px!important}
  .next-event-dashboard{padding:16px!important;border-radius:18px!important}
  .dashboard-event-top{grid-template-columns:64px minmax(0,1fr)!important;gap:12px!important}
  .dashboard-date{width:64px!important;min-height:82px!important}
  .dashboard-event-title h2{font-size:1.45rem!important}
  .dashboard-status{grid-column:1/-1;width:100%;text-align:center}
  .event-countdown{padding:14px!important;grid-template-columns:1fr!important}
  .countdown-icon{display:none!important}
  .countdown-copy strong{font-size:1.2rem!important}
  .countdown-units{justify-content:space-between}
  .member-home-grid{margin-top:0!important;padding-top:16px!important}
  .dashboard-next-event{overflow:hidden}
  .dashboard-event-facts{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important}
  .dashboard-event-facts>div{min-width:0;padding:10px 6px!important;text-align:center}
  .dashboard-next-event .dashboard-button-row{gap:8px!important;margin-top:12px!important}
  .dashboard-next-event .dashboard-button-row .button{min-height:50px!important;padding:10px 14px!important}
  .event-weather-compact{padding:14px!important}
  .fourball-grid{grid-template-columns:1fr!important}
  .fourball-member{min-height:58px}
  .directions-panel{padding:16px!important}
  .map-buttons{display:grid!important;grid-template-columns:1fr!important}
  .dashboard-side{margin-top:16px}
  .dashboard-side .dashboard-card:nth-of-type(2){display:none}
  .dashboard-side .dashboard-card{padding:16px!important}
  #publicHome .hero{padding:38px 0!important}
  #publicHome .hero-grid{display:block}
  #publicHome .hero-art{display:none}
  #publicHome .hero-copy h1{font-size:2.35rem}
  #publicHome .hero-copy .button-row{display:grid}

  /* Events: compact summary with optional player list */
  .cards-list{gap:14px!important}
  .compact-event-card{
    grid-template-columns:60px minmax(0,1fr)!important;
    gap:12px!important;
    padding:13px!important;
    border-radius:18px!important;
    box-shadow:0 8px 22px rgba(3,21,15,.07)!important;
  }
  .event-date-block{min-height:80px!important;padding:7px 5px!important}
  .event-date-block strong{font-size:1.65rem!important}
  .event-title-row{display:block!important}
  .event-heading-actions{margin-top:10px;justify-items:stretch!important}
  .event-heading-actions .rsvp-event-button{width:100%!important}
  .event-heading-copy h3{font-size:1.2rem!important}
  .event-summary-row{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:7px!important;
    margin:12px 0!important;
  }
  .event-summary-row span{
    display:grid;
    gap:1px;
    min-height:54px;
    padding:8px 10px;
    border-radius:11px;
    background:#f2f6f3;
    font-size:.86rem;
  }
  .event-summary-row span:last-child{grid-column:1/-1;background:#e7f4eb;color:#0f5b36}
  .event-button-row{grid-template-columns:1fr!important}
  .event-button-row .button{width:100%!important}
  .compact-event-card .event-rsvp-section{grid-column:1/-1!important}
  .public-rsvp-list:not(.is-expanded) .public-rsvp-row:nth-child(n+6){display:none}
  .players-toggle{width:100%;margin-top:10px}
  .payment-status{font-size:.82rem!important}

  /* Scores: readable compact list, no navigation competition */
  .scores-page-shell,.leaderboard-first{padding-left:0!important;padding-right:0!important}
  .leaderboard-first{padding-top:0!important;padding-bottom:16px!important}
  .leaderboard-titlebar{margin-bottom:10px!important}
  .leaderboard-titlebar h2{font-size:1.35rem!important}
  .leaderboard-round-tabs{gap:7px!important;margin-bottom:10px!important}
  .leaderboard-round-tabs button{min-height:46px!important}
  .league-table-panel .player-card-summary{min-height:48px!important;padding:6px 3px!important}
  .league-table-panel .player-name{padding-inline:4px!important;font-size:.69rem!important;line-height:1.08!important}
  .league-table-panel .leaderboard-round-line strong{font-size:.66rem!important}
  .league-table-panel .points-block strong{font-size:.82rem!important}
  .primary-nav{
    top:60px!important;
    padding:7px!important;
    gap:5px!important;
  }
  .primary-nav .nav-tab{min-width:max-content;font-size:.88rem!important;padding:9px 12px!important}
  .leaderboard-cinematic .top-three-row .player-name{animation-duration:.65s!important}
  .compact-search{padding:12px!important;margin-top:12px!important}

  /* Account: four headline numbers, sections opened deliberately */
  .account-hero{padding:20px 0!important}
  .account-hero-inner{gap:14px!important}
  .account-identity{align-items:center!important}
  .account-avatar{width:62px!important;height:62px!important}
  .account-hero h1{font-size:1.65rem!important}
  .account-hero .button{width:100%}
  .account-layout{display:block!important;padding-top:18px!important}
  .account-stat-grid{grid-template-columns:1fr 1fr!important;gap:9px!important}
  .account-stat-grid article{padding:14px 10px!important}
  .account-stat-grid strong{font-size:1.65rem!important}
  .account-mobile-tabs{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:7px;
    margin:0 0 14px;
  }
  .account-mobile-tabs button{min-height:50px}
  .account-mobile-section[hidden]{display:none!important}
  .account-panel{padding:16px!important}
  .account-round-list>div{grid-template-columns:58px minmax(0,1fr) auto!important}
  .account-round-list em{display:none}
  .achievement-grid{grid-template-columns:1fr!important}
  .account-profile-form input,.account-profile-form select{min-height:52px;font-size:1rem}

  /* Secondary pages */
  .product-grid,.feature-grid{grid-template-columns:1fr!important}
  .product-card,.feature-card,.media-card,.upload-card,.form-card{padding:16px!important}
  .feature-card{min-height:0!important}
  .feature-number{margin-bottom:16px!important}
  .gallery-grid{grid-template-columns:1fr 1fr!important;gap:8px!important}
  .gallery-placeholder{min-height:150px!important}
  .gallery-placeholder.tall,.gallery-placeholder.wide{grid-column:auto!important;grid-row:auto!important}
  .table-wrap{margin-inline:-2px;border-radius:14px!important}
  input,select,textarea{font-size:16px!important}
  dialog{max-width:calc(100% - 20px)!important}
}

@media(max-width:360px){
  html{font-size:16px}
  .shell{width:min(100% - 20px,1180px)}
  .account-stat-grid{grid-template-columns:1fr!important}
  .gallery-grid{grid-template-columns:1fr!important}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}
}
