@font-face {
  font-family: 'Tsukuhou35Gothic';
  src: url('Tsukuhou-35Point-Gothic/Tsukuhou-35Point-Gothic.ttf') format('truetype');
  font-display: swap;
}

body, h1, h2, h3, h4, h5, h6, .business-btn, .nav-link, .company-table, .contact-btn, input, textarea, button {
  font-family: 'Tsukuhou35Gothic', 'Montserrat', 'Noto Sans JP', sans-serif !important;
}

body {
  margin: 0;
  font-family: 'Montserrat', 'Noto Sans JP', sans-serif;
  background: #fafbfc;
  color: #222;
}
.header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #fff;
  padding: 24px 48px 24px 32px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.03);
  position: relative;
}
.logo-link {
  text-decoration: none;
  display: block;
  transition: transform 0.2s ease;
}
.logo-link:hover {
  transform: scale(1.05);
}
.logo {
  height: 112px;
  width: auto;
}
.hamburger {
  display: none;
  flex-direction: column;
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px;
  z-index: 1000;
}
.hamburger__line {
  width: 25px;
  height: 3px;
  background: #222;
  margin: 3px 0;
  transition: 0.3s;
}
.nav {
  display: flex;
  gap: 32px;
}
.nav-link {
  color: #222;
  text-decoration: none;
  font-weight: 700;
  font-size: 1.1rem;
  transition: color 0.2s;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.nav-link:hover {
  color: #2d6cdf;
}
/* Hero Section base */
.hero {
  position: relative;
  height: 300vh; /* スクロール領域を大きく（固定時間延長） */
}
.hero-sticky {
  position: sticky;
  top: 0;
  height: 100vh; /* 常に画面高さ */
  overflow: hidden;
}
.bg-video {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  transform: scale(1.2); /* 1.2倍拡大 */
  z-index: 0;
}
.hero-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0);
  transition: background-color 0.2s linear;
  z-index: 1;
}
.hero-center-logo {
  position: absolute;
  left: 50%; top: 50%;
  transform: translate(-50%, -50%);
  width: min(40vw, 360px);
  z-index: 2;
}
.hero-texts {
  position: absolute;
  left: 50%; top: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  width: min(86vw, 980px);
  color: #fff;
  z-index: 3;
  opacity: 0; /* 初期非表示 */
}
.hero-title {
  font-size: clamp(1.6rem, 4vw, 3rem);
  margin-bottom: 16px;
}
.hero-desc {
  font-size: clamp(0.95rem, 1.6vw, 1.15rem);
  line-height: 1.9;
  color: #f2f4f8;
}
@media (max-width: 768px) {
  .hero-desc { line-height: 1.8; }
  .hero-center-logo { width: min(56vw, 300px); }
}
.catchcopy {
  position: relative;
  z-index: 1;
  font-family: 'Tsukuhou35Gothic', 'Montserrat', 'Noto Sans JP', sans-serif;
  font-size: clamp(3rem, 8vw, 6rem);
  font-weight: 700;
  letter-spacing: 0.05em;
  margin: 0 0 16px 0;
  text-align: center;
  line-height: 1.1;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}
.catchcopy .moya {
  background: linear-gradient(90deg, #0047FF 0%, #00FF57 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  color: #0047FF;
  text-shadow: 0 2px 8px #0047FF99, 0 0 2px #fff;
  opacity: 0;
  transform: scale(0.8);
  animation: fadeInMoya 1.2s cubic-bezier(.6,-0.28,.74,.05) 0.2s forwards;
}
.catchcopy .waku {
  background: linear-gradient(90deg, #FF6B00 0%, #FF008A 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  color: #FF008A;
  text-shadow: 0 2px 8px #FF008A99, 0 0 2px #fff;
  opacity: 0;
  transform: scale(0.8);
  animation: fadeInWaku 1.2s cubic-bezier(.6,-0.28,.74,.05) 0.8s forwards;
}
@keyframes fadeInMoya {
  0% { opacity: 0; transform: scale(0.8); }
  100% { opacity: 1; transform: scale(1); }
}
@keyframes fadeInWaku {
  0% { opacity: 0; transform: scale(0.8); }
  100% { opacity: 1; transform: scale(1); }
}
.catchcopy .highlight {
  filter: drop-shadow(0 0 16px #ffb34788) drop-shadow(0 0 32px #2d6cdf44);
  animation: highlightPop 1.2s cubic-bezier(.6,-0.28,.74,.05) 1.2s both;
}
@keyframes highlightPop {
  0% { filter: none; }
  60% { filter: drop-shadow(0 0 32px #ffb347cc); }
  100% { filter: drop-shadow(0 0 16px #ffb34788) drop-shadow(0 0 32px #2d6cdf44); }
}
.subcopy {
  display: none;
}
.business {
  padding: 64px 0 32px 0;
  background: #fff;
  text-align: center;
}
.business h2 {
  font-size: 2rem;
  margin-bottom: 32px;
  color: #2d6cdf;
}
.business-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 32px;
}
.business-btn {
  display: block;
  min-width: 260px;
  padding: 32px 24px;
  background: linear-gradient(135deg, #2d6cdf 60%, #ffb347 100%);
  color: #fff;
  font-size: 1.2rem;
  font-weight: 700;
  border-radius: 24px;
  box-shadow: 0 4px 24px rgba(45,108,223,0.08);
  text-decoration: none;
  transition: transform 0.18s, box-shadow 0.18s, background 0.3s;
  position: relative;
  overflow: hidden;
}
.business-btn:nth-child(2) {
  background: linear-gradient(135deg, #ffb347 60%, #2d6cdf 100%);
}
.business-btn:nth-child(3) {
  background: linear-gradient(135deg, #43e97b 60%, #38f9d7 100%);
}
.business-btn:nth-child(4) {
  background: linear-gradient(135deg, #fa709a 60%, #fee140 100%);
}
.business-btn:hover {
  transform: translateY(-6px) scale(1.03);
  box-shadow: 0 8px 32px rgba(45,108,223,0.16);
  filter: brightness(1.08);
}
.about {
  padding: 64px 0 32px 0;
  background: #fafbfc;
  text-align: center;
}
.about h2 {
  font-size: 2rem;
  margin-bottom: 32px;
  color: #2d6cdf;
}
.company-table {
  margin: 0 auto;
  border-collapse: separate;
  border-spacing: 0 12px;
  font-size: 1.1rem;
  color: #333;
}
.company-table th {
  text-align: right;
  padding-right: 16px;
  font-weight: 700;
  color: #2d6cdf;
}
.company-table td {
  text-align: left;
  padding-left: 8px;
}
.contact {
  padding: 48px 0 64px 0;
  text-align: center;
}
.contact-btn {
  display: inline-block;
  background: linear-gradient(90deg, #2d6cdf 60%, #ffb347 100%);
  color: #fff;
  font-size: 1.2rem;
  font-weight: 700;
  padding: 18px 48px;
  border-radius: 32px;
  text-decoration: none;
  box-shadow: 0 4px 24px rgba(45,108,223,0.10);
  transition: background 0.3s, transform 0.18s;
}
.contact-btn:hover {
  background: linear-gradient(90deg, #ffb347 60%, #2d6cdf 100%);
  transform: translateY(-4px) scale(1.04);
}
.footer {
  background: #fff;
  text-align: center;
  padding: 24px 0;
  color: #888;
  font-size: 0.95rem;
  border-top: 1px solid #eee;
}
@media (max-width: 900px) {
  .business-list {
    flex-direction: column;
    gap: 24px;
  }
  .header {
    flex-direction: column;
    gap: 16px;
    padding: 20px 12px 20px 12px;
  }
  .hamburger {
    display: flex;
    position: absolute;
    top: 20px;
    right: 20px;
  }
  .nav {
    position: fixed;
    top: 0;
    right: -100%;
    width: 100%;
    height: 100vh;
    background: rgba(255, 255, 255, 0.98);
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 40px;
    transition: right 0.4s ease-in-out;
    z-index: 999;
  }
  .nav.active {
    right: 0;
  }
  .nav-link {
    font-size: 1.5rem;
    font-weight: 900;
    color: #222;
    opacity: 0;
    transform: translateX(50px);
    transition: all 0.3s ease-in-out;
  }
  .nav.active .nav-link {
    opacity: 1;
    transform: translateX(0);
  }
  .nav.active .nav-link:nth-child(1) { transition-delay: 0.1s; }
  .nav.active .nav-link:nth-child(2) { transition-delay: 0.2s; }
  .nav.active .nav-link:nth-child(3) { transition-delay: 0.3s; }
  .nav.active .nav-link:nth-child(4) { transition-delay: 0.4s; }
  /* Hamburger animation */
  .hamburger.active .hamburger__line:nth-child(1) {
    transform: rotate(-45deg) translate(-5px, 6px);
  }
  .hamburger.active .hamburger__line:nth-child(2) {
    opacity: 0;
  }
  .hamburger.active .hamburger__line:nth-child(3) {
    transform: rotate(45deg) translate(-5px, -6px);
  }
}

#loading-screen {
  position: fixed;
  z-index: 9999;
  top: 0; left: 0; width: 100vw; height: 100vh;
  background: linear-gradient(135deg, #2d6cdf 0%, #43e97b 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  transition: opacity 0.8s;
}
.loading-texts {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.loading-moya, .loading-waku {
  font-family: 'Sawarabi Gothic', 'Tsukuhou35Gothic', sans-serif;
  color: #fff;
  font-weight: bold;
  font-size: clamp(2.5rem, 8vw, 6rem);
  opacity: 0;
  transform: scale(1.0);
  text-shadow: 0 4px 24px #0008;
  letter-spacing: 0.05em;
  margin: 0.2em 0;
}
.loading-moya {
  animation: loadingFadeIn 1.5s cubic-bezier(.4,0,.2,1) 0.1s forwards;
}
.loading-waku {
  animation: loadingFadeIn 1.5s cubic-bezier(.4,0,.2,1) 1.8s forwards;
}
@keyframes loadingFadeIn {
  0% { opacity: 0; transform: scale(1.0); }
  60% { opacity: 1; transform: scale(1.3); }
  100% { opacity: 1; transform: scale(1.0); }
}
#loading-screen.fade-out {
  opacity: 0;
  pointer-events: none;
}

/* Ecosystem circle layout */
.ecosystem {
  margin: 24px auto 16px;
  padding: 0 16px;
  max-width: 1000px;
}
.ecosystem__stage {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1; /* 正方形キャンバス */
  max-width: 720px;
  margin: 0 auto;
}
.eco-svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.eco-nodes { position: absolute; inset: 0; }
.eco-node {
  position: absolute;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  color: #fff;
  font-weight: 700;
  padding: 14px 18px;
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(0,0,0,.18);
  backdrop-filter: blur(4px);
  transform: translate(-50%, -50%);
}
.eco-node--top    { left: 50%; top: 4%;  background: linear-gradient(135deg,#2d6cdf,#5b86e5); }
.eco-node--right  { left: 96%; top: 50%; background: linear-gradient(135deg,#ffb347,#ff8a00); color:#1a1a1a; }
.eco-node--bottom { left: 50%; top: 96%; background: linear-gradient(135deg,#43e97b,#2ccf6d); color:#053b1d; }
.eco-node--left   { left: 4%;  top: 50%; background: linear-gradient(135deg,#fa709a,#ff3d7f); }

.eco-caption {
  text-align: center;
  color: #556;
  margin: 12px 0 24px;
}

/* 矢印の流動表現 */
.eco-flow { stroke-dasharray: 14 18; animation: ecoFlow 3s linear infinite; }
@keyframes ecoFlow {
  from { stroke-dashoffset: 0; }
  to   { stroke-dashoffset: 200; }
}

/* モバイルでは円形図を隠し、従来のボタンを優先 */
@media (max-width: 780px) {
  .ecosystem { display: none; }
}

/* SERVICE section */
.service { background:#fff; padding: 72px 0; }
.service-header { text-align:center; margin-bottom: 32px; }
.service-eyebrow { letter-spacing: 0.3em; color:#2d6cdf; font-weight: 800; margin-bottom: 8px; }
.service-title { font-size: clamp(1.6rem, 3.2vw, 2.4rem); margin: 0; }

.service-grid {
  width: min(1100px, 92%);
  margin: 24px auto 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 24px;
}
@media (max-width: 860px){ .service-grid { grid-template-columns: 1fr; } }

/* SERVICE cards tune */
.service-item { min-height: 240px; }
.service-cta--one  { background: linear-gradient(90deg,#2d6cdf,#4bb2ff); }
.service-cta--two  { background: linear-gradient(90deg,#ff8a00,#ffb347); color:#1a1a1a; }
.service-cta--three{ background: linear-gradient(90deg,#27c96a,#43e97b); }
.service-cta--four { background: linear-gradient(90deg,#fa709a,#ff3d7f); }

.service-item {
  background: #f9fbff;
  border: 1px solid #e6eefc;
  border-radius: 16px;
  padding: 24px 24px 20px;
  display: grid; grid-template-columns: 80px 1fr; grid-template-rows: auto auto 1fr auto; gap: 10px 16px;
  box-shadow: 0 8px 24px rgba(45,108,223,0.06);
  transform: translateY(50px);
  opacity: 0;
}
.service-item.in-view { animation: serviceAppear .8s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; }

@keyframes serviceAppear {
  to { transform: translateY(0); opacity: 1; }
}

.service-num {
  grid-column: 1; grid-row: 1 / span 2;
  align-self: start; justify-self: center;
  font-size: 2rem; font-weight: 900; color:#2d6cdf;
}
.service-illu { grid-column: 1; grid-row: 3; align-self: start; justify-self: center; }
.service-name { grid-column: 2; grid-row: 1; margin: 0; font-size: 1.3rem; }
.service-desc { grid-column: 2; grid-row: 2 / span 2; margin: 6px 0 0 0; color:#3a4759; line-height: 1.8; }
.service-cta {
  grid-column: 2; grid-row: 4; justify-self: start; margin-top: 12px;
  display: inline-block; padding: 10px 18px; border-radius: 24px;
  background: linear-gradient(90deg,#2d6cdf,#ffb347); color:#fff; text-decoration:none; font-weight: 800;
  box-shadow: 0 6px 16px rgba(45,108,223,0.2);
}
.service-cta:hover { filter: brightness(1.05); transform: translateY(-2px); }

/* SERVICE vertical full-width cards (revised) */
.service-vertical { width: min(1100px, 92%); margin: 8px auto 0; display: flex; flex-direction: column; gap: 20px; }
.service-vcard {
  position: relative;
  min-height: clamp(420px, 68vh, 620px);
  border-radius: 20px;
  overflow: hidden;
  background-color: #111;
  background-size: cover; background-position: center; background-repeat: no-repeat;
  transform: translateY(50px);
  opacity: 0;
}
.service-vcard.in-view { animation: serviceAppear .8s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; }

/* 背景オーバーレイをやや明るく（下を濃く） */
.service-voverlay{
  position:absolute; inset:0; z-index:1;
  background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.35) 45%, rgba(0,0,0,0.48) 100%);
  pointer-events: none;
}
/* 下部に情報を寄せる */
.service-vinner{
  position: absolute; left:0; right:0; bottom:0; z-index:2; color:#fff;
  padding: clamp(20px, 4vw, 40px);
  display: grid; grid-template-columns: 110px 1fr; grid-template-rows: auto auto auto; gap: 8px 16px;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.35) 40%, rgba(0,0,0,0.55) 100%);
}
.service-vnum{ grid-column:1; grid-row:1 / span 2; font-size: clamp(2.4rem, 7vw, 4.2rem); font-weight:900; opacity: .95; align-self:end; }
.service-vname{ grid-column:2; grid-row:1; margin:0; font-size: clamp(1.6rem, 3.2vw, 2.4rem); }
.service-vdesc{ grid-column:2; grid-row:2; margin: 6px 0 0; line-height:1.9; color:#f1f3f6; }
.service-vcta{ grid-column:2; grid-row:3; justify-self:start; margin-top: 10px; display:inline-block; padding:12px 22px; border-radius:26px; color:#fff; text-decoration:none; font-weight:800; box-shadow:0 10px 26px rgba(0,0,0,.25); }

/* CTA colors */
.cta-one{ background: linear-gradient(90deg,#2d6cdf,#4bb2ff); }
.cta-two{ background: linear-gradient(90deg,#ff8a00,#ffb347); color:#1a1a1a; }
.cta-three{ background: linear-gradient(90deg,#27c96a,#43e97b); }
.cta-four{ background: linear-gradient(90deg,#fa709a,#ff3d7f); }

@media (max-width: 720px){
  .service-vinner{ grid-template-columns: 1fr; grid-template-rows: auto auto auto; }
  .service-vnum{ grid-column:1; grid-row:1; align-self:auto; }
  .service-vname{ grid-column:1; grid-row:2; }
  .service-vdesc{ grid-column:1; grid-row:3; }
  .service-vcta{ grid-column:1; grid-row:4; }
}

/* Corporate footer band */
.corp-footer { background:#0e1a2b; color:#fff; padding: 48px 0; min-height: 360px; display: flex; align-items: stretch; }
.corp-footer__inner { width: min(1200px, 94%); margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 24px; align-items: stretch; }
.footer-logo { width: min(364px, 56vw); height: auto; display:block; filter: drop-shadow(0 6px 16px rgba(0,0,0,.35)); }
.corp-tagline { margin-top: 12px; color:#c7d3ea; font-size: clamp(1.1rem, 3.6vw, 2.2rem); line-height: 1.2; font-weight: 900; white-space: nowrap; }

.corp-footer__links { display: flex; flex-direction: column; gap: 12px; justify-content: space-evenly; height: 100%; align-items: center; text-align: center; margin: 0 auto; }
.corp-link { color:#fff; text-decoration:none; font-weight:800; letter-spacing: .05em; }
.corp-link:hover { opacity:.9; text-decoration: underline; }

.corp-footer__contact { display: flex; flex-direction: column; gap: 12px; }
.corp-cta { align-self: flex-start; display:inline-block; padding: 12px 20px; border-radius: 26px; background: linear-gradient(90deg,#2d6cdf,#4bb2ff); color:#fff; text-decoration:none; font-weight:800; box-shadow:0 8px 20px rgba(45,108,223,.3); }
.corp-contact-block { margin-top: 4px; }
.corp-contact-title { font-weight:900; color:#dfe8f7; margin-bottom: 2px; }
.corp-contact-text { color:#c7d3ea; line-height: 1.8; }

@media (max-width: 980px){ .corp-footer__inner { grid-template-columns: 1fr 1fr; } }
@media (max-width: 680px){ .corp-footer__inner { grid-template-columns: 1fr; } .corp-footer { padding: 36px 0; } }

/* business2: Gakuchika creation */
.b2-main{ background:#f7f9fc; }
.b2-container{ width:min(1100px,92%); margin:0 auto; }
.b2-hero{ background: linear-gradient(135deg,#2d6cdf 0%, #4bb2ff 50%, #a8c0ff 100%); color:#fff; padding: clamp(48px,8vw,96px) 0; text-align:center; }
.b2-hero__title{ margin:0; font-size: clamp(1.8rem, 4.5vw, 3rem); font-weight: 900; letter-spacing:.02em; }

.b2-problems{ background:#fff; padding: 40px 0; }
.b2-section__title{ margin:0 0 16px 0; color:#0e1a2b; font-size: clamp(1.4rem, 3.2vw, 2rem); text-align:center; }
.b2-problems__list{ list-style:none; padding:0; margin: 16px auto 0; display:grid; grid-template-columns: 1fr 1fr; gap: clamp(14px, 2.4vw, 22px); max-width: 980px; }
.b2-problems__list li{
  position: relative;
  padding: clamp(16px, 2.8vw, 24px) clamp(18px, 3.2vw, 28px);
  border-radius: 28px;
  font-weight: 800;
  font-size: clamp(1.05rem, 2.2vw, 1.6rem);
  line-height: 1.6;
  box-shadow: 0 12px 28px rgba(0,0,0,.08);
}
.b2-problems__list li::after{
  content: "";
  position: absolute;
  left: clamp(32px, 6vw, 64px);
  bottom: -12px;
  width: 20px; height: 20px;
  background: inherit;
  transform: rotate(45deg);
  border-bottom-left-radius: 6px;
  filter: drop-shadow(0 6px 12px rgba(0,0,0,.08));
}
/* colorful bubbles */
.b2-problems__list li:nth-child(1){ background: linear-gradient(135deg, #60d394, #38c172); color:#0e3022; }
.b2-problems__list li:nth-child(2){ background: linear-gradient(135deg, #ffe082, #ffca28); color:#1a1a1a; }
.b2-problems__list li:nth-child(3){ background: linear-gradient(135deg, #f8a7c4, #f06292); color:#4a1022; }
.b2-problems__list li:nth-child(4){ background: linear-gradient(135deg, #8fb8ff, #4bb2ff); color:#08233d; }
@media (max-width: 680px){ .b2-problems__list{ grid-template-columns: 1fr; } }

.b2-pop{ padding: 24px 0 8px; }
.b2-pop__card{ background: linear-gradient(90deg,#ff8a00,#ffb347); color:#1a1a1a; border-radius: 18px; padding: clamp(18px,3.8vw,28px); text-align:center; box-shadow: 0 10px 26px rgba(0,0,0,.15); }
.b2-pop__title{ margin:0; font-size: clamp(1.6rem, 4.2vw, 2.6rem); font-weight: 900; letter-spacing:.02em; }

.b2-desc{ background:#fff; padding: 36px 0 64px; position: relative; }
.b2-desc p{ max-width: 920px; margin: 0 auto 16px; color:#2b3a55; line-height: 1.9; font-size: clamp(1rem, 1.6vw, 1.15rem); }

/* Curve headline */
.b2-curve{ position: relative; margin: clamp(8px, 3vw, 16px) auto clamp(16px, 4vw, 24px); }
.b2-curve__svg{ width: 100%; height: auto; display:block; filter: drop-shadow(0 3px 16px rgba(0,0,0,.08)); }
.b2-deco{ position:absolute; width: clamp(120px, 18vw, 240px); height: auto; pointer-events:none; user-select:none; transform-origin: center; animation: b2-float 7s ease-in-out infinite; will-change: transform; }
.b2-deco--worry-left{ left: -5%; top: 22%; transform: scale(1.3) rotate(-10deg); animation-duration: 6.6s; animation-delay: .1s; z-index: 2; }
.b2-deco--worry-right{ right: -5%; top: 12%; transform: scale(1.3) rotate(12deg); animation-duration: 7.2s; animation-delay: .3s; z-index: 2; }
/* remove clip animation usage; ensure visibility */
.b2-clip-rect{ width: 1200px; height: 400px; }
.b2-text{ font-family: 'Tsukuhou35Gothic', 'Montserrat', 'Noto Sans JP', sans-serif; font-weight: 900; font-size: clamp(2.2rem, 6.2vw, 4.2rem); }
.b2-text--top{ fill: #113a83; paint-order: stroke; stroke: rgba(255,255,255,.95); stroke-width: 7px; }
.b2-text--bottom{ fill: #2a2a2a; paint-order: stroke; stroke: rgba(255,255,255,.97); stroke-width: 7px; }

/* Mobile tuning: make the curve copy fill the white area on small screens */
@media (max-width: 480px){
  .b2-hero{ padding-bottom: 28px; }
  .b2-curve{ margin-top: 4px; margin-bottom: 12px; }
  .b2-curve__svg{ height: 320px; }
  .b2-text{ font-size: clamp(4.6rem, 18.5vw, 6.4rem); }
  .b2-desk{ display:none; }
  .b2-mob{ display:contents; }
  /* push side decos further to the edges on mobile */
  .b2-deco--worry-left{ left: -10%; top: 24%; }
  .b2-deco--worry-right{ right: -10%; top: 10%; }
}

@media (min-width: 481px){ .b2-mob{ display:none; } }

/* clip animation */
.b2-clip-rect{ transition: width 1s cubic-bezier(.25,.8,.25,1); }
.b2-curve.in-view .b2-clip-rect--top{ width: 1200px; }
.b2-curve.in-view .b2-clip-rect--bottom{ width: 1200px; transition-delay: .15s; }

/* screen reader only duplicate title */
.b2-only-sr{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* business2: carousel */
.b2-carousel{ position: relative; max-width: 1100px; margin: 0 auto 24px; overflow: hidden; border-radius: 28px; }
.b2-carousel__track{ display: flex; transition: transform .6s cubic-bezier(.25,.8,.25,1); will-change: transform; }
.b2-carousel__slide{ min-width: 100%; position: relative; }
.b2-carousel__img{ width: 100%; height: clamp(240px, 40vw, 420px); object-fit: cover; object-position: center 20%; display:block; filter: drop-shadow(0 20px 50px rgba(0,0,0,.12)); }
.b2-carousel__btn{ position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; background: rgba(0,0,0,.4); color:#fff; border: none; width: 40px; height: 40px; border-radius: 50%; cursor: pointer; display: grid; place-items: center; backdrop-filter: blur(2px); }
.b2-carousel__btn--prev{ left: 10px; }
.b2-carousel__btn--next{ right: 10px; }
.b2-carousel__btn:hover{ background: rgba(0,0,0,.55); }
.b2-carousel__dots{ position:absolute; left:0; right:0; bottom: 10px; display:flex; justify-content:center; gap:8px; z-index: 2; }
.b2-carousel__dot{ width: 8px; height: 8px; border-radius: 50%; background: rgba(255,255,255,.6); cursor: pointer; }
.b2-carousel__dot.is-active{ background: #fff; box-shadow: 0 0 0 2px rgba(0,0,0,.2); }
.b2-deco--solve-left{ position:absolute; left: max(-2%, -20px); bottom: 8px; width: clamp(120px, 16vw, 220px); transform: scale(1.3) rotate(-6deg); opacity:.95; animation-duration: 7.6s; animation-delay: .2s; }
.b2-deco--solve-right{ position:absolute; right: max(-2%, -20px); bottom: 0; width: clamp(120px, 16vw, 220px); transform: scale(1.3) rotate(8deg); opacity:.95; animation-duration: 6.9s; animation-delay: .35s; }

@keyframes b2-float{
  0% { transform: var(--t, translate(0,0)) scale(1.3) translateY(0); }
  25%{ transform: var(--t, translate(0,0)) scale(1.3) translateY(-6px) rotate(-0.5deg); }
  50%{ transform: var(--t, translate(0,0)) scale(1.3) translateY(0) rotate(0.5deg); }
  75%{ transform: var(--t, translate(0,0)) scale(1.3) translateY(6px) rotate(-0.5deg); }
  100%{ transform: var(--t, translate(0,0)) scale(1.3) translateY(0); }
}

/* business4: EHS page */
.b4-main{ background:#f9fbff; }
.b4-container{ width:min(1100px,92%); margin:0 auto; }
/* hero */
.b4-hero{ background: linear-gradient(135deg,#c62828 0%, #e53935 45%, #ef5350 100%); color:#fff; padding: clamp(20px,5vw,52px) 0; text-align:left; }
.b4-hero__lead{ margin: 0 0 2px 0; font-weight:900; font-size: clamp(1.7rem, 3.6vw, 2.5rem); letter-spacing:.02em; }
.b4-hero__sub{ margin-top: 6px; font-weight:900; font-size: clamp(2rem, 4.2vw, 3.1rem); }
/* catch */
.b4-catch{ background:#fff; padding: 36px 0; text-align:center; }
.b4-catch__title{ margin:0 0 10px 0; font-size: clamp(1.6rem, 3.2vw, 2.2rem); }
.b4-catch__desc{ margin:0 auto 16px; max-width: 900px; color:#2b3a55; line-height: 1.9; font-size: clamp(1rem, 1.6vw, 1.15rem); }
.b4-shot{ display:flex; justify-content:center; margin: 14px 0 0; }
.b4-shot__img{ width: clamp(320px, 70vw, 980px); height: clamp(200px, 36vw, 520px); object-fit: cover; border-radius: 28px; border: 6px solid rgba(255,255,255,.9); box-shadow: 0 20px 50px rgba(0,0,0,.14), inset 0 0 0 100vmax rgba(0,0,0,.08); }
/* message */
.b4-msg{ background:#fff; padding: 24px 0; }
.b4-msg p{ max-width: 920px; margin: 0 auto; color:#2b3a55; line-height: 1.9; font-size: clamp(1rem, 1.6vw, 1.15rem); }
/* features */
.b4-feat{ background:#fff; padding: 48px 0 64px; position: relative; }
.b4-sec__head{ position: relative; text-align:center; margin-bottom: 18px; }
.b4-sec__ghost{ position:absolute; left:50%; top:50%; transform: translate(-50%, -58%); font-weight: 900; letter-spacing: 0.18em; font-size: clamp(2.8rem, 14vw, 10rem); color: rgba(229,57,53,.12); pointer-events:none; user-select:none; white-space:nowrap; }
.b4-sec__eyebrow{ position: relative; text-align:center; color:#ef5350; font-weight:900; letter-spacing:.18em; margin:0; font-size: clamp(1rem, 1.6vw, 1.15rem); }
.b4-sec__title{ position: relative; text-align:center; margin: 8px 0 4px 0; font-size: clamp(1.8rem, 3.6vw, 2.6rem); letter-spacing: .06em; }
.b4-feat__grid{ display:grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.b4-card{ position:relative; overflow:hidden; background:#fff; border: 1px solid #dbeafe; border-radius: 16px; padding: 16px; box-shadow: 0 10px 28px rgba(33,150,243,.12); padding-bottom: clamp(44px, 9vw, 96px); }
.b4-card__num{ font-weight:900; color:#e53935; }
.b4-card__title{ margin: 6px 0; font-size: clamp(1.05rem, 1.8vw, 1.24rem); }
.b4-card__desc{ margin:0; color:#3a4759; line-height: 1.8; }
/* illustrations inside card */
.b4-card__illu{ position:absolute; right: 6px; bottom: 6px; width: clamp(80px, 14vw, 140px); height: auto; opacity: .95; pointer-events:none; }
/* color system: base and variations */
:root{ --b4-base:#e53935; --b4-bright:#ef5350; --b4-deep:#b71c1c; }
.b4-card--tone1{ background: linear-gradient(180deg, var(--b4-bright) 0%, rgba(255,255,255,1) 45%); border-color: color-mix(in srgb, var(--b4-bright) 50%, #fff); }
.b4-card--tone2{ background: linear-gradient(180deg, var(--b4-base) 0%, rgba(255,255,255,1) 45%); border-color: color-mix(in srgb, var(--b4-base) 50%, #fff); }
.b4-card--tone3{ background: linear-gradient(180deg, var(--b4-deep) 0%, rgba(255,255,255,1) 45%); border-color: color-mix(in srgb, var(--b4-deep) 50%, #fff); }
@media (max-width: 920px){ .b4-feat__grid{ grid-template-columns: 1fr; } }
/* programs */
.b4-prog{ background:#fff; padding: 64px 0 56px; }
.b4-prog__list{ max-width: 900px; margin: 0 auto 14px; padding-left: 1.1em; }
.b4-prog__list li{ margin: 8px 0; line-height: 1.8; }

/* course detail grid */
.b4-course__grid{
  display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px;
  margin: 16px 0 8px;
}
@media (max-width: 920px){ .b4-course__grid{ grid-template-columns: 1fr; } }

.b4-course{
  background: linear-gradient(180deg, rgba(255,255,255,1) 0%, rgba(255,255,255,.85) 100%);
  border: 1px solid color-mix(in srgb, var(--b4-base) 22%, #fff);
  border-radius: 16px; padding: clamp(16px, 3.2vw, 24px);
  box-shadow: 0 10px 26px rgba(229,57,53,.12);
  display: flex; flex-direction: column;
}
.b4-course--foundation{ background: linear-gradient(180deg, color-mix(in srgb, var(--b4-bright) 24%, #fff) 0%, #fff 60%); }
.b4-course--practice{ background: linear-gradient(180deg, color-mix(in srgb, var(--b4-deep) 18%, #fff) 0%, #fff 60%); }

.b4-course__title{ margin: 0; font-size: clamp(1.2rem, 2.6vw, 1.6rem); color: var(--b4-base); font-weight: 900; }
.b4-course__lead{ margin: 6px 0 10px; font-weight: 800; color: #2b3a55; }

.b4-course__section{ margin: 10px 0; }
.b4-course__section-title{ font-weight: 900; color: color-mix(in srgb, var(--b4-base) 80%, #000); margin-bottom: 4px; }
.b4-course__text{ margin: 0; color:#2b3a55; line-height: 1.8; }

.b4-course__list{ margin: 8px 0 0 0; padding-left: 1.1em; }
.b4-course__list > li{ margin: 8px 0; line-height: 1.8; font-weight: 800; }
.b4-course__sublist{ margin: 6px 0 0 0; padding-left: 1.2em; }
.b4-course__sublist li{ font-weight: 600; margin: 4px 0; }

/* course illustration inside card */
.b4-course__illu{
  display: block; width: 100%; height: auto; margin-top: 12px;
  border-radius: 12px; box-shadow: 0 12px 28px rgba(0,0,0,.12);
}

/* Application Forms */
/* Business2 Form (Blue Theme) */
.b2-form{ background: linear-gradient(135deg, #2d6cdf 0%, #4bb2ff 50%, #a8c0ff 100%); padding: 64px 0; }
.b2-form__title{ text-align: center; margin: 0 0 24px 0; font-size: clamp(1.8rem, 3.6vw, 2.6rem); color: #fff; font-weight: 900; }
.b2-form__description{ text-align: left; margin-bottom: 32px; }
.b2-form__description p{ margin: 4px 0; color: #fff; font-size: 0.9rem; }
.b2-form__form{ max-width: 600px; margin: 0 auto; }
.b2-form__field{ margin-bottom: 20px; }
.b2-form__label{ display: block; margin-bottom: 8px; color: #fff; font-weight: 800; font-size: 1rem; }
.b2-form__required{ color: #ff5252; margin-right: 4px; }
.b2-form__input{ width: 100%; padding: 12px 16px; border: none; border-radius: 8px; background: #fff; font-size: 1rem; font-family: inherit; }
.b2-form__input:focus{ outline: none; box-shadow: 0 0 0 3px rgba(33, 150, 243, 0.3); }
.b2-form__input--error{ border: 2px solid #ff5252; }
.b2-form__input--date{ width: 80px; text-align: center; }
.b2-form__date-inputs{ display: flex; align-items: center; gap: 8px; }
.b2-form__date-separator{ color: #fff; font-weight: 800; }
.b2-form__textarea{ width: 100%; padding: 12px 16px; border: none; border-radius: 8px; background: #fff; font-size: 1rem; font-family: inherit; resize: vertical; }
.b2-form__textarea:focus{ outline: none; box-shadow: 0 0 0 3px rgba(33, 150, 243, 0.3); }
.b2-form__submit{ text-align: center; margin-top: 32px; }
.b2-form__button{ background: linear-gradient(90deg, #2196f3, #1976d2); color: #fff; border: none; padding: 16px 48px; border-radius: 32px; font-size: 1.1rem; font-weight: 800; cursor: pointer; transition: transform 0.2s, box-shadow 0.2s; }
.b2-form__button:hover{ transform: translateY(-2px); box-shadow: 0 8px 24px rgba(33, 150, 243, 0.4); }
.b2-form__success{ text-align: center; background: rgba(255, 255, 255, 0.95); padding: 48px 24px; border-radius: 16px; box-shadow: 0 12px 32px rgba(0, 0, 0, 0.1); }
.b2-form__success h3{ margin: 0 0 16px 0; color: #1976d2; font-size: 1.8rem; }
.b2-form__success p{ margin: 0; color: #333; line-height: 1.8; }

/* Business4 Form (Red Theme) */
.b4-form{ background: linear-gradient(135deg, #c62828 0%, #e53935 45%, #ef5350 100%); padding: 64px 0; }
.b4-form__title{ text-align: center; margin: 0 0 24px 0; font-size: clamp(1.8rem, 3.6vw, 2.6rem); color: #fff; font-weight: 900; }
.b4-form__description{ text-align: left; margin-bottom: 32px; }
.b4-form__description p{ margin: 4px 0; color: #fff; font-size: 0.9rem; }
.b4-form__form{ max-width: 600px; margin: 0 auto; }
.b4-form__field{ margin-bottom: 20px; }
.b4-form__label{ display: block; margin-bottom: 8px; color: #fff; font-weight: 800; font-size: 1rem; }
.b4-form__required{ color: #ff5252; margin-right: 4px; }
.b4-form__input{ width: 100%; padding: 12px 16px; border: none; border-radius: 8px; background: #fff; font-size: 1rem; font-family: inherit; }
.b4-form__input:focus{ outline: none; box-shadow: 0 0 0 3px rgba(229, 57, 53, 0.3); }
.b4-form__input--error{ border: 2px solid #ff5252; }
.b4-form__input--date{ width: 80px; text-align: center; }
.b4-form__date-inputs{ display: flex; align-items: center; gap: 8px; }
.b4-form__date-separator{ color: #fff; font-weight: 800; }
.b4-form__textarea{ width: 100%; padding: 12px 16px; border: none; border-radius: 8px; background: #fff; font-size: 1rem; font-family: inherit; resize: vertical; }
.b4-form__textarea:focus{ outline: none; box-shadow: 0 0 0 3px rgba(229, 57, 53, 0.3); }
.b4-form__submit{ text-align: center; margin-top: 32px; }
.b4-form__button{ background: linear-gradient(90deg, #f44336, #d32f2f); color: #fff; border: none; padding: 16px 48px; border-radius: 32px; font-size: 1.1rem; font-weight: 800; cursor: pointer; transition: transform 0.2s, box-shadow 0.2s; }
.b4-form__button:hover{ transform: translateY(-2px); box-shadow: 0 8px 24px rgba(244, 67, 54, 0.4); }
.b4-form__success{ text-align: center; background: rgba(255, 255, 255, 0.95); padding: 48px 24px; border-radius: 16px; box-shadow: 0 12px 32px rgba(0, 0, 0, 0.1); }
.b4-form__success h3{ margin: 0 0 16px 0; color: #d32f2f; font-size: 1.8rem; }
.b4-form__success p{ margin: 0; color: #333; line-height: 1.8; }

/* Responsive adjustments */
@media (max-width: 768px) {
  .b2-form, .b4-form { padding: 48px 0; }
  .b2-form__form, .b4-form__form { max-width: 100%; padding: 0 16px; }
  .b2-form__input--date, .b4-form__input--date { width: 70px; }
  .b2-form__button, .b4-form__button { padding: 14px 36px; font-size: 1rem; }
}

/* Business1: Matching Event Planning */
.b1-main{ background:#f9fbff; }
.b1-container{ width:min(1100px,92%); margin:0 auto; }

/* Hero Section */
.b1-hero{ 
  background: linear-gradient(135deg, #ff8a00 0%, #ffb347 50%, #ffcc80 100%); 
  color:#fff; 
  padding: clamp(48px,8vw,96px) 0; 
  text-align:center; 
}
.b1-hero__title{ 
  margin:0; 
  font-size: clamp(1.6rem, 3.8vw, 2.6rem); 
  font-weight: 900; 
  letter-spacing:.02em; 
  line-height: 1.35;
}

/* Voices Section */
.b1-voices{ background:#fff; padding: 48px 0; position: relative; }
.b1-section__title{ 
  margin:0 0 32px 0; 
  color:#0e1a2b; 
  font-size: clamp(1.6rem, 3.2vw, 2.4rem); 
  text-align:center; 
  font-weight: 900;
}
.b1-voices__grid{ 
  display:grid; 
  grid-template-columns: repeat(2,minmax(0,1fr)); 
  gap: 24px; 
  max-width: 900px; 
  margin: 0 auto;
}
.b1-voice{ 
  background: #f8f9fa; 
  border-radius: 20px; 
  padding: 32px 24px; 
  box-shadow: 0 8px 24px rgba(0,0,0,.08);
  position: relative;
}
.b1-voice::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  border-radius: 20px 20px 0 0;
}
.b1-voice--student::before { background: linear-gradient(90deg, #ff8a00, #ffb347); }
.b1-voice--company::before { background: linear-gradient(90deg, #ffb347, #ffcc80); }
.b1-voice__title{ 
  margin:0 0 20px 0; 
  font-size: clamp(1.2rem, 2.4vw, 1.6rem); 
  color: #0e1a2b; 
  font-weight: 900;
  text-align: center;
}
.b1-voice__list{ 
  list-style:none; 
  padding:0; 
  margin:0;
}
.b1-voice__list li{ 
  margin: 12px 0; 
  padding: 12px 16px; 
  background: #fff; 
  border-radius: 12px; 
  box-shadow: 0 2px 8px rgba(0,0,0,.05);
  font-weight: 600;
  color: #2b3a55;
  position: relative;
  padding-left: 32px;
}
.b1-voice__list li::before {
  content: '"';
  position: absolute;
  left: 12px;
  top: 8px;
  font-size: 1.2rem;
  color: #ff8a00;
  font-weight: 900;
}

/* Decorative images in voices section */
.b1-voice__deco{
  position: absolute;
  width: clamp(120px, 18vw, 200px);
  height: auto;
  opacity: 0.9;
  pointer-events: none;
  user-select: none;
  z-index: 2;
}
.b1-voice__deco--left{
  left: 2%;
  top: 12%;
  transform: translateY(0) scale(1.0) rotate(-3deg);
  animation: b1-float-left 8s ease-in-out infinite;
}
.b1-voice__deco--right{
  right: 2%;
  top: 12%;
  transform: translateY(0) scale(1.0) rotate(3deg);
  animation: b1-float-right 8s ease-in-out infinite;
  animation-delay: 1s;
}

@keyframes b1-float-left {
  0%, 100% { transform: translateY(-50%) scale(1.1) rotate(-5deg) translateY(0); }
  50% { transform: translateY(-50%) scale(1.1) rotate(-5deg) translateY(-6px); }
}

@keyframes b1-float-right {
  0%, 100% { transform: translateY(-50%) scale(1.1) rotate(5deg) translateY(0); }
  50% { transform: translateY(-50%) scale(1.1) rotate(5deg) translateY(-6px); }
}

/* Catch Copy */
.b1-catch{ background:#f8f9fa; padding: 48px 0; }
.b1-catch__text{ 
  max-width: 900px; 
  margin: 0 auto; 
  color:#2b3a55; 
  line-height: 1.9; 
  font-size: clamp(1rem, 1.6vw, 1.15rem); 
  text-align: center;
  font-weight: 600;
}

/* Features Section */
.b1-feat{ background:#fff; padding: 48px 0 64px; position: relative; }
.b1-sec__head{ 
  position: relative; 
  text-align:center; 
  margin-bottom: 32px; 
}
.b1-sec__ghost{ 
  position:absolute; 
  left:50%; 
  top:50%; 
  transform: translate(-50%, -58%); 
  font-weight: 900; 
  letter-spacing: 0.18em; 
  font-size: clamp(2.8rem, 14vw, 10rem); 
  color: rgba(255,138,0,.12); 
  pointer-events:none; 
  user-select:none; 
  white-space:nowrap; 
}
.b1-sec__eyebrow{ 
  position: relative; 
  text-align:center; 
  color:#ff8a00; 
  font-weight:900; 
  letter-spacing:.18em; 
  margin:0; 
  font-size: clamp(1rem, 1.6vw, 1.15rem); 
}
.b1-sec__title{ 
  position: relative; 
  text-align:center; 
  margin: 8px 0 4px 0; 
  font-size: clamp(1.8rem, 3.6vw, 2.6rem); 
  letter-spacing: .06em; 
  color: #0e1a2b;
}
.b1-feat__grid{ 
  display:grid; 
  grid-template-columns: repeat(2,minmax(0,1fr)); 
  gap: 24px; 
  max-width: 900px; 
  margin: 0 auto;
}
.b1-card{ 
  position:relative; 
  overflow:hidden; 
  background:#fff; 
  border: 1px solid #ffe0b2; 
  border-radius: 16px; 
  padding: 24px; 
  box-shadow: 0 10px 28px rgba(255,138,0,.12); 
  padding-bottom: clamp(44px, 9vw, 96px);
}
.b1-card__num{ 
  font-weight:900; 
  color:#ff8a00; 
  font-size: 1.2rem;
  margin-bottom: 8px;
}
.b1-card__title{ 
  margin: 6px 0 16px 0; 
  font-size: clamp(1.05rem, 1.8vw, 1.24rem); 
  color: #0e1a2b;
  font-weight: 800;
}
.b1-card__desc{ 
  margin:0; 
  color:#3a4759; 
  line-height: 1.8; 
  font-size: 0.95rem;
}

/* After Follow Section */
.b1-after{ background:#f8f9fa; padding: 48px 0; }
.b1-after__title{ 
  margin:0 0 24px 0; 
  font-size: clamp(1.6rem, 3.2vw, 2.2rem); 
  color: #0e1a2b; 
  text-align:center; 
  font-weight: 900;
}
.b1-after__content{ 
  max-width: 900px; 
  margin: 0 auto; 
}
.b1-after__content p{ 
  margin: 0 0 16px 0; 
  color:#2b3a55; 
  line-height: 1.9; 
  font-size: clamp(1rem, 1.6vw, 1.15rem); 
}

/* Main Content */
.b1-main-content{ background:#fff; padding: 48px 0 64px; }
.b1-main-content p{ 
  max-width: 900px; 
  margin: 0 auto 16px; 
  color:#2b3a55; 
  line-height: 1.9; 
  font-size: clamp(1rem, 1.6vw, 1.15rem); 
}

/* Responsive adjustments for business1 */
@media (max-width: 920px){ 
  .b1-feat__grid{ grid-template-columns: 1fr; } 
  .b1-voices__grid{ grid-template-columns: 1fr; gap: 16px; }
}
@media (max-width: 768px){
  .b1-voice{ padding: 24px 20px; }
  .b1-voice__list li{ padding: 10px 14px; padding-left: 28px; }
  .b1-voice__deco{
    width: clamp(80px, 15vw, 120px);
  }
  .b1-voice__deco--left{
    left: 2%;
    top: 12%;
    transform: translateY(0) scale(1.0) rotate(-3deg);
  }
  .b1-voice__deco--right{
    right: 2%;
    top: 12%;
    transform: translateY(0) scale(1.0) rotate(3deg);
  }
}

/* Business1 Form (Orange Theme) */
.b1-form{ 
  background: linear-gradient(135deg, #ff8a00 0%, #ffb347 50%, #ffcc80 100%); 
  padding: 64px 0; 
}
.b1-form__title{ 
  text-align: center; 
  margin: 0 0 24px 0; 
  font-size: clamp(1.8rem, 3.6vw, 2.6rem); 
  color: #fff; 
  font-weight: 900; 
}
.b1-form__description{ 
  text-align: left; 
  margin-bottom: 32px; 
}
.b1-form__description p{ 
  margin: 4px 0; 
  color: #fff; 
  font-size: 0.9rem; 
}
.b1-form__form{ 
  max-width: 600px; 
  margin: 0 auto; 
}
.b1-form__field{ 
  margin-bottom: 20px; 
}
.b1-form__label{ 
  display: block; 
  margin-bottom: 8px; 
  color: #fff; 
  font-weight: 800; 
  font-size: 1rem; 
}
.b1-form__required{ 
  color: #ffeb3b; 
  margin-right: 4px; 
}
.b1-form__radio-group{ 
  display: flex; 
  gap: 24px; 
  margin-top: 8px;
}
.b1-form__radio{ 
  display: flex; 
  align-items: center; 
  gap: 8px; 
  cursor: pointer;
}
.b1-form__radio input[type="radio"]{ 
  width: 18px; 
  height: 18px; 
  accent-color: #ff8a00;
}
.b1-form__radio-text{ 
  color: #fff; 
  font-weight: 700; 
  font-size: 1rem;
}
.b1-form__input{ 
  width: 100%; 
  padding: 12px 16px; 
  border: none; 
  border-radius: 8px; 
  background: #fff; 
  font-size: 1rem; 
  font-family: inherit; 
}
.b1-form__input:focus{ 
  outline: none; 
  box-shadow: 0 0 0 3px rgba(255, 138, 0, 0.3); 
}
.b1-form__input--error{ 
  border: 2px solid #ffeb3b; 
}
.b1-form__input--date{ 
  width: 80px; 
  text-align: center; 
}
.b1-form__date-inputs{ 
  display: flex; 
  align-items: center; 
  gap: 8px; 
}
.b1-form__date-separator{ 
  color: #fff; 
  font-weight: 800; 
}
.b1-form__textarea{ 
  width: 100%; 
  padding: 12px 16px; 
  border: none; 
  border-radius: 8px; 
  background: #fff; 
  font-size: 1rem; 
  font-family: inherit; 
  resize: vertical; 
}
.b1-form__textarea:focus{ 
  outline: none; 
  box-shadow: 0 0 0 3px rgba(255, 138, 0, 0.3); 
}
.b1-form__submit{ 
  text-align: center; 
  margin-top: 32px; 
}
.b1-form__button{ 
  background: linear-gradient(90deg, #ff8a00, #ff6f00); 
  color: #fff; 
  border: none; 
  padding: 16px 48px; 
  border-radius: 32px; 
  font-size: 1.1rem; 
  font-weight: 800; 
  cursor: pointer; 
  transition: transform 0.2s, box-shadow 0.2s; 
}
.b1-form__button:hover{ 
  transform: translateY(-2px); 
  box-shadow: 0 8px 24px rgba(255, 138, 0, 0.4); 
}
.b1-form__success{ 
  text-align: center; 
  background: rgba(255, 255, 255, 0.95); 
  padding: 48px 24px; 
  border-radius: 16px; 
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.1); 
}
.b1-form__success h3{ 
  margin: 0 0 16px 0; 
  color: #ff8a00; 
  font-size: 1.8rem; 
}
.b1-form__success p{ 
  margin: 0; 
  color: #333; 
  line-height: 1.8; 
}

/* Form section transitions */
.b1-form__section{
  transition: all 0.3s ease-in-out;
  opacity: 1;
  transform: translateY(0);
}
.b1-form__section.hidden{
  opacity: 0;
  transform: translateY(-10px);
  pointer-events: none;
}

/* Character-by-character animation for all business pages */
.b1-hero__char, .b2-hero__char, .b4-hero__char {
  display: inline-block;
  opacity: 0;
  transform: translateY(30px);
  animation: charAppear 0.6s ease-out forwards;
}

/* Animation delays for each character */
.b1-hero__char:nth-child(1) { animation-delay: 0.1s; }
.b1-hero__char:nth-child(2) { animation-delay: 0.2s; }
.b1-hero__char:nth-child(3) { animation-delay: 0.3s; }
.b1-hero__char:nth-child(4) { animation-delay: 0.4s; }
.b1-hero__char:nth-child(5) { animation-delay: 0.5s; }
.b1-hero__char:nth-child(6) { animation-delay: 0.6s; }
.b1-hero__char:nth-child(7) { animation-delay: 0.7s; }
.b1-hero__char:nth-child(8) { animation-delay: 0.8s; }
.b1-hero__char:nth-child(9) { animation-delay: 0.9s; }
.b1-hero__char:nth-child(10) { animation-delay: 1.0s; }
.b1-hero__char:nth-child(11) { animation-delay: 1.1s; }
.b1-hero__char:nth-child(12) { animation-delay: 1.2s; }
.b1-hero__char:nth-child(13) { animation-delay: 1.3s; }
.b1-hero__char:nth-child(14) { animation-delay: 1.4s; }
.b1-hero__char:nth-child(15) { animation-delay: 1.5s; }
.b1-hero__char:nth-child(16) { animation-delay: 1.6s; }
.b1-hero__char:nth-child(17) { animation-delay: 1.7s; }
.b1-hero__char:nth-child(18) { animation-delay: 1.8s; }
.b1-hero__char:nth-child(19) { animation-delay: 1.9s; }
.b1-hero__char:nth-child(20) { animation-delay: 2.0s; }
.b1-hero__char:nth-child(21) { animation-delay: 2.1s; }
.b1-hero__char:nth-child(22) { animation-delay: 2.2s; }
.b1-hero__char:nth-child(23) { animation-delay: 2.3s; }
.b1-hero__char:nth-child(24) { animation-delay: 2.4s; }
.b1-hero__char:nth-child(25) { animation-delay: 2.5s; }
.b1-hero__char:nth-child(26) { animation-delay: 2.6s; }
.b1-hero__char:nth-child(27) { animation-delay: 2.7s; }
.b1-hero__char:nth-child(28) { animation-delay: 2.8s; }
.b1-hero__char:nth-child(29) { animation-delay: 2.9s; }
.b1-hero__char:nth-child(30) { animation-delay: 3.0s; }
.b1-hero__char:nth-child(31) { animation-delay: 3.1s; }
.b1-hero__char:nth-child(32) { animation-delay: 3.2s; }
.b1-hero__char:nth-child(33) { animation-delay: 3.3s; }
.b1-hero__char:nth-child(34) { animation-delay: 3.4s; }
.b1-hero__char:nth-child(35) { animation-delay: 3.5s; }
.b1-hero__char:nth-child(36) { animation-delay: 3.6s; }
.b1-hero__char:nth-child(37) { animation-delay: 3.7s; }
.b1-hero__char:nth-child(38) { animation-delay: 3.8s; }
.b1-hero__char:nth-child(39) { animation-delay: 3.9s; }
.b1-hero__char:nth-child(40) { animation-delay: 4.0s; }

/* Business2 character delays */
.b2-hero__char:nth-child(1) { animation-delay: 0.1s; }
.b2-hero__char:nth-child(2) { animation-delay: 0.2s; }
.b2-hero__char:nth-child(3) { animation-delay: 0.3s; }
.b2-hero__char:nth-child(4) { animation-delay: 0.4s; }
.b2-hero__char:nth-child(5) { animation-delay: 0.5s; }
.b2-hero__char:nth-child(6) { animation-delay: 0.6s; }
.b2-hero__char:nth-child(7) { animation-delay: 0.7s; }
.b2-hero__char:nth-child(8) { animation-delay: 0.8s; }
.b2-hero__char:nth-child(9) { animation-delay: 0.9s; }
.b2-hero__char:nth-child(10) { animation-delay: 1.0s; }
.b2-hero__char:nth-child(11) { animation-delay: 1.1s; }
.b2-hero__char:nth-child(12) { animation-delay: 1.2s; }
.b2-hero__char:nth-child(13) { animation-delay: 1.3s; }
.b2-hero__char:nth-child(14) { animation-delay: 1.4s; }
.b2-hero__char:nth-child(15) { animation-delay: 1.5s; }
.b2-hero__char:nth-child(16) { animation-delay: 1.6s; }
.b2-hero__char:nth-child(17) { animation-delay: 1.7s; }
.b2-hero__char:nth-child(18) { animation-delay: 1.8s; }
.b2-hero__char:nth-child(19) { animation-delay: 1.9s; }
.b2-hero__char:nth-child(20) { animation-delay: 2.0s; }
.b2-hero__char:nth-child(21) { animation-delay: 2.1s; }
.b2-hero__char:nth-child(22) { animation-delay: 2.2s; }
.b2-hero__char:nth-child(23) { animation-delay: 2.3s; }

/* Business4 character delays */
.b4-hero__char:nth-child(1) { animation-delay: 0.1s; }
.b4-hero__char:nth-child(2) { animation-delay: 0.2s; }
.b4-hero__char:nth-child(3) { animation-delay: 0.3s; }
.b4-hero__char:nth-child(4) { animation-delay: 0.4s; }
.b4-hero__char:nth-child(5) { animation-delay: 0.5s; }
.b4-hero__char:nth-child(6) { animation-delay: 0.6s; }
.b4-hero__char:nth-child(7) { animation-delay: 0.7s; }
.b4-hero__char:nth-child(8) { animation-delay: 0.8s; }
.b4-hero__char:nth-child(9) { animation-delay: 0.9s; }
.b4-hero__char:nth-child(10) { animation-delay: 1.0s; }
.b4-hero__char:nth-child(11) { animation-delay: 1.1s; }
.b4-hero__char:nth-child(12) { animation-delay: 1.2s; }
.b4-hero__char:nth-child(13) { animation-delay: 1.3s; }
.b4-hero__char:nth-child(14) { animation-delay: 1.4s; }
.b4-hero__char:nth-child(15) { animation-delay: 1.5s; }
.b4-hero__char:nth-child(16) { animation-delay: 1.6s; }
.b4-hero__char:nth-child(17) { animation-delay: 1.7s; }
.b4-hero__char:nth-child(18) { animation-delay: 1.8s; }
.b4-hero__char:nth-child(19) { animation-delay: 1.9s; }
.b4-hero__char:nth-child(20) { animation-delay: 2.0s; }
.b4-hero__char:nth-child(21) { animation-delay: 2.1s; }
.b4-hero__char:nth-child(22) { animation-delay: 2.2s; }
.b4-hero__char:nth-child(23) { animation-delay: 2.3s; }
.b4-hero__char:nth-child(24) { animation-delay: 2.4s; }
.b4-hero__char:nth-child(25) { animation-delay: 2.5s; }
.b4-hero__char:nth-child(26) { animation-delay: 2.6s; }
.b4-hero__char:nth-child(27) { animation-delay: 2.7s; }
.b4-hero__char:nth-child(28) { animation-delay: 2.8s; }
.b4-hero__char:nth-child(29) { animation-delay: 2.9s; }
.b4-hero__char:nth-child(30) { animation-delay: 3.0s; }
.b4-hero__char:nth-child(31) { animation-delay: 3.1s; }
.b4-hero__char:nth-child(32) { animation-delay: 3.2s; }
.b4-hero__char:nth-child(33) { animation-delay: 3.3s; }
.b4-hero__char:nth-child(34) { animation-delay: 3.4s; }
.b4-hero__char:nth-child(35) { animation-delay: 3.5s; }
.b4-hero__char:nth-child(36) { animation-delay: 3.6s; }
.b4-hero__char:nth-child(37) { animation-delay: 3.7s; }
.b4-hero__char:nth-child(38) { animation-delay: 3.8s; }
.b4-hero__char:nth-child(39) { animation-delay: 3.9s; }
.b4-hero__char:nth-child(40) { animation-delay: 4.0s; }

@keyframes charAppear {
  0% {
    opacity: 0;
    transform: translateY(30px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Business1 Image Sections */
.b1-image-section{
  padding: 48px 0;
  background: linear-gradient(135deg, #fff5f0 0%, #ffe8d6 100%);
}
.b1-image-frame{
  background: #fff;
  border-radius: 20px;
  padding: 16px;
  box-shadow: 0 8px 32px rgba(255, 138, 0, 0.15);
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.b1-image-frame:hover{
  transform: translateY(-4px);
  box-shadow: 0 12px 40px rgba(255, 138, 0, 0.25);
}
.b1-image{
  width: 100%;
  height: auto;
  border-radius: 12px;
  display: block;
}
.b1-image-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  max-width: 800px;
  margin: 0 auto;
}

/* Responsive adjustments for images */
@media (max-width: 768px){
  .b1-image-grid{
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .b1-image-section{
    padding: 32px 0;
  }
}

/* OUR MISSION Section */
.mission-section {
  position: relative;
  overflow: hidden;
}

/* Introduction Area */
.mission-intro {
  position: relative;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.mission-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

.mission-bg-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: translateY(0);
  transition: transform 0.1s ease-out;
}

.mission-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(22, 174, 247, 0.7);
  z-index: 2;
}

.mission-container {
  position: relative;
  z-index: 3;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
  text-align: center;
}

.mission-catch {
  font-family: 'Tsukuhou-35Point-Gothic', sans-serif;
  font-size: clamp(2.5rem, 6vw, 4.5rem);
  font-weight: 900;
  color: #fff;
  text-shadow: 
    0 1px 0 #ccc, 
    0 2px 0 #c9c9c9, 
    0 3px 0 #bbb, 
    0 4px 0 #b9b9b9, 
    0 5px 0 #aaa, 
    0 6px 1px rgba(0,0,0,.1), 
    0 0 5px rgba(0,0,0,.1), 
    0 1px 3px rgba(0,0,0,.3), 
    0 3px 5px rgba(0,0,0,.2), 
    0 5px 10px rgba(0,0,0,.25), 
    0 10px 10px rgba(0,0,0,.2), 
    0 20px 20px rgba(0,0,0,.15);
  letter-spacing: 0.1em;
  line-height: 1.2;
  opacity: 0;
  transform: translateY(30px);
  animation: missionFadeInUp 1s ease-out 0.5s forwards;
}

.mission-line {
  width: 90%;
  max-width: 960px;
  height: 4px;
  margin: 24px auto 0;
  background: linear-gradient(90deg, transparent, rgba(13,71,161,0.25), rgba(128,216,255,0.25), transparent);
  background-size: 200% 100%;
  background-position: center;
  position: relative;
  overflow: hidden;
}

.mission-line::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  width: 0%;
  height: 100%;
  background: linear-gradient(90deg, #0d47a1 0%, #1e88e5 35%, #42a5f5 65%, #80d8ff 100%);
  background-size: 300% 100%;
  background-position: 0% center;
  transform: translateX(-50%);
  transition: width 2.0s cubic-bezier(0.22, 1, 0.36, 1);
}

.mission-line.animate::before {
  width: 100%;
  animation: lineFlow 2.0s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

@keyframes lineFlow {
  from { background-position: 0% center; }
  to   { background-position: 100% center; }
}

/* Main Message Area */
.mission-main {
  background: #16AEF7; /* fallback color */
  padding: 80px 0;
  position: relative;
}

/* Two-image background and overlay for mission main area */
.mission-main::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  background-image: url('R.png'), url('S.png');
  background-position: left center, right center;
  background-repeat: no-repeat, no-repeat;
  background-size: 50% 100%, 50% 100%;
  filter: none;
}

.mission-main::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(22, 174, 247, 0.45); /* thin water-blue overlay */
}

/* Ensure text is above backgrounds */
.mission-main .mission-container {
  position: relative;
  z-index: 2;
}

.mission-title {
  font-family: 'Tsukuhou-35Point-Gothic', sans-serif;
  font-size: clamp(1.8rem, 4vw, 2.8rem);
  font-weight: 900;
  color: #fff;
  text-align: left;
  max-width: 800px;
  margin: 0 auto 40px auto;
  opacity: 0;
  transform: translateY(30px);
  animation: missionFadeInUp 1s ease-out 0.2s forwards;
}

.mission-heading {
  font-family: 'Tsukuhou-35Point-Gothic', sans-serif;
  font-size: clamp(2.8rem, 7vw, 4.48rem);
  font-weight: 900;
  color: #fff !important; /* Ensure color is always white */
  text-align: left;
  max-width: 800px;
  margin: 0 auto 24px auto;
  opacity: 0;
  transform: translateY(30px);
  animation: missionFadeInUp 1s ease-out 0.4s forwards;
  /* Remove background properties to prevent interference */
  background: none;
  -webkit-background-clip: initial;
  background-clip: initial;
  -webkit-text-fill-color: initial;
}

.mission-heading.animate-gradient {
  /* This class will no longer have any effect */
}

@supports (-webkit-background-clip: text) or (background-clip: text) {
  .mission-heading.animate-gradient {
     /* All animation styles removed */
  }
}

.mission-subheading {
  font-family: 'Tsukuhou-35Point-Gothic', sans-serif;
  font-size: clamp(1.2rem, 3vw, 1.6rem);
  font-weight: 700;
  color: #fff;
  text-align: left;
  max-width: 800px;
  margin: 0 auto 48px auto;
  line-height: 1.6;
  opacity: 0;
  transform: translateY(30px);
  animation: missionFadeInUp 1s ease-out 0.6s forwards;
}

.mission-content {
  max-width: 800px;
  margin: 0 auto;
  font-family: 'Tsukuhou-35Point-Gothic', sans-serif;
}

.mission-content p {
  font-family: 'Tsukuhou-35Point-Gothic', sans-serif;
  font-size: clamp(1rem, 2.5vw, 1.2rem);
  color: #fff;
  line-height: 1.8;
  margin: 0 0 24px 0;
  text-align: left;
  opacity: 0;
  transform: translateY(30px);
  animation: missionFadeInUp 1s ease-out 0.8s forwards;
}

.mission-content p:nth-child(2) {
  animation-delay: 1.0s;
}

.mission-ending {
  font-family: 'Tsukuhou-35Point-Gothic', sans-serif;
  font-size: clamp(1.1rem, 2.8vw, 1.4rem);
  font-weight: 800;
  text-align: center !important;
  margin-top: 40px !important;
  animation-delay: 1.2s !important;
}

/* Image Area */
.mission-images {
  background: #fff;
  padding: 80px 0;
}

.mission-image-grid {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0;
  max-width: 600px;
  margin: 0 auto;
  position: relative;
}

.mission-image-wrapper {
  opacity: 0;
  transform: translateX(0);
  animation: missionImageSlideIn 1.2s ease-out 1.4s forwards;
}

.mission-image-left {
  z-index: 2;
  animation-delay: 1.4s;
}

.mission-image-right {
  z-index: 1;
  margin-left: -60px;
  animation-delay: 1.6s;
}

.mission-image {
  width: 280px;
  height: 350px;
  object-fit: cover;
  border-radius: 16px;
  box-shadow: 0 8px 32px rgba(22, 174, 247, 0.2);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.mission-image:hover {
  transform: translateY(-8px);
  box-shadow: 0 16px 48px rgba(22, 174, 247, 0.3);
}

/* Animations */
@keyframes missionFadeInUp {
  0% {
    opacity: 0;
    transform: translateY(30px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes missionImageSlideIn {
  0% {
    opacity: 0;
    transform: translateX(-50px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes textGradientFlow {
  from {
    background-position: 0% center;
  }
  to {
    background-position: -200% center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .mission-heading.animate-gradient {
    animation: none;
    background-position: 0% center;
  }
}

/* Parallax effect for background image */
.mission-bg-image.parallax {
  transform: translateY(var(--parallax-offset, 0));
}

/* Responsive Design */
@media (max-width: 768px) {
  .mission-intro {
    height: 70vh;
  }
  
  .mission-main {
    padding: 60px 0;
  }
  
  .mission-images {
    padding: 60px 0;
  }
  
  .mission-image-grid {
    flex-direction: column;
    gap: 24px;
  }
  
  .mission-image-right {
    margin-left: 0;
    margin-top: -40px;
  }
  
  .mission-image {
    width: 240px;
    height: 300px;
  }
  
  .mission-content p {
    text-align: center;
  }
}

@media (max-width: 480px) {
  .mission-catch {
    font-size: clamp(2rem, 8vw, 3rem);
  }
  
  .mission-heading {
    font-size: clamp(1.6rem, 6vw, 2.4rem);
  }
  
  .mission-subheading {
    font-size: clamp(1rem, 4vw, 1.3rem);
  }
}

@keyframes expandLine {
  0% {
    width: 0%;
  }
  100% {
    width: 100%;
  }
}

/* Force Tsukuhou font for entire mission section */
.mission-section, .mission-section * {
  font-family: 'Tsukuhou35Gothic', 'Tsukuhou-35Point-Gothic', sans-serif !important;
}

/* Split background layers inside mission-main to avoid image stretching */
.mission-bg-split{
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  z-index: 0;
}
.mission-bg-left, .mission-bg-right{
  position: relative;
}
.mission-bg-left::before, .mission-bg-right::before{
  content: '';
  position: absolute;
  inset: 0;
  background-size: cover; /* crop without distortion */
  background-position: center; 
  background-repeat: no-repeat;
}
.mission-bg-left::before{ background-image: url('R.png'); }
.mission-bg-right::before{ background-image: url('S.png'); }

/* overlay */
.mission-bg-split::after{
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(22,174,247,0.45);
}

/* keep content above */
.mission-main .mission-container{ position: relative; z-index: 2; }

/* remove previous ::before/::after backgrounds on mission-main to avoid double layering */
.mission-main::before, .mission-main::after{ content: none; }

/* About page */
.about-main{ background:#f7f9fc; padding: 48px 0 64px; }
.about-container{ width:min(1100px,92%); margin:0 auto; }
.about-sec__head{ position:relative; text-align:center; margin-bottom: 24px; }
.about-sec__ghost{ position:absolute; left:50%; top:50%; transform:translate(-50%,-58%); font-weight:900; letter-spacing:.18em; font-size: clamp(2.8rem, 14vw, 10rem); color: rgba(45,108,223,.10); pointer-events:none; user-select:none; white-space:nowrap; }
.about-sec__eyebrow{ position:relative; color:#2d6cdf; font-weight:900; letter-spacing:.18em; margin:0; font-size: clamp(1rem, 1.6vw, 1.15rem); }
.about-sec__title{ position:relative; margin:8px 0 4px; font-size: clamp(1.8rem, 3.6vw, 2.6rem); letter-spacing:.06em; }

.about-card{ background:#fff; border:1px solid #e6eefc; border-radius:16px; box-shadow:0 10px 28px rgba(45,108,223,.08); padding: clamp(16px, 3.2vw, 24px); }
.about-table{ width:100%; border-collapse: collapse; }
.about-table th, .about-table td{ padding: 14px 16px; border-bottom: 1px solid #eef3fe; text-align: left; }
.about-table th{ width: 180px; color:#2d6cdf; font-weight:900; background: #f6f9ff; border-right:1px solid #eef3fe; }
.about-table tr:last-child th, .about-table tr:last-child td{ border-bottom:none; }
.about-mail{ color:#2d6cdf; text-decoration: none; }
.about-mail:hover{ text-decoration: underline; }

/* Partners Section */
.partners{ background:#fff; padding: 56px 0; }
.partners-inner{ width:min(1100px,92%); margin:0 auto; text-align:center; }
.partners-title{ 
  margin:0; 
  font-weight:900; 
  font-size: clamp(1.6rem, 3.2vw, 2.2rem); 
  color:#0e1a2b;
}
.partners-line{
  width:min(200px, 40%);
  height:4px; margin:12px auto 8px; position:relative; overflow:hidden;
  background: linear-gradient(90deg, transparent, rgba(45,108,223,.15), transparent);
}
.partners-line::before{
  content:""; position:absolute; top:0; left:50%; height:100%; width:0; transform:translateX(-50%);
  background: linear-gradient(90deg, #2a48c7 0%, #3b79cc 50%, #42d3ed 100%);
  transition: width 1.6s cubic-bezier(0.22,1,0.36,1);
}
.partners.in-view .partners-line::before{ width:100%; }
.partners-sub{ color:#5a6b87; margin: 6px 0 20px; font-size: .95rem; }

/* marquee */
.partners-marquee{ position:relative; overflow:hidden; }
.partners-track{ 
  display:flex; align-items:center; gap: 24px; 
  width:max-content; animation: partnersScroll 28s linear infinite;
}
.partner-card{ 
  background:#fff; border:1px solid #eef3fe; border-radius:16px; 
  padding: 18px 28px; box-shadow: 0 8px 24px rgba(0,0,0,.06);
}
.partner-logo{ width: clamp(120px, 16vw, 220px); height: auto; display:block; }

@keyframes partnersScroll{
  from{ transform: translateX(0); }
  to{ transform: translateX(-50%); }
}

@media (max-width: 780px){
  .partners-track{ gap: 16px; animation-duration: 24s; }
  .partner-card{ padding: 14px 20px; }
  .partner-logo{ width: clamp(100px, 30vw, 160px); }
}

@media (max-width: 560px){
  /* Fallback: hide curved SVG and show plain heading */
  .b2-curve{ display:none; }
  .b2-only-sr{
    position: static; width: auto; height: auto; padding: 0; margin: 0 0 16px 0;
    overflow: visible; clip: auto; white-space: normal; border: 0;
    display: block; text-align: center; font-weight: 900;
    font-size: clamp(1.2rem, 5.4vw, 1.8rem); color:#0e1a2b;
  }
}

.partners-note{ color:#5a6b87; font-size: 0.9rem; margin-top: 10px; }