@import url('/landing.css');
:root{--ink:#172b4d;--muted:#66758c;--green:#3767e8;--paper:#fbfcff;--line:#dfe6f2;background:var(--paper)}html{scroll-behavior:smooth;scroll-padding-top:28px}img{max-width:100%}.nav{max-width:1360px;padding:0 52px}.navlinks{color:#51617b;gap:34px}.navlinks a:hover{color:var(--green)}.btn{border:1px solid transparent;border-radius:10px;padding:14px 23px;gap:18px;transition:transform .18s ease,background-color .18s ease,box-shadow .18s ease}.btn:hover{background:#2856ce;box-shadow:0 5px 14px #3767e826;transform:translateY(-2px)}.btn:active{transform:none}.btn.secondary{background:white;color:var(--ink);border-color:var(--line)}.btn.secondary:hover{background:#f4f7fe;border-color:#a7b7d6}.btn.light{background:#fff;color:var(--ink)}.text-link{font-size:14px;font-weight:600;display:inline-flex;align-items:center;gap:12px}.text-link:hover{color:var(--green)}.eyebrow{font-size:11px;letter-spacing:1.6px;color:#627ba7}.eyebrow:before{width:22px;background:#8da7e7}
.hero{max-width:1360px;margin:48px auto 75px;padding:0 52px;grid-template-columns:.95fr 1.15fr;gap:50px}.hero-copy{animation:enter .65s ease both}.hero h1{font-size:clamp(42px,4.1vw,64px);font-weight:700;letter-spacing:-2px;line-height:1.25;margin:24px 0}.hero h1 em{color:var(--green)}.hero-copy>p{font-size:15px;line-height:2;max-width:none;margin:0}.actions{align-items:center;gap:24px}.hero-detail{display:flex;align-items:center;gap:9px;font-size:11px;color:#70819c;margin-top:28px}.detail-icon{color:#3767e8;background:#e9efff;border-radius:50%;width:19px;height:19px;display:grid;place-items:center;font-weight:700}.detail-divider{height:12px;width:1px;background:#d7dfed;margin:0 4px}.hero-art{position:relative;padding:10px 0 29px;min-width:0;min-height:0;background:none;border-radius:0;animation:enter .8s .08s ease both}.hero-art:before{display:none}.photo-frame{position:relative;overflow:hidden;border-radius:88px 18px 18px 18px;background:#dbe5f1;aspect-ratio:1.23;box-shadow:0 20px 50px #172b4d0c}.hero-photo{display:block;width:100%;height:100%;object-fit:cover;object-position:55% 50%}.photo-caption{position:absolute;right:16px;bottom:15px;font-size:9px;letter-spacing:.5px;background:#172b4d99;color:#fff;padding:5px 9px;border-radius:5px}.scene-label{position:absolute;bottom:0;left:-22px;display:flex;align-items:center;gap:13px;background:#fff;border:1px solid #e4e9f3;border-radius:13px;padding:18px 23px;box-shadow:0 12px 38px #233c6612}.scene-icon{display:grid;place-items:center;width:43px;height:43px;border-radius:12px;background:#fff1df;color:#b97937;font-size:27px}.scene-label b{font-size:14px}.scene-label p{font-size:11px;color:var(--muted);margin:6px 0 0}.art-index{position:absolute;right:2px;bottom:4px;font-size:9px;letter-spacing:1.8px;color:#7182a1}.trust-strip{max-width:1256px;margin:0 auto 74px;padding:26px 0;justify-content:space-around;font-size:13px;color:#52627c}.trust-strip span{gap:14px}.trust-strip i{font-style:normal;font-size:10px;letter-spacing:1px;color:#98a8c1}
.section{max-width:1360px;margin:100px auto;padding:0 52px}.section-heading{gap:30px;margin-bottom:32px}.section-heading h2{font-size:32px;margin-top:14px;font-weight:650;line-height:1.45}.section-heading p{font-size:13px;line-height:1.9}.grid3{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.course{border-radius:15px;min-width:0;transition:transform .2s ease,box-shadow .2s ease}.course:hover{transform:translateY(-4px);box-shadow:0 14px 30px #233c660b}.course-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.course .subject{width:46px;height:46px;background:#edf2ff;font-size:21px;color:#3767e8;font-family:Georgia,serif}.course:nth-child(2) .subject{background:#fff1df;color:#ac753f}.course:nth-child(3) .subject{background:#e8f5f2;color:#3a8072}.course-type{font-size:10px;color:#8b99ae}.course h3{font-weight:650;margin:25px 0 8px}.course p{line-height:1.9}.course-footer{gap:8px;border-top-color:#edf0f6;margin-top:19px;flex-wrap:wrap}.course .price{font-size:27px;letter-spacing:-1px}.course .price small{font-size:11px;letter-spacing:0}.course a{font-size:12px}.section-note{margin-top:17px}.alliance{background:#172b4d;border-radius:23px;padding:54px;grid-template-columns:.9fr 1.15fr;gap:56px;color:#fff}.alliance .eyebrow{color:#b6c9ed}.alliance h2{font-size:36px;line-height:1.5;margin:21px 0}.alliance-copy>p{color:#bfcee5;font-size:13px;line-height:2.1;margin-bottom:28px}.mini-journey{display:flex;align-items:center;gap:15px;margin-top:32px;font-size:11px;color:#bfcee5}.mini-journey i{width:28px;height:1px;background:#52698e}.roles{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.role{background:#ffffff09;border-color:#ffffff1a;padding:24px 22px}.role-num{font-size:10px;letter-spacing:1px;color:#b9cbeb}.role h3{font-size:15px;font-weight:600;margin:20px 0 10px}.role p{font-size:12px;line-height:1.9;color:#b8c9e2;margin:0}.partner-grid .course{padding:30px}.partner-grid .course a{display:flex;justify-content:space-between;margin-top:25px;padding-top:20px;border-top:1px solid #edf0f6}.partner-grid .course h3{margin-top:24px}.contact{grid-template-columns:1fr 1fr;background:#f1f5fd;max-width:1256px;border-radius:23px;padding:52px}.contact h2{font-size:36px;margin:18px 0}.contact-steps{margin-top:32px}.contact-steps>div{display:flex;align-items:center;gap:16px;margin-bottom:20px}.contact-steps>div>span{width:32px;height:32px;display:grid;place-items:center;border:1px solid #ced9ef;color:#6982b1;border-radius:50%;font-size:10px}.contact-steps p{margin:0}.contact-steps b{font-size:13px;color:var(--ink);font-weight:600}.contact-steps small{display:block;font-size:11px;color:#7888a1}.form-card{box-shadow:0 8px 25px #20365b05}.form-card h3{font-size:20px;font-weight:650}label.field{font-size:12px}input:not([type=checkbox]),select,textarea{border-color:#d6deec;min-width:0}input:focus,select:focus,textarea:focus{border-color:#6186e7;outline:2px solid #e4ebfd}.consent{font-size:11px}.consent input{flex-shrink:0}.error{color:#b63b42!important}.success{background:#edf5f1}.demo-note{background:#fff7e9;border-color:#eee1c7;color:#8a713f;font-size:11px;line-height:1.8}.footer{padding:32px 52px;max-width:1360px;font-size:11px;line-height:1.9}.tab{color:#7a8ba6;font-size:12px}.invitation{margin:25px 0;border-color:#cad7f0;background:#eaf0fc;padding:20px 24px;border-radius:12px;font-size:13px}
.share-layout{max-width:1020px;gap:40px}.share-card{background:#fff;border-color:var(--line);box-shadow:0 16px 50px #233c6610}.share-banner{background:#e6edfe;color:#355da7}.share-content h1{overflow-wrap:anywhere}.share-content p{color:var(--muted)}.pill{background:#ecf1ff;color:#5276bf}.share-card .qr-row{border-color:var(--line)}#toast{background:#172b4d}
@keyframes enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.reveal-ready{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}.reveal-ready.is-visible{opacity:1;transform:none}
@media(min-width:801px) and (max-width:1100px){.nav,.hero,.section{padding-left:32px;padding-right:32px}.hero{gap:30px}.hero h1{font-size:46px}.hero-copy>p{font-size:13px}.hero .actions{gap:15px}.photo-frame{aspect-ratio:1}.trust-strip{margin-left:32px;margin-right:32px}.alliance{padding:32px;gap:30px}.contact{margin-left:32px;margin-right:32px;gap:40px}.art-index,.course-type{display:none}}
@media(max-width:800px){.nav{height:78px;padding:0 22px}.nav .btn{padding:10px 13px;font-size:12px}.brand{font-size:22px}.hero{grid-template-columns:1fr;margin:28px auto 42px;padding:0 24px;gap:31px}.hero h1{font-size:44px;letter-spacing:-1.5px;margin:22px 0}.hero-copy>p{font-size:13px;line-height:2}.hero .actions{gap:22px;margin:24px 0}.hero-detail{margin-top:22px;font-size:10px}.hero-art{padding:0 0 26px;margin:0;min-height:0}.photo-frame{aspect-ratio:1.32;border-radius:55px 14px 14px 14px}.scene-label{left:12px;padding:13px 16px;gap:11px}.scene-label b{font-size:12px}.scene-label p{font-size:10px}.scene-icon{width:35px;height:35px;font-size:23px}.art-index{display:none}.photo-caption{font-size:8px;right:10px;bottom:14px}.trust-strip{margin:0 24px 35px;gap:23px;padding:22px 0;font-size:12px}.trust-strip span{justify-content:center;gap:12px}.section{margin:55px auto;padding:0 24px}.section-heading{margin-bottom:24px}.section-heading h2{font-size:27px}.section-heading p{margin-top:14px;font-size:12px}.grid3{grid-template-columns:1fr;gap:15px}.course{padding:24px}.alliance{grid-template-columns:1fr;padding:29px 22px;gap:28px;border-radius:17px}.alliance h2{font-size:30px}.roles{gap:10px}.role{padding:20px 15px}.role h3{font-size:13px;line-height:1.6}.role p{font-size:11px}.contact{grid-template-columns:1fr;gap:26px;margin-left:16px;margin-right:16px;padding:30px 18px;border-radius:17px}.contact h2{font-size:29px}.contact-steps{display:none}.form-card{padding:22px}.contact .form-card{padding:22px 18px}.contact .row{gap:10px}.contact .form-card input,.contact .form-card select{padding:10px 8px;font-size:12px}.footer{padding:24px}.share-layout{gap:24px}.share-actions{gap:10px}.eyebrow{font-size:10px;letter-spacing:1px}.hero .text-link{font-size:12px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}.reveal-ready{opacity:1;transform:none}.btn:hover,.course:hover{transform:none}}
@media print{.reveal-ready{opacity:1;transform:none}}
.demo-caption{font-size:11px!important;margin:14px 0 0;color:#8390a3!important}
#intake textarea{width:100%;resize:vertical;min-height:104px;border:1px solid #d6deec;border-radius:9px;padding:13px;background:#fff;font:inherit;line-height:1.7}
.service-contact-dialog{box-sizing:border-box;width:min(460px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow-y:auto;border:1px solid #e0e7f3;border-radius:24px;padding:32px;background:#fff;color:var(--ink);box-shadow:0 24px 80px #172b4d38;text-align:center}
.service-contact-dialog::backdrop{background:#172b4d8c;backdrop-filter:blur(5px)}
.dialog-close{position:absolute;right:15px;top:12px;background:transparent;border:0;padding:5px 10px;color:#77849a;font-size:25px;line-height:1}
.application-check{display:grid;place-items:center;width:44px;height:44px;margin:0 auto 15px;border-radius:50%;background:#e8f5ef;color:#308269;font-size:23px}
.application-kicker{font-size:12px;color:#308269;margin:0 0 8px;letter-spacing:1px}
.service-contact-dialog h2{font-size:25px;margin:10px 0 12px;line-height:1.5}
.service-contact-dialog p{font-size:13px;line-height:1.8;color:#64748b}
.service-qr{width:264px;max-width:100%;margin:22px auto 10px;padding:12px;background:#fff;border:1px solid #e3e9f2;border-radius:15px}
.service-qr img{display:block;width:100%;height:auto;object-fit:contain}
.service-qr img[hidden],.service-contact-dialog [hidden]{display:none!important}
.service-contact-dialog .qr-help{font-size:11px;margin:9px 0 16px}
.wechat-account{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;font-size:13px;overflow-wrap:anywhere}.wechat-account button{border:0;background:none;color:#3767e8;font:inherit}
.contact-dialog-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:23px}.contact-dialog-actions .btn{padding:12px 21px;font-size:13px}
.application-receipt{text-align:center;padding:18px 0}.application-receipt p{font-size:13px;line-height:1.9;color:#64748b}.application-receipt .btn{margin-top:14px}
@media(max-width:480px){.service-contact-dialog{padding:27px 22px}.service-contact-dialog h2{font-size:22px}.service-qr{width:238px}#intake .row{grid-template-columns:1fr}}

/* The contact receipt is a quiet, three-part native dialog. */
body:has(#service-contact-dialog[open]) { overflow: hidden; }
.service-contact-dialog:not([open]) { display: none; }
.service-contact-dialog[open] {
  display: flex;
  flex-direction: column;
  width: min(440px, calc(100vw - 24px));
  max-height: calc(100dvh - 24px);
  overflow: hidden;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 10px;
  box-shadow: 0 18px 55px #172b4d22;
}
.service-contact-dialog::backdrop { background: #202b3566; }
.contact-dialog-header {
  position: relative;
  flex: 0 0 auto;
  padding: 20px 48px 16px 24px;
  border-bottom: 1px solid var(--line);
  text-align: left;
}
.contact-dialog-header h2 { margin: 0; font-size: 22px; line-height: 1.45; }
.dialog-close {
  position: absolute;
  top: 12px;
  right: 12px;
  padding: 4px 8px;
  border: 0;
  background: transparent;
  color: var(--muted);
  font-size: 22px;
  line-height: 1;
}
.dialog-close:hover, .dialog-close:focus-visible { color: var(--ink); }
.contact-dialog-body {
  min-height: 0;
  flex: 1 1 auto;
  overflow-y: auto;
  padding: 18px 24px 20px;
  text-align: center;
}
.contact-dialog-body > p { margin: 0 0 15px; color: var(--muted); font-size: 14px; line-height: 1.8; }
.service-contact-dialog .contact-assistive {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.service-qr {
  width: 232px;
  max-width: 100%;
  margin: 0 auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.service-qr img { display: block; width: 100%; height: auto; object-fit: contain; }
.service-qr img[hidden], .service-contact-dialog [hidden] { display: none !important; }
.service-contact-dialog .qr-error { margin: 10px 0 0; color: #a84545; font-size: 13px; }
.wechat-account { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 10px; margin-top: 13px; font-size: 14px; overflow-wrap: anywhere; }
.wechat-account button { border: 0; background: transparent; color: var(--green); font: inherit; }
.contact-dialog-actions {
  flex: 0 0 auto;
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin: 0;
  padding: 14px 24px 20px;
  border-top: 1px solid var(--line);
}
.contact-dialog-actions .btn { min-height: 40px; padding: 10px 18px; font-size: 14px; }
.service-contact-dialog .application-check, .service-contact-dialog .application-kicker { display: none; }
@media(max-width:480px) {
  .service-contact-dialog[open] { width: min(440px, calc(100vw - 16px)); max-height: calc(100dvh - 16px); }
  .contact-dialog-header, .contact-dialog-body { padding-left: 20px; padding-right: 20px; }
  .contact-dialog-actions { padding: 12px 20px 16px; }
  .service-qr { width: 224px; }
}
