/* ===== BIBI MAKE. — design system ===== */
:root{
  --pink:#ef6f93;
  --pink-deep:#e85a83;
  --pink-soft:#f9d7e0;
  --pink-bg:#fdeef2;
  --pink-bg2:#fcf4f6;
  --ink:#473a34;          /* warm brown headings */
  --ink2:#5b4a43;
  --body:#564c47;
  --blue:#6f8fcf;
  --blue-soft:#9aa9e6;
  --line:#efe2e4;
  --white:#fffdfd;
  --grad-pink:linear-gradient(120deg,#f48fae 0%,#f4a8bd 100%);
  --grad-blue:linear-gradient(120deg,#8d9be6 0%,#aab2ec 100%);
  --grad-purple:linear-gradient(95deg,#9b7fd4 0%,#d36fa3 60%,#ef6f93 100%);
  --shadow-sm:0 4px 18px rgba(190,120,140,.10);
  --shadow:0 10px 40px rgba(190,120,140,.16);
  --maxw:1180px;
  --serif:"Yu Mincho Demibold","YuMincho Demibold","Yu Mincho",YuMincho,"游明朝",YuMincho,"Noto Serif JP","Hiragino Mincho ProN","Hiragino Mincho Pro",serif;
  --gothic:"Noto Sans JP",sans-serif;
  --round:"Quicksand","Noto Sans JP",sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{
  font-family:var(--gothic);
  color:var(--body);
  background:var(--white);
  line-height:1.9;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  font-size:16px;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}

/* section heading (english, rounded brown) */
.en-head{
  font-family:var(--round);
  font-weight:700;
  color:var(--ink);
  font-size:clamp(38px,5.5vw,68px);
  letter-spacing:.01em;
  text-align:center;
  line-height:1.1;
}
.en-head-img{display:block;width:auto;height:clamp(32px,4.6vw,56px);margin:0 auto}
/* per-section normalization (descenders make the bounding box taller) */
.strengths .en-head-img{height:clamp(40px,5.8vw,70px)}
.supervisor .en-head-img{height:clamp(40px,5.8vw,70px)}
.faq .en-head-img{height:clamp(34px,4.9vw,59px)}
.en-sub{
  text-align:center;
  font-weight:700;
  font-size:14px;
  letter-spacing:.16em;
  color:var(--ink2);
  margin-top:10px;
}
.serif{font-family:var(--serif)}
.pink{color:var(--pink)}
.blue{color:var(--blue)}

/* lead line under heading, mincho */
.lead{
  font-family:var(--serif);
  text-align:center;
  font-size:clamp(22px,3vw,34px);
  font-weight:700;
  color:var(--ink);
  line-height:1.6;
  margin-top:26px;
}

.section{position:relative;padding:clamp(70px,9vw,130px) 24px}
.wrap{max-width:var(--maxw);margin:0 auto;position:relative;z-index:2}

/* buttons */
.btn{
  display:inline-flex;align-items:center;justify-content:space-between;gap:24px;
  font-family:var(--gothic);font-weight:700;cursor:pointer;border:none;
  transition:transform .25s ease,box-shadow .25s ease,background .25s ease;
}
.btn-fill{
  background:var(--pink);color:#fff;border-radius:999px;
  padding:20px 34px;font-size:17px;box-shadow:0 12px 26px rgba(232,90,131,.32);
}
.btn-fill:hover{transform:translateY(-3px);box-shadow:0 18px 34px rgba(232,90,131,.40)}
.btn-fill .arw{font-size:18px}
.btn-outline{
  background:#fff;color:var(--pink);border:1.5px solid var(--pink);
  border-radius:999px;padding:16px 34px;font-size:15px;
}
.btn-outline:hover{background:var(--pink);color:#fff;transform:translateY(-2px)}
.arrow-circle{
  width:46px;height:46px;border-radius:50%;background:var(--pink);color:#fff;
  display:grid;place-items:center;font-size:18px;flex:none;
}

/* decorative shapes */
.tri{position:absolute;width:0;height:0;border-style:solid;opacity:.5;z-index:1}
.tri.up{border-width:0 30px 52px 30px;border-color:transparent transparent var(--pink-soft) transparent}
.blob{position:absolute;border-radius:50%;filter:blur(2px);z-index:1;opacity:.5}
.spark{position:absolute;color:#fff;font-weight:300;z-index:1;opacity:.9;
  text-shadow:0 0 14px rgba(255,255,255,.9)}

/* reveal animation */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .9s ease,transform .9s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}
