/** Hive5 design tokens shared across custom theme templates. */
:root {
	--h5-primary: #44CCC8;
	--h5-yellow: #FFD015;
	--h5-blue: #275AB1;
	--h5-navy: #0C3883;
	--h5-text: #515151;
	--h5-coral: #EF5C62;
	--h5-green: #02B784;
	--h5-pink: #FF9FC2;
	--h5-orange: #FF7744;
	--h5-white: #FFFFFF;
	--h5-light: #F7FBFF;
	--h5-line: #DCE7F2;
	--h5-shadow: 0 18px 44px rgba(12,56,131,.10);
	--h5-radius-input: 12px;
	--h5-radius-card: 20px;
	--h5-radius-panel: 24px;
	--h5-content: 1180px;
}

.h5-theme-page *,
.h5-theme-page *::before,
.h5-theme-page *::after { box-sizing: border-box; }

.h5-theme-page {
	font-family: Metropolis, Arial, Helvetica, sans-serif;
	color: var(--h5-text);
	background: #fff;
}


/* --------------------------------------------------------------------------
 * Hive5 custom responsive footer
 * ----------------------------------------------------------------------- */
.h5-custom-footer-enabled #colophon,
.h5-custom-footer-enabled footer.site-footer:not(.h5-site-footer) { display:none !important; }

.h5-site-footer { position:relative; overflow:hidden; margin-top:0; background:linear-gradient(135deg,#071f4a 0%,#0c3883 100%); color:#fff; font-family:Metropolis,Arial,Helvetica,sans-serif; }
.h5-footer-shell { position:relative; z-index:2; width:min(1180px,calc(100% - 48px)); margin:0 auto; padding:52px 0 0; }
.h5-footer-grid { display:grid; grid-template-columns:1.35fr .82fr .92fr 1.12fr 1.5fr; gap:32px; align-items:start; }
.h5-footer-logo img { display:block; width:min(220px,100%); height:auto; filter:none; }
.h5-footer-tagline { margin-top:7px; font-size:11px; line-height:1.4; letter-spacing:2px; text-transform:uppercase; opacity:.92; }
.h5-footer-brand p,.h5-footer-loop p,.h5-footer-visit p { color:rgba(255,255,255,.88); line-height:1.55; }
.h5-footer-brand p { max-width:270px; margin:20px 0 18px; }
.h5-site-footer h2 { position:relative; margin:0 0 20px; color:#fff; font-family:"Cantora One",Metropolis,sans-serif; font-size:20px; line-height:1.2; }
.h5-site-footer h2::after { content:""; display:block; width:28px; height:4px; margin-top:7px; border-radius:10px; background:#ffd015; }
.h5-footer-links ul { list-style:none; margin:0; padding:0; }
.h5-footer-links li { margin:0 0 10px; }
.h5-site-footer a { color:#fff; text-decoration:none; }
.h5-site-footer a:hover,.h5-site-footer a:focus { color:#ffd015; }
.h5-footer-socials { display:flex; gap:10px; flex-wrap:wrap; }
.h5-footer-social { display:grid; place-items:center; width:38px; height:38px; border-radius:50%; background:rgba(68,204,200,.18); border:1px solid rgba(255,255,255,.15); font-weight:700; }
.h5-footer-visit p { margin:0 0 11px; }
.h5-footer-hours { white-space:normal; }
.h5-footer-directions { display:inline-block; margin-top:3px; color:#ffd015 !important; font-weight:700; }
.h5-footer-shortcode { margin-top:14px; }
.h5-footer-shortcode input[type="email"],.h5-footer-shortcode input[type="text"] { width:100%; min-height:44px; border:0; border-radius:10px; padding:0 13px; }
.h5-footer-shortcode input[type="submit"],.h5-footer-shortcode button { min-height:44px; border:0; border-radius:10px; padding:0 18px; background:#ffd015; color:#0c3883; font-weight:800; }
.h5-footer-photo-row { display:flex; align-items:flex-end; gap:10px; margin-top:22px; }
.h5-footer-photo { width:86px; aspect-ratio:1/1; overflow:hidden; clip-path:polygon(25% 6.7%,75% 6.7%,100% 50%,75% 93.3%,25% 93.3%,0% 50%); background:rgba(255,255,255,.08); }
.h5-footer-photo:nth-child(2) { width:98px; }
.h5-footer-photo img { width:100%; height:100%; object-fit:cover; display:block; }
.h5-footer-bottom { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-top:36px; padding:20px 0; border-top:1px solid rgba(255,255,255,.16); color:rgba(255,255,255,.82); font-size:13px; }
.h5-footer-bottom nav { display:flex; gap:24px; flex-wrap:wrap; justify-content:flex-end; }

.h5-footer-hex { position:absolute; pointer-events:none; aria-hidden:true; }
.h5-footer-hex--outline-one { width:100px; height:86px; top:24px; right:-26px; border:2px solid rgba(255,255,255,.52); clip-path:polygon(25% 0%,75% 0%,100% 50%,75% 100%,25% 100%,0% 50%); opacity:.55; }
.h5-footer-hex--yellow { width:23px; height:20px; top:104px; right:72px; background:#ffd015; clip-path:polygon(25% 0%,75% 0%,100% 50%,75% 100%,25% 100%,0% 50%); opacity:.95; }
.h5-footer-hex--dark { width:96px; height:84px; left:-22px; bottom:20px; background:rgba(39,90,177,.28); clip-path:polygon(25% 0%,75% 0%,100% 50%,75% 100%,25% 100%,0% 50%); }

@media (max-width:1100px) {
  .h5-footer-grid { grid-template-columns:1.25fr 1fr 1fr; }
  .h5-footer-loop { grid-column:2 / 4; }
}
@media (max-width:767px) {
  .h5-footer-shell { width:min(100% - 30px,1180px); padding-top:38px; }
  .h5-footer-grid { grid-template-columns:1fr 1fr; gap:30px 22px; }
  .h5-footer-brand,.h5-footer-loop { grid-column:1 / -1; }
  .h5-footer-photo-row { max-width:320px; }
  .h5-footer-bottom { align-items:flex-start; flex-direction:column; }
  .h5-footer-bottom nav { justify-content:flex-start; gap:16px; }
  .h5-footer-hex--outline-one { width:72px; height:62px; opacity:.28; }
}
@media (max-width:520px) {
  .h5-footer-grid { grid-template-columns:1fr; }
  .h5-footer-brand,.h5-footer-loop { grid-column:auto; }
  .h5-footer-photo-row { gap:7px; }
  .h5-footer-photo { width:72px; }
  .h5-footer-photo:nth-child(2) { width:82px; }
  .h5-footer-hex--dark { display:none; }
}

/* v0.5.1 — scrolling + subtle parallax STEM line-art accents */
html,body{position:relative}
.h5-global-stem-decor{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:18;
  pointer-events:none;
  overflow:hidden;
  user-select:none;
}
.h5-stem-decor{
  position:absolute;
  display:block;
  aspect-ratio:1;
  background:var(--h5-stem-color,#44CCC8);
  opacity:var(--h5-stem-opacity,.055);
  -webkit-mask-image:var(--h5-stem-mask);
  mask-image:var(--h5-stem-mask);
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  -webkit-mask-position:center;
  mask-position:center;
  -webkit-mask-size:contain;
  mask-size:contain;
  transform:translate3d(0,var(--h5-parallax-y,0px),0) rotate(var(--h5-stem-rotate,0deg));
  will-change:transform;
  pointer-events:none;
}
.site-header,#masthead,.mobile-navigation,.drawer-navigation,dialog,.woocommerce-store-notice{position:relative;z-index:30}

/* Irregular placement across the whole page, not only edges. */
.h5-stem--1  {top:4%;  left:4%;  width:70px; --h5-stem-color:#44CCC8; --h5-stem-opacity:.11; --h5-stem-rotate:-10deg; --h5-speed:.035}
.h5-stem--2  {top:13%; right:17%; width:44px; --h5-stem-color:#FFD015; --h5-stem-opacity:.13; --h5-stem-rotate:7deg; --h5-speed:.055}
.h5-stem--3  {top:25%; left:31%; width:86px; --h5-stem-color:#275AB1; --h5-stem-opacity:.085; --h5-stem-rotate:5deg; --h5-speed:.028}
.h5-stem--4  {top:37%; right:5%; width:58px; --h5-stem-color:#FF9FC2; --h5-stem-opacity:.11; --h5-stem-rotate:-16deg; --h5-speed:.047}
.h5-stem--5  {top:48%; left:12%; width:50px; --h5-stem-color:#02B784; --h5-stem-opacity:.11; --h5-stem-rotate:12deg; --h5-speed:.032}
.h5-stem--6  {top:58%; right:35%; width:78px; --h5-stem-color:#FF7744; --h5-stem-opacity:.09; --h5-stem-rotate:-5deg; --h5-speed:.060}
.h5-stem--7  {top:69%; left:52%; width:94px; --h5-stem-color:#0C3883; --h5-stem-opacity:.075; --h5-stem-rotate:16deg; --h5-speed:.025}
.h5-stem--8  {top:79%; right:10%; width:54px; --h5-stem-color:#44CCC8; --h5-stem-opacity:.10; --h5-stem-rotate:9deg; --h5-speed:.050}
.h5-stem--9  {top:88%; left:19%; width:42px; --h5-stem-color:#FFD015; --h5-stem-opacity:.095; --h5-stem-rotate:-13deg; --h5-speed:.038}
.h5-stem--10 {top:95%; right:43%; width:66px; --h5-stem-color:#275AB1; --h5-stem-opacity:.08; --h5-stem-rotate:4deg; --h5-speed:.058}

/* Homepage is visually busy, so decorations remain a touch lighter. */
body.page-template-page-hive5-home .h5-stem-decor,
body.home .h5-stem-decor{opacity:calc(var(--h5-stem-opacity,.095) * .95)}

@media(max-width:1023px){
  .h5-stem--3,.h5-stem--6,.h5-stem--9{display:none}
  .h5-stem-decor{opacity:calc(var(--h5-stem-opacity,.055) * .82)}
}
@media(max-width:767px){
  .h5-stem--2,.h5-stem--4,.h5-stem--5,.h5-stem--7,.h5-stem--8,.h5-stem--10{display:none}
  .h5-stem--1{top:12%;left:4%;width:50px;--h5-stem-opacity:.085}
  .h5-stem--3{display:block;top:48%;left:auto;right:7%;width:56px;--h5-stem-opacity:.07}
  .h5-stem--6{display:block;top:82%;left:10%;right:auto;width:54px;--h5-stem-opacity:.065}
}
@media(prefers-reduced-motion:reduce){
  .h5-stem-decor{transform:rotate(var(--h5-stem-rotate,0deg))!important;will-change:auto}
}
@media print{.h5-global-stem-decor{display:none!important}}

/* v0.5.3 managed design system for all custom Hive5 pages */
.h5-theme-page,.h5-clubs-page{
  font-family:var(--h5-body-font,Metropolis,Arial,sans-serif);
  font-size:var(--h5-body-size,16px);
  font-weight:var(--h5-body-weight,400);
  color:var(--h5-text,#515151);
}
.h5-theme-page h1,.h5-theme-page h2,.h5-theme-page h3,
.h5-clubs-page h1,.h5-clubs-page h2,.h5-clubs-page h3{
  font-family:var(--h5-heading-font,"Cantora One","Trebuchet MS",sans-serif);
  color:var(--h5-page-heading-color,var(--h5-heading-color,#0C3883)) !important;
}

.h5-theme-page .h5-home-btn,.h5-clubs-page .h5-clubs-btn{
  border-radius:var(--h5-button-radius,12px) !important;
  font-size:var(--h5-btn-font-size,16px) !important;
  font-weight:var(--h5-btn-font-weight,700) !important;
  padding:var(--h5-btn-pad-y,14px) var(--h5-btn-pad-x,24px) !important;
}
.h5-home .h5-home-btn--primary,
.h5-home .h5-home-btn--secondary,
.h5-clubs-page .h5-clubs-btn:not(.h5-clubs-btn--outline):not(.h5-clubs-btn--dark){
  background:var(--h5-page-btn-bg,var(--h5-btn-bg,#44CCC8)) !important;
  color:var(--h5-page-btn-text,var(--h5-btn-text,#fff)) !important;
  border:var(--h5-btn-border-width,0) solid var(--h5-btn-border,#44CCC8) !important;
}
.h5-home .h5-home-btn--primary:hover,
.h5-home .h5-home-btn--secondary:hover,
.h5-clubs-page .h5-clubs-btn:not(.h5-clubs-btn--outline):not(.h5-clubs-btn--dark):hover{
  background:var(--h5-page-btn-hover-bg,var(--h5-btn-hover-bg,#FFD015)) !important;
  color:var(--h5-page-btn-hover-text,var(--h5-btn-hover-text,#0C3883)) !important;
}
.h5-home .h5-home-btn--outline,.h5-clubs-page .h5-clubs-btn--outline{
  background:var(--h5-page-outline-bg,var(--h5-outline-bg,#fff)) !important;
  color:var(--h5-page-outline-text,var(--h5-outline-text,#275AB1)) !important;
  border:var(--h5-outline-border-width,2px) solid var(--h5-page-outline-border,var(--h5-outline-border,#275AB1)) !important;
}
.h5-home .h5-home-btn--outline:hover,.h5-clubs-page .h5-clubs-btn--outline:hover{
  background:var(--h5-page-outline-hover-bg,var(--h5-outline-hover-bg,#275AB1)) !important;
  color:var(--h5-page-outline-hover-text,var(--h5-outline-hover-text,#fff)) !important;
  border-color:var(--h5-page-outline-hover-border,var(--h5-outline-hover-border,#275AB1)) !important;
}



/* v0.5.10 — canonical typography for every Hive5 custom-designed page.
   Page templates must not own H1/H2/H3 sizes. */
.h5-theme-page h1,
.h5-clubs-page h1{
  font-family:var(--h5-heading-font,var(--global-heading-font-family,inherit)) !important;
  font-size:var(--h5-h1-size,58px) !important;
  line-height:var(--h5-h1-line,1.05) !important;
  font-weight:var(--h5-heading-weight,700) !important;
}
.h5-theme-page h2,
.h5-clubs-page h2{
  font-family:var(--h5-heading-font,var(--global-heading-font-family,inherit)) !important;
  font-size:var(--h5-h2-size,42px) !important;
  line-height:var(--h5-h2-line,1.12) !important;
  font-weight:var(--h5-heading-weight,700) !important;
}
.h5-theme-page h3,
.h5-clubs-page h3{
  font-family:var(--h5-heading-font,var(--global-heading-font-family,inherit)) !important;
  font-size:var(--h5-h3-size,28px) !important;
  line-height:var(--h5-h3-line,1.15) !important;
  font-weight:var(--h5-heading-weight,700) !important;
}

/* Responsive scaling is shared globally rather than rewritten per page. */
@media(max-width:767px){
  .h5-theme-page h1,
  .h5-clubs-page h1{font-size:calc(var(--h5-h1-size,58px) * .72) !important}
  .h5-theme-page h2,
  .h5-clubs-page h2{font-size:calc(var(--h5-h2-size,42px) * .80) !important}
  .h5-theme-page h3,
  .h5-clubs-page h3{font-size:calc(var(--h5-h3-size,28px) * .88) !important}
}


/* Hive5 v0.5.45 — shared program product-card refinements.
   Scoped to live WooCommerce listings; preserves the frozen global design system. */
.h5-camps-page .h5-camps-live-card,
.h5-after-page .h5-after-live-card,
.h5-membership-page .h5-membership-plan-card {
  transition: box-shadow .2s ease, transform .2s ease;
}
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  .h5-camps-page .h5-camps-live-card:hover,
  .h5-after-page .h5-after-live-card:hover,
  .h5-membership-page .h5-membership-plan-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 36px rgba(12,56,131,.12);
  }
}
.h5-camps-page .h5-camps-live-body h3,
.h5-after-page .h5-after-live-body h3,
.h5-membership-page .h5-membership-plan-body h3 {
  font-size: clamp(19px,1.65vw,23px);
  line-height:1.27;
  overflow-wrap:break-word;
}
.h5-camps-page .h5-camps-live-body > p,
.h5-after-page .h5-after-live-body > p,
.h5-membership-page .h5-membership-plan-body > p {
  line-height:1.6;
}
.h5-camps-page .h5-camps-live-body .h5-camps-btn,
.h5-after-page .h5-after-live-body .h5-after-btn,
.h5-membership-page .h5-membership-plan-body .h5-membership-btn {
  min-height:44px;
  justify-content:center;
  text-align:center;
}
.h5-camps-page .h5-camps-live-body a:focus-visible,
.h5-after-page .h5-after-live-body a:focus-visible,
.h5-membership-page .h5-membership-plan-body a:focus-visible,
.h5-clubs-page .h5-club-card a:focus-visible {
  outline:3px solid #0C3883;
  outline-offset:3px;
}
.h5-camps-page .h5-camps-live-media img,
.h5-after-page .h5-after-live-media img,
.h5-membership-page .h5-membership-plan-media img {
  object-position:center;
}
@media (max-width:767px) {
  .h5-camps-page .h5-camps-live-body .h5-camps-btn,
  .h5-after-page .h5-after-live-body .h5-after-btn,
  .h5-membership-page .h5-membership-plan-body .h5-membership-btn {
    width:100%;
  }
}

/* v0.5.50: contained, responsive footer */
@media(max-width:767px){
.h5-footer-shell,.h5-footer-grid,.h5-footer-grid>*{min-width:0}
.h5-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 18px}
.h5-footer-grid>*{max-width:100%}
.h5-footer-grid .h5-footer-brand,.h5-footer-grid .h5-footer-loop{grid-column:1/-1}
.h5-footer-links a,.h5-footer-brand p,.h5-footer-visit p{overflow-wrap:anywhere}
.h5-footer-bottom,.h5-footer-bottom nav{max-width:100%;min-width:0}
}
@media(max-width:520px){
.h5-footer-grid{grid-template-columns:minmax(0,1fr)}
.h5-footer-grid>*,.h5-footer-grid .h5-footer-brand,.h5-footer-grid .h5-footer-loop{grid-column:1;min-width:0}
.h5-footer-shell{width:calc(100% - 36px);margin-left:auto;margin-right:auto}
}
