:root {
  --teal:#0E4D5C;
  --teal-dark:#093843;
  --offwhite:#F4F1EA;
  --white:#FFFFFF;
  --line:#E1DDD3;
  --text:#1f2d31;
  --accent-coral:#E97451;
}
* { box-sizing:border-box; }
body {
  margin:0;
  background:var(--white);
  color:var(--text);
  font-family:"Yu Mincho", "YuMincho", "游明朝", "Hiragino Mincho ProN", "ヒラギノ明朝 ProN", serif;
  font-size:15px;
  line-height:1.9;
  -webkit-font-smoothing:antialiased;
}

/* Header */
.site-header {
  position:fixed; top:0; left:0; right:0; height:64px;
  background:var(--teal-dark); color:var(--offwhite);
  padding:0 48px; display:flex; align-items:center; justify-content:space-between;
  z-index:1001;
  border-bottom:1px solid rgba(244,241,234,.14); /* header-hairline */
  }
.site-header a { color:var(--offwhite); text-decoration:none; }
.logo {
    font-family:"Hoefler Text", "Baskerville", "Iowan Old Style", Constantia, Cambria, Georgia, serif;
    font-size:21px;
    font-weight:500;
    letter-spacing:.13em;
    color:var(--offwhite);
    position:relative;
    transition:color .25s ease;
  }
  .logo:hover { color:#fff; }
.nav {
    display:flex;
    align-items:center;
    gap:24px;
    font-family:"Yu Mincho", "YuMincho", "游明朝", "Hiragino Mincho ProN", "ヒラギノ明朝 ProN", serif;
    font-size:12.5px;
    font-weight:500;
    letter-spacing:.12em;
    color:var(--offwhite);
  }
.nav a {
    position:relative;
    color:var(--offwhite);
    opacity:.80;
    padding-bottom:2px;
    transition:opacity .25s ease, color .25s ease;
  }
  .nav a::after {
    content:"";
    position:absolute;
    left:0; bottom:-5px;
    width:100%; height:1px;
    background:var(--accent-coral);
    transform:scaleX(0);
    transform-origin:left center;
    transition:transform .32s cubic-bezier(.2,.7,.3,1);
  }
  .nav a:hover::after { transform:scaleX(1); }
.nav a:hover { opacity:1; color:var(--accent-coral); }
.menu-toggle {
  display:none; background:none; border:none; cursor:pointer;
  padding:12px; width:44px; height:44px;
  flex-direction:column; justify-content:space-between; align-items:center;
  z-index:1001; overflow:visible;
}
.menu-toggle span {
  display:block; width:20px; height:2px;
  background:var(--offwhite); transform-origin:center;
  transition:transform .3s ease, opacity .3s ease;
}
.menu-toggle.is-open span:nth-child(1) { transform:translateY(9px) rotate(45deg); }
.menu-toggle.is-open span:nth-child(2) { opacity:0; }
.menu-toggle.is-open span:nth-child(3) { transform:translateY(-9px) rotate(-45deg); }
.mobile-menu {
  position:fixed; inset:0;
  background:var(--teal-dark); z-index:1000;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  gap:28px; opacity:0; visibility:hidden;
  transition:opacity .3s ease, visibility .3s ease;
  padding:80px 24px;
}
.mobile-menu.is-open { opacity:1; visibility:visible; }
.mobile-menu a {
    color:var(--offwhite); text-decoration:none;
    font-family:"Yu Mincho", "YuMincho", "游明朝", "Hiragino Mincho ProN", "ヒラギノ明朝 ProN", serif;
    font-size:22px; letter-spacing:.2em; padding:12px 16px;
    transition:color .25s ease;
  }
.mobile-menu a:hover { color:var(--accent-coral); }

@media (max-width:920px) {
  .nav { display:none; }
  .menu-toggle { display:flex; }
  .site-header { padding:0 22px; }
}

main { padding-top:64px; }

/* HERO */
.si-hero {
  position:relative;
  color:var(--offwhite);
  padding:36px 32px 32px;
  text-align:center;
  background:var(--teal-dark);
}
.si-hero > * {
  position:relative;
}
@media (max-width:680px) {
  .si-hero { padding:42px 22px 38px; }
}
.si-hero-eyebrow {
  font-family:"Hoefler Text", "Baskerville", "Iowan Old Style", Constantia, Cambria, Georgia, serif;
  font-size:12px;
  letter-spacing:.34em;
  text-transform:uppercase;
  color:var(--accent-coral);
  margin:0 0 20px;
}
.si-hero-title {
  font-family:"Yu Mincho", "YuMincho", "游明朝", "Hiragino Mincho ProN", "ヒラギノ明朝 ProN", serif;
  font-size:clamp(24px, 3.4vw, 38px);
  font-weight:600;
  line-height:1.55;
  color:var(--offwhite);
  margin:0 0 20px;
  letter-spacing:.06em;
}
.si-hero-en {
  font-family:"Hoefler Text", "Baskerville", "Iowan Old Style", Constantia, Cambria, Georgia, serif;
  font-size:clamp(12px, 1.2vw, 14px);
  letter-spacing:.08em;
  color:rgba(244,241,234,.65);
  font-style:italic;
  max-width:640px;
  margin:0 auto;
  line-height:1.7;
}

/* SECTION */
.si-section {
  padding:100px 32px;
  background:var(--white);
}
.si-section-alt {
  background:#faf7f0;
}

/* Vivid image-backed section */
.si-section-vivid {
  position:relative;
  background:#0f1518;
  color:var(--offwhite);
  overflow:hidden;
  padding:120px 32px;
}
.si-section-vivid::before {
  content:"";
  position:absolute;
  inset:0;
  background:url('../images/hero/slide-3.jpg') center center / cover no-repeat;
  z-index:0;
  opacity:1;
}
.si-section-vivid::after {
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg,
      rgba(0,0,0,.12) 0%,
      rgba(0,0,0,.08) 50%,
      rgba(0,0,0,.20) 100%);
  z-index:1;
}
.si-section-vivid .si-inner {
  position:relative;
  z-index:2;
}
.si-section-vivid .si-eyebrow {
  color:var(--accent-coral);
  text-shadow:0 1px 6px rgba(0,0,0,.55);
}
.si-section-vivid .si-heading {
  color:var(--offwhite);
  letter-spacing:.06em;
  text-shadow:
    0 2px 12px rgba(0,0,0,.6),
    0 1px 3px rgba(0,0,0,.75);
}
.si-section-vivid .si-lead {
  color:var(--offwhite);
  text-shadow:0 1px 8px rgba(0,0,0,.7);
}
.si-section-vivid .si-body {
  color:var(--offwhite);
  text-shadow:0 1px 8px rgba(0,0,0,.7);
}
.si-section-vivid .si-body strong {
  color:var(--offwhite);
}

/* Semi-transparent white panel for body text over image */
.si-body-panel {
  margin-top:28px;
  padding:44px 48px;
  background:rgba(255,255,255,.90);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  box-shadow:0 24px 60px rgba(0,0,0,.30);
}
.si-body-panel .si-lead {
  color:var(--teal-dark);
  text-shadow:none;
  margin-top:0;
}
.si-body-panel .si-body {
  color:#2a3538;
  text-shadow:none;
}
.si-body-panel .si-body:last-child { margin-bottom:0; }
.si-body-panel .si-body strong,
.si-body-panel .si-lead strong {
  color:var(--teal-dark);
}
@media (max-width:680px) {
  .si-body-panel { padding:28px 24px; margin-top:24px; }
}
.si-section-vivid .story-cta {
  background:var(--accent-coral);
  border-color:var(--accent-coral);
  color:#fff;
  box-shadow:0 8px 24px rgba(0,0,0,.25);
}
.si-section-vivid .story-cta .story-cta-ja {
  opacity:1;
  color:#fff;
}
.si-section-vivid .story-cta:hover {
  background:#d4623f;
  border-color:#d4623f;
  color:#fff;
}
@media (max-width:680px) {
  .si-section-vivid { padding:70px 22px; }
}

/* Cinematic image-backed section */
.si-section-image {
  position:relative;
  background:var(--teal-dark);
  color:var(--offwhite);
  padding:140px 32px;
  overflow:hidden;
}
.si-section-image::before {
  content:"";
  position:absolute;
  inset:0;
  background:url('../images/hero/slide-3.jpg') center center / cover no-repeat;
  z-index:0;
  opacity:.42;
}
.si-section-image::after {
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg,
      rgba(4,29,35,.78) 0%,
      rgba(9,56,67,.62) 50%,
      rgba(4,29,35,.88) 100%);
  z-index:1;
}
.si-section-image .si-inner {
  position:relative;
  z-index:2;
}
.si-section-image .si-eyebrow {
  color:var(--accent-coral);
  opacity:.9;
}
.si-section-image .si-heading {
  color:var(--offwhite);
  letter-spacing:.06em;
}
.si-section-image .si-body {
  color:rgba(244,241,234,.88);
}
.si-section-image .si-body strong {
  color:var(--offwhite);
}
.si-section-image .si-quote {
  color:var(--offwhite);
  background:transparent;
  border-left:none;
  padding:32px 0;
  margin:36px auto;
  text-align:center;
  max-width:640px;
  border-top:1px solid rgba(233,116,81,.6);
  border-bottom:1px solid rgba(233,116,81,.6);
  font-family:"Yu Mincho", "YuMincho", "游明朝", "Hiragino Mincho ProN", "ヒラギノ明朝 ProN", serif;
  font-size:clamp(18px, 2.4vw, 24px);
  font-weight:500;
  letter-spacing:.06em;
  line-height:1.9;
}
@media (max-width:680px) {
  .si-section-image { padding:80px 22px; }
  .si-section-image .si-quote { padding:24px 0; margin:24px auto; }
}
.si-inner {
  max-width:780px;
  margin:0 auto;
}
.si-inner.center { text-align:center; }

.si-eyebrow {
  font-family:"Hoefler Text", "Baskerville", "Iowan Old Style", Constantia, Cambria, Georgia, serif;
  font-size:11px;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--accent-coral);
  margin:0 0 20px;
}
.si-heading {
  font-family:"Yu Mincho", "YuMincho", "游明朝", "Hiragino Mincho ProN", "ヒラギノ明朝 ProN", serif;
  font-size:clamp(22px, 2.8vw, 30px);
  font-weight:600;
  color:var(--teal-dark);
  margin:0 0 32px;
  line-height:1.7;
  letter-spacing:.04em;
}
.si-heading-arrow {
  color:var(--accent-coral);
  font-weight:400;
  padding:0 10px;
  display:inline-block;
}
.si-lead {
  font-size:16px;
  line-height:2;
  color:var(--teal-dark);
  margin:0 0 28px;
  font-weight:500;
}
.si-body {
  font-size:15px;
  line-height:2;
  color:#3a4a4e;
  margin:0 0 24px;
}
.si-body strong {
  color:var(--teal-dark);
  font-weight:600;
}
.si-quote {
  font-size:clamp(17px, 2.2vw, 22px);
  line-height:1.75;
  color:var(--teal-dark);
  font-weight:600;
  margin:32px 0;
  padding:24px 28px;
  border-left:3px solid var(--accent-coral);
  background:rgba(233,116,81,.05);
  letter-spacing:.04em;
}
/* Story CTA button (matches top page profile style) */
.story-cta {
  display:inline-flex;
  align-items:center;
  gap:20px;
  margin-top:36px;
  padding:18px 34px;
  border:1px solid var(--teal-dark);
  background:transparent;
  color:var(--teal-dark);
  text-decoration:none;
  transition:background .2s ease, color .2s ease;
}
.story-cta:hover {
  background:var(--teal-dark);
  color:var(--offwhite);
}
.story-cta .story-cta-en {
  font-family:"Hoefler Text", "Baskerville", "Iowan Old Style", Constantia, Cambria, Georgia, serif;
  font-size:18px;
  font-weight:500;
  letter-spacing:.04em;
}
.story-cta .story-cta-ja {
  font-family:Arial, "Yu Gothic", sans-serif;
  font-size:12px;
  letter-spacing:.16em;
  opacity:.75;
}

/* Ecosystem cycle */
.si-cycle {
  margin:44px 0 0;
  padding:36px 32px;
  border:1px solid var(--accent-coral);
  background:transparent;
}
.si-cycle-line {
  font-family:"Yu Mincho", "YuMincho", "游明朝", "Hiragino Mincho ProN", "ヒラギノ明朝 ProN", serif;
  font-size:15.5px;
  line-height:2;
  color:var(--teal-dark);
  margin:0 0 8px;
  letter-spacing:.04em;
}
.si-cycle-line:last-child { margin-bottom:0; font-weight:600; }

/* BRIDGE */
.si-bridge {
  background:var(--teal-dark);
  color:var(--offwhite);
  padding:64px 32px;
  text-align:center;
}
.si-bridge-text {
  font-family:"Yu Mincho", "YuMincho", "游明朝", "Hiragino Mincho ProN", "ヒラギノ明朝 ProN", serif;
  font-size:clamp(17px, 2.2vw, 24px);
  font-weight:600;
  line-height:1.95;
  color:var(--offwhite);
  max-width:880px;
  margin:0 auto;
  letter-spacing:.05em;
}
.si-bridge-line {
  display:block;
}
@media (max-width:680px) {
  .si-bridge-text {
    font-size:15.5px;
    line-height:2;
    letter-spacing:.04em;
    padding:0 4px;
  }
  .si-bridge-line {
    display:inline;
  }
}

/* PARTNERS */
.si-partners {
  position:relative;
  padding:120px 32px;
  background:#0f1518;
  color:var(--offwhite);
  overflow:hidden;
}
.si-partners::before {
  content:"";
  position:absolute;
  inset:0;
  background:url('../images/hero/slide-2.jpg') center center / cover no-repeat;
  z-index:0;
  opacity:1;
}
.si-partners::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(9,56,67,.55) 0%, rgba(9,56,67,.20) 260px, rgba(9,56,67,0) 380px);
  z-index:1;
  pointer-events:none;
}
.si-partners .si-inner {
  position:relative;
  z-index:2;
  max-width:920px;
}
.si-partners .si-eyebrow {
  text-align:center;
  color:var(--accent-coral);
  text-shadow:0 1px 6px rgba(0,0,0,.55);
}
.si-partners .si-heading {
  text-align:center;
  margin-bottom:60px;
  color:var(--offwhite);
  letter-spacing:.06em;
  text-shadow:
    0 2px 12px rgba(0,0,0,.6),
    0 1px 3px rgba(0,0,0,.75);
}

.si-partner-grid {
  display:flex;
  flex-direction:column;
  gap:24px;
  max-width:960px;
  margin:0 auto;
}
.si-partner-card {
  background:var(--white);
  padding:32px 40px;
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 20px 60px rgba(0,0,0,.35);
  display:grid;
  grid-template-columns:220px 1fr;
  gap:40px;
  align-items:center;
}
.si-partner-logo {
  height:120px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0 16px;
  border-right:1px solid var(--line);
  border-bottom:none;
  margin:0;
}
.si-partner-logo img {
  max-height:100%;
  max-width:100%;
  width:auto;
  height:auto;
  object-fit:contain;
}
.si-partner-label {
  font-family:Arial, "Yu Gothic", sans-serif;
  font-size:10.5px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--accent-coral);
  margin:0;
}
.si-partner-name {
  font-family:"Hoefler Text", "Baskerville", "Iowan Old Style", Constantia, Cambria, Georgia, serif;
  font-size:17px;
  font-weight:600;
  color:var(--teal-dark);
  margin:0 0 4px;
  letter-spacing:.02em;
}
.si-partner-name-ja {
  font-family:"Yu Mincho", "YuMincho", "游明朝", "Hiragino Mincho ProN", "ヒラギノ明朝 ProN", serif;
  font-size:12px;
  font-weight:500;
  color:var(--teal-dark);
  margin-left:4px;
}
.si-partner-desc {
  font-size:14.5px;
  line-height:2;
  color:#3a4a4e;
  margin:0 0 16px;
}
.si-partner-links {
  display:flex;
  flex-direction:row;
  flex-wrap:wrap;
  align-items:center;
  gap:12px 28px;
  margin-top:auto;
  padding-top:8px;
}
.si-partner-link {
  font-family:Arial, "Yu Gothic", sans-serif;
  font-size:12.5px;
  letter-spacing:.14em;
  color:var(--accent-coral);
  text-decoration:none;
  border-bottom:1px solid var(--accent-coral);
  padding-bottom:3px;
  display:inline-block;
  transition:opacity .2s ease;
}
.si-partner-link:hover { opacity:.7; }

/* CLOSING */
.si-closing {
  background:var(--teal-dark);
  padding:100px 32px;
  color:var(--offwhite);
  text-align:center;
}
.si-closing-en {
  font-family:"Hoefler Text", "Baskerville", "Iowan Old Style", Constantia, Cambria, Georgia, serif;
  font-size:clamp(18px, 2.4vw, 26px);
  font-style:italic;
  color:var(--offwhite);
  line-height:1.6;
  margin:0 0 20px;
  letter-spacing:.03em;
}
.si-closing-ja {
  font-family:"Yu Mincho", "YuMincho", "游明朝", "Hiragino Mincho ProN", "ヒラギノ明朝 ProN", serif;
  font-size:clamp(14px, 1.5vw, 17px);
  color:rgba(244,241,234,.85);
  letter-spacing:.1em;
  margin:0;
}

.back-link {
  text-align:center;
  padding:56px 32px 80px;
  background:#fafaf7;
}
.back-link a {
  display:inline-flex;
  align-items:center;
  gap:14px;
  padding:16px 36px 16px 32px;
  border:1px solid var(--teal-dark);
  color:var(--teal-dark);
  text-decoration:none;
  font-family:"Hoefler Text", "Baskerville", "Iowan Old Style", Constantia, Cambria, Georgia, serif;
  font-size:15px;
  letter-spacing:.08em;
  background:transparent;
  transition:background .25s ease, color .25s ease, transform .25s ease;
}
.back-link a:hover {
  background:var(--teal-dark);
  color:var(--offwhite);
}

footer {
  background:var(--teal-dark);
  color:rgba(244,241,234,.7);
  padding:32px 48px;
  text-align:center;
  font-family:Arial, "Yu Gothic", sans-serif;
  font-size:11px;
  letter-spacing:.14em;
}
footer a { color:var(--offwhite); text-decoration:none; margin-left:24px; opacity:.85; }

/* Responsive */
@media (max-width:680px) {
  .si-hero { padding:28px 22px 26px; }
  .si-hero-eyebrow { margin:0 0 12px; }
  .si-hero-title { margin:0 0 12px; line-height:1.5; }
  .si-section { padding:64px 22px; }
  .si-partners { padding:64px 22px; }
  .si-partners::after {
    background:linear-gradient(180deg, rgba(9,56,67,.70) 0%, rgba(9,56,67,.30) 200px, rgba(9,56,67,0) 320px);
  }
  .si-partners .si-heading {
    text-shadow:0 2px 14px rgba(0,0,0,.85), 0 1px 4px rgba(0,0,0,.9);
  }
  .si-closing { padding:64px 22px; }
  .si-bridge { padding:48px 22px; }
  .si-partner-grid { gap:20px; }
  .si-partner-card { grid-template-columns:1fr; gap:20px; padding:20px 16px; }
  .si-partner-logo { height:160px; border-right:none; border-bottom:1px solid var(--line); padding:0 0 16px; }
  .si-partner-logo img { max-height:150px; }
  .si-cycle { padding:28px 24px; }
  .si-quote { padding:20px 22px; font-size:16.5px; }
}
