/* ClassGuru — additive layer.
   Loaded after style.css. Nothing here overrides existing rules except where noted.
   Safe to remove this file (and its enqueue) to return to the original design. */

/* ---------- tokens ---------- */
:root{
  --cg-ink:#122139;--cg-blue:#1761eb;--cg-blue-deep:#124dca;--cg-mist:#f6f8fc;
  --cg-line:#e4e9f1;--cg-soft:#66768e;--cg-green:#1f8f6d;--cg-violet:#5b46e5;--cg-amber:#c9761a;
  --cg-ease:cubic-bezier(.22,.72,.28,1);
}

/* ---------- scroll reveal ---------- */
/* Hidden only when JS has confirmed it is running, so content never disappears. */
html.cg-anim [data-reveal]{opacity:0;transform:translateY(20px);will-change:opacity,transform;
  transition:opacity .66s var(--cg-ease),transform .66s var(--cg-ease);transition-delay:var(--cg-delay,0ms)}
html.cg-anim [data-reveal="fade"]{transform:none}
html.cg-anim [data-reveal="left"]{transform:translateX(-24px)}
html.cg-anim [data-reveal="right"]{transform:translateX(24px)}
html.cg-anim [data-reveal="zoom"]{transform:scale(.965)}
html.cg-anim [data-reveal].is-in{opacity:1;transform:none}

/* ---------- reading progress + sticky header ---------- */
.cg-progress{position:fixed;top:0;left:0;height:3px;width:100%;transform:scaleX(0);transform-origin:0 50%;
  background:linear-gradient(90deg,#1761eb,#57a0ff);z-index:60;pointer-events:none}
body.admin-bar .cg-progress{top:32px}
.header{transition:height .28s var(--cg-ease),box-shadow .28s var(--cg-ease),background .28s var(--cg-ease)}
.header.is-stuck{height:70px;box-shadow:0 10px 30px #12213910;background:#fffffff5}
.header.is-stuck .brand{font-size:22px}

/* ---------- navigation dropdowns ---------- */
.nav-links{position:relative}
.cg-drop{position:relative}
.cg-drop>button{background:none;border:0;padding:0;display:inline-flex;align-items:center;gap:6px;
  font-size:14px;font-weight:500;color:#5c6779;line-height:inherit}
.cg-drop>button:hover,.cg-drop[data-open="true"]>button{color:var(--cg-blue)}
.cg-drop>button svg{width:14px;height:14px;transition:transform .22s var(--cg-ease)}
.cg-drop[data-open="true"]>button svg{transform:rotate(180deg)}
.cg-drop-panel{position:absolute;top:calc(100% + 18px);left:-18px;min-width:286px;background:#fff;
  border:1px solid var(--cg-line);border-radius:13px;box-shadow:0 24px 50px #12213918;padding:10px;
  display:grid;gap:2px;opacity:0;visibility:hidden;transform:translateY(-8px);
  transition:opacity .2s var(--cg-ease),transform .2s var(--cg-ease),visibility .2s;z-index:50}
.cg-drop[data-open="true"] .cg-drop-panel{opacity:1;visibility:visible;transform:none}
.cg-drop-panel a{display:flex;gap:12px;align-items:flex-start;padding:11px 12px;border-radius:9px;transition:background .18s}
.cg-drop-panel a:hover{background:#f2f7ff}
.cg-drop-panel svg{width:18px;height:18px;color:var(--cg-blue);margin-top:3px;stroke-width:1.7}
.cg-drop-panel strong{display:block;font-size:14px;font-weight:600;color:var(--cg-ink)}
.cg-drop-panel span{display:block;font-size:12px;color:var(--cg-soft);line-height:1.55;margin-top:2px}
.cg-mobile-links .cg-drop{display:block}
.cg-mobile-links .cg-drop-panel{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;
  border:0;padding:8px 0 0 12px;min-width:0}
@media(max-width:860px){.cg-drop-panel span{display:none}}

/* ---------- hero atmosphere ---------- */
.hero{isolation:isolate}
.cg-orb{position:absolute;border-radius:50%;filter:blur(64px);opacity:.5;pointer-events:none;z-index:-1}
.cg-orb-a{width:420px;height:420px;background:#bcd8ff;top:-140px;left:-120px;animation:cg-drift 17s ease-in-out infinite}
.cg-orb-b{width:340px;height:340px;background:#d8e6ff;bottom:-150px;right:6%;animation:cg-drift 21s ease-in-out infinite reverse}
@keyframes cg-drift{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(26px,-30px,0)}}
.hero-art{animation:cg-hover 7.5s ease-in-out infinite}
@keyframes cg-hover{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
.notice-float{animation:cg-nudge 7.5s ease-in-out infinite}
@keyframes cg-nudge{0%,100%{transform:rotate(-2deg) translateY(0)}50%{transform:rotate(-2deg) translateY(7px)}}
.bar-group i{animation:cg-grow .9s var(--cg-ease) both}
@keyframes cg-grow{from{height:0}}

/* ---------- counters / metric band ---------- */
.cg-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:26px}
.cg-metric{padding:26px 24px;border:1px solid var(--cg-line);border-radius:14px;background:#fff}
.cg-metric b{display:block;font-size:clamp(34px,3.6vw,46px);font-weight:660;letter-spacing:-.045em;line-height:1.05;color:var(--cg-ink)}
.cg-metric small{display:block;font-size:13px;color:var(--cg-soft);margin-top:10px;line-height:1.6}
.cg-metric i{font-style:normal;color:var(--cg-blue)}
@media(max-width:860px){.cg-metrics{grid-template-columns:repeat(2,1fr);gap:16px}}
@media(max-width:560px){.cg-metric{padding:20px 18px}}

/* ---------- live attendance ticker (product-specific motion) ---------- */
.cg-live{border:1px solid var(--cg-line);border-radius:16px;background:#fff;overflow:hidden;
  box-shadow:0 18px 44px #1e52870f}
.cg-live-head{display:flex;align-items:center;gap:11px;padding:16px 20px;border-bottom:1px solid #eef2f8;font-size:13px;color:#4c5b73}
.cg-live-dot{width:9px;height:9px;border-radius:50%;background:var(--cg-green);position:relative}
.cg-live-dot:after{content:"";position:absolute;inset:-5px;border-radius:50%;border:2px solid var(--cg-green);
  opacity:0;animation:cg-ping 2.4s ease-out infinite}
@keyframes cg-ping{0%{transform:scale(.6);opacity:.65}100%{transform:scale(1.5);opacity:0}}
.cg-live-head strong{font-weight:600;color:var(--cg-ink)}
.cg-live-list{list-style:none;margin:0;padding:8px 12px;max-height:268px;overflow:hidden}
.cg-live-list li{display:flex;align-items:center;gap:13px;padding:12px 10px;border-radius:9px;font-size:13px;
  animation:cg-slide-in .5s var(--cg-ease) both}
.cg-live-list li:nth-child(odd){background:#fafcff}
@keyframes cg-slide-in{from{opacity:0;transform:translateY(-10px)}}
.cg-live-avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;
  background:#eaf2ff;color:#2756a9;font-size:11px;font-weight:650}
.cg-live-list strong{font-weight:600;color:var(--cg-ink);display:block}
.cg-live-list span{color:#7a879b;font-size:11px}
.cg-live-tag{margin-left:auto;font-size:10px;font-weight:600;padding:4px 9px;border-radius:20px;white-space:nowrap}
.cg-live-in{background:#e9f7f0;color:#1c7a5c}
.cg-live-out{background:#fdf0e7;color:#a25b18}
.cg-live-foot{padding:13px 20px;border-top:1px solid #eef2f8;font-size:11px;color:#8a97aa}

/* ---------- logo / client marquee ---------- */
.cg-marquee{overflow:hidden;position:relative;
  mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent)}
.cg-marquee-track{display:flex;gap:56px;width:max-content;animation:cg-scroll 34s linear infinite}
.cg-marquee:hover .cg-marquee-track{animation-play-state:paused}
@keyframes cg-scroll{to{transform:translateX(-50%)}}
.cg-chip{display:inline-flex;align-items:center;gap:10px;font-size:15px;font-weight:600;color:#54657f;white-space:nowrap}
.cg-chip svg{width:19px;height:19px;color:#94a6bd}

/* ---------- pricing ---------- */
.cg-plans{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;align-items:start}
.cg-plan{border:1px solid var(--cg-line);border-radius:16px;padding:32px 30px;background:#fff;
  transition:transform .25s var(--cg-ease),box-shadow .25s var(--cg-ease),border-color .25s}
.cg-plan:hover{transform:translateY(-5px);box-shadow:0 22px 48px #12345612;border-color:#bcd6ff}
.cg-plan h3{font-size:21px;letter-spacing:-.02em}
.cg-plan>p{font-size:14px;color:var(--cg-soft);line-height:1.75;margin-top:9px;min-height:44px}
.cg-price{display:flex;align-items:baseline;gap:8px;margin:22px 0 6px}
.cg-price b{font-size:34px;font-weight:660;letter-spacing:-.04em}
.cg-price span{font-size:13px;color:var(--cg-soft)}
.cg-plan .check-list{margin-top:24px}
.cg-plan .check-list li{font-size:13.5px}
.cg-plan .button{width:100%;margin-top:26px}
.cg-plan-featured{border-color:var(--cg-blue);box-shadow:0 20px 44px #1761eb1a;position:relative}
.cg-plan-featured:before{content:"Most chosen";position:absolute;top:-12px;left:30px;background:var(--cg-blue);
  color:#fff;font-size:11px;font-weight:600;padding:5px 12px;border-radius:20px}
@media(max-width:860px){.cg-plans{grid-template-columns:1fr;gap:18px}.cg-plan>p{min-height:0}}

.cg-table-wrap{overflow-x:auto;border:1px solid var(--cg-line);border-radius:14px;background:#fff}
.cg-table{width:100%;border-collapse:collapse;min-width:620px;font-size:14px}
.cg-table th,.cg-table td{padding:15px 20px;text-align:left;border-bottom:1px solid #eef2f8}
.cg-table thead th{font-size:12px;font-weight:650;color:var(--cg-ink);background:#f8fafd;white-space:nowrap}
.cg-table td:not(:first-child),.cg-table th:not(:first-child){text-align:center}
.cg-table tbody tr:last-child td{border-bottom:0}
.cg-table td:first-child{color:#465872;font-weight:500}
.cg-yes{color:var(--cg-green);font-weight:700}
.cg-no{color:#b9c3d2}

/* ---------- timeline ---------- */
.cg-timeline{position:relative;padding-left:38px;margin-top:10px}
.cg-timeline:before{content:"";position:absolute;left:11px;top:8px;bottom:8px;width:2px;background:linear-gradient(#cfe1fb,#eaf1fb)}
.cg-tl-item{position:relative;padding:0 0 34px}
.cg-tl-item:last-child{padding-bottom:0}
.cg-tl-item:before{content:"";position:absolute;left:-33px;top:6px;width:14px;height:14px;border-radius:50%;
  background:#fff;border:3px solid var(--cg-blue)}
.cg-tl-item h3{font-size:18px;margin-bottom:8px}
.cg-tl-item p{font-size:14.5px;color:var(--cg-soft);line-height:1.8}
.cg-tl-when{font-size:11px;font-weight:650;color:var(--cg-blue);letter-spacing:.08em;text-transform:uppercase;display:block;margin-bottom:7px}

/* ---------- quotes ---------- */
.cg-quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.cg-quote{border:1px solid var(--cg-line);border-radius:14px;padding:30px;background:#fff;display:flex;flex-direction:column;gap:18px}
.cg-quote p{font-size:15px;line-height:1.85;color:#40506b}
.cg-quote footer{display:flex;align-items:center;gap:12px;margin-top:auto;padding-top:6px}
.cg-quote-avatar{width:40px;height:40px;border-radius:50%;background:#edf4ff;color:var(--cg-blue);display:grid;place-items:center;font-weight:650;font-size:14px}
.cg-quote strong{display:block;font-size:14px}
.cg-quote small{display:block;font-size:12px;color:var(--cg-soft)}
@media(max-width:860px){.cg-quotes{grid-template-columns:1fr}}

/* ---------- misc blocks ---------- */
.cg-split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.cg-split.cg-split-tight{gap:48px}
@media(max-width:860px){.cg-split{grid-template-columns:1fr;gap:36px}}
.cg-panel{border:1px solid var(--cg-line);border-radius:16px;background:#fff;padding:30px}
.cg-panel-soft{background:#f4f8ff;border-color:#dbe8fc}
.cg-badges{display:flex;flex-wrap:wrap;gap:9px;margin-top:22px}
.cg-badge{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;
  color:#41587a;background:#eef4ff;border:1px solid #dce8fb;padding:7px 12px;border-radius:20px}
.cg-badge svg{width:14px;height:14px;color:var(--cg-blue)}
.cg-note-band{background:#0e1c32;color:#fff;border-radius:16px;padding:40px 44px;display:flex;
  align-items:center;justify-content:space-between;gap:34px}
.cg-note-band h3{font-size:25px;letter-spacing:-.03em}
.cg-note-band p{color:#a8b7cd;font-size:14.5px;margin-top:9px;max-width:560px;line-height:1.8}
@media(max-width:860px){.cg-note-band{flex-direction:column;align-items:flex-start;padding:32px 26px}}

.cg-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.cg-grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
@media(max-width:860px){.cg-grid-3,.cg-grid-2{grid-template-columns:1fr}}

.cg-hostel{--cg-blue:var(--cg-violet)}
.cg-hostel .eyebrow,.cg-hostel .text-blue,.cg-hostel .inline-link{color:var(--cg-violet)}
.cg-hostel .feature-icon{background:#f0edff;color:var(--cg-violet)}
.cg-hostel .button-primary{background:var(--cg-violet);box-shadow:0 5px 12px #5b46e51f}
.cg-hostel .button-primary:hover{background:#4a37c4}
.cg-hostel .step-number{background:#f0edff;border-color:#ddd6ff;color:var(--cg-violet)}
.cg-hostel .check-list svg{color:var(--cg-violet)}

/* ---------- booking form ---------- */
.cg-slot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:4px}
.cg-slot{border:1px solid #dce4ef;background:#fff;border-radius:8px;padding:12px 8px;font-size:13px;
  font-weight:600;color:#4d5e78;transition:border-color .18s,background .18s,color .18s,transform .18s}
.cg-slot:hover{border-color:#a9c9fb;transform:translateY(-2px)}
.cg-slot[aria-pressed="true"]{border-color:var(--cg-blue);background:#eef4ff;color:var(--cg-blue);box-shadow:0 0 0 3px #e2edff}
.cg-slot small{display:block;font-weight:500;font-size:11px;color:#8a97aa;margin-top:3px}
.cg-slot[aria-pressed="true"] small{color:#5f86c9}
@media(max-width:560px){.cg-slot-grid{grid-template-columns:repeat(2,1fr)}}
.cg-mode-row{display:flex;gap:10px;flex-wrap:wrap}
.cg-mode{flex:1 1 150px;border:1px solid #dce4ef;border-radius:8px;padding:13px;background:#fff;text-align:left;
  font-size:13px;font-weight:600;color:#4d5e78;display:flex;gap:10px;align-items:center;transition:border-color .18s,background .18s}
.cg-mode svg{width:17px;height:17px;color:#8b9ab0}
.cg-mode[aria-pressed="true"]{border-color:var(--cg-blue);background:#eef4ff;color:var(--cg-blue)}
.cg-mode[aria-pressed="true"] svg{color:var(--cg-blue)}
.cg-summary{background:#f4f8ff;border:1px dashed #c8dcfb;border-radius:10px;padding:15px 17px;margin:22px 0 0;
  font-size:13px;color:#41587a;line-height:1.8}
.cg-summary strong{color:var(--cg-ink)}
.form-field input[type="date"]{min-height:46px}

/* ---------- floating actions ---------- */
.cg-float{position:fixed;right:20px;bottom:20px;z-index:45;display:flex;flex-direction:column;gap:11px}
.cg-float a,.cg-float button{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;border:0;
  box-shadow:0 10px 26px #10203a26;transition:transform .2s var(--cg-ease),opacity .2s}
.cg-float a:hover,.cg-float button:hover{transform:translateY(-3px)}
.cg-float svg{width:22px;height:22px}
.cg-wa{background:#22b357;color:#fff;position:relative}
.cg-wa:after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #22b357;opacity:0;
  animation:cg-ping 2.8s ease-out infinite}
.cg-top{background:#fff;color:#33445f;border:1px solid var(--cg-line)!important;opacity:0;pointer-events:none}
.cg-top.is-on{opacity:1;pointer-events:auto}
@media(max-width:560px){.cg-float{right:14px;bottom:14px}.cg-float a,.cg-float button{width:46px;height:46px}}

/* ---------- small helpers ---------- */
.cg-center{text-align:center}
.cg-mt-s{margin-top:18px}.cg-mt-m{margin-top:34px}.cg-mt-l{margin-top:54px}
.cg-lede{font-size:17px;color:var(--cg-soft);line-height:1.8;max-width:62ch}
.cg-kicker{font-size:13px;color:var(--cg-soft);line-height:1.8}
.cg-anchor{scroll-margin-top:110px}
.page-hero .cg-badges{justify-content:center}

/* ---------- reduced motion: content must always be visible ---------- */
@media(prefers-reduced-motion:reduce){
  html.cg-anim [data-reveal]{opacity:1!important;transform:none!important}
  .hero-art,.notice-float,.cg-orb,.cg-live-dot:after,.cg-wa:after,.cg-marquee-track,.bar-group i,.cg-live-list li{animation:none!important}
  .cg-progress{display:none}
}
