
/* ===== COMPLETE LP INTEGRATION FIXES ===== */
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; background: #fff; }
body > section, body > header, body > footer { width: 100%; }
img { max-width: 100%; }
[id] { scroll-margin-top: 86px; }
@media (max-width: 900px) {
  [id] { scroll-margin-top: 68px; }
}

/* ===== SECTION 01: ①Hero.zip ===== */
:root{
  --navy:#082f70;--navy2:#0a397f;--blue:#0f67f4;--blue2:#2e7cff;--line:#b7d3f6;
  --pale:#eaf4ff;--white:#fff;--text:#082f68;--muted:#496485;
  --shadow:0 24px 70px rgba(43,92,153,.14),0 4px 14px rgba(61,105,162,.07);
  --card-shadow:0 16px 35px rgba(50,97,155,.11),0 2px 6px rgba(30,84,152,.06)
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:"Noto Sans JP","Yu Gothic",Meiryo,sans-serif;color:var(--text);background:#f7fbff;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}svg{display:block}
.site-header{height:78px;background:rgba(255,255,255,.96);border-bottom:1px solid rgba(143,181,230,.28);position:sticky;top:0;z-index:50;backdrop-filter:blur(16px)}
.header-inner{max-width:1580px;height:100%;margin:auto;padding:0 50px;display:flex;align-items:center;gap:32px}.brand{width:178px;flex:none}.brand img{width:100%;height:50px;object-fit:contain}.global-nav{display:flex;align-items:center;gap:36px;margin-left:auto;font-weight:700;font-size:16px;white-space:nowrap}.global-nav a{position:relative;transition:.2s}.global-nav a:after{content:"";position:absolute;left:50%;right:50%;bottom:-8px;height:2px;background:var(--blue);transition:.2s}.global-nav a:hover{color:var(--blue)}.global-nav a:hover:after{left:0;right:0}.header-cta{height:52px;padding:0 26px;display:flex;gap:10px;align-items:center;border-radius:12px;background:linear-gradient(135deg,#0875ff 0%,#1359e5 100%);color:#fff;font-weight:800;font-size:14px;box-shadow:0 13px 28px rgba(20,91,227,.25);transition:.2s}.header-cta:hover{transform:translateY(-2px);box-shadow:0 17px 34px rgba(20,91,227,.3)}.header-cta svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.menu-button{display:none;background:none;border:0;padding:8px}.menu-button span{display:block;width:24px;height:2px;background:var(--navy);margin:5px}
.hero{position:relative;overflow:hidden;padding-bottom:30px;background:radial-gradient(circle at 84% 9%,rgba(192,218,255,.48),transparent 25%),radial-gradient(circle at 38% 40%,rgba(255,255,255,.95),transparent 34%),linear-gradient(128deg,#fbfdff 0%,#edf6ff 49%,#e7f2ff 100%)}
.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(255,255,255,.64),transparent 44%,rgba(255,255,255,.18));pointer-events:none}.hero-inner{max-width:1580px;margin:auto;padding:26px 50px 12px;display:grid;grid-template-columns:minmax(520px,1.06fr) minmax(500px,.88fr);gap:84px;align-items:start;position:relative;z-index:2}.hero-copy{padding-top:58px;position:relative;z-index:4}.eyebrow{font-size:12px;letter-spacing:.26em;color:#1564e5;font-weight:900;display:flex;align-items:center;gap:14px;margin-bottom:20px}.eyebrow i{width:31px;height:3px;background:#f3ce00;border-radius:99px}.hero h1{font-size:clamp(58px,5.3vw,84px);line-height:1.14;letter-spacing:-.064em;margin:0 0 18px;font-weight:900;color:#0a3477;text-shadow:0 2px 0 rgba(255,255,255,.6)}.hero-subtitle{font-size:22px;line-height:1.5;font-weight:900;color:#1567eb;margin:0 0 20px}.hero-summary{width:max-content;max-width:420px;padding:12px 22px 13px;border-left:4px solid #176cf1;background:linear-gradient(120deg,rgba(255,255,255,.88),rgba(255,255,255,.54));border-radius:0 12px 12px 0;font-size:17px;line-height:1.75;font-weight:800;box-shadow:0 12px 30px rgba(69,115,172,.08);backdrop-filter:blur(6px)}.hero-summary span{display:block}.hero-lead{font-size:16px;font-weight:800;margin:17px 0}.hero-actions{display:flex;gap:16px;align-items:center}.button{min-height:56px;padding:0 24px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-size:14px;font-weight:900;border:1px solid transparent;transition:.2s}.button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.button:hover{transform:translateY(-3px)}.button--primary{background:linear-gradient(135deg,#0878ff,#1459e6);color:#fff;box-shadow:0 14px 26px rgba(18,92,225,.24)}.button--secondary{background:rgba(255,255,255,.88);border-color:#bed5f3;box-shadow:0 10px 25px rgba(44,89,145,.09);backdrop-filter:blur(8px)}.hero-note{font-size:11px;margin:12px 0 0;color:#466180}
.map-visual{position:absolute;width:570px;height:650px;left:28.2%;top:20px;opacity:.82;z-index:1;pointer-events:none;filter:drop-shadow(0 18px 34px rgba(73,126,192,.08))}.map-visual img{width:100%;height:100%;object-fit:contain;display:block}
.operation-panel{margin-top:0;background:linear-gradient(155deg,rgba(255,255,255,.77),rgba(245,250,255,.62));border:1px solid rgba(157,194,239,.68);border-radius:20px;padding:17px 18px 18px;box-shadow:var(--shadow);backdrop-filter:blur(16px);position:relative;z-index:5}.operation-panel:after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 1px 0 rgba(255,255,255,.95);pointer-events:none}.operation-panel>h2{text-align:center;color:#1265e8;font-size:21px;margin:0 0 12px;font-weight:900}.panel-rule{height:1px;background:linear-gradient(90deg,transparent,#bdd8f8 15%,#bdd8f8 85%,transparent);margin-bottom:12px}.operation-card{background:linear-gradient(180deg,rgba(219,235,255,.9),rgba(238,247,255,.8));border:1px solid #9fc8fb;border-radius:17px;padding:13px;box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}.operation-brand{background:rgba(255,255,255,.96);border-radius:12px;min-height:58px;display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:7px 18px;box-shadow:0 10px 22px rgba(54,95,148,.13)}.operation-brand img{height:42px;width:180px;object-fit:contain}.operation-brand strong{text-align:center;font-size:15px}.operation-message{text-align:center;font-size:16px;font-weight:900;margin:12px 0}.operation-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.operation-item{background:linear-gradient(145deg,#fff,#fbfdff);border:1px solid #bfd8f7;border-radius:12px;min-height:110px;padding:13px 10px 10px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:var(--card-shadow);transition:.2s}.operation-item:hover{transform:translateY(-3px);box-shadow:0 18px 32px rgba(42,91,151,.15)}.operation-item svg{width:37px;height:37px;fill:none;stroke:#1268f1;stroke-width:2.25;stroke-linecap:round;stroke-linejoin:round;margin-bottom:8px}.operation-item strong{font-size:17px;line-height:1.25}.operation-item span{font-size:10px;margin-top:5px;color:#405d82}.partner-card{background:rgba(255,255,255,.93);border:1px solid #b7d4f5;border-radius:11px;margin-top:10px;padding:10px 12px;text-align:center;display:flex;flex-direction:column;gap:2px;box-shadow:0 8px 18px rgba(49,94,151,.07)}.partner-card small{color:#2c6ed5;font-weight:900;letter-spacing:.17em;font-size:7px}.partner-card strong{font-size:14px}.partner-card span{font-size:8px;color:#6c7f98}.thumb-row{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:9px}.thumb-row figure{margin:0;overflow:hidden;border-radius:8px;background:#fff;border:1px solid rgba(179,207,241,.65);box-shadow:0 4px 10px rgba(45,87,140,.08)}.thumb-row img{width:100%;height:45px;object-fit:cover;filter:saturate(.92) contrast(.98)}.thumb-row figcaption{font-size:8px;text-align:center;font-weight:800;padding:4px 1px;color:#15396e;white-space:nowrap}
.hero-orb{position:absolute;border:1px solid rgba(74,135,219,.11);border-radius:50%;z-index:1}.hero-orb--one{width:280px;height:280px;right:-64px;top:-106px;box-shadow:inset 0 0 0 54px rgba(255,255,255,.18)}.hero-orb--two{width:460px;height:460px;right:-250px;bottom:90px;border-width:70px;border-color:rgba(255,255,255,.24)}
.kpi-strip{max-width:1390px;margin:10px auto 0;padding:0 28px;display:grid;grid-template-columns:repeat(6,1fr);gap:10px;position:relative;z-index:6}.kpi-card{min-height:142px;background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(248,251,255,.84));border:1px solid rgba(184,211,244,.72);border-radius:14px;padding:18px 14px;display:flex;align-items:flex-start;gap:10px;box-shadow:0 14px 30px rgba(45,90,147,.09);backdrop-filter:blur(10px);transition:.2s}.kpi-card:hover{transform:translateY(-3px);box-shadow:0 20px 38px rgba(45,90,147,.13)}.kpi-card svg{width:34px;height:34px;flex:none;fill:none;stroke:#1167ec;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.kpi-card>div{min-width:0}.kpi-card strong{display:block;font-size:27px;line-height:1.1;font-weight:900;color:#0a397d;white-space:nowrap}.kpi-card strong em{font-style:normal;font-size:.62em;margin-left:2px}.kpi-card b{display:block;font-size:11px;line-height:1.45;margin-top:10px}.kpi-card span{display:block;font-size:9px;line-height:1.45;color:#6b7d96;margin-top:9px}
@media(max-width:1280px){.header-inner{padding:0 25px}.global-nav{gap:20px;font-size:14px}.header-cta{padding:0 18px;font-size:12px}.hero-inner{gap:34px;padding-left:28px;padding-right:28px}.hero h1{font-size:60px}.map-visual{left:25%;opacity:.68}.operation-brand{grid-template-columns:1fr}.operation-brand strong{display:none}.kpi-strip{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.site-header{height:70px}.global-nav,.header-cta{display:none}.menu-button{display:block;margin-left:auto}.brand{width:150px}.hero-inner{grid-template-columns:1fr;padding:24px 20px 30px}.hero-copy{padding-top:24px}.hero h1{font-size:clamp(46px,12vw,68px)}.hero-subtitle{font-size:19px}.map-visual{width:430px;height:560px;left:auto;right:-54px;top:72px;opacity:.32}.operation-panel{margin-top:5px}.hero-actions{flex-wrap:wrap}.kpi-strip{grid-template-columns:repeat(2,1fr);padding:0 20px}.kpi-card{min-height:130px}}
@media(max-width:560px){.header-inner{padding:0 15px}.hero-inner{padding-left:15px;padding-right:15px}.eyebrow{font-size:9px}.hero h1{font-size:42px}.hero-subtitle{font-size:16px}.hero-summary{font-size:14px;padding:10px 14px}.hero-actions{display:grid}.button{width:100%}.operation-panel{padding:11px}.operation-grid{gap:8px}.operation-item{min-height:100px}.thumb-row{grid-template-columns:repeat(2,1fr)}.kpi-strip{grid-template-columns:1fr}.kpi-card{min-height:auto}.kpi-card strong{font-size:25px}}



/* ===== SECTION 02: ②実績.zip ===== */
:root {
  --navy: #07336f;
  --blue: #1668f2;
  --blue-soft: #6fa6fb;
  --text-muted: #7186a4;
  --border: rgba(88, 151, 237, .38);
  --bg: #edf6ff;
  --card: rgba(255,255,255,.94);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--navy);
  font-family: "Noto Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.achievements {
  position: relative;
  overflow: hidden;
  padding: clamp(42px, 5vw, 70px) 18px clamp(34px, 4vw, 54px);
  background:
    radial-gradient(circle at 50% -30%, rgba(255,255,255,.98) 0 24%, rgba(242,248,255,.94) 53%, rgba(229,241,255,.92) 100%),
    linear-gradient(180deg, #f7fbff 0%, #e9f4ff 100%);
}

.achievements::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(100deg, transparent 0 20%, rgba(255,255,255,.42) 48%, transparent 75%);
  opacity: .55;
}

.achievements__inner {
  position: relative;
  width: min(100%, 1460px);
  margin: 0 auto;
}

.section-kicker {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 14px;
  margin-bottom: 22px;
  color: var(--blue);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .28em;
}
.section-kicker span {
  width: 22px;
  height: 3px;
  border-radius: 999px;
  background: #f2cf00;
}

h2 {
  margin: 0 0 clamp(34px, 4vw, 52px);
  text-align: center;
  font-size: clamp(28px, 3.1vw, 48px);
  line-height: 1.25;
  letter-spacing: .01em;
  font-weight: 900;
}

.achievement-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 18px;
  align-items: stretch;
}

.achievement-card {
  position: relative;
  min-height: 360px;
  padding: 25px 18px 26px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  border: 1px solid var(--border);
  border-radius: 24px;
  background: var(--card);
  box-shadow:
    0 22px 45px rgba(35, 83, 143, .08),
    inset 0 1px 0 rgba(255,255,255,.9);
  transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}

.achievement-card:hover {
  transform: translateY(-5px);
  border-color: rgba(22,104,242,.55);
  box-shadow: 0 30px 58px rgba(35, 83, 143, .14), inset 0 1px 0 rgba(255,255,255,.9);
}

.achievement-card--featured::before {
  content: "";
  position: absolute;
  top: -1px;
  left: -1px;
  right: -1px;
  height: 5px;
  border-radius: 24px 24px 0 0;
  background: linear-gradient(90deg, #0c64ec, #287bff);
}

.achievement-card__eyebrow {
  min-height: 18px;
  margin-bottom: 18px;
  color: var(--blue-soft);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .18em;
}

.achievement-card:not(.achievement-card--featured) .achievement-card__eyebrow { display: none; }

.achievement-card__icon {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  color: var(--blue);
  margin-bottom: 15px;
}
.achievement-card__icon--spacer { margin-top: 36px; }
.achievement-card__icon svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.achievement-card__value {
  min-height: 82px;
  display: flex;
  justify-content: center;
  align-items: baseline;
  white-space: nowrap;
}
.achievement-card__value strong {
  font-size: clamp(42px, 4.2vw, 66px);
  line-height: 1;
  letter-spacing: -.045em;
  font-weight: 900;
}
.achievement-card__value .prefix {
  margin-right: 1px;
  font-size: 22px;
  font-weight: 900;
}
.achievement-card__value .unit {
  margin-left: 7px;
  font-size: 17px;
  font-weight: 900;
}

.achievement-card__divider {
  width: 100%;
  height: 1px;
  margin: 8px 0 23px;
  background: linear-gradient(90deg, transparent, rgba(87,147,224,.35) 15%, rgba(87,147,224,.35) 85%, transparent);
}

.achievement-card h3 {
  margin: 0;
  font-size: 16px;
  line-height: 1.55;
  font-weight: 900;
}
.achievement-card p {
  margin: 14px 0 0;
  color: var(--text-muted);
  font-size: 12.5px;
  line-height: 1.65;
  font-weight: 500;
}

.achievements__note {
  margin: 34px 0 0;
  text-align: center;
  color: var(--text-muted);
  font-size: 14px;
  font-weight: 500;
}

@media (max-width: 1180px) {
  .achievement-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .achievement-card { min-height: 340px; }
}

@media (max-width: 700px) {
  .achievements { padding-left: 14px; padding-right: 14px; }
  .achievement-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .achievement-card { min-height: 292px; padding: 20px 12px 22px; border-radius: 18px; }
  .achievement-card--featured::before { border-radius: 18px 18px 0 0; }
  .achievement-card__eyebrow { font-size: 9px; margin-bottom: 12px; }
  .achievement-card__icon { width: 42px; height: 42px; margin-bottom: 10px; }
  .achievement-card__icon--spacer { margin-top: 29px; }
  .achievement-card__value { min-height: 62px; }
  .achievement-card__value strong { font-size: clamp(33px, 10vw, 48px); }
  .achievement-card__value .prefix { font-size: 17px; }
  .achievement-card__value .unit { margin-left: 4px; font-size: 13px; }
  .achievement-card__divider { margin: 5px 0 16px; }
  .achievement-card h3 { font-size: 13px; }
  .achievement-card p { margin-top: 9px; font-size: 10px; }
  .achievements__note { margin-top: 24px; font-size: 11px; line-height: 1.7; }
}

@media (max-width: 420px) {
  .achievement-grid { grid-template-columns: 1fr; }
  .achievement-card { min-height: 280px; }
}

@media (prefers-reduced-motion: reduce) {
  .achievement-card { transition: none; }
  .achievement-card:hover { transform: none; }
}



/* ===== SECTION 03: ③守秘義務.zip ===== */
:root {
  --bc-navy: #07336f;
  --bc-blue: #1668f2;
  --bc-muted: #607999;
  --bc-border: rgba(85, 149, 235, .38);
  --bc-panel: rgba(255,255,255,.78);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--bc-navy);
  font-family: "Noto Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  background: #edf6ff;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.bridge-confidential {
  position: relative;
  overflow: hidden;
  padding: clamp(24px, 3.5vw, 44px) 24px;
  background:
    radial-gradient(circle at 72% 3%, rgba(255,255,255,.92), transparent 27%),
    linear-gradient(180deg, #f4f9ff 0%, #e8f3ff 100%);
}

.bridge-confidential::before,
.bridge-confidential::after {
  content: "";
  position: absolute;
  pointer-events: none;
  border-radius: 50%;
}
.bridge-confidential::before {
  width: 360px;
  height: 360px;
  right: -160px;
  top: -170px;
  border: 1px solid rgba(89,153,236,.14);
}
.bridge-confidential::after {
  width: 560px;
  height: 560px;
  left: -390px;
  bottom: -440px;
  border: 1px solid rgba(89,153,236,.09);
}

.bridge-confidential__inner {
  position: relative;
  width: min(100%, 1180px);
  margin: 0 auto;
}

.bridge-confidential__panel {
  position: relative;
  overflow: hidden;
  padding: 30px 44px 22px;
  border: 1px solid var(--bc-border);
  border-radius: 20px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.92), rgba(244,249,255,.74)),
    var(--bc-panel);
  box-shadow:
    0 22px 55px rgba(39, 89, 148, .10),
    inset 0 1px 0 rgba(255,255,255,.95);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .65s ease, transform .65s ease, box-shadow .25s ease;
}
.bridge-confidential__panel.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.bridge-confidential__panel:hover {
  box-shadow:
    0 28px 66px rgba(39, 89, 148, .13),
    inset 0 1px 0 rgba(255,255,255,.98);
}

.bridge-confidential__top {
  display: grid;
  grid-template-columns: 250px 1px minmax(0, 1fr) 90px;
  gap: 34px;
  align-items: center;
  min-height: 118px;
}

.bridge-confidential__summary {
  display: grid;
  grid-template-columns: 62px minmax(0, 1fr);
  gap: 18px;
  align-items: center;
}

.bridge-confidential__summary h2 {
  margin: 0;
  color: var(--bc-navy);
  font-size: clamp(20px, 2vw, 28px);
  line-height: 1.55;
  letter-spacing: .01em;
  font-weight: 900;
}

.bridge-confidential__icon {
  display: grid;
  place-items: center;
  color: var(--bc-blue);
  flex: 0 0 auto;
}
.bridge-confidential__icon svg,
.bridge-confidential__lock svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.bridge-confidential__icon--info {
  width: 60px;
  height: 60px;
}
.bridge-confidential__icon--info svg { stroke-width: 3.1; }
.bridge-confidential__icon--info .fill-dot { fill: currentColor; stroke: none; }

.bridge-confidential__copy {
  color: #294f7e;
  font-size: clamp(14px, 1.28vw, 17px);
  line-height: 1.75;
  font-weight: 700;
  letter-spacing: .01em;
}
.bridge-confidential__copy p { margin: 0; }
.bridge-confidential__copy p + p { margin-top: 12px; }

.bridge-confidential__divider { background: rgba(93, 148, 218, .30); }
.bridge-confidential__divider--vertical {
  width: 1px;
  height: 92px;
  justify-self: center;
}
.bridge-confidential__divider--horizontal {
  width: 100%;
  height: 1px;
  margin: 17px 0 14px;
}

.bridge-confidential__lock {
  position: relative;
  width: 72px;
  height: 72px;
  display: grid;
  place-items: center;
  color: var(--bc-blue);
  justify-self: end;
}
.bridge-confidential__lock svg {
  position: relative;
  z-index: 2;
  width: 62px;
  height: 62px;
  stroke-width: 2.6;
}
.bridge-confidential__lock-halo {
  position: absolute;
  inset: -14px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(22,104,242,.14), rgba(22,104,242,.035) 57%, transparent 72%);
  box-shadow: 0 0 34px rgba(22,104,242,.10);
}

.bridge-confidential__bottom {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 22px;
  min-height: 55px;
  text-align: left;
}
.bridge-confidential__icon--building {
  width: 42px;
  height: 42px;
}
.bridge-confidential__icon--building svg { stroke-width: 2.65; }

.bridge-confidential__bottom-copy {
  color: #264d7c;
  font-size: clamp(13px, 1.15vw, 16px);
  line-height: 1.55;
}
.bridge-confidential__bottom-copy p { margin: 0; }
.bridge-confidential__bottom-copy p + p { margin-top: 3px; }
.bridge-confidential__bottom-copy strong {
  color: var(--bc-navy);
  font-size: 1.08em;
  font-weight: 900;
}

@media (max-width: 960px) {
  .bridge-confidential__panel { padding: 28px 30px 22px; }
  .bridge-confidential__top {
    grid-template-columns: minmax(210px, .8fr) 1px minmax(0, 1.5fr) 72px;
    gap: 24px;
  }
  .bridge-confidential__summary { grid-template-columns: 52px minmax(0,1fr); gap: 14px; }
  .bridge-confidential__icon--info { width: 52px; height: 52px; }
  .bridge-confidential__lock { width: 62px; height: 62px; }
  .bridge-confidential__lock svg { width: 54px; height: 54px; }
}

@media (max-width: 760px) {
  .bridge-confidential { padding-left: 14px; padding-right: 14px; }
  .bridge-confidential__panel { padding: 24px 20px 20px; border-radius: 18px; }
  .bridge-confidential__top {
    grid-template-columns: 1fr auto;
    gap: 18px 16px;
    min-height: 0;
  }
  .bridge-confidential__summary { grid-column: 1; }
  .bridge-confidential__lock { grid-column: 2; grid-row: 1; }
  .bridge-confidential__divider--vertical { display: none; }
  .bridge-confidential__copy { grid-column: 1 / -1; }
  .desktop-only { display: none; }
  .bridge-confidential__bottom { align-items: flex-start; justify-content: flex-start; }
}

@media (max-width: 520px) {
  .bridge-confidential__panel { padding: 21px 16px 18px; }
  .bridge-confidential__summary { grid-template-columns: 44px minmax(0,1fr); gap: 12px; }
  .bridge-confidential__icon--info { width: 44px; height: 44px; }
  .bridge-confidential__summary h2 { font-size: 19px; }
  .bridge-confidential__lock { width: 50px; height: 50px; }
  .bridge-confidential__lock svg { width: 46px; height: 46px; }
  .bridge-confidential__lock-halo { inset: -10px; }
  .bridge-confidential__copy { font-size: 13px; line-height: 1.75; }
  .bridge-confidential__bottom { gap: 13px; }
  .bridge-confidential__icon--building { width: 34px; height: 34px; margin-top: 2px; }
  .bridge-confidential__bottom-copy { font-size: 12px; line-height: 1.6; }
}

@media (prefers-reduced-motion: reduce) {
  .bridge-confidential__panel { opacity: 1; transform: none; transition: none; }
}



/* ===== SECTION 04: ④課題.zip ===== */
:root{
  --bc-navy:#0b3473;
  --bc-blue:#1769ff;
  --bc-blue-2:#3b82f6;
  --bc-border:#cfe0fb;
  --bc-bg:#edf6ff;
  --bc-white:#fff;
  --bc-muted:#5f7596;
}
*{box-sizing:border-box}
html{font-family:"Noto Sans JP","Yu Gothic",Meiryo,sans-serif;background:#fff;color:var(--bc-navy)}
body{margin:0}
.bridge-challenges{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 12% 8%, rgba(255,255,255,.98) 0 17%, transparent 46%),
    linear-gradient(135deg,#f8fbff 0%,#edf6ff 52%,#e5f1ff 100%);
  padding:70px 24px 78px;
  isolation:isolate;
}
.bridge-challenges::before,
.bridge-challenges::after{
  content:"";
  position:absolute;
  width:360px;height:360px;
  border:1px solid rgba(70,130,230,.09);
  transform:rotate(45deg);
  z-index:-1;
}
.bridge-challenges::before{left:-250px;top:20px}
.bridge-challenges::after{right:-250px;bottom:-100px}
.bridge-challenges__glow{position:absolute;border-radius:50%;filter:blur(45px);opacity:.5;z-index:-1}
.bridge-challenges__glow--left{width:320px;height:320px;left:-120px;bottom:-120px;background:rgba(119,176,255,.18)}
.bridge-challenges__glow--right{width:320px;height:320px;right:-100px;top:10px;background:rgba(255,255,255,.75)}
.bridge-challenges__inner{width:min(1120px,100%);margin:0 auto}
.bridge-challenges__eyebrow{display:flex;align-items:center;gap:12px;font-size:12px;font-weight:800;letter-spacing:.22em;color:var(--bc-blue);margin-bottom:24px}
.bridge-challenges__eyebrow-line{width:28px;height:3px;border-radius:999px;background:#f2cf00;box-shadow:0 0 0 1px rgba(255,255,255,.35)}
.bridge-challenges__title{margin:0 0 34px;font-size:clamp(32px,4.5vw,54px);line-height:1.22;letter-spacing:-.035em;font-weight:900;color:var(--bc-navy);text-shadow:0 8px 24px rgba(12,61,123,.05)}
.bridge-challenges__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px}
.bridge-challenges__item{
  display:flex;
  align-items:center;
  gap:16px;
  min-height:72px;
  padding:18px 24px 18px 22px;
  background:rgba(255,255,255,.95);
  border:1px solid rgba(201,220,248,.98);
  border-left:5px solid var(--bc-blue);
  border-radius:11px;
  box-shadow:0 14px 34px rgba(23,77,144,.08), inset 0 1px 0 rgba(255,255,255,.92);
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.bridge-challenges__item:hover{transform:translateY(-3px);box-shadow:0 20px 42px rgba(23,77,144,.13);border-color:#b8d4ff}
.bridge-challenges__icon{flex:0 0 27px;width:27px;height:27px;display:grid;place-items:center;border:2px solid var(--bc-blue-2);border-radius:50%;color:var(--bc-blue);background:#fff;box-shadow:0 4px 12px rgba(44,115,255,.08)}
.bridge-challenges__icon svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.bridge-challenges__item p{margin:0;font-size:16px;line-height:1.55;font-weight:700;letter-spacing:.01em;color:#193c72}
@media (max-width:820px){
  .bridge-challenges{padding:58px 20px 64px}
  .bridge-challenges__grid{grid-template-columns:1fr}
  .bridge-challenges__title br{display:none}
}
@media (max-width:540px){
  .bridge-challenges{padding:48px 16px 54px}
  .bridge-challenges__eyebrow{margin-bottom:18px}
  .bridge-challenges__title{font-size:34px;margin-bottom:26px}
  .bridge-challenges__item{padding:16px 16px 16px 14px;gap:12px;min-height:68px}
  .bridge-challenges__item p{font-size:15px}
}



/* ===== SECTION 05: ⑤.zip ===== */
:root {
  --br-navy: #0a2f6f;
  --br-blue: #1466ff;
  --br-blue-2: #4f8cff;
  --br-text: #17335f;
  --br-muted: #657b9e;
  --br-line: #cfe0fb;
  --br-bg: #f8fbff;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--br-text);
  background: #fff;
  font-family: "Noto Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", system-ui, sans-serif;
}

.br-about {
  position: relative;
  overflow: hidden;
  padding: clamp(72px, 8vw, 128px) 24px;
  background:
    radial-gradient(circle at 82% 30%, rgba(40,110,255,.13), transparent 31%),
    radial-gradient(circle at 8% 92%, rgba(40,110,255,.08), transparent 25%),
    linear-gradient(135deg, #ffffff 0%, #fbfdff 45%, #f2f7ff 100%);
}

.br-about__inner {
  position: relative;
  z-index: 2;
  max-width: 1420px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(520px, .92fr);
  gap: clamp(42px, 5vw, 80px);
  align-items: center;
}

.br-about__eyebrow {
  margin: 0 0 28px;
  display: flex;
  align-items: center;
  gap: 14px;
  color: var(--br-blue);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .18em;
}
.br-about__eyebrow span { width: 28px; height: 3px; background: #f3d400; border-radius: 3px; }

.br-about__title {
  margin: 0;
  color: var(--br-navy);
  font-size: clamp(44px, 3.65vw, 72px);
  line-height: 1.28;
  letter-spacing: -.035em;
  font-weight: 800;
}
.br-about__title strong {
  display: inline-block;
  color: var(--br-blue);
  font-weight: 900;
  white-space: nowrap;
}

.br-about__text {
  margin-top: 34px;
  max-width: 680px;
  font-size: clamp(16px, 1.15vw, 20px);
  line-height: 2;
  font-weight: 500;
}
.br-about__text p { margin: 0 0 22px; }

.br-about__flow {
  position: relative;
  padding: 38px;
  border: 1px solid rgba(103,155,238,.34);
  border-radius: 28px;
  background: linear-gradient(180deg, rgba(235,244,255,.82), rgba(222,236,255,.72));
  box-shadow: 0 28px 70px rgba(38,92,172,.12), inset 0 1px 0 rgba(255,255,255,.8);
  backdrop-filter: blur(12px);
}

.br-about__rail {
  position: absolute;
  left: 74px;
  top: 72px;
  bottom: 72px;
  width: 3px;
  background: repeating-linear-gradient(to bottom, rgba(42,111,255,.85) 0 5px, transparent 5px 11px);
}

.br-step {
  position: relative;
  z-index: 2;
  min-height: 144px;
  padding: 25px 26px 25px 94px;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 26px;
  border: 1px solid rgba(178,204,244,.75);
  border-radius: 18px;
  background: rgba(255,255,255,.92);
  box-shadow: 0 14px 34px rgba(36,83,151,.10);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.br-step + .br-step { margin-top: 22px; }
.br-step:hover {
  transform: translateY(-4px);
  border-color: rgba(64,128,255,.55);
  box-shadow: 0 22px 44px rgba(36,83,151,.16);
}

.br-step__number {
  position: absolute;
  left: 24px;
  top: 50%;
  width: 58px;
  height: 58px;
  transform: translateY(-50%);
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: white;
  font-size: 28px;
  font-weight: 800;
  background: linear-gradient(145deg, #2c72ff, #5d95ff);
  box-shadow: 0 12px 24px rgba(46,112,255,.26);
}
.br-step h3 {
  margin: 0 0 8px;
  color: var(--br-navy);
  font-size: clamp(21px, 1.55vw, 29px);
  line-height: 1.3;
}
.br-step p {
  margin: 0;
  color: var(--br-muted);
  font-size: clamp(14px, .95vw, 17px);
  line-height: 1.7;
  font-weight: 500;
}
.br-step__icon {
  width: 72px;
  height: 72px;
  display: grid;
  place-items: center;
  color: #2b72ff;
}
.br-step__icon svg {
  width: 60px;
  height: 60px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.4;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.br-about__decor {
  position: absolute;
  border: 42px solid rgba(72,132,239,.05);
  border-radius: 50%;
  pointer-events: none;
}
.br-about__decor--top { width: 290px; height: 290px; right: -110px; top: -140px; }
.br-about__decor--bottom { width: 250px; height: 250px; left: -105px; bottom: -145px; }

.br-reveal { opacity: 0; transform: translateY(22px); transition: opacity .65s ease, transform .65s ease; }
.br-reveal.is-visible { opacity: 1; transform: none; }

@media (max-width: 1180px) {
  .br-about__inner { grid-template-columns: 1fr; gap: 54px; }
  .br-about__copy { max-width: 820px; }
  .br-about__flow { max-width: 820px; width: 100%; }
}

@media (max-width: 680px) {
  .br-about { padding: 64px 18px; }
  .br-about__title { font-size: clamp(38px, 12vw, 54px); }
  .br-about__flow { padding: 20px; border-radius: 22px; }
  .br-about__rail { left: 49px; top: 66px; bottom: 66px; }
  .br-step {
    min-height: 126px;
    padding: 20px 18px 20px 72px;
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .br-step__number { left: 14px; width: 48px; height: 48px; font-size: 23px; }
  .br-step__icon { position: absolute; right: 14px; top: 16px; width: 46px; height: 46px; opacity: .9; }
  .br-step__icon svg { width: 42px; height: 42px; }
  .br-step__body { padding-right: 50px; }
}



/* ===== SECTION 06: ⑥.zip ===== */
*{box-sizing:border-box}
:root{
  --navy:#0b3478;
  --blue:#246cff;
  --blue2:#5a92ff;
  --line:#c9ddff;
  --bg:#eef6ff;
  --text:#203d68;
  --muted:#687d99;
}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Noto Sans JP","Yu Gothic","Hiragino Kaku Gothic ProN",system-ui,sans-serif;
  color:var(--text);
  background:#fff;
}
img{display:block;width:100%}
a{color:inherit;text-decoration:none}
.bsf-section{
  position:relative;
  overflow:hidden;
  padding:110px 24px 130px;
  background:
    radial-gradient(circle at 91% 8%,rgba(72,137,255,.18),transparent 30%),
    radial-gradient(circle at 8% 94%,rgba(111,160,255,.12),transparent 26%),
    linear-gradient(180deg,#f4f9ff 0%,#eaf4ff 100%);
}
.bsf-section::before,.bsf-section::after{
  content:"";
  position:absolute;
  border:1px solid rgba(75,135,235,.12);
  border-radius:50%;
  pointer-events:none;
}
.bsf-section::before{width:420px;height:420px;right:-180px;top:-160px}
.bsf-section::after{width:300px;height:300px;left:-160px;bottom:-130px}
.bsf-container{max-width:1240px;margin:0 auto;position:relative;z-index:1}
.bsf-heading{margin-bottom:36px}
.bsf-kicker{
  display:flex;align-items:center;gap:12px;
  color:var(--blue);font-size:12px;font-weight:800;
  letter-spacing:.22em;
}
.bsf-kicker span{width:32px;height:3px;background:#f2d100;border-radius:999px}
.bsf-heading h1{
  margin:15px 0 18px;
  color:var(--navy);
  font-size:clamp(32px,4vw,58px);
  letter-spacing:-.04em;
  line-height:1.25;
}
.bsf-heading p{
  margin:0;
  max-width:920px;
  font-size:16px;
  line-height:1.9;
  color:#526986;
}
.bsf-group{
  margin-top:24px;
  padding:22px;
  border:1px solid rgba(125,170,240,.45);
  border-radius:20px;
  background:rgba(255,255,255,.76);
  box-shadow:0 20px 48px rgba(30,76,145,.09);
  backdrop-filter:blur(14px);
}
.bsf-group-head{
  display:flex;align-items:center;justify-content:space-between;
  gap:20px;margin-bottom:18px
}
.bsf-chip{
  display:inline-flex;align-items:center;
  padding:7px 12px;
  border-radius:999px;
  color:#246cff;
  background:#eaf2ff;
  border:1px solid #cfe0ff;
  font-size:12px;font-weight:800;
}
.bsf-group-head h2{
  margin:0;color:var(--navy);
  font-size:clamp(20px,2.4vw,30px);
  letter-spacing:-.025em;
}
.bsf-grid{display:grid;gap:18px}
.bsf-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.bsf-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.bsf-card{
  min-width:0;
  overflow:hidden;
  border:1px solid #d6e5fb;
  border-radius:16px;
  background:#fff;
  box-shadow:0 10px 28px rgba(29,70,130,.08);
  transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease;
}
.bsf-card:hover{
  transform:translateY(-5px);
  border-color:#a9c8ff;
  box-shadow:0 20px 42px rgba(28,79,160,.16);
}
.bsf-card img{
  height:190px;
  object-fit:cover;
  transition:transform .45s ease,filter .45s ease;
  filter:saturate(.95) contrast(1.03);
}
.bsf-grid-4 .bsf-card img{height:150px}
.bsf-card:hover img{transform:scale(1.035);filter:saturate(1.05) contrast(1.05)}
.bsf-card-body{padding:18px 20px 21px}
.bsf-card-tag{
  display:block;
  color:var(--blue);
  font-size:10px;
  font-weight:800;
  letter-spacing:.08em;
  margin-bottom:8px;
}
.bsf-card h3{
  margin:0 0 10px;
  color:var(--navy);
  font-size:21px;
  line-height:1.45;
}
.bsf-grid-4 .bsf-card h3{font-size:18px}
.bsf-card p{
  margin:0;
  color:var(--muted);
  font-size:13px;
  line-height:1.75;
}
.bsf-card.is-visible{animation:bsfFade .65s both}
@keyframes bsfFade{
  from{opacity:0;transform:translateY(18px)}
  to{opacity:1;transform:translateY(0)}
}
@media(max-width:960px){
  .bsf-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bsf-grid-4 .bsf-card img{height:180px}
}
@media(max-width:680px){
  .bsf-section{padding:76px 16px 90px}
  .bsf-group{padding:15px;border-radius:16px}
  .bsf-group-head{align-items:flex-start;flex-direction:column;gap:10px}
  .bsf-grid-2,.bsf-grid-4{grid-template-columns:1fr}
  .bsf-card img,.bsf-grid-4 .bsf-card img{height:190px}
  .bsf-heading p{font-size:14px}
}
@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important;animation:none!important;transition:none!important}
}



/* ===== SECTION 07: ⑦.zip ===== */
*{box-sizing:border-box}
:root{
  --bpe-navy:#0a3478;
  --bpe-blue:#1769ff;
  --bpe-blue2:#4a8cff;
  --bpe-line:#c9dcfb;
  --bpe-bg:#edf6ff;
  --bpe-text:#183b6b;
  --bpe-muted:#6a7f9b;
  --bpe-gold:#e3b600;
}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Noto Sans JP","Yu Gothic","Hiragino Kaku Gothic ProN",system-ui,sans-serif;
  color:var(--bpe-text);
  background:#fff;
}
img{display:block;width:100%}
a{text-decoration:none;color:inherit}
.bpe-section{
  position:relative;
  overflow:hidden;
  padding:100px 24px 120px;
  background:
    radial-gradient(circle at 90% 8%,rgba(71,137,255,.18),transparent 30%),
    radial-gradient(circle at 5% 74%,rgba(90,145,255,.11),transparent 28%),
    linear-gradient(180deg,#f7fbff 0%,#edf6ff 100%);
}
.bpe-section::before{
  content:"";position:absolute;right:-180px;top:-200px;
  width:520px;height:520px;border:1px solid rgba(70,130,230,.11);
  border-radius:50%;
}
.bpe-container{max-width:1280px;margin:0 auto;position:relative;z-index:1}
.bpe-heading{margin-bottom:38px}
.bpe-kicker{
  display:flex;align-items:center;gap:13px;color:var(--bpe-blue);
  font-size:12px;font-weight:800;letter-spacing:.22em
}
.bpe-kicker span{width:34px;height:3px;border-radius:99px;background:#f0cf00}
.bpe-heading h1{
  margin:16px 0 20px;color:var(--bpe-navy);
  font-size:clamp(38px,5vw,68px);line-height:1.2;letter-spacing:-.045em
}
.bpe-heading p{margin:0;color:#506985;font-size:16px;line-height:1.8}
.bpe-current-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.bpe-current-card{
  position:relative;display:grid;grid-template-columns:52% 48%;
  padding:18px;border:1px solid rgba(138,178,235,.48);
  border-radius:18px;background:rgba(255,255,255,.88);
  box-shadow:0 18px 42px rgba(28,72,138,.09);
  transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease
}
.bpe-current-card:hover{transform:translateY(-5px);box-shadow:0 26px 54px rgba(30,82,165,.16);border-color:#a7c8ff}
.bpe-badge{
  position:absolute;left:18px;top:10px;z-index:2;
  padding:6px 11px;border-radius:999px;background:#eaf2ff;color:var(--bpe-blue);
  border:1px solid #cfe0ff;font-size:11px;font-weight:800
}
.bpe-current-card>img{
  height:245px;object-fit:cover;border-radius:13px
}
.bpe-current-body{padding:24px 12px 12px 24px;display:flex;flex-direction:column;justify-content:space-between}
.bpe-current-body h2{margin:0 0 18px;color:var(--bpe-navy);font-size:21px;line-height:1.4}
.bpe-current-body strong{display:block;color:var(--bpe-navy);font-size:38px;line-height:1;letter-spacing:-.04em}
.bpe-current-body ul{list-style:none;margin:25px 0 0;padding:0}
.bpe-current-body li{position:relative;margin:9px 0;padding-left:25px;color:#496582;font-size:13px;line-height:1.5}
.bpe-current-body li::before{
  content:"✓";position:absolute;left:0;top:-1px;width:17px;height:17px;
  border:2px solid #65a0ff;color:#1769ff;border-radius:50%;
  display:grid;place-items:center;font-size:10px;font-weight:900
}
.bpe-upcoming{
  position:relative;display:grid;grid-template-columns:30% 44% 26%;
  min-height:245px;margin-top:50px;overflow:hidden;
  border:2px solid #e6bc27;border-radius:18px;
  background:linear-gradient(100deg,#fff 0%,#fff9dc 58%,#fff0a8 100%);
  box-shadow:0 20px 45px rgba(160,122,10,.10)
}
.bpe-upcoming-label{
  position:absolute;left:0;top:-39px;padding:8px 15px;border:2px solid #e6bc27;
  border-radius:9px;background:#fff;color:var(--bpe-navy);font-size:13px;font-weight:800
}
.bpe-upcoming img{height:100%;object-fit:cover}
.bpe-upcoming-copy{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:25px}
.bpe-upcoming-copy span{font-size:14px;font-weight:700;color:#344b70}
.bpe-upcoming-copy h2{margin:14px 0 17px;color:var(--bpe-navy);font-size:23px;line-height:1.45}
.bpe-upcoming-copy p{margin:0;padding-top:14px;border-top:1px solid rgba(133,104,15,.30);min-width:220px;color:#526480}
.bpe-upcoming-number{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}
.bpe-upcoming-number strong{font-size:38px;color:var(--bpe-navy);line-height:1.2}
.bpe-upcoming-number span{margin-top:8px;font-size:15px;font-weight:700;color:#405574}
.bpe-history{margin-top:42px}
.bpe-history-label{
  display:inline-flex;padding:7px 13px;border-radius:8px;
  background:#eaf2ff;color:var(--bpe-blue);font-size:12px;font-weight:800
}
.bpe-history-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:15px}
.bpe-history-card{
  position:relative;overflow:hidden;border:1px solid #d2e2fa;border-radius:16px;
  background:#fff;box-shadow:0 16px 34px rgba(23,68,135,.08);
  transition:transform .28s ease,box-shadow .28s ease
}
.bpe-history-card:hover{transform:translateY(-5px);box-shadow:0 24px 46px rgba(24,78,160,.15)}
.bpe-history-card img{height:155px;object-fit:cover}
.bpe-icon{
  position:absolute;left:18px;top:128px;width:52px;height:52px;
  border-radius:50%;display:grid;place-items:center;background:#fff;
  border:1px solid #d3e4ff;box-shadow:0 9px 20px rgba(25,77,155,.12);
  font-size:24px
}
.bpe-history-card strong{display:block;margin:30px 20px 0;text-align:center;color:var(--bpe-navy);font-size:34px}
.bpe-history-card h3{margin:12px 18px;color:var(--bpe-navy);font-size:18px;line-height:1.45}
.bpe-history-card p{margin:0;padding:0 18px 22px;color:#60758f;font-size:12px;line-height:1.8}
.bpe-cta{
  display:flex;align-items:center;justify-content:space-between;gap:30px;
  margin-top:34px;padding:25px 30px;border:1px solid #bdd7ff;border-radius:16px;
  background:rgba(255,255,255,.7);box-shadow:0 15px 36px rgba(29,75,145,.08)
}
.bpe-cta>div>span{color:var(--bpe-blue);font-size:11px;font-weight:800;letter-spacing:.13em}
.bpe-cta h2{margin:7px 0 6px;color:var(--bpe-navy);font-size:21px}
.bpe-cta p{margin:0;color:#647992;font-size:13px}
.bpe-cta a{
  flex:0 0 auto;padding:17px 24px;border-radius:9px;color:#fff;font-size:14px;font-weight:800;
  background:linear-gradient(135deg,#1874ff,#1357e8);
  box-shadow:0 13px 26px rgba(24,99,240,.28);
  transition:transform .25s ease,box-shadow .25s ease
}
.bpe-cta a:hover{transform:translateY(-3px);box-shadow:0 18px 32px rgba(24,99,240,.36)}
.bpe-reveal{opacity:0;transform:translateY(22px)}
.bpe-reveal.is-visible{animation:bpeFade .7s forwards}
@keyframes bpeFade{to{opacity:1;transform:none}}
@media(max-width:980px){
  .bpe-current-grid{grid-template-columns:1fr}
  .bpe-history-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bpe-upcoming{grid-template-columns:35% 65%}
  .bpe-upcoming-number{grid-column:1/-1;padding:20px;border-top:1px solid rgba(155,116,10,.20)}
}
@media(max-width:700px){
  .bpe-section{padding:74px 15px 88px}
  .bpe-current-card{grid-template-columns:1fr}
  .bpe-current-card>img{height:220px}
  .bpe-current-body{padding:20px 5px 8px}
  .bpe-upcoming{grid-template-columns:1fr;margin-top:60px}
  .bpe-upcoming img{height:220px}
  .bpe-history-grid{grid-template-columns:1fr}
  .bpe-history-card img{height:210px}
  .bpe-cta{align-items:flex-start;flex-direction:column}
  .bpe-cta a{width:100%;text-align:center}
}
@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important;animation:none!important;transition:none!important}
  .bpe-reveal{opacity:1;transform:none}
}



/* ===== SECTION 08: ⑧.zip ===== */
*{box-sizing:border-box}
:root{
  --bfg-navy:#0a3478;
  --bfg-blue:#1769ff;
  --bfg-line:#c9ddff;
  --bfg-muted:#657b98;
}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Noto Sans JP","Yu Gothic","Hiragino Kaku Gothic ProN",system-ui,sans-serif;
  color:var(--bfg-navy);
  background:#fff;
}
button{font:inherit}
.bfg-section{
  position:relative;
  overflow:hidden;
  padding:105px 24px 120px;
  background:
    radial-gradient(circle at 88% 10%,rgba(77,139,255,.15),transparent 30%),
    radial-gradient(circle at 8% 92%,rgba(96,151,255,.10),transparent 28%),
    linear-gradient(180deg,#f7fbff 0%,#eef6ff 100%);
}
.bfg-section::before{
  content:"";position:absolute;right:-170px;top:-180px;
  width:460px;height:460px;border:1px solid rgba(58,119,220,.12);border-radius:50%;
}
.bfg-container{position:relative;z-index:1;max-width:1260px;margin:0 auto}
.bfg-heading{margin-bottom:38px}
.bfg-kicker{
  display:flex;align-items:center;gap:13px;
  color:var(--bfg-blue);font-size:12px;font-weight:800;letter-spacing:.22em
}
.bfg-kicker span{width:34px;height:3px;background:#f0d000;border-radius:99px}
.bfg-heading h1{
  margin:16px 0 18px;
  font-size:clamp(36px,5vw,64px);
  line-height:1.2;letter-spacing:-.045em
}
.bfg-heading p{margin:0;color:#526b88;font-size:16px;line-height:1.8}
.bfg-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:22px;
  align-items:start;
}
.bfg-card{
  position:relative;
  min-width:0;
  padding:0;
  overflow:hidden;
  border:1px solid rgba(177,205,245,.78);
  border-radius:18px;
  background:#fff;
  box-shadow:0 16px 36px rgba(24,70,140,.10);
  cursor:pointer;
  text-align:left;
  transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease;
}
.bfg-photo-wrap{
  position:relative;
  display:block;
  height:205px;
  overflow:hidden;
  background:#dfeeff;
}
.bfg-photo-wrap img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .48s ease,filter .48s ease;
}
.bfg-icon{
  position:absolute;
  left:18px;
  bottom:-22px;
  z-index:2;
  width:52px;height:52px;
  display:grid;place-items:center;
  border-radius:50%;
  background:#fff;
  border:1px solid #d5e5ff;
  box-shadow:0 10px 22px rgba(28,82,170,.17);
  color:var(--bfg-blue);
  font-size:25px;
  font-weight:800;
}
.bfg-copy{
  display:flex;
  min-height:115px;
  padding:31px 20px 21px;
  flex-direction:column;
  background:#fff;
}
.bfg-copy strong{
  font-size:21px;
  line-height:1.4;
  color:var(--bfg-navy);
}
.bfg-copy em{
  margin-top:7px;
  color:var(--bfg-muted);
  font-size:13px;
  font-style:normal;
  line-height:1.6;
}
.bfg-card:hover{
  transform:translateY(-7px);
  border-color:#8bb8ff;
  box-shadow:0 26px 52px rgba(24,75,155,.18);
}
.bfg-card:hover img{transform:scale(1.055);filter:saturate(1.06) contrast(1.04)}
.bfg-note{margin:28px 0 0;color:var(--bfg-muted);font-size:12px}
.bfg-card.bfg-reveal{opacity:0;transform:translateY(22px)}
.bfg-card.bfg-reveal.is-visible{animation:bfgFade .7s forwards}
@keyframes bfgFade{to{opacity:1;transform:none}}
.bfg-modal{
  width:min(920px,calc(100vw - 32px));
  padding:0 0 22px;
  border:0;border-radius:18px;
  overflow:hidden;
  box-shadow:0 35px 90px rgba(0,25,70,.35);
}
.bfg-modal::backdrop{background:rgba(5,22,52,.72);backdrop-filter:blur(5px)}
.bfg-modal img{display:block;width:100%;max-height:70vh;object-fit:cover}
.bfg-modal h2{margin:20px 24px 0;color:var(--bfg-navy);font-size:24px}
.bfg-modal-close{
  position:absolute;right:13px;top:12px;z-index:2;
  width:40px;height:40px;border:0;border-radius:50%;
  color:#fff;background:rgba(0,25,65,.72);font-size:28px;line-height:1;cursor:pointer
}
@media(max-width:1020px){
  .bfg-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
  .bfg-section{padding:74px 15px 90px}
  .bfg-grid{grid-template-columns:1fr}
  .bfg-photo-wrap{height:230px}
}
@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important;animation:none!important;transition:none!important}
  .bfg-card.bfg-reveal{opacity:1;transform:none}
}



/* ===== SECTION 09: ⑨.zip ===== */
*{box-sizing:border-box}
:root{
  --bcv-navy:#0b3478;
  --bcv-text:#173a69;
  --bcv-muted:#637a96;
  --bcv-border:#cbdffc;
}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Noto Sans JP","Yu Gothic","Hiragino Kaku Gothic ProN",system-ui,sans-serif;
  color:var(--bcv-text);
  background:#fff;
}
.bcv-section{
  position:relative;
  overflow:hidden;
  padding:110px 24px 125px;
  background:
    radial-gradient(circle at 92% 12%,rgba(83,143,255,.18),transparent 34%),
    radial-gradient(circle at 8% 92%,rgba(110,164,255,.12),transparent 28%),
    linear-gradient(180deg,#f5faff 0%,#eaf4ff 100%);
}
.bcv-section::before{
  content:"";
  position:absolute;
  width:460px;height:460px;
  right:-180px;top:-180px;
  border:1px solid rgba(63,126,225,.12);
  border-radius:50%;
}
.bcv-container{position:relative;z-index:1;max-width:1260px;margin:0 auto}
.bcv-heading{margin-bottom:44px}
.bcv-kicker{
  display:flex;align-items:center;gap:13px;
  color:#1d66e8;font-size:12px;font-weight:800;letter-spacing:.22em
}
.bcv-kicker span{width:34px;height:3px;background:#f0d000;border-radius:99px}
.bcv-heading h1{
  margin:17px 0 20px;
  color:var(--bcv-navy);
  font-size:clamp(38px,5vw,66px);
  line-height:1.22;
  letter-spacing:-.045em
}
.bcv-heading p{
  margin:0;color:#506985;
  font-size:18px;line-height:1.8
}
.bcv-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
}
.bcv-card{
  --accent:#2e73ff;
  --soft:#edf4ff;
  min-width:0;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  min-height:390px;
  border:1px solid var(--bcv-border);
  border-radius:18px;
  background:rgba(255,255,255,.9);
  box-shadow:0 18px 42px rgba(25,72,140,.09);
  transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease;
}
.bcv-card--green{--accent:#2dbb76;--soft:#eafaf2}
.bcv-card--purple{--accent:#9d6cff;--soft:#f4edff}
.bcv-card--yellow{--accent:#f4c400;--soft:#fff8db}
.bcv-card:hover{
  transform:translateY(-7px);
  border-color:color-mix(in srgb,var(--accent) 55%,white);
  box-shadow:0 28px 56px rgba(24,79,160,.16);
}
.bcv-card-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  padding:30px 28px 0;
}
.bcv-dot{
  width:14px;height:14px;
  margin-top:18px;border-radius:50%;
  background:var(--accent);
  box-shadow:0 0 0 7px color-mix(in srgb,var(--accent) 8%,transparent);
}
.bcv-icon{
  width:86px;height:86px;
  display:grid;place-items:center;
  border-radius:50%;
  background:var(--soft);
}
.bcv-icon svg{
  width:48px;height:48px;
  fill:none;stroke:var(--accent);
  stroke-width:3.4;stroke-linecap:round;stroke-linejoin:round;
}
.bcv-card h2{
  margin:6px 28px 0;
  color:var(--bcv-navy);
  font-size:29px;
  line-height:1.35;
  letter-spacing:-.03em;
}
.bcv-accent{
  width:42px;height:4px;
  margin:19px 28px 0;
  border-radius:99px;background:var(--accent);
}
.bcv-card>p{
  margin:24px 28px 28px;
  color:#274871;
  font-size:17px;
  line-height:1.85;
}
.bcv-card footer{
  margin-top:auto;
  display:flex;align-items:center;gap:11px;
  min-height:76px;
  padding:20px 27px;
  background:var(--soft);
  color:#284b73;
  font-size:16px;font-weight:700;
}
.bcv-card footer span{
  width:27px;height:27px;
  flex:0 0 auto;
  display:grid;place-items:center;
  border:2px solid var(--accent);
  color:var(--accent);
  border-radius:50%;
  font-size:14px;font-weight:900;
}
.bcv-note{
  margin:32px 0 0;
  color:#526b87;
  font-size:13px;
}
.bcv-reveal{opacity:0;transform:translateY(22px)}
.bcv-reveal.is-visible{animation:bcvFade .72s forwards}
@keyframes bcvFade{to{opacity:1;transform:none}}
@media(max-width:1020px){
  .bcv-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
  .bcv-section{padding:74px 15px 90px}
  .bcv-grid{grid-template-columns:1fr}
  .bcv-heading p{font-size:15px}
  .bcv-card{min-height:360px}
}
@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important;animation:none!important;transition:none!important}
  .bcv-reveal{opacity:1;transform:none}
}



/* ===== SECTION 10: ⑩.zip ===== */
*{box-sizing:border-box}
:root{--bwb-navy:#0b3478;--bwb-blue:#2d73ff;--bwb-muted:#637691;--bwb-border:#cbdffc}
html{scroll-behavior:smooth}
body{margin:0;font-family:"Noto Sans JP","Yu Gothic","Hiragino Kaku Gothic ProN",system-ui,sans-serif;color:var(--bwb-navy);background:#fff}
.bwb-section{position:relative;overflow:hidden;padding:105px 24px 120px;background:radial-gradient(circle at 92% 7%,rgba(76,137,255,.16),transparent 32%),radial-gradient(circle at 8% 95%,rgba(112,163,255,.10),transparent 28%),linear-gradient(180deg,#f7fbff 0%,#edf6ff 100%)}
.bwb-section::before,.bwb-section::after{content:"";position:absolute;border:1px solid rgba(72,130,225,.10);border-radius:50%}
.bwb-section::before{width:420px;height:420px;right:-170px;top:-150px}
.bwb-section::after{width:300px;height:300px;left:-160px;bottom:-150px}
.bwb-container{position:relative;z-index:1;max-width:1280px;margin:0 auto}
.bwb-heading{margin-bottom:40px}
.bwb-kicker{display:flex;align-items:center;gap:13px;color:var(--bwb-blue);font-size:12px;font-weight:800;letter-spacing:.22em}
.bwb-kicker span{width:34px;height:3px;border-radius:999px;background:#f0d000}
.bwb-heading h1{margin:18px 0 14px;font-size:clamp(40px,5.2vw,70px);line-height:1.15;letter-spacing:-.05em}
.bwb-heading-line{display:block;width:42px;height:4px;border-radius:999px;background:linear-gradient(90deg,#2d73ff,#84adff)}
.bwb-heading p{margin:24px 0 0;color:#526985;font-size:17px;line-height:1.9}
.bwb-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.bwb-card{position:relative;overflow:hidden;min-height:300px;padding:34px 30px 32px;border:1px solid var(--bwb-border);border-radius:20px;background:rgba(255,255,255,.90);box-shadow:0 18px 42px rgba(25,72,140,.09);transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}
.bwb-card::after{content:"";position:absolute;width:125px;height:125px;right:-44px;bottom:-50px;border-radius:50%;background:linear-gradient(135deg,rgba(65,128,240,.08),rgba(65,128,240,.02))}
.bwb-card:hover{transform:translateY(-7px);border-color:#a7c8ff;box-shadow:0 28px 56px rgba(24,79,160,.16)}
.bwb-icon{width:74px;height:74px;display:grid;place-items:center;border-radius:50%;border:1px solid #bed6ff;background:linear-gradient(145deg,#f8fbff,#eaf3ff);box-shadow:0 10px 24px rgba(31,88,175,.10);transition:transform .28s ease}
.bwb-card:hover .bwb-icon{transform:scale(1.07)}
.bwb-icon svg{width:42px;height:42px;fill:none;stroke:var(--bwb-blue);stroke-width:3.1;stroke-linecap:round;stroke-linejoin:round}
.bwb-card h2{margin:22px 0 0;font-size:25px;line-height:1.4;letter-spacing:-.025em}
.bwb-card-line{display:block;width:28px;height:4px;margin:15px 0 18px;border-radius:999px;background:var(--bwb-blue)}
.bwb-card p{margin:0;color:var(--bwb-muted);font-size:15px;line-height:1.95}
.bwb-reveal{opacity:0;transform:translateY(22px)}
.bwb-reveal.is-visible{animation:bwbFade .7s forwards}
@keyframes bwbFade{to{opacity:1;transform:none}}
@media(max-width:980px){.bwb-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.bwb-section{padding:74px 15px 90px}.bwb-grid{grid-template-columns:1fr}.bwb-card{min-height:0}.bwb-heading p{font-size:15px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}.bwb-reveal{opacity:1;transform:none}}



/* ===== SECTION 11: ⑪.zip ===== */
*{box-sizing:border-box}
:root{
  --bpc-navy:#0b3478;
  --bpc-blue:#2169ff;
  --bpc-blue-dark:#1554df;
  --bpc-border:#a9caff;
  --bpc-muted:#5b6f8c;
}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Noto Sans JP","Yu Gothic","Hiragino Kaku Gothic ProN",system-ui,sans-serif;
  color:var(--bpc-navy);
  background:#fff;
}
.bpc-section{
  padding:88px 24px;
  background:#fff;
}
.bpc-shell{
  position:relative;
  overflow:hidden;
  max-width:1320px;
  min-height:560px;
  margin:0 auto;
  padding:72px 72px;
  display:grid;
  grid-template-columns:minmax(0,1.52fr) minmax(330px,.62fr);
  align-items:center;
  gap:54px;
  border:1px solid var(--bpc-border);
  border-radius:30px;
  background:
    radial-gradient(circle at 86% 20%,rgba(82,145,255,.20),transparent 27%),
    radial-gradient(circle at 66% 82%,rgba(93,154,255,.16),transparent 34%),
    linear-gradient(135deg,#f8fbff 0%,#eef5ff 100%);
  box-shadow:0 24px 60px rgba(24,73,143,.10);
}
.bpc-content,
.bpc-action{
  position:relative;
  z-index:2;
}
.bpc-kicker{
  display:flex;
  align-items:center;
  gap:13px;
  color:var(--bpc-blue);
  font-size:13px;
  font-weight:800;
  letter-spacing:.17em;
}
.bpc-kicker span{
  width:34px;
  height:4px;
  border-radius:999px;
  background:#f2c500;
}
.bpc-content h1{
  margin:24px 0 24px;
  font-size:clamp(44px,4.7vw,64px);
  line-height:1.28;
  letter-spacing:-.045em;
}

.bpc-content h1 span{
  display:block;
  white-space:nowrap;
}
.bpc-lead{
  margin:0;
  color:#1b3c68;
  font-size:21px;
  font-weight:700;
}
.bpc-tags{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:30px;
}
.bpc-tag{
  display:inline-flex;
  align-items:center;
  gap:13px;
  padding:17px 24px;
  border:1.5px solid #bcd4fb;
  border-radius:12px;
  background:rgba(255,255,255,.90);
  color:#1856b9;
  font-size:17px;
  font-weight:800;
  line-height:1;
  white-space:nowrap;
  box-shadow:0 12px 27px rgba(31,84,168,.10);
  transition:transform .25s ease,border-color .25s ease,background .25s ease;
}
.bpc-tag:hover{
  transform:translateY(-3px);
  border-color:#80adf7;
  background:#fff;
}
.bpc-tag svg{
  width:28px;
  height:28px;
  fill:none;
  stroke:var(--bpc-blue);
  stroke-width:3;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.bpc-action{
  display:flex;
  justify-content:center;
}
.bpc-button{
  width:min(100%,520px);
  min-width:420px;
  min-height:116px;
  padding:28px 46px;
  white-space:nowrap;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  border-radius:18px;
  color:#fff;
  text-decoration:none;
  background:linear-gradient(135deg,var(--bpc-blue),var(--bpc-blue-dark));
  box-shadow:0 20px 38px rgba(28,94,235,.28);
  font-size:23px;
  font-weight:900;
  transition:transform .28s ease,box-shadow .28s ease,filter .28s ease;
}
.bpc-button:hover{
  transform:translateY(-5px);
  box-shadow:0 28px 48px rgba(28,94,235,.36);
  filter:saturate(1.05);
}
.bpc-button span{
  white-space:nowrap;
  word-break:keep-all;
}
.bpc-button svg{
  width:34px;
  height:34px;
  fill:none;
  stroke:currentColor;
  stroke-width:3;
  stroke-linecap:round;
  stroke-linejoin:round;
  transition:transform .28s ease;
}
.bpc-button:hover svg{
  transform:translateX(7px);
}
.bpc-decoration{
  position:absolute;
  inset:0;
  pointer-events:none;
}
.bpc-decoration::before{
  content:"";
  position:absolute;
  width:520px;
  height:520px;
  right:-150px;
  top:-170px;
  border:1px solid rgba(255,255,255,.68);
  border-radius:50%;
}
.bpc-map-dot{
  position:absolute;
  width:10px;
  height:10px;
  border-radius:50%;
  background:rgba(68,130,235,.22);
  box-shadow:
    24px 12px rgba(68,130,235,.18),
    48px 4px rgba(68,130,235,.18),
    72px 18px rgba(68,130,235,.18),
    96px 8px rgba(68,130,235,.18),
    12px 36px rgba(68,130,235,.18),
    36px 50px rgba(68,130,235,.18),
    60px 42px rgba(68,130,235,.18),
    84px 56px rgba(68,130,235,.18);
}
.bpc-map-dot--1{right:120px;top:68px}
.bpc-map-dot--2{right:190px;top:170px}
.bpc-map-dot--3{right:260px;top:290px}
.bpc-map-dot--4{right:390px;bottom:110px}
.bpc-map-dot--5{right:510px;bottom:70px}
.bpc-orbit{
  position:absolute;
  border:1px solid rgba(255,255,255,.64);
  border-radius:50%;
  transform:rotate(-14deg);
}
.bpc-orbit--1{
  width:610px;
  height:250px;
  right:-40px;
  bottom:60px;
}
.bpc-orbit--2{
  width:520px;
  height:200px;
  right:30px;
  bottom:95px;
}
.bpc-orbit--3{
  width:430px;
  height:155px;
  right:95px;
  bottom:125px;
}
.bpc-reveal{
  opacity:0;
  transform:translateY(22px);
}
.bpc-reveal.is-visible{
  animation:bpcFade .75s forwards;
}
@keyframes bpcFade{
  to{opacity:1;transform:none}
}
@media(max-width:980px){
  .bpc-shell{
    grid-template-columns:1fr;
    min-height:auto;
    padding:58px 42px;
  }
  .bpc-action{
    justify-content:flex-start;
  }
  .bpc-button{
    width:100%;
    min-width:0;
  }
}
@media(max-width:620px){
  .bpc-section{
    padding:56px 14px;
  }
  .bpc-shell{
    padding:42px 22px;
    border-radius:22px;
  }
  .bpc-content h1{
    font-size:clamp(34px,10.5vw,48px);
  }
  .bpc-content h1 span{
    white-space:normal;
  }
  
.bpc-content h1 span{
  display:block;
  white-space:nowrap;
}
.bpc-lead{
    font-size:17px;
  }
  .bpc-tags{
    flex-direction:column;
  }
  .bpc-tag{
    width:100%;
    justify-content:flex-start;
    font-size:16px;
    padding:16px 20px;
  }
  .bpc-button{
    min-width:0;
    min-height:92px;
    padding:22px 20px;
    font-size:18px;
    gap:12px;
  }
  .bpc-button svg{
    width:28px;
    height:28px;
  }
}
@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important;animation:none!important;transition:none!important}
  .bpc-reveal{opacity:1;transform:none}
}



/* ===== SECTION 12: ⑫.zip ===== */
*{box-sizing:border-box}
:root{
  --bps-navy:#0b3478;
  --bps-blue:#2b73ff;
  --bps-muted:#5e7390;
  --bps-border:#cddffc;
}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Noto Sans JP","Yu Gothic","Hiragino Kaku Gothic ProN",system-ui,sans-serif;
  color:var(--bps-navy);
  background:#fff;
}
.bps-section{
  position:relative;
  overflow:hidden;
  padding:105px 24px 120px;
  background:
    radial-gradient(circle at 92% 10%,rgba(77,140,255,.16),transparent 31%),
    radial-gradient(circle at 8% 92%,rgba(105,160,255,.11),transparent 28%),
    linear-gradient(180deg,#f7fbff 0%,#edf6ff 100%);
}
.bps-container{
  position:relative;
  z-index:1;
  max-width:1320px;
  margin:0 auto;
}
.bps-heading{
  margin-bottom:44px;
}
.bps-kicker{
  display:flex;
  align-items:center;
  gap:13px;
  color:var(--bps-blue);
  font-size:12px;
  font-weight:800;
  letter-spacing:.22em;
}
.bps-kicker span{
  width:34px;
  height:3px;
  border-radius:999px;
  background:#f0d000;
}
.bps-heading h1{
  margin:17px 0 20px;
  font-size:clamp(40px,5.2vw,70px);
  line-height:1.18;
  letter-spacing:-.05em;
}
.bps-heading p{
  margin:0;
  color:#506985;
  font-size:17px;
  line-height:1.9;
}
.bps-flow{
  display:grid;
  grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr) 34px minmax(0,1fr) 34px minmax(0,1fr) 34px minmax(0,1fr);
  align-items:stretch;
  gap:8px;
}
.bps-card{
  position:relative;
  min-width:0;
  min-height:360px;
  padding:32px 24px 28px;
  border:1px solid var(--bps-border);
  border-radius:18px;
  background:rgba(255,255,255,.90);
  box-shadow:0 18px 42px rgba(25,72,140,.09);
  text-align:center;
  transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease;
}
.bps-card:hover{
  transform:translateY(-7px);
  border-color:#a8c9ff;
  box-shadow:0 28px 56px rgba(24,79,160,.16);
}
.bps-icon{
  width:82px;
  height:82px;
  margin:0 auto 24px;
  display:grid;
  place-items:center;
  border-radius:50%;
  border:1px solid #bfd7ff;
  background:linear-gradient(145deg,#f9fbff,#ebf4ff);
  box-shadow:0 10px 24px rgba(31,88,175,.10);
  transition:transform .28s ease;
}
.bps-card:hover .bps-icon{
  transform:scale(1.06);
}
.bps-icon svg{
  width:46px;
  height:46px;
  fill:none;
  stroke:var(--bps-blue);
  stroke-width:3;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.bps-step{
  display:block;
  color:var(--bps-blue);
  font-size:12px;
  font-weight:900;
  letter-spacing:.12em;
}
.bps-card h2{
  margin:18px 0 0;
  font-size:25px;
  line-height:1.35;
  letter-spacing:-.03em;
}
.bps-line{
  display:block;
  width:32px;
  height:4px;
  margin:16px auto 22px;
  border-radius:999px;
  background:var(--bps-blue);
}
.bps-card p{
  margin:0;
  color:var(--bps-muted);
  font-size:14px;
  line-height:1.9;
}
.bps-arrow{
  position:relative;
  align-self:center;
  height:44px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.bps-arrow span{
  position:absolute;
  width:100%;
  height:1px;
  background:linear-gradient(90deg,transparent,#8cb6ff,transparent);
}
.bps-arrow i{
  width:5px;
  height:5px;
  margin:0 2px;
  border-radius:50%;
  background:#8cb6ff;
  box-shadow:0 0 0 4px rgba(74,133,255,.08);
}
.bps-reveal{
  opacity:0;
  transform:translateY(22px);
}
.bps-reveal.is-visible{
  animation:bpsFade .7s forwards;
}
@keyframes bpsFade{
  to{opacity:1;transform:none}
}
@media(max-width:1080px){
  .bps-flow{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
  }
  .bps-arrow{
    display:none;
  }
}
@media(max-width:620px){
  .bps-section{
    padding:74px 15px 90px;
  }
  .bps-flow{
    grid-template-columns:1fr;
  }
  .bps-card{
    min-height:0;
  }
  .bps-heading p{
    font-size:15px;
  }
}
@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important;animation:none!important;transition:none!important}
  .bps-reveal{opacity:1;transform:none}
}



/* ===== SECTION 13: ⑬.zip ===== */
*{box-sizing:border-box}
:root{
  --bfq-navy:#0b3478;
  --bfq-blue:#2d73ff;
  --bfq-muted:#5f7491;
  --bfq-border:#cbdffc;
}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Noto Sans JP","Yu Gothic","Hiragino Kaku Gothic ProN",system-ui,sans-serif;
  color:var(--bfq-navy);
  background:#fff;
}
.bfq-section{
  position:relative;
  overflow:hidden;
  padding:105px 24px 120px;
  background:
    radial-gradient(circle at 90% 10%,rgba(76,137,255,.14),transparent 31%),
    radial-gradient(circle at 8% 92%,rgba(108,162,255,.10),transparent 28%),
    linear-gradient(180deg,#f7fbff 0%,#edf6ff 100%);
}
.bfq-container{
  max-width:1180px;
  margin:0 auto;
  position:relative;
  z-index:1;
}
.bfq-heading{
  margin-bottom:42px;
}
.bfq-kicker{
  display:flex;
  align-items:center;
  gap:13px;
  color:var(--bfq-blue);
  font-size:12px;
  font-weight:800;
  letter-spacing:.22em;
}
.bfq-kicker span{
  width:34px;
  height:3px;
  border-radius:999px;
  background:#f0d000;
}
.bfq-heading h1{
  margin:18px 0 16px;
  font-size:clamp(40px,5.2vw,68px);
  line-height:1.15;
  letter-spacing:-.05em;
}
.bfq-heading p{
  margin:0;
  color:#526985;
  font-size:17px;
  line-height:1.85;
}
.bfq-list{
  border-top:1px solid var(--bfq-border);
}
.bfq-item{
  border-bottom:1px solid var(--bfq-border);
  background:rgba(255,255,255,.42);
}
.bfq-question{
  width:100%;
  min-height:88px;
  padding:24px 8px;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:20px;
  border:0;
  background:transparent;
  color:var(--bfq-navy);
  text-align:left;
  cursor:pointer;
}
.bfq-question>span:not(.bfq-search-icon){
  min-width:0;
  font-size:20px;
  font-weight:800;
  line-height:1.55;
}
.bfq-search-icon{
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border-radius:50%;
  border:1px solid #c9ddff;
  background:linear-gradient(145deg,#ffffff,#eaf3ff);
  box-shadow:0 9px 20px rgba(28,82,170,.10);
}
.bfq-search-icon svg{
  width:25px;
  height:25px;
  fill:none;
  stroke:var(--bfq-blue);
  stroke-width:3.2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.bfq-question i{
  position:relative;
  width:38px;
  height:38px;
  flex:0 0 auto;
  border-radius:50%;
  border:1px solid #b8d2ff;
  background:#fff;
  box-shadow:0 8px 18px rgba(28,82,170,.10);
}
.bfq-question i::before,
.bfq-question i::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:14px;
  height:2px;
  border-radius:99px;
  background:var(--bfq-blue);
  transform:translate(-50%,-50%);
  transition:transform .25s ease;
}
.bfq-question i::after{
  transform:translate(-50%,-50%) rotate(90deg);
}
.bfq-question[aria-expanded="true"] i::after{
  transform:translate(-50%,-50%) rotate(0deg);
}
.bfq-answer{
  display:grid;
  grid-template-rows:0fr;
  transition:grid-template-rows .32s ease;
}
.bfq-answer>div{
  overflow:hidden;
}
.bfq-answer p{
  margin:0;
  padding:0 64px 26px 8px;
  color:var(--bfq-muted);
  font-size:16px;
  line-height:1.9;
}
.bfq-item.is-open .bfq-answer{
  grid-template-rows:1fr;
}
.bfq-item:hover{
  background:rgba(255,255,255,.72);
}
.bfq-reveal{
  opacity:0;
  transform:translateY(16px);
}
.bfq-reveal.is-visible{
  animation:bfqFade .6s forwards;
}
@keyframes bfqFade{
  to{opacity:1;transform:none}
}
@media(max-width:620px){
  .bfq-section{
    padding:74px 15px 90px;
  }
  .bfq-heading p{
    font-size:15px;
  }
  .bfq-question{
    min-height:76px;
    padding:20px 2px;
  }
  .bfq-question>span:not(.bfq-search-icon){
    font-size:17px;
  }
  .bfq-search-icon{
    width:42px;
    height:42px;
  }
  .bfq-search-icon svg{
    width:22px;
    height:22px;
  }
  .bfq-answer p{
    padding:0 48px 22px 2px;
    font-size:14px;
  }
}
@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important;animation:none!important;transition:none!important}
  .bfq-reveal{opacity:1;transform:none}
}



/* ===== SECTION 14: ⑭.zip ===== */
*{box-sizing:border-box}
:root{
  --bms-navy:#0b3478;
  --bms-blue:#2d73ff;
  --bms-muted:#536984;
  --bms-border:#c9ddfb;
}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Noto Sans JP","Yu Gothic","Hiragino Kaku Gothic ProN",system-ui,sans-serif;
  color:var(--bms-navy);
  background:#fff;
}
.bms-section{
  padding:88px 24px;
  background:
    radial-gradient(circle at 90% 5%,rgba(88,145,255,.10),transparent 28%),
    linear-gradient(180deg,#ffffff 0%,#f5f9ff 100%);
}
.bms-shell{
  max-width:1320px;
  margin:0 auto;
  padding:58px 54px 52px;
  display:grid;
  grid-template-columns:minmax(430px,46%) 1px minmax(0,54%);
  gap:44px;
  border:1px solid var(--bms-border);
  border-radius:28px;
  background:rgba(255,255,255,.90);
  box-shadow:0 22px 58px rgba(27,72,140,.10);
}
.bms-kicker{
  display:flex;
  align-items:center;
  gap:13px;
  color:var(--bms-blue);
  font-size:12px;
  font-weight:800;
  letter-spacing:.22em;
}
.bms-kicker span{
  width:34px;height:3px;border-radius:999px;background:#f0d000;
}
.bms-left h1{
  margin:30px 0 38px;
  max-width:620px;
  font-size:clamp(54px,5.4vw,76px);
  line-height:1.18;
  letter-spacing:-.055em;
}
.bms-left h1 span{
  display:inline-block;
  white-space:nowrap;
}
.bms-portrait{
  margin:0;
}
.bms-portrait img{
  display:block;
  width:min(100%,470px);
  aspect-ratio:1.34/1;
  object-fit:cover;
  object-position:center;
  border-radius:12px;
  box-shadow:0 16px 34px rgba(24,70,140,.13);
  transition:transform .35s ease,box-shadow .35s ease;
}
.bms-portrait:hover img{
  transform:scale(1.015);
  box-shadow:0 22px 44px rgba(24,70,140,.18);
}
.bms-portrait figcaption{
  width:min(100%,470px);
  margin-top:14px;
  text-align:right;
  font-size:15px;
  font-weight:800;
  color:#2c4b74;
}
.bms-divider{
  width:1px;
  background:linear-gradient(180deg,transparent,#cbdcf5 10%,#cbdcf5 90%,transparent);
}
.bms-right{
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.bms-copy{
  max-width:720px;
}
.bms-copy p{
  margin:0 0 24px;
  color:#294970;
  font-size:18px;
  line-height:2;
}
.bms-copy blockquote{
  margin:30px 0 28px;
  padding:28px 30px 28px 26px;
  border-left:5px solid var(--bms-blue);
  border-radius:0 14px 14px 0;
  background:linear-gradient(90deg,#fffced,#fff9dc);
  color:var(--bms-navy);
  font-size:clamp(28px,3vw,40px);
  font-weight:900;
  line-height:1.45;
  letter-spacing:-.03em;
}
.bms-signature{
  margin-top:14px;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:7px;
  color:#24456f;
}
.bms-signature span{
  font-size:14px;
  font-weight:700;
}
.bms-signature strong{
  font-size:18px;
}
.bms-reveal{
  opacity:0;
  transform:translateY(20px);
}
.bms-reveal.is-visible{
  animation:bmsFade .75s forwards;
}
@keyframes bmsFade{
  to{opacity:1;transform:none}
}
@media(max-width:960px){
  .bms-shell{
    grid-template-columns:1fr;
    gap:38px;
    padding:48px 38px;
  }
  .bms-divider{
    width:100%;
    height:1px;
    background:linear-gradient(90deg,transparent,#cbdcf5 10%,#cbdcf5 90%,transparent);
  }
  .bms-left h1{
    margin-bottom:32px;
    max-width:none;
  }
  .bms-left h1 span{
    white-space:normal;
  }
  .bms-portrait{
    max-width:560px;
  }
}
@media(max-width:620px){
  .bms-section{
    padding:56px 14px;
  }
  .bms-shell{
    padding:36px 22px;
    border-radius:22px;
  }
  .bms-left h1{
    font-size:clamp(40px,12vw,56px);
    line-height:1.2;
  }
  .bms-left h1 span{
    white-space:normal;
  }
  .bms-copy p{
    font-size:15px;
    line-height:1.9;
  }
  .bms-copy blockquote{
    padding:22px 20px;
    font-size:22px;
  }
}
@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important;animation:none!important;transition:none!important}
  .bms-reveal{opacity:1;transform:none}
}



/* ===== SECTION 15: ⑮.zip ===== */
*{box-sizing:border-box}
:root{
  --bco-navy:#0b3478;
  --bco-blue:#2169ff;
  --bco-muted:#526985;
  --bco-line:#d2e2fa;
}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Noto Sans JP","Yu Gothic","Hiragino Kaku Gothic ProN",system-ui,sans-serif;
  color:var(--bco-navy);
  background:#fff;
}
a{color:inherit}
.bco-section{
  padding:88px 24px;
  background:
    radial-gradient(circle at 90% 8%,rgba(76,137,255,.10),transparent 28%),
    linear-gradient(180deg,#ffffff 0%,#f5f9ff 100%);
}
.bco-shell{
  max-width:1320px;
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(360px,42%) minmax(0,58%);
  overflow:hidden;
  border:1px solid #bcd6ff;
  border-radius:28px;
  background:#fff;
  box-shadow:0 22px 58px rgba(27,72,140,.10);
}
.bco-left{
  position:relative;
  overflow:hidden;
  min-height:680px;
  padding:86px 58px;
  background:
    radial-gradient(circle at 18% 88%,rgba(100,154,255,.18),transparent 34%),
    linear-gradient(180deg,#eff6ff 0%,#e7f1ff 100%);
}
.bco-kicker{
  display:flex;
  align-items:center;
  gap:13px;
  color:var(--bco-blue);
  font-size:12px;
  font-weight:800;
  letter-spacing:.22em;
}
.bco-kicker span{
  width:34px;
  height:3px;
  border-radius:999px;
  background:#f0d000;
}
.bco-left h1{
  margin:34px 0 26px;
  font-size:clamp(52px,5vw,74px);
  line-height:1.15;
  letter-spacing:-.055em;
}
.bco-lead{
  margin:0;
  color:#264a76;
  font-size:20px;
  font-weight:700;
  line-height:1.9;
}
.bco-button{
  position:relative;
  z-index:2;
  margin-top:46px;
  min-height:76px;
  padding:20px 28px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  border-radius:11px;
  color:#fff;
  text-decoration:none;
  text-align:center;
  background:linear-gradient(135deg,#2475ff,#2454e8);
  box-shadow:0 16px 32px rgba(28,94,235,.28);
  font-size:16px;
  font-weight:900;
  transition:transform .28s ease,box-shadow .28s ease;
}
.bco-button:hover{
  transform:translateY(-4px);
  box-shadow:0 22px 40px rgba(28,94,235,.36);
}
.bco-button svg{
  width:24px;
  height:24px;
  flex:0 0 auto;
  fill:none;
  stroke:currentColor;
  stroke-width:3;
  stroke-linecap:round;
  stroke-linejoin:round;
  transition:transform .28s ease;
}
.bco-button:hover svg{
  transform:translate(4px,-4px);
}
.bco-decoration i{
  position:absolute;
  left:-90px;
  bottom:-120px;
  border:1px solid rgba(255,255,255,.78);
  border-radius:50%;
}
.bco-decoration i:nth-child(1){width:520px;height:260px}
.bco-decoration i:nth-child(2){width:650px;height:330px;left:-135px;bottom:-165px}
.bco-decoration i:nth-child(3){width:780px;height:400px;left:-180px;bottom:-210px}
.bco-right{
  padding:54px 58px 48px;
}
.bco-list{
  margin:0;
}
.bco-row{
  display:grid;
  grid-template-columns:minmax(250px,42%) minmax(0,58%);
  align-items:center;
  min-height:96px;
  border-bottom:1px solid var(--bco-line);
}
.bco-row:last-child{
  border-bottom:0;
}
.bco-row dt{
  display:flex;
  align-items:center;
  gap:18px;
  margin:0;
}
.bco-row dt strong{
  font-size:18px;
  line-height:1.5;
}
.bco-icon{
  width:50px;
  height:50px;
  flex:0 0 auto;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:linear-gradient(145deg,#f8fbff,#e9f2ff);
  box-shadow:0 8px 20px rgba(30,84,170,.08);
}
.bco-icon svg{
  width:28px;
  height:28px;
  fill:none;
  stroke:var(--bco-blue);
  stroke-width:3;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.bco-row dd{
  margin:0;
  color:#26476f;
  font-size:17px;
  line-height:1.8;
}
.bco-row dd>a{
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:var(--bco-blue);
  font-weight:800;
  text-decoration:none;
}
.bco-row dd>a svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:3;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.bco-reveal{
  opacity:0;
  transform:translateY(20px);
}
.bco-reveal.is-visible{
  animation:bcoFade .72s forwards;
}
@keyframes bcoFade{
  to{opacity:1;transform:none}
}
@media(max-width:980px){
  .bco-shell{
    grid-template-columns:1fr;
  }
  .bco-left{
    min-height:auto;
    padding:58px 42px 70px;
  }
  .bco-right{
    padding:30px 42px 38px;
  }
}
@media(max-width:680px){
  .bco-section{
    padding:56px 14px;
  }
  .bco-shell{
    border-radius:22px;
  }
  .bco-left{
    padding:42px 22px 54px;
  }
  .bco-left h1{
    font-size:clamp(46px,14vw,62px);
  }
  .bco-lead{
    font-size:17px;
  }
  .bco-button{
    width:100%;
    font-size:15px;
  }
  .bco-right{
    padding:18px 22px 28px;
  }
  .bco-row{
    grid-template-columns:1fr;
    gap:12px;
    padding:22px 0;
  }
  .bco-row dd{
    padding-left:68px;
    font-size:15px;
  }
}
@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important;animation:none!important;transition:none!important}
  .bco-reveal{opacity:1;transform:none}
}



/* ===== SECTION 16: ⑯.zip ===== */
*{box-sizing:border-box}
:root{
  --bct-navy:#0b3478;
  --bct-blue:#2169ff;
  --bct-blue-dark:#1454df;
  --bct-muted:#5e7390;
  --bct-line:#c9ddfb;
  --bct-error:#d84747;
}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Noto Sans JP","Yu Gothic","Hiragino Kaku Gothic ProN",system-ui,sans-serif;
  color:var(--bct-navy);
  background:#fff;
}
button,input,textarea{font:inherit}
.bct-section{
  position:relative;
  overflow:hidden;
  padding:100px 24px 120px;
  background:
    radial-gradient(circle at 88% 5%,rgba(77,140,255,.13),transparent 29%),
    radial-gradient(circle at 8% 95%,rgba(108,162,255,.10),transparent 28%),
    linear-gradient(180deg,#f9fcff 0%,#edf6ff 100%);
}
.bct-container{
  max-width:1120px;
  margin:0 auto;
  position:relative;
  z-index:1;
}
.bct-heading{
  text-align:center;
  margin-bottom:42px;
}
.bct-kicker{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:13px;
  color:var(--bct-blue);
  font-size:12px;
  font-weight:800;
  letter-spacing:.22em;
}
.bct-kicker span{
  width:34px;height:3px;border-radius:999px;background:#f0d000;
}
.bct-heading h1{
  margin:22px 0 22px;
  font-size:clamp(42px,5.2vw,70px);
  line-height:1.28;
  letter-spacing:-.05em;
}
.bct-heading>p{
  margin:0;
  color:#526985;
  font-size:16px;
  line-height:1.9;
}
.bct-benefits{
  margin-top:28px;
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:14px;
}
.bct-benefits span{
  min-height:52px;
  padding:13px 18px;
  display:inline-flex;
  align-items:center;
  gap:10px;
  border:1px solid #bdd5fa;
  border-radius:999px;
  background:rgba(255,255,255,.86);
  color:#1b4f9b;
  font-size:14px;
  font-weight:800;
  box-shadow:0 9px 22px rgba(27,78,157,.07);
}
.bct-benefits svg{
  width:24px;height:24px;fill:none;stroke:var(--bct-blue);
  stroke-width:3;stroke-linecap:round;stroke-linejoin:round
}
.bct-form{
  padding:42px;
  border:1px solid #bdd5fa;
  border-radius:20px;
  background:rgba(255,255,255,.92);
  box-shadow:0 22px 54px rgba(24,73,143,.10);
}
.bct-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:26px 24px;
}
.bct-field{
  display:block;
}
.bct-field--full{
  grid-column:1/-1;
}
.bct-field>span:first-child{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:10px;
  font-size:16px;
  font-weight:800;
}
.bct-field em{
  padding:4px 8px;
  border-radius:999px;
  background:#eaf2ff;
  color:var(--bct-blue);
  font-size:11px;
  font-style:normal;
}
.bct-input-wrap{
  position:relative;
  display:block;
}
.bct-input-wrap input,
.bct-input-wrap textarea{
  width:100%;
  border:1px solid #bdd2f3;
  border-radius:10px;
  background:#fff;
  color:#173a69;
  outline:none;
  transition:border-color .22s ease,box-shadow .22s ease,background .22s ease;
}
.bct-input-wrap input{
  height:60px;
  padding:0 52px 0 16px;
}
.bct-input-wrap textarea{
  min-height:180px;
  padding:16px 52px 16px 16px;
  resize:vertical;
  line-height:1.7;
}
.bct-input-wrap input::placeholder,
.bct-input-wrap textarea::placeholder{
  color:#93a7c3;
}
.bct-input-wrap input:focus,
.bct-input-wrap textarea:focus{
  border-color:#6da2ff;
  box-shadow:0 0 0 4px rgba(45,115,255,.10);
}
.bct-input-wrap svg{
  position:absolute;
  right:16px;
  top:50%;
  width:25px;height:25px;
  transform:translateY(-50%);
  fill:none;stroke:var(--bct-blue);
  stroke-width:3;stroke-linecap:round;stroke-linejoin:round;
  pointer-events:none;
}
.bct-input-wrap--textarea svg{
  top:auto;
  bottom:15px;
  transform:none;
}
.bct-field.is-invalid input,
.bct-field.is-invalid textarea{
  border-color:var(--bct-error);
  background:#fffafa;
}
.bct-error{
  display:block;
  min-height:18px;
  margin-top:6px;
  color:var(--bct-error);
  font-size:12px;
}
.bct-consent{
  margin-top:24px;
  display:flex;
  align-items:flex-start;
  gap:12px;
  color:#48627f;
  font-size:14px;
  line-height:1.7;
  cursor:pointer;
}
.bct-consent input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.bct-check{
  width:24px;height:24px;
  flex:0 0 auto;
  margin-top:1px;
  border:1px solid #9fbce8;
  border-radius:4px;
  background:#fff;
  position:relative;
}
.bct-consent input:checked+.bct-check{
  background:var(--bct-blue);
  border-color:var(--bct-blue);
}
.bct-consent input:checked+.bct-check::after{
  content:"";
  position:absolute;
  left:7px;top:3px;
  width:7px;height:12px;
  border:solid #fff;
  border-width:0 2px 2px 0;
  transform:rotate(45deg);
}
.bct-error--consent{
  margin-left:36px;
}
.bct-submit-row{
  margin-top:20px;
  display:flex;
  align-items:center;
  gap:24px;
}
.bct-submit{
  min-width:280px;
  min-height:64px;
  padding:18px 26px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  border:0;
  border-radius:10px;
  color:#fff;
  background:linear-gradient(135deg,var(--bct-blue),var(--bct-blue-dark));
  box-shadow:0 15px 30px rgba(28,94,235,.27);
  font-size:16px;
  font-weight:900;
  cursor:pointer;
  transition:transform .25s ease,box-shadow .25s ease,filter .25s ease;
}
.bct-submit:hover{
  transform:translateY(-3px);
  box-shadow:0 21px 38px rgba(28,94,235,.35);
}
.bct-submit:disabled{
  opacity:.55;
  cursor:not-allowed;
  transform:none;
}
.bct-submit svg{
  width:25px;height:25px;
  fill:none;stroke:currentColor;
  stroke-width:3;stroke-linecap:round;stroke-linejoin:round;
  transition:transform .25s ease;
}
.bct-submit:hover svg{
  transform:translateX(5px);
}
.bct-submit-row p{
  margin:0;
  color:#60758f;
  font-size:13px;
}
.bct-status{
  min-height:24px;
  margin-top:16px;
  color:#1b7e4b;
  font-size:14px;
  font-weight:700;
}
.bct-reveal{
  opacity:0;
  transform:translateY(20px);
}
.bct-reveal.is-visible{
  animation:bctFade .72s forwards;
}
@keyframes bctFade{
  to{opacity:1;transform:none}
}
@media(max-width:760px){
  .bct-grid{
    grid-template-columns:1fr;
  }
  .bct-field--full{
    grid-column:auto;
  }
}
@media(max-width:620px){
  .bct-section{
    padding:72px 14px 90px;
  }
  .bct-heading h1{
    font-size:clamp(38px,11vw,52px);
  }
  .bct-heading>p{
    font-size:14px;
  }
  .bct-benefits{
    flex-direction:column;
    align-items:stretch;
  }
  .bct-benefits span{
    justify-content:center;
  }
  .bct-form{
    padding:28px 20px;
  }
  .bct-submit-row{
    flex-direction:column;
    align-items:stretch;
  }
  .bct-submit{
    width:100%;
    min-width:0;
  }
}
@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important;animation:none!important;transition:none!important}
  .bct-reveal{opacity:1;transform:none}
}



/* ===== SECTION 17: ⑰.zip ===== */
*{box-sizing:border-box}
:root{
  --bft-navy:#0b3478;
  --bft-blue:#2169ff;
  --bft-muted:#61748d;
  --bft-line:#c9ddfb;
}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Noto Sans JP","Yu Gothic","Hiragino Kaku Gothic ProN",system-ui,sans-serif;
  background:#fff;
}
.bft-footer{
  padding:78px 24px 48px;
  background:
    radial-gradient(circle at 88% 8%,rgba(76,137,255,.12),transparent 28%),
    linear-gradient(180deg,#f8fbff 0%,#edf6ff 100%);
}
.bft-shell{
  position:relative;
  overflow:hidden;
  max-width:1320px;
  margin:0 auto;
  padding:58px 58px 34px;
  border:1px solid #bdd5fa;
  border-top:3px solid #397eea;
  border-radius:0 0 22px 22px;
  background:rgba(255,255,255,.58);
  box-shadow:0 22px 54px rgba(24,73,143,.09);
}
.bft-main{
  display:grid;
  grid-template-columns:minmax(300px,0.95fr) minmax(0,2.45fr);
  align-items:center;
  gap:48px;
  min-height:250px;
}
.bft-brand img{
  display:block;
  width:min(100%,310px);
  height:auto;
}
.bft-logo-link{
  display:inline-block;
  transition:opacity .22s ease,transform .22s ease;
}
.bft-logo-link:hover{
  opacity:.86;
  transform:translateY(-2px);
}
.bft-tagline{
  margin:24px 0 7px;
  color:var(--bft-navy);
  font-size:19px;
  font-weight:900;
  letter-spacing:-.02em;
}
.bft-description{
  margin:0;
  color:var(--bft-muted);
  font-size:14px;
  line-height:1.8;
}
.bft-nav{
  display:grid;
  grid-template-columns:
    minmax(110px,.9fr)
    minmax(125px,1fr)
    minmax(120px,.95fr)
    minmax(165px,1.25fr)
    minmax(135px,1.05fr);
}
.bft-nav a{
  position:relative;
  min-height:98px;
  padding:10px 22px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  border-left:1px solid var(--bft-line);
  color:var(--bft-navy);
  text-align:center;
  text-decoration:none;
}
.bft-nav a:first-child{
  border-left:0;
}
.bft-nav a::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:8px;
  width:0;
  height:2px;
  border-radius:99px;
  background:var(--bft-blue);
  transform:translateX(-50%);
  transition:width .24s ease;
}
.bft-nav a:hover::after{
  width:46px;
}
.bft-nav strong{
  display:block;
  font-size:18px;
  line-height:1.45;
  white-space:nowrap;
  transition:color .22s ease;
}
.bft-nav span{
  margin-top:8px;
  color:#4d7fce;
  font-size:13px;
  font-weight:800;
  letter-spacing:.04em;
}
.bft-nav a:hover strong{
  color:var(--bft-blue);
}
.bft-bottom{
  margin-top:34px;
  padding-top:28px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  border-top:1px solid #a9c8f2;
}
.bft-bottom p{
  margin:0;
  color:#6d7e92;
  font-size:13px;
}
.bft-pagetop{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--bft-blue);
  text-decoration:none;
  font-size:11px;
  font-weight:900;
  letter-spacing:.12em;
}
.bft-pagetop svg{
  width:23px;
  height:23px;
  fill:none;
  stroke:currentColor;
  stroke-width:3;
  stroke-linecap:round;
  stroke-linejoin:round;
  transition:transform .22s ease;
}
.bft-pagetop:hover svg{
  transform:translateY(-4px);
}
.bft-reveal{
  opacity:0;
  transform:translateY(16px);
}
.bft-reveal.is-visible{
  animation:bftFade .65s forwards;
}
@keyframes bftFade{
  to{opacity:1;transform:none}
}
@media(max-width:980px){
  .bft-main{
    grid-template-columns:1fr;
    gap:42px;
  }
  .bft-brand{
    text-align:center;
  }
  .bft-brand img{
    margin:0 auto;
  }
  .bft-nav{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px 0;
  }
  .bft-nav strong{
    white-space:normal;
  }
  .bft-nav a:nth-child(4){
    border-left:0;
  }
}
@media(max-width:620px){
  .bft-footer{
    padding:52px 14px 30px;
  }
  .bft-shell{
    padding:38px 22px 26px;
    border-radius:0 0 18px 18px;
  }
  .bft-main{
    min-height:0;
  }
  .bft-brand img{
    width:min(100%,250px);
  }
  .bft-tagline{
    font-size:17px;
  }
  .bft-nav{
    grid-template-columns:1fr 1fr;
    gap:0;
  }
  .bft-nav strong{
    white-space:normal;
  }
  .bft-nav a{
    min-height:86px;
    border-left:0;
    border-top:1px solid var(--bft-line);
  }
  .bft-nav a:nth-child(even){
    border-left:1px solid var(--bft-line);
  }
  .bft-nav a:last-child{
    grid-column:1/-1;
    border-left:0;
  }
  .bft-nav strong{
    font-size:16px;
  }
  .bft-bottom{
    align-items:flex-start;
    flex-direction:column-reverse;
    gap:18px;
  }
}
@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important;animation:none!important;transition:none!important}
  .bft-reveal{opacity:1;transform:none}
}


/* PHP contact integration */
.bct-hp{
  position:absolute!important;
  left:-9999px!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
}

/* =========================================================
   Bridge LP Layout Wide & Unified v1.2
   2026-08-07
   PC表示の左右余白を縮小し、主要セクションの基準幅を統一
   ========================================================= */
:root{
  --bridge-layout-max: 1580px;
  --bridge-layout-gutter: 32px;
}

/* 共通：主要セクションの左右パディングを統一 */
.achievements,
.bridge-confidential,
.bridge-challenges,
.br-about,
.bsf-section,
.bpe-section,
.bfg-section,
.bcv-section,
.bwb-section,
.bpc-section,
.bps-section,
.bfq-section,
.bms-section,
.bco-section,
.bct-section,
.bft-footer{
  padding-left: var(--bridge-layout-gutter);
  padding-right: var(--bridge-layout-gutter);
}

/* 共通：各セクションの外側ラインを同じ最大幅に揃える */
.hero-inner,
.kpi-strip,
.achievements__inner,
.bridge-confidential__inner,
.bridge-challenges__inner,
.br-about__inner,
.bsf-container,
.bpe-container,
.bfg-container,
.bcv-container,
.bwb-container,
.bpc-shell,
.bps-container,
.bfq-container,
.bms-shell,
.bco-shell,
.bct-container,
.bft-shell{
  width: 100%;
  max-width: var(--bridge-layout-max);
  margin-left: auto;
  margin-right: auto;
}

/* Hero / Header / KPIも同じ基準線へ */
.header-inner{
  max-width: var(--bridge-layout-max);
  padding-left: var(--bridge-layout-gutter);
  padding-right: var(--bridge-layout-gutter);
}
.hero-inner{
  padding-left: var(--bridge-layout-gutter);
  padding-right: var(--bridge-layout-gutter);
  gap: clamp(54px, 4.6vw, 92px);
}
.kpi-strip{
  padding-left: 0;
  padding-right: 0;
}

/* 横幅拡張時にカード群が間延びしすぎないよう調整 */
.achievement-grid{
  gap: 20px;
}
.bridge-challenges__grid,
.bwb-grid{
  column-gap: 24px;
}
.bsf-grid,
.bpe-current-grid,
.bfg-grid{
  column-gap: 24px;
}

/* 代表メッセージなど文章主体の本文は読みやすい行長を維持 */
.br-about__text{
  max-width: 720px;
}
.bms-copy{
  max-width: 760px;
}

/* お問い合わせフォームは広げつつ、入力欄が横に伸びすぎない範囲に */
.bct-container{
  max-width: 1440px;
}

/* 相談CTAは横長の存在感を出す */
.bpc-shell{
  min-height: 560px;
}

/* 大画面で「中央に小さく固まる」状態を防止 */
@media (min-width: 1800px){
  :root{
    --bridge-layout-max: 1640px;
    --bridge-layout-gutter: 40px;
  }
}

/* ノートPC〜タブレットは余白を段階的に縮小 */
@media (max-width: 1180px){
  :root{
    --bridge-layout-gutter: 24px;
  }
  .hero-inner{
    gap: 34px;
  }
}

@media (max-width: 900px){
  :root{
    --bridge-layout-gutter: 20px;
  }
  .achievements,
  .bridge-confidential,
  .bridge-challenges,
  .br-about,
  .bsf-section,
  .bpe-section,
  .bfg-section,
  .bcv-section,
  .bwb-section,
  .bpc-section,
  .bps-section,
  .bfq-section,
  .bms-section,
  .bco-section,
  .bct-section,
  .bft-footer{
    padding-left: var(--bridge-layout-gutter);
    padding-right: var(--bridge-layout-gutter);
  }
}

@media (max-width: 620px){
  :root{
    --bridge-layout-gutter: 15px;
  }
}

/* =========================================================
   Bridge LP Mobile Overflow Fix v1.4
   2026-08-07
   スマホで一部見出し・本文が右にはみ出す問題を修正
   ========================================================= */
@media (max-width: 680px){
  .br-about,
  .br-about__inner,
  .br-about__copy,
  .br-about__text{
    min-width: 0;
    max-width: 100%;
  }

  .br-about__title{
    font-size: clamp(34px, 9.2vw, 44px);
    line-height: 1.34;
    letter-spacing: -.035em;
    overflow-wrap: anywhere;
    word-break: normal;
  }

  .br-about__title strong{
    display: inline;
    white-space: normal !important;
    overflow-wrap: anywhere;
  }

  .br-about__text{
    margin-top: 28px;
    max-width: 100%;
    font-size: 16px;
    line-height: 1.9;
    overflow-wrap: anywhere;
    word-break: normal;
  }

  .br-about__text p{
    max-width: 100%;
  }
}

@media (max-width: 620px){
  .bpc-shell,
  .bpc-content,
  .bpc-action{
    min-width: 0;
    max-width: 100%;
  }

  .bpc-content h1{
    font-size: clamp(32px, 8.8vw, 42px);
    line-height: 1.32;
    letter-spacing: -.035em;
    overflow-wrap: anywhere;
    word-break: normal;
  }

  .bpc-content h1 span{
    display: inline;
    white-space: normal !important;
  }

  .bpc-lead{
    max-width: 100%;
    font-size: 16px;
    line-height: 1.75;
    overflow-wrap: anywhere;
  }

  .bpc-tag{
    min-width: 0;
    white-space: normal;
  }

  .br-about,
  .bpc-section{
    overflow-x: clip;
  }
}

/* =========================================================
   New FV limited transplant — 2026-08-22
   Scope: Header + Hero only. Lower sections intentionally untouched.
   ========================================================= */
.site-header{height:100px;background:#fff;border-bottom:1px solid rgba(10,52,119,.06);box-shadow:0 4px 18px rgba(17,55,111,.035)}
.header-inner{max-width:1680px;padding-left:60px;padding-right:60px;gap:34px}
.brand{width:240px}.brand img{height:68px}
.global-nav{gap:42px;font-size:17px;color:#082d68}
.header-cta{height:60px;padding:0 28px;border-radius:11px;font-size:16px;background:linear-gradient(135deg,#0877ff,#0754dd);box-shadow:0 12px 26px rgba(14,89,224,.24)}

.hero.hero--new-fv{position:relative;overflow:hidden;padding:0;min-height:760px;background-image:linear-gradient(90deg,rgba(255,255,255,.80) 0%,rgba(255,255,255,.54) 25%,rgba(248,252,255,.16) 43%,rgba(235,247,255,.02) 66%,rgba(224,241,255,.00) 100%),url('../img/bridge_fv_bg_pc.webp');background-size:cover;background-position:center 54%;background-repeat:no-repeat;}
.hero.hero--new-fv:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.12) 0%,rgba(236,246,255,.04) 58%,rgba(218,236,255,.18) 100%);pointer-events:none}
.hero.hero--new-fv .hero-inner{max-width:1680px;min-height:760px;padding:54px 60px 50px;display:grid;grid-template-columns:minmax(610px,.94fr) minmax(650px,1.06fr);gap:30px;align-items:center;position:relative;z-index:2}
.hero.hero--new-fv .hero-copy{padding:0;align-self:center;max-width:720px}
.hero.hero--new-fv .eyebrow{font-size:13px;letter-spacing:.22em;margin-bottom:25px;color:#075de0;gap:16px}
.hero.hero--new-fv .eyebrow i{width:38px;height:4px;background:#f2cf00}
.hero.hero--new-fv h1{font-size:clamp(64px,5.1vw,88px);line-height:1.1;letter-spacing:-.055em;margin:0 0 22px;color:#0b3474;text-shadow:none}
.hero.hero--new-fv .hero-subtitle{font-size:25px;line-height:1.45;margin:0 0 28px;color:#0865eb;font-weight:900}
.hero.hero--new-fv .hero-body-copy{font-size:17px;line-height:1.85;font-weight:700;color:#0b3268;max-width:620px}
.hero.hero--new-fv .hero-body-copy p{margin:0 0 12px}
.hero.hero--new-fv .hero-actions{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:700px;margin-top:28px}
.hero.hero--new-fv .button{height:72px;padding:0 30px;border-radius:12px;font-size:17px;justify-content:space-between}
.hero.hero--new-fv .button--primary{background:linear-gradient(135deg,#0878ff,#0754dd);box-shadow:0 14px 28px rgba(18,92,225,.20)}
.hero.hero--new-fv .button--secondary{background:rgba(255,255,255,.88);border:1.5px solid #2372e8;color:#0b3474;box-shadow:none}
.hero.hero--new-fv .hero-graphic{display:flex;align-items:center;justify-content:center;min-width:0;transform:translateX(8px)}
.hero.hero--new-fv .hero-graphic picture{display:block;width:min(100%,760px)}
.hero.hero--new-fv .hero-graphic img{display:block;width:100%;height:auto;object-fit:contain;filter:drop-shadow(0 18px 28px rgba(39,94,164,.06))}

@media (max-width:1300px){
  .header-inner{padding-left:32px;padding-right:32px}.brand{width:205px}.global-nav{gap:24px;font-size:15px}.header-cta{padding:0 20px;font-size:14px}
  .hero.hero--new-fv .hero-inner{padding-left:38px;padding-right:38px;grid-template-columns:minmax(500px,.95fr) minmax(520px,1.05fr)}
  .hero.hero--new-fv h1{font-size:clamp(58px,5vw,74px)}
}
@media (max-width:1023px){
  .site-header{height:82px}.header-inner{padding:0 24px}.brand{width:190px}.brand img{height:58px}.global-nav,.header-cta{display:none}.menu-button{display:block;margin-left:auto}
  .hero.hero--new-fv{min-height:auto;background-position:58% center;background-image:linear-gradient(180deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.87) 44%,rgba(235,246,255,.46) 72%,rgba(224,240,255,.22) 100%),url('../img/bridge_fv_bg.webp')}
  .hero.hero--new-fv .hero-inner{min-height:auto;padding:56px 28px 44px;display:flex;flex-direction:column;gap:36px;align-items:stretch}
  .hero.hero--new-fv .hero-copy{max-width:760px;width:100%;margin:0 auto}
  .hero.hero--new-fv .hero-graphic{transform:none;width:100%;max-width:620px;margin:0 auto}
}
@media (max-width:767px){
  .site-header{height:70px}.header-inner{padding:0 18px}.brand{width:155px}.brand img{height:48px}
  .hero.hero--new-fv{background-position:58% center}
  .hero.hero--new-fv .hero-inner{padding:38px 20px 36px;gap:30px}
  .hero.hero--new-fv .eyebrow{font-size:9px;letter-spacing:.17em;gap:9px;margin-bottom:15px}.hero.hero--new-fv .eyebrow i{width:24px;height:3px}
  .hero.hero--new-fv h1{font-size:clamp(42px,12.5vw,56px);line-height:1.12;letter-spacing:-.05em;margin-bottom:16px}
  .hero.hero--new-fv .hero-subtitle{font-size:19px;margin-bottom:20px}
  .hero.hero--new-fv .hero-body-copy{font-size:14px;line-height:1.78}.hero.hero--new-fv .hero-body-copy p{margin-bottom:10px}.pc-only{display:none}
  .hero.hero--new-fv .hero-actions{grid-template-columns:1fr;gap:11px;margin-top:22px;max-width:none}
  .hero.hero--new-fv .button{height:58px;font-size:15px;padding:0 22px}
  .hero.hero--new-fv .hero-graphic{max-width:390px}
  .hero.hero--new-fv .hero-graphic picture{width:100%}
}
\n/* =========================================================\n   NEW FV FINAL VISUAL MASTER — 2026-08-22\n   Scope: Header + Hero only. Lower Ver.1 sections untouched.\n   ========================================================= */\n@media (min-width:1301px){\n  .site-header{height:100px}\n  .header-inner{max-width:1700px;padding-left:62px;padding-right:62px;gap:34px}\n  .brand{width:240px}.brand img{height:68px}\n  .global-nav{gap:40px;font-size:17px}\n  .header-cta{height:60px;padding:0 28px;font-size:16px}\n\n  .hero.hero--new-fv{\n    min-height:760px;\n    background-image:\n      linear-gradient(90deg,rgba(255,255,255,.94) 0%,rgba(255,255,255,.82) 25%,rgba(248,252,255,.58) 43%,rgba(235,247,255,.25) 66%,rgba(224,241,255,.13) 100%),\n      url('../img/bridge_fv_bg.webp');\n    background-size:cover;\n    background-position:center 55%;\n  }\n  .hero.hero--new-fv .hero-inner{\n    max-width:1700px;min-height:760px;\n    padding:50px 62px 44px;\n    grid-template-columns:minmax(620px,.94fr) minmax(660px,1.06fr);\n    gap:14px;align-items:center;\n  }\n  .hero.hero--new-fv .hero-copy{max-width:735px}\n  .hero.hero--new-fv .eyebrow{font-size:13px;letter-spacing:.22em;margin-bottom:24px}\n  .hero.hero--new-fv h1{font-size:clamp(72px,5.15vw,88px);line-height:1.08;margin-bottom:24px}\n  .hero.hero--new-fv .hero-subtitle{font-size:25px;margin-bottom:30px}\n  .hero.hero--new-fv .hero-body-copy{font-size:17px;line-height:1.82;max-width:625px}\n  .hero.hero--new-fv .hero-actions{grid-template-columns:1fr 1.08fr;gap:20px;max-width:625px;margin-top:30px}\n  .hero.hero--new-fv .button{height:72px;padding:0 30px;font-size:17px}\n  .hero.hero--new-fv .hero-graphic{transform:translateX(-4px)}\n  .hero.hero--new-fv .hero-graphic picture{width:min(112%,800px);max-width:none}\n}\n/* FINAL VISUAL MASTER FIT — viewport 1440 reference tuning */
@media (min-width:1301px){
  .hero.hero--new-fv h1{font-size:66px;line-height:1.10;letter-spacing:-.052em}
  .hero.hero--new-fv .hero-actions{max-width:635px;grid-template-columns:1fr 1.12fr;gap:18px}
  .hero.hero--new-fv .button{font-size:16px;padding-left:28px;padding-right:28px}
  .hero.hero--new-fv .hero-graphic{transform:translate(-8px,-2px);justify-content:flex-start}
  .hero.hero--new-fv .hero-graphic picture{width:min(124%,860px);max-width:none}
}
@media (min-width:1301px){
  .hero.hero--new-fv .hero-copy{width:720px;max-width:none}
  .hero.hero--new-fv h1{width:720px;max-width:none}
  .hero.hero--new-fv .hero-graphic{overflow:visible}
  .hero.hero--new-fv .hero-graphic picture{flex:0 0 800px;width:800px;max-width:none}
}
@media (min-width:1301px){
  .hero.hero--new-fv .hero-graphic{transform:translate(-55px,0)}
  .hero.hero--new-fv .hero-graphic picture{flex:0 0 900px;width:900px;max-width:none}
}
/* SP final readability: keep approved vertical structure, avoid 3-line H1 at ~390px. */
@media (max-width:767px){
  .hero.hero--new-fv h1{font-size:clamp(36px,10vw,40px);line-height:1.12;letter-spacing:-.045em}
}
/* NEW FV OVERLAP FIX */
@media (min-width:1301px){.hero.hero--new-fv .hero-inner{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:34px}.hero.hero--new-fv .hero-copy{width:auto;max-width:700px;min-width:0}.hero.hero--new-fv h1{width:auto;max-width:700px}.hero.hero--new-fv .hero-actions{max-width:625px}.hero.hero--new-fv .hero-graphic{min-width:0;width:100%;overflow:visible;transform:none;justify-content:center}.hero.hero--new-fv .hero-graphic picture{flex:none;width:min(100%,780px);max-width:780px}}
@media (min-width:1101px) and (max-width:1300px){.hero.hero--new-fv .hero-inner{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;padding-left:32px;padding-right:32px}.hero.hero--new-fv .hero-copy{width:auto;max-width:100%;min-width:0}.hero.hero--new-fv h1{width:auto;max-width:100%;font-size:clamp(54px,5vw,64px)}.hero.hero--new-fv .hero-actions{max-width:100%}.hero.hero--new-fv .hero-graphic{min-width:0;width:100%;overflow:visible;transform:none;justify-content:center}.hero.hero--new-fv .hero-graphic picture{flex:none;width:100%;max-width:720px}}
@media (min-width:901px) and (max-width:1100px){.hero.hero--new-fv .hero-inner{grid-template-columns:1fr;gap:28px;padding:42px 42px 46px}.hero.hero--new-fv .hero-copy{width:100%;max-width:760px;margin:0 auto}.hero.hero--new-fv h1{width:auto;max-width:760px;font-size:clamp(54px,7vw,68px)}.hero.hero--new-fv .hero-graphic{width:100%;max-width:700px;margin:0 auto;transform:none;justify-content:center}.hero.hero--new-fv .hero-graphic picture{flex:none;width:100%;max-width:700px}}


/* =========================================================
   NEW FV RIGHT-GRAPHIC REBALANCE — 2026-08-22
   Scope: horizontal FV layout only.
   Keep the approved H1/CTA/background; enlarge the right
   graphic by giving it more real estate, not by overlapping.
   ========================================================= */

/* Large desktop: 45 / 55 land allocation, nearly full viewport use. */
@media (min-width:1361px){
  .hero.hero--new-fv .hero-inner{
    width:min(100% - 72px, 1720px);
    max-width:1720px;
    grid-template-columns:minmax(0,45fr) minmax(0,55fr);
    column-gap:18px;
    padding-left:0;
    padding-right:0;
  }
  .hero.hero--new-fv .hero-copy{
    width:100%;
    max-width:700px;
    min-width:0;
  }
  .hero.hero--new-fv h1{
    width:auto;
    max-width:700px;
  }
  .hero.hero--new-fv .hero-actions{
    width:100%;
    max-width:625px;
  }
  .hero.hero--new-fv .hero-graphic{
    min-width:0;
    width:100%;
    max-width:none;
    margin:0;
    transform:none;
    justify-content:flex-end;
    overflow:visible;
  }
  .hero.hero--new-fv .hero-graphic picture{
    display:block;
    flex:none;
    width:min(100%, 880px);
    max-width:880px;
    margin-left:auto;
  }
  .hero.hero--new-fv .hero-graphic img{
    display:block;
    width:100%;
    height:auto;
  }
}

/* 1280-ish desktop: preserve two protagonists, scale the graph progressively. */
@media (min-width:1181px) and (max-width:1360px){
  .hero.hero--new-fv .hero-inner{
    width:calc(100% - 48px);
    max-width:none;
    grid-template-columns:minmax(0,46fr) minmax(0,54fr);
    column-gap:18px;
    padding-left:0;
    padding-right:0;
  }
  .hero.hero--new-fv .hero-copy{
    width:100%;
    max-width:100%;
    min-width:0;
  }
  .hero.hero--new-fv h1{
    width:auto;
    max-width:100%;
    font-size:clamp(58px,5.05vw,70px);
  }
  .hero.hero--new-fv .hero-actions{max-width:100%}
  .hero.hero--new-fv .hero-graphic{
    min-width:0;
    width:100%;
    max-width:none;
    margin:0;
    transform:none;
    justify-content:flex-end;
  }
  .hero.hero--new-fv .hero-graphic picture{
    display:block;
    flex:none;
    width:min(100%,790px);
    max-width:790px;
    margin-left:auto;
  }
  .hero.hero--new-fv .hero-graphic img{
    display:block;
    width:100%;
    height:auto;
  }
}

/* Narrow desktop/tablet: stay safe before switching to the vertical composition. */
@media (min-width:1025px) and (max-width:1180px){
  .hero.hero--new-fv .hero-inner{
    width:calc(100% - 40px);
    max-width:none;
    grid-template-columns:minmax(0,47fr) minmax(0,53fr);
    column-gap:16px;
    padding-left:0;
    padding-right:0;
  }
  .hero.hero--new-fv .hero-copy{width:100%;max-width:100%;min-width:0}
  .hero.hero--new-fv h1{
    width:auto;
    max-width:100%;
    font-size:clamp(50px,5vw,59px);
  }
  .hero.hero--new-fv .hero-actions{max-width:100%}
  .hero.hero--new-fv .hero-graphic{
    min-width:0;
    width:100%;
    max-width:none;
    margin:0;
    transform:none;
    justify-content:flex-end;
  }
  .hero.hero--new-fv .hero-graphic picture{
    display:block;
    flex:none;
    width:100%;
    max-width:680px;
    margin-left:auto;
  }
  .hero.hero--new-fv .hero-graphic img{display:block;width:100%;height:auto}
}

/* Around 1024px, do not force the two columns to collide. */
@media (min-width:901px) and (max-width:1024px){
  .hero.hero--new-fv .hero-inner{
    grid-template-columns:1fr;
    gap:28px;
    padding:42px 42px 46px;
  }
  .hero.hero--new-fv .hero-copy{
    width:100%;
    max-width:760px;
    margin:0 auto;
  }
  .hero.hero--new-fv .hero-graphic{
    width:100%;
    max-width:700px;
    margin:0 auto;
    transform:none;
    justify-content:center;
  }
  .hero.hero--new-fv .hero-graphic picture{
    display:block;
    flex:none;
    width:100%;
    max-width:700px;
  }
}

/* NEW FV VERTICAL BALANCE FINAL — vertical-only lock */
@media (min-width:1361px){
 .hero.hero--new-fv{min-height:680px}
 .hero.hero--new-fv .hero-inner{min-height:680px;padding-top:34px;padding-bottom:34px;align-items:center}
 .hero.hero--new-fv .hero-copy,.hero.hero--new-fv .hero-graphic{align-self:center}
}
@media (min-width:1181px) and (max-width:1360px){
 .hero.hero--new-fv{min-height:680px}
 .hero.hero--new-fv .hero-inner{min-height:680px;padding-top:34px;padding-bottom:34px;align-items:center}
 .hero.hero--new-fv .hero-copy,.hero.hero--new-fv .hero-graphic{align-self:center}
}
@media (min-width:1025px) and (max-width:1180px){
 .hero.hero--new-fv{min-height:650px}
 .hero.hero--new-fv .hero-inner{min-height:650px;padding-top:30px;padding-bottom:30px;align-items:center}
}
@media (min-width:901px) and (max-width:1024px){
 .hero.hero--new-fv .hero-inner{padding-top:36px;padding-bottom:38px}
}


/* =========================================================
   NEW FV RIGHT VISUAL Y-LINE FIX — 2026-08-22
   Scope: right Bridge visual vertical position ONLY.
   Locked: H1, copy, CTA, graphic size/x-position, FV height,
   background, Header, Achievements and every section below.
   ========================================================= */
@media (min-width:1361px){
  .hero.hero--new-fv .hero-graphic{
    position:relative;
    top:32px;
  }
}
@media (min-width:1181px) and (max-width:1360px){
  .hero.hero--new-fv .hero-graphic{
    position:relative;
    top:24px;
  }
}
@media (min-width:1025px) and (max-width:1180px){
  .hero.hero--new-fv .hero-graphic{
    position:relative;
    top:14px;
  }
}


/* =========================================================
   NEW FV LEFT CONTENT X-POSITION MICRO ADJUST — 2026-08-22
   Scope: PC left content block horizontal position ONLY.
   Locked: copy, typography, CTA, right graphic, background,
   FV height, header, SP, and every section below FV.
   ========================================================= */
@media (min-width:1361px){
  .hero.hero--new-fv .hero-copy{
    position:relative;
    left:36px;
  }
}
@media (min-width:1181px) and (max-width:1360px){
  .hero.hero--new-fv .hero-copy{
    position:relative;
    left:26px;
  }
}
@media (min-width:1025px) and (max-width:1180px){
  .hero.hero--new-fv .hero-copy{
    position:relative;
    left:16px;
  }
}


/* =========================================================
   NEW FV LEFT CONTENT X-POSITION +2CM MICRO ADJUST — 2026-08-22
   Scope: PC left content parent block horizontal position ONLY.
   Locked: typography, copy, CTA, right graphic, background,
   FV height, header, SP, and every section below FV.
   ========================================================= */
@media (min-width:1361px){
  .hero.hero--new-fv .hero-copy{
    left:108px; /* previous +36px + ~72px additional */
  }
}
@media (min-width:1181px) and (max-width:1360px){
  .hero.hero--new-fv .hero-copy{
    left:82px; /* previous +26px + ~56px additional */
  }
}
@media (min-width:1025px) and (max-width:1180px){
  .hero.hero--new-fv .hero-copy{
    left:52px; /* previous +16px + ~36px additional */
  }
}

/* PC FV background: disable the secondary white overlay only. */
@media (min-width:1025px){
  .hero.hero--new-fv:before{background:none;}
}
