
/* V5 foundation: preserve the original brand concept, separate desktop/mobile compositions. */
html,body,button,input,textarea,select,a{font-family:'Nunito','Nunito Local',sans-serif!important}
body{font-weight:400}

/* Preloader */
.site-preloader{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:#fff;transition:opacity .35s ease,visibility .35s ease}
.site-preloader.is-hidden{opacity:0;visibility:hidden;pointer-events:none}
.site-preloader__spinner{position:relative;width:66px;height:66px;animation:preloader-spin 1.1s linear infinite}
.site-preloader__spinner span{position:absolute;inset:0;border:7px solid transparent;border-top-color:var(--blue);border-radius:50%}
.site-preloader__spinner span:last-child{inset:9px;border-width:6px;border-top-color:var(--green);animation:preloader-spin-reverse .8s linear infinite}
@keyframes preloader-spin{to{transform:rotate(360deg)}}
@keyframes preloader-spin-reverse{to{transform:rotate(-720deg)}}

/* Clean, perfectly concentric hero wheel photo. */
.ref-feature-wheel__photo{box-sizing:border-box;padding:9px;border:4px solid var(--ref-blue);outline:4px solid var(--ref-green);outline-offset:7px;overflow:visible}
.ref-feature-wheel__photo::after{display:none}
.ref-feature-wheel__photo img{border-radius:50%;object-fit:cover;overflow:hidden}

/* Program tabs alternate blue and green exactly like the main navigation concept. */
.ref-program-tab:hover,.ref-program-tab[aria-selected="true"]{color:#fff}
.ref-program-tab:nth-child(odd):hover,.ref-program-tab:nth-child(odd)[aria-selected="true"]{background:var(--ref-blue)}
.ref-program-tab:nth-child(even):hover,.ref-program-tab:nth-child(even)[aria-selected="true"]{background:var(--ref-green)}
.ref-program-tab:focus-visible{outline:3px solid rgba(77,93,250,.25);outline-offset:2px}

/* One shared shift component on both pages. */
.shared-shifts-section{padding-top:18px}
.shared-shifts{width:min(980px,100%);padding:38px 42px 42px}
.shared-shifts .ref-card-title p{max-width:760px;margin-top:18px;padding:15px 22px;border-radius:16px;color:#855600;background:#fff1c9;font-size:14px;font-weight:800}
.shared-shifts .ref-shift-list{display:grid;gap:14px;margin-top:32px}
.shared-shifts .ref-shift{padding:22px 26px;border:0;border-left:7px solid var(--ref-blue);border-radius:28px;background:#fff;box-shadow:0 12px 30px rgba(0,0,0,.11)}
.shared-shifts .ref-shift--green{border-left-color:var(--ref-green)}
.shared-shifts .ref-shift h3{font-size:25px}
.shared-shifts .ref-shift__price strong{color:var(--ref-blue);font-size:24px}
.shared-shifts .ref-shift--green .ref-shift__price strong{color:var(--ref-green)}
.shared-shifts .status{display:inline-flex;width:max-content;margin-top:10px;padding:5px 11px;border-radius:999px;color:#805400;background:#fff0bd;font-size:12px;font-weight:800}
.shared-shifts .status--full{color:#555;background:#ececec}

/* Territory desktop layout: no mobile rail and no foreign numeric icons. */
.ref-territory-desktop{display:block}
.ref-territory-mobile{display:none}
.ref-territory-grid{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px 28px;max-width:790px;margin:0 auto}
.ref-territory-grid::before{content:'';position:absolute;left:50%;top:12px;bottom:12px;width:3px;transform:translateX(-50%);border-radius:3px;background:linear-gradient(to bottom,var(--ref-green),var(--ref-blue),var(--ref-green))}
.ref-territory-grid article{position:relative;display:flex;align-items:center;gap:15px;min-height:105px;padding:16px 20px;border-radius:20px;background:#fff;box-shadow:0 8px 22px rgba(0,0,0,.1)}
.ref-territory-grid article:nth-child(even){transform:translateY(34px)}
.ref-territory-grid img{flex:0 0 54px;width:54px;height:54px;object-fit:contain}
.ref-territory-grid h3{margin:0;font-size:17px;font-weight:900}
.ref-territory-grid p{margin:5px 0 0;font-size:13px;font-weight:500;line-height:1.38}
.ref-territory-bottom{display:block;margin-top:86px;padding:34px 38px}
.ref-territory-bottom>div{width:100%}
.ref-territory-bottom .ref-tags{max-width:720px}

/* Contacts: paired map/text blocks have strictly equal heights. */
.contact-office-card,.contact-camp-card{align-items:stretch}
.contact-map-wrap,.camp-map-wrap{display:flex;min-width:0;height:100%}
.contact-map{flex:1 1 auto;width:100%;height:100%!important;min-height:490px;aspect-ratio:auto!important;border-radius:26px}
.office-details,.contact-details{height:100%;min-height:490px}
.contact-camp-card .contact-details,.contact-camp-card .camp-map-wrap{min-height:430px}
.contact-camp-card .contact-map{min-height:430px}
.contact-social-card a{display:grid;place-items:center}
.contact-social-card img{object-fit:contain}

/* Discount cards must never overflow the viewport. */
.discount-grid{grid-template-columns:repeat(2,minmax(0,1fr));width:min(100%,980px)}
.discount-card{grid-template-columns:84px minmax(0,1fr);min-width:0}
.discount-card p{min-width:0;overflow-wrap:anywhere}

/* MAX icon keeps its natural proportions. */
.header-social img[src*="max.png"]{width:27px;height:27px;border-radius:8px}
.social-link img[src*="max.png"]{width:30px;height:30px;border-radius:8px}
.contact-social-card img[src*="max.png"]{width:72px;height:72px;border-radius:18px}

/* Lighter, subtle animation defaults. */
.wow{visibility:hidden}
@media (prefers-reduced-motion:reduce){.wow{visibility:visible!important;animation:none!important}.site-preloader__spinner{animation:none}}

@media (max-width:1050px){
  .contact-map,.office-details,.contact-details{min-height:420px}
  .contact-camp-card .contact-details,.contact-camp-card .camp-map-wrap,.contact-camp-card .contact-map{min-height:390px}
}

@media (max-width:780px){
  .ref-feature-wheel__photo{outline-width:3px;outline-offset:5px;padding:7px;border-width:3px}
  .shared-shifts{padding:27px 20px}
  .shared-shifts .ref-card-title h2{font-size:28px}
  .shared-shifts .ref-card-title strong{font-size:16px}
  .shared-shifts .ref-card-title p{padding:13px 15px;font-size:13px}
  .shared-shifts .ref-shift{grid-template-columns:1fr;padding:20px;border-radius:22px}
  .shared-shifts .ref-shift__price{text-align:left}
  .shared-shifts .ref-shift__price strong{font-size:21px}

  /* On mobile use the original vertical pictogram rail; desktop cards are hidden. */
  .ref-territory-desktop{display:none}
  .ref-territory-mobile{display:grid;grid-template-columns:42px minmax(0,1fr);gap:14px;align-items:stretch}
  .ref-territory-mobile__rail{display:block;width:36px;height:auto;margin:6px auto 0;align-self:start;object-fit:contain;object-position:center top}
  .ref-territory-mobile__cards{display:grid;gap:12px}
  .ref-territory-mobile__cards article{min-height:96px;padding:17px 18px;border-radius:18px;background:#fff;box-shadow:0 7px 20px rgba(0,0,0,.09)}
  .ref-territory-mobile__cards h3{margin:0;font-size:16px;font-weight:900}
  .ref-territory-mobile__cards p{margin:5px 0 0;font-size:12px;line-height:1.38}
  .ref-territory-bottom{margin-top:26px;padding:25px 20px}

  .contact-map-wrap{order:initial}
  .contact-map,.office-details,.contact-details{min-height:0!important}
  .contact-office-card,.contact-camp-card{display:grid;grid-template-columns:1fr}
  .contact-map-wrap .contact-map{display:none}
  .contact-map-link{display:inline-flex;margin:0 auto 16px}
  .camp-map-wrap{display:none}
  .discount-grid{grid-template-columns:1fr}
}

@media (max-width:430px){
  .ref-territory-mobile{grid-template-columns:34px minmax(0,1fr);gap:10px}
  .ref-territory-mobile__rail{width:31px;height:auto}
  .ref-territory-mobile__cards article{padding:15px}
  .shared-shifts .ref-shift h3{font-size:22px}
}

/* Floating contact uses the optimized MAX mark rather than the old messenger artwork. */
.floating-contact{width:62px;height:62px;border-radius:18px;background:#fff;box-shadow:0 9px 25px rgba(20,28,68,.18)}
.floating-contact img{width:54px!important;height:54px!important;border-radius:15px;object-fit:contain}

/* =========================================================
   V5 visual refinement — richer brand rhythm, no foreign UI.
   ========================================================= */

/* Smooth blue/green wave bands inspired by the original concept. */
.wave-band{
  --wave-top:#f7f7f7;
  --wave-bottom:#f7f7f7;
  position:relative;
  isolation:isolate;
  padding-top:142px!important;
  padding-bottom:142px!important;
}
.wave-band::before,
.wave-band::after{
  content:"";
  position:absolute;
  left:-1%;
  z-index:1;
  width:102%;
  height:96px;
  background:var(--wave-top);
  -webkit-mask:url('../assets/images/brand/wave-mask.svg') center/100% 100% no-repeat;
  mask:url('../assets/images/brand/wave-mask.svg') center/100% 100% no-repeat;
  pointer-events:none;
}
.wave-band::before{top:-1px}
.wave-band::after{
  bottom:-1px;
  background:var(--wave-bottom);
  transform:rotate(180deg);
}
.wave-band>.container{position:relative;z-index:2}
.wave-band--blue{background:var(--ref-blue)!important;--wave-top:var(--ref-soft);--wave-bottom:var(--ref-soft)}
.wave-band--green{background:var(--ref-green)!important;--wave-top:var(--ref-soft);--wave-bottom:#fff}
.wave-band .ref-orb{display:none}
.wave-band .ref-heading__ghost{color:rgba(255,255,255,.2)}
.wave-band .ref-heading__note{color:#fff}
.wave-band .ref-heading{margin-bottom:48px}
.wave-band--blue .ref-program-card,
.wave-band--green .ref-territory-card{filter:drop-shadow(0 20px 38px rgba(18,28,74,.15))}

/* Replaces the obsolete YouTube embed with a local, interactive photo story. */
.camp-story-card{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(310px,.92fr);
  gap:16px;
  width:min(940px,100%);
  margin:38px auto 0;
  padding:16px;
  overflow:hidden;
  border-radius:34px;
  background:linear-gradient(135deg,var(--ref-blue) 0 54%,var(--ref-green) 100%);
  box-shadow:0 18px 42px rgba(24,35,92,.18);
}
.camp-story-card__visual{min-width:0}
.camp-story-stage{
  position:relative;
  height:100%;
  min-height:510px;
  margin:0;
  overflow:hidden;
  border-radius:24px;
  background:#dfe4ff;
}
.camp-story-stage::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(9,14,39,.72) 0,rgba(9,14,39,.06) 54%,transparent 72%);
  pointer-events:none;
}
.camp-story-stage img{
  display:block;
  width:100%;
  height:100%;
  min-height:510px;
  object-fit:cover;
  transition:opacity .22s ease,transform .55s ease;
}
.camp-story-stage.is-changing img{opacity:.3;transform:scale(1.025)}
.camp-story-stage figcaption{
  position:absolute;
  right:24px;
  bottom:24px;
  left:24px;
  z-index:2;
  display:grid;
  gap:4px;
  color:#fff;
}
.camp-story-stage figcaption span{
  width:max-content;
  padding:6px 12px;
  border-radius:999px;
  background:rgba(41,167,26,.92);
  font-size:12px;
  font-weight:900;
  letter-spacing:.02em;
}
.camp-story-stage figcaption strong{font-size:20px;font-weight:900;line-height:1.2}
.camp-story-card__copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:0;
  padding:36px 32px;
  border-radius:24px;
  background:#fff;
}
.camp-story-card__eyebrow,
.ref-extra-card__eyebrow,
.territory-more__eyebrow{
  display:inline-flex;
  width:max-content;
  align-items:center;
  min-height:30px;
  padding:5px 13px;
  border-radius:999px;
  color:#fff;
  background:var(--ref-green);
  font-size:12px;
  font-weight:900;
}
.camp-story-card h2{margin:18px 0 0;font-size:clamp(25px,2.4vw,34px);font-weight:900;line-height:1.08}
.camp-story-card__copy>p{margin:16px 0 0;font-size:14px;font-weight:600;line-height:1.52}
.camp-story-tabs{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:24px}
.camp-story-tab{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  min-height:54px;
  padding:9px 12px;
  border:1px solid rgba(77,93,250,.14);
  border-radius:16px;
  color:#111;
  background:#f8f9ff;
  text-align:left;
  cursor:pointer;
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease,color .2s ease;
}
.camp-story-tab:nth-child(even){background:#f5fbf3;border-color:rgba(41,167,26,.15)}
.camp-story-tab:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(32,43,100,.1)}
.camp-story-tab span{
  display:grid;
  flex:0 0 32px;
  width:32px;
  height:32px;
  place-items:center;
  border-radius:11px;
  color:#fff;
  background:var(--ref-blue);
  font-size:11px;
  font-weight:900;
}
.camp-story-tab:nth-child(even) span{background:var(--ref-green)}
.camp-story-tab strong{overflow:hidden;font-size:13px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}
.camp-story-tab[aria-selected="true"]{color:#fff;background:var(--ref-blue);border-color:var(--ref-blue);box-shadow:0 9px 20px rgba(77,93,250,.23)}
.camp-story-tab:nth-child(even)[aria-selected="true"]{background:var(--ref-green);border-color:var(--ref-green);box-shadow:0 9px 20px rgba(41,167,26,.2)}
.camp-story-tab[aria-selected="true"] span{color:var(--ref-blue);background:#fff}
.camp-story-tab:nth-child(even)[aria-selected="true"] span{color:var(--ref-green)}
.camp-story-card__link{align-self:flex-start;margin-top:24px}

/* Benefits: compact bento rhythm instead of six floating numbers in an empty box. */
.ref-benefits{background:var(--ref-soft)}
.benefits-bento{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:16px;
  width:min(940px,100%);
  margin:0 auto;
}
.benefit-tile{
  position:relative;
  grid-column:span 4;
  display:flex;
  min-width:0;
  min-height:178px;
  align-items:flex-start;
  gap:17px;
  padding:25px;
  overflow:hidden;
  border-radius:26px;
  background:#fff;
  box-shadow:0 12px 29px rgba(24,35,92,.1);
  transition:transform .22s ease,box-shadow .22s ease;
}
.benefit-tile:hover{transform:translateY(-4px);box-shadow:0 18px 36px rgba(24,35,92,.14)}
.benefit-tile::after{
  content:"";
  position:absolute;
  right:-42px;
  bottom:-54px;
  width:135px;
  height:135px;
  border-radius:50%;
  opacity:.08;
  background:currentColor;
}
.benefit-tile--wide{grid-column:span 5}
.benefit-tile:nth-child(2),.benefit-tile:nth-child(6){grid-column:span 3}
.benefit-tile:nth-child(4){grid-column:span 3}
.benefit-tile:nth-child(5){grid-column:span 5}
.benefit-tile:nth-child(3){grid-column:span 4}
.benefit-tile--blue{color:var(--ref-blue);border-top:5px solid var(--ref-blue)}
.benefit-tile--green{color:var(--ref-green);border-top:5px solid var(--ref-green)}
.benefit-tile__number{
  display:grid;
  flex:0 0 48px;
  width:48px;
  height:48px;
  place-items:center;
  border-radius:16px;
  color:#fff;
  background:currentColor;
  box-shadow:0 8px 18px rgba(20,27,72,.12);
  font-size:14px;
  font-weight:900;
}
.benefit-tile__number::first-line{color:#fff}
.benefit-tile h3{margin:4px 0 0;color:#111;font-size:20px;font-weight:900;line-height:1.16}
.benefit-tile p{margin:9px 0 0;color:#111;font-size:13px;font-weight:600;line-height:1.45}
.ref-extra-card--v5{
  padding:34px;
  background:linear-gradient(135deg,#fff 0 72%,#eef0ff 100%);
  border:1px solid rgba(77,93,250,.1);
}
.ref-extra-card--v5 .ref-extra-card__eyebrow{background:var(--ref-blue)}
.ref-extra-card--v5>h2{margin:14px 0 22px;font-size:26px}
.ref-extra-card--v5 .ref-extra-grid section{
  position:relative;
  overflow:hidden;
  padding:22px;
  border-top:0;
  border-radius:21px;
  background:#fff;
  box-shadow:0 8px 22px rgba(25,37,90,.09);
}
.ref-extra-card--v5 .ref-extra-grid section::before{
  content:"";
  position:absolute;
  top:0;
  right:0;
  left:0;
  height:5px;
  background:var(--ref-green);
}
.ref-extra-card--v5 .ref-extra-grid section:nth-child(2)::before{background:var(--ref-blue)}
.ref-extra-card--v5 .ref-extra-grid section:nth-child(3)::before{background:linear-gradient(90deg,var(--ref-green),var(--ref-blue))}
.ref-extra-card--v5 .ref-extra-grid h3{font-size:18px}
.ref-extra-card--v5 .ref-extra-grid ul{font-size:13px}

/* Territory: richer final bento block with image and alternating brand accents. */
.wave-band--green .ref-territory-card{background:#fff}
.territory-more{
  display:grid;
  grid-template-columns:minmax(0,.88fr) minmax(0,1.05fr) minmax(220px,.72fr);
  gap:16px;
  margin-top:38px;
  padding:16px;
  border-radius:30px;
  background:linear-gradient(135deg,#f5f7ff,#f5fbf3);
  border:1px solid rgba(77,93,250,.1);
  box-shadow:0 13px 30px rgba(24,35,92,.1);
}
.territory-more__copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:26px 24px;
  border-radius:22px;
  background:#fff;
}
.territory-more__copy h3{margin:15px 0 0;font-size:27px;font-weight:900;line-height:1.1}
.territory-more__copy p{margin:13px 0 0;font-size:13px;font-weight:600;line-height:1.48}
.territory-more__copy strong{display:block;margin-top:20px;color:var(--ref-blue);font-size:15px;font-weight:900;line-height:1.3}
.territory-more__amenities{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-content:center}
.territory-more__amenities span{
  display:flex;
  min-width:0;
  min-height:66px;
  align-items:center;
  gap:10px;
  padding:11px 13px;
  border-radius:17px;
  background:#fff;
  box-shadow:0 7px 19px rgba(24,35,92,.08);
  font-size:12px;
  font-weight:800;
}
.territory-more__amenities b{
  display:grid;
  flex:0 0 30px;
  width:30px;
  height:30px;
  place-items:center;
  border-radius:10px;
  color:#fff;
  background:var(--ref-blue);
  font-size:10px;
  font-weight:900;
}
.territory-more__amenities span:nth-child(even) b{background:var(--ref-green)}
.territory-more__photo{
  position:relative;
  min-height:100%;
  margin:0;
  overflow:hidden;
  border-radius:22px;
  background:#dfe6ff;
}
.territory-more__photo img{display:block;width:100%;height:100%;min-height:320px;object-fit:cover}
.territory-more__photo::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(13,20,58,.65),transparent 58%)}
.territory-more__photo figcaption{
  position:absolute;
  right:16px;
  bottom:16px;
  left:16px;
  z-index:2;
  color:#fff;
  font-size:15px;
  font-weight:900;
  line-height:1.2;
}

/* Colored sections need slightly tighter white cards. */
.wave-band--blue .ref-program-tabs{box-shadow:0 12px 30px rgba(16,24,75,.18)}
.wave-band--blue .ref-program-stage{box-shadow:0 16px 36px rgba(16,24,75,.22)}
.wave-band--green .ref-map{background:#f4f6fb}

/* Better balance on medium screens. */
@media (max-width:1050px){
  .camp-story-card{grid-template-columns:1fr 1fr}
  .benefit-tile{grid-column:span 4!important}
  .territory-more{grid-template-columns:1fr 1fr}
  .territory-more__photo{grid-column:1/-1;height:300px}
  .territory-more__photo img{min-height:300px}
}

@media (max-width:780px){
  .wave-band{padding-top:104px!important;padding-bottom:104px!important}
  .wave-band::before,.wave-band::after{height:64px}
  .wave-band .ref-heading{margin-bottom:34px}

  .camp-story-card{grid-template-columns:1fr;padding:11px;border-radius:26px}
  .camp-story-stage{min-height:340px;border-radius:19px}
  .camp-story-stage img{min-height:340px}
  .camp-story-stage figcaption{right:17px;bottom:17px;left:17px}
  .camp-story-stage figcaption strong{font-size:17px}
  .camp-story-card__copy{padding:27px 22px;border-radius:19px}
  .camp-story-card h2{font-size:27px}
  .camp-story-tabs{grid-template-columns:1fr 1fr}
  .camp-story-card__link{width:100%}

  .benefits-bento{grid-template-columns:1fr 1fr;gap:12px}
  .benefit-tile{grid-column:auto!important;min-height:160px;padding:20px;gap:13px;border-radius:22px}
  .benefit-tile__number{flex-basis:42px;width:42px;height:42px;border-radius:14px}
  .benefit-tile h3{font-size:18px}
  .benefit-tile p{font-size:12px}
  .ref-extra-card--v5{padding:25px 20px}
  .ref-extra-card--v5>h2{font-size:23px}

  .territory-more{grid-template-columns:1fr;padding:11px;border-radius:24px}
  .territory-more__copy{padding:23px 19px}
  .territory-more__copy h3{font-size:24px}
  .territory-more__amenities{grid-template-columns:1fr 1fr}
  .territory-more__photo{grid-column:auto;height:250px}
  .territory-more__photo img{min-height:250px}
}

@media (max-width:520px){
  .wave-band{padding-top:92px!important;padding-bottom:92px!important}
  .wave-band::before,.wave-band::after{height:52px}
  .camp-story-tabs{grid-template-columns:1fr}
  .camp-story-tab strong{white-space:normal}
  .benefits-bento{grid-template-columns:1fr}
  .benefit-tile{min-height:0}
  .territory-more__amenities{grid-template-columns:1fr}
}
.benefit-tile>div{min-width:0}
.benefit-tile h3,.benefit-tile p{overflow-wrap:anywhere}
.benefit-tile--blue .benefit-tile__number{color:#fff;background:var(--ref-blue)}
.benefit-tile--green .benefit-tile__number{color:#fff;background:var(--ref-green)}
.benefit-tile:nth-child(6){grid-column:span 4}
.benefit-tile h3{overflow-wrap:normal;word-break:normal}
