/* KTGA preview: styles for the secondary pages (camps, parties, about, FAQs, contact, privacy).
   Loaded AFTER style.css; reuses its tokens, buttons, header, footer and booking pop-up. */

/* ---------- shared page hero ---------- */
.pg-hero{padding:56px 0 132px}
.pg-hero .hero-grid{grid-template-columns:1.12fr .88fr;gap:40px;align-items:center}
.pg-hero h1{font-size:clamp(48px,5.6vw,84px);line-height:.95;text-wrap:balance}
.pg-hero h1 span{display:block;color:var(--lblue)}
.pg-hero .lead{max-width:27em;margin:22px 0 30px}
.pg-vis{display:flex;justify-content:flex-end}
.pg-vis .cp-plate{width:min(100%,440px);aspect-ratio:1/.92;transform:rotate(2deg);border:6px solid #fff;box-shadow:0 0 0 8px rgba(0,162,255,.45),0 30px 60px rgba(30,0,25,.5)}
.pg-vis .cp-plate img{height:92%;margin-bottom:0}
.pg-vis .cp-plate.pl-blue img{filter:drop-shadow(0 12px 14px rgba(30,0,25,.3))}
.pg-slim{padding:56px 0 120px}
.pg-slim .hero-grid{grid-template-columns:1fr}
.pg-slim .lead{margin-bottom:0}

/* quick-fact strip (overlaps the hero) */
.pg-facts{position:relative;z-index:3;padding-bottom:10px}
.pg-facts .facts-grid{grid-template-columns:repeat(4,1fr)}
.pg-facts.three .facts-grid{grid-template-columns:repeat(3,1fr)}
.pg-fact{padding:22px 24px;color:var(--navy);border-right:2px solid rgba(255,255,255,.4)}
.pg-fact:last-child{border-right:0}
.pg-fact b{display:block;font-family:"Anton",sans-serif;font-weight:400;text-transform:uppercase;font-size:30px;line-height:1.08;letter-spacing:.02em}
.pg-fact span{display:block;font-family:"Fredoka",sans-serif;font-weight:600;font-size:15.5px;margin-top:4px;opacity:.85}

/* sections */
.pg-sec{padding:96px 0}
.pg-lav{background:var(--lav)}
.pg-white{background:#fff}
.pg-split{display:grid;grid-template-columns:.92fr 1.08fr;gap:72px;align-items:center}
.pg-split.rev{grid-template-columns:1.08fr .92fr}
.pg-split.rev .pg-fig{order:2}
.pg-fig{position:relative;display:flex;justify-content:center;padding:10px 24px 34px}
.pg-fig .photo-frame{transform:rotate(-2deg);aspect-ratio:1/1.02}
.pg-fig .photo-frame.tall{aspect-ratio:4/5}
.pg-fig .pg-mas{position:absolute;right:-8px;bottom:-6px;height:240px;width:auto}
.pg-copy h2{font-size:clamp(38px,4.6vw,60px);color:var(--purple-d);margin-bottom:20px}
.pg-copy p{color:#43344a;margin-bottom:16px}
.pg-copy .btn-row{margin-top:26px}
.pg-copy .ticks{margin-bottom:6px}
.pg-note{font-family:"Fredoka",sans-serif;font-weight:500;font-size:16px;color:#5b4a61}

/* ---------- camps: price cards ---------- */
.pg-days{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:22px}
.pg-day{background:#fff;border:2px solid #f0dcec;border-radius:20px;padding:20px 12px 18px;text-align:center;box-shadow:0 8px 22px rgba(113,31,97,.08)}
.pg-day small{display:block;font-family:"Fredoka",sans-serif;font-weight:600;font-size:14px;letter-spacing:.06em;text-transform:uppercase;color:var(--purple)}
.pg-day b{display:block;font-family:"Anton",sans-serif;font-weight:400;font-size:42px;line-height:1.1;color:var(--purple-d);margin-top:4px}
.pg-week{position:relative;display:grid;grid-template-columns:1fr auto;gap:18px 30px;align-items:center;background:linear-gradient(135deg,var(--purple) 0%,var(--purple-d) 100%);color:#fff;border-radius:26px;padding:30px 38px;overflow:hidden;box-shadow:0 18px 38px rgba(113,31,97,.28)}
.pg-week::after{content:"";position:absolute;right:-30px;top:-10%;width:120px;height:120%;background:var(--blue);transform:skewX(-24deg);opacity:.9}
.pg-week>*{position:relative;z-index:1}
.pg-week h3{font-family:"Anton",sans-serif;text-transform:uppercase;font-weight:400;font-size:clamp(34px,4vw,50px);line-height:1}
.pg-week h3 b{font-weight:400;color:var(--lblue)}
.pg-week p{margin-top:6px;color:#fbe9f6;font-weight:500}
.pg-week .btn{margin-right:76px}
.pg-extras{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:22px}
.pg-extra{display:flex;align-items:center;gap:16px;background:#fff;border:2px dashed var(--purple);border-radius:18px;padding:16px 20px}
.pg-extra b{font-family:"Anton",sans-serif;font-weight:400;font-size:30px;line-height:1;color:var(--purple-d);white-space:nowrap}
.pg-extra span{font-weight:600;font-size:15.5px;line-height:1.35;color:#43344a}
.pg-fine{margin-top:20px;text-align:center;font-family:"Fredoka",sans-serif;font-weight:500;font-size:16px;color:#6a5470}
.pg-xmas h2{font-size:clamp(44px,5.6vw,80px)}
.pg-xmas .camp-visual{padding:10px 0 20px;justify-content:center}
.pg-xmas .cp-plate{width:min(100%,380px)}

/* ---------- parties: package cards ---------- */
.pg-pk{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:stretch}
.pg-pkc{position:relative;background:#fff;border:2px solid #f0dcec;border-radius:var(--r);padding:34px 28px 28px;display:flex;flex-direction:column;align-items:center;text-align:center;box-shadow:0 10px 30px rgba(113,31,97,.1)}
.pg-pkc .medal{width:88px;height:88px;font-size:18px;margin-bottom:14px;border-color:#fff;box-shadow:0 0 0 3px rgba(113,31,97,.15),inset 0 -6px 0 rgba(0,0,0,.14)}
.pg-pkc h3{font-family:"Fredoka",sans-serif;font-weight:600;font-size:26px;color:var(--purple-d)}
.pg-price{font-family:"Anton",sans-serif;font-size:64px;line-height:1.05;color:var(--purple);margin:6px 0 2px}
.pg-pkc ul{list-style:none;display:grid;gap:8px;margin:14px 0 22px;font-weight:600;color:#43344a}
.pg-pkc li small{display:block;font-weight:500;font-size:14px;color:#6a5470}
.pg-pkc .btn{margin-top:auto}
.pg-pkc.gold{border-color:var(--blue);box-shadow:0 0 0 4px rgba(0,162,255,.2),0 18px 38px rgba(113,31,97,.16)}
.pg-pkc .pop{position:absolute;top:-1px;left:50%;transform:translateX(-50%);background:var(--blue);color:var(--navy);font-family:"Fredoka",sans-serif;font-weight:700;font-size:13px;letter-spacing:.06em;text-transform:uppercase;padding:5px 16px 6px;border-radius:0 0 12px 12px}
.pg-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;counter-reset:s}
.pg-step{position:relative;padding:0 6px 0 0}
.pg-step::before{counter-increment:s;content:counter(s);display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:var(--blue);color:var(--navy);font-family:"Anton",sans-serif;font-size:28px;box-shadow:0 5px 0 #0073b8;margin-bottom:16px}
.pg-step h3{font-family:"Fredoka",sans-serif;font-weight:600;font-size:23px;color:var(--purple-d);line-height:1.15;margin-bottom:6px}
.pg-step p{color:#43344a;font-size:16px}

/* ---------- about ---------- */
.pg-why{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.pg-whyc{background:#fff;border:2px solid #f0dcec;border-radius:var(--r);padding:28px 24px;box-shadow:0 10px 30px rgba(113,31,97,.08)}
.pg-whyc .ic{width:60px;height:60px;border-radius:50%;background:var(--blue);display:grid;place-items:center;margin-bottom:16px;box-shadow:0 5px 0 #0073b8}
.pg-whyc .ic svg{width:30px;height:30px;fill:none;stroke:var(--navy);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.pg-whyc h3{font-family:"Fredoka",sans-serif;font-weight:600;font-size:22px;color:var(--purple-d);line-height:1.2;margin-bottom:6px}
.pg-whyc p{font-size:15.5px;color:#43344a}
.pg-skills{display:flex;flex-wrap:wrap;gap:12px;margin:22px 0 0;list-style:none}
.pg-skills li{font-family:"Fredoka",sans-serif;font-weight:600;font-size:18px;background:rgba(255,255,255,.1);border:2px solid rgba(255,255,255,.22);border-radius:999px;padding:10px 20px;color:#fff}

/* ---------- FAQs ---------- */
.pg-faq-grid{display:grid;grid-template-columns:.62fr 1.38fr;gap:64px;align-items:start}
.pg-faq-side{position:sticky;top:110px}
.pg-faq-side h2{font-size:clamp(36px,4vw,54px);color:var(--purple-d);margin-bottom:14px}
.pg-faq-side p{color:#43344a;margin-bottom:22px}
.pg-faq-side img{height:250px;width:auto;margin-top:26px}
.pg-faq-list{display:grid;gap:12px}
.pg-faq-list h3.grp{font-family:"Anton",sans-serif;text-transform:uppercase;font-size:28px;letter-spacing:.02em;color:var(--purple);margin:22px 0 4px}
.pg-faq-list h3.grp:first-child{margin-top:0}
.faq{background:#fff;border:2px solid #f0dcec;border-radius:18px;transition:border-color .15s,box-shadow .15s}
.faq[open]{border-color:var(--blue);box-shadow:0 10px 26px rgba(113,31,97,.1)}
.faq summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;font-family:"Fredoka",sans-serif;font-weight:600;font-size:19px;line-height:1.3;color:var(--purple-d);padding:18px 22px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:30px;height:30px;border-radius:50%;background:var(--blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%2306121f' stroke-width='3' stroke-linecap='round' d='M12 6v12M6 12h12'/%3E%3C/svg%3E") center/16px no-repeat;transition:transform .2s}
.faq[open] summary::after{transform:rotate(45deg)}
.faq summary:focus-visible{outline:3px solid var(--purple);outline-offset:2px;border-radius:16px}
.faq .ans{padding:0 22px 20px;color:#43344a;font-size:16.5px}
.faq .ans p+p,.faq .ans ul{margin-top:10px}
.faq .ans ul{padding-left:20px}
.faq .ans a:not(.btn){color:var(--purple);font-weight:700}
.faq .ans .btn{margin-top:14px}

/* ---------- contact ---------- */
.pg-contact{display:grid;grid-template-columns:.8fr 1.2fr;gap:44px;align-items:start}
.pg-info{display:grid;gap:18px}
.pg-ic{display:flex;gap:18px;background:#fff;border:2px solid #f0dcec;border-radius:var(--r);padding:24px;box-shadow:0 10px 30px rgba(113,31,97,.08)}
.pg-ic .ic{flex:none;width:52px;height:52px;border-radius:50%;background:var(--blue);display:grid;place-items:center;box-shadow:0 4px 0 #0073b8}
.pg-ic .ic svg{width:26px;height:26px;fill:none;stroke:var(--navy);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.pg-ic h3{font-family:"Fredoka",sans-serif;font-weight:600;font-size:22px;color:var(--purple-d);margin-bottom:4px}
.pg-ic address{font-style:normal;color:#43344a;line-height:1.55}
.pg-ic a.big{font-family:"Anton",sans-serif;font-size:32px;letter-spacing:.02em;color:var(--purple);text-decoration:none}
.pg-ic .links{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:10px}
.pg-ic .links a{font-family:"Fredoka",sans-serif;font-weight:600;color:var(--purple);text-underline-offset:3px}
.pg-ic .social{margin-top:8px}
.pg-book-note{display:flex;align-items:center;justify-content:space-between;gap:18px 24px;flex-wrap:wrap;background:var(--lav);border:2px solid #f0dcec;border-left:6px solid var(--blue);border-radius:0 18px 18px 0;padding:16px 22px;margin-bottom:26px}
.pg-book-note p{font-family:"Fredoka",sans-serif;font-weight:600;font-size:18px;line-height:1.35;color:var(--purple-d)}
.pg-form{background:#fff;border:2px solid #f0dcec;border-radius:28px;padding:38px 38px 34px;box-shadow:0 18px 44px rgba(113,31,97,.14)}
.pg-form h2{font-size:clamp(36px,4vw,52px);color:var(--purple-d);margin-bottom:8px}
.pg-form .sub{color:#5b4a61;margin-bottom:22px}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}
.fld{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.frow .fld{margin-bottom:0}
.frow{margin-bottom:16px}
.fld label{font-family:"Fredoka",sans-serif;font-weight:600;font-size:16px;color:var(--purple-d)}
.fld label i{font-style:normal;font-weight:500;color:#7a6880;font-size:14px}
.fld input,.fld select,.fld textarea{font:inherit;font-size:16px;color:var(--ink);background:#fff;border:2px solid #d9c3d4;border-radius:14px;padding:13px 16px;width:100%;transition:border-color .15s,box-shadow .15s}
.fld textarea{min-height:140px;resize:vertical}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 4px rgba(0,162,255,.2)}
.fld.bad input,.fld.bad select,.fld.bad textarea{border-color:#c0264a;background:#fff7f9}
.fld .err{display:none;font-size:14px;font-weight:600;color:#b01e42}
.fld.bad .err{display:block}
.fck{display:flex;gap:12px;align-items:flex-start;margin:4px 0 20px;font-size:15px;color:#43344a}
.fck input{flex:none;width:22px;height:22px;margin-top:2px;accent-color:var(--purple)}
.fck a{color:var(--purple);font-weight:700}
.fck.bad{color:#b01e42}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.pg-form #f-send{width:100%;font-size:20px;padding:18px 28px}
.pg-form #f-send[disabled]{opacity:.7;cursor:wait;transform:none}
.f-msg{display:none;border-radius:16px;padding:16px 20px;margin-top:18px;font-weight:600;line-height:1.45}
.f-msg.show{display:block}
.f-msg.preview{background:#eaf6ff;border:2px solid var(--blue);color:#06314f}
.f-msg.error{background:#fff1f4;border:2px solid #c0264a;color:#7d1230}
.f-msg a{color:inherit;font-weight:800}
.f-done{display:none;text-align:center;padding:12px 0 6px}
.f-done.show{display:block}
.f-done img{height:190px;width:auto;margin:0 auto 14px}
.f-done h2{margin-bottom:10px}
.f-done p{color:#43344a;max-width:26em;margin:0 auto 20px}
.pg-form.sent form{display:none}
.pg-form.sent .sub,.pg-form.sent>h2{display:none}

/* ---------- privacy (prose) ---------- */
.pg-prose{max-width:780px;margin:0 auto}
.pg-draft{display:flex;gap:12px;align-items:flex-start;background:#fff8e1;border:2px solid #f4b400;border-radius:16px;padding:14px 18px;margin-bottom:34px;font-weight:600;color:#5a4300;font-size:15.5px}
.pg-prose h2{font-size:clamp(30px,3.4vw,40px);color:var(--purple-d);margin:40px 0 12px}
.pg-prose h2:first-of-type{margin-top:0}
.pg-prose p,.pg-prose li{color:#43344a;margin-bottom:12px}
.pg-prose ul{padding-left:22px;margin-bottom:12px}
.pg-prose a{color:var(--purple);font-weight:700}
.pg-updated{font-size:14px;color:#6a5470;margin-top:30px}

/* ---------- final call-to-action tweak ---------- */
.cta .btn-row{gap:14px 18px}
.cta .btn-ghost{--bg:rgba(255,255,255,.16);--bg-h:rgba(255,255,255,.4);--fg:var(--deep);--bd:var(--deep);--edge:rgba(58,10,49,.5)}


/* reveal (JS adds .in) */
.js .pg-rv{opacity:0;transform:translateY(24px);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s)}
.js .pg-rv.in{opacity:1;transform:none}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .pg-why{grid-template-columns:repeat(2,1fr)}
  .pg-split{gap:44px}
  .pg-contact{grid-template-columns:1fr}
  .pg-days{gap:10px}
  .pg-day b{font-size:36px}
  .pg-fact b{font-size:26px}
}
@media (max-width:900px){
  .pg-hero{padding:44px 0 112px}
  .pg-hero .hero-grid{grid-template-columns:1fr}
  .pg-vis{justify-content:center}
  .pg-vis .cp-plate{width:min(100%,360px);aspect-ratio:1/.78}
  .pg-vis .cp-plate img{height:96%}
  .pg-facts .facts-grid,.pg-facts.three .facts-grid{grid-template-columns:1fr 1fr}
  .pg-fact{border-bottom:2px solid rgba(255,255,255,.4)}
  .pg-fact:nth-child(2n){border-right:0}
  .pg-facts.three .pg-fact:nth-child(2n){border-right:2px solid rgba(255,255,255,.4)}
  .pg-facts.three .pg-fact:nth-child(2n+1):last-child{grid-column:1/-1;border-right:0}
  .pg-fact:nth-last-child(-n+2){border-bottom:0}
  .pg-sec{padding:76px 0}
  .pg-split,.pg-split.rev{grid-template-columns:1fr;gap:34px}
  .pg-split.rev .pg-fig{order:0}
  .pg-fig .pg-mas{height:190px}
  .pg-pk{grid-template-columns:1fr;max-width:460px;margin-inline:auto}
  .pg-steps{grid-template-columns:1fr;gap:22px}
  .pg-step{display:grid;grid-template-columns:58px 1fr;gap:0 16px}
  .pg-step::before{grid-row:span 2;margin:0}
  .pg-faq-grid{grid-template-columns:1fr;gap:34px}
  .pg-faq-side{position:static}
  .pg-faq-side img{display:none}
  .pg-week{grid-template-columns:1fr;padding:28px 26px}
  .pg-week .btn{margin-right:0}
  .pg-xmas .camp-visual{display:none}
  .pg-xmas.camp{padding-bottom:84px}
}
@media (max-width:640px){
  .pg-hero h1{font-size:clamp(42px,13.5vw,64px)}
  .pg-hero .btn-row .btn{flex:1 1 100%}
  .pg-fact{padding:16px 16px}
  .pg-fact b{font-size:23px}
  .pg-fact span{font-size:14px}
  .pg-days{grid-template-columns:repeat(5,1fr);gap:6px}
  .pg-day{padding:14px 4px 12px;border-radius:14px}
  .pg-day small{font-size:11px;letter-spacing:.02em}
  .pg-day b{font-size:25px}
  .pg-extras{grid-template-columns:1fr}
  .pg-why{grid-template-columns:1fr}
  .pg-form{padding:28px 20px 26px;border-radius:22px}
  .frow{grid-template-columns:1fr;gap:0}
  .frow .fld{margin-bottom:16px}
  .pg-week .btn,.pg-copy .btn-row .btn,.pg-book-note .btn{width:100%}
  .pg-book-note{border-radius:0 14px 14px 0}
  .faq summary{font-size:17.5px;padding:16px 18px}
  .faq .ans{padding:0 18px 18px}
  .pg-skills li{font-size:16px;padding:8px 16px}
}
@media (prefers-reduced-motion:reduce){.js .pg-rv{opacity:1;transform:none}}

.pg-xmas .camp-text{margin:18px 0 28px;max-width:30em}
.pg-copy h2,.sec-head h2,.pg-form h2,.pg-faq-side h2,.cta h2,.camp h2{text-wrap:balance}
.pg-slim+.pg-sec{padding-top:112px}

/* ---------- camps & parties v2 (camps2) ---------- */
/* next-camp block */
.nc-grid{display:grid;grid-template-columns:1.5fr .6fr;gap:40px;align-items:center}
.nc-chips{list-style:none;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:22px}
.nc-chips li{background:#fff;border:2px solid #f0dcec;border-radius:16px;padding:10px 18px;flex:1 1 150px}
.nc-chips b{display:block;font-family:"Anton",sans-serif;font-weight:400;text-transform:uppercase;font-size:26px;line-height:1.1;color:var(--purple-d)}
.nc-chips span{font-family:"Fredoka",sans-serif;font-weight:600;font-size:14.5px;color:#6a5470}
.nc-note{margin-top:18px;font-family:"Fredoka",sans-serif;font-weight:600;font-size:17px;color:var(--purple-d)}
.nc-vis .cp-plate{aspect-ratio:1/1.35;transform:rotate(2deg);border:6px solid #fff;box-shadow:0 0 0 8px rgba(0,162,255,.35),0 24px 44px rgba(113,31,97,.25)}
.nc-vis .cp-plate img{height:90%}
.nc-main .pg-week{margin-top:0}
/* upcoming strip */
.up-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.up-card{display:block;background:var(--lav);border:2px dashed #d9b9d2;border-radius:22px;padding:24px 24px 22px;text-align:left;color:inherit}
.up-card.open{background:#fff;border:2px solid var(--blue);box-shadow:0 0 0 4px rgba(0,162,255,.15),0 14px 30px rgba(113,31,97,.12);transition:transform .15s}
.up-card.open:hover{transform:translateY(-3px)}
.up-tag{display:inline-block;background:var(--blue);color:var(--navy);font-family:"Fredoka",sans-serif;font-weight:700;font-size:13px;letter-spacing:.06em;text-transform:uppercase;padding:4px 12px 5px;border-radius:99px}
.up-tag.soon{background:#e6d3e2;color:var(--purple-d)}
.up-card h3{font-family:"Anton",sans-serif;font-weight:400;text-transform:uppercase;font-size:30px;line-height:1.1;color:var(--purple-d);margin:14px 0 4px}
.up-card p{color:#5b4a61;font-weight:600}
/* "who it's for" mascot cards */
.cm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.cm-card{background:var(--lav);border-radius:var(--r);padding:26px 26px 28px;text-align:center}
.cm-pic{height:190px;display:flex;align-items:flex-end;justify-content:center;margin-bottom:14px}
.cm-pic img{height:100%;width:auto;max-width:100%;object-fit:contain;filter:drop-shadow(0 8px 10px rgba(113,31,97,.2))}
.cm-card h3{font-family:"Fredoka",sans-serif;font-weight:600;font-size:24px;color:var(--purple-d);margin-bottom:6px}
.cm-card p{color:#43344a;font-size:16.5px}
/* photo trio */
.pg-trio{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:46px}
#fun .pg-trio{margin-top:0}
.pg-trio figure{aspect-ratio:4/3.1;border-radius:24px;overflow:hidden;border:5px solid #fff;box-shadow:0 0 0 5px rgba(0,162,255,.3),0 16px 32px rgba(113,31,97,.18);transform:rotate(-1.5deg)}
.pg-trio figure:nth-child(2){transform:rotate(1.5deg)}
.pg-trio img{width:100%;height:100%;object-fit:cover}
/* how-it-works with mascot icons */
.hw-grid{display:grid;gap:22px;counter-reset:h}
.hw3{grid-template-columns:repeat(3,1fr)}
.hw4{grid-template-columns:repeat(4,1fr)}
.hw-step{position:relative;text-align:center;background:#fff;border:2px solid #f0dcec;border-radius:var(--r);padding:26px 20px 26px;box-shadow:0 8px 22px rgba(113,31,97,.07)}
.hw-step::before{counter-increment:h;content:counter(h);position:absolute;top:-18px;left:50%;margin-left:-20px;width:40px;height:40px;border-radius:50%;background:var(--blue);color:var(--navy);display:grid;place-items:center;font-family:"Anton",sans-serif;font-size:22px;box-shadow:0 4px 0 #0073b8}
.hw-pic{height:150px;display:flex;align-items:flex-end;justify-content:center;margin:6px 0 14px}
.hw-pic img{height:100%;width:auto;max-width:100%;object-fit:contain}
.hw-step h3{font-family:"Fredoka",sans-serif;font-weight:600;font-size:21px;color:var(--purple-d);margin-bottom:6px;line-height:1.2}
.hw-step p{color:#43344a;font-size:15.5px}
@media (max-width:1080px){
  .hw4{grid-template-columns:repeat(2,1fr);row-gap:34px}
  .nc-grid{grid-template-columns:1.3fr .7fr;gap:28px}
}
@media (max-width:900px){
  .nc-grid{grid-template-columns:1fr}
  .nc-vis{display:none}
  .up-grid,.cm-grid,.hw3{grid-template-columns:1fr}
  .hw3{row-gap:34px}
  .cm-card{display:grid;grid-template-columns:110px 1fr;gap:0 18px;text-align:left;align-items:center}
  .cm-pic{grid-row:span 2;height:130px;margin:0}
  .pg-trio{grid-template-columns:1fr;max-width:460px;margin-inline:auto}
  .pg-trio figure{transform:none!important}
}
@media (max-width:520px){
  .hw4{grid-template-columns:1fr}
  .nc-chips li{flex:1 1 100%}
}

/* mascots2: corner mascot size variants */
.pg-fig .pg-mas.pg-mas-wide{height:auto;width:230px;right:-14px;bottom:-14px}
.pg-fig .pg-mas.pg-mas-tall{height:290px;right:-26px;bottom:-14px}
.hw-pic{height:160px}
.hw-pic img{filter:drop-shadow(0 6px 8px rgba(113,31,97,.18))}
.cm-pic img{height:100%}
@media (max-width:900px){
  .pg-fig .pg-mas.pg-mas-wide{width:170px;height:auto}
  .pg-fig .pg-mas.pg-mas-tall{height:220px;right:-6px}
}
.hw-pic{height:185px}
@media (max-width:900px){.hw-pic{height:170px}}

/* v2 mascots: keep tall/wide plate mascots inside the plate (no row growth/cropping) */
.pg-vis .cp-plate img,.nc-vis .cp-plate img{position:absolute;left:50%;bottom:4%;transform:translateX(-50%);height:90%;width:auto;max-width:92%;margin:0;object-fit:contain}
@media(max-width:900px){.pg-vis .cp-plate img{height:92%;bottom:3%}}


/* ===== SEO pass additions ===== */
.pg-ic h2{text-transform:none;letter-spacing:0;line-height:1.3;font-family:"Fredoka",sans-serif;font-weight:600;font-size:22px;color:var(--purple-d);margin-bottom:4px}
.pg-areas{font-size:15.5px;line-height:1.6;color:#5d4863;max-width:46ch}

/* ===== extras pass: squads, first session, map, add-to-calendar ===== */
.pg-why.six{grid-template-columns:repeat(3,1fr)}
@media (max-width:1080px){.pg-why.six{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.pg-why.six{grid-template-columns:1fr}}
.pg-step a,.pg-note a{color:var(--purple);font-weight:700}
.pg-note a{text-underline-offset:3px}
.nc-cal{margin-top:16px}
.nc-cal .btn[hidden]{display:none}
.pg-mapsec{padding-top:70px}
.pg-map{border-radius:22px;overflow:hidden;box-shadow:0 14px 34px rgba(60,20,70,.18);border:4px solid #fff;background:#e9e1ef;width:100%;height:420px}
.pg-map iframe{display:block;width:100%;height:100%;border:0}
.pg-mapbtn{text-align:center;margin-top:24px}
@media (max-width:900px){.pg-map{height:340px;border-radius:16px}}
@media (max-width:640px){.pg-mapbtn .btn{width:100%}.pg-mapsec{padding-top:56px}}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ===== Master timetable (timetable.html) — drawn by assets/timetable.js ===== */
.tt-hero{padding-bottom:70px}
.tt-sec{padding:64px 0 88px}
.tt-tools{background:#fff;border:2px solid #ecd4e6;border-radius:22px;padding:22px 26px;display:grid;gap:16px;box-shadow:0 6px 0 rgba(127,32,102,.08)}
.tt-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}
.tt-lab{font-family:"Fredoka",sans-serif;font-weight:600;font-size:17px;color:var(--purple-d);flex:0 0 150px;line-height:1.2}
.tt-chips{display:flex;flex-wrap:wrap;gap:8px;flex:1 1 300px}
.tt-chip,.tt-reset,.tt-clear{font-family:"Fredoka",sans-serif;font-weight:500;font-size:16px;line-height:1;cursor:pointer;border:2px solid var(--purple);background:#fff;color:var(--purple-d);border-radius:999px;padding:9px 16px;min-height:40px;transition:background .12s,color .12s,transform .12s}
.tt-chip:hover,.tt-reset:hover,.tt-clear:hover{background:#faeaf6;transform:translateY(-1px)}
.tt-chip[aria-pressed="true"]{background:var(--purple);color:#fff}
.tt-agebox{align-items:center}
.tt-agein{display:flex;gap:10px;align-items:center}
.tt-agein input{font:500 18px "Montserrat",sans-serif;width:150px;padding:9px 14px;border:2px solid var(--purple);border-radius:14px;color:var(--ink);background:#fff;min-height:44px}
.tt-agein input:focus{outline:3px solid var(--blue);outline-offset:2px}
.tt-hint{font-size:15px;color:#5a4a62;flex:1 1 200px}
.tt-hint.bad{color:#a30f2d;font-weight:600}
.tt-statusrow{justify-content:space-between;border-top:2px dashed #ecd4e6;padding-top:12px}
.tt-status{font-family:"Fredoka",sans-serif;font-weight:500;font-size:17px;color:var(--deep)}
.tt-reset,.tt-clear{padding:7px 14px;min-height:36px;font-size:15px}
.tt-linkbtn{font:inherit;background:none;border:0;color:var(--purple-d);text-decoration:underline;cursor:pointer;padding:0}
.tt-nojs{margin-top:20px;font-weight:600}

.tt-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;margin-top:26px;align-items:start}
.tt-grid[hidden]{display:none}
.tt-day{background:#fff;border:2px solid #ecd4e6;border-radius:18px;overflow:hidden}
.tt-day h3{font-family:"Fredoka",sans-serif;font-weight:600;font-size:18px;background:var(--purple);color:#fff;padding:10px 8px;text-align:center;line-height:1.1}
.tt-dl{display:none}
.tt-day ul{list-style:none;padding:8px;display:grid;gap:8px}
.tt-none{font-size:14px;color:#5a4a62;text-align:center;padding:10px 0}
.tt-card{--c:var(--purple);--bg:#f8e9f4;display:grid;gap:2px;padding:9px 9px 9px 11px;border-radius:12px;background:var(--bg);border-left:6px solid var(--c);text-decoration:none;color:var(--ink);line-height:1.25;transition:transform .12s,box-shadow .12s}
.tt-card:hover{transform:translateY(-2px);box-shadow:0 4px 0 rgba(58,10,49,.18)}
.tt-card:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.t-gymnastics .tt-card{--c:#0b5cad;--bg:#e5f2ff}
.t-tots .tt-card{--c:#0e6a5a;--bg:#e1f5ef}
.t-adults .tt-card{--c:#8a4b00;--bg:#fff0d9}
.t-squads .tt-card{--c:#3a0a31;--bg:#ebe1f2}
.tt-time{font-family:"Fredoka",sans-serif;font-weight:600;font-size:15px;color:var(--c)}
.tt-name{font-family:"Fredoka",sans-serif;font-weight:600;font-size:16px;color:var(--deep)}
.tt-tag{font-size:12px;font-weight:600;color:#3a0a31;letter-spacing:.01em}
.tt-age,.tt-price{font-size:13px;color:#43344b}
.tt-desc{font-size:12.5px;line-height:1.35;color:#43344b;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.tt-act{margin-top:4px;justify-self:start;font-family:"Fredoka",sans-serif;font-weight:600;font-size:14px;color:#fff;background:var(--c);border-radius:999px;padding:4px 12px}
.tt-empty{margin-top:26px;background:#fff;border:2px dashed #cfa7c6;border-radius:18px;padding:22px;text-align:center;font-weight:600}

.tt-notes{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:34px}
.tt-note{background:#fff;border:2px solid #ecd4e6;border-radius:20px;padding:24px 26px}
.tt-note h3{font-family:"Fredoka",sans-serif;font-weight:600;font-size:22px;color:var(--purple-d);margin-bottom:8px}
.tt-note p{margin-bottom:14px}
.tt-note ul{padding-left:20px;display:grid;gap:8px;font-size:16px}
.tt-comp{background:#f1e8f6;border-color:#d9c3e6}
.tt-strip{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:26px;padding:16px 22px;border-radius:999px;background:var(--deep);color:#fff}
.tt-strip-t{font-family:"Fredoka",sans-serif;font-weight:600;font-size:18px;margin-right:6px}
.tt-strip a{font-family:"Fredoka",sans-serif;font-weight:500;font-size:16px;color:var(--deep);background:#fff;border-radius:999px;padding:8px 18px;text-decoration:none;transition:transform .12s}
.tt-strip a:hover{transform:translateY(-2px)}
.tt-strip a:focus-visible{outline:3px solid var(--lblue);outline-offset:2px}

@media (max-width:1000px){
  .tt-grid{grid-template-columns:1fr 1fr;gap:14px}
  .tt-day h3{text-align:left;padding:10px 16px;font-size:20px}
  .tt-dl{display:inline}.tt-ds{display:none}
  .tt-empty-day{display:none}
  .tt-card{grid-template-columns:auto 1fr;column-gap:12px;align-items:center;padding:11px 12px 11px 13px}
  .tt-time{grid-column:1;grid-row:1/4;min-width:92px;font-size:16px}
  .tt-name,.tt-tag,.tt-age,.tt-price,.tt-desc{grid-column:2}
  .tt-act{grid-column:2;margin-top:6px}
  .tt-age,.tt-price{font-size:14px}
}
@media (max-width:700px){
  .tt-hero{padding-bottom:50px}
  .tt-sec{padding:44px 0 64px}
  .tt-tools{padding:18px 16px}
  .tt-lab{flex-basis:100%}
  .tt-grid{grid-template-columns:1fr}
  .tt-notes{grid-template-columns:1fr}
  .tt-strip{border-radius:22px}
  .tt-chip{padding:8px 13px;font-size:15px}
}
@media (prefers-reduced-motion:reduce){.tt-card,.tt-chip,.tt-strip a{transition:none}.tt-card:hover,.tt-chip:hover,.tt-strip a:hover{transform:none}}
/* v12: full class on the timetable: outlined "Full: join the waitlist" button instead of the solid book button */
.tt-full .tt-act{background:#fff;color:var(--c);border:2px solid var(--c);padding:2px 10px;border-radius:14px;line-height:1.2}
.tt-full .tt-card{border-left-style:dashed}

/* v13: small per-page timetables (assets/timetable.js "compact mode": <div class="tt-grid" id="tt-grid" data-classes="...">). Same cards as the full timetable. */
.tt-mini{padding:56px 0 64px}
.tt-mini .tt-chips{margin-top:6px}
.tt-mini .tt-grid{margin-top:20px}
.tt-mini-foot{margin-top:18px;font-size:15px;color:#43344b}
.tt-mini-foot a{color:var(--purple-d);font-weight:600}
.tt-mini .tt-status{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (min-width:1001px){
  .tt-grid.tt-compact{grid-template-columns:repeat(auto-fit,minmax(150px,230px));justify-content:start}
}
@media (max-width:1000px){
  .tt-grid.tt-compact{grid-template-columns:1fr 1fr}
}
@media (max-width:700px){
  .tt-mini{padding:40px 0 48px}
  .tt-grid.tt-compact{grid-template-columns:1fr}
  .cp-sqsteps.two{grid-template-columns:1fr}
}
.cp-sqsteps.two{grid-template-columns:repeat(2,1fr)}
@media (max-width:700px){.cp-sqsteps.two{grid-template-columns:1fr}}

/* v13: Dare2Air feature on camps.html (photos: Dare2Air, used with permission) */
.nc-chips .nc-d2a{background:var(--purple-d);border-color:var(--purple-d)}
.nc-chips .nc-d2a b,.nc-chips .nc-d2a span{color:#fff}
.nc-note a{color:var(--purple-d);text-decoration:underline}
.d2a-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:56px;align-items:center}
.d2a-badge{display:inline-block;background:#ffe36e;color:#3b1a33;border-radius:14px;padding:10px 18px;font-family:"Fredoka",sans-serif;font-weight:600;font-size:19px;margin:4px 0 14px;box-shadow:0 4px 0 rgba(127,32,102,.15)}
.d2a-badge b{font-weight:700}
.d2a-more{margin-top:20px}
.d2a-vis{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:12px;padding-top:34px}
.d2a-vis figure{margin:0;border-radius:18px;overflow:hidden;border:4px solid #fff;box-shadow:0 10px 26px rgba(113,31,97,.2)}
.d2a-vis img{display:block;width:100%;height:100%;object-fit:cover}
.d2a-main{grid-column:1/3;aspect-ratio:3/2}
.d2a-s1,.d2a-s2{aspect-ratio:3/2}
.d2a-vis .d2a-mas{position:absolute;right:-14px;top:-26px;width:42%;height:auto;object-fit:contain;z-index:2;filter:drop-shadow(0 8px 12px rgba(0,0,0,.25))}
.d2a-credit{grid-column:1/3;margin:4px 2px 0;font-size:14px;color:#6a5470}
.d2a-credit a{color:var(--purple-d);font-weight:600}
@media (max-width:900px){
  .d2a-grid{grid-template-columns:1fr;gap:30px}
  .d2a-vis .d2a-mas{width:46%;right:-6px;top:-22px}
}
.d2a-copy p{margin:0 0 12px}.d2a-copy .d2a-more{margin-top:20px}
.pg-fine:has(a[href="#first-session"]){text-align:left;margin-top:16px}

/* r11: party package one-liners */
.pg-pkc .pk-for{margin:2px 0 0;font-size:15.5px;line-height:1.4;color:#5d4863;font-weight:500;max-width:24ch}
