/* Site footer: white, airy, with a purple call-to-action card on top (self-contained; independent of the purged Tailwind bundle) */
.cp-footer { position:relative; margin-top:0; color:#4a4360; background:#fff; border-top:1px solid #ece7f7; }
.cp-footer * { box-sizing:border-box; }
.cp-footer a { color:inherit; text-decoration:none; transition:color .15s, transform .15s, background .15s, box-shadow .15s; }
.cp-f-wrap { max-width:1180px; margin:0 auto; padding:56px 20px 24px; }

/* call-to-action card straddling the top edge */
.cp-f-cta { position:relative; top:-48px; margin-bottom:-12px; display:flex; flex-wrap:wrap; gap:20px 32px; align-items:center; justify-content:space-between; padding:34px 40px; border-radius:26px; color:#fff; overflow:hidden;
  background:radial-gradient(420px 220px at 95% 0%, rgba(167,139,250,.45), transparent 70%), linear-gradient(120deg,#271151,#4b24a0); box-shadow:0 24px 50px -18px rgba(39,17,81,.55); }
.cp-f-cta h2 { margin:0 0 6px; color:#fff; font-family:hankenGrotesk, Inter, system-ui, sans-serif; font-size:clamp(22px,2.6vw,30px); line-height:1.2; font-weight:800; letter-spacing:-.01em; }
.cp-f-cta p { margin:0; color:rgba(255,255,255,.85); font-size:16px; line-height:1.55; max-width:520px; }
.cp-f-cta-btns { display:flex; flex-wrap:wrap; gap:12px; }
.cp-f-btn { display:inline-flex; align-items:center; padding:13px 24px; border-radius:99px; font-weight:800; font-size:15px; border:2px solid transparent; }
.cp-f-btn.solid { background:#fff; color:#271151 !important; }
.cp-f-btn.solid:hover { transform:translateY(-2px); box-shadow:0 12px 26px rgba(0,0,0,.28); }
.cp-f-btn.line { color:#fff !important; border-color:rgba(255,255,255,.55); }
.cp-f-btn.line:hover { background:rgba(255,255,255,.14); }

.cp-f-grid { display:grid; grid-template-columns:1.6fr .8fr 1.1fr .9fr 1.5fr; gap:34px; padding-top:8px; }
.cp-footer h2 { margin:0 0 16px; color:#271151; font-family:hankenGrotesk, Inter, system-ui, sans-serif; font-size:13px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.cp-footer ul { list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.cp-footer nav a { position:relative; font-size:15px; color:#5d5675; display:inline-block; padding-left:0; }
.cp-footer nav a:hover { color:#57349f; transform:translateX(4px); }

.cp-f-brand img { width:180px; height:auto; display:block; }
.cp-f-about { margin-top:16px; max-width:330px; font-size:14.8px; line-height:1.75; color:#5d5675; }
.cp-f-social { display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.cp-f-social a { width:42px; height:42px; border-radius:13px; background:#f4f0fd; color:#4b24a0; display:inline-flex; align-items:center; justify-content:center; font-size:17px; }
.cp-f-social a:hover { background:#3f1b80; color:#fff; transform:translateY(-3px); box-shadow:0 10px 20px -8px rgba(87,52,159,.7); }

.cp-f-contact { padding:22px 22px 24px; border-radius:20px; background:#f8f5ff; border:1px solid #ece7f7; }
.cp-f-contact ul { gap:14px; }
.cp-f-contact li { display:flex; gap:12px; align-items:flex-start; font-size:14.5px; line-height:1.5; color:#3a3450; }
.cp-f-contact li > svg { width:34px; height:34px; padding:8px; flex:none; margin-top:-2px; border-radius:10px; background:#fff; color:#57349f; box-shadow:0 2px 8px rgba(39,17,81,.08); }
.cp-f-contact a:hover { color:#57349f; }
.cp-f-hours { white-space:pre-line; }

.cp-f-bottom { margin-top:40px; padding-top:20px; border-top:1px solid #ece7f7; display:flex; flex-wrap:wrap; gap:12px 28px; justify-content:space-between; align-items:center; font-size:13.8px; color:#7a7391; }
.cp-f-bottom p { margin:0; }
.cp-f-bottom ul { display:flex; flex-wrap:wrap; gap:8px 22px; }
.cp-f-bottom a:hover { color:#57349f; }

@media (max-width:1100px) { .cp-f-grid { grid-template-columns:repeat(3,1fr); } .cp-f-brand { grid-column:1/-1; } .cp-f-brand .cp-f-about { max-width:560px; } .cp-f-contact { grid-column:span 2; } }
@media (max-width:640px) {
  .cp-f-wrap { padding-top:44px; }
  .cp-f-cta-btns { width:100%; } .cp-f-btn { flex:1; justify-content:center; }
  .cp-f-grid { grid-template-columns:1fr 1fr; gap:28px 18px; } .cp-f-contact { grid-column:1/-1; }
  .cp-f-bottom { flex-direction:column; align-items:flex-start; }
}

/* award badge */
.cp-f-award { display:inline-flex; align-items:center; gap:12px; margin-top:20px; padding:10px 18px 10px 10px; border-radius:16px; background:linear-gradient(135deg,#fff8e6,#fff2cc); border:1px solid #f1dc9a; box-shadow:0 8px 20px -12px rgba(176,124,0,.6); }
.cp-f-award-ico { width:40px; height:40px; border-radius:12px; flex:none; display:inline-flex; align-items:center; justify-content:center; color:#fff; background:linear-gradient(135deg,#f5b301,#d98a00); }
.cp-f-award-ico svg { width:22px; height:22px; }
.cp-f-award-txt strong { display:block; color:#5a3b00; font-size:14.5px; line-height:1.2; font-family:hankenGrotesk, Inter, system-ui, sans-serif; }
.cp-f-award-txt small { display:block; color:#8a6410; font-size:12.5px; font-weight:600; margin-top:2px; }

/* one-time award pop-up */
.cp-pop { position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center; padding:20px; background:rgba(21,10,48,.6); backdrop-filter:blur(3px); opacity:0; transition:opacity .22s; }
.cp-pop[hidden] { display:none; } .cp-pop.on { opacity:1; }
.cp-pop * { box-sizing:border-box; }
.cp-pop-card { position:relative; width:100%; max-width:440px; padding:38px 32px 30px; border-radius:26px; text-align:center; background:radial-gradient(360px 200px at 50% -10%, rgba(245,179,1,.28), transparent 70%), #fff; box-shadow:0 40px 90px -20px rgba(21,10,48,.7); transform:translateY(14px) scale(.97); transition:transform .25s; }
.cp-pop.on .cp-pop-card { transform:none; }
.cp-pop-x { position:absolute; top:12px; right:14px; width:36px; height:36px; border:0; border-radius:50%; background:#f4f0fd; color:#271151; font-size:24px; line-height:1; cursor:pointer; transition:.15s; }
.cp-pop-x:hover { background:#271151; color:#fff; }
.cp-pop-medal { width:76px; height:76px; margin:0 auto 14px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; background:linear-gradient(135deg,#f5b301,#d98a00); box-shadow:0 14px 30px -10px rgba(217,138,0,.8), 0 0 0 8px rgba(245,179,1,.18); }
.cp-pop-medal svg { width:40px; height:40px; }
.cp-pop-kicker { margin:0 0 6px; color:#b07800; font-weight:800; font-size:13px; letter-spacing:.08em; text-transform:uppercase; }
.cp-pop h2 { margin:0 0 12px; color:#271151; font-family:hankenGrotesk, Inter, system-ui, sans-serif; font-size:26px; line-height:1.2; font-weight:800; letter-spacing:-.01em; }
.cp-pop-years { display:flex; justify-content:center; gap:10px; margin:0 0 14px; }
.cp-pop-years span { padding:5px 16px; border-radius:99px; background:#fff4d6; border:1px solid #f1dc9a; color:#7a5400; font-weight:800; font-size:15px; }
.cp-pop-text { margin:0 0 22px; color:#5d5675; font-size:15.5px; line-height:1.6; }
.cp-pop-btns { display:flex; flex-direction:column; gap:10px; }
.cp-pop-cta { display:block; padding:13px 20px; border-radius:99px; background:#271151; color:#fff !important; font-weight:800; font-size:15px; text-decoration:none; transition:.15s; }
.cp-pop-cta:hover { background:#3f1b80; transform:translateY(-1px); }
.cp-pop-later { border:0; background:none; color:#6a6382; font:inherit; font-weight:700; font-size:14px; padding:8px; cursor:pointer; }
.cp-pop-later:hover { color:#271151; text-decoration:underline; }
@media (prefers-reduced-motion:reduce) { .cp-pop, .cp-pop-card { transition:none; } }
