:root{
  --ink:#2B0F53; --ink-soft:#5E4A7E; --paper:#F5EAFE; --surface:#FFFFFF;
  --line:#E4D2F8; --teal:#6A1FB3; --teal-soft:#EEE0FD; --saffron:#C026D3; --saffron-soft:#FAE3FC;
  --rose:#C0264B; --rose-soft:#FBE3EA; --slate:#2B0F53; --slate-ink:#F5EAFE; --skin:#E9B98F; --skin2:#B97A55;
  --g1:#DBB4FE; --g2:#C026D3; --on-pri:#FFFFFF; --on-teal:#FFFFFF; --lav:#DBB4FE; color-scheme: light; box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ink:#F5EAFE; --ink-soft:#C9B5E6; --paper:#14072A; --surface:#1F0E3D;
    --line:#3A2363; --teal:#C49AF7; --teal-soft:#2E1656; --saffron:#E266F0; --saffron-soft:#3B1342;
    --rose:#F08AA0; --rose-soft:#3D1D27; --slate:#0D0420; --slate-ink:#F5EAFE; --g1:#DBB4FE; --g2:#E266F0; --on-pri:#1A0533; --on-teal:#14072A; --lav:#DBB4FE; color-scheme: dark;
  }
}
:root[data-theme="dark"]{
  --ink:#F5EAFE; --ink-soft:#C9B5E6; --paper:#14072A; --surface:#1F0E3D;
    --line:#3A2363; --teal:#C49AF7; --teal-soft:#2E1656; --saffron:#E266F0; --saffron-soft:#3B1342;
    --rose:#F08AA0; --rose-soft:#3D1D27; --slate:#0D0420; --slate-ink:#F5EAFE; --g1:#DBB4FE; --g2:#E266F0; --on-pri:#1A0533; --on-teal:#14072A; --lav:#DBB4FE; color-scheme: dark;
}
*,*::before,*::after{box-sizing:inherit}
html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + 80px)}
@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Manrope","Readex Pro","Noto Sans SC","Segoe UI",Tahoma,Arial,sans-serif;font-weight:400;font-size:1.0625rem;line-height:1.6}
html:lang(zh) body{font-family:"Noto Sans SC","Readex Pro","PingFang SC","Microsoft YaHei",sans-serif;font-weight:400}
img,svg{max-width:100%}
a{color:inherit}
:focus-visible{outline:3px solid var(--saffron);outline-offset:3px;border-radius:4px}
.wrap{max-width:1140px;margin:0 auto;padding:0 1.25rem}
h1,h2,h3,h4{font-family:"Sora","Readex Pro","Noto Sans SC",sans-serif;font-weight:600;line-height:1.2;margin:0 0 .6em;letter-spacing:-.01em}
html:lang(ar) body,html:lang(ar) h1,html:lang(ar) h2,html:lang(ar) h3,html:lang(ar) h4{font-family:"Readex Pro","Manrope",sans-serif;letter-spacing:0}
html:lang(zh) h1,html:lang(zh) h2,html:lang(zh) h3,html:lang(zh) h4{font-family:"Noto Sans SC","Sora",sans-serif;letter-spacing:0}
.offer .price,.rung strong,.pk,.num{font-family:"Sora","Manrope",sans-serif}
.sig{font-family:"Sora",sans-serif;font-weight:600;font-size:.88rem;letter-spacing:.14em;text-transform:uppercase;color:var(--saffron);margin:0 0 1rem;display:flex;align-items:center;gap:.7rem}
.sig::before{content:"";width:28px;height:2px;background:linear-gradient(90deg,var(--teal),var(--saffron));border-radius:2px}
.foot-sig{font-family:"Sora",sans-serif;font-weight:600;color:var(--teal)}
h2{font-size:clamp(1.6rem,3.2vw,2.3rem)}
h3{font-size:1.18rem}
p{margin:0 0 1em;max-width:68ch}
.muted{color:var(--ink-soft)}
.small{font-size:.88rem;color:var(--ink-soft)}
section.block{padding:4rem 0}
.alt{background:var(--surface);border-block:1px solid var(--line)}

body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--paper)}
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:9;background:var(--paper);border-bottom:1px solid var(--line)}
.promo{background:var(--slate);color:var(--slate-ink);font-size:.9rem;text-align:center;padding:.45rem 1rem}
.promo a{color:var(--lav);font-weight:600}
.bar{display:flex;align-items:center;gap:1rem;min-height:64px}
.logo{flex:none;display:flex;align-items:center;gap:.6rem;font-weight:700;font-size:1.12rem;text-decoration:none;white-space:nowrap}
.mark{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:var(--slate);color:var(--lav);font-size:1.4rem}
nav.main{display:flex;align-items:center;gap:.85rem;margin-inline-start:auto;font-size:.9rem}
nav.main a{white-space:nowrap}
nav.main a{text-decoration:none;color:var(--ink-soft);padding:.3rem 0;border-bottom:2px solid transparent}
nav.main a:hover{color:var(--ink)}
nav.main a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--saffron)}
.langs{display:flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;flex:none}
.langs button{border:0;background:transparent;color:var(--ink-soft);padding:.35rem .65rem;font:inherit;font-size:.88rem;cursor:pointer}
.langs button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.menubtn{display:none;border:1px solid var(--line);background:transparent;color:var(--ink);font:inherit;padding:.35rem .75rem;border-radius:10px;cursor:pointer}
@media (max-width:1240px){
  .menubtn{display:block;margin-inline-start:auto}
  nav.main{display:none;position:absolute;inset-inline:0;top:100%;background:var(--paper);flex-direction:column;gap:0;padding:.5rem 1.25rem 1rem;border-bottom:1px solid var(--line)}
  nav.main.open{display:flex}
  nav.main a{padding:.7rem 0;border-bottom:1px solid var(--line)}
}

.view{display:none}
.view.on{display:block}

.hero{padding:3rem 0 3.5rem}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:2.5rem;align-items:center}
@media (max-width:860px){.hero-grid{grid-template-columns:1fr}}
.hero h1{font-size:clamp(2rem,4.6vw,3.2rem);font-weight:700;letter-spacing:-.025em}
.lead{font-size:1.15rem;color:var(--ink-soft)}
.btns{display:flex;flex-wrap:wrap;gap:.75rem;margin:1.5rem 0}
.btn{display:inline-block;border:0;cursor:pointer;font:inherit;font-weight:600;padding:.8rem 1.25rem;border-radius:12px;text-decoration:none;text-align:center}
.btn.primary{background:var(--saffron);color:var(--on-pri)}
.btn.teal{background:var(--teal);color:var(--on-teal)}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}
.btn.small{padding:.5rem .9rem;font-size:.92rem}
.btn:disabled{opacity:.45;cursor:not-allowed}
.facts{display:flex;flex-wrap:wrap;gap:.5rem;padding:0;margin:0;list-style:none}
.facts li{font-size:.88rem;padding:.3rem .75rem;border-radius:999px;background:var(--teal-soft);color:var(--teal);font-weight:500}
.illus{width:100%;height:auto;display:block}

.why{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-top:2rem}
@media (max-width:860px){.why{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.why{grid-template-columns:1fr}}
.why div{border-top:3px solid var(--teal);padding-top:1rem}
.why p{color:var(--ink-soft);font-size:.96rem}

.offers{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:1.25rem;margin-top:2rem}
.licon{width:84px;height:84px;border-radius:22px;display:grid;place-items:center;color:#fff;font-size:2.4rem;font-weight:600;margin-bottom:1rem;box-shadow:0 8px 20px rgba(43,15,83,.18);font-family:"Readex Pro","Noto Sans SC","Sora",sans-serif}
.kids-band{display:grid;grid-template-columns:1fr 1.2fr;gap:2rem;align-items:center;text-decoration:none;color:var(--ink);background:linear-gradient(135deg,#FFF4D6,#FDE2F3 55%,#E9DDFF);border-radius:26px;padding:2rem;box-shadow:0 12px 30px rgba(43,15,83,.12)}
:root[data-theme="dark"] .kids-band{color:#2B0F53}@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .kids-band{color:#2B0F53}}
.kids-band h2{margin:.4rem 0}.kids-band p{color:#5E4A7E}
.kb-tag{display:inline-block;background:#2B0F53;color:#fff;border-radius:999px;padding:.2rem .8rem;font-size:.85rem;font-weight:600}
.kb-cards{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.kb-c{display:flex;flex-direction:column;align-items:center;gap:.2rem;background:#fff;border-radius:18px;padding:1rem .5rem;font-size:2.2rem;box-shadow:0 6px 16px rgba(43,15,83,.12)}
.kb-c b{font-size:1.05rem;font-weight:600;color:#2B0F53}.kb-c.c1{transform:rotate(-4deg)}.kb-c.c2{transform:rotate(3deg)}.kb-c.c3{transform:rotate(2deg)}.kb-c.c4{transform:rotate(-3deg)}
@media (max-width:760px){.kids-band{grid-template-columns:1fr;padding:1.4rem}}
.join{display:grid;grid-template-columns:1.2fr 1fr;gap:1.2rem;align-items:center;margin:1.25rem 0;border:2px solid var(--teal)}
.join-act{display:grid;gap:.4rem}.join-act select{margin:0}.join-act .btn{text-align:center}
@media (max-width:760px){.join{grid-template-columns:1fr}}
.btn.off{opacity:.45;pointer-events:none}
.tasks{list-style:none;padding:0;margin:.6rem 0 0;display:grid;gap:.6rem}
.task{display:flex;gap:.8rem;align-items:flex-start;border:1px solid var(--line);border-radius:14px;padding:.8rem 1rem;background:var(--paper)}
.task.done{opacity:.6}.task.done strong{text-decoration:line-through}
.task input{margin-top:.35rem;accent-color:var(--teal);width:1.1rem;height:1.1rem}
.task-b{flex:1;display:grid;gap:.25rem}.task-b p{margin:0;color:var(--ink-soft);font-size:.94rem;white-space:pre-wrap}
.task .btn{justify-self:start;margin-top:.3rem}
.booking>*,.row>*,.row3>*,.dash>*{min-width:0}select{max-width:100%;text-overflow:ellipsis}
.lb-filters{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:.6rem;margin:.8rem 0 .4rem}.lb-filters>*{margin:0;min-width:0}
@media (max-width:760px){.lb-filters{grid-template-columns:1fr 1fr}.lb-filters input{grid-column:1/-1}}
.lb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.8rem;margin-top:.6rem}
.lb-card{border:1px solid var(--line);border-radius:14px;padding:.9rem 1rem;background:var(--paper);display:flex;flex-direction:column;gap:.35rem}
.lb-card h4{margin:0;font-size:1rem}.lb-card p{margin:0;color:var(--ink-soft);font-size:.9rem;flex:1}
.lb-tags{display:flex;flex-wrap:wrap;gap:.3rem}.lb-tags span{font-size:.75rem;padding:.1rem .5rem;border-radius:999px;background:var(--teal-soft);color:var(--teal);font-weight:600}
.lb-tags span.ty{background:var(--saffron-soft);color:var(--ink)}
.lb-card .btn{align-self:flex-start;margin-top:.3rem}
.lb-prop{margin-top:1.2rem;border-top:1px solid var(--line);padding-top:.8rem}.lb-prop summary{color:var(--teal);font-weight:600}
.tools{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.7rem;margin-top:.6rem}
.tool{display:flex;gap:.7rem;align-items:center;border:1px solid var(--line);border-radius:14px;padding:.7rem .8rem;text-decoration:none;background:var(--paper)}
.tool:hover{border-color:var(--teal)}.tool b{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:10px;background:var(--slate);color:var(--lav);font-size:1rem}
.tool span{display:flex;flex-direction:column;font-weight:600;font-size:.95rem}.tool small{font-weight:400;color:var(--ink-soft);font-size:.8rem}
.vz-go{display:flex;align-items:flex-end}.vz-go .btn{width:100%;margin-bottom:1rem}
.vz-wrap{position:relative;min-height:560px;border-radius:18px;overflow:hidden;background:#1a1a1a;margin-top:1rem}
#zoomRoot{width:100%;min-height:560px}
.gb-reply{margin-top:.8rem;border-inline-start:3px solid var(--teal);background:var(--teal-soft);border-radius:0 10px 10px 0;padding:.6rem .8rem}.gb-reply b{font-size:.85rem;color:var(--teal)}.gb-reply p{margin:.2rem 0 0;font-size:.93rem;color:var(--ink)}
.aa-key{display:grid;grid-template-columns:auto minmax(160px,280px) auto;gap:.6rem;align-items:center;margin:.6rem 0}.aa-key label,.aa-key input{margin:0}
@media (max-width:600px){.aa-key{grid-template-columns:1fr}}
.aa-item{border:1px solid var(--line);border-radius:14px;padding:.9rem 1rem;margin-top:.7rem;background:var(--paper)}
.aa-head{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;font-size:.9rem}.aa-head .stars{font-size:1rem}
.aa-st{font-size:.75rem;font-weight:700;padding:.1rem .55rem;border-radius:999px}.aa-st.oui{background:var(--teal-soft);color:var(--teal)}.aa-st.wait{background:var(--saffron-soft);color:var(--ink)}.aa-st.non{background:var(--rose-soft);color:var(--rose)}
.aa-item p{margin:.4rem 0;color:var(--ink)}.aa-item textarea{min-height:60px;margin-bottom:.5rem}
.shares{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:.6rem;flex-wrap:wrap}.shares.sm{justify-content:flex-start;margin:0}
.sh-l{font-size:.9rem;color:var(--ink-soft);margin-inline-end:.2rem}
.sh{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;border:0;cursor:pointer;color:#fff;text-decoration:none;transition:transform .15s,box-shadow .15s;padding:0}
.sh:hover{transform:translateY(-2px);box-shadow:0 6px 14px rgba(0,0,0,.18)}
.sh.wa{background:#25D366}.sh.fb{background:#1877F2}.sh.ml{background:#6A1FB3}.sh.cp{background:#5E4A7E}
.shares.sm .sh{width:34px;height:34px}.shares.sm .sh svg{width:17px;height:17px}
.sharebtn{display:inline-flex;align-items:center;gap:.5rem;border:0;cursor:pointer;font:inherit;font-weight:600;font-size:.95rem;color:#fff;background:linear-gradient(135deg,#6A1FB3,#C026D3);padding:.6rem 1.15rem;border-radius:999px;box-shadow:0 6px 16px rgba(106,31,179,.28);transition:transform .15s,box-shadow .15s;margin-top:.4rem}
.sharebtn:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(106,31,179,.36)}.sharebtn:active{transform:none}
.sharebtn.sm{font-size:.85rem;padding:.45rem .9rem;box-shadow:none;margin:0}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--slate);color:var(--slate-ink);padding:.7rem 1.1rem;border-radius:12px;font-size:.95rem;z-index:50;box-shadow:0 8px 24px rgba(0,0,0,.25)}
.dr{border:1px solid var(--line);border-radius:16px;padding:1rem;background:var(--paper);margin:.8rem 0 1.2rem}
.dr-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem}.dr-top h4{margin:0}
.dr .filters{margin:.7rem 0}
.dr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem}
.dr-tile{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:.8rem;display:flex;flex-direction:column;gap:.3rem}
.dr-tile b{font-family:"Sora","Readex Pro",sans-serif;font-size:1.05rem}.dr-tile .small{color:var(--ink-soft)}
.dr-tile .btn{align-self:flex-start;margin-top:.2rem;white-space:nowrap}.dr-tile .btn.teal{color:#fff!important}.dr-tile button.lnk{border:0;background:none;color:var(--teal);font:inherit;font-size:.85rem;padding:0;cursor:pointer;text-align:start;text-decoration:underline}
.tdash{margin:1.25rem 0;border:2px solid var(--teal)}
.tdash-id{display:flex;align-items:center;gap:.8rem;margin-bottom:1rem}.tdash-id label,.tdash-id select{margin:0}.tdash-id select{max-width:260px}
.tdash-acts{display:grid;grid-template-columns:repeat(4,1fr);gap:.9rem}@media (max-width:1000px){.tdash-acts{grid-template-columns:1fr 1fr}}@media (max-width:560px){.tdash-acts{grid-template-columns:1fr}}
.tact{display:flex;flex-direction:column;gap:.35rem;background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:1rem}
.tact-ic{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--slate);color:var(--lav);font-size:1.1rem}
.tact small{color:var(--ink-soft);flex:1}.tact .btn{align-self:stretch;text-align:center;margin-top:.3rem}
.ptabs{position:sticky;top:calc(env(safe-area-inset-top,0px) + 64px);z-index:5;display:flex;gap:.4rem;overflow-x:auto;padding:.6rem 0;margin:0 0 1rem;background:var(--paper);border-bottom:1px solid var(--line);scrollbar-width:thin}
.ptabs button{flex:none;font:inherit;font-size:.92rem;font-weight:600;padding:.5rem .95rem;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;white-space:nowrap}
.ptabs button[aria-pressed="true"]{background:var(--teal);color:var(--on-teal);border-color:var(--teal)}
[data-view="prof"] .dash{margin-top:0}
.stu-list{display:flex;flex-wrap:wrap;gap:.5rem;margin:.6rem 0}
.stu-chip{font:inherit;font-weight:600;padding:.5rem .9rem;border-radius:12px;border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;display:flex;flex-direction:column;align-items:flex-start;line-height:1.2}
.stu-chip small{font-weight:400;color:var(--ink-soft);font-size:.75rem}.stu-chip[aria-pressed="true"]{border-color:var(--teal);box-shadow:inset 0 0 0 2px var(--teal)}
.stu-add summary{color:var(--teal);font-weight:600;margin:.4rem 0}
.stu-fiche{margin-top:.8rem}.pg-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.6rem;margin:.8rem 0}.pg-info div{background:var(--teal-soft);border-radius:12px;padding:.6rem .8rem;font-size:.9rem}.pg-info b{display:block}.pg-mod{border:1px solid rgba(127,127,127,.3);border-radius:12px;margin:.5rem 0;padding:0 .9rem}.pg-mod summary{cursor:pointer;font-weight:700;padding:.65rem 0}.pg-mod summary small{font-weight:400;opacity:.75;margin-left:.4rem}.pg-mod .pg-th{font-size:.88rem;margin:.1rem 0 .5rem}.pg-tab{width:100%;min-width:640px;table-layout:fixed;border-collapse:collapse;font-size:.88rem;margin-bottom:.8rem}.pg-tab th,.pg-tab td{border-top:1px solid rgba(127,127,127,.25);padding:.4rem .45rem;text-align:start;vertical-align:top}.pg-tab td,.pg-tab th{white-space:normal!important;overflow-wrap:anywhere}.pg-tab td:first-child{font-weight:700}.pg-tab th:nth-child(1){width:3.4em}.pg-tab th:nth-child(2){width:36%}.pg-tab th:nth-child(3){width:24%}.pg-tab tr.pg-b td{background:var(--teal-soft)}.pg-bar{height:8px;background:rgba(127,127,127,.25);border-radius:8px;overflow:hidden;margin:.35rem 0}.pg-bar i{display:block;height:100%;background:var(--teal)}.sf-prog{flex:1 1 280px;font-size:.9rem}.ev-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem}.ev-grid input{width:100%}.pp-box{border-top:1px dashed rgba(127,127,127,.4);margin-top:.7rem;padding-top:.7rem}.pp-box iframe{width:100%;height:560px;border:1px solid rgba(127,127,127,.3);border-radius:12px;background:#fff;margin-top:.6rem}.ev-step{border:1px solid rgba(127,127,127,.3);border-radius:12px;padding:.7rem .9rem;margin:.6rem 0}.ev-step>b{display:block;margin-bottom:.3rem}.ev-co{margin:.6rem 0}.ev-co summary{cursor:pointer;font-weight:600}.ev-cotext{white-space:pre-line;background:var(--teal-soft);border-radius:10px;padding:.7rem .9rem;margin-top:.4rem;font-size:1.05rem;line-height:1.8}.ev-rub{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:.8rem}.ev-rub h5{margin:.2rem 0 .3rem;font-size:.95rem}.ev-rub p.small{margin:.1rem 0 .4rem}.ev-crit{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin:.25rem 0;font-size:.9rem}.ev-crit select{max-width:55%}.evalbox{position:fixed;inset:0;z-index:999;background:rgba(20,8,40,.55);overflow:auto;padding:16px}.evalin{max-width:760px;margin:0 auto;background:var(--surface,#fff);color:var(--ink);border-radius:18px;padding:1.2rem 1.2rem 1.5rem}.evq{border-top:1px solid rgba(127,127,127,.25);padding:.6rem 0}.evq p{margin:.1rem 0 .4rem;font-weight:600}.evq label{display:block;padding:.35rem .5rem;border-radius:8px;cursor:pointer}.evq label:hover{background:var(--teal-soft)}.evtext{background:var(--teal-soft);border-radius:12px;padding:.8rem 1rem;line-height:1.9;white-space:pre-line}.evtext.rtl{direction:rtl;text-align:right;font-size:1.2rem}.evscore{font-size:1.3rem;font-weight:700;margin:.6rem 0}.ev-alert{background:var(--teal-soft);border-radius:12px;padding:.6rem .9rem;margin:.6rem 0 0;font-size:.92rem}.sf{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;background:var(--teal-soft);border-radius:14px;padding:.9rem 1rem}
.sf h4{margin:0;font-size:1.2rem}.sf .lb-tags{margin-top:.3rem}
table.hist td{white-space:normal;vertical-align:top}table.hist td:first-child{white-space:nowrap}
.comp{display:flex;flex-wrap:wrap;gap:.35rem;margin:.2rem 0 .5rem}
.comp label{display:inline-flex;align-items:center;gap:.3rem;font-size:.85rem;padding:.3rem .6rem;border:1px solid var(--line);border-radius:999px;background:var(--paper);cursor:pointer}
.comp input{accent-color:var(--teal);margin:0}.comp label:has(input:checked){border-color:var(--teal);background:var(--teal-soft)}
.cal-mode{display:flex;gap:.4rem;margin:.4rem 0 .6rem;flex-wrap:wrap}.cal-mode button{font:inherit;font-size:.85rem;padding:.35rem .8rem;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer}.cal-mode button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
table.wkcal{table-layout:fixed;min-width:560px}table.wkcal th,table.wkcal td{text-align:center;padding:.15rem;font-size:.78rem;border:1px solid var(--line)}
table.wkcal td.on{background:var(--teal);color:var(--on-teal)}table.wkcal td.off{background:var(--paper)}table.wkcal th.h{width:58px;color:var(--ink-soft);font-weight:500}
table.wkcal thead th{text-transform:capitalize;white-space:normal;line-height:1.2}
.em-item{border:1px solid var(--line);border-radius:14px;padding:.8rem 1rem;margin-top:.6rem;background:var(--paper)}
.em-item .lb-tags{margin-bottom:.3rem}.em-item p{margin:.3rem 0;white-space:pre-wrap}
button.lnk{background:none;border:0;padding:0;color:var(--teal);text-decoration:underline;cursor:pointer;font:inherit;font-size:inherit}
.wk{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.5rem;margin:.4rem 0 .6rem}
@media (max-width:900px){.wk{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:520px){.wk{grid-template-columns:repeat(2,minmax(0,1fr))}}
.wk-day{border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:.6rem;min-height:120px;display:flex;flex-direction:column;gap:.35rem}
.wk-day.today{border-color:var(--teal);box-shadow:inset 0 0 0 1px var(--teal)}
.wk-h{display:flex;flex-direction:column;line-height:1.2;padding-bottom:.35rem;border-bottom:1px solid var(--line)}.wk-h b{text-transform:capitalize;font-size:.92rem}.wk-h span{font-size:.8rem;color:var(--ink-soft)}
.wk-slot{background:var(--teal-soft);color:var(--teal);border-inline-start:3px solid var(--teal);border-radius:8px;padding:.35rem .5rem;font-size:.82rem;font-weight:600}
.wk-off{color:var(--ink-soft);font-size:.8rem;font-style:italic}
.se-bar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:.6rem 0}.se-file{cursor:pointer}
.zk{font-weight:600}.zk.zk-ok{color:var(--teal)}.zk.zk-warn{color:#B7791F}.zk.zk-no{color:var(--rose)}
.crumb{font-size:.9rem;color:var(--ink-soft);margin-bottom:.8rem}.crumb a{color:var(--teal)}
.fd{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:1.6rem;max-width:860px}
.fd-top{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem 1.2rem;margin-bottom:1rem}.fd-top h2{margin:0}.fd-price{font-family:"Sora",sans-serif;font-size:1.5rem;font-weight:700;color:var(--teal)}
.fd dl{display:grid;grid-template-columns:minmax(120px,190px) 1fr;gap:0;margin:0 0 1.2rem}.fd dt,.fd dd{padding:.65rem 0;border-bottom:1px solid var(--line);margin:0}.fd dt{font-weight:600}.fd dd{color:var(--ink-soft)}
@media (max-width:560px){.fd dl{grid-template-columns:1fr}.fd dt{border-bottom:0;padding-bottom:0}}
.offer .more-l{font-size:.92rem;font-weight:600;color:var(--teal);margin-bottom:.8rem}
.infolink{margin:1.6rem 0 0;font-weight:600}.infolink a{color:var(--teal)}
.ibs{margin-top:1.5rem;display:grid;gap:.7rem}
.ib{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:0}
.ib summary{display:flex;align-items:center;gap:.8rem;padding:1rem 1.2rem;font-family:"Sora","Readex Pro","Noto Sans SC",sans-serif;font-weight:600;list-style:none}
.ib summary::-webkit-details-marker{display:none}
.ib summary::after{content:"+";margin-inline-start:auto;font-size:1.3rem;color:var(--teal)}
.ib[open] summary::after{content:"−"}
.ib-ic{flex:none;width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:var(--saffron-soft);font-size:1rem}
.ib-body{padding:0 1.2rem 1.2rem}.ib-body p{color:var(--ink-soft);margin:.3rem 0 .6rem}.ib-body .perks{margin-top:.8rem}
.offer p.adv{flex:none;font-size:.9rem;color:var(--teal);font-weight:500;background:var(--teal-soft);border-radius:10px;padding:.5rem .7rem}.offer p.adv a{color:inherit}
.offer .price.req{font-size:1.35rem;padding:.35rem 0}
.offer{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:1.5rem;display:flex;flex-direction:column}
.offer.feature{border:2px solid var(--teal)}
.offer .tag{font-size:.85rem;color:var(--teal);font-weight:500;margin-bottom:.6rem}
.offer .price{font-size:2rem;font-weight:700;line-height:1.1}
.offer .unit{color:var(--ink-soft);font-size:.95rem;margin-bottom:1rem}
.offer p{color:var(--ink-soft);flex:1}
.offer .btn{align-self:flex-start}
.infos{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;margin-top:2rem}
@media (max-width:960px){.infos{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.infos{grid-template-columns:1fr}}
.info{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:1.2rem}
.info p{font-size:.95rem;color:var(--ink-soft);margin:0}
.packs{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.6rem}
.packs span{background:var(--saffron-soft);border-radius:10px;padding:.3rem .6rem;font-size:.9rem;font-weight:500}

.subjects{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.25rem;margin-top:2rem}
.subject{padding:1.2rem 0;border-top:3px solid var(--ink)}
.glyph{font-size:2.3rem;line-height:1;margin-bottom:.6rem;color:var(--teal)}
.subject p{color:var(--ink-soft);font-size:.96rem}
.ladder{display:grid;grid-template-columns:repeat(6,1fr);gap:.5rem;align-items:end;margin-top:2rem}
.rung{background:var(--teal-soft);border-radius:12px 12px 4px 4px;padding:.9rem .8rem;display:flex;flex-direction:column}
.rung strong{font-size:1.5rem;color:var(--teal);font-weight:700}
.rung span{font-size:.84rem;color:var(--ink-soft);line-height:1.4}
.rung:nth-child(1){min-height:150px}.rung:nth-child(2){min-height:175px}.rung:nth-child(3){min-height:200px}.rung:nth-child(4){min-height:225px}.rung:nth-child(5){min-height:250px}.rung:nth-child(6){min-height:275px}
@media (max-width:760px){.ladder{grid-template-columns:1fr 1fr}.rung{min-height:auto!important}}
.steps{counter-reset:s;display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-top:2rem;padding:0;list-style:none}
@media (max-width:860px){.steps{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}
.steps li{counter-increment:s}
.steps li::before{content:counter(s);display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--saffron-soft);font-weight:700;margin-bottom:.8rem}
.steps p{color:var(--ink-soft);font-size:.96rem}

.teachers{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem;margin-top:2rem}
.teacher{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:1.3rem;display:flex;flex-direction:column;gap:.8rem}
.teacher .top{display:flex;gap:1rem;align-items:center}
.avatar{flex:none;width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:var(--slate);color:var(--lav);font-weight:700;font-size:1.3rem;overflow:hidden}
.avatar img{width:100%;height:100%;object-fit:cover}
.chips{display:flex;flex-wrap:wrap;gap:.35rem}
.chips span{font-size:.82rem;padding:.15rem .55rem;border-radius:999px;background:var(--teal-soft);color:var(--teal);font-weight:500}
.teacher p{margin:0;color:var(--ink-soft);font-size:.95rem}
.soon{font-size:.85rem;color:var(--rose);font-weight:500}

.booking{display:grid;grid-template-columns:1.5fr 1fr;gap:1.5rem;margin-top:1.5rem;align-items:start}
@media (max-width:900px){.booking{grid-template-columns:1fr}}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:1.4rem}
.panel + .panel{margin-top:1.25rem}
.sticky{position:sticky;top:calc(env(safe-area-inset-top,0px) + 90px)}
@media (max-width:900px){.sticky{position:static}}
.row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media (max-width:560px){.row{grid-template-columns:1fr}}
label.f,.f{display:block;font-weight:500;margin:0 0 .35rem;font-size:.95rem}
select,input[type=password],input[type=text],input[type=email],input[type=tel],input[type=number],input[type=date],input[type=time],textarea{width:100%;font:inherit;font-weight:400;padding:.65rem .75rem;border-radius:10px;border:1px solid var(--line);background:var(--paper);color:var(--ink);margin-bottom:1rem}
textarea{min-height:80px;resize:vertical}
.tpick{display:grid;gap:.5rem;margin-bottom:1rem}
.tpick button{display:flex;align-items:center;gap:.8rem;text-align:start;width:100%;font:inherit;padding:.6rem .8rem;border-radius:12px;border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer}
.tpick button[aria-pressed="true"]{border-color:var(--teal);box-shadow:inset 0 0 0 1px var(--teal)}
.tpick .avatar{width:40px;height:40px;font-size:.95rem}
.stepT{display:flex;align-items:center;gap:.6rem;font-family:"Sora","Readex Pro",sans-serif;font-weight:600;font-size:1.02rem;margin:1.4rem 0 .7rem}
.stepT b{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--teal);color:var(--on-teal);font-size:.85rem;flex:none}
.stepT.off{opacity:.45}.stepT.off b{background:var(--line);color:var(--ink-soft)}
.cal{border:1px solid var(--line);border-radius:14px;padding:.8rem;background:var(--paper);max-width:420px}
.cal-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem;font-weight:600;text-transform:capitalize}
.cal-h button{font:inherit;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;width:34px;height:34px;cursor:pointer}
.cal-h button:disabled{opacity:.35;cursor:not-allowed}
.cal-g{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem;text-align:center}
.cal-g .wd{font-size:.75rem;color:var(--ink-soft);padding:.2rem 0;text-transform:capitalize}
.cal-g button{font:inherit;font-size:.92rem;aspect-ratio:1;border-radius:9px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;padding:0}
.cal-g button:disabled{background:transparent;border-color:transparent;color:var(--ink-soft);opacity:.45;cursor:not-allowed}
.cal-g button[aria-pressed="true"]{background:var(--teal);color:var(--on-teal);border-color:var(--teal)}
.hours{display:grid;grid-template-columns:repeat(auto-fill,minmax(74px,1fr));gap:.4rem}
.hours .slot{justify-content:center}
.daylist{display:grid;gap:.9rem;max-height:420px;overflow:auto;padding-inline-end:.3rem}
.day h4{margin:0 0 .4rem;font-size:.9rem;font-weight:500}
.slots{display:flex;flex-wrap:wrap;gap:.4rem}
.slot{font:inherit;font-size:.92rem;padding:.4rem .7rem;border-radius:9px;border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;display:flex;flex-direction:column;align-items:center;line-height:1.25}
.slot small{font-size:.72rem;color:var(--ink-soft)}
.slot[aria-pressed="true"]{background:var(--teal);color:var(--on-teal);border-color:var(--teal)}
.slot[aria-pressed="true"] small{color:inherit;opacity:.85}
.sum dl{margin:0 0 1rem;display:grid;grid-template-columns:auto 1fr;gap:.45rem 1rem;font-size:.95rem}
.sum dt{color:var(--ink-soft)}
.sum dd{margin:0;font-weight:500}
.err{color:var(--rose);font-weight:500;min-height:1.3em;margin:.4rem 0 0}
.actions{display:grid;gap:.6rem;margin-top:1rem}
.paypal{background:#FFC439;color:#111827}
.wa{background:#1E9E5A;color:#fff}
.hide{display:none!important}
.ok{background:var(--teal-soft);border-radius:14px;padding:1rem 1.1rem;margin-bottom:1rem}

.dash{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin-top:1.5rem}
@media (max-width:860px){.dash{grid-template-columns:1fr}}
.dash .wide{grid-column:1/-1}
.ticks{display:grid;grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:.4rem;margin:.6rem 0}
.ticks button{aspect-ratio:1;border-radius:50%;border:1.5px solid var(--teal);background:transparent;color:var(--teal);font:inherit;font-size:.85rem;cursor:pointer}
.ticks button[aria-pressed="true"]{background:var(--teal);color:var(--on-teal)}
.meter{height:10px;border-radius:999px;background:var(--teal-soft);overflow:hidden;margin:.4rem 0 .6rem}
.meter i{display:block;height:100%;background:var(--teal);border-radius:inherit}
.quizzes{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem}
.quiz{border:1px solid var(--line);border-radius:14px;padding:1rem;display:flex;flex-direction:column;gap:.5rem;background:var(--paper)}
.quiz .q-glyph{font-size:1.8rem;color:var(--teal);line-height:1}
.qbox{border:2px solid var(--teal);border-radius:16px;padding:1.3rem;margin-top:1rem;background:var(--paper)}
.qbig{font-size:3.2rem;text-align:center;margin:.5rem 0 1rem;font-weight:500}
.qopts{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.qopts button{font:inherit;padding:.7rem;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer}
.qopts button.right{background:var(--teal);color:var(--on-teal);border-color:var(--teal)}
.qopts button.wrong{background:var(--rose-soft);border-color:var(--rose)}
.checks label{display:flex;gap:.6rem;align-items:flex-start;padding:.45rem 0;border-bottom:1px solid var(--line);font-size:.95rem;cursor:pointer}
.checks input{margin-top:.3rem;accent-color:var(--teal)}
.result{font-size:1.15rem;font-weight:500;color:var(--teal);margin-top:.8rem}
.plinks{display:flex;flex-wrap:wrap;gap:.5rem}
.plinks a,.plinks span{padding:.45rem .8rem;border-radius:10px;border:1px solid var(--line);text-decoration:none;font-size:.92rem}
.plinks span{color:var(--ink-soft)}
.blist{list-style:none;padding:0;margin:0}
.blist li{padding:.6rem 0;border-bottom:1px solid var(--line);font-size:.94rem}
.tablewrap{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:.93rem}
th,td{padding:.5rem .6rem;border-bottom:1px solid var(--line);text-align:start;white-space:nowrap}
th{font-weight:500;color:var(--ink-soft)}
.shift{color:var(--rose);font-size:.8rem;margin-inline-start:.3rem}

.transl{background:var(--slate);color:var(--slate-ink)}
.transl .wrap{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:center}
@media (max-width:860px){.transl .wrap{grid-template-columns:1fr}}
.transl p{opacity:.88}
.tlist{list-style:none;padding:0;margin:0;display:grid;gap:.6rem}
.tlist li{padding:.8rem 1rem;border:1px solid rgba(255,255,255,.2);border-radius:12px}
.cta-band{display:grid;grid-template-columns:auto 1fr auto;gap:1.5rem;align-items:center;background:var(--saffron-soft);border-radius:20px;padding:1.6rem}
@media (max-width:760px){.cta-band{grid-template-columns:1fr}}
.cta-band p{margin:0;color:var(--ink-soft)}
.empty{border:2px dashed var(--line);border-radius:16px;padding:1.5rem;color:var(--ink-soft)}
details{border-bottom:1px solid var(--line);padding:1rem 0}
summary{cursor:pointer;font-weight:500;font-size:1.04rem}
details p{margin:.6rem 0 0;color:var(--ink-soft)}
.dev{display:inline-block;font-size:.82rem;font-weight:500;padding:.2rem .65rem;border-radius:999px;background:var(--saffron-soft);color:var(--ink);margin-bottom:.8rem}
.soonlink{text-decoration:none;color:inherit;display:block}
.soonlink:hover{border-color:var(--teal)}
@media (max-width:760px){.infos[style]{grid-template-columns:1fr!important}}
.more{position:relative}
.more summary{cursor:pointer;color:var(--ink-soft);list-style:none;padding:.3rem 0;white-space:nowrap}
.more summary::-webkit-details-marker{display:none}
.more summary::after{content:" ▾"}
.more summary[data-on]{color:var(--ink);font-weight:500}
.more-list{position:absolute;inset-inline-end:0;top:calc(100% + .5rem);background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:.4rem;display:flex;flex-direction:column;min-width:220px;z-index:20}
.more-list a{padding:.55rem .8rem;border-radius:8px;border:0!important}
.more-list a:hover{background:var(--paper)}
.more summary{font-size:inherit}
@media (max-width:1240px){nav.main{align-items:stretch}}
@media (max-width:560px){.logo-svg{height:36px!important}.bar{gap:.5rem}.langs button{padding:.3rem .45rem;font-size:.82rem}.menubtn{padding:.3rem .55rem;font-size:.9rem}}
@media (max-width:1240px){.more-list{position:static;border:0;padding:0 0 0 1rem;background:transparent}.more summary{padding:.7rem 0;border-bottom:1px solid var(--line)}}
.stage-t{margin:2rem 0 .8rem;color:var(--teal)}
.plist{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.6rem;counter-reset:none}
.plist li{display:flex;gap:.8rem;align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:.6rem .8rem;font-size:.95rem}
.plist li.bilan{border-color:var(--saffron);background:var(--saffron-soft)}
.num{flex:none;width:1.8rem;height:1.8rem;border-radius:50%;display:grid;place-items:center;background:var(--surface);border:1px solid var(--line);font-size:.8rem;font-weight:500}
.pl{flex:none;min-width:3.2rem;text-align:center;font-family:"Readex Pro",serif;font-size:1.3rem;color:var(--teal);font-weight:500}
.ptgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(42px,1fr));gap:.4rem;margin:.4rem 0}
.ptgrid button{aspect-ratio:1;border-radius:10px;font:inherit;font-size:.9rem;cursor:pointer;border:1.5px solid var(--line);background:var(--paper);color:var(--ink)}
.ptgrid button.cur{outline:3px solid var(--saffron);outline-offset:1px}
.pt-doing{background:var(--saffron-soft)!important;border-color:var(--saffron)!important}
.pt-done{background:var(--teal)!important;border-color:var(--teal)!important;color:var(--on-teal)!important}
.legend{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .5rem;margin:.4rem 0 1rem}
.lg{display:inline-block;width:14px;height:14px;border-radius:4px;border:1.5px solid var(--line);background:var(--paper)}
.ptdetail{border-top:1px solid var(--line);padding-top:1rem}
.pt-head{display:flex;gap:.8rem;align-items:center}
.pt-head h3{margin:0}
.pt-dl{display:grid;grid-template-columns:auto 1fr;gap:.5rem 1rem;margin:1rem 0}
.pt-dl dt{font-weight:500}
.pt-dl dd{margin:0;color:var(--ink-soft)}
@media (max-width:560px){.pt-dl{grid-template-columns:1fr}}
.hero-fig{position:relative;margin:0;padding:24px}
.hero-card{background:#fff;border-radius:24px;border:1px solid var(--line);overflow:hidden;display:grid;place-items:center;aspect-ratio:1/1}
.hero-card img{width:88%;height:88%;object-fit:contain}
.ht{position:absolute;display:grid;place-items:center;width:64px;height:64px;border-radius:16px;font-size:2rem;font-weight:500;box-shadow:0 6px 18px rgba(43,15,83,.15)}
.ht1{top:0;inset-inline-start:0;background:var(--saffron);color:#1A1405;transform:rotate(-6deg)}
.ht2{top:10px;inset-inline-end:0;background:var(--teal);color:var(--on-teal);transform:rotate(7deg);font-family:"Noto Sans SC",sans-serif}
.ht3{bottom:40px;inset-inline-end:-4px;background:#C8506A;color:#fff;transform:rotate(-5deg);width:54px;height:54px;font-size:1.6rem}
.ht4{bottom:10px;inset-inline-start:6px;background:var(--slate);color:var(--lav);transform:rotate(6deg);width:54px;height:54px;font-size:1.6rem}
@media (max-width:560px){.ht{width:48px;height:48px;font-size:1.5rem}}
.collage{position:relative;display:grid;grid-template-columns:1.2fr 1fr;grid-template-rows:1fr 1fr;gap:.8rem;aspect-ratio:5/4}
.collage img{width:100%;height:100%;object-fit:cover;border-radius:18px;display:block;min-height:0}
.collage .c-white{object-fit:contain;background:#fff;border:1px solid var(--line)}
.c-big{grid-row:1/3}
.c-logo{position:absolute;width:30%!important;height:auto!important;inset-inline-start:-4%;bottom:-6%;border-radius:22%!important;box-shadow:0 10px 30px rgba(43,15,83,.35)}
@media (prefers-reduced-motion: no-preference){.c-logo{animation:float 6s ease-in-out infinite}@keyframes float{50%{transform:translateY(-8px)}}}
.filters{display:flex;flex-wrap:wrap;gap:.4rem;margin:1.2rem 0 1.5rem}
.filters button,.ttabs button{font:inherit;font-size:.9rem;padding:.4rem .9rem;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer}
.filters button[aria-pressed="true"],.ttabs button[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.ttabs{display:flex;gap:.4rem}
.ttabs.big{margin:0 0 1rem}
.prods{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.1rem}
.prod{background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:hidden;display:flex;flex-direction:column}
.prod-img{height:130px;display:grid;place-items:center;font-size:2.6rem;font-weight:500;color:#fff;font-family:"Readex Pro","Noto Sans SC",serif}
.c-ar{background:linear-gradient(135deg,#6A1FB3,#2B0F53)}.c-fr{background:linear-gradient(135deg,#C026D3,#7E1A9C)}.c-en{background:linear-gradient(135deg,#8B5CF6,#5B21B6)}.c-zh{background:linear-gradient(135deg,#A34BD8,#6A1FB3)}.c-mat{background:linear-gradient(135deg,#4A2B7A,#2B0F53)}
.prod-body{padding:1rem 1.1rem 1.1rem;display:flex;flex-direction:column;flex:1}
.prod-body h3{margin:.3rem 0 .4rem}
.prod-body p{font-size:.93rem;color:var(--ink-soft);flex:1}
.prod-foot{display:flex;justify-content:space-between;align-items:center;gap:.5rem}
.prod-foot strong{font-size:.9rem}
.reviews{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}
.review{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:1.1rem}
.stars{color:var(--saffron);letter-spacing:.1em;font-size:1.1rem}
.starpick{display:flex;gap:.2rem;margin-bottom:1rem}
.starpick button{font-size:1.7rem;line-height:1;background:none;border:0;cursor:pointer;color:var(--line);padding:0 .1rem}
.starpick button.on{color:var(--saffron)}
.consent{display:flex;gap:.6rem;align-items:flex-start;font-size:.93rem;margin:.3rem 0 .4rem;cursor:pointer}
.consent input{margin-top:.3rem;accent-color:var(--teal)}
.btn.disabled{opacity:.45;cursor:not-allowed}
.tales{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.2rem}
.tale{background:var(--surface);border:1px solid var(--line);border-top:6px solid var(--teal);border-radius:16px;padding:1.2rem;display:flex;flex-direction:column;gap:.6rem}
.c-fr-b{border-top-color:#C026D3}.c-en-b{border-top-color:#8B5CF6}.c-zh-b{border-top-color:var(--saffron)}
.tale-t{font-size:1.35rem;margin:0}
.tale-text p{margin:0 0 .35rem;font-size:1.08rem;line-height:1.7}
.tale-text[lang="ar"] p{font-size:1.3rem;line-height:2;font-family:"Readex Pro",serif}
.py{display:block;font-size:.85rem;color:var(--ink-soft)}
.tale-tr summary{font-size:.92rem;color:var(--teal)}
.tale-tr p{font-size:.93rem;color:var(--ink-soft)}
.tale .btn{align-self:flex-start}
.tw p{margin:0 0 .6rem;color:var(--ink-soft);font-size:.95rem}
.tdl{display:grid;grid-template-columns:auto 1fr;gap:.35rem .8rem;margin:0;font-size:.9rem}
.tdl dt{font-weight:500}.tdl dd{margin:0;color:var(--ink-soft)}
.vthumb{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;aspect-ratio:16/9;border-radius:14px;background:linear-gradient(135deg,#2B0F53,#6A1FB3);color:#fff;text-decoration:none;font-size:.95rem}
.vthumb .play{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:#C026D3;color:#fff;font-size:1.3rem}
.vthumb.aud audio{width:88%;max-width:320px}
.vthumb.off{opacity:.75}
.gh{margin:.6rem 0 .4rem;font-weight:500}
.glist{margin:0;padding-inline-start:1.2rem;color:var(--ink-soft);font-size:.94rem}
.glist li{margin-bottom:.3rem}
.short25{font-size:.85rem;color:var(--teal);font-weight:500}
.row3{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
@media (max-width:700px){.row3{grid-template-columns:1fr}}
.medals{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:1.5rem}
@media (max-width:760px){.medals{grid-template-columns:1fr}}
.mcard{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:1.3rem;text-align:center}
.mcard p{color:var(--ink-soft);font-size:.95rem}
.medal{display:inline-grid;place-items:center;width:58px;height:58px;border-radius:50%;font-size:0;margin-bottom:.6rem;box-shadow:inset 0 0 0 5px rgba(255,255,255,.35)}
.md_b{background:radial-gradient(circle at 35% 30%,#E8B38A,#A0623A)}.md_s{background:radial-gradient(circle at 35% 30%,#F2F4F8,#9AA3B5)}.md_g{background:radial-gradient(circle at 35% 30%,#FFE28A,#C99A1E)}
.mymedal{display:flex;align-items:center;gap:.6rem;font-weight:500}
.mymedal .medal{width:30px;height:30px;margin:0;box-shadow:inset 0 0 0 3px rgba(255,255,255,.35)}
.badges{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.7rem}
.badge{border:1px dashed var(--line);border-radius:14px;padding:.8rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.3rem;font-size:.88rem;opacity:.55}
.badge.on{opacity:1;border-style:solid;border-color:var(--saffron);background:var(--saffron-soft)}
.badge .bi{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--surface);border:2px solid var(--saffron);font-weight:700}
.badge small{color:var(--ink-soft);font-size:.75rem}
.ptgrid button.five{box-shadow:inset 0 -4px 0 var(--saffron)}
.perks{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem;margin-top:1.5rem}
.perk{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:1.2rem;display:flex;flex-direction:column;gap:.3rem}
.perk.hl{border:2px solid var(--teal)}
.perk p{color:var(--ink-soft);font-size:.95rem;flex:1}
.perk .btn{align-self:flex-start}
.pk{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:var(--saffron-soft);font-weight:700;color:var(--ink)}
.freeres{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:1.2rem}
@media (max-width:860px){.freeres{grid-template-columns:1fr 1fr}}
.fr-card{display:flex;align-items:center;gap:.8rem;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:1rem;text-decoration:none;font-weight:500}
.fr-card:hover{border-color:var(--teal)}
.fr-card.hl{background:var(--teal-soft);border-color:var(--teal)}
.fr-ic{flex:none;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--slate);color:var(--lav);font-size:1.3rem}
.adbox{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;border:1px solid var(--line);border-radius:14px;padding:.9rem 1.1rem;text-decoration:none;background:var(--surface);margin-top:1rem}
.adbox.free{border-style:dashed;color:var(--ink-soft);font-size:.92rem}
.ad-l{font-size:.75rem;font-weight:500;padding:.1rem .5rem;border-radius:999px;background:var(--line);color:var(--ink)}
.cartable{margin-bottom:2.5rem}
.carts{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;margin-top:1.2rem}
@media (max-width:860px){.carts{grid-template-columns:1fr}}
.cart{background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:hidden;display:flex;flex-direction:column;padding-bottom:1.1rem}
.cart>*:not(.cart-h){margin-inline:1.1rem}
.cart-h{height:90px;display:grid;place-items:center;font-size:2.4rem;margin-bottom:.9rem}
.cart h3{margin-bottom:.1rem}
.cart ul{padding-inline-start:1.1rem;color:var(--ink-soft);font-size:.92rem;flex:1;margin-top:.6rem;margin-bottom:1rem}
.cart .btn{align-self:flex-start}
.dict-top{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem;margin:1rem 0}
input[type=search]{width:100%;font:inherit;padding:.65rem .75rem;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink)}
.dictgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.8rem}
.dw{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:.9rem 1rem;display:flex;flex-direction:column;gap:.25rem}
.dw-ar{font-size:1.6rem;font-family:"Readex Pro",serif;color:var(--teal);text-align:right;line-height:1.6}
.dw-row{display:flex;gap:.5rem;align-items:baseline;font-size:.97rem}
.dw-l{flex:none;font-size:.7rem;font-weight:700;color:var(--ink-soft);width:1.6rem}
.dw-say{display:flex;gap:.3rem;margin-top:.4rem;flex-wrap:wrap}
.dw-say button{font:inherit;font-size:.75rem;padding:.2rem .45rem;border-radius:8px;border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer}
.fcard{display:flex;flex-direction:column;align-items:center;gap:.9rem;padding:1.5rem 1rem;border:2px solid var(--teal);border-radius:16px;margin-top:.5rem;text-align:center}
.fc-front{font-size:1.6rem;font-weight:500}
.fc-back{font-size:2.2rem;color:var(--teal);display:flex;flex-direction:column}
.fc-back[lang="ar"]{font-family:"Readex Pro",serif}
.preview{white-space:pre-wrap;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:.8rem;font:inherit;font-size:.9rem;margin:0 0 1rem}
.alerts{margin:0;padding-inline-start:1.2rem}
tr.warn td{background:var(--rose-soft)}
tr.tot td{font-weight:700}
.st-absent{color:var(--rose);font-weight:500}.st-late{color:#B7791F}.st-given{color:var(--teal)}
.pwwrap{position:relative}.pwwrap input{padding-inline-end:3rem}.pweye{position:absolute;inset-inline-end:.4rem;top:.35rem;width:2.3rem;height:2.3rem;border:0;border-radius:8px;background:transparent;cursor:pointer;font-size:1.1rem;color:var(--ink-soft)}.pweye[aria-pressed="true"]{background:var(--teal-soft)}
.gate{max-width:440px;margin:0 auto}.gate .lock{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;background:var(--slate);color:var(--lav);font-size:1.5rem;margin-bottom:1rem}.gate input{margin-bottom:.8rem}.gate .btn{width:100%}.logout{float:inline-end;margin-top:.3rem}
footer{padding:2rem 0 3rem;color:var(--ink-soft);font-size:.9rem;border-top:1px solid var(--line)}
footer .wrap{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between}

.logo-svg{height:52px;width:auto;color:var(--ink);display:block;direction:ltr;unicode-bidi:isolate}
.photo{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:14px;margin-bottom:1rem;background:var(--line)}
.band{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.5rem}
.band .photo{margin:0}
@media (max-width:760px){.band{grid-template-columns:1fr 1fr}.band .photo:last-child{display:none}}
.ltiles{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:1.5rem}
@media (max-width:760px){.ltiles{grid-template-columns:1fr 1fr}}
.ltile{display:flex;flex-direction:column;justify-content:flex-end;gap:.25rem;min-height:170px;padding:1.3rem;border-radius:22px;color:#fff;text-decoration:none;box-shadow:0 10px 26px rgba(43,15,83,.18);transition:transform .2s,box-shadow .2s}
.ltile:hover{transform:translateY(-4px);box-shadow:0 16px 34px rgba(43,15,83,.28)}
.lt-n{font-family:"Sora","Manrope",sans-serif;font-size:clamp(1.5rem,2.6vw,2rem);font-weight:600;line-height:1.15}
.lt-n[lang="ar"]{font-family:"Readex Pro",sans-serif}.lt-n[lang="zh"]{font-family:"Noto Sans SC",sans-serif}
.lt-l{font-size:.95rem;opacity:.88}
html[dir="ltr"] .lt-l::after{content:"  →"}html[dir="rtl"] .lt-l::after{content:"  ←"}
.steps.three{grid-template-columns:repeat(3,1fr)}
@media (max-width:860px){.steps.three{grid-template-columns:1fr}}
.contact-band{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;background:linear-gradient(135deg,#2B0F53,#6A1FB3);color:#F5EAFE;border-radius:24px;padding:2.2rem 2rem}
.contact-band h2{color:#fff;margin:0 0 .3rem}.contact-band p{margin:0;opacity:.85}
.contact-band .btn.primary{background:#C026D3;color:#fff}
.hero{padding:1.5rem 0 3rem}
.banner{position:relative;border-radius:26px;overflow:hidden;box-shadow:0 18px 44px rgba(43,15,83,.28);background:#2B0F53}
.banner img{display:block;width:100%;height:auto}
.bz{position:absolute;top:33%;height:50%;border-radius:12%;transition:box-shadow .2s,background .2s}
.bz:hover,.bz:focus-visible{background:rgba(255,255,255,.08);box-shadow:0 0 0 3px #DBB4FE}
.hero-text{max-width:780px;margin:2.6rem auto 0;text-align:center}
.hero-text .lead,.hero-text p{margin-inline:auto}
.hero-text .btns{justify-content:center}
.hero .hero-text h1{font-size:clamp(1.9rem,4vw,2.8rem)}
@media (min-width:761px){.only-mobile{display:none}}
@media (max-width:560px){.banner{border-radius:16px}.hero-text{text-align:start}.hero-text .btns{justify-content:flex-start}}
