/* ========================================================
   iSTEP - Home page stylesheet
   Brand purple #26075b * Deep navy #230653 * Ink #190b35
   Fonts: Playfair Display (headings) + DM Sans (body)
======================================================== */

/* ========================================================
       iSTEP - DESIGN TOKENS
       Primary purple: #26075b  |  Deep navy: #230653
       Ink: #190b35  |  Bg: #fbf9fc  |  Line: #d7cfe2
    ======================================================== */
    :root {
      --brand:      #26075b;
      --brand-mid:  #2d075f;
      --brand-btn:  #2d075f;
      --brand-dark: #230653;
      --brand-deep: #1e064b;
      --ink:        #190b35;
      --ink-mid:    #2e2637;
      --muted:      #4d4658;
      --line:       #d7cfe2;
      --bg:         #ffffff;
      --lilac:      #f6f1fb;
      --white:      #ffffff;
      --lavender:   #f4f1fa;
      --levender:   var(--lavender);
      --section-pad: 34px;
      --section-pad-tight: 24px;
      --serif:      'Playfair Display', Georgia, serif;
      /*--inter:       'DM Sans', Arial, sans-serif;*/
      --inter: "Inter", sans-serif;
      --source: "Source Serif 4";
      --shell:      min(1440px, calc(100% - 44px));
      --r:          8px;
      --lightbrand: #6b30b8;
      --gold: #cdae63;
    --gold-deep: #a9823b;
    }

    /* -- Global reset --------------------------------------- */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html  { scroll-behavior: smooth; font-size: 16px; }
    body  { font-family: var(--inter); color: var(--ink); background: var(--lavender);
            line-height: 1.48; -webkit-font-smoothing: antialiased; }
    img   { display: block; max-width: 100%; }
    a     { color: inherit; text-decoration: none; }
    button { font: inherit; cursor: pointer; border: none; background: none; }
    ul, ol { list-style: none; }

    /* -- Scroll-reveal animation ---------------------------- */
    /* -- Entrance: static visibility (re-render-safe; no JS/anim dependency) -- */
    .reveal { opacity: 1; }

    /* -- Container / shell ---------------------------------- */
    .shell { width: var(--shell); margin-inline: auto; }

    /* -- Shared button styles ------------------------------- */
    .btn { display: inline-flex; align-items: center; justify-content: center;
           height: 46px; padding: 0 24px; border-radius: 5px; font-weight: 600;
           font-size: 13.5px; border: 1.5px solid transparent;
           transition: background .22s, border-color .22s, transform .22s, box-shadow .22s; }
    .btn-primary { background: var(--brand-btn); border-color: var(--brand-btn); color: var(--white); }
    .btn-primary:hover { background: #48118b; border-color: #48118b;
                         transform: translateY(-2px); box-shadow: 0 8px 20px rgba(45,7,95,.22); }
    .btn-outline { background: transparent; border-color: #351064; color: var(--ink); }
    .btn-outline:hover { background: #4a178e; border-color: #4a178e; color: var(--white);
                         transform: translateY(-2px); box-shadow: 0 8px 20px rgba(45,7,95,.18); }
    .btn-cta-solid { background: #4e16a1; border-color: #6b2ec3; color: var(--white); }
    .btn-cta-solid:hover { background: #6229bb; transform: translateY(-2px); }
    .btn-cta-ghost { background: transparent; border-color: rgba(255,255,255,.7); color: var(--white); }
    .btn-cta-ghost:hover { background: rgba(255,255,255,.1); transform: translateY(-2px); }
    main#home { background: var(--lavender);}

    /* ======================================================
       HEADER
    ====================================================== */
    .site-header { position: sticky; top: 0; z-index: 100; background: var(--white);
                   border-bottom: 1px solid #f0eaf8; box-shadow: 0 1px 6px rgba(25,7,47,.06); }
    .header-inner { height: 86px; display: flex; align-items: center;
                    justify-content: space-between; }
    .header-logo { width: 150px; flex-shrink: 0; }
    .header-logo img { width: 130%; height: auto; object-fit: contain; }

    /* Main nav */
    .main-nav { display: flex; align-items: center; gap: 42px; }
    .nav-link  { font-size: 15px; font-weight: 600; color: var(--ink);
                 transition: color .18s; }
    .nav-link:hover { color: var(--brand); }
    .btn-book  { height: 46px; padding: 0 24px; font-size: 14px; }

    /* Hamburger toggle (hidden on desktop) */
    .menu-toggle { display: none; flex-direction: column; gap: 5px; padding: 6px;
                   background: none; border: none; }
    .menu-toggle span { display: block; width: 22px; height: 2px;
                        background: var(--ink); border-radius: 2px; transition: .25s; }

    /* ======================================================
       HERO
    ====================================================== */
    .hero { display: grid; grid-template-columns: .88fr 1.12fr;
            min-height: 500px;
            background: linear-gradient(108deg, var(--bg) 36%, #eff3f5 100%);
         background: transparent; }
    .hero-copy { display: flex; flex-direction: column; justify-content: center;
                 padding: 52px 32px 52px 0; }
    .hero-h1   { font-family: var(--serif); font-size: clamp(36px,3.8vw,60px);
                 font-weight: 700; line-height: 1.07; letter-spacing: -1.2px;
                 color: var(--ink); margin-bottom: 20px; max-width: 540px; }
   .hero-h1 em { color: var(--lightbrand); }
    .hero-sub  { font-size: 16px; color: var(--ink-mid); max-width: 460px; margin-bottom: 28px; }
    .hero-actions { display: flex; flex-wrap: wrap; gap: 13px; }

    /* Hero right-column visual */
    .hero-visual { position: relative; overflow: hidden; min-height: 500px; }
    .hero-main-img { position: absolute; inset: 0; width: 100%; height: 100%;
                     object-fit: cover; object-position: center 32%; }
    /* Inset image - bottom-right corner */
    .hero-inset { position: absolute; right: 15%;  bottom: 0;    width: 30%;    height: 30%;
                  border: 4px solid var(--white); border-radius: 10px; overflow: hidden;
                  box-shadow: 0 6px 24px rgba(25,7,47,.2); }
    .hero-inset img { width: 100%; height: 100%; object-fit: none; }
    /* Circular badge */
    .hero-badge { position: absolute; bottom: 0%; left: 55%; transform: translateX(-50%);
                  width: 118px; height: 118px; background: var(--white); border-radius: 50%;
                  display: flex; flex-direction: column; align-items: center;
                  justify-content: center; text-align: center; font-size: 11px;
                  line-height: 1.35; font-weight: 600; color: var(--ink);
                  box-shadow: 0 6px 22px rgba(28,11,58,.22); padding: 14px; }
    .hero-badge strong { color: var(--brand); font-weight: 700; }

    /* ======================================================
       SECTION HEADINGS (shared)
    ====================================================== */
    .sec-head { text-align: center; margin-bottom: 26px; }
    .sec-head h2 { font-family: var(--serif); font-size: clamp(24px,2.45vw,36px);
                   font-weight: 700; color: var(--ink); margin-bottom: 9px; line-height: 1.14; }
    .sec-head p  { font-size: 14.5px; line-height: 1.45; color: var(--muted); max-width: 560px; margin-inline: auto; }
    .sec-head.light h2 { color: var(--white); }
    .sec-head.light p  { color: rgba(255,255,255,.82); }

    /* ======================================================
       ECOSYSTEM / FEATURES
    ====================================================== */
    .ecosystem {  padding: 5rem 0 2.5rem; background: var(--lavender); }
    .feature-row { display: grid; grid-template-columns: repeat(5,1fr); }
    .feature-col { padding: 4px 24px; text-align: center;
                   border-right: 1px solid var(--line); }
    .feature-col:last-child { border-right: none; }
    .feature-icon { width: 50px; height: 50px; margin: 0 auto 14px; color: #3d0a71; }
    .feature-icon svg { width: 100%; height: 100%; }
    .feature-col h3 { font-size: 16px; font-weight: 700; color: var(--ink);
                      margin-bottom: 10px; line-height: 1.3; min-height: 42px; }
    .feature-col p  { font-size: 13px; color: #383141; line-height: 1.45; }

    /* ======================================================
       DESTINATIONS
    ====================================================== */
    .destinations { padding: 2.5rem 0 5rem; background: var(--lavender); }
    .dest-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: 14px; }
    .dest-card { position: relative; height: 305px; border-radius: var(--r);
                 overflow: hidden; cursor: pointer;
                 box-shadow: 0 1px 4px rgba(25,7,47,.09);
                 transition: transform .28s ease, box-shadow .28s ease; }
    .dest-card:hover { transform: translateY(-5px);
                       box-shadow: 0 12px 28px rgba(25,7,47,.18); }
    .dest-card::after { content: ''; position: absolute; inset: 30% 0 0;
                        background: linear-gradient(transparent, rgba(25,5,72,.7) 70%, #1b0546); }
    .dest-card img { width: 100%; height: 100%; object-fit: cover;
                     transition: transform .38s ease; }
    .dest-card:hover img { transform: scale(1.06); }
    .dest-label { position: absolute; bottom: 13px; left: 0; right: 0; z-index: 1;
                  text-align: center; color: var(--white); font-weight: 700; font-size: 15px; }

    /* ======================================================
       UNIVERSITY PARTNERS
    ====================================================== */
    .universities { padding: 28px 0 42px;
                    background: linear-gradient(148deg, #250451 0%, #1a063b 100%);border-radius: 12px; }
    .uni-panel { background: #f8f6fa; border: 1px solid #d9cfe4; border-radius: 10px;
                 padding: 0 18px 20px; box-shadow: 0 2px 14px rgba(28,5,62,.14); }

    /* Tabs */
    .uni-tabs { display: grid; grid-template-columns: repeat(5,1fr);
                border-bottom: 1px solid var(--line); }
    .uni-tab { padding: 17px 5px 13px; font-size: 13px; font-weight: 600;
               border-bottom: 2px solid transparent; text-align: center;
               background: none; border-top: none; border-left: none; border-right: none;
               color: #4a4060; transition: color .18s, border-color .18s; }

    /* Content grid */
    .uni-content { display: grid; grid-template-columns: 1fr 1fr 1.2fr;
                   gap: 20px; padding: 20px 8px 8px; }
    .uni-highlight { border: 1px solid var(--line); border-radius: 7px; overflow: hidden;
                     background: var(--white); box-shadow: 0 3px 10px rgba(28,5,62,.08);
                     position: relative; }
    .uni-photo { width: 100%; height: 178px; background-size: cover;
                 background-position: center; display: block; }
    .uni-hi-info { width: calc(100% - 20px); min-height: 78px;
                   margin: -26px 10px 0; padding: 14px 12px 12px;
                   position: relative; z-index: 2; text-align: center;
                   background: var(--white); border-radius: 7px;
                   box-shadow: 0 6px 18px rgba(22,5,48,.12); }
    .uni-logo-card { display: flex; align-items: center; justify-content: center;
                     background: var(--white); border-radius: 4px;
                     margin: 18px 10px 18px; position: relative; z-index: 1;
                     padding: 0px 0px; min-height: 62px; }
    .uni-logo-card img { max-width: 158px; max-height: 46px; object-fit: contain; }
    .uni-logo-img { width: 250px; height: 108px; background-size: contain;
                    background-repeat: no-repeat; background-position: center; }
    .uni-hi-name  { font-family: var(--serif); font-size: 17px; line-height: 1.15;
                    font-weight: 700; color: var(--ink); padding: 0 0 8px; }
    .uni-hi-rank  { font-size: 13px; font-weight: 700; color: var(--brand);
                    display: inline-flex; align-items: center; gap: 6px;
                    padding: 6px 12px; border-radius: 999px;
                    background: #f2e5ff; border: 1px solid #dfc5f7; }
    .uni-hi-rank::before { content: ''; width: 6px; height: 6px;
                           border-radius: 999px; background: var(--brand);
                           flex: 0 0 auto; }

    /* University list */
    .uni-list { border: 1px solid var(--line); border-radius: 4px;
                overflow: hidden; background: var(--white); }
    .uni-list-item { display: flex; align-items: center; gap: 10px;
                     padding: 11px 14px; border-bottom: 1px solid var(--line);
                     font-size: 13.5px; font-weight: 500; color: var(--ink); }
    .uni-list-item:last-child { border-bottom: none; }
    .uni-list-logo { width: 27px; height: 27px; flex-shrink: 0;
                     object-fit: contain; display: block; }
    .view-all { display: block; text-align: right; margin-top: 6px;
                font-size: 13px; font-weight: 700; color: var(--brand); }
    .view-all:hover { text-decoration: underline; }


    /* ══════════════════════════════════════════════════════
       WHY iSTEP — Reasons (icon cards on lilac gradient)
    ══════════════════════════════════════════════════════ */
    .reasons { padding: 62px 0 80px;
               /*background: linear-gradient(180deg, #faf6fe 0%, #f3ecfb 48%, #faf6fe 100%);*/ }

    /* Section heading + intro */
    .reasons-head  { text-align: center; max-width: 760px; margin: 0 auto 42px; }
    .reasons-eyebrow { display: inline-block; font-size: 12px; font-weight: 700;
                       letter-spacing: .14em; text-transform: uppercase; color: #6a36b3;
                       background: #efe4fb; border: 1px solid #e0cef6;
                       padding: 6px 15px; border-radius: 100px; margin-bottom: 18px; }
    .reasons-title { font-family: var(--inter); font-weight: 700;
                     font-size: clamp(27px,3.1vw,42px); line-height: 1.13;
                     letter-spacing: -.8px; color: var(--ink); margin-bottom: 16px; }
    .reasons-title em { font-style: normal; color: var(--brand); }
    .reasons-intro { font-size: 16px; color: #4d4458; line-height: 1.62; }

    /* Card grid */
    .reasons-grid  { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }

    /* Individual reason card */
    .reason-card   { position: relative; display: flex; flex-direction: column;
                     align-items: flex-start; background: var(--white);
                     border: 1px solid #e7ddf2; border-radius: 16px;
                     padding: 30px 26px 26px; overflow: hidden;
                     box-shadow: 0 4px 16px rgba(43,10,82,.05);
                     transition: transform .26s ease, box-shadow .26s ease, border-color .26s ease; }
    /* Accent bar that grows on hover */
    .reason-card::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0;
                           width: 4px; background: linear-gradient(180deg,#7a3cc9,#4a128f);
                           transform: scaleY(0); transform-origin: top;
                           transition: transform .3s ease; z-index: 2; }
    /* Soft decorative corner glow */
    .reason-card::after { content: ''; position: absolute; top: -55px; right: -55px;
                          width: 150px; height: 150px; border-radius: 50%;
                          background: radial-gradient(circle, rgba(122,60,201,.14), transparent 68%);
                          transition: opacity .3s ease; opacity: .7; pointer-events: none; }
    .reason-card:hover { transform: translateY(-6px); border-color: #d6c2f0;
                         box-shadow: 0 18px 40px rgba(43,10,82,.13); }
    .reason-card:hover::before { transform: scaleY(1); }
    .reason-card:hover::after  { opacity: 1; }

    /* Big ghost index number (top-right watermark) */
    .reason-num    { position: absolute; top: 16px; right: 22px; z-index: 1;
                     font-family: var(--serif); font-weight: 700; font-size: 46px;
                     line-height: 1; color: #2a0a4f; opacity: .08;
                     transition: opacity .26s ease; }
    .reason-card:hover .reason-num { opacity: .16; }

    /* Icon badge (rounded square) */
    .reason-badge  { position: relative; z-index: 1;
                     width: 56px; height: 56px; border-radius: 16px; flex-shrink: 0;
                     display: flex; align-items: center; justify-content: center;
                     margin-bottom: 20px;
                     background: linear-gradient(150deg,#f0e6fc,#e4d2f8);
                     transition: background .26s ease; }
    .reason-badge svg { width: 28px; height: 28px; color: #4a128f; fill: none;
                        stroke: currentColor; stroke-width: 1.7;
                        stroke-linecap: round; stroke-linejoin: round; }
    .reason-card:hover .reason-badge { background: linear-gradient(150deg,#5a1aa8,#3a0b73); }
    .reason-card:hover .reason-badge svg { color: #fff; }

    .reason-card h3 { position: relative; z-index: 1;
                      font-size: 17px; font-weight: 700; color: var(--ink);
                      margin-bottom: 11px; line-height: 1.3; letter-spacing: -.2px; }
    /* Thin accent divider under the title */
    .reason-card h3::after { content: ''; display: block; width: 34px; height: 3px;
                             margin-top: 11px; border-radius: 3px;
                             background: linear-gradient(90deg,#7a3cc9,#b98ee8); }
    .reason-card p  { position: relative; z-index: 1;
                      font-size: 14px; color: #514860; line-height: 1.6; margin-bottom: 18px; }

    /* Audience tag chip (pushed to card bottom) */
    .reason-tag    { position: relative; z-index: 1; margin-top: auto;
                     display: inline-flex; align-items: center; gap: 7px;
                     font-size: 11.5px; font-weight: 700; letter-spacing: .03em;
                     color: #5a1aa8; background: #f1e8fb; border: 1px solid #e3d4f7;
                     padding: 6px 13px; border-radius: 100px; }
    .reason-tag::before { content: ''; width: 6px; height: 6px; border-radius: 50%;
                          background: #7a3cc9; }

    /* ======================================================
       STAKEHOLDERS
    ====================================================== */
    /* Layout - intro copy on the left, card row on the right */
    .sth-layout   { display: grid; grid-template-columns: .92fr 2.7fr;
                    gap: 30px; align-items: center;
                    background: #f2e9fb;
                    border: 1px solid #eadff3; border-radius: 12px;
                    padding: 22px 24px; }
    .sth-intro    { text-align: left; }
    .sth-intro h2 { font-family: var(--serif); font-size: clamp(23px,2.3vw,33px);
                    font-weight: 700; color: #2c0a52; line-height: 1.2;
                    margin-bottom: 14px; letter-spacing: -.4px; }
    .sth-intro p  { font-size: 14.5px; color: #443a52; line-height: 1.6; max-width: 330px; }

    /* Card row - 4 equal gradient cards */
    .sth-grid     { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; }

    /* Individual stakeholder card - lilac gradient, PNG photo anchored to base */
    .sth-card     { position: relative; display: flex; flex-direction: column;
                    align-items: center; text-align: center; overflow: hidden;
                    border: 1px solid #e6daf4; border-radius: 16px;
                    padding: 22px 14px 0; min-height: 300px;
                    background: linear-gradient(180deg, #ffffff 0%, #fbf8fe 24%, #f1e7fa 66%, #e5d6f4 100%);
                    box-shadow: 0 6px 20px rgba(43,10,82,.08);
                    transition: transform .28s ease, box-shadow .28s ease; }
    .sth-card:hover { transform: translateY(-5px);
                      box-shadow: 0 16px 34px rgba(43,10,82,.16); }

    /* Rounded-square icon badge (app-icon style) */
    .sth-badge    { width: 50px; height: 50px; border-radius: 14px; /*background: var(--white);*/
                    display: flex; align-items: center; justify-content: center;
                    /*box-shadow: 0 4px 12px rgba(43,10,82,.16);*/ margin-bottom: 0px; }
    .sth-badge svg { width: 40px; height: 40px; color: #4a1490; fill: none;
                     stroke: currentColor; stroke-width: 1.7;
                     stroke-linecap: round; stroke-linejoin: round; }

    .sth-card h3  { font-size: 16px; font-weight: 700; color: #2a0a4f; margin-bottom: 6px; }
    .sth-card p   { font-size: 13.5px; color: #3a2f49; font-weight: 600;
                    line-height: 1.4; margin-bottom: 18px; }

    /* PNG photo - fills card width, flush to the rounded bottom */
    .sth-photo    { margin: auto -14px 0; width: calc(100% + 28px); max-width: none; height: 240px;
                    object-fit: cover; object-position: center top;
                    display: block; }

    /* ======================================================
       TESTIMONIALS
    ====================================================== */
    .testimonials { padding: 5rem 0 5rem; background: var(--lavender); }
    .testi-title  { text-align: center; font-family: var(--serif);
                    font-size: clamp(25px,2.8vw,36px); font-weight: 700;
                    color: var(--ink); margin-bottom: 16px; }
    .quote-grid   { display: grid; grid-template-columns: repeat(4,1fr); gap: 10px; }
    .quote-card   { position: relative; border: 1px solid #e1d9e8; border-radius: 7px;
                    background: #fbf9fc; padding: 38px 22px 20px;
                    box-shadow: 0 2px 7px rgba(35,9,69,.044); }
    .quote-card::before { content: '"'; position: absolute; left: 16px; top: 14px;
                          font-family: Georgia,serif; font-size: 40px; font-weight: 700;
                          line-height: 1; color: #3a086e; }
    .quote-text   { padding-left: 12px; font-size: 14px; color: #170d20;
                    font-weight: 500; line-height: 1.56; margin-bottom: 20px; }
    .quote-cite   { padding-left: 12px; font-size: 14px; font-style: normal;
                    font-weight: 700; color: #3b0a6d; line-height: 1.35; display: block; }
    .quote-cite small { display: block; font-weight: 400; color: #21152a; margin-top: 2px; }

    /* ======================================================
       CTA BAND
    ====================================================== */
    .cta-band   { 
      /*background: linear-gradient(108deg, #321069, #1e064b); color: var(--white);*/
   background: #230653;color:#fff; }
    .cta-inner  { display: flex; align-items: center; justify-content: space-between;
                  gap: 28px; min-height: 185px; padding: 36px 0; }
    .cta-copy h2 { font-family: var(--serif); font-size: clamp(24px,2.4vw,34px);
                   font-weight: 700; margin-bottom: 8px; }
    .cta-copy p  { font-size: 15px; opacity: .88; }
    .cta-actions { display: flex; flex-wrap: wrap; gap: 13px; flex-shrink: 0; }

    /* ======================================================
       FOOTER
    ====================================================== */
    .site-footer  { position: relative; overflow: hidden; padding: 40px 0 14px; background: #230653; color: var(--white); }
    .site-footer .shell { position: relative; z-index: 2; }
    .footer-grid  { display: grid; grid-template-columns: 1.7fr repeat(4,1fr);
                    gap: 40px; margin-bottom: 30px; }
    .footer-logo  { width: 140px; display: block; margin-bottom: 14px; }
    .footer-logo img  { width: 100%; height: auto; object-fit: contain; }
    .footer-tagline   { font-size: 11.5px; color: #d3c9e2; max-width: 240px;
                        line-height: 1.62; margin-bottom: 16px; }
    .footer-grid h4   { font-size: 11.5px; font-weight: 700; color: var(--white);
                        margin-bottom: 14px; text-transform: uppercase; letter-spacing: .06em; }
    .footer-lnk       { display: block; font-size: 11.5px; color: #ded6e8;
                        margin-bottom: 7px; transition: color .18s; }
    .footer-lnk:hover { color: var(--white); }
    .footer-bottom { display: grid; grid-template-columns: 1.7fr repeat(4,1fr);
                     align-items: center; gap: 40px; margin-top: -10px; }
    .socials      { display: flex; gap: 8px; flex-shrink: 0; }
    .social-btn   { width: 28px; height: 28px; display: flex; align-items: center;
                    justify-content: center; border: 1px solid #aa94c6; border-radius: 50%;
                    transition: background .18s, border-color .18s; }
    .social-btn:hover { background: rgba(255,255,255,.12); border-color: var(--white); }
    .social-btn svg { width: 12px; height: 12px; color: var(--white); fill: var(--white); }
    .social-btn .instagram-icon { fill: none; }
    .social-btn .instagram-icon circle[fill] { fill: currentColor; }
    .footer-hr    { border: none; border-top: 1px solid #745994; margin: 12px 0 0; }
    .copyright    { grid-column: 2 / 6; display: flex; justify-content: space-between; flex-wrap: wrap;
                    gap: 8px; font-size: 10px; color: #b9abc9; }
   .site-footer::before{
      content:'';
      position: absolute;
      top: 0;
      right: -25px;
      z-index: 1;
      display: block;
      width: 100%;
      max-width: 595px;
      height: 239px;
      pointer-events: none;
      background: url('../image/footer_bg.webp') no-repeat top right / contain;
      opacity: 0.25;
   }

    /* ══════════════════════════════════════════════════════
       STAKEHOLDERS
    ══════════════════════════════════════════════════════ */
    /* ── GLOBAL NETWORK — interactive editorial index + stage ── */
    .gn-head       { max-width: 760px; margin: 0 auto 52px; text-align: center; }
    .gn-eyebrow    { display: inline-flex; align-items: center; gap: 8px;
                     font-size: 12px; font-weight: 600; letter-spacing: 1.6px;
                     text-transform: uppercase; color: #6b3aa8; margin-bottom: 20px; }
    .gn-eyebrow::before, .gn-eyebrow::after { content: ''; width: 26px; height: 1px;
                     background: #c9b3ec; }
    .gn-head h2    { font-family: var(--serif); font-size: clamp(30px,3.6vw,50px);
                     font-weight: 700; color: var(--ink); line-height: 1.1;
                     letter-spacing: -.5px; margin-bottom: 20px; }
    .gn-head h2 em { font-style: italic; color: #6b30b8; }
    .gn-head p     { font-size: 16.5px; color: #4d4458; line-height: 1.7; }

    /* Panel — index (left) + stage (right), hairline editorial ledger */
    .gn-panel      { display: grid; grid-template-columns: .82fr 1.45fr;
                     border-top: 1.5px solid #2b0758; }
    .gn-radio      { position: absolute; width: 0; height: 0; opacity: 0; pointer-events: none; }

    /* Left index — clickable serif rows */
    .gn-index      { display: flex; flex-direction: column;
                     border-right: 1px solid #e7dcf4; padding-right: 38px; }
    .gn-item       { display: grid; grid-template-columns: auto 1fr auto;
                     align-items: baseline; gap: 16px; text-align: left;
                     padding: 26px 4px; border-bottom: 1px solid #ece3f6;
                     cursor: pointer; background: none; border-left: none;
                     border-right: none; border-top: none;
                     transition: padding-left .35s ease; }
    .gn-item:hover { padding-left: 10px; }
    .gn-i-num      { font-size: 13px; font-weight: 600; letter-spacing: 1px;
                     color: #b7a6d4; transition: color .35s ease; }
    .gn-i-name     { font-family: var(--serif); font-size: clamp(21px,2.3vw,29px);
                     font-weight: 700; line-height: 1.1; color: #a99cc4;
                     transition: color .35s ease; }
    .gn-i-arrow    { font-size: 20px; color: #6b30b8; opacity: 0; transform: translateX(-8px);
                     transition: opacity .35s ease, transform .35s ease; }

    /* Right stage — cross-fading statements + oversized ghost numeral */
    .gn-stage      { position: relative; padding-left: 54px; min-height: 340px;
                     display: flex; align-items: center; overflow: hidden; }
    .gn-slide      { position: absolute; inset: 0; padding-left: 54px;
                     display: flex; flex-direction: column; justify-content: center;
                     opacity: 0; transform: translateY(16px); pointer-events: none;
                     transition: opacity .55s ease, transform .55s ease; }
    .gn-ghost      { position: absolute; top: -18px; right: 6px; z-index: 0;
                     font-family: var(--serif); font-weight: 700; line-height: .8;
                     font-size: clamp(130px,17vw,230px); color: #2b0758;
                     opacity: .05; pointer-events: none; user-select: none; }
    .gn-kicker     { position: relative; z-index: 1; font-size: 12px; font-weight: 600;
                     letter-spacing: 1.6px; text-transform: uppercase; color: #6b3aa8;
                     margin-bottom: 16px; }
    .gn-tagline    { position: relative; z-index: 1; font-family: var(--serif);
                     font-size: clamp(30px,4vw,52px); font-weight: 700; color: var(--ink);
                     line-height: 1.06; letter-spacing: -.6px; margin-bottom: 20px; }
    .gn-tagline em { font-style: italic; color: #6b30b8; }
    .gn-desc       { position: relative; z-index: 1; font-size: 16.5px; color: #565065;
                     line-height: 1.72; max-width: 500px; }

    /* CSS-only active states — driven by the checked radio (export-safe, no JS) */
    #gn-sth-0:checked ~ .gn-index .gn-item:nth-of-type(1) .gn-i-name,
    #gn-sth-1:checked ~ .gn-index .gn-item:nth-of-type(2) .gn-i-name,
    #gn-sth-2:checked ~ .gn-index .gn-item:nth-of-type(3) .gn-i-name,
    #gn-sth-3:checked ~ .gn-index .gn-item:nth-of-type(4) .gn-i-name { color: #240a4d; }
    #gn-sth-0:checked ~ .gn-index .gn-item:nth-of-type(1) .gn-i-num,
    #gn-sth-1:checked ~ .gn-index .gn-item:nth-of-type(2) .gn-i-num,
    #gn-sth-2:checked ~ .gn-index .gn-item:nth-of-type(3) .gn-i-num,
    #gn-sth-3:checked ~ .gn-index .gn-item:nth-of-type(4) .gn-i-num { color: #6b30b8; }
    #gn-sth-0:checked ~ .gn-index .gn-item:nth-of-type(1) .gn-i-arrow,
    #gn-sth-1:checked ~ .gn-index .gn-item:nth-of-type(2) .gn-i-arrow,
    #gn-sth-2:checked ~ .gn-index .gn-item:nth-of-type(3) .gn-i-arrow,
    #gn-sth-3:checked ~ .gn-index .gn-item:nth-of-type(4) .gn-i-arrow { opacity: 1; transform: translateX(0); }
    #gn-sth-0:checked ~ .gn-stage .gn-slide:nth-of-type(1),
    #gn-sth-1:checked ~ .gn-stage .gn-slide:nth-of-type(2),
    #gn-sth-2:checked ~ .gn-stage .gn-slide:nth-of-type(3),
    #gn-sth-3:checked ~ .gn-stage .gn-slide:nth-of-type(4) { opacity: 1; transform: translateY(0); pointer-events: auto; }

    /* ======================================================
       RESPONSIVE - TABLET  (<= 900px)
    ====================================================== */
    @media (max-width: 900px) {
      .hero            { grid-template-columns: 1fr; }
      .hero-copy       { padding: 42px 0; }
      .hero-visual     { min-height: 380px; }
      .feature-row     { grid-template-columns: repeat(3,1fr); }
      .feature-col     { border-right: none; border-bottom: 1px solid var(--line); }
      .feature-col:nth-child(3n) { }
      .dest-grid       { grid-template-columns: repeat(3,1fr); }
      .uni-content     { grid-template-columns: 1fr 1fr; }
      .uni-list        { display: none; }
      .reasons-grid    { grid-template-columns: 1fr 1fr; grid-auto-rows: 200px; }
      .reason-wide,
      .reason-long     { grid-column: auto; }
      .sth-layout      { grid-template-columns: 1fr; gap: 20px; }
      .sth-layout      { padding: 18px; }
      .sth-intro       { text-align: center; }
      .sth-intro p     { max-width: 560px; margin-inline: auto; }
      .sth-grid        { grid-template-columns: 1fr 1fr; gap: 16px; }
      .quote-grid      { grid-template-columns: 1fr 1fr; }
      .cta-inner       { flex-direction: column; align-items: flex-start;
                         padding: 32px 0; gap: 22px; }
      .footer-grid     { grid-template-columns: 1fr 1fr 1fr; gap: 26px; }
      .footer-col-brand { grid-column: 1 / 4; }
      .footer-bottom   { grid-template-columns: 1fr 1fr 1fr; gap: 14px 26px; margin-top: -6px; }
      .socials         { grid-column: 1 / 4; }
      .copyright       { grid-column: 1 / 4; width: 100%; }
      .site-footer::before{ top: unset;right: -25px;bottom: 0;width: 100%; }
      .gn-panel        { grid-template-columns: 1fr; }
      .gn-index        { border-right: none; padding-right: 0; }
      .gn-stage        { padding-left: 0; min-height: 300px; border-top: 1px solid #ece3f6; padding-top: 8px; }
      .gn-slide        { padding-left: 0; }
    }

    /* ======================================================
       RESPONSIVE - MOBILE  (<= 640px)
    ====================================================== */
    @media (max-width: 640px) {
      :root { --shell: min(100%, calc(100% - 28px)); }
      .header-inner  { height: 66px; }
      .header-logo   { width: 108px; }
      .menu-toggle   { display: flex; }
      /* Mobile nav - hidden by default, shown when .open (vanilla JS toggles class) */
      .main-nav      { display: none; position: absolute; top: 66px; left: 0; right: 0; z-index: 99;
                       flex-direction: column; align-items: stretch;
                       padding: 14px 20px; background: var(--white);
                       box-shadow: 0 8px 24px rgba(25,7,47,.12); gap: 2px !important; }
      .main-nav.open { display: flex; }
      .nav-link      { padding: 10px 0; border-bottom: 1px solid #f0eaf8;
                       font-size: 15px; }
      .btn-book      { margin-top: 6px; border-bottom: none !important;
                       justify-content: center; height: 44px; }
      .hero          { grid-template-columns: 1fr; }
      .hero-copy     { padding: 32px 0 24px; }
      .hero-h1       { font-size: 34px; }
      .hero-actions  { flex-direction: column; }
      .hero-actions .btn { justify-content: center; }
      .hero-visual   { min-height: 280px; }
      .hero-badge    { width: 90px; height: 90px; font-size: 9.5px; }
      .feature-row   { grid-template-columns: 1fr 1fr; }
      .feature-col   { border-right: none; border-bottom: 1px solid var(--line); padding: 6px 14px; }
      .feature-col:last-child { grid-column: 1/3; }
      .dest-grid     { display: flex; overflow-x: auto; scroll-snap-type: x mandatory;
                       padding-bottom: 8px; gap: 12px; }
      .dest-card     { min-width: 73%; scroll-snap-align: start;
                       flex: none; height: 265px; }
      .uni-tabs      { display: flex; overflow-x: auto; }
      .uni-tab       { min-width: 105px; }
      .uni-content   { grid-template-columns: 1fr; }
      .reasons-grid  { grid-template-columns: 1fr; grid-auto-rows: auto; }
      .reason-card   { min-height: 140px; }
      .reason-image  { height: 200px; }
      .reason-wide, .reason-long { grid-column: auto; height: 200px; }
      .sth-layout    { grid-template-columns: 1fr; gap: 18px; }
      .sth-layout    { padding: 14px; }
      .sth-intro     { text-align: center; }
      .sth-intro p   { max-width: 100%; }
      .sth-grid      { grid-template-columns: 1fr; gap: 14px; }
      .sth-card      { min-height: 300px; }
      /*.sth-photo     { height: 160px; } */
      .quote-grid    { grid-template-columns: 1fr; }
      .footer-grid   { grid-template-columns: 1fr 1fr; gap: 22px; }
      .footer-col-brand { grid-column: 1/3; }
      .footer-bottom { grid-template-columns: 1fr; gap: 10px; }
      .socials       { grid-column: auto; }
      .copyright     { grid-column: auto; }
      .copyright     { flex-direction: column; gap: 6px; }
      .site-footer::before{
         top: unset;
         right: -25px;
         bottom: 0;
         width: 100%;
         height: 170px;
      }
    }

    /* -- Active university tab (vanilla JS toggles .active) -- */
    .uni-tab.active { border-bottom-color: #3c0c70; color: #2b0758; font-weight: 700; }

/* ========================================================
   COMBINED DESTINATION PAGE STYLES
   Source: css/study-abroad.css
   Scoped to pages containing .page-hero to preserve home/elevate layouts.
======================================================== */
body:has(.page-hero) .btn { display:inline-flex; align-items:center; justify-content:center; height:46px; padding:0 24px;
       border-radius:5px; font-weight:600; font-size:13.5px; border:1.5px solid transparent;
       transition:background .22s, border-color .22s, transform .22s, box-shadow .22s; }
body:has(.page-hero) .btn-primary { background:var(--brand-btn); border-color:var(--brand-btn); color:var(--white); }
body:has(.page-hero) .btn-primary:hover { background:#48118b; border-color:#48118b; transform:translateY(-2px); box-shadow:0 8px 20px rgba(45,7,95,.22); }
body:has(.page-hero) .btn-outline { background:var(--bg); border-color:#351064; color:var(--ink); }
body:has(.page-hero) .btn-outline:hover { background:#4a178e; border-color:#4a178e; color:var(--white); transform:translateY(-2px); box-shadow:0 8px 20px rgba(45,7,95,.18); }
body:has(.page-hero) .btn-cta-solid { background:#4e16a1; border-color:#6b2ec3; color:var(--white); }
body:has(.page-hero) .btn-cta-solid:hover { background:#6229bb; transform:translateY(-2px); }
body:has(.page-hero) .btn-cta-ghost { background:transparent; border-color:rgba(255,255,255,.7); color:var(--white); }
body:has(.page-hero) .btn-cta-ghost:hover { background:rgba(255,255,255,.1); transform:translateY(-2px); }
body:has(.page-hero) .page-hero { background:linear-gradient(108deg, var(--bg) 36%, #eff3f5 100%); }
body:has(.page-hero) .hero-grid { display:grid; grid-template-columns:1.05fr 1fr; gap:48px; align-items:center; min-height:520px; padding:30px 0 44px; }
body:has(.page-hero) .breadcrumb { display:flex; flex-wrap:wrap; align-items:center; gap:7px; font-size:12.5px; color:var(--muted); margin-bottom:22px; }
body:has(.page-hero) .breadcrumb a:hover { color:var(--brand); }
body:has(.page-hero) .breadcrumb span.sep { color:#b6abc6; }
body:has(.page-hero) .breadcrumb .crumb-cur { color:var(--brand); font-weight:600; }
body:has(.page-hero) .hero-eyebrow { display:inline-flex; align-items:center; gap:8px; font-size:11.5px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; color:#6a36b3; background:#efe4fb; border:1px solid #e0cef6; padding:6px 14px; border-radius:100px; margin-bottom:20px; }
body:has(.page-hero) .hero-eyebrow::before { content:''; width:6px; height:6px; border-radius:50%; background:#7a3cc9; }
body:has(.page-hero) .page-hero h1 { font-family:var(--serif); font-size:clamp(38px,4.4vw,64px); font-weight:700; line-height:1.05; letter-spacing:-1.4px; color:var(--ink); margin-bottom:20px; }
body:has(.page-hero) .hero-lead { font-size:16.5px; color:var(--ink-mid); max-width:540px; margin-bottom:30px; line-height:1.62; }
body:has(.page-hero) .hero-actions { display:flex; flex-wrap:wrap; gap:13px; }
body:has(.page-hero) .hero-visual { position:relative; overflow: unset;}
body:has(.page-hero) .hero-photo { position:relative; border-radius:14px; overflow:hidden; height:430px; box-shadow:0 20px 50px rgba(25,7,47,.22); }
body:has(.page-hero) .hero-photo img { width:100%; height:100%; object-fit:cover; }
body:has(.page-hero) .hero-photo::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg, transparent 55%, rgba(25,5,72,.42)); }
body:has(.page-hero) .hero-photo.placeholder { background:repeating-linear-gradient(135deg,#efe7f8,#efe7f8 14px,#e7dcf3 14px,#e7dcf3 28px); display:flex; align-items:center; justify-content:center; }
body:has(.page-hero) .hero-photo.placeholder span { font-family:var(--num); font-size:13px; letter-spacing:.08em; text-transform:uppercase; color:#8a78a8; background:rgba(255,255,255,.82); padding:8px 16px; border-radius:8px; position:relative; z-index:2; }
body:has(.page-hero) .hero-stats { position:absolute; left:-22px; bottom:34px; display:flex; flex-direction:column; gap:0; background:var(--white); border-radius:14px; box-shadow:0 14px 38px rgba(25,7,47,.2); overflow:hidden; }
body:has(.page-hero) .hero-stat { padding:15px 24px; border-bottom:1px solid #efe9f6; }
body:has(.page-hero) .hero-stat:last-child { border-bottom:none; }
body:has(.page-hero) .hero-stat b { display:block; font-family:var(--num); font-size:27px; font-weight:700; color:var(--brand); line-height:1; letter-spacing:-.5px; font-variant-numeric:lining-nums tabular-nums; }
body:has(.page-hero) .hero-stat span { display:block; font-size:11.5px; color:var(--muted); font-weight:500; max-width:132px; margin-top:4px; line-height:1.3; }
body:has(.page-hero) .hero-flag { position:absolute; top:18px; right:18px; display:inline-flex; align-items:center; gap:8px; background:rgba(255,255,255,.94); padding:8px 14px; border-radius:100px; font-size:12.5px; font-weight:700; color:var(--ink); box-shadow:0 6px 18px rgba(25,7,47,.18); z-index:3; }
body:has(.page-hero) .hero-flag .dot { width:9px; height:9px; border-radius:50%; background:#36a550; }
body:has(.page-hero) .sec { padding:74px 0; }
body:has(.page-hero) .sec-alt { background:linear-gradient(180deg,#faf6fe 0%, #f3ecfb 50%, #faf6fe 100%); }
body:has(.page-hero) .sec-eyebrow { display:inline-block; font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#6a36b3; margin-bottom:14px; }
body:has(.page-hero) .sec-title { font-family:var(--serif); font-size:clamp(26px,3vw,40px); font-weight:700; color:var(--ink); line-height:1.14; letter-spacing:-.6px; margin-bottom:16px; }
body:has(.page-hero) .sec-title em { font-style:normal; color:var(--brand); }
body:has(.page-hero) .sec-lead { font-size:15.5px; color:var(--muted); line-height:1.62; max-width:680px; }
body:has(.page-hero) .sec-head-c { text-align:center; margin:0 auto 44px; max-width:720px; }
body:has(.page-hero) .sec-head-c .sec-lead { margin-inline:auto; }
body:has(.page-hero) .intro-band { display:grid; grid-template-columns:1.2fr 1fr; gap:46px; align-items:center; }
body:has(.page-hero) .intro-band .sec-lead { font-size:16px; max-width:none; }
body:has(.page-hero) .intro-stats { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
body:has(.page-hero) .intro-stat { background:var(--white); border:1px solid #e7ddf2; border-radius:14px; padding:22px 20px; box-shadow:0 4px 16px rgba(43,10,82,.05); }
body:has(.page-hero) .intro-stat b { display:block; font-family:var(--num); font-size:32px; font-weight:700; color:var(--brand); line-height:1; margin-bottom:8px; letter-spacing:-.5px; font-variant-numeric:lining-nums tabular-nums; }
body:has(.page-hero) .intro-stat span { font-size:13px; color:#514860; line-height:1.45; }
body:has(.page-hero) .why-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
body:has(.page-hero) .why-card { position:relative; background:var(--white); border:1px solid #e7ddf2; border-radius:16px; padding:28px 26px 26px; overflow:hidden; box-shadow:0 4px 16px rgba(43,10,82,.05); transition:transform .26s, box-shadow .26s, border-color .26s; }
body:has(.page-hero) .why-card:hover { transform:translateY(-6px); border-color:#d6c2f0; box-shadow:0 18px 40px rgba(43,10,82,.13); }
body:has(.page-hero) .why-card::before { content:''; position:absolute; left:0; top:0; right:0; height:4px; background:linear-gradient(90deg,#7a3cc9,#4a128f); transform:scaleX(0); transform-origin:left; transition:transform .3s; }
body:has(.page-hero) .why-card:hover::before { transform:scaleX(1); }
body:has(.page-hero) .why-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
body:has(.page-hero) .why-icon { width:52px; height:52px; border-radius:15px; display:flex; align-items:center; justify-content:center; background:linear-gradient(150deg,#f0e6fc,#e4d2f8); transition:background .26s; }
body:has(.page-hero) .why-icon svg { width:26px; height:26px; stroke:#4a128f; fill:none; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
body:has(.page-hero) .why-card:hover .why-icon { background:linear-gradient(150deg,#5a1aa8,#3a0b73); }
body:has(.page-hero) .why-card:hover .why-icon svg { stroke:#fff; }
body:has(.page-hero) .why-ghost { font-family:var(--num); font-size:40px; font-weight:700; color:#2a0a4f; opacity:.1; line-height:1; font-variant-numeric:lining-nums tabular-nums; }
body:has(.page-hero) .why-card h3 { font-size:17px; font-weight:700; color:var(--ink); margin-bottom:10px; line-height:1.28; letter-spacing:-.2px; }
body:has(.page-hero) .why-card p { font-size:14px; color:#4a4257; line-height:1.62; }
body:has(.page-hero) .why-card strong { color:var(--brand); font-weight:700; }
body:has(.page-hero) .uni-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
body:has(.page-hero) .uni-card { display:flex; flex-direction:column; background:var(--white); border:1px solid #e7ddf2; border-radius:16px; overflow:hidden; box-shadow:0 4px 16px rgba(43,10,82,.05); transition:transform .26s, box-shadow .26s, border-color .26s; }
body:has(.page-hero) .uni-card:hover { transform:translateY(-6px); border-color:#d6c2f0; box-shadow:0 18px 40px rgba(43,10,82,.13); }
body:has(.page-hero) .uni-card-top { display:flex; align-items:center; justify-content:space-between; padding:16px 18px 0; gap:8px; }
body:has(.page-hero) .uni-badge { font-size:10.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:#5a1aa8; background:#f1e8fb; border:1px solid #e3d4f7; padding:5px 11px; border-radius:100px; line-height:1.25; }
body:has(.page-hero) .uni-badge.gold { color:#8a6a12; background:#fbf3dc; border-color:#f0e2b4; }
body:has(.page-hero) .uni-qs { font-size:11px; font-weight:700; color:var(--muted); white-space:nowrap; }
body:has(.page-hero) .uni-logo-wrap { height:85px; margin:18px 18px 8px; display:flex; align-items:center; justify-content:flex-start; }
body:has(.page-hero) .uni-logo { width:200px; height:80px; background-size:contain; background-repeat:no-repeat; background-position:left center; }
body:has(.page-hero) .uni-mono { display:inline-flex; align-items:center; justify-content:center; min-width:64px; height:54px; padding:0 14px; border-radius:12px; background:linear-gradient(150deg,#2d075f,#4a128f); color:var(--white); font-family:var(--serif); font-weight:700; font-size:20px; letter-spacing:.5px; }
body:has(.page-hero) .uni-name { font-size:16px; font-weight:700; color:var(--ink); padding:0 18px; margin-bottom:9px; line-height:1.28; }
body:has(.page-hero) .uni-desc { font-size:13px; color:#514860; line-height:1.55; padding:0 18px; margin-bottom:16px; flex:1; }
body:has(.page-hero) .uni-foot { display:flex; align-items:center; gap:8px; padding:13px 18px; border-top:1px solid #efe9f6; background:#faf7fd; font-size:11.5px; color:#3f3650; }
body:has(.page-hero) .uni-foot svg { width:14px; height:14px; color:var(--brand); flex-shrink:0; }
body:has(.page-hero) .uni-foot b { font-weight:700; color:var(--ink); }
body:has(.page-hero) .course-cats { display:grid; grid-template-columns:1.6fr 1fr; gap:22px; align-items:start; }
body:has(.page-hero) .course-cat { background:var(--white); border:1px solid #e7ddf2; border-radius:18px; padding:26px 26px 24px; box-shadow:0 4px 16px rgba(43,10,82,.05); }
body:has(.page-hero) .course-cat-head { display:flex; align-items:center; gap:14px; margin-bottom:20px; padding-bottom:18px; border-bottom:1px solid #efe9f6; }
body:has(.page-hero) .course-cat-ic { width:48px; height:48px; border-radius:14px; flex-shrink:0; display:flex; align-items:center; justify-content:center; background:linear-gradient(150deg,#2d075f,#4a128f); }
body:has(.page-hero) .course-cat-ic svg { width:25px; height:25px; stroke:#fff; fill:none; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
body:has(.page-hero) .course-cat-head h3 { font-family:var(--serif); font-size:21px; font-weight:700; color:var(--ink); line-height:1.05; }
body:has(.page-hero) .course-cat-head h3 span { display:block; font-family:var(--sans); font-size:11.5px; font-weight:700; color:#6a36b3; text-transform:uppercase; letter-spacing:.09em; margin-top:5px; }
body:has(.page-hero) .course-list { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
body:has(.page-hero) .course-cat.ug .course-list { grid-template-columns:1fr; }
body:has(.page-hero) .course-row { display:flex; align-items:center; gap:12px; padding:11px 13px; border-radius:11px; background:#faf7fd; border:1px solid #efe9f6; font-size:13.5px; font-weight:600; color:var(--ink); transition:background .2s, border-color .2s, transform .2s; }
body:has(.page-hero) .course-row:hover { background:#f3ecfb; border-color:#d6c2f0; transform:translateX(3px); }
body:has(.page-hero) .course-ic { width:31px; height:31px; border-radius:9px; flex-shrink:0; display:flex; align-items:center; justify-content:center; background:#efe4fb; }
body:has(.page-hero) .course-ic svg { width:16px; height:16px; stroke:#5a1aa8; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
body:has(.page-hero) .cost-board { background:var(--white); border:1px solid #e7ddf2; border-radius:18px; overflow:hidden; box-shadow:0 6px 22px rgba(43,10,82,.07); }
body:has(.page-hero) .cost-summary { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:18px; padding:24px 30px; background:linear-gradient(108deg,#2d075f,#1e064b); color:var(--white); }
body:has(.page-hero) .cost-summary .cs-label { font-size:12px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:#cdb0f3; margin-bottom:7px; }
body:has(.page-hero) .cost-summary .cs-amt { font-family:var(--num); font-size:30px; font-weight:700; line-height:1; font-variant-numeric:lining-nums tabular-nums; }
body:has(.page-hero) .cost-summary .cs-right { text-align:right; }
body:has(.page-hero) .cost-summary .cs-sub { font-size:12.5px; color:rgba(255,255,255,.78); margin-top:7px; }
body:has(.page-hero) .cost-row { display:grid; grid-template-columns:50px 1fr auto; align-items:center; gap:18px; padding:18px 30px; border-bottom:1px solid #efe9f6; transition:background .2s; }
body:has(.page-hero) .cost-row:last-child { border-bottom:none; }
body:has(.page-hero) .cost-row:hover { background:#faf7fd; }
body:has(.page-hero) .cost-ic { width:50px; height:50px; border-radius:14px; display:flex; align-items:center; justify-content:center; background:linear-gradient(150deg,#f0e6fc,#e4d2f8); }
body:has(.page-hero) .cost-ic svg { width:24px; height:24px; stroke:#4a128f; fill:none; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
body:has(.page-hero) .cost-main h4 { font-size:15px; font-weight:700; color:var(--ink); margin-bottom:3px; }
body:has(.page-hero) .cost-main p { font-size:12.5px; color:#6a6276; line-height:1.5; }
body:has(.page-hero) .cost-amt { font-family:var(--num); font-size:15.5px; font-weight:700; color:var(--brand); background:#f1e8fb; border:1px solid #e3d4f7; padding:9px 16px; border-radius:11px; white-space:nowrap; font-variant-numeric:lining-nums tabular-nums; }
body:has(.page-hero) .cost-note { font-size:13px; color:var(--muted); margin-top:16px; line-height:1.55; }
body:has(.page-hero) .intake-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
body:has(.page-hero) .intake-card { position:relative; background:var(--white); border:1px solid #e7ddf2; border-radius:18px; overflow:hidden; box-shadow:0 4px 16px rgba(43,10,82,.05); transition:transform .26s, box-shadow .26s, border-color .26s; }
body:has(.page-hero) .intake-card:hover { transform:translateY(-6px); border-color:#d6c2f0; box-shadow:0 18px 38px rgba(43,10,82,.14); }
body:has(.page-hero) .intake-card.primary::before { content:''; position:absolute; top:0; left:0; right:0; height:5px; background:linear-gradient(90deg,#7a3cc9,#4a128f); z-index:2; }
body:has(.page-hero) .intake-top { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:24px 24px 18px; border-bottom:1px solid #efe9f6; }
body:has(.page-hero) .intake-mon { font-family:var(--num); font-size:30px; font-weight:700; color:var(--brand); line-height:1; letter-spacing:.5px; }
body:has(.page-hero) .intake-mon small { display:block; font-family:var(--sans); font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#9a8fb0; margin-top:7px; }
body:has(.page-hero) .intake-sem { font-size:10.5px; font-weight:700; color:#6a36b3; background:#efe4fb; border:1px solid #e0cef6; padding:5px 11px; border-radius:100px; text-transform:uppercase; letter-spacing:.04em; white-space:nowrap; }
body:has(.page-hero) .intake-card.primary .intake-sem { color:#fff; background:linear-gradient(150deg,#5a1aa8,#3a0b73); border-color:transparent; }
body:has(.page-hero) .intake-bd { padding:20px 24px 24px; }
body:has(.page-hero) .intake-bd p { font-size:13.5px; color:#514860; line-height:1.58; margin-bottom:16px; }
body:has(.page-hero) .intake-deadline { display:flex; align-items:center; gap:10px; font-size:12.5px; font-weight:600; color:var(--ink); padding-top:14px; border-top:1px dashed #e3dcf0; }
body:has(.page-hero) .intake-deadline svg { width:16px; height:16px; stroke:var(--brand); fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
body:has(.page-hero) .intake-deadline b { color:var(--brand); font-weight:700; }
body:has(.page-hero) .visa-steps { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
body:has(.page-hero) .visa-card { position:relative; overflow:hidden; background:var(--white); border:1px solid #e7ddf2; border-radius:16px; padding:22px 24px; box-shadow:0 4px 16px rgba(43,10,82,.05); transition:transform .24s, box-shadow .24s, border-color .24s; }
body:has(.page-hero) .visa-card:hover { transform:translateY(-4px); border-color:#d6c2f0; box-shadow:0 16px 34px rgba(43,10,82,.12); }
body:has(.page-hero) .visa-card::before { content:''; position:absolute; left:0; top:0; bottom:0; width:4px; background:linear-gradient(180deg,#7a3cc9,#4a128f); }
body:has(.page-hero) .visa-chead { display:flex; align-items:center; gap:14px; margin-bottom:13px; }
body:has(.page-hero) .visa-cic { width:46px; height:46px; border-radius:13px; flex-shrink:0; display:flex; align-items:center; justify-content:center; background:linear-gradient(150deg,#f0e6fc,#e4d2f8); transition:background .24s; }
body:has(.page-hero) .visa-cic svg { width:23px; height:23px; stroke:#4a128f; fill:none; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; transition:stroke .24s; }
body:has(.page-hero) .visa-card:hover .visa-cic { background:linear-gradient(150deg,#5a1aa8,#3a0b73); }
body:has(.page-hero) .visa-card:hover .visa-cic svg { stroke:#fff; }
body:has(.page-hero) .visa-cmeta { flex:1; min-width:0; }
body:has(.page-hero) .visa-eyebrow { font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#6a36b3; margin-bottom:4px; }
body:has(.page-hero) .visa-card h3 { font-size:16px; font-weight:700; color:var(--ink); line-height:1.3; }
body:has(.page-hero) .visa-time { font-size:11px; font-weight:700; color:var(--brand); background:#f1e8fb; border:1px solid #e3d4f7; padding:5px 11px; border-radius:100px; white-space:nowrap; align-self:flex-start; }
body:has(.page-hero) .visa-card p { font-size:13.5px; color:#514860; line-height:1.6; }
body:has(.page-hero) .schol-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
body:has(.page-hero) .schol-item { display:flex; gap:14px; background:var(--white); border:1px solid #e7ddf2; border-radius:13px; padding:18px 20px; box-shadow:0 3px 12px rgba(43,10,82,.05); transition:transform .22s, box-shadow .22s; }
body:has(.page-hero) .schol-item:hover { transform:translateY(-3px); box-shadow:0 12px 26px rgba(43,10,82,.1); }
body:has(.page-hero) .schol-check { flex-shrink:0; width:26px; height:26px; border-radius:50%; background:linear-gradient(150deg,#5a1aa8,#3a0b73); display:flex; align-items:center; justify-content:center; margin-top:1px; }
body:has(.page-hero) .schol-check svg { width:14px; height:14px; stroke:#fff; stroke-width:2.6; fill:none; stroke-linecap:round; stroke-linejoin:round; }
body:has(.page-hero) .schol-item p { font-size:13.5px; color:#3f3650; line-height:1.5; }
body:has(.page-hero) .schol-item p b { color:var(--ink); font-weight:700; }
body:has(.page-hero) .psw-panel { background:linear-gradient(148deg,#250451 0%, #1a063b 100%); border-radius:20px; padding:50px 52px; color:var(--white); position:relative; overflow:hidden; }
body:has(.page-hero) .psw-panel::after { content:''; position:absolute; top:-80px; right:-60px; width:280px; height:280px; border-radius:50%; background:radial-gradient(circle, rgba(122,60,201,.32), transparent 68%); }
body:has(.page-hero) .psw-grid { position:relative; z-index:1; display:grid; grid-template-columns:1fr 1fr; gap:44px; align-items:center; }
body:has(.page-hero) .psw-panel .sec-eyebrow { color:#c8a9f3; }
body:has(.page-hero) .psw-panel h2 { font-family:var(--serif); font-size:clamp(24px,2.6vw,34px); font-weight:700; line-height:1.16; margin-bottom:14px; }
body:has(.page-hero) .psw-panel p { font-size:14.5px; line-height:1.7; color:rgba(255,255,255,.86); }
body:has(.page-hero) .psw-pills { display:flex; flex-direction:column; gap:12px; }
body:has(.page-hero) .psw-pill { display:flex; align-items:center; gap:14px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.14); border-radius:13px; padding:16px 20px; }
body:has(.page-hero) .psw-pill b { font-family:var(--num); font-size:26px; font-weight:700; color:#d9bcff; flex-shrink:0; min-width:84px; letter-spacing:-.5px; font-variant-numeric:lining-nums tabular-nums; }
body:has(.page-hero) .psw-pill span { font-size:13px; color:rgba(255,255,255,.84); line-height:1.45; }
body:has(.page-hero) .adv-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
body:has(.page-hero) .adv-card { display:grid; grid-template-columns:auto 1fr; gap:18px; align-items:start; background:var(--white); border:1px solid #e7ddf2; border-radius:16px; padding:24px 26px; box-shadow:0 4px 16px rgba(43,10,82,.05); transition:transform .26s, box-shadow .26s, border-color .26s; }
body:has(.page-hero) .adv-card:hover { transform:translateY(-5px); border-color:#d6c2f0; box-shadow:0 16px 34px rgba(43,10,82,.13); }
body:has(.page-hero) .adv-card.feat { grid-column:1 / -1; }
body:has(.page-hero) .adv-badge { width:54px; height:54px; border-radius:15px; background:linear-gradient(150deg,#2d075f,#4a128f); color:#fff; display:flex; align-items:center; justify-content:center; font-family:var(--num); font-size:22px; font-weight:700; box-shadow:0 8px 18px rgba(45,7,95,.22); font-variant-numeric:lining-nums tabular-nums; }
body:has(.page-hero) .adv-card h3 { font-size:16px; font-weight:700; color:var(--ink); margin-bottom:8px; line-height:1.3; }
body:has(.page-hero) .adv-card p { font-size:13.5px; color:#514860; line-height:1.6; }
body:has(.page-hero) .faq-wrap { max-width:860px; margin:0 auto; display:flex; flex-direction:column; gap:12px; }
body:has(.page-hero) .faq-item { background:var(--white); border:1px solid #e7ddf2; border-radius:13px; overflow:hidden; box-shadow:0 3px 12px rgba(43,10,82,.04); transition:border-color .2s, box-shadow .2s; }
body:has(.page-hero) .faq-item.open { border-color:#cdb6ec; box-shadow:0 10px 26px rgba(43,10,82,.1); }
body:has(.page-hero) .faq-q { width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:19px 24px; text-align:left; font-size:15px; font-weight:700; color:var(--ink); }
body:has(.page-hero) .faq-icon { flex-shrink:0; width:26px; height:26px; border-radius:50%; background:#f1e8fb; display:flex; align-items:center; justify-content:center; transition:background .2s, transform .25s; }
body:has(.page-hero) .faq-item.open .faq-icon { background:linear-gradient(150deg,#5a1aa8,#3a0b73); transform:rotate(180deg); }
body:has(.page-hero) .faq-icon svg { width:13px; height:13px; stroke:var(--brand); stroke-width:2.4; fill:none; stroke-linecap:round; stroke-linejoin:round; transition:stroke .2s; }
body:has(.page-hero) .faq-item.open .faq-icon svg { stroke:#fff; }
body:has(.page-hero) .faq-a { display:grid; grid-template-rows:0fr; transition:grid-template-rows .28s ease; }
body:has(.page-hero) .faq-item.open .faq-a { grid-template-rows:1fr; }
body:has(.page-hero) .faq-a-inner { overflow:hidden; min-height:0; }
body:has(.page-hero) .faq-a-inner p { padding:0 24px 20px; font-size:14px; color:#514860; line-height:1.66; }
body:has(.page-hero) .other-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
body:has(.page-hero) .other-card { display:flex; align-items:center; justify-content:space-between; gap:14px; background:var(--white); border:1px solid #e7ddf2; border-radius:14px; padding:24px 26px; box-shadow:0 4px 16px rgba(43,10,82,.05); transition:transform .24s, box-shadow .24s, border-color .24s; }
body:has(.page-hero) .other-card:hover { transform:translateY(-4px); border-color:#cdb6ec; box-shadow:0 16px 34px rgba(43,10,82,.12); }
body:has(.page-hero) .other-card h3 { font-family:var(--serif); font-size:20px; font-weight:700; color:var(--ink); }
body:has(.page-hero) .other-card span { font-size:12.5px; color:var(--muted); }
body:has(.page-hero) .other-arrow { width:40px; height:40px; border-radius:50%; background:#f1e8fb; display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:background .24s; }
body:has(.page-hero) .other-card:hover .other-arrow { background:linear-gradient(150deg,#5a1aa8,#3a0b73); }
body:has(.page-hero) .other-arrow svg { width:17px; height:17px; stroke:var(--brand); stroke-width:2.2; fill:none; stroke-linecap:round; stroke-linejoin:round; transition:stroke .24s; }
body:has(.page-hero) .other-card:hover .other-arrow svg { stroke:#fff; }
body:has(.page-hero) .cta-band { background:linear-gradient(108deg,#321069,#1e064b); color:var(--white); }
body:has(.page-hero) .cta-inner { display:flex; align-items:center; justify-content:space-between; gap:28px; min-height:185px; padding:44px 0; }
body:has(.page-hero) .cta-copy h2 { font-family:var(--serif); font-size:clamp(24px,2.4vw,34px); font-weight:700; margin-bottom:10px; }
body:has(.page-hero) .cta-copy p { font-size:15px; opacity:.88; line-height:1.55; max-width:520px; }
body:has(.page-hero) .cta-actions { display:flex; flex-wrap:wrap; gap:13px; flex-shrink:0; }
@media (max-width:900px) {
body:has(.page-hero) .hero-grid { grid-template-columns:1fr; gap:32px; }
body:has(.page-hero) .hero-photo { height:340px; }
body:has(.page-hero) .hero-stats { left:14px; bottom:14px; flex-direction:row; }
body:has(.page-hero) .hero-stat { border-bottom:none; border-right:1px solid #efe9f6; }
body:has(.page-hero) .hero-stat:last-child { border-right:none; }
body:has(.page-hero) .intro-band { grid-template-columns:1fr; gap:30px; }
body:has(.page-hero) .why-grid { grid-template-columns:1fr 1fr; }
body:has(.page-hero) .uni-grid { grid-template-columns:1fr 1fr; }
body:has(.page-hero) .course-cats { grid-template-columns:1fr; }
body:has(.page-hero) .intake-grid { grid-template-columns:1fr; }
body:has(.page-hero) .schol-grid { grid-template-columns:1fr; }
body:has(.page-hero) .psw-grid { grid-template-columns:1fr; gap:28px; }
body:has(.page-hero) .adv-grid { grid-template-columns:1fr; }
body:has(.page-hero) .visa-steps { grid-template-columns:1fr; }
body:has(.page-hero) .other-grid { grid-template-columns:1fr; }
body:has(.page-hero) .cta-inner { flex-direction:column; align-items:flex-start; padding:34px 0; gap:22px; }
body:has(.page-hero) .footer-grid { grid-template-columns:1fr 1fr 1fr; gap:26px; }
body:has(.page-hero) .footer-col-brand { grid-column:1/4; }


}
@media (max-width:640px) {
html:has(body .page-hero) { --shell:min(100%, calc(100% - 28px)); }
body:has(.page-hero) .header-inner { height:66px; }
body:has(.page-hero) .header-logo { width:108px; }
body:has(.page-hero) .menu-toggle { display:flex; }
body:has(.page-hero) .main-nav { position:absolute; top:66px; left:0; right:0; z-index:99; flex-direction:column; align-items:stretch; padding:14px 20px; background:var(--white); box-shadow:0 8px 24px rgba(25,7,47,.12); gap:2px; display:none; }
body:has(.page-hero) .main-nav.open { display:flex; }
body:has(.page-hero) .nav-link { padding:10px 0; border-bottom:1px solid #f0eaf8; font-size:15px; }
body:has(.page-hero) .btn-book { margin-top:6px; border-bottom:none; justify-content:center; height:44px; }
body:has(.page-hero) .page-hero h1 { font-size:36px; }
body:has(.page-hero) .hero-actions { flex-direction:column; }
body:has(.page-hero) .hero-actions .btn { justify-content:center; }
body:has(.page-hero) .hero-photo { height:280px; }
body:has(.page-hero) .hero-stats { position:static; margin-top:16px; box-shadow:0 8px 22px rgba(25,7,47,.14); }
body:has(.page-hero) .why-grid { grid-template-columns:1fr; }
body:has(.page-hero) .uni-grid { grid-template-columns:1fr; }
body:has(.page-hero) .adv-grid { grid-template-columns:1fr; }
body:has(.page-hero) .visa-chead { flex-wrap:wrap; }
body:has(.page-hero) .psw-panel { padding:34px 26px; }
body:has(.page-hero) .cost-summary { flex-direction:column; align-items:flex-start; gap:12px; }
body:has(.page-hero) .cost-summary .cs-right { text-align:left; }
body:has(.page-hero) .cost-row { grid-template-columns:42px 1fr; row-gap:8px; padding:16px 18px; }
body:has(.page-hero) .cost-amt { grid-column:2; justify-self:start; }
body:has(.page-hero) .course-list { grid-template-columns:1fr; }
body:has(.page-hero) .footer-grid { grid-template-columns:1fr 1fr; gap:22px; }
body:has(.page-hero) .footer-col-brand { grid-column:1/3; }
body:has(.page-hero) .copyright { flex-direction:column; gap:6px; }


}



/* ========================================================
   COMBINED ELEVATE PAGE STYLES
   Source: elevate.html internal CSS
   Scoped to pages containing .e-hero to preserve other layouts.
======================================================== */
body:has(.e-hero) .btn { display:inline-flex; align-items:center; justify-content:center; height:46px;
           padding:0 24px; border-radius:5px; font-weight:600; font-size:13.5px;
           border:1.5px solid transparent;
           transition:background .22s, border-color .22s, transform .22s, box-shadow .22s; }
body:has(.e-hero) .btn-primary { background:var(--brand-btn); border-color:var(--brand-btn); color:var(--white); }
body:has(.e-hero) .btn-primary:hover { background:#48118b; border-color:#48118b; transform:translateY(-2px);
                         box-shadow:0 8px 20px rgba(45,7,95,.22); }
body:has(.e-hero) .btn-outline { background:var(--bg); border-color:#351064; color:var(--ink); }
body:has(.e-hero) .btn-outline:hover { background:#4a178e; border-color:#4a178e; color:var(--white);
                         transform:translateY(-2px); box-shadow:0 8px 20px rgba(45,7,95,.18); }
body:has(.e-hero) .btn-cta-solid { background:#4e16a1; border-color:#6b2ec3; color:var(--white); }
body:has(.e-hero) .btn-cta-solid:hover { background:#6229bb; transform:translateY(-2px); }
body:has(.e-hero) .btn-cta-ghost { background:transparent; border-color:rgba(255,255,255,.7); color:var(--white); }
body:has(.e-hero) .btn-cta-ghost:hover { background:rgba(255,255,255,.1); transform:translateY(-2px); }
body:has(.e-hero) .e-hero { position:relative; overflow:hidden;
              background:linear-gradient(112deg,#ffffff 42%, #f3f1ec 100%); color:var(--ink);
              border-bottom:1px solid #ece8e2; }
body:has(.e-hero) .e-hero::before { content:''; position:absolute; top:-200px; right:-140px; width:520px; height:520px;
                      border-radius:50%; background:radial-gradient(circle, rgba(122,60,201,.08), transparent 66%); }
body:has(.e-hero) .e-hero-grid { position:relative; z-index:1; display:grid; grid-template-columns:1.06fr .94fr;
                   gap:46px; align-items:center; padding:70px 0 76px; }
body:has(.e-hero) .e-eyebrow { display:inline-flex; align-items:center; gap:9px; font-size:11.5px; font-weight:700;
                 letter-spacing:.14em; text-transform:uppercase; color:#6a36b3; white-space:nowrap;
                 background:#efe4fb; border:1px solid #e0cef6;
                 padding:7px 16px; border-radius:100px; margin-bottom:24px; }
body:has(.e-hero) .e-eyebrow b { color:var(--brand); font-weight:800; }
body:has(.e-hero) .e-eyebrow .dot { width:7px; height:7px; border-radius:50%; background:#b98ee8; }
body:has(.e-hero) .e-hero h1 { font-family:var(--serif); font-weight:700; font-size:clamp(34px,4vw,58px);
                 line-height:1.08; letter-spacing:-1px; margin-bottom:20px; }
body:has(.e-hero) .e-hero h1 em { font-style:italic; color:var(--brand); }
body:has(.e-hero) .e-hero-sub { font-size:16.5px; color:var(--muted); max-width:500px; line-height:1.62; margin-bottom:30px; }
body:has(.e-hero) .e-hero-actions { display:flex; flex-wrap:wrap; gap:13px; }
body:has(.e-hero) .e-hero-actions .btn-light { background:#fff; color:#2a0a55; border-color:#fff; }
body:has(.e-hero) .e-hero-actions .btn-light:hover { background:#efe6fb; border-color:#efe6fb; transform:translateY(-2px);
                                       box-shadow:0 10px 24px rgba(0,0,0,.25); }
body:has(.e-hero) .e-hero-visual { position:relative; }
body:has(.e-hero) .e-hero-photo { position:relative; border-radius:18px; overflow:hidden; aspect-ratio:5/4.4;
                    border:1px solid #e7e2db; box-shadow:0 26px 60px rgba(43,10,82,.16); }
body:has(.e-hero) .e-hero-photo img { width:100%; height:100%; object-fit:cover; }
body:has(.e-hero) .e-hero-chip { position:absolute; display:flex; align-items:center; gap:11px;
                   background:#fff; color:var(--ink); border:1px solid #ece8e2; border-radius:13px;
                   padding:12px 16px; box-shadow:0 14px 34px rgba(43,10,82,.14); }
body:has(.e-hero) .e-hero-chip .ic { width:38px; height:38px; border-radius:10px; flex-shrink:0; display:flex;
                       align-items:center; justify-content:center; color:#fff;
                       background:linear-gradient(150deg,#6a26c4,#3a0b73); }
body:has(.e-hero) .e-hero-chip .ic svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8;
                           stroke-linecap:round; stroke-linejoin:round; }
body:has(.e-hero) .e-hero-chip .t { font-size:13px; font-weight:700; line-height:1.18; }
body:has(.e-hero) .e-hero-chip .t small { display:block; font-weight:500; font-size:11px; color:#6a6278; margin-top:2px; }
body:has(.e-hero) .e-chip-top { top:43px; left:-26px; }
body:has(.e-hero) .e-chip-bottom { bottom:24px; right:-22px; }
body:has(.e-hero) .e-pillars { background:#fff; border-bottom:1px solid #f0eaf8; }
body:has(.e-hero) .e-pillars-grid { display:grid; grid-template-columns:repeat(3,1fr); }
body:has(.e-hero) .e-pillar { display:flex; align-items:center; gap:16px; padding:28px 30px;
                border-right:1px solid var(--line); }
body:has(.e-hero) .e-pillar:last-child { border-right:none; }
body:has(.e-hero) .e-pillar .pic { width:48px; height:48px; border-radius:13px; flex-shrink:0; display:flex;
                     align-items:center; justify-content:center; color:#4a128f;
                     background:linear-gradient(150deg,#f4f2ee,#ece8e2); }
body:has(.e-hero) .e-pillar .pic svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.7;
                         stroke-linecap:round; stroke-linejoin:round; }
body:has(.e-hero) .e-pillar h3 { font-size:15.5px; font-weight:700; color:var(--ink); line-height:1.25; }
body:has(.e-hero) .e-pillar p { font-size:13px; color:var(--muted); margin-top:3px; }
body:has(.e-hero) .sec-head { text-align:center; margin-bottom:42px; }
body:has(.e-hero) .sec-eyebrow { display:inline-block; font-size:12px; font-weight:700; letter-spacing:.14em;
                   text-transform:uppercase; color:#6a36b3; background:#efe4fb; border:1px solid #e0cef6;
                   padding:6px 15px; border-radius:100px; margin-bottom:18px; }
body:has(.e-hero) .sec-head h2 { font-family:var(--serif); font-size:clamp(26px,2.9vw,40px); font-weight:700;
                   color:var(--ink); margin-bottom:14px; line-height:1.16; letter-spacing:-.4px; }
body:has(.e-hero) .sec-head h2 em { font-style:normal; color:var(--brand); }
body:has(.e-hero) .sec-head p { font-size:16px; color:var(--muted); max-width:620px; margin-inline:auto; line-height:1.62; }
body:has(.e-hero) .universities { padding:78px 0 72px; background:linear-gradient(180deg,#faf9f6,#f3f1ec); }
body:has(.e-hero) .uni-logos { display:grid; grid-template-columns:repeat(6,1fr); gap:16px; margin-bottom:18px; }
body:has(.e-hero) .uni-plate { display:flex; align-items:center; justify-content:center; background:#fff;
                 border:1px solid #e7ddf2; border-radius:12px; min-height:96px; padding:18px 14px;
                 box-shadow:0 4px 16px rgba(43,10,82,.05); text-align:center;
                 transition:transform .24s ease, box-shadow .24s ease; }
body:has(.e-hero) .uni-plate:hover { transform:translateY(-4px); box-shadow:0 14px 30px rgba(43,10,82,.12); }
body:has(.e-hero) .uni-plate img { max-width:118px; max-height:48px; object-fit:contain; }
body:has(.e-hero) .uni-plate .name { font-family:var(--serif); font-weight:700; font-size:15px; color:#2c0a52; line-height:1.2; }
body:has(.e-hero) .uni-note { text-align:center; font-size:13.5px; color:var(--muted); font-weight:500; }
body:has(.e-hero) .uni-note b { color:var(--brand); font-weight:700; }
body:has(.e-hero) .series { padding:80px 0; background:#fff; }
body:has(.e-hero) .series-grid { display:grid; grid-template-columns:1fr 1.04fr; gap:54px; align-items:center; }
body:has(.e-hero) .series-visual { position:relative; }
body:has(.e-hero) .series-photo { border-radius:18px; overflow:hidden; aspect-ratio:4/3.2;
                    box-shadow:0 22px 50px rgba(28,5,62,.2); border:1px solid #e7ddf2; }
body:has(.e-hero) .series-photo img { width:100%; height:100%; object-fit:cover; }
body:has(.e-hero) .series-stat { position:absolute; bottom:-26px; left:-22px; background:#fff; border-radius:16px;
                   padding:20px 24px; box-shadow:0 16px 40px rgba(28,5,62,.22); border:1px solid #efe6fb;
                   display:flex; align-items:center; gap:16px; }
body:has(.e-hero) .series-stat .num { font-family:var(--serif); font-weight:700; font-size:44px; line-height:1;
                        color:var(--brand); }
body:has(.e-hero) .series-stat .lbl { font-size:13px; font-weight:600; color:var(--ink); line-height:1.3; max-width:130px; }
body:has(.e-hero) .series-tag { display:inline-block; font-size:12px; font-weight:700; letter-spacing:.14em;
                  text-transform:uppercase; color:#6a36b3; background:#efe4fb; border:1px solid #e0cef6;
                  padding:6px 15px; border-radius:100px; margin-bottom:18px; }
body:has(.e-hero) .series h2 { font-family:var(--serif); font-size:clamp(26px,2.7vw,38px); font-weight:700;
                 color:var(--ink); line-height:1.16; letter-spacing:-.4px; margin-bottom:16px; }
body:has(.e-hero) .series h2 em { font-style:normal; color:var(--brand); }
body:has(.e-hero) .series p.lead { font-size:16px; color:var(--muted); line-height:1.64; margin-bottom:26px; }
body:has(.e-hero) .topic-label { font-size:12.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
                   color:#5a4d70; margin-bottom:14px; }
body:has(.e-hero) .topic-chips { display:flex; flex-wrap:wrap; gap:10px; }
body:has(.e-hero) .topic-chip { display:inline-flex; align-items:center; gap:8px; font-size:13.5px; font-weight:600;
                  color:#3a2b55; background:#f6f1fb; border:1px solid #e3d4f7; padding:9px 15px;
                  border-radius:100px; transition:background .2s, color .2s, transform .2s; }
body:has(.e-hero) .topic-chip:hover { background:var(--brand); color:#fff; transform:translateY(-2px); }
body:has(.e-hero) .topic-chip .d { width:6px; height:6px; border-radius:50%; background:#7a3cc9; transition:background .2s; }
body:has(.e-hero) .topic-chip:hover .d { background:#fff; }
body:has(.e-hero) .why { padding:78px 0; background:linear-gradient(180deg,#fafafa 0%, #f1f0f2 50%, #fafafa 100%); }
body:has(.e-hero) .why-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
body:has(.e-hero) .why-card { position:relative; background:#fff; border:1px solid #e7ddf2; border-radius:16px;
                padding:28px 26px; overflow:hidden; box-shadow:0 4px 16px rgba(43,10,82,.05);
                transition:transform .26s ease, box-shadow .26s ease, border-color .26s ease; }
body:has(.e-hero) .why-card::before { content:''; position:absolute; left:0; top:0; bottom:0; width:4px;
                        background:linear-gradient(180deg,#7a3cc9,#4a128f); transform:scaleY(0);
                        transform-origin:top; transition:transform .3s ease; }
body:has(.e-hero) .why-card:hover { transform:translateY(-6px); border-color:#d6c2f0; box-shadow:0 18px 40px rgba(43,10,82,.13); }
body:has(.e-hero) .why-card:hover::before { transform:scaleY(1); }
body:has(.e-hero) .why-badge { width:54px; height:54px; border-radius:15px; display:flex; align-items:center;
                 justify-content:center; margin-bottom:18px;
                 background:linear-gradient(150deg,#f4f2ee,#ece8e2); transition:background .26s ease; }
body:has(.e-hero) .why-badge svg { width:27px; height:27px; color:#4a128f; fill:none; stroke:currentColor;
                     stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
body:has(.e-hero) .why-card:hover .why-badge { background:linear-gradient(150deg,#5a1aa8,#3a0b73); }
body:has(.e-hero) .why-card:hover .why-badge svg { color:#fff; }
body:has(.e-hero) .why-card h3 { font-size:17px; font-weight:700; color:var(--ink); margin-bottom:9px; line-height:1.3; }
body:has(.e-hero) .why-card p { font-size:14px; color:#514860; line-height:1.6; }
body:has(.e-hero) .recog { padding:80px 0; background:linear-gradient(180deg,#f7f5f1 0%, #f1eee9 100%); color:var(--ink); }
body:has(.e-hero) .recog .sec-head h2 { color:var(--ink); }
body:has(.e-hero) .recog .sec-head p { color:var(--muted); }
body:has(.e-hero) .recog .sec-eyebrow { color:#6a36b3; background:#efe4fb; border-color:#e0cef6; }
body:has(.e-hero) .recog-grid { display:grid; grid-template-columns:1.04fr .96fr; gap:56px; align-items:center; }
body:has(.e-hero) .recog-steps { display:flex; flex-direction:column; }
body:has(.e-hero) .vstep { position:relative; display:flex; gap:20px; padding-bottom:30px; }
body:has(.e-hero) .vstep:last-child { padding-bottom:0; }
body:has(.e-hero) .vstep::before { content:''; position:absolute; left:25px; top:56px; bottom:-2px; width:2px;
                     background:linear-gradient(180deg, rgba(122,60,201,.4), rgba(122,60,201,.08)); }
body:has(.e-hero) .vstep:last-child::before { display:none; }
body:has(.e-hero) .vnum { position:relative; z-index:1; width:52px; height:52px; flex-shrink:0; border-radius:50%;
            display:flex; align-items:center; justify-content:center; font-family:var(--sans);
            font-weight:700; font-size:21px; color:#fff; border:3px solid #fff;
            background:linear-gradient(150deg,#7a3cc9,#4a128f); box-shadow:0 8px 20px rgba(74,18,143,.26); }
body:has(.e-hero) .vbody { padding-top:6px; }
body:has(.e-hero) .vbody h3 { font-size:17px; font-weight:700; color:var(--ink); margin-bottom:6px; }
body:has(.e-hero) .vbody p { font-size:14px; color:#514860; line-height:1.58; max-width:350px; }
body:has(.e-hero) .cert-card { position:relative; background:linear-gradient(165deg,#fffdf8 0%, #f7f0fb 100%);
                 border:1px solid #e6d6f5; border-radius:16px; padding:38px 36px 30px; text-align:center;
                 box-shadow:0 22px 50px rgba(43,10,82,.14); }
body:has(.e-hero) .cert-card::before { content:''; position:absolute; inset:11px; border:1.5px solid #cdae63;
                         border-radius:9px; pointer-events:none; }
body:has(.e-hero) .cert-seal { position:relative; width:72px; height:72px; margin:0 auto 18px; border-radius:50%;
                 display:flex; align-items:center; justify-content:center; color:#fff;
                 background:linear-gradient(150deg, #ffffff, #e3e3e3); border:3px solid #cdae63;
                 box-shadow:0 8px 20px rgb(0 0 0 / 40%); }
body:has(.e-hero) .cert-seal svg { width:32px; height:32px; fill:none; stroke:currentColor; stroke-width:1.7;
                     stroke-linecap:round; stroke-linejoin:round; }
body:has(.e-hero) .cert-seal img { width:32px; height:32px; fill:none; stroke:currentColor; stroke-width:1.7;
                     stroke-linecap:round; stroke-linejoin:round; }
body:has(.e-hero) .cert-k { position:relative; font-size:11px; font-weight:700; letter-spacing:.22em;
              text-transform:uppercase; color:#a9823b; margin-bottom:8px; }
body:has(.e-hero) .cert-title { position:relative; font-family:var(--serif); font-size:24px; font-weight:700;
                  color:#2a0a4f; line-height:1.18; margin-bottom:12px; }
body:has(.e-hero) .cert-rule { position:relative; width:54px; height:2px; margin:0 auto 14px; background:#cdae63; border-radius:2px; }
body:has(.e-hero) .cert-desc { position:relative; font-size:13.5px; color:#544a63; line-height:1.6;
                 max-width:330px; margin:0 auto 26px; }
body:has(.e-hero) .cert-sign { position:relative; display:grid; grid-template-columns:1fr 1fr; gap:24px; }
body:has(.e-hero) .cert-sign .s .line { height:1.5px; background:#c9b8df; margin-bottom:9px; }
body:has(.e-hero) .cert-sign .s .role { font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:#3a2b55; }
body:has(.e-hero) .cert-sign .s small { display:block; font-size:10.5px; font-weight:500; color:#7a6f8c;
                          margin-top:3px; letter-spacing:0; text-transform:none; }
body:has(.e-hero) .schools { padding:80px 0; background:#fff; }
body:has(.e-hero) .schools-grid { display:grid; grid-template-columns:1.04fr 1fr; gap:54px; align-items:center; }
body:has(.e-hero) .schools h2 { font-family:var(--serif); font-size:clamp(26px,2.7vw,38px); font-weight:700;
                  color:var(--ink); line-height:1.16; letter-spacing:-.4px; margin-bottom:16px; }
body:has(.e-hero) .schools p.lead { font-size:16px; color:var(--muted); line-height:1.64; margin-bottom:26px; }
body:has(.e-hero) .role-list { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:30px; }
body:has(.e-hero) .role-item { display:flex; align-items:center; gap:11px; font-size:14.5px; font-weight:600;
                 color:var(--ink); background:#f6f1fb; border:1px solid #e7ddf2; border-radius:10px;
                 padding:13px 16px; }
body:has(.e-hero) .role-item .rc { width:30px; height:30px; border-radius:8px; flex-shrink:0; display:flex;
                     align-items:center; justify-content:center; color:#fff;
                     background:linear-gradient(150deg,#6a26c4,#3a0b73); }
body:has(.e-hero) .role-item .rc svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.8;
                         stroke-linecap:round; stroke-linejoin:round; }
body:has(.e-hero) .schools-visual { position:relative; }
body:has(.e-hero) .schools-photo { border-radius:18px; overflow:hidden; aspect-ratio:4/3.1;
                     box-shadow:0 22px 50px rgba(28,5,62,.18); border:1px solid #e7ddf2; }
body:has(.e-hero) .schools-photo img { width:100%; height:100%; object-fit:cover; }
body:has(.e-hero) .cta-band { background:linear-gradient(108deg,#321069,#1e064b); color:var(--white); }
body:has(.e-hero) .cta-inner { display:flex; align-items:center; justify-content:space-between; gap:28px;
                 min-height:188px; padding:42px 0; }
body:has(.e-hero) .cta-copy h2 { font-family:var(--serif); font-size:clamp(24px,2.4vw,34px); font-weight:700; margin-bottom:9px; }
body:has(.e-hero) .cta-copy p { font-size:15px; opacity:.88; max-width:480px; line-height:1.55; }
body:has(.e-hero) .cta-actions { display:flex; flex-wrap:wrap; gap:13px; flex-shrink:0; }
@media (max-width:900px) {
body:has(.e-hero) .e-hero-grid { grid-template-columns:1fr; gap:40px; padding:54px 0 60px; }
body:has(.e-hero) .e-chip-top { left:0; }
body:has(.e-hero) .e-chip-bottom { right:0; }
body:has(.e-hero) .e-pillars-grid { grid-template-columns:1fr; }
body:has(.e-hero) .e-pillar { border-right:none; border-bottom:1px solid var(--line); }
body:has(.e-hero) .e-pillar:last-child { border-bottom:none; }
body:has(.e-hero) .uni-logos { grid-template-columns:repeat(3,1fr); }
body:has(.e-hero) .series-grid { grid-template-columns:1fr; gap:46px; }
body:has(.e-hero) .why-grid { grid-template-columns:1fr 1fr; }
body:has(.e-hero) .recog-grid { grid-template-columns:1fr; gap:42px; }
body:has(.e-hero) .schools-grid { grid-template-columns:1fr; gap:40px; }
body:has(.e-hero) .cta-inner { flex-direction:column; align-items:flex-start; padding:34px 0; gap:22px; }
body:has(.e-hero) .footer-grid { grid-template-columns:1fr 1fr 1fr; gap:26px; }
body:has(.e-hero) .footer-col-brand { grid-column:1/4; }
.gn-panel        { grid-template-columns: 1fr; }
      .gn-index        { border-right: none; padding-right: 0; }
      .gn-stage        { padding-left: 0; min-height: 300px; border-top: 1px solid #ece3f6; padding-top: 8px; }
      .gn-slide        { padding-left: 0; }
    
}
@media (max-width:640px) {
html:has(body .e-hero) { --shell:min(100%, calc(100% - 28px)); }
body:has(.e-hero) .header-inner { height:66px; }
body:has(.e-hero) .header-logo { width:108px; }
body:has(.e-hero) .menu-toggle { display:flex; }
body:has(.e-hero) .main-nav { position:absolute; top:66px; left:0; right:0; z-index:99; flex-direction:column;
                  align-items:stretch; padding:14px 20px; background:var(--white);
                  box-shadow:0 8px 24px rgba(25,7,47,.12); gap:2px !important; }
body:has(.e-hero) .nav-link { padding:10px 0; border-bottom:1px solid #f0eaf8; font-size:15px; }
body:has(.e-hero) .btn-book { margin-top:6px; border-bottom:none !important; justify-content:center; height:44px; }
body:has(.e-hero) .e-hero h1 { font-size:32px; }
body:has(.e-hero) .e-hero-actions { flex-direction:column; }
body:has(.e-hero) .e-hero-actions .btn { justify-content:center; }
body:has(.e-hero) .e-chip-top, body:has(.e-hero) .e-chip-bottom { position:static; margin-top:12px; }
body:has(.e-hero) .uni-logos { grid-template-columns:1fr 1fr; }
body:has(.e-hero) .why-grid { grid-template-columns:1fr; }
body:has(.e-hero) .role-list { grid-template-columns:1fr; }
body:has(.e-hero) .series-stat { left:0; padding:16px 18px; }
body:has(.e-hero) .footer-grid { grid-template-columns:1fr 1fr; gap:22px; }
body:has(.e-hero) .footer-col-brand { grid-column:1/3; }
body:has(.e-hero) .copyright { flex-direction:column; gap:6px; }

    
}

    /* ── MASTERCLASS CAROUSEL ── */
    .mc-carousel { position:relative; margin:8px 0 12px; }
    .mc-toolbar { display:flex; align-items:center; justify-content:space-between; gap:14px;
                  flex-wrap:wrap; margin:6px 0 2px; }
    .mc-filters { display:flex; flex-wrap:wrap; gap:9px; }
    .mc-chip { height:38px; padding:0 16px; border-radius:100px; font-size:12.5px; font-weight:600;
               background:#fff; color:var(--ink); border:1.5px solid var(--line);
               transition:background .2s, color .2s, border-color .2s; }
    .mc-chip:hover { border-color:var(--brand); color:var(--brand); }
    .mc-chip.is-active { background:var(--brand); border-color:var(--brand); color:#fff; }
    .mc-count { font-size:13px; font-weight:600; color:var(--muted); white-space:nowrap; }
    .mc-progress { height:4px; border-radius:100px; background:#e7ddf2; position:relative;
                   overflow:hidden; margin:2px 4px 0; }
    .mc-progress-thumb { position:absolute; top:0; left:0; height:100%; width:30%;
                         border-radius:100px; background:var(--brand);
                         transition:left .12s ease, width .12s ease; }
    .mc-track { display:flex; gap:22px; overflow-x:auto; scroll-snap-type:x proximity;
                padding:18px 4px 26px; scroll-padding-left:4px;
                -ms-overflow-style:none; scrollbar-width:none; }
    .mc-track::-webkit-scrollbar { display:none; }
    .mc-card { position:relative; flex:0 0 auto; width:392px; aspect-ratio:16/10;
               border-radius:16px; overflow:hidden; scroll-snap-align:start;
               background-size:cover; background-position:center; background-color:#241043;
               border:1px solid rgba(255,255,255,.14); cursor:pointer; text-align:left; display:block;
               box-shadow:0 12px 30px rgba(30,6,75,.2);
               transition:transform .28s ease, box-shadow .28s ease; }
    .mc-card:hover { transform:translateY(-6px) scale(1.02); box-shadow:0 22px 48px rgba(30,6,75,.34); }
    .mc-card-preview { position:absolute; inset:0; z-index:1; width:100%; height:100%; object-fit:cover;
                       opacity:0; background:#241043; transition:opacity .3s ease; }
    .mc-card-shade { position:absolute; inset:0; z-index:2;
                     background:linear-gradient(180deg, rgba(20,4,48,.12) 0%, rgba(20,4,48,.02) 36%, rgba(20,4,48,.85) 100%); }
    .mc-card-logo { position:absolute; top:16px; left:16px; z-index:3; background:rgba(255,255,255,.96);
                    border-radius:9px; padding:9px 12px; display:flex; align-items:center; }
    .mc-card-logo img { max-height:34px; max-width:132px; width:auto; object-fit:contain; }
    .mc-card-play { position:absolute; top:44%; left:50%; z-index:3; transform:translate(-50%,-50%);
                    width:62px; height:62px; border-radius:50%; background:rgba(255,255,255,.94);
                    display:flex; align-items:center; justify-content:center; opacity:0;
                    box-shadow:0 8px 22px rgba(16,3,40,.35);
                    transition:opacity .25s ease, transform .25s ease; }
    .mc-card:hover .mc-card-play { opacity:1; transform:translate(-50%,-50%) scale(1.06); }
    .mc-card-play svg { width:24px; height:24px; fill:var(--brand); margin-left:3px; }
    .mc-card-meta { position:absolute; left:18px; right:18px; bottom:17px; z-index:3; }
    .mc-card-uni { display:block; font-size:11px; font-weight:700; letter-spacing:.08em;
                   text-transform:uppercase; color:rgba(255,255,255,.84); margin-bottom:5px; }
    .mc-card-title { display:block; font-family:var(--serif); font-weight:700; font-size:20px;
                     line-height:1.24; color:#fff; text-wrap:balance; }
    .mc-arrow { position:absolute; top:calc(50% - 4px); transform:translateY(-50%); z-index:6;
                width:46px; height:46px; border-radius:50%; background:#fff; color:var(--brand);
                font-size:26px; line-height:1; display:flex; align-items:center; justify-content:center;
                box-shadow:0 8px 22px rgba(30,6,75,.24); transition:transform .2s, background .2s, color .2s; }
    .mc-arrow:hover { background:var(--brand); color:#fff; transform:translateY(-50%) scale(1.08); }
    .mc-arrow-prev { left:-14px; }
    .mc-arrow-next { right:-14px; }

    /* Modal */
    .mc-modal { position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center;
                padding:24px; background:rgba(16,3,40,.62); backdrop-filter:blur(4px); animation:mcFade .2s ease; }
    @keyframes mcFade { from{opacity:0} to{opacity:1} }
    .mc-modal-card { position:relative; width:min(760px,100%); max-height:90vh; overflow:hidden;
                     background:#fff; border-radius:16px; display:flex; flex-direction:column;
                     box-shadow:0 30px 80px rgba(16,3,40,.5); animation:mcRise .28s ease; }
    @keyframes mcRise { from{opacity:0; transform:translateY(18px)} to{opacity:1; transform:none} }
    .mc-modal-close { position:absolute; top:12px; right:12px; z-index:8; width:38px; height:38px;
                      border-radius:50%; background:rgba(255,255,255,.94); color:var(--brand); font-size:22px;
                      display:flex; align-items:center; justify-content:center; box-shadow:0 4px 14px rgba(16,3,40,.28); }
    .mc-modal-close:hover { background:var(--brand); color:#fff; }
    .mc-modal-media { position:relative; aspect-ratio:16/9; background-size:cover; background-position:center;
                      background-color:#241043; flex-shrink:0; }
    .mc-modal-media .mc-card-shade { background:linear-gradient(180deg, rgba(20,4,48,.22), rgba(20,4,48,.5)); }
    .mc-modal-video { position:absolute; inset:0; width:100%; height:100%; background:#000; object-fit:contain; z-index:5; }
    .mc-modal-poster-logo { position:absolute; top:16px; left:16px; z-index:3; background:rgba(255,255,255,.95);
                            border-radius:8px; padding:8px 10px; display:flex; align-items:center; }
    .mc-modal-poster-logo img { max-height:32px; max-width:130px; object-fit:contain; }
    .mc-modal-bigplay { position:absolute; top:50%; left:50%; z-index:3; transform:translate(-50%,-50%);
                        width:70px; height:70px; border-radius:50%; background:rgba(255,255,255,.95);
                        display:flex; align-items:center; justify-content:center;
                        box-shadow:0 10px 30px rgba(16,3,40,.4); transition:transform .2s; }
    .mc-modal-bigplay:hover { transform:translate(-50%,-50%) scale(1.08); }
    .mc-modal-bigplay svg { width:28px; height:28px; fill:var(--brand); margin-left:4px; }
    .mc-modal-body { padding:24px 28px 28px; overflow-y:auto; }
    .mc-modal-uni { display:block; font-size:11.5px; font-weight:700; letter-spacing:.08em;
                    text-transform:uppercase; color:var(--brand); margin-bottom:6px; }
    .mc-modal-body h3 { font-family:var(--serif); font-weight:700; font-size:23px; line-height:1.2;
                        color:var(--ink); margin-bottom:12px; }
    .mc-modal-desc { font-size:14px; line-height:1.62; color:var(--muted); margin-bottom:20px; }

   


/* ========================================================
   Partner page CSS extracted from partner.html
======================================================== */
/* Section heading */
    body.partner-page .sec-head { text-align:center; margin-bottom:46px; }
    body.partner-page .sec-eyebrow { display:inline-block; font-size:12px; font-weight:700; letter-spacing:.14em;
                   text-transform:uppercase; color:#6a36b3; background:#efe4fb; border:1px solid #e0cef6;
                   padding:6px 15px; border-radius:100px; margin-bottom:18px; }
    body.partner-page .sec-head h2 { font-family:var(--serif); font-size:clamp(26px,2.9vw,40px); font-weight:700;
                   color:var(--ink); margin-bottom:14px; line-height:1.16; letter-spacing:-.4px; }
    body.partner-page .sec-head h2 em { font-style:normal; color:var(--brand); }
    body.partner-page .sec-head p { font-size:16px; color:var(--muted); max-width:680px; margin-inline:auto; line-height:1.62; }
    body.partner-page .sec-cta { text-align:center; margin-top:42px; }
    body.partner-page .sec-cta-link { display:inline-flex; align-items:center; gap:9px; font-family:var(--serif);
                    font-size:18px; font-weight:700; color:var(--brand); border-bottom:2px solid #d6c2f0;
                    padding-bottom:4px; background:none; transition:border-color .2s, gap .25s; cursor:pointer; }
    body.partner-page .sec-cta-link:hover { border-color:var(--brand); gap:14px; color:var(--brand); }
    body.partner-page .amp { font-family:var(--sans); font-weight:600; font-style:normal; }

    /* Reveal */
    body.partner-page .reveal { opacity:0; transform:translateY(22px); transition:opacity .6s ease, transform .6s ease; }
    body.partner-page .reveal.in { opacity:1; transform:none; }

    /* ── HERO ── */
    body.partner-page .p-hero { position:relative; overflow:hidden; color:var(--white);
              background:linear-gradient(112deg,#2a0a5e 0%, #1e064b 58%, #170338 100%); }
    body.partner-page .p-hero::before { content:''; position:absolute; top:-220px; right:-160px; width:640px; height:640px;
                      border-radius:50%; background:radial-gradient(circle, rgba(160,102,231,.22), transparent 66%); }
    body.partner-page .p-hero::after { content:''; position:absolute; bottom:-260px; left:-180px; width:520px; height:520px;
                     border-radius:50%; background:radial-gradient(circle, rgba(205,174,99,.1), transparent 66%); }
    body.partner-page .p-hero-grid { position:relative; z-index:1; display:grid; grid-template-columns:1.08fr .92fr;
                   gap:52px; align-items:center; padding:70px 0 74px; }
    body.partner-page .p-mark { display:flex; align-items:center; gap:16px; margin-bottom:28px; }
    body.partner-page .p-mark-logo { display:flex; align-items:center; background:#fff; border-radius:10px;
                   padding:7px 13px; box-shadow:0 10px 28px rgba(0,0,0,.32); }
    body.partner-page .p-mark-logo img { height:40px; width:auto; }
    body.partner-page .p-mark .sep { width:1px; height:38px; background:linear-gradient(180deg, transparent, rgba(205,174,99,.9), transparent); }
    body.partner-page .p-mark .txt { font-size:11px; font-weight:600; letter-spacing:.18em; text-transform:uppercase;
                   color:#cfc0e8; line-height:1.45; }
    body.partner-page .p-mark .txt b { display:block; font-size:15px; font-weight:800; letter-spacing:.3em; color:var(--gold); }
    body.partner-page .p-hero h1 { font-family:var(--serif); font-weight:700; font-size:clamp(34px,3.8vw,54px);
                 line-height:1.08; letter-spacing:-1px; margin-bottom:18px; }
    body.partner-page .p-hero h1 em { font-style:italic; color:#d9bff8; }
    body.partner-page .p-hero-tag { font-family:var(--serif); font-style:italic; font-size:18px; color:var(--gold);
                  margin-bottom:16px; line-height:1.45; max-width:540px; }
    body.partner-page .p-hero-sub { font-size:15px; color:#cfc3e4; max-width:540px; line-height:1.66; margin-bottom:30px; }
    body.partner-page .p-hero-actions { display:flex; flex-wrap:wrap; gap:13px; }
    body.partner-page .p-hero-visual { position:relative; }
    body.partner-page .p-hero-photo { position:relative; border-radius:18px; overflow:hidden; aspect-ratio:5/4.4;
                    border:1px solid rgba(255,255,255,.18); box-shadow:0 30px 70px rgba(0,0,0,.4); }
    body.partner-page .p-hero-photo img { width:100%; height:100%; object-fit:cover; }
    body.partner-page .p-hero-chip { position:absolute; display:flex; align-items:center; gap:11px;
                   background:#fff; color:var(--ink); border:1px solid #ece8e2; border-radius:13px;
                   padding:12px 16px; box-shadow:0 14px 34px rgba(0,0,0,.35); }
    body.partner-page .p-hero-chip .ic { width:38px; height:38px; border-radius:10px; flex-shrink:0; display:flex;
                       align-items:center; justify-content:center; color:#fff;
                       background:linear-gradient(150deg,#6a26c4,#3a0b73); }
    body.partner-page .p-hero-chip .ic svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8;
                           stroke-linecap:round; stroke-linejoin:round; }
    body.partner-page .p-hero-chip .t { font-size:13px; font-weight:700; line-height:1.18; }
    body.partner-page .p-hero-chip .t small { display:block; font-weight:500; font-size:11px; color:#6a6278; margin-top:2px; }
    body.partner-page .p-chip-top { top:10px; left:-26px; }
    body.partner-page .p-chip-bottom { bottom:10px; right:-22px; }

    /* Trust strip */
    body.partner-page .trust-strip { position:relative; z-index:1; border-top:1px solid rgba(255,255,255,.14);
                   background:rgba(255,255,255,.04); }
    body.partner-page .trust-grid { display:grid; grid-template-columns:repeat(4,1fr); }
    body.partner-page .trust-item { padding:20px 14px; text-align:center; border-right:1px solid rgba(255,255,255,.1); }
    body.partner-page .trust-item:last-child { border-right:none; }
    body.partner-page .trust-item b { display:block; font-family:var(--num); font-size:30px; font-weight:700;
                    letter-spacing:-.6px; color:var(--gold); line-height:1.12; margin-bottom:5px; }
    body.partner-page .trust-item span { font-size:11.5px; font-weight:600; color:#bfb0da; line-height:1.35; display:block; }
    body.partner-page .uni-row { display:flex; align-items:center; justify-content:center; gap:12px; flex-wrap:wrap;
               padding:18px 0 22px; border-top:1px solid rgba(255,255,255,.1); }
    body.partner-page .uni-row .lbl { font-size:10.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
                    color:#bfb0da; margin-right:8px; }
    body.partner-page .uni-chip { background:#fff; border-radius:8px; padding:8px 14px; display:flex; align-items:center;
                box-shadow:0 8px 20px rgba(0,0,0,.28); transition:transform .22s ease; }
    body.partner-page .uni-chip:hover { transform:translateY(-3px); }
    body.partner-page .uni-chip img { height:30px; width:auto; }
    body.partner-page .uni-chip.navy { padding:0; overflow:hidden; background:#101c4e; }
    body.partner-page .uni-chip.navy img { height:52px; }
    body.partner-page .uni-chip.sq { padding:4px 10px; }
    body.partner-page .uni-chip.sq img { height:44px; }

    /* Urgency ribbon */
    body.partner-page .urgency { background:linear-gradient(90deg,#a9823b,#cdae63 45%,#a9823b); color:#2a0a3f; }
    body.partner-page .urgency-inner { display:flex; align-items:center; justify-content:center; gap:12px; flex-wrap:wrap;
                     padding:11px 0; font-size:13.5px; font-weight:700; text-align:center; }
    body.partner-page .urgency svg { width:17px; height:17px; flex-shrink:0; fill:none; stroke:currentColor;
                   stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }

    /* ── OPPORTUNITY ── */
    body.partner-page .opportunity { padding:84px 0; background:#fff; }
    body.partner-page .opp-grid { display:grid; grid-template-columns:1.02fr .98fr; gap:56px; align-items:center; }
    body.partner-page .opp-copy .sec-eyebrow { margin-bottom:18px; }
    body.partner-page .opp-copy h2 { font-family:var(--serif); font-size:clamp(26px,2.7vw,38px); font-weight:700;
                   line-height:1.16; letter-spacing:-.4px; margin-bottom:18px; }
    body.partner-page .opp-copy h2 em { font-style:normal; color:var(--brand); }
    body.partner-page .opp-copy p { font-size:15.5px; color:var(--muted); line-height:1.68; margin-bottom:16px; }
    body.partner-page .opp-copy p b { color:var(--ink); }
    body.partner-page .opp-stats { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
    body.partner-page .opp-stat { background:var(--lilac); border:1px solid #e7ddf2; border-radius:14px; padding:26px 22px;
                transition:transform .26s ease, box-shadow .26s ease, border-color .26s ease; }
    body.partner-page .opp-stat:hover { transform:translateY(-5px); border-color:#d6c2f0; box-shadow:0 16px 36px rgba(43,10,82,.12); }
    body.partner-page .opp-stat .num { font-family:var(--num); font-size:clamp(28px,2.7vw,38px); font-weight:700;
                     letter-spacing:-.8px; color:var(--brand); line-height:1.05; margin-bottom:8px; white-space:nowrap; }
    body.partner-page .opp-stat .lbl { font-size:13px; color:#514860; line-height:1.5; font-weight:500; }
    body.partner-page .opp-photos { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:28px; }
    body.partner-page .opp-photo { margin:0; border-radius:14px; overflow:hidden; border:1px solid #e7ddf2; background:#fff;
                 box-shadow:0 10px 28px rgba(43,10,82,.1); }
    body.partner-page .opp-photo img { width:100%; aspect-ratio:16/9.5; object-fit:cover; }
    body.partner-page .opp-photo figcaption { display:flex; align-items:center; gap:8px; font-size:11.5px; font-weight:600;
                            color:#514860; padding:10px 14px; }
    body.partner-page .opp-photo figcaption::before { content:''; width:7px; height:7px; border-radius:50%;
                                    background:var(--gold); flex-shrink:0; }

    /* ── ECOSYSTEM ── */
    body.partner-page .ecosystem { padding:84px 0; background:linear-gradient(180deg,#faf9f6,#f3f1ec); }
    body.partner-page .eco-grid { display:grid; grid-template-columns:.96fr 1.04fr; gap:54px; align-items:start; }
    body.partner-page .eco-copy .sec-eyebrow { margin-bottom:18px; }
    body.partner-page .eco-copy h2 { font-family:var(--serif); font-size:clamp(26px,2.7vw,38px); font-weight:700;
                   line-height:1.16; letter-spacing:-.4px; margin-bottom:18px; }
    body.partner-page .eco-copy h2 em { font-style:normal; color:var(--brand); }
    body.partner-page .eco-copy p { font-size:15px; color:var(--muted); line-height:1.68; margin-bottom:16px; }
    body.partner-page .eco-vs { display:grid; grid-template-columns:1fr 1fr; margin-top:26px; border-radius:14px;
              overflow:hidden; border:1px solid #e0d5ee; box-shadow:0 10px 30px rgba(43,10,82,.08); }
    body.partner-page .eco-vs .col { padding:22px 22px 24px; }
    body.partner-page .eco-vs .col.plain { background:#fff; }
    body.partner-page .eco-vs .col.ice { background:linear-gradient(160deg,#321069,#1e064b); color:#fff; }
    body.partner-page .eco-vs h4 { font-size:11.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; margin-bottom:12px; }
    body.partner-page .eco-vs .col.plain h4 { color:#8a7f9c; }
    body.partner-page .eco-vs .col.ice h4 { color:var(--gold); }
    body.partner-page .eco-vs li { position:relative; font-size:13px; line-height:1.5; padding-left:20px; margin-bottom:9px; }
    body.partner-page .eco-vs li:last-child { margin-bottom:0; }
    body.partner-page .eco-vs .col.plain li { color:#6a6278; }
    body.partner-page .eco-vs .col.ice li { color:#e4dbf3; }
    body.partner-page .eco-vs .col.plain li::before { content:'×'; position:absolute; left:0; top:-1px; font-weight:700; color:#b3a8c4; }
    body.partner-page .eco-vs .col.ice li::before { content:'✓'; position:absolute; left:0; top:-1px; font-weight:700; color:var(--gold); }
    body.partner-page .eco-tiles { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
    body.partner-page .eco-tile { background:#fff; border:1px solid #e7ddf2; border-radius:16px; padding:26px 24px;
                box-shadow:0 4px 16px rgba(43,10,82,.05); position:relative; overflow:hidden;
                transition:transform .26s ease, box-shadow .26s ease, border-color .26s ease; }
    body.partner-page .eco-tile::before { content:''; position:absolute; left:0; top:0; bottom:0; width:4px;
                        background:linear-gradient(180deg,#7a3cc9,#4a128f); transform:scaleY(0);
                        transform-origin:top; transition:transform .3s ease; }
    body.partner-page .eco-tile:hover { transform:translateY(-6px); border-color:#d6c2f0; box-shadow:0 18px 40px rgba(43,10,82,.13); }
    body.partner-page .eco-tile:hover::before { transform:scaleY(1); }
    body.partner-page .eco-tile .tic { width:50px; height:50px; border-radius:14px; display:flex; align-items:center;
                     justify-content:center; margin-bottom:16px; color:#4a128f;
                     background:linear-gradient(150deg,#f4f2ee,#ece8e2); transition:background .26s, color .26s; }
    body.partner-page .eco-tile:hover .tic { background:linear-gradient(150deg,#5a1aa8,#3a0b73); color:#fff; }
    body.partner-page .eco-tile .tic svg { width:25px; height:25px; fill:none; stroke:currentColor; stroke-width:1.7;
                         stroke-linecap:round; stroke-linejoin:round; }
    body.partner-page .eco-tile h3 { font-size:15.5px; font-weight:700; margin-bottom:7px; line-height:1.32; }
    body.partner-page .eco-tile p { font-size:13px; color:#514860; line-height:1.56; }

    /* ── FLAGSHIP ── */
    body.partner-page .flagship { padding:84px 0; background:#fff; }
    body.partner-page .flag-grid { display:grid; grid-template-columns:1fr 1fr; gap:26px; }
    body.partner-page .flag-card { border:1px solid #e7ddf2; border-radius:18px; overflow:hidden; background:#fff;
                 box-shadow:0 6px 22px rgba(43,10,82,.07); display:flex; flex-direction:column;
                 transition:transform .28s ease, box-shadow .28s ease; }
    body.partner-page .flag-card:hover { transform:translateY(-6px); box-shadow:0 24px 54px rgba(43,10,82,.15); }
    body.partner-page .flag-photo { position:relative; aspect-ratio:16/8.4; overflow:hidden; }
    body.partner-page .flag-photo img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
    body.partner-page .flag-card:hover .flag-photo img { transform:scale(1.045); }
    body.partner-page .flag-photo-contain { background:#f6fbff; }
    body.partner-page .flag-photo-contain img { object-fit:contain; object-position:center; }
    body.partner-page .flag-card:hover .flag-photo-contain img { transform:none; }
    body.partner-page .flag-photo .badge { position:absolute; top:16px; left:16px; background:rgba(255,255,255,.95);
                         color:var(--brand); font-size:11px; font-weight:700; letter-spacing:.1em;
                         text-transform:uppercase; padding:7px 13px; border-radius:100px;
                         box-shadow:0 6px 18px rgba(16,3,40,.25); }
    body.partner-page .flag-body { padding:28px 28px 30px; display:flex; flex-direction:column; flex:1; }
    body.partner-page .flag-body h3 { font-family:var(--serif); font-size:23px; font-weight:700; margin-bottom:11px; }
    body.partner-page .flag-body p { font-size:14px; color:var(--muted); line-height:1.64; margin-bottom:22px; flex:1; }
    body.partner-page .flag-link { display:inline-flex; align-items:center; gap:8px; font-size:13.5px; font-weight:700;
                 color:var(--brand); transition:gap .22s; }
    body.partner-page .flag-link:hover { gap:13px; }
    body.partner-page .flag-stats { margin-top:30px; display:grid; grid-template-columns:repeat(4,1fr);
                  border-radius:14px; overflow:hidden;
                  background:linear-gradient(160deg,#321069,#1e064b); }
    body.partner-page .flag-stat { padding:22px 14px; text-align:center; border-right:1px solid rgba(255,255,255,.12); }
    body.partner-page .flag-stat:last-child { border-right:none; }
    body.partner-page .flag-stat b { display:block; font-family:var(--num); font-size:32px; font-weight:700;
                   letter-spacing:-.6px; color:#fff; line-height:1.1; margin-bottom:3px; }
    body.partner-page .flag-stat span { font-size:12px; font-weight:600; color:#c8bbe0; }

    /* ── DESTINATIONS ── */
    body.partner-page .dests { padding:84px 0; background:linear-gradient(180deg,#faf9f6,#f3f1ec); }
    body.partner-page .dest-layout { display:grid; grid-template-columns:1.15fr .85fr; gap:22px; align-items:stretch; }
    body.partner-page .dest-anchor { position:relative; border-radius:18px; overflow:hidden; min-height:460px;
                   display:flex; align-items:flex-end; box-shadow:0 20px 50px rgba(28,5,62,.18); }
    body.partner-page .dest-anchor img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
    body.partner-page .dest-anchor::after { content:''; position:absolute; inset:0;
                          background:linear-gradient(180deg, rgba(20,4,48,.05) 0%, rgba(20,4,48,.42) 45%, rgba(20,4,48,.92) 100%); }
    body.partner-page .dest-anchor-body { position:relative; z-index:2; padding:32px 32px 30px; color:#fff; }
    body.partner-page .dest-anchor-body .k { display:inline-block; font-size:11px; font-weight:700; letter-spacing:.14em;
                           text-transform:uppercase; color:#2a0a3f; background:var(--gold);
                           padding:6px 13px; border-radius:100px; margin-bottom:14px; }
    body.partner-page .dest-anchor-body h3 { font-family:var(--serif); font-size:27px; font-weight:700; margin-bottom:14px; }
    body.partner-page .dest-anchor-body li { position:relative; font-size:13.5px; color:#e8e1f4; line-height:1.5;
                           padding-left:24px; margin-bottom:8px; }
    body.partner-page .dest-anchor-body li:last-child { margin-bottom:0; }
    body.partner-page .dest-anchor-body li::before { content:''; position:absolute; left:0; top:4px; width:14px; height:14px;
                                   background:var(--gold);
                                   -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat;
                                   mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat; }
    body.partner-page .dest-side { display:flex; flex-direction:column; gap:14px; }
    body.partner-page .dest-mini { position:relative; flex:1; border-radius:14px; overflow:hidden; display:flex; align-items:center;
                 padding:0 26px; min-height:104px; color:#fff;
                 background:linear-gradient(120deg,#3a1173,#22084f); box-shadow:0 10px 26px rgba(28,5,62,.14);
                 transition:transform .24s ease, box-shadow .24s ease; }
    body.partner-page .dest-mini:hover { transform:translateY(-4px); box-shadow:0 18px 40px rgba(28,5,62,.24); }
    body.partner-page .dest-mini img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
    body.partner-page .dest-mini .shade { position:absolute; inset:0;
                        background:linear-gradient(90deg, rgba(22,5,50,.9) 26%, rgba(22,5,50,.35) 100%); }
    body.partner-page .dest-mini .m { position:relative; z-index:2; }
    body.partner-page .dest-mini h4 { font-family:var(--serif); font-size:20px; font-weight:700; margin-bottom:3px; }
    body.partner-page .dest-mini span { font-size:12px; color:#cfc3e4; font-weight:500; }
    body.partner-page .dest-note { margin-top:20px; text-align:center; font-size:13.5px; color:var(--muted); }
    body.partner-page .dest-note b { color:var(--brand); }

    /* ── SUPPORT ENGINE ── */
    body.partner-page .engine { padding:84px 0; background:#fff; }
    body.partner-page .engine-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:16px; margin-bottom:44px; }
    body.partner-page .engine-cell { background:var(--lilac); border:1px solid #e7ddf2; border-radius:14px;
                   padding:22px 14px 20px; text-align:center;
                   transition:transform .24s ease, box-shadow .24s ease, border-color .24s ease; }
    body.partner-page .engine-cell:hover { transform:translateY(-5px); border-color:#d6c2f0; box-shadow:0 14px 32px rgba(43,10,82,.12); }
    body.partner-page .engine-cell .eic { width:46px; height:46px; margin:0 auto 12px; border-radius:13px; display:flex;
                        align-items:center; justify-content:center; color:#fff;
                        background:linear-gradient(150deg,#6a26c4,#3a0b73); }
    body.partner-page .engine-cell .eic svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.7;
                            stroke-linecap:round; stroke-linejoin:round; }
    body.partner-page .engine-cell h3 { font-size:12.5px; font-weight:700; line-height:1.32; }
    body.partner-page .split-strip { display:grid; grid-template-columns:1fr 1fr; border-radius:16px; overflow:hidden;
                   border:1px solid #e0d5ee; box-shadow:0 14px 38px rgba(43,10,82,.1); }
    body.partner-page .split-col { padding:32px 34px 34px; }
    body.partner-page .split-col.ho { background:linear-gradient(160deg,#321069,#1e064b); color:#fff; }
    body.partner-page .split-col.you { background:#fff; }
    body.partner-page .split-col .k { display:inline-flex; align-items:center; gap:9px; font-size:11.5px; font-weight:700;
                    letter-spacing:.12em; text-transform:uppercase; margin-bottom:14px; }
    body.partner-page .split-col.ho .k { color:var(--gold); }
    body.partner-page .split-col.you .k { color:#6a36b3; }
    body.partner-page .split-col .k svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2;
                        stroke-linecap:round; stroke-linejoin:round; }
    body.partner-page .split-col h3 { font-family:var(--inter); font-size:21px; font-weight:700; margin-bottom:8px; }
    body.partner-page .split-col .sub { font-size:13px; line-height:1.55; margin-bottom:18px; }
    body.partner-page .split-col.ho .sub { color:#bfb0da; }
    body.partner-page .split-col.you .sub { color:var(--muted); }
    body.partner-page .split-list li { display:flex; align-items:center; gap:13px; padding:11px 0;
                     font-size:14px; font-weight:500; line-height:1.4; }
    body.partner-page .split-col.ho .split-list li { color:#e8e1f4; border-bottom:1px solid rgba(255,255,255,.09); }
    body.partner-page .split-col.you .split-list li { color:#3a2b55; border-bottom:1px solid #f0eaf8; }
    body.partner-page .split-list li:last-child { border-bottom:none; padding-bottom:0; }
    body.partner-page .split-list .li-ic { width:32px; height:32px; border-radius:9px; flex-shrink:0; display:flex;
                         align-items:center; justify-content:center; }
    body.partner-page .split-col.ho .li-ic { background:rgba(205,174,99,.14); color:var(--gold); }
    body.partner-page .split-col.you .li-ic { background:var(--lilac); border:1px solid #e3d4f7; color:#4a128f; }
    body.partner-page .split-list .li-ic svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.9;
                             stroke-linecap:round; stroke-linejoin:round; }
    body.partner-page .engine-plus { margin-top:30px; display:grid; grid-template-columns:1fr 1fr; gap:12px 30px; }
    body.partner-page .engine-plus li { position:relative; font-size:14px; color:#514860; line-height:1.55; padding-left:26px; }
    body.partner-page .engine-plus li::before { content:''; position:absolute; left:0; top:3px; width:16px; height:16px;
                              background:var(--brand);
                              -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat;
                              mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat; }

    /* ── NUMBERS ── */
    body.partner-page .numbers { position:relative; overflow:hidden; padding:84px 0;
               background:linear-gradient(112deg,#2a0a5e 0%, #1e064b 62%, #170338 100%); color:#fff; }
    body.partner-page .numbers::before { content:''; position:absolute; right:-160px; top:-160px; width:560px; height:560px;
                       border:1px solid rgba(255,255,255,.1); border-radius:50%; }
    body.partner-page .numbers::after { content:''; position:absolute; right:-60px; top:-60px; width:360px; height:360px;
                      border:1px solid rgba(205,174,99,.18); border-radius:50%; }
    body.partner-page .numbers .shell { position:relative; z-index:1; }
    body.partner-page .numbers .sec-head h2 { color:#fff; }
    body.partner-page .numbers .sec-head p { color:#cfc3e4; }
    body.partner-page .numbers .sec-eyebrow { color:#e6d5fb; background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.22); }
    body.partner-page .num-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
    body.partner-page .num-card { background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.14);
                border-radius:16px; padding:28px 26px;
                transition:transform .24s ease, background .24s ease, border-color .24s ease; }
    body.partner-page .num-card:hover { transform:translateY(-5px); background:rgba(255,255,255,.09); border-color:rgba(205,174,99,.5); }
    body.partner-page .num-card .k { font-size:11.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
                   color:var(--gold); margin-bottom:10px; }
    body.partner-page .num-card .v { font-family:var(--num); font-size:clamp(21px,1.9vw,26px); font-weight:700;
                   letter-spacing:-.4px; line-height:1.25; margin-bottom:9px; }
    body.partner-page .num-card p { font-size:13px; color:#c8bbe0; line-height:1.55; }
    body.partner-page .num-note { margin-top:26px; text-align:center; font-size:12px; color:#9d8fbd; max-width:720px;
                margin-inline:auto; line-height:1.6; }
    body.partner-page .numbers .sec-cta-link { color:#fff; border-color:rgba(255,255,255,.35); }
    body.partner-page .numbers .sec-cta-link:hover { border-color:var(--gold); color:var(--gold); }

    /* ── PROFILES ── */
    body.partner-page .profiles { padding:84px 0; background-color:#fff;
                background-image:radial-gradient(circle, #ece3f7 1px, transparent 1.4px);
                background-size:26px 26px; }
    body.partner-page .profiles-intro { max-width:760px; margin:0 auto 44px; text-align:center;
                      font-size:15.5px; color:var(--muted); line-height:1.7; }
    body.partner-page .profiles-intro b { color:var(--ink); }
    body.partner-page .prof-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
    body.partner-page .prof-item { display:flex; align-items:center; gap:14px; background:var(--lilac);
                 border:1px solid #e7ddf2; border-radius:12px; padding:16px 18px;
                 font-size:14.5px; font-weight:600; color:var(--ink);
                 transition:transform .22s ease, border-color .22s ease, box-shadow .22s ease; }
    body.partner-page .prof-item:hover { transform:translateY(-3px); border-color:#d6c2f0; box-shadow:0 12px 28px rgba(43,10,82,.1); }
    body.partner-page .prof-item .pc { width:36px; height:36px; border-radius:9px; flex-shrink:0; display:flex;
                     align-items:center; justify-content:center; color:#fff;
                     background:linear-gradient(150deg,#6a26c4,#3a0b73); }
    body.partner-page .prof-item .pc svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8;
                         stroke-linecap:round; stroke-linejoin:round; }

    /* ── CENTRE ── */
    body.partner-page .centre { padding:84px 0; background:linear-gradient(180deg,#faf9f6,#f3f1ec); }
    body.partner-page .centre-grid { display:grid; grid-template-columns:1fr 1.04fr; gap:54px; align-items:center; }
    body.partner-page .centre-visual { position:relative; }
    body.partner-page .centre-photo { border-radius:18px; overflow:hidden; aspect-ratio:4/3.2;
                    box-shadow:0 22px 50px rgba(28,5,62,.2); border:1px solid #e7ddf2; }
    body.partner-page .centre-photo img { width:100%; height:100%; object-fit:cover; }
    body.partner-page .centre-stat { position:absolute; bottom:-26px; left:-22px; background:#fff; border-radius:16px;
                   padding:20px 24px; box-shadow:0 16px 40px rgba(28,5,62,.22); border:1px solid #efe6fb;
                   display:flex; align-items:center; gap:16px; }
    body.partner-page .centre-stat .num { font-family:var(--num); font-weight:700; font-size:36px; line-height:1;
                        letter-spacing:-.7px; color:var(--brand); white-space:nowrap; }
    body.partner-page .centre-stat .lbl { font-size:13px; font-weight:600; color:var(--ink); line-height:1.3; max-width:140px; }
    body.partner-page .centre-copy .sec-eyebrow { margin-bottom:18px; }
    body.partner-page .centre-copy h2 { font-family:var(--serif); font-size:clamp(26px,2.7vw,38px); font-weight:700;
                      line-height:1.16; letter-spacing:-.4px; margin-bottom:16px; }
    body.partner-page .centre-copy h2 em { font-style:normal; color:var(--brand); }
    body.partner-page .centre-copy p.centre-lead { font-size:15.5px; color:var(--muted); line-height:1.66; margin-bottom:18px; }
    body.partner-page .centre-points { display:grid; gap:12px; margin-bottom:24px; }
    body.partner-page .centre-points li { background:#fff; border:1px solid #e7ddf2; border-radius:12px; padding:15px 18px; }
    body.partner-page .centre-points b { display:block; font-size:14px; font-weight:700; color:var(--ink); margin-bottom:3px; }
    body.partner-page .centre-points span { font-size:13px; color:#514860; line-height:1.55; display:block; }
    body.partner-page .check-list { display:grid; grid-template-columns:1fr 1fr; gap:11px; }
    body.partner-page .check-item { display:flex; align-items:flex-start; gap:11px; font-size:13.5px; font-weight:600;
                  color:var(--ink); background:#fff; border:1px solid #e7ddf2; border-radius:10px;
                  padding:12px 15px; line-height:1.4; }
    body.partner-page .check-item .cc { width:22px; height:22px; border-radius:6px; flex-shrink:0; display:flex;
                      align-items:center; justify-content:center; color:#fff; margin-top:1px;
                      background:linear-gradient(150deg,#6a26c4,#3a0b73); }
    body.partner-page .check-item .cc svg { width:13px; height:13px; fill:none; stroke:currentColor; stroke-width:2.6;
                          stroke-linecap:round; stroke-linejoin:round; }

    /* ── JOURNEY ── */
    body.partner-page .journey { padding:84px 0; background:#fff; }
    body.partner-page .journey-track { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; counter-reset:jstep; }
    body.partner-page .jstep { position:relative; background:var(--lilac); border:1px solid #e7ddf2; border-radius:14px;
             padding:24px 22px 22px;
             transition:transform .24s ease, border-color .24s ease, box-shadow .24s ease; }
    body.partner-page .jstep:hover { transform:translateY(-4px); border-color:#d6c2f0; box-shadow:0 14px 32px rgba(43,10,82,.11); }
    body.partner-page .jstep .jnum { width:42px; height:42px; border-radius:50%; display:flex; align-items:center;
                   justify-content:center; font-family:var(--num); font-weight:700; font-size:17px;
                   color:#fff; background:linear-gradient(150deg,#7a3cc9,#4a128f);
                   box-shadow:0 6px 16px rgba(74,18,143,.26); margin-bottom:14px; }
    body.partner-page .jstep h3 { font-size:15.5px; font-weight:700; margin-bottom:6px; }
    body.partner-page .jstep p { font-size:13px; color:#514860; line-height:1.55; }
    body.partner-page .journey-callout { margin-top:30px; display:flex; align-items:center; justify-content:center; gap:12px;
                       flex-wrap:wrap; text-align:center; background:linear-gradient(160deg,#321069,#1e064b);
                       color:#fff; border-radius:14px; padding:20px 26px; }
    body.partner-page .journey-callout svg { width:20px; height:20px; flex-shrink:0; fill:none; stroke:var(--gold);
                           stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
    body.partner-page .journey-callout b { color:var(--gold); }
    body.partner-page .journey-callout span { font-size:15px; font-weight:600; }

    /* ── PROOF & FAQ ── */
    body.partner-page .prooffaq { padding:84px 0; background:linear-gradient(180deg,#faf9f6,#f3f1ec); }
    body.partner-page .proof-bar { display:grid; grid-template-columns:repeat(4,1fr); border-radius:16px; overflow:hidden;
                 background:linear-gradient(160deg,#321069,#1e064b); margin-bottom:56px;
                 box-shadow:0 16px 40px rgba(28,5,62,.2); }
    body.partner-page .proof-item { padding:28px 20px; text-align:center; border-right:1px solid rgba(255,255,255,.12); }
    body.partner-page .proof-item:last-child { border-right:none; }
    body.partner-page .proof-item b { display:block; font-family:var(--num); font-size:clamp(26px,2.3vw,34px); font-weight:700;
                    letter-spacing:-.7px; color:#fff; line-height:1.12; margin-bottom:5px; }
    body.partner-page .proof-logo .uni-chip { display:inline-flex; margin-bottom:9px; }
    body.partner-page .proof-item span { font-size:12.5px; font-weight:600; color:#c8bbe0; line-height:1.4; display:block; }
    body.partner-page .faq-wrap { max-width:820px; margin-inline:auto; }
    body.partner-page .faq-item { background:#fff; border:1px solid #e7ddf2; border-radius:12px; margin-bottom:12px;
                overflow:hidden; transition:border-color .22s, box-shadow .22s; }
    body.partner-page .faq-item.open { border-color:#d6c2f0; box-shadow:0 12px 30px rgba(43,10,82,.1); }
    body.partner-page .faq-q { width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px;
             padding:19px 22px; text-align:left; font-size:15.5px; font-weight:700; color:var(--ink); }
    body.partner-page .faq-q:hover { color:var(--brand); }
    body.partner-page .faq-q .fx { width:30px; height:30px; border-radius:50%; flex-shrink:0; display:flex; align-items:center;
                 justify-content:center; background:var(--lilac); border:1px solid #e3d4f7;
                 transition:background .25s, transform .3s; }
    body.partner-page .faq-q .fx svg { width:14px; height:14px; fill:none; stroke:#4a128f; stroke-width:2.4;
                     stroke-linecap:round; transition:stroke .25s; }
    body.partner-page .faq-item.open .faq-q .fx { background:var(--brand); transform:rotate(45deg); }
    body.partner-page .faq-item.open .faq-q .fx svg { stroke:#fff; }
    body.partner-page .faq-a { max-height:0; overflow:hidden; transition:max-height .35s ease; }
    body.partner-page .faq-a p { padding:0 22px 20px; font-size:14px; color:var(--muted); line-height:1.66; }

    /* ── LEAD FORM (embedded + modal) ── */
    body.partner-page .lead { padding:84px 0; background:#fff; }
    body.partner-page .lead-grid { display:grid; grid-template-columns:1fr 1.05fr; gap:56px; align-items:center; }
    body.partner-page .lead-copy .sec-eyebrow { margin-bottom:18px; }
    body.partner-page .lead-copy h2 { font-family:var(--serif); font-size:clamp(26px,2.7vw,38px); font-weight:700;
                    line-height:1.16; letter-spacing:-.4px; margin-bottom:16px; }
    body.partner-page .lead-copy h2 em { font-style:normal; color:var(--brand); }
    body.partner-page .lead-copy p { font-size:15.5px; color:var(--muted); line-height:1.66; margin-bottom:22px; }
    body.partner-page .lead-points li { position:relative; font-size:14px; color:#514860; line-height:1.55;
                      padding-left:26px; margin-bottom:11px; }
    body.partner-page .lead-points li b { color:var(--ink); }
    body.partner-page .lead-points li::before { content:''; position:absolute; left:0; top:3px; width:16px; height:16px;
                              background:var(--brand);
                              -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat;
                              mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat; }
    body.partner-page .lead-form-card { background:#fff; border:1px solid #e0d5ee; border-radius:18px; padding:34px 34px 32px;
                      box-shadow:0 24px 60px rgba(43,10,82,.14); }
    body.partner-page .lead-form-card .fh { font-family:var(--serif); font-size:23px; font-weight:700; margin-bottom:6px; }
    body.partner-page .lead-form-card .fs { font-size:13.5px; color:var(--muted); line-height:1.55; margin-bottom:22px; }
    body.partner-page .fld { margin-bottom:15px; }
    body.partner-page .fld label { display:block; font-size:12.5px; font-weight:700; color:var(--ink); margin-bottom:6px; }
    body.partner-page .fld label em { font-style:normal; color:#b04141; }
    body.partner-page .fld input, body.partner-page .fld select { width:100%; height:46px; padding:0 14px; border:1.5px solid var(--line);
                              border-radius:8px; font:inherit; font-size:14px; color:var(--ink);
                              background:#fff; transition:border-color .2s, box-shadow .2s; }
    body.partner-page .fld select { appearance:none; -webkit-appearance:none;
                  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234d4658' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
                  background-repeat:no-repeat; background-position:right 13px center; background-size:16px; }
    body.partner-page .fld input:focus, body.partner-page .fld select:focus { outline:none; border-color:#6a26c4; box-shadow:0 0 0 3px rgba(106,38,196,.12); }
    body.partner-page .fld input.err, body.partner-page .fld select.err { border-color:#b04141; }
    body.partner-page .fld .fld-err { display:none; font-size:11.5px; color:#b04141; font-weight:600; margin-top:5px; }
    body.partner-page .fld.show-err .fld-err { display:block; }
    body.partner-page .fld-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
    body.partner-page .fld-check { display:flex; align-items:flex-start; gap:10px; margin-bottom:15px; }
    body.partner-page .fld-check input { width:17px; height:17px; margin-top:2px; accent-color:var(--brand); flex-shrink:0; }
    body.partner-page .fld-check label { font-size:12.5px; color:var(--muted); line-height:1.5; font-weight:500; }
    body.partner-page .fld-check.consent.show-err label { color:#b04141; }
    body.partner-page .lead-submit { width:100%; height:50px; font-size:14px; }
    body.partner-page .lead-submit:disabled { opacity:.72; cursor:not-allowed; transform:none; box-shadow:none; }
    body.partner-page .lead-status { margin:12px 0 0; font-size:12.5px; line-height:1.45; font-weight:700; text-align:center; }
    body.partner-page .lead-status.info { color:#5f4b8b; }
    body.partner-page .lead-status.error { color:#b04141; }
    body.partner-page .lead-fineprint { margin-top:12px; text-align:center; font-size:11.5px; color:#8a7f9c; line-height:1.5; }
    body.partner-page .lead-success { display:none; text-align:center; padding:28px 8px 16px; }
    body.partner-page .lead-success.show { display:block; }
    body.partner-page .lead-success .okc { width:64px; height:64px; margin:0 auto 18px; border-radius:50%; display:flex;
                         align-items:center; justify-content:center; color:#fff;
                         background:linear-gradient(150deg,#6a26c4,#3a0b73); box-shadow:0 12px 30px rgba(58,11,115,.35); }
    body.partner-page .lead-success .okc svg { width:30px; height:30px; fill:none; stroke:currentColor; stroke-width:2.4;
                             stroke-linecap:round; stroke-linejoin:round; }
    body.partner-page .lead-success h3 { font-family:var(--serif); font-size:23px; font-weight:700; margin-bottom:10px; }
    body.partner-page .lead-success p { font-size:14px; color:var(--muted); line-height:1.64; max-width:380px; margin-inline:auto; }
    body.partner-page .lead-success p b { color:var(--brand); }

    /* Modal */
    body.partner-page .lead-modal { position:fixed; inset:0; z-index:1000; display:none; align-items:center;
                  justify-content:center; padding:24px; background:rgba(16,3,40,.62);
                  backdrop-filter:blur(4px); }
    body.partner-page .lead-modal.show { display:flex; animation:pmFade .2s ease; }
    @keyframes pmFade { from{opacity:0} to{opacity:1} }
    body.partner-page .lead-modal .lead-form-card { position:relative; width:min(520px,100%); max-height:92vh;
                                  overflow-y:auto; animation:pmRise .28s ease; }
    @keyframes pmRise { from{opacity:0; transform:translateY(18px)} to{opacity:1; transform:none} }
    body.partner-page .lead-modal-close { position:absolute; top:14px; right:14px; width:36px; height:36px; border-radius:50%;
                        background:var(--lilac); color:var(--brand); font-size:20px; display:flex;
                        align-items:center; justify-content:center; transition:background .2s, color .2s; }
    body.partner-page .lead-modal-close:hover { background:var(--brand); color:#fff; }

    /* ── FINAL CTA ── */
    body.partner-page .cta-band { background:linear-gradient(108deg,#321069,#1e064b); color:var(--white); }
    body.partner-page .cta-inner { display:flex; align-items:center; justify-content:space-between; gap:28px;
                 min-height:188px; padding:46px 0; }
    body.partner-page .cta-copy h2 { font-family:var(--serif); font-size:clamp(24px,2.4vw,34px); font-weight:700; margin-bottom:10px; }
    body.partner-page .cta-copy p { font-size:15px; opacity:.88; max-width:540px; line-height:1.55; }
    body.partner-page .cta-copy p b { color:var(--gold); }
    body.partner-page .cta-actions { display:flex; flex-wrap:wrap; gap:13px; flex-shrink:0; }

    /* Sticky mobile CTA */
    body.partner-page .sticky-cta { position:fixed; left:0; right:0; bottom:0; z-index:200; display:none;
                  padding:10px 14px calc(10px + env(safe-area-inset-bottom));
                  background:rgba(255,255,255,.96); backdrop-filter:blur(8px);
                  border-top:1px solid #e7ddf2; box-shadow:0 -8px 24px rgba(25,7,47,.12); }
    body.partner-page .sticky-cta .btn { width:100%; height:48px; font-size:14px; }
    body.partner-page.sticky-visible .sticky-cta { display:block; }

    /* ── RESPONSIVE ── */
    @media (max-width:1020px) {
      body.partner-page .engine-grid { grid-template-columns:repeat(3,1fr); }
    }
    @media (max-width:900px) {
      body.partner-page .p-hero-grid { grid-template-columns:1fr; gap:40px; padding:54px 0 60px; }
      body.partner-page .p-chip-top { left:0; } body.partner-page .p-chip-bottom { right:0; }
      body.partner-page .trust-grid { grid-template-columns:repeat(2,1fr); }
      body.partner-page .trust-item:nth-child(2n) { border-right:none; }
      body.partner-page .trust-item:nth-child(-n+2) { border-bottom:1px solid rgba(255,255,255,.1); }
      body.partner-page .opp-grid { grid-template-columns:1fr; gap:44px; }
      body.partner-page .eco-grid { grid-template-columns:1fr; gap:42px; }
      body.partner-page .flag-grid { grid-template-columns:1fr; }
      body.partner-page .flag-stats { grid-template-columns:repeat(2,1fr); }
      body.partner-page .flag-stat:nth-child(2) { border-right:none; }
      body.partner-page .flag-stat:nth-child(-n+2) { border-bottom:1px solid rgba(255,255,255,.12); }
      body.partner-page .dest-layout { grid-template-columns:1fr; }
      body.partner-page .dest-anchor { min-height:380px; }
      body.partner-page .dest-mini { min-height:92px; }
      body.partner-page .split-strip { grid-template-columns:1fr; }
      body.partner-page .num-grid { grid-template-columns:1fr 1fr; }
      body.partner-page .prof-grid { grid-template-columns:1fr 1fr; }
      body.partner-page .centre-grid { grid-template-columns:1fr; gap:48px; }
      body.partner-page .journey-track { grid-template-columns:1fr 1fr; }
      body.partner-page .proof-bar { grid-template-columns:1fr 1fr; }
      body.partner-page .proof-item:nth-child(2) { border-right:none; }
      body.partner-page .proof-item:nth-child(-n+2) { border-bottom:1px solid rgba(255,255,255,.12); }
      body.partner-page .lead-grid { grid-template-columns:1fr; gap:42px; }
      body.partner-page .cta-inner { flex-direction:column; align-items:flex-start; padding:34px 0; gap:22px; }
      body.partner-page .footer-grid { grid-template-columns:1fr 1fr 1fr; gap:26px; }
      body.partner-page .footer-col-brand { grid-column:1/4; }
    }
    @media (max-width:640px) {
      body.partner-page { --shell:min(100%, calc(100% - 28px)); }
      body.partner-page .header-inner { height:66px; } body.partner-page .header-logo img { height:40px; }
      body.partner-page .menu-toggle { display:flex; }
      body.partner-page .main-nav { position:absolute; top:66px; left:0; right:0; z-index:99; flex-direction:column;
                  align-items:stretch; padding:14px 20px; background:var(--white);
                  box-shadow:0 8px 24px rgba(25,7,47,.12); gap:2px; display:none; }
      body.partner-page .main-nav.open { display:flex; }
      body.partner-page .nav-link { padding:10px 0; border-bottom:1px solid #f0eaf8; font-size:15px; }
      body.partner-page .btn-book { margin-top:6px; justify-content:center; height:44px; }
      body.partner-page .p-hero h1 { font-size:32px; }
      body.partner-page .p-hero-actions { flex-direction:column; } body.partner-page .p-hero-actions .btn { justify-content:center; }
      body.partner-page .p-chip-top, body.partner-page .p-chip-bottom { position:static; margin-top:12px; }
      body.partner-page .trust-grid { grid-template-columns:1fr 1fr; }
      body.partner-page .trust-item { border-right:none !important; border-bottom:1px solid rgba(255,255,255,.1); }
      body.partner-page .trust-item:nth-last-child(-n+2) { border-bottom:none; }
      body.partner-page .opp-stats { grid-template-columns:1fr; }
      body.partner-page .opp-photos { grid-template-columns:1fr; }
      body.partner-page .p-mark { gap:12px; } body.partner-page .p-mark-logo img { height:24px; }
      body.partner-page .eco-tiles { grid-template-columns:1fr; }
      body.partner-page .eco-vs { grid-template-columns:1fr; }
      body.partner-page .engine-grid { grid-template-columns:1fr 1fr; }
      body.partner-page .engine-plus { grid-template-columns:1fr; }
      body.partner-page .num-grid { grid-template-columns:1fr; }
      body.partner-page .prof-grid { grid-template-columns:1fr; }
      body.partner-page .check-list { grid-template-columns:1fr; }
      body.partner-page .journey-track { grid-template-columns:1fr; }
      body.partner-page .proof-bar { grid-template-columns:1fr; }
      body.partner-page .proof-item { border-right:none; border-bottom:1px solid rgba(255,255,255,.12); }
      body.partner-page .proof-item:last-child { border-bottom:none; }
      body.partner-page .fld-row { grid-template-columns:1fr; }
      body.partner-page .lead-form-card { padding:26px 20px 24px; }
      body.partner-page .centre-stat { left:0; padding:16px 18px; }
      body.partner-page .footer-grid { grid-template-columns:1fr 1fr; gap:22px; }
      body.partner-page .footer-col-brand { grid-column:1/3; }
      body.partner-page .copyright { flex-direction:column; gap:6px; }
      body.partner-page .lead-modal { padding:0; align-items:flex-end; }
      body.partner-page .lead-modal .lead-form-card { width:100%; max-height:94vh; border-radius:16px 16px 0 0; }
    }
    body.partner-page .btn-gold {
    background: var(--gold);
    border-color: var(--gold);
    color: #2a0a4f;
    font-weight: 700;
}

/* ========================================================
   Educators Network page CSS extracted from educators-network.html
======================================================== */
body.educators-page { --sans:'Inter', Arial, sans-serif; }

  /* Why educators choose iSTEP */
  body.educators-page .wa-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:56px; align-items:start; }
  body.educators-page .wa-left { position:sticky; top:80px; }
  body.educators-page .wa-left > p { font-size:16px; color:var(--ink-mid); line-height:1.72; margin:0 0 18px; max-width:460px; }
  body.educators-page .wa-left > p strong { color:var(--brand); font-weight:700; }
  body.educators-page .wa-left .btn { margin-top:8px; }
  body.educators-page .wa-cards { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
  body.educators-page .wa-card { position:relative; background:var(--white); border:1px solid #e7ddf2; border-radius:18px; padding:26px 24px 24px; box-shadow:0 5px 18px rgba(43,10,82,.06); transition:transform .25s, box-shadow .25s, border-color .25s; }
  body.educators-page .wa-card:hover { transform:translateY(-4px); box-shadow:0 16px 36px rgba(43,10,82,.13); border-color:#d6c2f0; }
  body.educators-page .wa-num { position:absolute; top:20px; right:22px; font-family:var(--num); font-size:34px; font-weight:700; color:#2a0a4f; opacity:.09; line-height:1; }
  body.educators-page .wa-icon { width:46px; height:46px; border-radius:13px; display:flex; align-items:center; justify-content:center; background:linear-gradient(150deg,#f0e6fc,#e4d2f8); margin-bottom:16px; transition:background .25s; }
  body.educators-page .wa-icon svg { width:23px; height:23px; stroke:#4a128f; fill:none; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; transition:stroke .25s; }
  body.educators-page .wa-card:hover .wa-icon { background:linear-gradient(150deg,#5a1aa8,#3a0b73); }
  body.educators-page .wa-card:hover .wa-icon svg { stroke:#fff; }
  body.educators-page .wa-card h3 { font-size:16.5px; font-weight:700; color:var(--ink); margin:0 0 9px; line-height:1.3; letter-spacing:0; }
  body.educators-page .wa-card p { font-size:13.5px; color:#4a4257; line-height:1.6; margin:0; }
  body.educators-page .wa-photo { position:relative; grid-column:1/-1; border-radius:18px; overflow:hidden; height:240px; box-shadow:0 10px 30px rgba(25,7,47,.16); }
  body.educators-page .wa-photo img { width:100%; height:100%; object-fit:cover; display:block; }
  body.educators-page .wa-photo::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,transparent 35%, rgba(25,5,72,.62)); }
  body.educators-page .wa-photo figcaption { position:absolute; left:22px; right:22px; bottom:16px; z-index:2; color:#fff; font-size:13.5px; font-weight:600; }

  /* ── FEATURE SPLIT ── */
  body.educators-page .feat-split { display:grid; grid-template-columns:1fr 1fr; gap:52px; align-items:center; }
  body.educators-page .feat-split.rev .feat-media { order:2; }
  body.educators-page .feat-copy .sec-title { font-size:clamp(24px,2.7vw,34px); margin-bottom:14px; }
  body.educators-page .feat-copy > p { font-size:15.5px; color:var(--ink-mid); line-height:1.7; margin-bottom:18px; max-width:520px; }
  body.educators-page .bullet-list { display:flex; flex-direction:column; gap:11px; margin:20px 0 26px; }
  body.educators-page .bullet { display:flex; gap:13px; align-items:flex-start; }
  body.educators-page .bullet-check { flex-shrink:0; width:24px; height:24px; border-radius:50%; background:linear-gradient(150deg,#5a1aa8,#3a0b73); display:flex; align-items:center; justify-content:center; margin-top:1px; }
  body.educators-page .bullet-check svg { width:12px; height:12px; stroke:#fff; stroke-width:2.6; fill:none; stroke-linecap:round; stroke-linejoin:round; }
  body.educators-page .bullet span { font-size:14.5px; color:#3f3650; line-height:1.5; }
  body.educators-page .bullet span b { color:var(--ink); font-weight:700; }
  body.educators-page .feat-media { position:relative; }
  body.educators-page .feat-photo { position:relative; border-radius:16px; overflow:hidden; box-shadow:0 18px 46px rgba(25,7,47,.20); }
  body.educators-page .feat-photo img { width:100%; height:420px; object-fit:cover; display:block; }
  body.educators-page .feat-photo::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,transparent 58%, rgba(25,5,72,.30)); }
  body.educators-page .feat-inset { position:absolute; width:210px; height:150px; border-radius:14px; overflow:hidden; border:5px solid var(--white); box-shadow:0 14px 34px rgba(25,7,47,.24); background:#eee; }
  body.educators-page .feat-inset img { width:100%; height:100%; object-fit:cover; }
  body.educators-page .feat-split .feat-inset { right:-18px; bottom:-26px; }
  body.educators-page .feat-split.rev .feat-inset { left:-18px; bottom:-26px; right:auto; }
  body.educators-page .feat-tag { position:absolute; top:16px; left:16px; z-index:3; display:inline-flex; align-items:center; gap:8px; background:rgba(255,255,255,.94); padding:8px 14px; border-radius:100px; font-size:12px; font-weight:700; color:var(--brand); box-shadow:0 6px 18px rgba(25,7,47,.18); }
  body.educators-page .feat-tag .dot { width:8px; height:8px; border-radius:50%; background:#7a3cc9; }

  /* ── OPTION B — FILTERABLE GALLERY ── */
  body.educators-page .gal-filters { display:flex; flex-wrap:wrap; align-items:center; gap:9px; margin-bottom:22px; }
  body.educators-page .gal-filters .gf-label { font-size:11px; font-weight:700; letter-spacing:.11em; text-transform:uppercase; color:#9184a8; margin-right:6px; }
  body.educators-page .gal-chip { font-size:13px; font-weight:600; color:#4a4257; background:var(--white); border:1.5px solid #e3d9f0; padding:8px 16px; border-radius:100px; transition:all .18s; }
  body.educators-page .gal-chip:hover { border-color:#c3a7ea; color:var(--brand); }
  body.educators-page .gal-chip.active { background:linear-gradient(150deg,#3a0b73,#5a1aa8); border-color:transparent; color:#fff; box-shadow:0 6px 16px rgba(45,7,95,.24); }
  body.educators-page .gal-count { font-size:12.5px; color:var(--muted); margin-bottom:16px; font-weight:500; }
  body.educators-page .gal-count b { color:var(--brand); font-weight:700; }
  body.educators-page .gal-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
  body.educators-page .gal-card { position:relative; border-radius:16px; overflow:hidden; aspect-ratio:4/5; box-shadow:0 5px 18px rgba(43,10,82,.09); cursor:pointer; }
  body.educators-page .gal-card img.gal-cover { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
  body.educators-page .gal-card:hover img.gal-cover { transform:scale(1.06); }
  body.educators-page .gal-card::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,transparent 38%, rgba(20,5,45,.84)); }
  body.educators-page .gal-badge { position:absolute; top:12px; left:12px; z-index:3; display:inline-flex; align-items:center; gap:5px; font-size:11px; font-weight:700; color:#fff; background:rgba(20,5,45,.55); border:1px solid rgba(255,255,255,.3); padding:5px 11px; border-radius:100px; }
  body.educators-page .gal-badge svg { width:13px; height:13px; stroke:#fff; fill:none; stroke-width:1.8; }
  body.educators-page .gal-cat { position:absolute; top:12px; right:12px; z-index:3; font-size:10.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:#fff; background:linear-gradient(150deg,rgba(90,26,168,.92),rgba(58,11,115,.92)); border:1px solid rgba(217,188,255,.5); padding:5px 12px; border-radius:100px; box-shadow:0 4px 12px rgba(20,5,45,.35); }
  body.educators-page .gal-meta { position:absolute; left:0; right:0; bottom:0; z-index:2; padding:20px 20px 18px; color:#fff; }
  body.educators-page .gal-tag { font-size:10px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; padding:4px 10px; border-radius:100px; background:rgba(217,188,255,.28); color:#fff; border:1px solid rgba(217,188,255,.5); display:inline-block; margin-bottom:8px; }
  body.educators-page .gal-meta h3 { font-size:15.5px; font-weight:700; line-height:1.28; }
  body.educators-page .gal-empty { grid-column:1/-1; text-align:center; padding:50px 0; color:var(--muted); font-size:14px; display:none; }

  /* ── LIGHTBOX ── */
  body.educators-page .lb { position:fixed; inset:0; z-index:300; background:rgba(14,4,32,.9); backdrop-filter:blur(6px); display:none; flex-direction:column; padding:34px 20px 24px; }
  body.educators-page .lb.open { display:flex; }
  body.educators-page .lb-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; color:#fff; max-width:1000px; width:100%; margin:0 auto 14px; }
  body.educators-page .lb-head .lb-tag { font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#d9bcff; margin-bottom:4px; }
  body.educators-page .lb-head h3 { font-family:var(--serif); font-size:22px; font-weight:700; }
  body.educators-page .lb-count { font-size:13px; color:rgba(255,255,255,.7); font-family:var(--num); white-space:nowrap; margin-top:6px; }
  body.educators-page .lb-close { flex-shrink:0; width:42px; height:42px; border-radius:50%; border:1.5px solid rgba(255,255,255,.35); background:none; color:#fff; display:flex; align-items:center; justify-content:center; transition:background .2s; }
  body.educators-page .lb-close:hover { background:rgba(255,255,255,.14); }
  body.educators-page .lb-close svg { width:20px; height:20px; stroke:#fff; stroke-width:2; fill:none; stroke-linecap:round; }
  body.educators-page .lb-stage { position:relative; flex:1; display:flex; align-items:center; justify-content:center; min-height:0; max-width:1000px; width:100%; margin:0 auto; }
  body.educators-page .lb-img { max-width:100%; max-height:100%; object-fit:contain; border-radius:14px; box-shadow:0 24px 60px rgba(0,0,0,.5); }
  body.educators-page .lb-arrow { position:absolute; top:50%; transform:translateY(-50%); width:50px; height:50px; border-radius:50%; border:none; background:rgba(255,255,255,.14); backdrop-filter:blur(4px); display:flex; align-items:center; justify-content:center; transition:background .2s; }
  body.educators-page .lb-arrow:hover { background:rgba(255,255,255,.28); }
  body.educators-page .lb-arrow svg { width:24px; height:24px; stroke:#fff; stroke-width:2; fill:none; stroke-linecap:round; stroke-linejoin:round; }
  body.educators-page .lb-prev { left:6px; } body.educators-page .lb-next { right:6px; }
  body.educators-page .lb-thumbs { display:flex; gap:9px; justify-content:center; flex-wrap:wrap; margin-top:16px; }
  body.educators-page .lb-thumb { width:76px; height:56px; border-radius:8px; overflow:hidden; cursor:pointer; border:2px solid transparent; opacity:.55; transition:opacity .2s, border-color .2s; }
  body.educators-page .lb-thumb img { width:100%; height:100%; object-fit:cover; }
  body.educators-page .lb-thumb.active { opacity:1; border-color:#d9bcff; }

  /* ── TRUSTED-BY — COUNTRY FILTER + MARQUEE ── */
  body.educators-page .logo-controls { display:flex; flex-wrap:wrap; gap:9px; justify-content:center; margin:30px 0 28px; }
  body.educators-page .logo-chip { font-size:13px; font-weight:600; color:#4a4257; background:var(--white); border:1.5px solid #e3d9f0; padding:8px 18px; border-radius:100px; transition:all .18s; }
  body.educators-page .logo-chip:hover { border-color:#c3a7ea; color:var(--brand); }
  body.educators-page .logo-chip.active { background:linear-gradient(150deg,#3a0b73,#5a1aa8); border-color:transparent; color:#fff; box-shadow:0 6px 16px rgba(45,7,95,.24); }
  body.educators-page .logo-marquee { position:relative; overflow:hidden; padding:4px 0;
    -webkit-mask:linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
    mask:linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent); }
  body.educators-page .logo-track { display:flex; gap:18px; width:max-content; animation:marquee 40s linear infinite; }
  body.educators-page .logo-marquee:hover .logo-track { animation-play-state:paused; }
  @keyframes marquee { from{transform:translateX(0)} to{transform:translateX(-50%)} }
  body.educators-page .logo-cell { flex:0 0 auto; width:210px; height:112px; display:flex; align-items:center; justify-content:center; background:var(--white); border:1px solid #e7ddf2; border-radius:14px; padding:22px 30px; box-shadow:0 4px 14px rgba(43,10,82,.04); }
  body.educators-page .logo-cell img { max-height:56px; max-width:100%; object-fit:contain; }

  /* ── WALL OF RECOGNITION — MOSAIC ── */
  body.educators-page .mosaic { display:grid; grid-template-columns:repeat(4, 1fr); grid-auto-rows:150px; gap:12px; }
  body.educators-page .mos-item { position:relative; border-radius:14px; overflow:hidden; cursor:pointer; }
  body.educators-page .mos-item img { width:100%; height:100%; object-fit:cover; transition:transform .55s ease; }
  body.educators-page .mos-item:hover img { transform:scale(1.08); }
  body.educators-page .mos-item::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,transparent 50%, rgba(20,5,45,.78)); opacity:0; transition:opacity .3s; }
  body.educators-page .mos-item:hover::after { opacity:1; }
  body.educators-page .mos-cap { position:absolute; left:16px; bottom:14px; right:16px; z-index:2; color:#fff; font-size:12.5px; font-weight:600; line-height:1.35; opacity:0; transform:translateY(8px); transition:opacity .3s, transform .3s; }
  body.educators-page .mos-item:hover .mos-cap { opacity:1; transform:none; }
  body.educators-page .mos-w2 { grid-column:span 2; }
  body.educators-page .mos-h2 { grid-row:span 2; }

  @media (max-width:900px) {
    body.educators-page .wa-grid { grid-template-columns:1fr; gap:40px; }
    body.educators-page .wa-left { position:static; }
    body.educators-page .feat-split { grid-template-columns:1fr; gap:40px; }
    body.educators-page .feat-split.rev .feat-media { order:0; }
    body.educators-page .feat-photo img { height:340px; }
    body.educators-page .map-layout { grid-template-columns:1fr; gap:24px; }
    body.educators-page .gal-grid { grid-template-columns:repeat(2,1fr); }
    body.educators-page .join-grid { grid-template-columns:1fr 1fr; gap:30px 0; }
    body.educators-page .join-item { padding:6px 26px; }
    body.educators-page .join-item:nth-child(odd) { padding-left:0; border-left:none; }
    body.educators-page .mosaic { grid-template-columns:repeat(2,1fr); grid-auto-rows:140px; }
    body.educators-page .mos-w2 { grid-column:span 2; }
  }
  @media (max-width:640px) {
    body.educators-page .wa-cards { grid-template-columns:1fr; }
    body.educators-page .wa-photo { height:180px; }
    body.educators-page .opt-wrap { padding:26px 16px 24px; }
    body.educators-page .gal-grid { grid-template-columns:1fr 1fr; gap:12px; }
    body.educators-page .feat-inset { display:none; }
    body.educators-page .join-panel { padding:34px 26px; }
    body.educators-page .join-grid { grid-template-columns:1fr; }
    body.educators-page .join-item { padding:0; border-left:none; padding-bottom:22px; margin-bottom:22px; border-bottom:1px solid rgba(255,255,255,.14); }
    body.educators-page .join-item:last-child { border-bottom:none; margin-bottom:0; padding-bottom:0; }
    body.educators-page .logo-cell { width:170px; height:96px; padding:18px 22px; }
    body.educators-page .mosaic { grid-template-columns:1fr 1fr; }
  }

/* ======================================================
   ABOUT US PAGE
====================================================== */
body.about-page .about-head { background:linear-gradient(108deg, var(--bg) 36%, #eff3f5 100%); padding:70px 0 58px; }
body.about-page .about-head .hero-eyebrow { display:inline-flex; align-items:center; gap:8px; font-size:11.5px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; color:#6a36b3; background:#efe4fb; border:1px solid #e0cef6; padding:6px 14px; border-radius:100px; margin-bottom:20px; }
body.about-page .about-head .hero-eyebrow::before { content:''; width:6px; height:6px; border-radius:50%; background:#7a3cc9; }
body.about-page .about-head h1 { font-family:var(--serif); font-size:clamp(38px,4.4vw,64px); font-weight:700; line-height:1.05; color:var(--ink); max-width:720px; }
body.about-page .sec { padding:74px 0; }
body.about-page .sec-alt { background:linear-gradient(180deg,#faf6fe 0%, #f3ecfb 50%, #faf6fe 100%); }
body.about-page .sec-eyebrow { display:inline-block; font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#6a36b3; margin-bottom:14px; }
body.about-page .sec-title { font-family:var(--serif); font-size:clamp(26px,3vw,40px); font-weight:700; color:var(--ink); line-height:1.14; margin-bottom:16px; }
body.about-page .sec-head-c { text-align:center; margin:0 auto 44px; max-width:720px; }
body.about-page .intro-split { display:grid; grid-template-columns:.92fr 1.08fr; gap:52px; align-items:center; }
body.about-page .intro-photo { border-radius:18px; overflow:hidden; box-shadow:0 18px 46px rgba(25,7,47,.18); background:#eee; }
body.about-page .intro-photo img { width:100%; height:440px; object-fit:cover; object-position:center; display:block; }
body.about-page .intro-prose p { font-size:16px; color:var(--ink-mid); line-height:1.72; margin:0 0 18px; }
body.about-page .intro-prose strong { color:var(--brand); font-weight:700; }
body.about-page .intro-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:28px; }
body.about-page .intro-stat { background:var(--white); border:1px solid #e7ddf2; border-radius:14px; padding:20px 18px; box-shadow:0 4px 16px rgba(43,10,82,.05); }
body.about-page .intro-stat b { display:block; font-family:var(--inter); font-size:30px; font-weight:800; color:var(--brand); line-height:1; margin-bottom:8px; font-variant-numeric:lining-nums tabular-nums; }
body.about-page .intro-stat span { display:block; font-size:12.5px; color:#514860; line-height:1.4; }
body.about-page .steer-lead { font-size:15.5px; color:var(--muted); line-height:1.68; max-width:760px; margin:0 auto; }
body.about-page .steer-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px; }
body.about-page .steer-card { display:flex; flex-direction:column; min-width:0; background:var(--white); border:1px solid #e7ddf2; border-radius:16px; overflow:hidden; box-shadow:0 4px 16px rgba(43,10,82,.05); cursor:pointer; transition:transform .26s, box-shadow .26s, border-color .26s; }
body.about-page .steer-card:hover { transform:translateY(-6px); border-color:#d6c2f0; box-shadow:0 18px 40px rgba(43,10,82,.13); }
body.about-page .steer-photo { height:278px; background:linear-gradient(150deg,#f0e6fc,#e4d2f8); display:flex; align-items:center; justify-content:center; color:var(--brand); }
body.about-page .steer-photo img { width:100%; height:100%; object-fit:cover; display:block; }
body.about-page .steer-placeholder { height:190px; background:linear-gradient(145deg,#321069,#5718a4); position:relative; overflow:hidden; }
body.about-page .steer-placeholder::before { content:''; position:absolute; inset:18px; border:1px solid rgba(255,255,255,.18); border-radius:14px; }
body.about-page .steer-placeholder span { position:relative; z-index:1; max-width:82%; min-height:0; border-radius:100px; display:flex; align-items:center; justify-content:center; text-align:center; background:rgba(255,255,255,.94); color:var(--brand); font-family:var(--inter); font-size:12px; line-height:1.25; font-weight:800; letter-spacing:.08em; text-transform:uppercase; padding:10px 16px; box-shadow:0 10px 28px rgba(8,1,20,.24); }
body.about-page .steer-body { padding:20px 20px 22px; }
body.about-page .steer-row { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:8px; }
body.about-page .steer-name { font-family:var(--serif); font-size:21px; font-weight:700; color:var(--ink); line-height:1.16; letter-spacing:0; }
body.about-page .steer-role { font-size:13.5px; color:#514860; line-height:1.55; }
body.about-page .steer-in,
body.about-page .mm-in { flex-shrink:0; width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:#f1e8fb; color:var(--brand); transition:background .2s, color .2s; }
body.about-page .steer-in:hover,
body.about-page .mm-in:hover { background:var(--brand); color:#fff; }
body.about-page .steer-in svg,
body.about-page .mm-in svg { width:17px; height:17px; fill:currentColor; }
body.about-page .member-modal { position:fixed; inset:0; z-index:1000; display:none; align-items:center; justify-content:center; padding:24px; }
body.about-page .member-modal.open { display:flex; }
body.about-page .mm-backdrop { position:absolute; inset:0; background:rgba(16,3,40,.66); backdrop-filter:blur(5px); }
body.about-page .mm-card { position:relative; width:min(620px,100%); max-height:92vh; overflow:auto; background:var(--white); border-radius:18px; box-shadow:0 24px 70px rgba(13,2,30,.38); }
body.about-page .mm-close { position:absolute; top:16px; right:16px; z-index:3; width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,.9); color:var(--brand); display:flex; align-items:center; justify-content:center; transition:background .2s, color .2s; }
body.about-page .mm-close:hover { background:var(--brand); color:#fff; }
body.about-page .mm-band { height:126px; background:linear-gradient(108deg,#321069,#1e064b); position:relative; overflow:hidden; }
body.about-page .mm-watermark { position:absolute; right:24px; top:24px; opacity:.16; width:160px; }
body.about-page .mm-photo { width:132px; height:132px; border-radius:50%; border:6px solid var(--white); background:linear-gradient(150deg,#f0e6fc,#e4d2f8); display:flex; align-items:center; justify-content:center; margin:-66px 0 18px 34px; position:relative; z-index:2; overflow:hidden; box-shadow:0 12px 34px rgba(25,7,47,.22); }
body.about-page .mm-photo img { width:100%; height:100%; object-fit:cover; }
body.about-page .mm-photo span { font-family:var(--serif); font-size:34px; font-weight:700; color:var(--brand); }
body.about-page .mm-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:0 34px 18px; }
body.about-page .mm-name { font-family:var(--serif); font-size:28px; font-weight:700; color:var(--ink); line-height:1.12; margin-bottom:8px; }
body.about-page .mm-role { font-size:14px; color:var(--brand); font-weight:700; line-height:1.45; }
body.about-page .mm-bio { padding:0 34px 34px; font-size:15px; color:#4a4257; line-height:1.7; }
body.about-page .cta-band { background:linear-gradient(108deg,#321069,#1e064b); color:var(--white); }
body.about-page .cta-inner { display:flex; align-items:center; justify-content:space-between; gap:28px; min-height:185px; padding:44px 0; }
body.about-page .cta-copy h2 { font-family:var(--serif); font-size:clamp(24px,2.4vw,34px); font-weight:700; margin-bottom:10px; }
body.about-page .cta-copy p { font-size:15px; opacity:.88; line-height:1.55; max-width:520px; }
body.about-page .cta-actions { display:flex; flex-wrap:wrap; gap:13px; flex-shrink:0; }

@media (max-width:900px) {
  body.about-page .intro-split { grid-template-columns:1fr; gap:34px; }
  body.about-page .intro-stats { grid-template-columns:1fr 1fr; }
  body.about-page .steer-grid { grid-template-columns:1fr 1fr; }
  body.about-page .steer-photo { height:240px; }
  body.about-page .steer-placeholder { height:180px; }
  body.about-page .cta-inner { flex-direction:column; align-items:flex-start; padding:34px 0; gap:22px; }
}

@media (max-width:640px) {
  body.about-page .about-head { padding:48px 0 42px; }
  body.about-page .about-head h1 { font-size:36px; }
  body.about-page .intro-photo img { height:300px; }
  body.about-page .intro-stats { grid-template-columns:1fr; }
  body.about-page .steer-grid { grid-template-columns:1fr; }
  body.about-page .steer-photo { height:260px; }
  body.about-page .steer-placeholder { height:170px; }
  body.about-page .mm-card { border-radius:14px; }
  body.about-page .mm-photo { width:110px; height:110px; margin:-55px 0 16px 24px; }
  body.about-page .mm-head { padding:0 24px 16px; }
  body.about-page .mm-name { font-size:24px; }
  body.about-page .mm-bio { padding:0 24px 28px; }
}

/* Source-matched About page overrides. Font stays on this site's Inter/Playfair setup. */
body.about-page { background:var(--bg); --sans:var(--inter); --num:var(--inter); }
body.about-page .about-head { padding:72px 0 26px; background:var(--bg); }
body.about-page .about-head .breadcrumb { margin-bottom:18px; }
body.about-page .about-head h1 { font-family:var(--serif); font-size:clamp(34px,4.2vw,52px); font-weight:700; color:var(--ink); letter-spacing:0; line-height:1.08; max-width:760px; }
body.about-page .about-head .hero-eyebrow { display:inline-flex; align-items:center; gap:8px; font-size:11.5px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; color:#6a36b3; background:#efe4fb; border:1px solid #e0cef6; padding:6px 14px; border-radius:100px; margin-bottom:20px; }
body.about-page .about-head .hero-eyebrow::before { content:''; width:6px; height:6px; border-radius:50%; background:#7a3cc9; }
body.about-page .intro-split { display:grid; grid-template-columns:1fr 1.15fr; gap:48px; align-items:center; }
body.about-page .intro-photo { position:relative; aspect-ratio:4/3; height:auto; border-radius:20px; overflow:hidden; background:repeating-linear-gradient(135deg,#efe7f8,#efe7f8 14px,#e7dcf3 14px,#e7dcf3 28px); display:flex; align-items:center; justify-content:center; box-shadow:0 10px 30px rgba(43,10,82,.10); }
body.about-page .intro-photo img,
body.about-page .steer-photo img { width:100%; height:100%; object-fit:cover; display:block; }
body.about-page .intro-prose p { font-size:16.5px; color:var(--ink-mid); line-height:1.72; margin-bottom:18px; }
body.about-page .intro-prose p:last-of-type { margin-bottom:0; }
body.about-page .intro-prose strong { color:var(--brand); font-weight:700; }
body.about-page .intro-stats { display:flex; flex-wrap:wrap; gap:34px; margin-top:26px; padding-top:24px; border-top:1px solid #e7ddf2; }
body.about-page .intro-stat { background:transparent; border:0; border-radius:0; padding:0; box-shadow:none; }
body.about-page .intro-stat b { display:block; font-family:var(--num); font-size:26px; font-weight:700; color:var(--brand); line-height:1; margin-bottom:6px; letter-spacing:0; }
body.about-page .intro-stat span { font-size:12.5px; color:#514860; }
body.about-page .steer-lead { max-width:860px; margin:14px auto 0; text-align:center; font-size:16px; color:var(--ink-mid); line-height:1.7; }
body.about-page .steer-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:22px; margin-top:44px; }
body.about-page .steer-card { display:flex; flex-direction:column; text-align:left; background:var(--white); border:1px solid #e7ddf2; border-radius:14px; overflow:hidden; box-shadow:0 4px 16px rgba(43,10,82,.05); cursor:pointer; transition:transform .26s, box-shadow .26s, border-color .26s; }
body.about-page .steer-card:hover { transform:translateY(-6px); border-color:#d6c2f0; box-shadow:0 18px 40px rgba(43,10,82,.13); }
body.about-page .steer-photo { width:100%; height:auto; aspect-ratio:1/1; overflow:hidden; background:repeating-linear-gradient(135deg,#efe7f8,#efe7f8 14px,#e7dcf3 14px,#e7dcf3 28px); display:flex; align-items:center; justify-content:center; filter:grayscale(1); transition:filter .4s ease; }
body.about-page .steer-card:hover .steer-photo { filter:grayscale(0); }
body.about-page .steer-photo span { max-width:none; min-height:0; font-family:var(--num); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:#8a78a8; background:rgba(255,255,255,.85); padding:6px 12px; border-radius:8px; box-shadow:none; }
body.about-page .steer-body { padding:15px 18px 18px; }
body.about-page .steer-row { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; margin-bottom:5px; }
body.about-page .steer-name { font-family:var(--serif); font-size:18px; font-weight:700; color:var(--ink); line-height:1.2; letter-spacing:0; }
body.about-page .steer-role { font-size:12.5px; color:#6b6377; line-height:1.55; }
body.about-page .steer-in { flex:none; width:26px; height:26px; border-radius:6px; display:flex; align-items:center; justify-content:center; background:var(--brand); color:var(--white); transition:background .2s; }
body.about-page .steer-in:hover { background:#1a063b; }
body.about-page .steer-in svg { width:13px; height:13px; fill:currentColor; }
body.about-page .member-modal { position:fixed; inset:0; z-index:400; display:none; align-items:center; justify-content:center; padding:24px; }
body.about-page .member-modal.open { display:flex; }
body.about-page .mm-backdrop { position:absolute; inset:0; background:rgba(19,4,44,.58); }
body.about-page .mm-card { position:relative; width:min(660px,100%); max-height:88vh; overflow:auto; background:var(--white); border-radius:18px; box-shadow:0 30px 80px rgba(0,0,0,.35); }
body.about-page .mm-band { position:relative; height:168px; background:linear-gradient(148deg,#3a1273 0%,#250451 100%); overflow:hidden; }
body.about-page .mm-watermark { position:absolute; top:24px; left:170px; width:340px; opacity:.12; user-select:none; pointer-events:none; }
body.about-page .mm-watermark img { width:100%; height:auto; display:block; }
body.about-page .mm-close { position:absolute; top:16px; right:16px; z-index:3; width:36px; height:36px; border-radius:50%; background:var(--white); border:0; cursor:pointer; display:flex; align-items:center; justify-content:center; color:#2b0a52; box-shadow:0 2px 10px rgba(0,0,0,.18); }
body.about-page .mm-photo { position:absolute; left:34px; top:109px; z-index:2; width:118px; height:118px; border-radius:50%; border:5px solid var(--white); overflow:hidden; background:repeating-linear-gradient(135deg,#efe7f8,#efe7f8 14px,#e7dcf3 14px,#e7dcf3 28px); display:flex; align-items:center; justify-content:center; margin:0; }
body.about-page .mm-photo img { width:100%; height:100%; object-fit:cover; display:block; }
body.about-page .mm-photo span { font-family:var(--serif); font-size:34px; font-weight:700; color:#8a78a8; }
body.about-page .mm-head { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; padding:18px 30px 0 178px; min-height:76px; }
body.about-page .mm-name { font-family:var(--serif); font-size:26px; font-weight:700; color:var(--ink); letter-spacing:0; line-height:1.15; margin-bottom:4px; }
body.about-page .mm-role { font-size:14px; color:#514860; line-height:1.5; }
body.about-page .mm-in { flex:none; width:38px; height:38px; border-radius:8px; display:flex; align-items:center; justify-content:center; background:var(--brand); color:var(--white); transition:background .2s; }
body.about-page .mm-in:hover { background:#1a063b; }
body.about-page .mm-in svg { width:17px; height:17px; fill:currentColor; }
body.about-page .mm-bio { padding:20px 34px 34px; font-size:14.5px; color:#514860; line-height:1.72; }

@media (max-width:1000px) {
  body.about-page .steer-grid { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:900px) {
  body.about-page .intro-split { grid-template-columns:1fr; gap:28px; }
}
@media (max-width:720px) {
  body.about-page .steer-grid { grid-template-columns:1fr 1fr; gap:14px; }
}
@media (max-width:640px) {
  body.about-page .mm-band { height:120px; }
  body.about-page .mm-watermark { width:220px; left:120px; top:20px; }
  body.about-page .mm-photo { left:22px; top:74px; width:92px; height:92px; }
  body.about-page .mm-head { padding:56px 22px 0; }
  body.about-page .mm-bio { padding:16px 22px 26px; }
}
@media (max-width:460px) {
  body.about-page .steer-grid { grid-template-columns:1fr; }
}

/* Final About intro polish */
body.about-page .about-head + .sec { padding-top:42px; }
body.about-page .about-head + .sec .intro-split { grid-template-columns:1.08fr 1.12fr !important; gap:44px !important; }
body.about-page .about-head + .sec .intro-photo { width:100% !important; aspect-ratio:4/3 !important; min-height:410px !important; }
body.about-page .about-head + .sec .intro-photo img { width:100% !important; height:100% !important; object-fit:cover !important; object-position:center !important; }
body.about-page .about-head + .sec .intro-split { grid-template-columns:1fr 1.15fr !important; gap:48px !important; align-items:start !important; }
body.about-page .about-head + .sec .intro-photo { min-height:0 !important; }
body.about-page .about-head + .sec .intro-prose { max-width:none !important; }
body.about-page .about-head + .sec .intro-prose p { font-size:16.5px !important; line-height:1.72 !important; }
body.about-page .intro-stats { display:grid !important; grid-template-columns:repeat(4,1fr) !important; gap:34px !important; margin-top:26px !important; padding-top:24px !important; border-top:1px solid #e7ddf2 !important; }
body.about-page .intro-stat { background:var(--white) !important; border:1px solid #e7ddf2 !important; border-radius:12px !important; padding:22px 20px !important; box-shadow:0 4px 16px rgba(43,10,82,.05) !important; min-width:0; }
body.about-page .intro-stat b { display:block !important; font-size:26px !important; font-weight:700 !important; margin-bottom:8px !important; }
body.about-page .intro-stat span { display:block !important; max-width:110px; line-height:1.45 !important; }

@media (max-width:900px) {
  body.about-page .about-head + .sec .intro-split { grid-template-columns:1fr !important; }
  body.about-page .about-head + .sec .intro-photo { min-height:0 !important; }
}

@media (max-width:640px) {
  body.about-page .intro-stats {
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
    gap:14px !important;
  }
  body.about-page .intro-stat {
    padding:18px 16px !important;
    min-width:0 !important;
  }
  body.about-page .intro-stat b {
    font-size:24px !important;
    overflow-wrap:anywhere;
  }
  body.about-page .intro-stat span {
    max-width:none !important;
    font-size:12.5px !important;
    overflow-wrap:anywhere;
  }
}
