:root{--navy:#071f35;--navy2:#0c3454;--red:#d10b12;--blue:#0c70c7;--light:#e9f4ff;--line:#cdd9e4;--text:#0b2239;--muted:#53687a}*{box-sizing:border-box}html,body{margin:0;background:#fff;color:var(--text);font-family:'Roboto Condensed',Arial,Helvetica,sans-serif}body{min-width:320px}.visual-hero,.visual-footer{position:relative;max-width:1024px;margin:0 auto;background:#07131e;overflow:hidden}.visual-hero img,.visual-footer img{display:block;width:100%;height:auto}.page-shell{width:min(1024px,100%);margin:0 auto;padding:13px 18px 16px;display:grid;grid-template-columns:54.2% 44.2%;gap:1.6%;background:#fff}.section-title{height:52px;border-radius:4px 4px 0 0;color:#fff;display:flex;align-items:center;padding:0 14px;gap:12px}.section-title h2{font-family:'Oswald','Arial Narrow',Arial,sans-serif;font-stretch:condensed;font-size:29px;line-height:1;margin:0;font-weight:900;letter-spacing:-.8px}.red-title{background:linear-gradient(90deg,#c31118,#e21b20)}.navy-title{background:linear-gradient(90deg,#071c2d,#0a2337)}.title-icon{font-size:29px;line-height:1;width:34px;text-align:center;display:inline-flex;align-items:center;justify-content:center}.title-icon i{display:block}.section-help,.registration-copy{font-size:13px;color:#111;margin:9px 1px 12px;line-height:1.25}.calendar-card{border:1px solid #c8d3de;border-radius:5px;overflow:hidden}.calendar-head{height:46px;background:linear-gradient(90deg,#071d2e,#0b2e48);display:grid;grid-template-columns:54px 1fr 54px;align-items:center;color:#fff}.calendar-head strong{text-align:center;font-family:'Oswald','Arial Narrow',Arial,sans-serif;font-size:23px;font-weight:600}.calendar-head button{border:0;background:transparent;color:#fff;font-size:22px;line-height:1;cursor:pointer;height:46px}.weekday-row,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.weekday-row{background:#143b56;color:#fff}.weekday-row span{text-align:center;padding:7px 2px;font-weight:700;font-size:13px;border-right:1px solid #5b7588}.weekday-row span:last-child{border-right:0}.calendar-day{height:41px;border-right:1px solid #d8e1e8;border-bottom:1px solid #d8e1e8;position:relative;text-align:center;font-size:14px;padding-top:11px;background:#fff}.calendar-day:nth-child(7n){border-right:0}.calendar-day.muted{color:#abb5bf;background:#fafcfd}.calendar-day.has-event{background:#dfefff;font-weight:800}.event-dot{position:absolute;width:7px;height:7px;border-radius:50%;background:#d71920;bottom:5px;left:50%;transform:translateX(-50%)}.calendar-day button{position:absolute;inset:0;border:0;background:transparent;cursor:pointer;font-size:0}.month-list-title{margin-top:13px;height:44px;background:#dceeff;display:flex;align-items:center;gap:10px;padding:0 12px;font-size:20px;color:#0b2a43}.month-list-title span{font-size:23px;width:28px;text-align:center}.month-list-title strong{font-family:'Oswald','Arial Narrow',Arial,sans-serif;font-size:20px}.tournament-list{border-left:1px solid #e5edf3;border-right:1px solid #e5edf3}.tournament-card{display:grid;grid-template-columns:72px minmax(0,1fr) 144px;gap:10px;min-height:100px;padding:9px 12px 9px 11px;border-bottom:1px solid #e4eaf0;align-items:center}.date-badge{width:64px;height:66px;border-radius:6px;background:linear-gradient(#0c304a,#082239);color:#fff;text-align:center;padding:7px 4px;box-shadow:0 2px 2px rgba(0,0,0,.12)}.date-badge .m{font-size:12px;font-weight:700}.date-badge .d{font-size:24px;font-weight:900;line-height:24px}.date-badge .dow{font-size:10px;font-weight:700}.tournament-main h3{font-size:16px;margin:0 0 5px;color:#0b2a43;line-height:1.05}.meta{font-size:12px;line-height:1.35;color:#20394d}.meta .pin{color:#e3141c;margin-right:6px;font-size:13px}.tournament-tools{margin-top:7px;display:flex;gap:10px;flex-wrap:wrap}.lineup-link{border:0;background:transparent;color:#0063ad;text-decoration:underline;padding:0;font-weight:700;font-size:12px;cursor:pointer}.lineup-link i{font-size:15px;margin-right:6px;text-decoration:none}.download-form{display:inline-flex;align-items:center;justify-content:center;min-width:132px;height:38px;border:0;border-radius:4px;background:linear-gradient(#0d7bca,#0860a9);color:#fff;text-decoration:none;font-size:13px;font-weight:700;box-shadow:0 2px 3px rgba(0,0,0,.18)}.download-form i{font-size:17px;margin-right:9px}.download-form.disabled{opacity:.65;cursor:not-allowed}.other-tournaments{margin-top:12px;min-height:135px;background:#dceeff;border-radius:5px;padding:12px 14px;display:grid;grid-template-columns:50px 1fr;gap:8px;color:#0b2a43}.document-icon{font-size:34px;text-align:center}.other-tournaments strong{font-family:'Oswald','Arial Narrow',Arial,sans-serif;font-size:16px}.other-tournaments ul{margin:8px 0 0 19px;padding:0;font-size:13px;line-height:1.55}.calendar-note{margin-top:10px;background:#eff3f6;border-radius:4px;text-align:center;font-size:12px;padding:10px 6px;line-height:1.35}.registration-copy{padding-left:2px;margin-bottom:13px}.league-facts{height:118px;background:#e4f2ff;border-radius:4px;display:grid;grid-template-columns:1.2fr .9fr .9fr;align-items:stretch;padding:0 10px;margin-bottom:12px}.league-facts>div{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border-right:1px solid #b8ccdc}.league-facts>div:last-child{border-right:0}.fact-symbol{font-size:33px;color:#08253b;margin-bottom:5px;line-height:1}.league-facts small{font-size:12px;font-weight:900;color:#0b2a43}.league-facts strong{font-size:17px;color:#d20d12;margin-top:5px}.junior-form{display:grid;grid-template-columns:1fr 1fr;column-gap:13px;row-gap:10px}.junior-form label{display:flex;flex-direction:column;gap:5px;min-width:0}.junior-form label>span{font-size:14px;font-weight:700;color:#0c2238;line-height:16px;min-height:32px;display:flex;align-items:flex-end}.junior-form b{color:#d40000}.junior-form input,.junior-form select{width:100%;height:36px;border:1px solid #bac9d5;border-radius:4px;padding:0 11px;font-size:14px;background:#fff;color:#23394c}.junior-form input[readonly]{background:#eef1f3}.full{grid-column:1/-1}.submit-btn{margin-top:8px;height:52px;border:0;border-radius:4px;background:linear-gradient(90deg,#cf050a,#df080d);color:#fff;font-size:20px;font-weight:900;letter-spacing:.2px;cursor:pointer}.submit-btn span{font-size:26px;vertical-align:-2px;margin-right:10px}.form-status{text-align:center;min-height:20px;font-size:12px;font-weight:700}.form-status.success{color:#16773a}.form-status.error{color:#b40000}.hp{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.lineup-dialog{width:min(414px,92vw);padding:0;border:1px solid #0b2d49;border-radius:7px;box-shadow:0 12px 34px rgba(0,0,0,.34)}.lineup-dialog::backdrop{background:rgba(0,0,0,.12)}.dialog-header{height:45px;background:linear-gradient(90deg,#0c3c66,#063054);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 14px;font-size:18px}.dialog-header button{border:0;background:transparent;color:#fff;font-size:31px;cursor:pointer}.dialog-body{padding:10px 16px 4px}.dialog-body h3{margin:0;color:#0b2a43;font-size:18px}.dialog-body .dialog-meta{font-size:13px;font-weight:700;margin:7px 0 10px}.roster-table{width:100%;border-collapse:collapse;font-size:12px}.roster-table th{background:#173d57;color:#fff;padding:8px 6px;border-right:1px solid #718899}.roster-table td{padding:6px;border:1px solid #cad5dd;text-align:center}.roster-table td.name{text-align:left}.dialog-empty{padding:18px;background:#f1f6fa;border-radius:5px;margin-top:10px;font-size:13px}.dialog-footer{padding:10px 16px 12px;display:flex;justify-content:flex-end}.dialog-footer button{padding:9px 21px;border:1px solid #aebbc6;border-radius:4px;background:#eef2f5;font-weight:700;cursor:pointer}.visual-footer{margin-top:0}@media(max-width:760px){.junior-form label>span{min-height:0}.visual-hero{background:#07131e}.visual-hero img{width:100%;min-width:760px;transform:translateX(calc((100vw - 760px)/2))}.page-shell{grid-template-columns:1fr;padding:12px;gap:20px}.right-column{order:1}.left-column{order:2}.section-title h2{font-size:24px}.tournament-card{grid-template-columns:68px 1fr}.tournament-actions{grid-column:2}.download-form{min-width:128px}.junior-form{grid-template-columns:1fr}.full{grid-column:1}.league-facts{height:auto;min-height:105px}.visual-footer img{width:100%;min-width:760px;transform:translateX(calc((100vw - 760px)/2))}}@media(max-width:430px){.section-title{height:46px}.section-title h2{font-size:20px}.calendar-head strong{font-size:20px}.calendar-day{height:38px}.month-list-title strong{font-size:16px}.tournament-card{padding-left:7px;padding-right:7px}.league-facts{grid-template-columns:1fr 1fr 1fr;padding:0}.league-facts small{font-size:10px}.league-facts strong{font-size:14px}.fact-symbol{font-size:27px}.submit-btn{font-size:17px}}

/* Typography tuned to the approved visual mockup */
.section-title h2,.month-list-title strong,.other-tournaments strong,.submit-btn,.date-badge,.league-facts small,.league-facts strong,.dialog-header,.dialog-body h3,.roster-table th{font-family:'Oswald','Arial Narrow',Arial,sans-serif}
.tournament-main h3,.junior-form label>span{font-family:'Roboto Condensed',Arial,Helvetica,sans-serif;font-weight:700}


/* =========================================================
   REAL HOMETOWN LANES NAVIGATION
   The old image-based navigation has been removed from the
   hero artwork. These are live HTML links.
   ========================================================= */
.site-header{
  width:100%;
  background:#07131e;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.nav-inner{
  width:min(1024px,100%);
  min-height:96px;
  margin:0 auto;
  padding:0 18px;
  display:flex;
  align-items:center;
  gap:24px;
  position:relative;
}
.site-logo{
  flex:0 0 225px;
  align-self:stretch;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  text-decoration:none;
}
.site-logo img{
  display:block;
  width:183px;
  max-height:96px;
  object-fit:contain;
}
.main-navigation{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.main-navigation a{
  color:#fff;
  text-decoration:none;
  font-family:'Roboto Condensed',Arial,Helvetica,sans-serif;
  font-size:15px;
  font-weight:700;
  line-height:1;
  letter-spacing:.01em;
  white-space:nowrap;
  text-transform:uppercase;
  transition:color .16s ease;
}
.main-navigation a:hover,
.main-navigation a:focus-visible{
  color:#e40012;
  outline:none;
}
.nav-toggle{
  display:none;
  border:1px solid rgba(255,255,255,.55);
  border-radius:4px;
  background:transparent;
  color:#fff;
  width:44px;
  height:40px;
  font-size:22px;
  cursor:pointer;
}
.nav-toggle:hover,
.nav-toggle:focus-visible{
  color:#e40012;
  border-color:#e40012;
  outline:none;
}

/* The hero now contains only the Junior League artwork. */
.visual-hero{
  position:relative;
  max-width:1024px;
  margin:0 auto;
  background:#07131e;
  overflow:hidden;
}
.visual-hero img{
  display:block;
  width:100%;
  height:auto;
}

@media(max-width:900px){
  .nav-inner{
    min-height:84px;
    padding:0 14px;
  }
  .site-logo{flex-basis:175px}
  .site-logo img{width:155px;max-height:84px}
  .main-navigation{gap:11px}
  .main-navigation a{font-size:13px}
}

@media(max-width:760px){
  .nav-inner{
    min-height:72px;
    padding:0 12px;
    justify-content:space-between;
  }
  .site-logo{
    flex:0 0 auto;
    align-self:auto;
  }
  .site-logo img{
    width:135px;
    max-height:70px;
  }
  .nav-toggle{
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .main-navigation{
    display:none;
    position:absolute;
    z-index:30;
    top:72px;
    left:0;
    right:0;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:8px 14px 14px;
    background:#07131e;
    border-top:1px solid rgba(255,255,255,.1);
    box-shadow:0 8px 18px rgba(0,0,0,.25);
  }
  .main-navigation.open{display:flex}
  .main-navigation a{
    padding:13px 4px;
    border-bottom:1px solid rgba(255,255,255,.1);
    font-size:17px;
  }
  .main-navigation a:last-child{border-bottom:0}
  .visual-hero img{
    width:100%;
    min-width:0;
    transform:none;
  }
}

/* Navigation refinements: larger links, transparent logo area, clear hero separation */
.site-header{
  position:relative;
  z-index:20;
  background:#07131e;
  overflow:visible;
}
.nav-inner{
  min-height:104px;
  height:104px;
  padding:0 20px;
}
.site-logo{
  flex:0 0 205px;
  height:100%;
  background:transparent !important;
  overflow:visible;
}
.site-logo img{
  width:180px;
  max-height:98px;
  object-fit:contain;
  background:transparent !important;
}
.main-navigation{
  gap:clamp(14px,1.8vw,24px);
}
.main-navigation a{
  font-size:17px;
  font-weight:700;
}
.visual-hero{
  position:relative;
  z-index:1;
  clear:both;
  margin-top:0;
}
.visual-hero img{
  display:block;
  width:100%;
  height:auto;
}

/* Ensure no blue box/background is supplied by the logo element itself. */
.site-logo,
.site-logo:link,
.site-logo:visited,
.site-logo:hover,
.site-logo:focus{
  background-color:transparent !important;
  box-shadow:none !important;
  border:0 !important;
}

@media(max-width:900px) and (min-width:761px){
  .nav-inner{min-height:96px;height:96px;padding:0 14px}
  .site-logo{flex-basis:175px}
  .site-logo img{width:158px;max-height:90px}
  .main-navigation{gap:10px}
  .main-navigation a{font-size:14px}
}
@media(max-width:760px){
  .nav-inner{min-height:76px;height:76px}
  .site-logo img{width:140px;max-height:72px}
  .main-navigation{top:76px}
  .main-navigation a{font-size:18px}
}

/* Final navigation cleanup */
.site-header{
  position:relative !important;
  z-index:20 !important;
  width:100% !important;
  height:auto !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  background:#07131e !important;
  overflow:hidden !important;
}
.nav-inner{
  position:relative !important;
  width:min(1024px,100%) !important;
  height:92px !important;
  min-height:92px !important;
  margin:0 auto !important;
  padding:0 18px !important;
  display:flex !important;
  align-items:center !important;
  box-sizing:border-box !important;
  overflow:hidden !important;
}
.site-logo{
  position:relative !important;
  flex:0 0 188px !important;
  width:188px !important;
  height:82px !important;
  min-height:0 !important;
  align-self:center !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  background:transparent !important;
  overflow:hidden !important;
}
.site-logo img{
  display:block !important;
  width:172px !important;
  height:78px !important;
  max-width:172px !important;
  max-height:78px !important;
  object-fit:contain !important;
  background:transparent !important;
}
.main-navigation{
  position:static !important;
  flex:1 1 auto !important;
  height:auto !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:16px !important;
  background:transparent !important;
  box-shadow:none !important;
}
.main-navigation a{
  font-size:17px !important;
}
.visual-hero{
  position:relative !important;
  z-index:1 !important;
  clear:both !important;
  width:min(1024px,100%) !important;
  margin:0 auto !important;
  padding:0 !important;
  overflow:hidden !important;
}
.visual-hero img{
  display:block !important;
  width:100% !important;
  height:auto !important;
  margin:0 !important;
  padding:0 !important;
}
@media(max-width:900px) and (min-width:761px){
  .nav-inner{height:86px !important;min-height:86px !important;padding:0 12px !important}
  .site-logo{flex-basis:158px !important;width:158px !important;height:76px !important}
  .site-logo img{width:146px !important;height:70px !important;max-width:146px !important;max-height:70px !important}
  .main-navigation{gap:9px !important}
  .main-navigation a{font-size:14px !important}
}
@media(max-width:760px){
  .site-header{overflow:visible !important}
  .nav-inner{height:74px !important;min-height:74px !important;overflow:visible !important}
  .site-logo{width:140px !important;height:66px !important;flex-basis:140px !important;overflow:hidden !important}
  .site-logo img{width:132px !important;height:62px !important;max-width:132px !important;max-height:62px !important}
  .main-navigation{
    position:absolute !important;
    top:74px !important;
    left:0 !important;
    right:0 !important;
    height:auto !important;
    padding:8px 14px 14px !important;
    background:#07131e !important;
  }
}

/* Keep the hero completely below the navigation bar */
.site-header{
  display:block !important;
  position:relative !important;
  float:none !important;
  width:100% !important;
}
.nav-inner{
  position:relative !important;
  float:none !important;
}
.visual-hero{
  display:block !important;
  position:relative !important;
  float:none !important;
  clear:both !important;
  top:auto !important;
  left:auto !important;
  right:auto !important;
  transform:none !important;
  margin:12px auto 0 !important;
}
@media(max-width:760px){
  .visual-hero{
    margin-top:10px !important;
  }
}

/* Hero banner touches navigation bar with no gap */
.visual-hero{
  margin-top:0 !important;
}
@media(max-width:760px){
  .visual-hero{
    margin-top:0 !important;
  }
}

/* Exact approved visual-mockup hero */
.visual-hero{
  width:min(1024px,100%) !important;
  aspect-ratio:1024 / 219 !important;
  height:auto !important;
  margin:0 auto !important;
  padding:0 !important;
  overflow:hidden !important;
  position:relative !important;
  top:auto !important;
  left:auto !important;
  right:auto !important;
  transform:none !important;
}
.visual-hero img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  min-width:0 !important;
  object-fit:fill !important;
  object-position:center !important;
  margin:0 !important;
  padding:0 !important;
  transform:none !important;
}
@media(max-width:760px){
  .visual-hero{
    margin-top:0 !important;
    aspect-ratio:1024 / 219 !important;
  }
}

/* Independent navigation logo that overhangs the hero */
.site-header{
  position:relative !important;
  z-index:30 !important;
  overflow:visible !important;
  background:#07131e !important;
}

.nav-inner{
  position:relative !important;
  height:92px !important;
  min-height:92px !important;
  overflow:visible !important;
  padding-left:220px !important;
}

.site-logo{
  position:absolute !important;
  z-index:50 !important;
  left:18px !important;
  top:2px !important;
  width:188px !important;
  height:118px !important;
  display:flex !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  overflow:visible !important;
  background:transparent !important;
  transform:none !important;
}

.site-logo img{
  display:block !important;
  width:180px !important;
  height:auto !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:contain !important;
  background:transparent !important;
}

.main-navigation{
  margin-left:0 !important;
  position:relative !important;
  z-index:40 !important;
}

.visual-hero{
  position:relative !important;
  z-index:1 !important;
  margin-top:0 !important;
}

/* Allow the logo to extend into the hero without moving the hero itself. */
.visual-hero,
.visual-hero img{
  overflow:visible !important;
}

@media(max-width:900px) and (min-width:761px){
  .nav-inner{
    padding-left:185px !important;
    height:86px !important;
    min-height:86px !important;
  }
  .site-logo{
    left:12px !important;
    top:2px !important;
    width:160px !important;
    height:108px !important;
  }
  .site-logo img{
    width:154px !important;
  }
}

@media(max-width:760px){
  .nav-inner{
    padding-left:12px !important;
    height:74px !important;
    min-height:74px !important;
  }
  .site-logo{
    left:12px !important;
    top:2px !important;
    width:145px !important;
    height:94px !important;
  }
  .site-logo img{
    width:138px !important;
  }
  .nav-toggle{
    margin-left:auto !important;
  }
}

/* Approved mockup hero geometry — exact 1024 x 219 crop, no distortion */
.visual-hero{width:min(1024px,100%) !important;aspect-ratio:1024/219 !important;margin:0 auto !important;padding:0 !important;overflow:hidden !important;}
.visual-hero img{display:block !important;width:100% !important;height:100% !important;object-fit:fill !important;object-position:center !important;margin:0 !important;padding:0 !important;}
