@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,700;0,800;1,800&family=DM+Sans:wght@400;500;600;700&display=swap');

:root { color-scheme: light; --navy:#101b50; --deep:#07164f; --pink:#ff88d7; --blue:#1e2b9d; --purple:#7016a4; --fuchsia:#e900a8; --paper:#faf6ff; --display:"Barlow Condensed","Arial Narrow",sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--navy); background:var(--paper); font-family:"DM Sans",system-ui,sans-serif; line-height:1.55; }
a { color:inherit; }
a:focus-visible { outline:3px solid #dd53a5; outline-offset:5px; }
.skip { position:absolute; top:8px; left:8px; z-index:3; padding:10px; background:white; transform:translateY(-150%); }
.skip:focus { transform:none; }
.wrap { width:min(1160px, 90%); margin-inline:auto; }
.header, footer { background:var(--deep); color:white; }
.nav, .footer { display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:76px; }
.brand { display:inline-flex; align-items:center; gap:8px; font:800 italic 40px/1 var(--display); color:white; text-decoration:none; letter-spacing:-.035em; }
.brand span { color:var(--pink); }
.emblem { position:relative; aspect-ratio:1; overflow:hidden; border-radius:50%; flex-shrink:0; }
.emblem img { position:absolute; top:50%; left:50%; width:130.8%; height:auto; transform:translate(-50%,-50%); }
.emblem-small { width:39px; }
nav { display:flex; gap:32px; }
nav a { text-decoration:none; font-size:.95rem; font-weight:600; }
nav a:hover, footer a:hover { color:var(--pink); }
.button { display:inline-flex; align-items:center; justify-content:center; gap:14px; padding:13px 21px; min-height:46px; border:1px solid transparent; background:var(--pink); color:var(--deep); font-weight:700; text-decoration:none; transition:background .18s,color .18s; }
.button:hover { background:#ffc2ea; }
.button.outline { border-color:#ffffff90; color:white; background:#10193645; }
.button.outline:hover { background:white; color:var(--deep); }
.button.blue { color:white; background:var(--blue); }
.button.blue:hover { background:#1f3288; }
.hero { position:relative; isolation:isolate; display:grid; align-items:center; min-height:min(690px, 85svh); color:white; background:#1c2851 url('terrain.jpg') center 58%/cover no-repeat; }
.hero::before { content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(110deg,#06164ff5 8%,#211268de 43%,#7314a5ba 72%,#e900a8a6); }
.hero-content { display:grid; grid-template-columns:1.15fr .85fr; align-items:center; gap:24px; padding-block:70px 82px; }
.hero-emblem { width:min(100%,390px); justify-self:center; box-shadow:0 18px 60px #07093166; }
.eyebrow { margin:0 0 14px; font-size:.75rem; font-weight:800; letter-spacing:.15em; text-transform:uppercase; display:flex; gap:10px; align-items:center; }
.eyebrow span { width:22px; height:3px; background:var(--fuchsia); }
.hero .eyebrow span,.contact .eyebrow span { background:var(--pink); }
h1,h2,h3 { font-family:var(--display); margin:0; line-height:.94; }
h1 { font-size:clamp(3.65rem, 9.5vw, 8rem); letter-spacing:-.026em; font-weight:800; }
h1 em { color:var(--pink); }
.hero-copy { max-width:390px; font-size:1.13rem; margin:24px 0; }
.actions { display:flex; flex-wrap:wrap; gap:12px; }
.image-note { position:absolute; right:5%; bottom:10px; margin:0; font-size:.72rem; color:#fff; }
.practice,.matches,.contact { padding:clamp(56px,8vw,100px) 0; }
h2 { font-size:clamp(3.1rem,6.8vw,5.5rem); letter-spacing:-.025em; }
.cards { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:34px; }
.cards article { background:white; border-top:4px solid var(--blue); padding:27px 24px; }
.cards article:nth-child(2) { border-color:var(--fuchsia); }
.tag { color:var(--purple); font-weight:700; font-size:.78rem; }
h3 { margin-top:10px; font-size:2.3rem; }
.cards p { margin-bottom:0; max-width:28ch; }
.matches { background:linear-gradient(115deg,#e2e7ff,#fbe2fa); }
.split { display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(22px,7vw,100px); align-items:center; }
.split p:not(.eyebrow) { max-width:46ch; margin:18px 0 24px; }
.contact { background:linear-gradient(115deg,var(--deep),#301273 70%,#621486); color:white; }
.location { border:1px solid #ffffff46; border-left:4px solid var(--pink); padding:28px; }
.location h3 { margin-top:0; }
address { margin:15px 0; font-style:normal; }
.location a { color:var(--pink); font-weight:700; text-underline-offset:4px; }
.footer { font-size:.83rem; min-height:96px; }
.footer p { margin:0; }
.footer .brand { font-size:31px; }
@media (max-width:760px) {
  .cards { grid-template-columns:1fr; gap:12px; }
  .cards p { max-width:unset; }
  .split { grid-template-columns:1fr; }
  .header-action { display:none; }
  .hero-content { grid-template-columns:1fr; gap:20px; padding-block:32px 54px; }
  .hero-emblem { grid-row:1; width:clamp(100px,27vw,165px); justify-self:start; }
  .emblem-small { width:32px; }
  .hero { background-position:63% center; }
  .footer { flex-wrap:wrap; justify-content:flex-start; padding-block:22px; gap:10px 18px; }
}
@media (max-width:390px) {
  nav { gap:13px; }
  .nav { gap:8px; }
  .actions .button { font-size:.84rem; padding-inline:12px; gap:7px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .button { transition:none; }
}

.hero-town {
  display:inline-block;
  font-size:.9em;
  font-style:italic;
  text-shadow:3px 4px 0 #09113f;
}
.camp {
  padding:clamp(50px,7vw,88px) 0;
  background:linear-gradient(120deg,#0b154c 12%,#231254 65%,#531270);
  color:white;
}
.camp-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,.64fr);
  align-items:center;
  gap:clamp(24px,7vw,92px);
}
.camp h2 em { color:var(--pink); }
.camp p:not(.eyebrow) { max-width:52ch; }
.camp-details {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px 22px;
  margin:24px 0;
}
.camp-details div { border-top:1px solid #ffffff50; padding-top:10px; }
.camp-details dt { color:var(--pink); font-size:.82rem; font-weight:700; }
.camp-details dd { margin:2px 0 0; }
.camp-included { margin-bottom:20px; }
.camp-poster { display:block; width:min(100%,365px); justify-self:center; }
.camp-poster img { display:block; width:100%; height:auto; border:1px solid #ffffff50; }
@media (max-width:760px) {
  .camp-layout { grid-template-columns:1fr; }
  .camp-poster { justify-self:start; }
}

.match-feature {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,280px);
  align-items:center;
  gap:clamp(20px,5vw,65px);
  margin-top:32px;
  padding:clamp(20px,4vw,44px);
  background:linear-gradient(120deg,var(--deep),#32146e);
  color:white;
}
.match-feature .eyebrow span { background:var(--pink); }
.match-feature h3 { font-size:clamp(2.6rem,6vw,4.7rem); }
.match-feature p:last-child { margin-bottom:0; }
.match-poster { display:block; width:min(100%,280px); }
.match-poster img { display:block; width:100%; height:auto; }
@media (max-width:640px) {
  .match-feature { grid-template-columns:1fr; }
}

.club-social {
  margin-top:32px;
  padding-top:24px;
  border-top:1px solid #ffffff46;
}
.club-social h3 { font-size:1.8rem; }
.club-social ul {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:14px 0 0;
  padding:0;
  list-style:none;
}

.selection { padding-block:clamp(24px,5vw,64px); }
.selection .match-feature { margin-top:0; }
.selection h2 { font-size:clamp(2.75rem,6vw,5rem); }
.selection img { height:auto; }
.weekend-heading { margin-top:38px; }
.weekend-heading + .match-feature { margin-top:20px; }

.gallery { padding:clamp(50px,7vw,90px) 0; }
.gallery-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(10px,2vw,22px);
  list-style:none;
  padding:0;
  margin:28px 0 0;
}
.gallery-grid a { display:block; background:var(--deep); }
.gallery-grid img { display:block; width:100%; aspect-ratio:4 / 3; height:auto; object-fit:contain; }
.gallery-viewer {
  max-width:94vw;
  max-height:94dvh;
  padding:12px;
  border:0;
  background:var(--deep);
  color:white;
}
.gallery-viewer::backdrop { background:#04091ee8; }
.gallery-viewer form { display:flex; justify-content:flex-end; margin-bottom:10px; }
.gallery-viewer img { display:block; max-width:100%; max-height:calc(94dvh - 80px); object-fit:contain; }
@media (max-width:480px) {
  .gallery-grid { grid-template-columns:1fr; }
  .nav nav { flex-wrap:wrap; justify-content:flex-end; gap:4px 13px; }
}

.partners {
  padding:clamp(50px,7vw,88px) 0;
  background:linear-gradient(115deg,#e2e7ff,#fbe2fa);
}
.partners h2 { font-size:clamp(2.8rem,6vw,5rem); }
@media (max-width:980px) {
  .nav nav { flex-wrap:wrap; justify-content:flex-end; gap:4px 16px; }
}

.partners .split { grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); align-items:start; gap:clamp(20px,5vw,68px); }
.partner-form { display:grid; gap:12px; padding:clamp(15px,3vw,30px); background:white; }
.partner-form label { display:grid; gap:4px; font-weight:700; min-width:0; }
.partner-form label[hidden] { display:none; }
.partner-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.partner-form input,.partner-form select,.partner-form textarea {
  width:100%; padding:9px; font:inherit; font-weight:400; color:inherit;
  border:1px solid #666d91; background:white;
}
.partner-form .button { justify-self:start; cursor:pointer; font:inherit; font-weight:700; }
.partner-form .button:disabled { opacity:.65; cursor:wait; }
.partner-result:empty { display:none; }
.partner-result { font-weight:700; }
.partner-admin { padding-block:30px; }
.partner-admin h1 { font-size:clamp(2.4rem,6vw,5rem); margin:20px 0; }
.partner-admin article { margin-block:14px; padding:20px; background:white; }
.partner-admin h2 { font-size:2rem; }
.partner-equipment { white-space:pre-wrap; overflow-wrap:anywhere; }
@media (max-width:760px) { .partners .split { grid-template-columns:minmax(0,1fr); } }
@media (max-width:430px) { .partner-fields { grid-template-columns:1fr; } }
