/* ============ PIANO HERO ============ */
.p-hero{
  position:relative;color:#fff;overflow:hidden;
  background:
    radial-gradient(900px 480px at 84% -10%, rgba(77,143,224,.55), transparent 60%),
    linear-gradient(160deg,#1E5BB8 0%, #15448C 60%, #0F3576 100%);
}
.p-hero-inner{position:relative;z-index:2;display:grid;grid-template-columns:1.05fr .95fr;gap:54px;align-items:center;padding-block:34px 86px;}
.breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:.9rem;font-weight:500;margin-bottom:26px;color:rgba(255,255,255,.78);}
.breadcrumb a{color:rgba(255,255,255,.78);transition:color .18s ease;}
.breadcrumb a:hover{color:var(--joie-yellow);}
.breadcrumb .sep{color:rgba(255,255,255,.45);}
.breadcrumb [aria-current]{color:var(--joie-yellow);font-weight:600;}
.p-hero h1{font-size:clamp(2.2rem,4.6vw,3.4rem);font-weight:800;line-height:1.14;margin-bottom:20px;}
.p-hero h1 .hl{color:var(--joie-yellow);}
.p-hero .sub{font-size:1.18rem;color:rgba(255,255,255,.9);max-width:520px;margin-bottom:32px;}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;}
.hero-media{position:relative;z-index:2;}
.hero-photo{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg);border:6px solid rgba(255,255,255,.16);aspect-ratio:4/3.4;background:linear-gradient(135deg,var(--joie-blue-light),var(--joie-blue));}
.hero-photo img{width:100%;height:100%;object-fit:cover;}
.hero-chip{
  position:absolute;background:#fff;border-radius:18px;box-shadow:var(--shadow-md);
  padding:14px 18px;display:flex;align-items:center;gap:12px;z-index:3;
}
.hero-chip .hc-ic{width:42px;height:42px;border-radius:12px;flex:none;display:grid;place-items:center;}
.hero-chip .hc-ic svg{width:24px;height:24px;}
.hero-chip .hc-t{line-height:1.2;}
.hero-chip .hc-t b{font-family:var(--font-head);font-weight:700;color:var(--ink);font-size:1.05rem;display:block;}
.hero-chip .hc-t span{font-size:.82rem;color:var(--ink-muted);font-weight:500;}
.hero-chip.c1{bottom:-22px;left:-26px;}
.hero-chip.c1 .hc-ic{background:rgba(255,212,59,.2);color:var(--joie-yellow-deep);}
.hero-chip.c2{top:24px;right:-22px;}
.hero-chip.c2 .hc-ic{background:rgba(255,107,107,.16);color:var(--joie-coral);}
.wave-sep{display:block;width:100%;height:auto;position:relative;z-index:2;margin-top:-2px;}

/* ============ INTRO ============ */
.intro-sec{background:var(--joie-white);}
.intro-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:center;}
.intro-text h2{font-size:clamp(1.7rem,3vw,2.3rem);font-weight:800;margin-bottom:18px;line-height:1.2;}
.intro-text p{font-size:1.1rem;color:var(--ink-soft);}
.intro-text p + p{margin-top:14px;}
.chip-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.chip{
  display:flex;align-items:center;gap:14px;background:var(--joie-cream);
  border:1px solid rgba(30,91,184,.08);border-radius:var(--radius);padding:18px 18px;
  transition:transform .2s ease, box-shadow .2s ease;
}
.chip:hover{transform:translateY(-4px);box-shadow:var(--shadow-sm);}
.chip .ci{width:48px;height:48px;border-radius:14px;flex:none;display:grid;place-items:center;}
.chip .ci svg{width:26px;height:26px;}
.chip .ct{font-family:var(--font-head);font-weight:700;color:var(--ink);font-size:1.04rem;line-height:1.25;}
.chip.k1 .ci{background:rgba(30,91,184,.12);color:var(--joie-blue);}
.chip.k2 .ci{background:rgba(255,107,107,.14);color:var(--joie-coral);}
.chip.k3 .ci{background:rgba(255,212,59,.22);color:var(--joie-yellow-deep);}
.chip.k4 .ci{background:rgba(77,143,224,.16);color:var(--joie-blue-light);}

/* ============ SECTION HEADING ============ */
.sec-head{text-align:center;max-width:680px;margin:0 auto 52px;}
.sec-head h2{font-size:clamp(1.8rem,3.4vw,2.6rem);font-weight:800;line-height:1.16;margin-bottom:14px;}
.sec-head p{font-size:1.12rem;color:var(--ink-soft);}
.sec-head.on-dark h2{color:#fff;}
.sec-head.on-dark p{color:rgba(255,255,255,.85);}

/* ============ HIGHLIGHTS (alternating) ============ */
.highlights{background:var(--joie-cream);}
.hl-row{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;margin-bottom:46px;}
.hl-row:last-child{margin-bottom:0;}
.hl-row:nth-child(even) .hl-media{order:-1;}
.hl-card{
  background:#fff;border:1px solid rgba(30,91,184,.07);border-radius:var(--radius-lg);
  padding:38px 40px;box-shadow:var(--shadow-sm);position:relative;
}
.hl-num{font-family:var(--font-head);font-weight:800;font-size:3.4rem;line-height:1;color:rgba(30,91,184,.14);position:absolute;top:24px;right:32px;}
.hl-ic{width:60px;height:60px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(140deg,var(--joie-blue-light),var(--joie-blue));box-shadow:var(--shadow-md);margin-bottom:20px;}
.hl-ic svg{width:32px;height:32px;color:#fff;}
.hl-card h3{font-size:1.5rem;font-weight:800;margin-bottom:12px;line-height:1.22;}
.hl-card p{color:var(--ink-soft);font-size:1.05rem;}
.hl-list{display:flex;flex-direction:column;gap:11px;margin-top:18px;}
.hl-list li{display:flex;align-items:flex-start;gap:11px;font-size:1.02rem;color:var(--ink-soft);}
.tick{width:24px;height:24px;border-radius:50%;flex:none;background:rgba(31,157,77,.14);color:#1f9d4d;display:grid;place-items:center;margin-top:1px;}
.tick svg{width:15px;height:15px;}
.hl-media .hl-photo{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);aspect-ratio:4/3.2;background:linear-gradient(135deg,#cfe0f6,#9fc0ec);}
.hl-media .hl-photo img{width:100%;height:100%;object-fit:cover;}

/* ============ WHY (dark band) ============ */
.why-sec{
  position:relative;overflow:hidden;color:#fff;
  background:
    radial-gradient(700px 360px at 12% 0%, rgba(77,143,224,.4), transparent 60%),
    linear-gradient(150deg,#15448C, #0F3576);
}
.why-list{display:flex;flex-wrap:wrap;justify-content:center;gap:18px;max-width:880px;margin:0 auto;position:relative;z-index:2;}
.why-item{
  flex:1 1 260px;max-width:300px;
  display:flex;align-items:center;gap:14px;background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.14);border-radius:var(--radius);padding:20px 22px;
  backdrop-filter:blur(4px);
}
.why-item .wt{width:36px;height:36px;border-radius:50%;flex:none;background:var(--joie-yellow);color:var(--joie-blue-deep);display:grid;place-items:center;}
.why-item .wt svg{width:21px;height:21px;}
.why-item span{font-family:var(--font-head);font-weight:600;font-size:1.08rem;line-height:1.3;}

/* ============ ROADMAP ============ */
.road-sec{background:var(--joie-white);}
.road-card{
  max-width:920px;margin:0 auto;background:var(--joie-cream);
  border:1px solid rgba(30,91,184,.1);border-radius:var(--radius-lg);
  padding:44px 46px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden;
}
.road-flag{display:inline-flex;align-items:center;gap:8px;background:var(--joie-blue);color:#fff;font-family:var(--font-head);font-weight:700;font-size:.92rem;padding:9px 18px;border-radius:999px;margin-bottom:8px;box-shadow:var(--shadow-sm);}
.road-flag .big{font-size:1.15rem;}
.road-card > h3{font-size:1.6rem;font-weight:800;margin:14px 0 30px;}
.steps{display:flex;flex-direction:column;gap:0;position:relative;}
.step{display:flex;gap:20px;position:relative;padding-bottom:26px;}
.step:last-child{padding-bottom:0;}
.step-mark{flex:none;width:46px;display:flex;flex-direction:column;align-items:center;}
.step-num{width:46px;height:46px;border-radius:50%;background:var(--joie-blue);color:#fff;font-family:var(--font-head);font-weight:800;font-size:1.2rem;display:grid;place-items:center;box-shadow:var(--shadow-sm);z-index:2;}
.step-line{flex:1;width:3px;background:rgba(30,91,184,.18);margin-top:4px;border-radius:2px;}
.step:last-child .step-line{display:none;}
.step-body{padding-top:9px;}
.step-body h4{font-family:var(--font-head);font-size:1.18rem;font-weight:700;color:var(--ink);margin-bottom:4px;}
.step-body p{color:var(--ink-soft);font-size:1rem;}

/* ============ TEACHER / COMMIT ============ */
.commit-sec{background:var(--joie-cream);}
.commit-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;max-width:980px;margin:0 auto;}
.commit-card{
  background:#fff;border:1px solid rgba(30,91,184,.08);border-radius:var(--radius-lg);
  padding:36px 36px;box-shadow:var(--shadow-sm);transition:transform .22s ease, box-shadow .22s ease;
}
.commit-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-md);}
.commit-ic{width:62px;height:62px;border-radius:18px;display:grid;place-items:center;margin-bottom:20px;}
.commit-ic svg{width:32px;height:32px;}
.commit-card.a .commit-ic{background:rgba(255,212,59,.22);color:var(--joie-yellow-deep);}
.commit-card.b .commit-ic{background:rgba(30,91,184,.12);color:var(--joie-blue);}
.commit-card h3{font-size:1.42rem;font-weight:800;margin-bottom:12px;}
.commit-card p{color:var(--ink-soft);font-size:1.06rem;}

/* ============ CTA + FORM ============ */
.cta-sec{padding:84px 0;position:relative;overflow:hidden;
  background:
    radial-gradient(620px 320px at 88% 110%, rgba(255,107,107,.4), transparent 60%),
    linear-gradient(125deg,#FFD43B 0%, #FFC53B 46%, #FF8A5C 100%);
}
.cta-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;}
.cta-copy .eyebrow{background:rgba(21,68,140,.14);color:var(--joie-blue-deep);}
.cta-copy h2{font-size:clamp(1.9rem,3.4vw,2.7rem);font-weight:800;color:var(--joie-blue-deep);line-height:1.16;margin-bottom:14px;}
.cta-copy p{font-size:1.14rem;color:#7a4a17;max-width:460px;margin-bottom:24px;}
.cta-copy .trust{display:flex;align-items:center;gap:10px;font-weight:600;color:#7a4a17;font-size:1rem;}
.cta-copy .trust svg{width:22px;height:22px;color:#1f9d4d;flex:none;}
.reg-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:34px 32px;}
.reg-card h3{font-size:1.45rem;font-weight:800;margin-bottom:6px;}
.reg-card .rc-sub{color:var(--ink-muted);font-size:.98rem;margin-bottom:22px;}
.field{margin-bottom:16px;}
.field label{display:block;font-weight:600;font-size:.94rem;color:var(--ink);margin-bottom:7px;}
.field label .req{color:var(--joie-coral);}
.field input,.field select{
  width:100%;font-family:inherit;font-size:1.02rem;color:var(--ink);
  padding:14px 16px;border:1.6px solid rgba(30,91,184,.16);border-radius:14px;background:var(--joie-cream);
  transition:border-color .18s ease, box-shadow .18s ease;
}
.field input:focus,.field select:focus{outline:none;border-color:var(--joie-blue);box-shadow:0 0 0 4px rgba(30,91,184,.14);background:#fff;}
.field input::placeholder{color:var(--ink-muted);}
.reg-card .btn{width:100%;margin-top:6px;}
.reg-note{text-align:center;font-size:.86rem;color:var(--ink-muted);margin-top:14px;}
.reg-success{display:none;text-align:center;padding:18px 8px;}
.reg-success.show{display:block;}
.reg-success .rs-ic{width:72px;height:72px;border-radius:50%;background:rgba(31,157,77,.14);color:#1f9d4d;display:grid;place-items:center;margin:0 auto 18px;}
.reg-success .rs-ic svg{width:40px;height:40px;}
.reg-success h3{font-size:1.4rem;margin-bottom:8px;}
.reg-success p{color:var(--ink-soft);font-size:1.04rem;}

/* ============ FAQ ============ */
.faq-sec{background:var(--joie-white);}
.faq-wrap{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:14px;}
.faq-item{background:var(--joie-cream);border:1px solid rgba(30,91,184,.1);border-radius:var(--radius);overflow:hidden;transition:box-shadow .2s ease;}
.faq-item.open{box-shadow:var(--shadow-sm);}
.faq-q{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 24px;text-align:left;font-family:var(--font-head);font-weight:700;font-size:1.14rem;color:var(--ink);}
.faq-q .qi{width:30px;height:30px;border-radius:50%;flex:none;background:rgba(30,91,184,.12);color:var(--joie-blue);display:grid;place-items:center;transition:transform .25s ease, background .2s ease;}
.faq-q .qi svg{width:18px;height:18px;}
.faq-item.open .faq-q .qi{transform:rotate(45deg);background:var(--joie-blue);color:#fff;}
.faq-a{max-height:0;overflow:hidden;transition:max-height .3s ease;}
.faq-a-inner{padding:0 24px 22px;color:var(--ink-soft);font-size:1.05rem;line-height:1.75;}

/* ============ STICKY MOBILE CTA ============ */
.sticky-cta{
  position:fixed;left:0;right:0;bottom:0;z-index:70;display:none;
  gap:10px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.96);backdrop-filter:blur(12px);
  box-shadow:0 -6px 24px rgba(30,91,184,.16);border-top:1px solid rgba(30,91,184,.08);
}
.sticky-cta .btn{flex:1;padding:14px 16px;font-size:1rem;}
.sticky-cta .call{flex:none;width:52px;height:52px;border-radius:50%;background:var(--joie-cream);border:1.6px solid rgba(30,91,184,.16);color:var(--joie-blue);display:grid;place-items:center;}
.sticky-cta .call svg{width:24px;height:24px;}

@media (max-width:1024px){
  .p-hero-inner{grid-template-columns:1fr;gap:40px;}
  .hero-media{max-width:520px;}
  .intro-grid{grid-template-columns:1fr;gap:34px;}
  .hl-row{grid-template-columns:1fr;gap:26px;}
  .hl-row:nth-child(even) .hl-media{order:0;}
  .cta-grid{grid-template-columns:1fr;gap:34px;}
}
@media (max-width:768px){
  .p-hero-inner{padding-block:20px 72px;}
  .hero-chip.c1{left:-8px;bottom:-18px;}
  .hero-chip.c2{right:-6px;}
  .chip-grid{grid-template-columns:1fr;}
  .hl-card{padding:28px 24px;}
  .hl-num{font-size:2.6rem;top:18px;right:22px;}
  .road-card{padding:30px 22px;}
  .commit-grid{grid-template-columns:1fr;}
  .commit-card{padding:28px 24px;}
  .reg-card{padding:26px 22px;}
  .sticky-cta{display:flex;}
  body{padding-bottom:84px;}
  .footer{padding-bottom:96px;}
}
/* ===========================================================
   OVERRIDE FORM PLUGIN (CF7 / Fluent Forms) trong .reg-card
   Ke thua dung style .field input / .btn-coral cua trang Piano.
   =========================================================== */
.reg-card .wpcf7-form label,
.reg-card .fluentform .ff-el-input--label label{display:block;font-weight:600;font-size:.94rem;color:var(--ink);margin-bottom:7px;}
.reg-card .wpcf7-form input:not([type=submit]):not([type=checkbox]):not([type=radio]),
.reg-card .wpcf7-form select,
.reg-card .wpcf7-form textarea,
.reg-card .fluentform input:not([type=submit]):not([type=checkbox]):not([type=radio]),
.reg-card .fluentform select,
.reg-card .fluentform textarea{
  width:100%;font-family:var(--font-body);font-size:1.02rem;color:var(--ink);
  padding:14px 16px;border:1.6px solid rgba(30,91,184,.16);border-radius:14px;background:var(--joie-cream);
  box-shadow:none;height:auto;transition:border-color .18s ease, box-shadow .18s ease;
}
.reg-card .wpcf7-form input:focus,.reg-card .wpcf7-form select:focus,.reg-card .wpcf7-form textarea:focus,
.reg-card .fluentform input:focus,.reg-card .fluentform select:focus{outline:none;border-color:var(--joie-blue);box-shadow:0 0 0 4px rgba(30,91,184,.14);background:#fff;}
.reg-card .wpcf7-form p{margin-bottom:16px;}
.reg-card .fluentform .ff-el-group{margin-bottom:16px;}
.reg-card .wpcf7-form input[type=submit],
.reg-card .wpcf7-form button[type=submit],
.reg-card .fluentform .ff-btn-submit{
  width:100%;margin-top:6px;display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--font-head);font-weight:700;font-size:1.18rem;padding:19px 38px;border-radius:999px;
  border:none;cursor:pointer;background:var(--joie-coral);color:#fff;box-shadow:var(--shadow-coral);
  transition:transform .18s ease, background .2s ease;
}
.reg-card .wpcf7-form input[type=submit]:hover,
.reg-card .wpcf7-form button[type=submit]:hover,
.reg-card .fluentform .ff-btn-submit:hover{background:var(--joie-coral-deep);transform:translateY(-3px);}
.reg-card .wpcf7-not-valid-tip{color:var(--joie-coral-deep);font-size:.84rem;margin-top:6px;font-weight:500;}
.reg-card .wpcf7-not-valid{border-color:var(--joie-coral)!important;background:#FFF6F6!important;}
.reg-card .wpcf7 form .wpcf7-response-output{border-radius:12px;border-width:1.6px;margin:14px 0 0;padding:12px 16px;font-size:.92rem;}
.reg-card .wpcf7 form.sent .wpcf7-response-output{border-color:#1f9d4d;color:#1f9d4d;background:rgba(31,157,77,.08);}
