/* Ozmark Japan Widget — scoped styles */
.ozmark-jp-widget{
  --washi:#F6F1E6; --washi-deep:#EFE7D6; --sumi:#1B1916;
  --shu:#BC3A2D; --shu-deep:#9C2E22; --ai:#1E3450; --ai-deep:#142436;
  --kin:#B5903F; --white:#FFFFFF; --line:rgba(27,25,22,0.12);
  --shadow:0 20px 50px -20px rgba(20,36,54,0.35); --ease:cubic-bezier(.22,1,.36,1);
  font-family:'Zen Kaku Gothic New', sans-serif; color:var(--sumi); line-height:1.65;
  background:var(--washi); overflow-x:hidden;
}
.ozmark-jp-widget *,.ozmark-jp-widget *::before,.ozmark-jp-widget *::after{box-sizing:border-box;}
.ozmark-jp-widget img{max-width:100%;display:block;}
.ozmark-jp-widget a{color:inherit;text-decoration:none;}
.ozmark-jp-widget h1,.ozmark-jp-widget h2,.ozmark-jp-widget h3,.ozmark-jp-widget h4{
  font-family:'Shippori Mincho', serif; font-weight:700; line-height:1.18; letter-spacing:.01em; margin:0;
}
.ozmark-jp-widget .ojp-eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--shu);font-weight:700;margin-bottom:14px;}
.ozmark-jp-widget .ojp-eyebrow::before{content:"";width:26px;height:1px;background:var(--shu);display:inline-block;}
.ozmark-jp-widget .ojp-wrap{max-width:1180px;margin:0 auto;padding:0 28px;}
.ozmark-jp-widget .ojp-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 30px;border-radius:6px;font-size:.92rem;font-weight:700;letter-spacing:.04em;border:1px solid transparent;cursor:pointer;transition:transform .45s var(--ease),box-shadow .45s var(--ease),background .3s ease,color .3s ease;white-space:nowrap;}
.ozmark-jp-widget .ojp-btn-primary{background:var(--shu);color:var(--white);}
.ozmark-jp-widget .ojp-btn-primary:hover{transform:translateY(-3px);box-shadow:0 16px 30px -12px rgba(188,58,45,.55);}
.ozmark-jp-widget .ojp-btn-outline{border-color:rgba(255,255,255,.55);color:var(--white);}
.ozmark-jp-widget .ojp-btn-outline:hover{background:rgba(255,255,255,.12);transform:translateY(-3px);}

.ozmark-jp-widget .ojp-reveal{transition:opacity .9s var(--ease),transform .9s var(--ease);}
.ozmark-jp-widget .ojp-reveal.ojp-pending{opacity:0;transform:translateY(34px);}
.ozmark-jp-widget .ojp-reveal.in{opacity:1;transform:translateY(0);}
.ozmark-jp-widget .ojp-reveal-delay-1.in{transition-delay:.1s;}
.ozmark-jp-widget .ojp-reveal-delay-2.in{transition-delay:.2s;}
.ozmark-jp-widget .ojp-reveal-delay-3.in{transition-delay:.3s;}

/* ── Hero Animations ───────────────────────────────────────── */
.ozmark-jp-widget .ojp-hero-anim{
  opacity:0;
  animation-fill-mode:both;
  animation-iteration-count:1;
}
/* Fade In */
@keyframes ojp-fade{from{opacity:0;}to{opacity:1;}}
.ozmark-jp-widget .ojp-anim-fade{animation-name:ojp-fade;}
/* Fade Up */
@keyframes ojp-fadeup{from{opacity:0;transform:translateY(40px);}to{opacity:1;transform:translateY(0);}}
.ozmark-jp-widget .ojp-anim-fadeup{animation-name:ojp-fadeup;}
/* Fade Down */
@keyframes ojp-fadedown{from{opacity:0;transform:translateY(-40px);}to{opacity:1;transform:translateY(0);}}
.ozmark-jp-widget .ojp-anim-fadedown{animation-name:ojp-fadedown;}
/* Fade Left */
@keyframes ojp-fadeleft{from{opacity:0;transform:translateX(-50px);}to{opacity:1;transform:translateX(0);}}
.ozmark-jp-widget .ojp-anim-fadeleft{animation-name:ojp-fadeleft;}
/* Fade Right */
@keyframes ojp-faderight{from{opacity:0;transform:translateX(50px);}to{opacity:1;transform:translateX(0);}}
.ozmark-jp-widget .ojp-anim-faderight{animation-name:ojp-faderight;}
/* Zoom In */
@keyframes ojp-zoomin{from{opacity:0;transform:scale(.7);}to{opacity:1;transform:scale(1);}}
.ozmark-jp-widget .ojp-anim-zoomin{animation-name:ojp-zoomin;}
/* Zoom Out */
@keyframes ojp-zoomout{from{opacity:0;transform:scale(1.25);}to{opacity:1;transform:scale(1);}}
.ozmark-jp-widget .ojp-anim-zoomout{animation-name:ojp-zoomout;}
/* Flip X */
@keyframes ojp-flipx{from{opacity:0;transform:perspective(600px) rotateX(70deg);}to{opacity:1;transform:perspective(600px) rotateX(0);}}
.ozmark-jp-widget .ojp-anim-flipx{animation-name:ojp-flipx;}
/* Flip Y */
@keyframes ojp-flipy{from{opacity:0;transform:perspective(600px) rotateY(70deg);}to{opacity:1;transform:perspective(600px) rotateY(0);}}
.ozmark-jp-widget .ojp-anim-flipy{animation-name:ojp-flipy;}
/* Bounce */
@keyframes ojp-bounce{0%{opacity:0;transform:translateY(-60px);}60%{opacity:1;transform:translateY(14px);}80%{transform:translateY(-8px);}100%{opacity:1;transform:translateY(0);}}
.ozmark-jp-widget .ojp-anim-bounce{animation-name:ojp-bounce;}
/* Typewriter — JS handles this, CSS just hides initially */
.ozmark-jp-widget .ojp-anim-typewriter{animation-name:ojp-fade;overflow:hidden;white-space:nowrap;}

@media(prefers-reduced-motion:reduce){
  .ozmark-jp-widget .ojp-hero-anim{animation:none!important;opacity:1!important;}
}

/* ── sakura petals */
.ozmark-jp-widget .ojp-petals{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden;}
.ozmark-jp-widget .ojp-petal{
  position:absolute;top:-8%;
  border-radius:0% 70% 0% 70%;
  animation-name:ojp-fall;
  animation-timing-function:linear;
  animation-iteration-count:infinite;
}
@keyframes ojp-fall{
  0%{transform:translate(0,0) rotate(0deg);}
  100%{transform:translate(var(--drift,40px),110vh) rotate(360deg);}
}

/* hero */
.ozmark-jp-widget .ojp-hero{min-height:90vh;display:flex;align-items:flex-end;position:relative;overflow:hidden;color:var(--white);}
.ozmark-jp-widget .ojp-hero-bg{position:absolute;inset:0;z-index:1;background-size:cover;background-position:center;animation:ojp-zoom 26s ease-in-out infinite alternate;}
.ozmark-jp-widget .ojp-hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, rgba(18,16,14,.35) 0%, rgba(15,13,12,.55) 55%, rgba(11,10,9,.92) 100%);}
@keyframes ojp-zoom{from{transform:scale(1);}to{transform:scale(1.08);}}

/* hero content — centered by default */
.ozmark-jp-widget .ojp-hero-content{position:relative;z-index:3;padding:90px 0 70px;width:100%;text-align:center;}
.ozmark-jp-widget .ojp-hero-content .ojp-eyebrow{color:#E8C08A;justify-content:center;}
.ozmark-jp-widget .ojp-hero-content .ojp-eyebrow::before{background:#E8C08A;}
.ozmark-jp-widget .ojp-hero-title{font-size:clamp(2.3rem,5.5vw,4.6rem);color:var(--white);max-width:860px;margin:0 auto 20px;text-align:center;}
.ozmark-jp-widget .ojp-hero-title em{font-style:normal;color:#E8C08A;}
.ozmark-jp-widget .ojp-hero-sub{max-width:600px;color:rgba(255,255,255,.86);font-size:1.05rem;margin:0 auto 34px;font-weight:300;text-align:center;}
.ozmark-jp-widget .ojp-hero-actions{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:56px;justify-content:center;}
.ozmark-jp-widget .ojp-hero-stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(255,255,255,.22);padding-top:26px;max-width:880px;margin:0 auto;}
.ozmark-jp-widget .ojp-stat strong{display:block;font-family:'Shippori Mincho',serif;font-size:2rem;color:var(--white);}
.ozmark-jp-widget .ojp-stat span{font-size:.74rem;letter-spacing:.08em;color:rgba(255,255,255,.68);text-transform:uppercase;}

/* bloom divider */
.ozmark-jp-widget .ojp-bloom{display:flex;justify-content:center;align-items:center;padding:46px 0;background:var(--washi);}
.ozmark-jp-widget .ojp-bloom svg{width:74px;height:74px;overflow:visible;}
.ozmark-jp-widget .ojp-bloom-line{fill:none;stroke:var(--shu);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;transition:stroke-dashoffset 1.4s var(--ease);}
.ozmark-jp-widget .ojp-bloom-core{fill:none;stroke:var(--kin);stroke-width:3;stroke-linecap:round;transition:stroke-dashoffset 1.4s var(--ease);}

/* section head */
.ozmark-jp-widget .ojp-section-head{max-width:640px;margin-bottom:50px;}
.ozmark-jp-widget .ojp-section-head h2{font-size:clamp(1.8rem,3.2vw,2.5rem);}
.ozmark-jp-widget .ojp-section-head p{color:rgba(27,25,22,.68);margin-top:14px;font-size:1rem;}
.ozmark-jp-widget .ojp-section-head.ojp-center{margin-left:auto;margin-right:auto;text-align:center;}

/* why */
.ozmark-jp-widget .ojp-why{background:var(--washi);padding:100px 0 90px;}
.ozmark-jp-widget .ojp-why-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:60px;align-items:center;}
.ozmark-jp-widget .ojp-why-image{position:relative;}
.ozmark-jp-widget .ojp-why-image img{width:100%;height:500px;object-fit:cover;border-radius:8px;box-shadow:var(--shadow);}
.ozmark-jp-widget .ojp-why-tag{position:absolute;bottom:-24px;left:-24px;background:var(--ai);color:var(--white);padding:20px 24px;max-width:220px;box-shadow:var(--shadow);}
.ozmark-jp-widget .ojp-why-tag strong{display:block;font-family:'Shippori Mincho',serif;font-size:1.4rem;color:#E8C08A;}
.ozmark-jp-widget .ojp-why-tag span{font-size:.76rem;color:rgba(255,255,255,.8);}
.ozmark-jp-widget .ojp-reason{display:grid;grid-template-columns:46px 1fr;gap:18px;padding:20px 0;border-bottom:1px solid var(--line);}
.ozmark-jp-widget .ojp-reason:first-child{padding-top:0;}
.ozmark-jp-widget .ojp-reason-icon{width:46px;height:46px;border:1.5px solid var(--shu);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--shu);flex-shrink:0;transition:background .4s ease,color .4s ease;}
.ozmark-jp-widget .ojp-reason:hover .ojp-reason-icon{background:var(--shu);color:var(--white);}
.ozmark-jp-widget .ojp-reason h4{font-size:1.05rem;margin-bottom:6px;}
.ozmark-jp-widget .ojp-reason p{font-size:.92rem;color:rgba(27,25,22,.68);}

/* pathways */
.ozmark-jp-widget .ojp-pathways{background:var(--washi-deep);padding:100px 0;}
.ozmark-jp-widget .ojp-path-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-bottom:60px;}
.ozmark-jp-widget .ojp-path-num{width:58px;height:58px;border-radius:50%;background:var(--washi-deep);border:1.5px solid var(--kin);color:var(--ai);display:flex;align-items:center;justify-content:center;font-family:'Shippori Mincho',serif;font-size:1.25rem;margin-bottom:20px;}
.ozmark-jp-widget .ojp-path-step h4{font-size:1.02rem;margin-bottom:8px;}
.ozmark-jp-widget .ojp-path-step p{font-size:.88rem;color:rgba(27,25,22,.66);}
.ozmark-jp-widget .ojp-uni-row{display:flex;flex-wrap:wrap;gap:14px;}
.ozmark-jp-widget .ojp-uni-chip{border:1px solid var(--line);background:var(--white);padding:14px 22px;font-size:.92rem;font-weight:500;border-radius:8px;transition:border-color .35s ease,transform .35s ease,box-shadow .35s ease;}
.ozmark-jp-widget .ojp-uni-chip:hover{border-color:var(--shu);transform:translateY(-4px);box-shadow:0 14px 24px -16px rgba(20,36,54,.4);}

/* process */
.ozmark-jp-widget .ojp-process{background:var(--washi);padding:100px 0;}
.ozmark-jp-widget .ojp-process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.ozmark-jp-widget .ojp-process-card{background:var(--washi);padding:34px 30px;transition:background .4s ease;}
.ozmark-jp-widget .ojp-process-card:hover{background:var(--white);}
.ozmark-jp-widget .ojp-process-card .ojp-pnum{font-family:'Shippori Mincho',serif;font-size:.82rem;color:var(--shu);letter-spacing:.1em;margin-bottom:16px;display:block;}
.ozmark-jp-widget .ojp-process-card h4{font-size:1.08rem;margin-bottom:10px;}
.ozmark-jp-widget .ojp-process-card p{font-size:.9rem;color:rgba(27,25,22,.66);}

/* scholarships */
.ozmark-jp-widget .ojp-scholarships{background:var(--ai);color:var(--white);padding:100px 0;}
.ozmark-jp-widget .ojp-scholarships .ojp-eyebrow{color:#E8C08A;}
.ozmark-jp-widget .ojp-scholarships .ojp-eyebrow::before{background:#E8C08A;}
.ozmark-jp-widget .ojp-scholarships .ojp-section-head h2{color:var(--white);}
.ozmark-jp-widget .ojp-scholarships .ojp-section-head p{color:rgba(255,255,255,.72);}
.ozmark-jp-widget .ojp-schol-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.14);}
.ozmark-jp-widget .ojp-schol-card{background:var(--ai);padding:32px 26px;transition:background .4s ease,transform .4s ease;}
.ozmark-jp-widget .ojp-schol-card:hover{background:var(--ai-deep);transform:translateY(-6px);}
.ozmark-jp-widget .ojp-schol-card .ojp-count{font-family:'Shippori Mincho',serif;font-size:2.1rem;color:#E8C08A;display:block;margin-bottom:10px;}
.ozmark-jp-widget .ojp-schol-card h4{font-size:.96rem;margin-bottom:8px;color:var(--white);}
.ozmark-jp-widget .ojp-schol-card p{font-size:.85rem;color:rgba(255,255,255,.66);}

/* gallery */
.ozmark-jp-widget .ojp-gallery{padding:100px 0 90px;background:var(--washi);}
.ozmark-jp-widget .ojp-gallery-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:18px;height:480px;}
.ozmark-jp-widget .ojp-gallery-item{position:relative;overflow:hidden;border-radius:8px;}
.ozmark-jp-widget .ojp-gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease);}
.ozmark-jp-widget .ojp-gallery-item:hover img{transform:scale(1.08);}
.ozmark-jp-widget .ojp-gallery-caption{position:absolute;left:0;right:0;bottom:0;padding:24px;background:linear-gradient(0deg, rgba(10,9,8,.78), transparent);color:var(--white);}
.ozmark-jp-widget .ojp-gallery-caption strong{font-family:'Shippori Mincho',serif;font-size:1.15rem;display:block;}
.ozmark-jp-widget .ojp-gallery-caption span{font-size:.78rem;color:rgba(255,255,255,.75);}

/* faq */
.ozmark-jp-widget .ojp-faq{background:var(--washi-deep);padding:100px 0;}
.ozmark-jp-widget .ojp-faq-list{max-width:780px;}
.ozmark-jp-widget .ojp-faq-item{border-bottom:1px solid var(--line);}
.ozmark-jp-widget .ojp-faq-q{width:100%;text-align:left;background:none;border:none;cursor:pointer;padding:22px 0;display:flex;justify-content:space-between;align-items:center;gap:20px;font-family:'Shippori Mincho',serif;font-size:1.04rem;color:var(--sumi);}
.ozmark-jp-widget .ojp-faq-q .ojp-plus{width:26px;height:26px;border:1px solid var(--shu);border-radius:50%;flex-shrink:0;position:relative;transition:transform .4s var(--ease);}
.ozmark-jp-widget .ojp-faq-q .ojp-plus::before,.ozmark-jp-widget .ojp-faq-q .ojp-plus::after{content:"";position:absolute;background:var(--shu);top:50%;left:50%;}
.ozmark-jp-widget .ojp-faq-q .ojp-plus::before{width:10px;height:1.5px;transform:translate(-50%,-50%);}
.ozmark-jp-widget .ojp-faq-q .ojp-plus::after{width:1.5px;height:10px;transform:translate(-50%,-50%);transition:opacity .3s ease;}
.ozmark-jp-widget .ojp-faq-item.ojp-open .ojp-faq-q .ojp-plus{transform:rotate(135deg);border-color:var(--shu);background:var(--shu);}
.ozmark-jp-widget .ojp-faq-item.ojp-open .ojp-faq-q .ojp-plus::before,.ozmark-jp-widget .ojp-faq-item.ojp-open .ojp-faq-q .ojp-plus::after{background:var(--white);}
.ozmark-jp-widget .ojp-faq-a{max-height:0;overflow:hidden;transition:max-height .5s var(--ease);}
.ozmark-jp-widget .ojp-faq-a p{padding:0 0 24px;max-width:660px;color:rgba(27,25,22,.68);font-size:.94rem;}

/* final cta */
.ozmark-jp-widget .ojp-final-cta{background:var(--sumi);color:var(--white);padding:90px 0;background-image:radial-gradient(circle at 80% 20%, rgba(188,58,45,.25), transparent 60%);}
.ozmark-jp-widget .ojp-cta-inner{display:grid;grid-template-columns:1.2fr 1fr;gap:50px;align-items:end;}
.ozmark-jp-widget .ojp-cta-inner h2{font-size:clamp(2rem,3.8vw,3rem);color:var(--white);max-width:520px;}
.ozmark-jp-widget .ojp-cta-inner h2 em{color:#E8C08A;font-style:normal;}
.ozmark-jp-widget .ojp-contact-box{border:1px solid rgba(255,255,255,.18);padding:30px;}
.ozmark-jp-widget .ojp-contact-box .ojp-row{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.1);font-size:.9rem;gap:14px;}
.ozmark-jp-widget .ojp-contact-box .ojp-row:last-child{border-bottom:none;}
.ozmark-jp-widget .ojp-contact-box .ojp-row span:first-child{color:rgba(255,255,255,.55);}

@media (max-width:980px){
  .ozmark-jp-widget .ojp-why-grid,.ozmark-jp-widget .ojp-cta-inner,.ozmark-jp-widget .ojp-gallery-grid{grid-template-columns:1fr;}
  .ozmark-jp-widget .ojp-gallery-grid{height:auto;}
  .ozmark-jp-widget .ojp-gallery-item{height:300px;}
  .ozmark-jp-widget .ojp-hero-stats{grid-template-columns:repeat(2,1fr);row-gap:22px;}
  .ozmark-jp-widget .ojp-path-steps{grid-template-columns:repeat(2,1fr);row-gap:30px;}
  .ozmark-jp-widget .ojp-process-grid{grid-template-columns:1fr;}
  .ozmark-jp-widget .ojp-schol-grid{grid-template-columns:repeat(2,1fr);}
  .ozmark-jp-widget .ojp-why-image .ojp-why-tag{position:static;margin-top:16px;max-width:none;}
}
@media (max-width:767px){
  .ozmark-jp-widget .ojp-wrap{padding:0 20px;}
  .ozmark-jp-widget .ojp-hero{min-height:auto;}
  .ozmark-jp-widget .ojp-hero-content{padding:100px 0 56px;}
  .ozmark-jp-widget .ojp-hero-title{font-size:clamp(1.9rem,8vw,2.6rem);margin-bottom:14px;}
  .ozmark-jp-widget .ojp-hero-sub{font-size:.94rem;margin-bottom:28px;}

  /* buttons — centered */
  .ozmark-jp-widget .ojp-hero-actions{
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    gap:12px;margin-bottom:36px;
  }
  .ozmark-jp-widget .ojp-hero-actions .ojp-btn{
    width:auto !important;
    min-width:200px;
    max-width:82vw;
  }

  /* stats grid — centered numbers + labels */
  .ozmark-jp-widget .ojp-hero-stats{
    grid-template-columns:repeat(2,1fr) !important;
    row-gap:24px;column-gap:12px;
    padding-top:20px;
    padding-left:10px;padding-right:10px;
  }
  .ozmark-jp-widget .ojp-stat{
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    text-align:center !important;
    padding:0 !important;
  }
  .ozmark-jp-widget .ojp-stat strong{
    font-size:1.6rem;
    text-align:center !important;
    display:block !important;
    width:100%;
  }
  .ozmark-jp-widget .ojp-stat span{
    text-align:center !important;
    display:block !important;
    width:100%;
  }

  .ozmark-jp-widget .ojp-why,.ozmark-jp-widget .ojp-pathways,.ozmark-jp-widget .ojp-process,
  .ozmark-jp-widget .ojp-scholarships,.ozmark-jp-widget .ojp-gallery,
  .ozmark-jp-widget .ojp-faq,.ozmark-jp-widget .ojp-final-cta{padding-top:60px;padding-bottom:60px;}
  .ozmark-jp-widget .ojp-why-image img{height:300px;}
  .ozmark-jp-widget .ojp-schol-grid{grid-template-columns:1fr;}
  .ozmark-jp-widget .ojp-path-steps{grid-template-columns:1fr;row-gap:24px;}
  .ozmark-jp-widget .ojp-cta-inner .ojp-hero-actions{margin-bottom:0;}
}
@media (max-width:480px){
  .ozmark-jp-widget .ojp-hero-stats{grid-template-columns:repeat(2,1fr);}
  .ozmark-jp-widget .ojp-schol-grid{grid-template-columns:1fr;}
  .ozmark-jp-widget .ojp-process-grid{grid-template-columns:1fr;}
}
@media (prefers-reduced-motion: reduce){
  .ozmark-jp-widget *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.2s !important;}
  .ozmark-jp-widget .ojp-hero-bg{animation:none;}
}
