
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=Noto+Serif+JP:wght@500;600;700&display=swap');
/* ========== Reset & Base ========== */
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  font-family: "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", sans-serif;
  line-height: 1.8;
  color: #1a1a1a;
  background: #fff;
  overflow-x: hidden;
}
a { text-decoration: none; color: inherit; cursor: pointer; }
button { font-family: inherit; border: none; cursor: pointer; background: transparent; }
img { max-width: 100%; display: block; }

:root {
  --navy: #0D2340;
  --navy2: #162E4D;
  --navy3: #1E3A5F;
  --green: #00896C;
  --green2: #00A884;
  --green3: #E8F5F0;
  --gold: #C4A35A;
  --bg: #F8F7F4;
  --card: #FFFFFF;
  --text: #1A1F2E;
  --sub: #6B7280;
  --mute: #9CA3AF;
  --line: #E5E2DB;
  --soft: #F0EDE6;
}

/* ========== Common Header ========== */
.topnav {
  position: fixed;
  top: 0; left: 0; right: 0;
  height: 64px;
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 40px;
}
.topnav .brand {
  display: flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
}
.topnav .brand-logo {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  background: var(--navy);
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 700;
  font-size: 18px;
  position: relative;
}
.topnav .brand-logo::after {
  content: "";
  position: absolute;
  bottom: -3px;
  right: -3px;
  width: 14px;
  height: 14px;
  border: 1.5px solid var(--green);
  border-radius: 50%;
  opacity: 0.5;
}
.topnav .brand-text .name {
  font-size: 15px;
  font-weight: 700;
  color: var(--navy);
  letter-spacing: -0.3px;
  line-height: 1;
}
.topnav .brand-text .tagline {
  font-size: 8px;
  color: var(--mute);
  letter-spacing: 2.5px;
  margin-top: 3px;
}
.topnav .nav-center {
  display: flex;
  gap: 4px;
}
.topnav .nav-link {
  padding: 7px 14px;
  border-radius: 7px;
  font-size: 12.5px;
  font-weight: 500;
  color: var(--sub);
  transition: all 0.2s;
}
.topnav .nav-link.active,
.topnav .nav-link:hover {
  color: var(--navy);
  font-weight: 600;
}
.topnav .nav-link.active {
  background: var(--soft);
}
.topnav .nav-right {
  display: flex;
  align-items: center;
  gap: 10px;
}
.topnav .contact-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 18px;
  border: 1px solid var(--line);
  border-radius: 7px;
  color: var(--navy);
  font-size: 12px;
  font-weight: 500;
  transition: all 0.2s;
}
.topnav .contact-btn:hover {
  background: var(--soft);
  border-color: var(--navy);
}
.topnav .nav-news {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 18px;
  border: 1px solid var(--green);
  border-radius: 7px;
  color: var(--green);
  font-size: 12px;
  font-weight: 600;
  background: white;
  transition: all 0.2s;
}
.topnav .nav-news:hover {
  background: var(--green);
  color: white;
}
.topnav .nav-cta {
  background: var(--green);
  color: white;
  padding: 9px 18px;
  border-radius: 7px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.3px;
  transition: all 0.2s;
}
.topnav .nav-cta:hover {
  background: var(--green2);
  transform: translateY(-1px);
}

/* ========== Page System ========== */
main { padding-top: 64px; }
.page { display: none; }
.page.active { display: block; animation: fadeIn 0.5s ease; }
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

.wrap { max-width: 1100px; margin: 0 auto; padding: 0 40px; }

/* ========== HOME: Hero ========== */
.hero {
  position: relative;
  min-height: 68vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: var(--navy);
}
.hero-bg-slider {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.hero-bg-slider .slide {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transition: opacity 1.8s ease-in-out;
}
.hero-bg-slider .slide.active { opacity: 1; }
.hero-bg-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(13, 35, 64, 0.85) 0%, rgba(30, 58, 95, 0.72) 100%);
  z-index: 1;
}
.hero-content {
  position: relative;
  z-index: 2;
  color: white;
  padding: 32px 40px 44px;
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.7fr 1fr;
  gap: 40px;
  align-items: center;
}
.hero-left {
  text-align: left;
}
.hero-tag {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 11px;
  letter-spacing: 0.4em;
  opacity: 0.9;
  margin-bottom: 20px;
  font-weight: 500;
  color: var(--green2);
}
.hero-tag::before {
  content: "";
  width: 30px;
  height: 1px;
  background: var(--green2);
  opacity: 0.7;
}
.hero h1 {
  font-size: 42px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0.02em;
  margin-bottom: 20px;
  font-feature-settings: "palt";
  animation: fadeUp 1s ease 0.2s both;
}
.hero h1 em {
  color: var(--green2);
  font-style: normal;
  position: relative;
}
.hero-sub {
  font-size: 13.5px;
  line-height: 1.85;
  opacity: 0.9;
  max-width: 560px;
  margin: 0 0 24px;
  font-weight: 300;
  animation: fadeUp 1s ease 0.5s both;
}
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

/* ========== HOME: Hero Right - Insights Stream ========== */
.hero-right {
  position: relative;
  height: 340px;
  overflow: hidden;
  animation: fadeUp 1s ease 0.5s both;
}
.hero-right::before {
  content: "LATEST INSIGHTS";
  position: absolute;
  top: -18px;
  left: 0;
  font-size: 9.5px;
  letter-spacing: 0.35em;
  color: var(--green2);
  font-weight: 600;
  z-index: 3;
}
.hero-stream {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-top: 4px;
}
.hero-stream-card {
  background: white;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.22);
  cursor: pointer;
  transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  opacity: 0;
  transform: translateY(30px);
  display: grid;
  grid-template-columns: 90px 1fr;
  min-height: 76px;
}
.hero-stream-card.enter {
  opacity: 1;
  transform: translateY(0);
}
.hero-stream-card.exit {
  opacity: 0;
  transform: translateY(-30px);
}
.hero-stream-card:hover {
  transform: translateY(-2px) scale(1.02);
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.3);
}
.hero-stream-card .thumb {
  background-size: cover;
  background-position: center;
  background-color: var(--soft);
}
.hero-stream-card .body {
  padding: 8px 12px 9px;
  border-top: 2.5px solid var(--green);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.hero-stream-card .tag {
  display: inline-block;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.4px;
  padding: 1.5px 7px;
  border-radius: 3px;
  margin-bottom: 4px;
  align-self: flex-start;
}
.hero-stream-card h5 {
  font-size: 11.5px;
  font-weight: 700;
  color: var(--navy);
  line-height: 1.45;
  margin-bottom: 4px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.hero-stream-card .meta {
  font-size: 10px;
  color: var(--mute);
}

/* ========== HOME: Hero Stats (Trophy-feel) ========== */
.hero-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  max-width: 640px;
  margin: 0;
  animation: fadeUp 1s ease 0.8s both;
}
.hero-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 14px 10px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 10px;
  backdrop-filter: blur(8px);
  transition: all 0.3s;
}
.hero-stat:hover {
  background: rgba(255, 255, 255, 0.14);
  transform: translateY(-3px);
  border-color: var(--green2);
}
.hero-stat .icon {
  width: 30px;
  height: 30px;
  color: var(--green2);
  margin-bottom: 6px;
}
.hero-stat .num {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 28px;
  font-weight: 700;
  color: white;
  letter-spacing: -0.5px;
  line-height: 1;
}
.hero-stat .label {
  font-size: 10.5px;
  color: rgba(255, 255, 255, 0.85);
  margin-top: 4px;
  letter-spacing: 0.05em;
}

/* ========== HOME: Scroll Indicator ========== */
.scroll-indicator {
  position: absolute;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 3;
  color: white;
  font-size: 10px;
  letter-spacing: 0.3em;
  opacity: 0.8;
  text-align: center;
  animation: bounce 2s ease infinite;
}
.scroll-indicator::after {
  content: "";
  display: block;
  width: 1px;
  height: 28px;
  background: white;
  margin: 8px auto 0;
  opacity: 0.7;
}
@keyframes bounce {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(6px); }
}

/* ========== HOME: Sections ========== */
.section { padding: 100px 0; }
.section.alt { background: var(--bg); }
.section-label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 4px;
  color: var(--green);
  margin-bottom: 16px;
}
.section-label::before {
  content: "";
  width: 32px;
  height: 1.5px;
  background: var(--green);
}
.section-title {
  font-size: 34px;
  font-weight: 700;
  color: var(--navy);
  line-height: 1.4;
  letter-spacing: 0.02em;
  margin-bottom: 48px;
}

/* ========== HOME: Learning Approach ========== */
.lte-ages {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
  margin-bottom: 32px;
}
.lte-age {
  padding: 24px 16px;
  background: white;
  border: 1px solid var(--line);
  border-radius: 12px;
  text-align: center;
  transition: all 0.3s;
}
.lte-age:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 28px rgba(13, 35, 64, 0.1);
  border-color: var(--green);
}
.lte-age .dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  margin: 0 auto 12px;
}
.lte-age .label {
  font-size: 14px;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 4px;
}
.lte-age .sub {
  font-size: 10.5px;
  color: var(--mute);
}

/* ========== HOME: IS Showcase ========== */
.is-showcase {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
}
.is-card {
  display: flex;
  background: white;
  border: 1px solid var(--line);
  border-radius: 14px;
  overflow: hidden;
  transition: all 0.3s;
}
.is-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 32px rgba(13, 35, 64, 0.1);
}
.is-card .img {
  width: 180px;
  flex-shrink: 0;
  background-size: cover;
  background-position: center;
}
.is-card .body {
  padding: 20px 22px;
  flex: 1;
}
.is-card .head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}
.is-card .short {
  font-size: 17px;
  font-weight: 700;
  color: var(--navy);
}
.is-card .ib {
  background: var(--green);
  color: white;
  font-size: 9px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 4px;
  letter-spacing: 0.5px;
}
.is-card .fullname {
  font-size: 11.5px;
  color: var(--sub);
  line-height: 1.6;
  margin-bottom: 10px;
}
.is-card .meta {
  display: flex;
  gap: 14px;
  font-size: 11px;
  color: var(--sub);
}

/* ========== HOME: Recurrent Section ========== */
.recurrent-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}
.recurrent-card {
  border-radius: 14px;
  overflow: hidden;
  background: white;
  border: 1px solid var(--line);
  transition: all 0.3s;
  cursor: pointer;
}
.recurrent-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 32px rgba(13, 35, 64, 0.1);
}
.recurrent-card .photo {
  aspect-ratio: 16/10;
  background-size: cover;
  background-position: center;
  position: relative;
}
.recurrent-card .badge {
  position: absolute;
  top: 12px;
  left: 12px;
  background: var(--navy);
  color: white;
  font-size: 10px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 4px;
  letter-spacing: 0.5px;
}
.recurrent-card .body {
  padding: 20px 22px;
}
.recurrent-card h4 {
  font-size: 17px;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 6px;
  line-height: 1.5;
}
.recurrent-card p {
  font-size: 12.5px;
  color: var(--sub);
  line-height: 1.7;
}

/* ========== HOME: Insights Preview ========== */
.insights-preview-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}
.insights-card {
  background: white;
  border: 1px solid var(--line);
  border-radius: 14px;
  overflow: hidden;
  cursor: pointer;
  transition: all 0.3s;
}
.insights-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 32px rgba(13, 35, 64, 0.1);
}
.insights-card .photo {
  aspect-ratio: 16/10;
  background-size: cover;
  background-position: center;
}
.insights-card .body {
  padding: 16px 20px;
  border-top: 3px solid var(--green);
}
.insights-card .tag {
  display: inline-block;
  background: var(--green3);
  color: var(--green);
  font-size: 10px;
  font-weight: 700;
  padding: 3px 9px;
  border-radius: 4px;
  margin-bottom: 8px;
  letter-spacing: 0.5px;
}
.insights-card h4 {
  font-size: 14px;
  font-weight: 700;
  color: var(--navy);
  line-height: 1.5;
  margin-bottom: 8px;
}
.insights-card .meta {
  font-size: 11px;
  color: var(--mute);
}

.see-all-link {
  text-align: center;
  margin-top: 32px;
}
.see-all-link a {
  display: inline-block;
  color: var(--green);
  font-size: 12px;
  font-weight: 600;
  padding: 10px 24px;
  border: 1px solid var(--green);
  border-radius: 22px;
  letter-spacing: 1px;
  transition: all 0.2s;
}
.see-all-link a:hover {
  background: var(--green);
  color: white;
}

/* ========== ABOUT Page ========== */
.about-hero {
  padding: 90px 40px 70px;
  background: linear-gradient(135deg, rgba(13, 35, 64, 0.88) 0%, rgba(30, 58, 95, 0.75) 100%),
    url('https://aoba-bbt.com/wp-content/uploads/2025/04/mv_company-scaled.jpg') center/cover;
  color: white;
  text-align: center;
}
.about-hero .tag {
  font-size: 11px;
  letter-spacing: 4px;
  color: var(--green2);
  margin-bottom: 16px;
  font-weight: 600;
}
.about-hero h1 {
  font-size: 40px;
  font-weight: 700;
  margin-bottom: 14px;
  letter-spacing: 0.04em;
}
.about-hero .en {
  font-size: 14px;
  letter-spacing: 3px;
  opacity: 0.85;
  margin-bottom: 20px;
}
.about-hero .sub {
  font-size: 13px;
  line-height: 1.9;
  opacity: 0.88;
  max-width: 640px;
  margin: 0 auto;
}

.sticky-anchor-nav {
  position: sticky;
  top: 64px;
  z-index: 50;
  background: white;
  border-bottom: 1px solid var(--line);
  padding: 12px 20px;
}
.sticky-anchor-nav-inner {
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  gap: 4px;
  justify-content: center;
  flex-wrap: wrap;
}
.sticky-anchor-nav a {
  padding: 7px 16px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 500;
  color: var(--sub);
  transition: all 0.2s;
}
.sticky-anchor-nav a:hover,
.sticky-anchor-nav a.active {
  background: var(--navy);
  color: white;
}

.about-section {
  padding: 80px 40px;
}
.about-section.alt {
  background: var(--bg);
}
.about-section-inner {
  max-width: 1100px;
  margin: 0 auto;
}

/* Top Message */
.top-message-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
}
.top-message-text h3 {
  font-size: 24px;
  font-weight: 700;
  color: var(--navy);
  line-height: 1.55;
  margin-bottom: 22px;
}
.top-message-text p {
  font-size: 13.5px;
  color: var(--sub);
  line-height: 1.95;
  margin-bottom: 14px;
}
.top-message-signature {
  margin-top: 24px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
}
.top-message-signature .role {
  font-size: 11px;
  color: var(--mute);
  letter-spacing: 1px;
}
.top-message-signature .name {
  font-size: 18px;
  font-weight: 700;
  color: var(--navy);
}
.top-message-visual {
  aspect-ratio: 16/10;
  border-radius: 14px;
  background: url('https://aoba-bbt.com/wp-content/uploads/2023/11/movie-top-message.png') center/cover, var(--navy);
  box-shadow: 0 20px 40px rgba(13, 35, 64, 0.15);
  position: relative;
  cursor: pointer;
  overflow: hidden;
}
.top-message-visual::after {
  content: "▶";
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 64px;
  height: 64px;
  background: rgba(255, 255, 255, 0.95);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--green);
  font-size: 20px;
  padding-left: 5px;
  transition: transform 0.3s;
}
.top-message-visual:hover::after {
  transform: translate(-50%, -50%) scale(1.1);
}

/* History Timeline */
.history-list {
  border-left: 2px solid var(--green);
  padding-left: 24px;
  margin-top: 32px;
}
.history-item {
  position: relative;
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 20px;
  padding: 14px 0;
  border-bottom: 1px solid var(--line);
  align-items: baseline;
}
.history-item::before {
  content: "";
  position: absolute;
  left: -32px;
  top: 22px;
  width: 12px;
  height: 12px;
  background: var(--green);
  border-radius: 50%;
  border: 3px solid white;
}
.history-item .year {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 22px;
  font-weight: 700;
  color: var(--green);
}
.history-item .event {
  font-size: 13px;
  line-height: 1.75;
}
.history-item .event strong {
  color: var(--navy);
  font-weight: 700;
}

/* Company Info Table */
.company-table {
  background: white;
  border: 1px solid var(--line);
  border-radius: 14px;
  overflow: hidden;
  margin-top: 16px;
}
.company-row {
  display: grid;
  grid-template-columns: 200px 1fr;
  border-bottom: 1px solid var(--line);
}
.company-row:last-child { border-bottom: none; }
.company-row .k {
  padding: 16px 22px;
  background: var(--soft);
  font-size: 12.5px;
  font-weight: 600;
  color: var(--sub);
  letter-spacing: 0.5px;
}
.company-row .v {
  padding: 16px 22px;
  font-size: 13.5px;
  color: var(--text);
  line-height: 1.75;
}
.company-row .v ul { list-style: none; }
.company-row .v li {
  padding: 2px 0;
  padding-left: 16px;
  position: relative;
}
.company-row .v li::before {
  content: "■";
  position: absolute;
  left: 0;
  color: var(--green);
  font-size: 9px;
  top: 6px;
}

/* Japan First Cards */
.japan-first-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
  margin-top: 24px;
}
.japan-first-card {
  padding: 24px 22px;
  background: linear-gradient(135deg, #FFF5F0, #FFEFE8);
  border: 1px solid #FFD9C4;
  border-radius: 12px;
  position: relative;
}
.japan-first-card .badge {
  display: inline-block;
  background: linear-gradient(135deg, #D4562F, #B63F1A);
  color: white;
  font-size: 10px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 3px;
  letter-spacing: 1px;
  margin-bottom: 10px;
}
.japan-first-card .year {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 26px;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 6px;
}
.japan-first-card .desc {
  font-size: 12.5px;
  color: var(--text);
  line-height: 1.7;
}

/* Government Timeline */
.gov-timeline {
  margin-top: 24px;
}
.gov-item {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 20px;
  padding: 16px 0;
  border-bottom: 1px solid var(--line);
  align-items: baseline;
}
.gov-item .period {
  font-size: 13px;
  font-weight: 700;
  color: var(--navy);
}
.gov-item .body {
  font-size: 13px;
  color: var(--text);
  line-height: 1.7;
}

/* Awards */
.awards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 16px;
  margin-top: 24px;
}
.award-card {
  display: flex;
  gap: 16px;
  padding: 22px;
  background: white;
  border: 1px solid var(--line);
  border-radius: 12px;
}
.award-card .trophy {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  background: linear-gradient(135deg, #FFD54F, #F9A825);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: 22px;
}
.award-card .year {
  font-size: 11px;
  color: var(--mute);
  letter-spacing: 0.5px;
  margin-bottom: 4px;
}
.award-card h4 {
  font-size: 14px;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 4px;
  line-height: 1.5;
}
.award-card p {
  font-size: 11.5px;
  color: var(--sub);
}

/* Access */
.access-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin-top: 24px;
}
.access-card {
  background: white;
  border: 1px solid var(--line);
  border-radius: 14px;
  overflow: hidden;
}
.access-card .photo {
  aspect-ratio: 16/9;
  background-size: cover;
  background-position: center;
}
.access-card .body { padding: 22px 24px; }
.access-card h4 {
  font-size: 17px;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 10px;
}
.access-card .addr {
  font-size: 12.5px;
  color: var(--sub);
  line-height: 1.75;
  margin-bottom: 14px;
}
.access-card .access-list {
  list-style: none;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}
.access-card .access-list li {
  font-size: 11.5px;
  color: var(--sub);
  padding: 3px 0;
}

/* Officers */
.officers-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-top: 24px;
}
.officer-card {
  padding: 22px 18px;
  background: white;
  border: 1px solid var(--line);
  border-radius: 10px;
  text-align: center;
}

.officer-card .officer-photo{width:78px; height:78px; border-radius:50%;
  background-size:cover; background-position:center top; margin:0 auto 12px;
  border:1px solid var(--line);}
.officer-card .role {
  font-size: 10px;
  color: var(--green);
  letter-spacing: 1.5px;
  font-weight: 700;
  margin-bottom: 6px;
}
.officer-card .name {
  font-size: 15px;
  font-weight: 700;
  color: var(--navy);
}

/* ========== CREDO Page ========== */
.careers-page { background: #fff; }
.careers-hero {
  position: relative;
  min-height: 340px;
  display: flex;
  align-items: center;
  overflow: hidden;
  background: #0B1E3D;
}
.careers-hero-bg {
  position: absolute;
  inset: 0;
  background: url('../images/10_recruit/staff1_mv.jpg') center 32%/cover no-repeat;
  z-index: 1;
}
.careers-hero-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(100deg, rgba(11,30,61,.94) 0%, rgba(11,30,61,.82) 42%,
                    rgba(11,30,61,.55) 72%, rgba(11,30,61,.42) 100%);
}
.careers-hero-content {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 1120px;
  margin: 0 auto;
  padding: 54px 40px;
  text-align: left;
}
.careers-hero-tag {
  display: inline-block;
  font-size: 10px;
  letter-spacing: 4.5px;
  font-weight: 700;
  color: #E0C889;
}
.careers-hero h1 {
  font-size: clamp(26px, 3.1vw, 38px);
  font-weight: 700;
  color: #fff;
  line-height: 1.34;
  letter-spacing: .06em;
  margin: 13px 0 0;
}
.careers-hero h1 .line { display: block; }
.careers-hero h1 .line:nth-child(1) { animation-delay: 0.3s; }
.careers-hero h1 .line:nth-child(2) { animation-delay: 0.6s; }
.careers-hero-sub {
  font-size: 13px;
  line-height: 2;
  color: rgba(255,255,255,.8);
  margin: 18px 0 0;
  max-width: 560px;
}

.anchor-nav-careers {
  background: #fff;
  padding: 70px 24px 50px;
  text-align: center;
  border-bottom: 1px solid #f0f0f0;
}
.anchor-nav-careers .label {
  font-size: 11px;
  letter-spacing: 0.4em;
  color: #888;
  margin-bottom: 14px;
}
.anchor-nav-careers .heading {
  font-size: 22px;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 40px;
}
.anchor-buttons {
  display: flex;
  justify-content: center;
  gap: 18px;
  flex-wrap: wrap;
  max-width: 1000px;
  margin: 0 auto;
}
.anchor-btn {
  flex: 1;
  min-width: 240px;
  max-width: 300px;
  padding: 26px 18px;
  border: 2px solid var(--navy);
  background: white;
  color: var(--navy);
  border-radius: 8px;
  text-align: center;
  transition: all 0.3s;
  cursor: pointer;
}
.anchor-btn:hover {
  background: var(--navy);
  color: white;
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(13, 35, 64, 0.3);
}
.anchor-btn .num {
  font-size: 11px;
  letter-spacing: 0.3em;
  opacity: 0.7;
  margin-bottom: 8px;
  display: block;
}
.anchor-btn .title {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 4px;
  line-height: 1.4;
}
.anchor-btn .en {
  font-size: 10px;
  letter-spacing: 0.2em;
  opacity: 0.6;
}

.careers-about {
  padding: 100px 24px;
  background: var(--bg);
}
.careers-about-inner { max-width: 1100px; margin: 0 auto; }
.careers-about-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
}
.careers-about-text p {
  font-size: 14px;
  line-height: 2;
  margin-bottom: 18px;
  color: #333;
}
.careers-about-visual {
  aspect-ratio: 4/3;
  background: linear-gradient(135deg, #E8EEF7 0%, #C4D5ED 100%);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
}
.careers-about-visual::before {
  content: "Aoba-BBT";
  position: absolute;
  font-size: 60px;
  font-weight: 700;
  color: rgba(28, 90, 168, 0.1);
}

.careers-layer { padding: 100px 24px; }
.careers-layer.alt { background: var(--bg); }
.careers-layer-inner { max-width: 1100px; margin: 0 auto; }
.careers-layer-header {
  display: flex;
  align-items: baseline;
  gap: 24px;
  margin-bottom: 48px;
  padding-bottom: 20px;
  border-bottom: 2px solid var(--navy);
}
.careers-layer-num {
  font-size: 56px;
  font-weight: 700;
  color: #1C5AA8;
  line-height: 1;
  font-family: Georgia, serif;
  opacity: 0.85;
}
.careers-layer-title { flex: 1; }
.careers-layer-title .en {
  font-size: 11px;
  letter-spacing: 0.4em;
  color: #888;
  margin-bottom: 8px;
}
.careers-layer-title .ja {
  font-size: 24px;
  font-weight: 700;
  color: var(--navy);
}
.careers-layer-intro {
  font-size: 14px;
  line-height: 2;
  color: #444;
  margin-bottom: 48px;
  max-width: 800px;
}
.careers-layer-intro strong { color: #1C5AA8; font-weight: 600; }

.article-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 24px;
  margin-bottom: 36px;
}
.article-card {
  background: white;
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid #E8ECF1;
  cursor: pointer;
  transition: all 0.3s;
}
.article-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 14px 30px rgba(15, 42, 95, 0.12);
}
.article-thumb {
  aspect-ratio: 4/3;
  background: linear-gradient(135deg, #E8EEF7, #C4D5ED);
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(28, 90, 168, 0.3);
  font-size: 11px;
  letter-spacing: 2px;
}
.article-thumb.va { background: linear-gradient(135deg, #FFF1E8, #FFD4A3); color: rgba(186, 117, 23, 0.4); }
.article-thumb.vb { background: linear-gradient(135deg, #EAF3DE, #C0DD97); color: rgba(59, 109, 17, 0.4); }
.article-thumb.vc { background: linear-gradient(135deg, #FBEAF0, #F4C0D1); color: rgba(153, 53, 86, 0.4); }
.article-body { padding: 22px; }
.article-tags {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 10px;
}
.article-tag {
  font-size: 10px;
  color: #1C5AA8;
  background: #EEF4FB;
  padding: 3px 10px;
  border-radius: 3px;
  letter-spacing: 0.5px;
}
.article-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--navy);
  line-height: 1.55;
  margin-bottom: 10px;
}
.article-meta { font-size: 11.5px; color: #888; }
.article-meta span { color: #555; }

.recruit-info {
  padding: 100px 24px;
  background: var(--navy);
  color: white;
}
.recruit-info-inner { max-width: 1100px; margin: 0 auto; }
.recruit-info .section-label-white {
  font-size: 11px;
  letter-spacing: 4px;
  color: var(--green2);
  font-weight: 600;
  margin-bottom: 14px;
}
.recruit-info h2 {
  font-size: 32px;
  font-weight: 700;
  margin-bottom: 48px;
  letter-spacing: 2px;
}
.recruit-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 36px;
  margin-bottom: 50px;
}
.recruit-item {
  border-top: 1px solid rgba(255,255,255,0.2);
  padding-top: 20px;
}
.recruit-item .label {
  font-size: 11px;
  letter-spacing: 2px;
  color: var(--green2);
  margin-bottom: 10px;
  font-weight: 600;
}
.recruit-item .value {
  font-size: 14px;
  line-height: 1.8;
}
.recruit-item .value small {
  font-size: 11px;
  opacity: 0.7;
}
.recruit-info-cta {
  text-align: center;
  padding-top: 36px;
  border-top: 1px solid rgba(255,255,255,0.15);
}
.recruit-info-cta .msg {
  font-size: 14px;
  line-height: 2;
  opacity: 0.9;
  margin-bottom: 28px;
}
.entry-big {
  display: inline-block;
  background: white;
  color: var(--navy);
  padding: 16px 52px;
  font-size: 13px;
  letter-spacing: 3px;
  font-weight: 700;
  border-radius: 4px;
  transition: all 0.3s;
}
.entry-big:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(0,0,0,0.3);
}

/* Floating ENTRY button (careers only) */
.floating-entry {
  position: fixed;
  right: 28px;
  bottom: 100px;
  background: linear-gradient(135deg, #1C5AA8, var(--navy));
  color: white;
  padding: 14px 32px;
  border-radius: 40px;
  font-size: 13px;
  letter-spacing: 2px;
  font-weight: 700;
  z-index: 99;
  box-shadow: 0 8px 24px rgba(28, 90, 168, 0.4);
  opacity: 0;
  pointer-events: none;
  transition: all 0.3s;
  display: flex;
  align-items: center;
  gap: 8px;
}
.floating-entry.visible {
  opacity: 1;
  pointer-events: auto;
}
.floating-entry::before {
  content: "→";
  transition: transform 0.2s;
}
.floating-entry:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 30px rgba(28, 90, 168, 0.5);
}
.floating-entry:hover::before {
  transform: translateX(4px);
}

/* ========== Career Article Detail ========== */
.article-breadcrumb {
  padding: 20px 24px;
  background: var(--bg);
  border-bottom: 1px solid var(--line);
  font-size: 12px;
  color: var(--sub);
}
.article-breadcrumb .inner {
  max-width: 780px;
  margin: 0 auto;
}
.article-breadcrumb a { color: var(--green); }
.article-breadcrumb .sep { margin: 0 8px; color: var(--mute); }

.article-header {
  background: var(--bg);
  padding: 32px 24px 50px;
}
.article-header-inner {
  max-width: 780px;
  margin: 0 auto;
  text-align: center;
}
.article-header .label {
  font-size: 11px;
  letter-spacing: 4px;
  color: var(--green);
  font-weight: 700;
  margin-bottom: 8px;
}
.article-header .sub {
  font-size: 12px;
  color: var(--sub);
  letter-spacing: 1px;
}

.article-container {
  max-width: 780px;
  margin: 0 auto;
  padding: 50px 24px 70px;
}
.article-meta-top {
  color: var(--mute);
  font-size: 12px;
  letter-spacing: 1px;
  margin-bottom: 10px;
}
.article-tags-top {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 22px;
}
.article-tags-top .tag {
  background: #EEF4FB;
  color: #1C5AA8;
  padding: 4px 12px;
  border-radius: 4px;
  font-size: 11.5px;
  letter-spacing: 0.3px;
}
.article-tags-top .tag.highlight {
  background: #1C5AA8;
  color: white;
}
.article-container h1 {
  font-size: 28px;
  font-weight: 700;
  color: var(--navy);
  line-height: 1.5;
  margin-bottom: 30px;
  letter-spacing: 0.02em;
}
.article-profile {
  display: flex;
  gap: 18px;
  align-items: center;
  padding: 18px;
  background: #F7F9FC;
  border-radius: 10px;
  margin-bottom: 36px;
}
.article-profile .avatar {
  width: 66px;
  height: 66px;
  border-radius: 50%;
  flex-shrink: 0;
}
.article-profile .avatar.va { background: linear-gradient(135deg, #FFD4A3, #EF9F27); }
.article-profile .avatar.vb { background: linear-gradient(135deg, #C0DD97, #639922); }
.article-profile .avatar.vc { background: linear-gradient(135deg, #CECBF6, #7F77DD); }
.article-profile .name {
  font-size: 17px;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 3px;
}
.article-profile .name-en {
  font-size: 12px;
  color: var(--mute);
  margin-bottom: 6px;
}
.article-profile .belongs {
  font-size: 12px;
  color: var(--sub);
  line-height: 1.6;
}
.article-lead {
  font-size: 15px;
  color: #444;
  padding: 18px 0;
  border-top: 2px solid #1C5AA8;
  border-bottom: 1px solid #E5E5E5;
  margin-bottom: 36px;
  line-height: 1.9;
}
.article-container h2 {
  font-size: 19px;
  font-weight: 700;
  margin-top: 44px;
  margin-bottom: 18px;
  color: #1C5AA8;
  border-left: 4px solid #1C5AA8;
  padding-left: 12px;
  line-height: 1.5;
}
.article-container p {
  margin-bottom: 18px;
  font-size: 14.5px;
  line-height: 1.9;
}
.article-quote {
  background: #F7F9FC;
  padding: 22px;
  margin: 28px 0;
  border-left: 3px solid #378ADD;
  font-size: 14.5px;
  color: #333;
  line-height: 1.9;
}
.article-key-message {
  background: #1C5AA8;
  color: white;
  padding: 28px 26px;
  border-radius: 8px;
  margin: 36px 0;
  font-size: 16px;
  line-height: 1.8;
  font-weight: 500;
}
.article-key-message .km-label {
  font-size: 11px;
  letter-spacing: 2px;
  color: #B5D4F4;
  margin-bottom: 10px;
}
.article-photo {
  width: 100%;
  background: #F0F2F5;
  border: 2px dashed #B8C1CC;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #6B7785;
  font-size: 13px;
  margin: 28px 0;
  flex-direction: column;
  gap: 6px;
  padding: 18px;
}
.article-photo-hero { aspect-ratio: 16/9; }
.article-photo-inline { aspect-ratio: 4/3; }
.article-photo .ph-icon { font-size: 28px; color: #B8C1CC; }
.article-photo .ph-caption { font-size: 11px; color: #9AA4B2; text-align: center; }

.article-footer-section {
  margin-top: 60px;
  padding-top: 36px;
  border-top: 1px solid var(--line);
}
.article-footer-section h3 {
  font-size: 15px;
  margin-bottom: 18px;
  color: #555;
}
.related-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 28px;
}
.related-card {
  padding: 16px;
  background: #F7F9FC;
  border-radius: 8px;
  font-size: 12.5px;
  color: #333;
  cursor: pointer;
  transition: background 0.2s;
}
.related-card:hover { background: #EEF4FB; }
.related-card .rc-tag {
  font-size: 10.5px;
  color: #1C5AA8;
  margin-bottom: 5px;
}
.cta-row {
  display: flex;
  gap: 12px;
  margin-top: 30px;
}
.cta-btn {
  flex: 1;
  padding: 13px;
  text-align: center;
  border-radius: 6px;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
}
.cta-primary { background: #1C5AA8; color: white; }
.cta-secondary { background: white; color: #1C5AA8; border: 1px solid #1C5AA8; }

/* ========== Entry Form Page ========== */
.entry-hero {
  background: linear-gradient(135deg, var(--navy), var(--navy3));
  color: white;
  padding: 80px 24px 60px;
  text-align: center;
}
.entry-hero .label {
  font-size: 11px;
  letter-spacing: 4px;
  color: var(--green2);
  margin-bottom: 12px;
  font-weight: 600;
}
.entry-hero h1 {
  font-size: 34px;
  font-weight: 700;
  margin-bottom: 14px;
  letter-spacing: 0.02em;
}
.entry-hero p {
  font-size: 13px;
  opacity: 0.9;
  line-height: 1.9;
  max-width: 640px;
  margin: 0 auto;
}

.entry-form-container {
  max-width: 680px;
  margin: -40px auto 80px;
  padding: 0 20px;
  position: relative;
  z-index: 2;
}
.entry-form-card {
  background: white;
  border-radius: 14px;
  padding: 44px 40px;
  box-shadow: 0 20px 50px rgba(13, 35, 64, 0.1);
}
.entry-step-indicator {
  display: flex;
  gap: 12px;
  margin-bottom: 36px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--line);
}
.entry-step {
  flex: 1;
  text-align: center;
  font-size: 11px;
  color: var(--mute);
  letter-spacing: 1px;
  padding: 10px 8px;
  border-bottom: 2px solid var(--line);
  transition: all 0.2s;
}
.entry-step.active {
  color: var(--green);
  border-bottom-color: var(--green);
  font-weight: 700;
}
.entry-step .num {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 22px;
  display: block;
  margin-bottom: 4px;
}

.entry-form-group {
  margin-bottom: 22px;
}
.entry-form-group label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: var(--navy);
  margin-bottom: 8px;
}
.entry-form-group label .required {
  color: #E74C3C;
  font-size: 11px;
  margin-left: 6px;
}
.entry-form-group input,
.entry-form-group textarea,
.entry-form-group select {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  font-size: 13.5px;
  font-family: inherit;
  transition: all 0.2s;
}
.entry-form-group input:focus,
.entry-form-group textarea:focus,
.entry-form-group select:focus {
  outline: none;
  border-color: var(--green);
  box-shadow: 0 0 0 3px rgba(0, 137, 108, 0.1);
}
.entry-form-group textarea {
  min-height: 120px;
  resize: vertical;
}
.entry-checkbox-group {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.entry-checkbox-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s;
  font-size: 13px;
}
.entry-checkbox-item:hover {
  border-color: var(--green);
  background: var(--green3);
}
.entry-checkbox-item input { accent-color: var(--green); }

.entry-form-submit {
  width: 100%;
  padding: 16px;
  background: var(--green);
  color: white;
  border: none;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 2px;
  cursor: pointer;
  margin-top: 12px;
  transition: all 0.2s;
}
.entry-form-submit:hover {
  background: var(--green2);
  transform: translateY(-2px);
}

.entry-notice {
  padding: 16px 20px;
  background: #FFF8E1;
  border: 1px solid #FFE08A;
  border-radius: 8px;
  font-size: 12px;
  color: #6B5A00;
  line-height: 1.7;
  margin-bottom: 24px;
}

/* ========== INSIGHTS Page ========== */
.insights-hero {
  padding: 70px 40px 50px;
  background: var(--bg);
  border-bottom: 1px solid var(--line);
}
.insights-hero-inner {
  max-width: 1100px;
  margin: 0 auto;
}
.insights-hero .label {
  font-size: 11px;
  letter-spacing: 4px;
  color: var(--green);
  font-weight: 700;
  margin-bottom: 12px;
}
.insights-hero h1 {
  font-size: 32px;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 10px;
}
.insights-hero .sub {
  font-size: 13px;
  color: var(--sub);
}

.insights-body { padding: 50px 40px; }
.insights-body-inner {
  max-width: 1100px;
  margin: 0 auto;
}
.insights-search {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 18px;
  background: white;
  border: 1px solid var(--line);
  border-radius: 10px;
  margin-bottom: 24px;
}
.insights-search .icon {
  color: var(--mute);
  font-size: 14px;
}
.insights-search input {
  flex: 1;
  border: none;
  outline: none;
  font-size: 13px;
  font-family: inherit;
}
.insights-filter {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 32px;
}
.insights-filter button {
  padding: 6px 16px;
  border-radius: 6px;
  font-size: 11.5px;
  font-weight: 500;
  background: var(--soft);
  color: var(--sub);
  transition: all 0.2s;
}
.insights-filter button.active,
.insights-filter button:hover {
  background: var(--navy);
  color: white;
  font-weight: 700;
}

.insights-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

/* ========== LEARNING Hub — YouTube動画ヒーロー ========== */
.learning-hero-video {
  position: relative;
  width: 100%;
  height: 72vh;
  min-height: 520px;
  max-height: 740px;
  background: #000;
  overflow: hidden;
}
.lhv-frame {
  position: absolute;
  inset: 0;
  z-index: 0;
  background: #000;
}
.lhv-frame iframe {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  transform: translate(-50%, -50%);
  border: 0;
}

/* YouTube動画を画面いっぱいに広げる（黒帯を画面外に） */
@media (min-aspect-ratio: 16/9) {
  .lhv-frame iframe {
    width: 100%;
    height: calc(100vw * 9 / 16);
  }
}
@media (max-aspect-ratio: 16/9) {
  .lhv-frame iframe {
    width: calc(72vh * 16 / 9);
    height: 72vh;
  }
}

/* 左上ブランド */
.lhv-brand {
  position: absolute;
  top: 22px;
  left: 32px;
  z-index: 10;
  color: white;
  pointer-events: none;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.7);
}
.lhv-brand .name {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.02em;
}
.lhv-brand .sub {
  font-size: 9px;
  letter-spacing: 4px;
  color: rgba(255, 255, 255, 0.75);
  margin-top: 5px;
  font-weight: 500;
}

/* 右上銘柄コード */
.lhv-ticker {
  position: absolute;
  top: 22px;
  right: 32px;
  z-index: 10;
  text-align: right;
  color: white;
  pointer-events: none;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.7);
}
.lhv-ticker .label {
  font-size: 9px;
  letter-spacing: 4px;
  color: rgba(255, 255, 255, 0.75);
  font-weight: 500;
  margin-bottom: 3px;
}
.lhv-ticker .code {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 24px;
  font-weight: 700;
  color: #E8CB80;
  letter-spacing: 0.02em;
  line-height: 1;
}

/* 下部スクロール誘導 */
.lhv-scroll {
  position: absolute;
  bottom: 18px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
  color: white;
  font-size: 9px;
  letter-spacing: 0.4em;
  opacity: 0.8;
  text-align: center;
  font-weight: 500;
  pointer-events: none;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.8);
}
.lhv-scroll::after {
  content: "";
  display: block;
  width: 1px;
  height: 28px;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0.8), transparent);
  margin: 8px auto 0;
  animation: lhvScrollPulse 2.5s ease infinite;
}
@keyframes lhvScrollPulse {
  0%, 100% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.1); }
}

@media (max-width: 720px) {
  .learning-hero-video { height: 45vh; min-height: 300px; }
  .lhv-brand .name { font-size: 18px; }
  .lhv-ticker .code { font-size: 20px; }
}

/* ========== LEARNING Hub — 扉型ヒーロー（壮大版） ========== */
.learning-hero {
  position: relative;
  min-height: 560px;
  height: 78vh;
  max-height: 700px;
  overflow: hidden;
  background: #0A1A2F;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  padding: 0;
}
.lh-slider {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.lh-slide {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transition: opacity 1.8s ease-in-out;
  will-change: opacity, transform;
  transform: scale(1.08) translateZ(0);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
.lh-slide.active {
  opacity: 1;
  animation: lhSlowZoom 6s ease-out forwards;
}
@keyframes lhSlowZoom {
  from { transform: scale(1.08) translateZ(0); }
  to { transform: scale(1.16) translateZ(0); }
}
.lh-overlay {
  position: absolute;
  inset: 0;
  background: 
    radial-gradient(ellipse at center, rgba(10, 26, 47, 0.5) 0%, rgba(10, 26, 47, 0.95) 80%),
    linear-gradient(180deg, rgba(10, 26, 47, 0.75) 0%, rgba(10, 26, 47, 0.9) 100%);
  z-index: 1;
  transition: opacity 1.5s ease;
}
.learning-hero.playing .lh-overlay {
  opacity: 0.55;
}

/* パーティクル（ゴールド＋白の浮遊粒子） */
.lh-particles {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  overflow: hidden;
}
.lh-particles::before,
.lh-particles::after {
  content: "";
  position: absolute;
  border-radius: 50%;
}
.lh-particles::before {
  width: 5px;
  height: 5px;
  background: #C4A35A;
  top: 15%;
  left: 18%;
  box-shadow: 
    160px 80px 0 -1px rgba(196,163,90,0.7),
    380px 200px 0 -2px rgba(196,163,90,0.4),
    680px 100px 0 -1px rgba(196,163,90,0.6),
    920px 280px 0 -2px rgba(196,163,90,0.5),
    220px 420px 0 -1px rgba(196,163,90,0.5),
    520px 540px 0 -2px rgba(196,163,90,0.6),
    820px 380px 0 -1px rgba(196,163,90,0.6),
    1180px 460px 0 -2px rgba(196,163,90,0.4),
    80px 640px 0 -2px rgba(196,163,90,0.5),
    320px 680px 0 -1px rgba(196,163,90,0.7),
    660px 700px 0 -2px rgba(196,163,90,0.4),
    1040px 620px 0 -2px rgba(196,163,90,0.5);
  animation: lhParticleFloat 22s ease-in-out infinite;
}
.lh-particles::after {
  width: 3px;
  height: 3px;
  background: rgba(255,255,255,0.7);
  top: 28%;
  left: 72%;
  box-shadow:
    -180px 140px 0 -1px rgba(255,255,255,0.4),
    -360px 60px 0 -1px rgba(255,255,255,0.3),
    -520px 360px 0 -1px rgba(255,255,255,0.5),
    -700px 180px 0 -2px rgba(255,255,255,0.3),
    -860px 480px 0 -1px rgba(255,255,255,0.4),
    60px 320px 0 -1px rgba(255,255,255,0.3),
    200px 80px 0 -1px rgba(255,255,255,0.5),
    340px 520px 0 -2px rgba(255,255,255,0.3);
  animation: lhParticleFloat 28s ease-in-out infinite reverse;
}
@keyframes lhParticleFloat {
  0%, 100% { transform: translate(0, 0); }
  50% { transform: translate(20px, -25px); }
}

/* 左上 GROUP ロゴ */
.lh-brand {
  position: absolute;
  top: 20px;
  left: 32px;
  z-index: 10;
  color: white;
}
.lh-brand .name {
  font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1;
}
.lh-brand .sub {
  font-size: 9px;
  letter-spacing: 4px;
  color: rgba(255,255,255,0.55);
  margin-top: 5px;
  font-weight: 500;
}

/* 右上 銘柄コード */
.lh-ticker {
  position: absolute;
  top: 20px;
  right: 32px;
  z-index: 10;
  text-align: right;
  color: white;
}
.lh-ticker .label {
  font-size: 9px;
  letter-spacing: 4px;
  color: rgba(255,255,255,0.55);
  font-weight: 500;
  margin-bottom: 3px;
}
.lh-ticker .code {
  font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  font-size: 22px;
  font-weight: 700;
  color: #C4A35A;
  letter-spacing: 0.02em;
  line-height: 1;
}

/* メインコンテンツ */
.lh-content {
  position: relative;
  z-index: 5;
  text-align: center;
  padding: 16px 24px;
  max-width: 760px;
  width: 100%;
  animation: lhFadeIn 1.5s ease-out both;
}
@keyframes lhFadeIn {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

.lh-tag {
  font-size: 10px;
  letter-spacing: 0.6em;
  color: #C4A35A;
  font-weight: 600;
  margin-bottom: 18px;
  text-indent: 0.6em;
}

.lh-title {
  font-family: "Noto Sans JP", "Hiragino Sans", sans-serif;
  font-size: 40px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.04em;
  margin-bottom: 12px;
  font-feature-settings: "palt";
  color: white;
}
.lh-title em {
  color: #C4A35A;
  font-style: normal;
}

.lh-title-en {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 14px;
  font-style: italic;
  letter-spacing: 0.1em;
  color: rgba(255,255,255,0.6);
  margin-bottom: 22px;
  font-weight: 400;
}

/* 扉 — ゴールドライン + コピー + 矢印 */
.lh-gate {
  margin: 20px auto 0;
  max-width: 440px;
  padding: 20px 28px;
  border-top: 1px solid rgba(196, 163, 90, 0.5);
  border-bottom: 1px solid rgba(196, 163, 90, 0.5);
  position: relative;
  cursor: pointer;
  transition: all 0.4s ease;
}
.lh-gate::before,
.lh-gate::after {
  content: "";
  position: absolute;
  width: 8px;
  height: 8px;
  border: 1px solid #C4A35A;
  background: #0A1A2F;
  transform: rotate(45deg);
}
.lh-gate::before {
  top: -4.5px;
  left: 50%;
  margin-left: -4px;
}
.lh-gate::after {
  bottom: -4.5px;
  left: 50%;
  margin-left: -4px;
}
.lh-gate:hover {
  border-color: #C4A35A;
  transform: translateY(-3px);
}
.lh-gate:hover .lh-gate-arrow {
  transform: translateX(6px);
  color: #E0C984;
}
.lh-gate-sub {
  font-size: 10px;
  letter-spacing: 0.4em;
  color: rgba(196, 163, 90, 0.85);
  font-weight: 600;
  margin-bottom: 8px;
}
.lh-gate-main {
  font-size: 17px;
  font-weight: 700;
  color: white;
  line-height: 1.5;
  margin-bottom: 10px;
  letter-spacing: 0.04em;
}
.lh-gate-main em {
  color: #C4A35A;
  font-style: normal;
}
.lh-gate-arrow {
  display: inline-block;
  font-size: 22px;
  color: #C4A35A;
  transition: all 0.3s ease;
  margin-top: 2px;
}
.lh-gate-meta {
  margin-top: 10px;
  font-size: 9px;
  letter-spacing: 0.3em;
  color: rgba(255,255,255,0.45);
  font-weight: 500;
}

/* 下部スクロール誘導 */
.lh-scroll {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 5;
  color: white;
  font-size: 9px;
  letter-spacing: 0.4em;
  opacity: 0.7;
  text-align: center;
  font-weight: 500;
}
.lh-scroll::after {
  content: "";
  display: block;
  width: 1px;
  height: 28px;
  background: linear-gradient(to bottom, rgba(255,255,255,0.7), transparent);
  margin: 8px auto 0;
  animation: lhScrollPulse 2.5s ease infinite;
}
@keyframes lhScrollPulse {
  0%, 100% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.1); }
}

/* 右下コントロール */
.lh-controls {
  position: absolute;
  bottom: 20px;
  right: 32px;
  z-index: 10;
  display: flex;
  gap: 10px;
}
.lh-ctrl {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s;
  color: white;
  font-size: 12px;
}
.lh-ctrl:hover {
  background: rgba(255, 255, 255, 0.15);
  border-color: #C4A35A;
  color: #C4A35A;
}
.lh-ctrl.active {
  border-color: #C4A35A;
  color: #C4A35A;
  background: rgba(196, 163, 90, 0.15);
}

/* 再生中の表示 */
.learning-hero.playing .lh-gate {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.6s ease;
}
.learning-hero.playing .lh-content {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.6s ease, visibility 0s linear 0.6s;
}
.learning-hero:not(.playing) .lh-content {
  opacity: 1;
  visibility: visible;
  transition: opacity 0.8s ease 0.3s, visibility 0s linear 0s;
}

/* テロップエリア（再生中のみ表示） */
.lh-playing-content {
  position: absolute;
  inset: 0;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px 24px;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.6s ease;
}
.learning-hero.playing .lh-playing-content {
  opacity: 1;
}

.lh-phase {
  position: absolute;
  text-align: center;
  max-width: 820px;
  width: 100%;
  padding: 0 24px;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 1s ease, transform 1s ease;
}
.lh-phase.active {
  opacity: 1;
  transform: translateY(0);
}
.lh-phase-tag {
  font-size: 10.5px;
  letter-spacing: 0.6em;
  color: #C4A35A;
  font-weight: 600;
  margin-bottom: 20px;
  text-indent: 0.6em;
}
.lh-phase-main {
  font-family: "Noto Sans JP", "Hiragino Sans", sans-serif;
  font-size: 44px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0.04em;
  color: white;
  font-feature-settings: "palt";
  text-shadow: 0 2px 20px rgba(0,0,0,0.5);
}
.lh-phase-main em {
  color: #C4A35A;
  font-style: normal;
}
.lh-phase-main-sm {
  font-family: "Noto Sans JP", "Hiragino Sans", sans-serif;
  font-size: 26px;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.06em;
  color: white;
  font-feature-settings: "palt";
  text-shadow: 0 2px 20px rgba(0,0,0,0.5);
}
.lh-phase-main-sm em {
  color: #C4A35A;
  font-style: normal;
}

/* タイプライター風：1文字ずつフェードイン */
.lh-char {
  display: inline-block;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.lh-char.shown {
  opacity: 1;
  transform: translateY(0);
}
.lh-br { display: block; height: 0; }
.lh-phase-stat {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 90px;
  font-weight: 700;
  color: #C4A35A;
  line-height: 1;
  letter-spacing: -0.02em;
  text-shadow: 0 2px 20px rgba(0,0,0,0.5);
}
.lh-phase-stat-unit {
  font-size: 36px;
  color: white;
  font-family: "Noto Sans JP", sans-serif;
  margin-left: 8px;
  font-weight: 700;
}
.lh-phase-sub {
  font-size: 18px;
  color: white;
  letter-spacing: 0.1em;
  margin-top: 16px;
  font-weight: 500;
  text-shadow: 0 2px 20px rgba(0,0,0,0.5);
}
.lh-phase-logo {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 58px;
  font-weight: 700;
  color: white;
  letter-spacing: 0.02em;
  text-shadow: 0 2px 20px rgba(0,0,0,0.5);
}
.lh-phase-en {
  font-size: 14px;
  color: rgba(255,255,255,0.9);
  letter-spacing: 0.1em;
  margin-top: 20px;
  font-weight: 500;
  text-shadow: 0 2px 20px rgba(0,0,0,0.5);
}

/* 旧ヒーローの要素を非表示化 */
.learning-hero .label,
.learning-hero h1:not(.lh-title),
.learning-hero > p {
  display: none;
}

.learning-body {
  padding: 60px 40px;
}
.learning-body-inner {
  max-width: 1100px;
  margin: 0 auto;
}
.learning-section {
  margin-bottom: 60px;
}
.learning-section-head {
  display: flex;
  align-items: baseline;
  gap: 16px;
  margin-bottom: 18px;
  padding-bottom: 14px;
  border-bottom: 2px solid var(--green);
}
.learning-section-head.navy { border-bottom-color: var(--navy); }
.learning-section-head.gold { border-bottom-color: var(--gold); }
.learning-section-head .num {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 36px;
  font-weight: 700;
  color: var(--green);
  line-height: 1;
}
.learning-section-head.navy .num { color: var(--navy); }
.learning-section-head.gold .num { color: var(--gold); }
.learning-section-head h3 {
  font-size: 22px;
  font-weight: 700;
  color: var(--navy);
}
.learning-section p.desc {
  font-size: 13px;
  color: var(--sub);
  line-height: 1.85;
  margin-bottom: 18px;
}
.learning-programs {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}
.learning-program {
  padding: 16px 18px;
  background: white;
  border: 1px solid var(--line);
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.3s;
}
.learning-program:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 24px rgba(13, 35, 64, 0.1);
  border-color: var(--green);
}
.learning-program .name {
  font-size: 13px;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 4px;
}
.learning-program .desc-sm {
  font-size: 10.5px;
  color: var(--mute);
}

/* ========== IR Page ========== */

/* ========== Footer ========== */
.footer-newsletter {
  background: linear-gradient(135deg, var(--navy), var(--navy3));
  padding: 42px 40px;
  color: white;
}
.footer-newsletter-inner {
  max-width: 800px;
  margin: 0 auto;
  text-align: center;
}
.footer-newsletter .icon {
  width: 44px;
  height: 44px;
  margin: 0 auto 16px;
  background: var(--green);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: 20px;
}
.footer-newsletter h3 {
  font-size: 24px;
  font-weight: 700;
  margin-bottom: 10px;
  letter-spacing: 0.02em;
}
.footer-newsletter .sub {
  font-size: 13px;
  opacity: 0.85;
  margin-bottom: 8px;
  line-height: 1.8;
}
.footer-newsletter .social-proof {
  font-size: 11px;
  color: var(--green2);
  letter-spacing: 1px;
  margin-bottom: 24px;
  font-weight: 500;
}
.footer-newsletter-form {
  display: flex;
  gap: 10px;
  max-width: 480px;
  margin: 0 auto;
}
.footer-newsletter-form input {
  flex: 1;
  padding: 14px 18px;
  border: none;
  border-radius: 8px;
  font-size: 13.5px;
  font-family: inherit;
  outline: none;
}
.footer-newsletter-form button {
  padding: 14px 28px;
  background: var(--green);
  color: white;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 1px;
  transition: all 0.2s;
}
.footer-newsletter-form button:hover {
  background: var(--green2);
}
.footer-newsletter .note {
  font-size: 10px;
  opacity: 0.7;
  margin-top: 12px;
  letter-spacing: 0.5px;
}

.footer {
  background: #080F24;
  color: rgba(255, 255, 255, 0.7);
  padding: 42px 40px 22px;
}
.footer-cols {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 30px;
  max-width: 1200px;
  margin: 0 auto 28px;
}
.footer-col h4 {
  color: white;
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 14px;
  letter-spacing: 1px;
}
.footer-col ul {
  list-style: none;
}
.footer-col li {
  padding: 5px 0;
}
.footer-col a {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.6);
  transition: color 0.2s;
}
.footer-col a:hover {
  color: white;
}
.footer-bottom {
  padding-top: 20px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 20px;
  max-width: 1200px;
  margin: 0 auto;
}
.footer-bottom .legal {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}
.footer-bottom .legal a {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.55);
}
.footer-bottom .copyright {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.5);
  letter-spacing: 1px;
}

/* ========== Footer SNS Icons ========== */
.footer-social {
  display: flex;
  gap: 10px;
  align-items: center;
}
.footer-social a {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.7);
  transition: all 0.25s;
  text-decoration: none;
}
.footer-social a:hover {
  background: var(--gold, #C4A35A);
  color: #0D2340;
  transform: translateY(-2px);
}
.footer-social a svg {
  width: 16px;
  height: 16px;
}

@media (max-width: 720px) {
  .footer-bottom {
    flex-direction: column;
    align-items: flex-start;
  }
  .footer-social {
    margin-top: 4px;
  }
}

/* ========== Newsletter Floating FAB (全ページ共通) ========== */
.newsletter-fab {
  position: fixed !important;
  bottom: 24px !important;
  right: 24px !important;
  top: auto !important;
  left: auto !important;
  background: linear-gradient(135deg, var(--green), #006B54) !important;
  color: white !important;
  padding: 14px 24px !important;
  border-radius: 50px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 1.5px !important;
  cursor: pointer !important;
  z-index: 2147483000 !important;
  box-shadow: 0 8px 24px rgba(0, 137, 108, 0.45) !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  transition: all 0.3s !important;
  border: none !important;
  font-family: inherit !important;
  text-decoration: none !important;
  pointer-events: auto !important;
  visibility: visible !important;
  opacity: 1 !important;
  white-space: nowrap !important;
}
.newsletter-fab:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 12px 28px rgba(0, 137, 108, 0.55) !important;
}
.newsletter-fab svg { width: 18px !important; height: 18px !important; flex-shrink: 0; }
.newsletter-fab .fab-badge {
  background: #FF5D5D !important;
  color: white !important;
  font-size: 10px !important;
  padding: 2px 8px !important;
  border-radius: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
}
/* Careers ページ表示時は floating ENTRY（右下）と重ならないよう左下へ移動 */
body.on-careers .newsletter-fab { display: none !important; }

/* Careers / IR では メルマガ誘導全体を非表示（誤解防止・ユーザー目的尊重） */
body.hide-newsletter-cta .newsletter-fab,
body.hide-newsletter-cta .topnav .nav-news {
  display: none !important;
}

/* ========== 学びナビゲーター追従ボタン（学びページ専用） ========== */
.learning-nav-fab {
  position: fixed !important;
  bottom: 24px !important;
  right: 24px !important;
  background: linear-gradient(135deg, #1a3a52, #0a2540) !important;
  color: #FFD89A !important;
  padding: 14px 26px !important;
  border-radius: 50px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 1.5px !important;
  cursor: pointer !important;
  z-index: 2147483000 !important;
  box-shadow: 0 8px 24px rgba(10, 37, 64, 0.45) !important;
  display: none !important;
  align-items: center !important;
  gap: 10px !important;
  transition: all 0.3s !important;
  border: 1px solid rgba(255, 216, 154, 0.3) !important;
  font-family: inherit !important;
  white-space: nowrap !important;
}
.learning-nav-fab:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 12px 28px rgba(10, 37, 64, 0.55) !important;
}
.learning-nav-fab svg {
  width: 18px !important;
  height: 18px !important;
  flex-shrink: 0;
  stroke: #FFD89A;
}
.learning-nav-fab .fab-arrow {
  font-size: 16px !important;
  color: #FFD89A !important;
  margin-left: 2px;
  transition: transform 0.3s;
}
.learning-nav-fab:hover .fab-arrow {
  transform: translateX(4px);
}
/* 学びページのみ表示 */
body.on-learning .learning-nav-fab {
  display: inline-flex !important;
}
/* 学びページ表示時はメルマガFABを完全に隠す */
body.on-learning .newsletter-fab {
  display: none !important;
}

/* ========== 学びナビゲーター モーダル（サイドパネル） ========== */
.lnav-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 2147483600;
  justify-content: flex-end;
}
.lnav-overlay.active { display: flex; }
.lnav-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(13, 35, 64, 0.45);
  backdrop-filter: blur(4px);
  cursor: pointer;
}
.lnav-panel {
  position: relative;
  width: 440px;
  max-width: 100%;
  height: 100%;
  background: #F8F7F4;
  box-shadow: -10px 0 50px rgba(0, 0, 0, 0.1);
  display: flex;
  flex-direction: column;
  animation: lnavSlideIn 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes lnavSlideIn {
  from { transform: translateX(100%); }
  to { transform: translateX(0); }
}
.lnav-header {
  padding: 14px 20px;
  background: #0D2340;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-shrink: 0;
}
.lnav-header-inner {
  display: flex;
  align-items: center;
  gap: 10px;
}
.lnav-header-icon {
  width: 28px;
  height: 28px;
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 800;
  font-family: 'Cormorant Garamond', serif;
}
.lnav-header-title {
  font-size: 13px;
  font-weight: 700;
  margin: 0;
}
.lnav-header-sub {
  font-size: 9px;
  color: rgba(255, 255, 255, 0.4);
  margin: 0;
}
.lnav-close {
  background: none;
  border: none;
  color: rgba(255, 255, 255, 0.4);
  font-size: 18px;
  cursor: pointer;
  padding: 0;
  width: 28px;
  height: 28px;
}
.lnav-close:hover { color: #fff; }
.lnav-body {
  flex: 1;
  overflow-y: auto;
  padding: 20px 24px;
}
.lnav-progress {
  display: flex;
  gap: 6px;
  margin-bottom: 24px;
}
.lnav-progress-bar {
  flex: 1;
  height: 3px;
  border-radius: 2px;
  background: #E5E2DB;
  transition: background 0.4s;
}
.lnav-progress-bar.done { background: #00896C; }
.lnav-progress-bar.current { background: #C4A35A; }
.lnav-step {
  animation: lnavFadeUp 0.5s ease both;
}
@keyframes lnavFadeUp {
  from { opacity: 0; transform: translateY(15px); }
  to { opacity: 1; transform: translateY(0); }
}
.lnav-step-num {
  font-size: 14px;
  font-weight: 700;
  color: #0D2340;
  margin-bottom: 6px;
}
.lnav-step-question {
  font-size: 16px;
  font-weight: 800;
  color: #0D2340;
  margin-bottom: 20px;
}
.lnav-option {
  display: block;
  width: 100%;
  padding: 13px 18px;
  margin-bottom: 8px;
  border-radius: 10px;
  background: #FFFFFF;
  border: 1px solid #E5E2DB;
  font-size: 13px;
  font-weight: 500;
  color: #1A1F2E;
  cursor: pointer;
  text-align: left;
  transition: all 0.2s;
  font-family: inherit;
}
.lnav-option:hover {
  border-color: #00896C;
  background: #E8F5F0;
  transform: translateX(4px);
}
.lnav-result-head {
  text-align: center;
  margin-bottom: 24px;
}
.lnav-result-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: #00896C;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  font-family: 'Cormorant Garamond', serif;
  margin-bottom: 10px;
}
.lnav-result-title {
  font-size: 16px;
  font-weight: 800;
  color: #0D2340;
}
.lnav-result-sub {
  font-size: 12px;
  color: #6B7280;
  margin-top: 4px;
}
.lnav-rec-card {
  background: #FFFFFF;
  border: 1px solid #E5E2DB;
  border-radius: 14px;
  padding: 18px 20px;
  margin-bottom: 10px;
  cursor: pointer;
  transition: box-shadow 0.25s;
}
.lnav-rec-card:hover {
  box-shadow: 0 0 0 2px #00896C;
}
.lnav-rec-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 6px;
}
.lnav-rec-tag {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 6px;
  background: #0D2340;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.lnav-rec-price {
  font-size: 14px;
  font-weight: 800;
  color: #00896C;
}
.lnav-rec-name {
  font-size: 14px;
  font-weight: 700;
  color: #0D2340;
  margin-bottom: 4px;
}
.lnav-rec-desc {
  font-size: 12px;
  color: #6B7280;
}
.lnav-restart {
  display: block;
  width: 100%;
  padding: 12px;
  margin-top: 16px;
  border-radius: 10px;
  background: #F0EDE6;
  border: none;
  font-size: 13px;
  font-weight: 600;
  color: #6B7280;
  cursor: pointer;
  font-family: inherit;
}
.lnav-restart:hover { background: #E5E2DB; color: #0D2340; }

@media (max-width: 720px) {
  .lnav-panel { width: 100%; }
}

/* ========== お問い合わせモーダル（3ステップ） ========== */
.contact-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 2147483600;
  align-items: center;
  justify-content: center;
}
.contact-overlay.active { display: flex; }
.contact-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(13, 35, 64, 0.55);
  backdrop-filter: blur(6px);
  cursor: pointer;
}
.contact-modal {
  position: relative;
  width: 580px;
  max-width: calc(100% - 32px);
  max-height: 90vh;
  background: #FFFFFF;
  border-radius: 14px;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.25);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  animation: contactScaleIn 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes contactScaleIn {
  from { opacity: 0; transform: scale(0.95) translateY(20px); }
  to { opacity: 1; transform: scale(1) translateY(0); }
}
.contact-header {
  padding: 18px 24px;
  background: linear-gradient(135deg, #0D2340 0%, #163864 100%);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-shrink: 0;
}
.contact-header-inner {
  display: flex;
  align-items: center;
  gap: 12px;
}
.contact-header-icon {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.15);
  display: flex;
  align-items: center;
  justify-content: center;
}
.contact-header-icon svg {
  width: 16px;
  height: 16px;
}
.contact-header-title {
  font-size: 15px;
  font-weight: 700;
  margin: 0;
}
.contact-header-sub {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.55);
  margin: 0;
  letter-spacing: 0.05em;
}
.contact-close {
  background: none;
  border: none;
  color: rgba(255, 255, 255, 0.5);
  font-size: 22px;
  cursor: pointer;
  padding: 0;
  width: 32px;
  height: 32px;
  line-height: 1;
}
.contact-close:hover { color: #fff; }
.contact-progress {
  display: flex;
  gap: 6px;
  padding: 14px 24px 0;
}
.contact-progress-bar {
  flex: 1;
  height: 3px;
  border-radius: 2px;
  background: #E5E2DB;
  transition: background 0.4s;
}
.contact-progress-bar.done { background: #00896C; }
.contact-progress-bar.current { background: #C4A35A; }
.contact-body {
  flex: 1;
  overflow-y: auto;
  padding: 24px 28px 28px;
}
.contact-step {
  animation: contactFadeUp 0.4s ease both;
}
@keyframes contactFadeUp {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}
.contact-step-num {
  font-size: 12px;
  font-weight: 700;
  color: #C4A35A;
  letter-spacing: 0.1em;
  margin-bottom: 6px;
}
.contact-step-question {
  font-size: 18px;
  font-weight: 800;
  color: #0D2340;
  margin-bottom: 22px;
}

/* Step1: 個人/法人 大ボタン */
.contact-attr-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 8px;
}
.contact-attr-btn {
  padding: 28px 20px;
  background: #FFFFFF;
  border: 2px solid #E5E2DB;
  border-radius: 12px;
  cursor: pointer;
  text-align: center;
  transition: all 0.25s;
  font-family: inherit;
}
.contact-attr-btn:hover {
  border-color: #00896C;
  background: #E8F5F0;
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(0, 137, 108, 0.15);
}
.contact-attr-btn .icon {
  font-size: 32px;
  margin-bottom: 10px;
  display: block;
}
.contact-attr-btn .label {
  font-size: 16px;
  font-weight: 800;
  color: #0D2340;
  display: block;
  margin-bottom: 4px;
}
.contact-attr-btn .sub {
  font-size: 11px;
  color: #6B7280;
  display: block;
}

/* Step2: 用途リスト */
.contact-purpose-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.contact-purpose-btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 18px;
  background: #FFFFFF;
  border: 1px solid #E5E2DB;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 600;
  color: #1A1F2E;
  cursor: pointer;
  text-align: left;
  transition: all 0.2s;
  font-family: inherit;
}
.contact-purpose-btn:hover {
  border-color: #00896C;
  background: #E8F5F0;
  transform: translateX(4px);
}
.contact-purpose-btn .arrow {
  color: #C4A35A;
  font-size: 14px;
}

/* Step3: フォーム */
.contact-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.contact-form-row {
  display: flex;
  gap: 12px;
}
.contact-form-row > .contact-form-field {
  flex: 1;
}
.contact-form-field {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.contact-form-field label {
  font-size: 12px;
  font-weight: 600;
  color: #0D2340;
  display: flex;
  align-items: center;
  gap: 6px;
}
.contact-form-field label .req {
  background: #C5504B;
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 3px;
  letter-spacing: 0.05em;
}
.contact-form-field label .opt {
  background: #6B7280;
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 3px;
  letter-spacing: 0.05em;
}
.contact-form-field input,
.contact-form-field textarea {
  padding: 10px 12px;
  border: 1px solid #E5E2DB;
  border-radius: 7px;
  font-size: 13px;
  font-family: inherit;
  color: #1A1F2E;
  transition: all 0.2s;
  background: #FAFAF8;
}
.contact-form-field input:focus,
.contact-form-field textarea:focus {
  outline: none;
  border-color: #00896C;
  background: #FFFFFF;
  box-shadow: 0 0 0 3px rgba(0, 137, 108, 0.1);
}
.contact-form-field textarea {
  min-height: 90px;
  resize: vertical;
}
.contact-checkbox {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 12px;
  color: #444;
  cursor: pointer;
  padding: 4px 0;
}
.contact-checkbox input {
  margin-top: 3px;
  cursor: pointer;
}
.contact-checkbox a {
  color: #00896C;
  text-decoration: underline;
}
.contact-summary {
  background: #F8F7F4;
  border-radius: 8px;
  padding: 12px 16px;
  font-size: 11px;
  color: #6B7280;
  margin-bottom: 4px;
}
.contact-summary strong {
  color: #0D2340;
  font-weight: 700;
}

/* フッター（戻る/送信ボタン） */
.contact-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 24px;
  border-top: 1px solid #F0EDE6;
  background: #FAFAF8;
  flex-shrink: 0;
}
.contact-back {
  background: none;
  border: 1px solid #E5E2DB;
  padding: 9px 18px;
  border-radius: 7px;
  font-size: 12px;
  font-weight: 600;
  color: #6B7280;
  cursor: pointer;
  font-family: inherit;
}
.contact-back:hover {
  background: #F0EDE6;
  color: #0D2340;
}
.contact-submit {
  background: linear-gradient(135deg, #00896C 0%, #00A37D 100%);
  color: #fff;
  border: none;
  padding: 11px 28px;
  border-radius: 7px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
  letter-spacing: 0.04em;
}
.contact-submit:hover {
  box-shadow: 0 6px 16px rgba(0, 137, 108, 0.3);
  transform: translateY(-1px);
}
.contact-submit:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* 完了画面 */
.contact-complete {
  text-align: center;
  padding: 32px 20px 16px;
  animation: contactFadeUp 0.5s ease both;
}
.contact-complete-icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: linear-gradient(135deg, #00896C 0%, #00A37D 100%);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 16px;
  font-size: 32px;
}
.contact-complete h3 {
  font-size: 18px;
  font-weight: 800;
  color: #0D2340;
  margin: 0 0 10px;
}
.contact-complete p {
  font-size: 13px;
  color: #6B7280;
  line-height: 1.7;
  margin: 0 0 18px;
}
.contact-prototype-note {
  font-size: 11px;
  color: #C4A35A;
  background: #FFF8E1;
  padding: 8px 14px;
  border-radius: 6px;
  display: inline-block;
}

@media (max-width: 720px) {
  .contact-modal { width: 100%; max-width: 100%; max-height: 100%; height: 100%; border-radius: 0; }
  .contact-attr-grid { grid-template-columns: 1fr; }
  .contact-form-row { flex-direction: column; }
}

/* ========== プログラム説明文 ========== */
.program-intro-block {
  text-align: center;
  padding: 36px 24px 28px;
  max-width: 840px;
  margin: 0 auto;
}
.program-intro-text {
  font-size: 15px;
  line-height: 2.1;
  color: var(--text);
  font-weight: 500;
  letter-spacing: 0.04em;
}

/* ========== 帯バナー動画（控えめ・音なし・自動再生） ========== */
.learning-banner {
  position: relative;
  width: 100%;
  height: 180px;
  overflow: hidden;
  background: #0A1A2F;
  margin: 12px 0 36px;
  border-radius: 8px;
}
.lb-slider {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.lb-slide {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transition: opacity 2s ease-in-out;
  transform: scale(1.05) translateZ(0);
  will-change: opacity;
  backface-visibility: hidden;
}
.lb-slide.active {
  opacity: 1;
  animation: lbZoom 9s ease-out forwards;
}
@keyframes lbZoom {
  from { transform: scale(1.05) translateZ(0); }
  to { transform: scale(1.13) translateZ(0); }
}
.lb-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: 
    linear-gradient(90deg, rgba(10, 26, 47, 0.88) 0%, rgba(10, 26, 47, 0.5) 50%, rgba(10, 26, 47, 0.88) 100%),
    linear-gradient(180deg, rgba(10, 26, 47, 0.3) 0%, rgba(10, 26, 47, 0.5) 100%);
}
.lb-content {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 20px 30px;
  color: white;
}
/* テキストセット（5パターンを重ねて配置、フェードで切替） */
.lb-text-set {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 20px 30px;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 1.0s ease, transform 1.0s ease;
  pointer-events: none;
}
.lb-text-set.active {
  opacity: 1;
  transform: translateY(0);
}
.lb-eyebrow {
  font-size: 10px;
  letter-spacing: 0.55em;
  color: #C4A35A;
  font-weight: 600;
  margin-bottom: 10px;
  text-indent: 0.55em;
}
.lb-main {
  font-size: 26px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.06em;
  margin-bottom: 10px;
  font-feature-settings: "palt";
  text-shadow: 0 2px 16px rgba(0, 0, 0, 0.5);
}
.lb-main em {
  color: #E8CB80;
  font-style: normal;
}
.lb-sub {
  font-size: 12px;
  letter-spacing: 0.1em;
  color: rgba(255, 255, 255, 0.85);
  font-weight: 400;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.5);
}

@media (max-width: 720px) {
  .learning-banner { height: 150px; }
  .lb-main { font-size: 19px; }
  .lb-sub { font-size: 11px; }
  .lb-eyebrow { font-size: 9px; margin-bottom: 8px; }
}
.hof-hero-section {
  background: linear-gradient(180deg, #0A1A2F 0%, #0E2244 50%, #0A1A2F 100%);
  padding: 70px 40px 64px;
  position: relative;
  overflow: hidden;
}
.hof-hero-section::before {
  content: "";
  position: absolute;
  top: -50%;
  left: -10%;
  width: 120%;
  height: 60%;
  background: radial-gradient(ellipse, rgba(196, 163, 90, 0.08) 0%, transparent 70%);
  pointer-events: none;
}
.hof-hero-inner {
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}
.hof-hero-head {
  text-align: center;
  margin-bottom: 44px;
}
.hof-eyebrow {
  font-size: 10px;
  letter-spacing: 0.5em;
  color: #C4A35A;
  font-weight: 600;
  margin-bottom: 18px;
  text-indent: 0.5em;
}
.hof-hero-title {
  font-size: 34px;
  font-weight: 700;
  color: white;
  line-height: 1.45;
  letter-spacing: 0.04em;
  margin-bottom: 22px;
  font-feature-settings: "palt";
}
.hof-hero-title em {
  color: #E8CB80;
  font-style: normal;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 42px;
  font-weight: 700;
  letter-spacing: -0.01em;
  margin: 0 4px;
}
.hof-hero-sub {
  font-size: 13.5px;
  line-height: 2;
  color: rgba(255, 255, 255, 0.75);
  max-width: 760px;
  margin: 0 auto;
  font-weight: 400;
}
.hof-hero-sub strong {
  color: #E8CB80;
  font-weight: 600;
}

/* 数字ボックス（ダーク背景・ゴールドライン） */
.hof-hero-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  max-width: 620px;
  margin: 0 auto 44px;
}
.hof-hero-stat {
  text-align: center;
  padding: 22px 14px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(196, 163, 90, 0.3);
  border-radius: 10px;
  transition: all 0.3s;
}
.hof-hero-stat:hover {
  background: rgba(196, 163, 90, 0.08);
  border-color: rgba(196, 163, 90, 0.6);
  transform: translateY(-3px);
}
.hof-hero-stat-primary {
  background: linear-gradient(135deg, rgba(196, 163, 90, 0.2), rgba(139, 96, 20, 0.15));
  border-color: #C4A35A;
}
.hof-hero-stat .num {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 44px;
  font-weight: 700;
  color: #E8CB80;
  line-height: 1;
  letter-spacing: -0.02em;
}
.hof-hero-stat-primary .num {
  font-size: 54px;
  color: #F4D98C;
}
.hof-hero-stat .num .unit {
  font-size: 22px;
  margin-left: 2px;
}
.hof-hero-stat .label {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.8);
  margin-top: 10px;
  letter-spacing: 0.2em;
  font-weight: 500;
}

/* カルーセル（ダーク背景用のマスク色調整） */
.hof-hero-section .hall-carousel {
  mask-image: linear-gradient(to right, transparent 0, black 6%, black 94%, transparent 100%);
  -webkit-mask-image: linear-gradient(to right, transparent 0, black 6%, black 94%, transparent 100%);
}

/* ダーク背景での見出しリンクボタン */
.hof-hero-section .hall-see-all a {
  color: #E8CB80;
  border-color: #C4A35A;
  background: transparent;
}
.hof-hero-section .hall-see-all a:hover {
  background: #C4A35A;
  color: #0A1A2F;
  border-color: #E8CB80;
}
.hall-stats-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin: 24px 0 28px;
}
.hall-stat {
  text-align: center;
  padding: 22px 16px;
  background: linear-gradient(135deg, #FFF8E1 0%, #FFF3C9 100%);
  border: 1px solid #E8D89E;
  border-radius: 12px;
}
.hall-stat-primary {
  background: linear-gradient(135deg, #C4A35A 0%, #A6893F 100%);
  border-color: #A6893F;
  color: white;
}
.hall-stat-num {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 38px;
  font-weight: 700;
  color: #8B6014;
  line-height: 1;
}
.hall-stat-primary .hall-stat-num {
  color: white;
}
.hall-stat-num sup {
  font-size: 16px;
  top: -14px;
}
.hall-stat-label {
  font-size: 11px;
  color: var(--sub);
  margin-top: 8px;
  letter-spacing: 0.5px;
  font-weight: 600;
}
.hall-stat-primary .hall-stat-label {
  color: rgba(255, 255, 255, 0.95);
}

/* Hall Carousel（学びページの自動スクロール） */
.hall-carousel {
  position: relative;
  overflow: hidden;
  margin: 28px 0 24px;
  padding: 8px 0;
  mask-image: linear-gradient(to right, transparent 0, black 8%, black 92%, transparent 100%);
  -webkit-mask-image: linear-gradient(to right, transparent 0, black 8%, black 92%, transparent 100%);
}
.hall-carousel-track {
  display: flex;
  gap: 18px;
  width: max-content;
  animation: hallScroll 90s linear infinite;
}
.hall-carousel:hover .hall-carousel-track {
  animation-play-state: paused;
}
@keyframes hallScroll {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* カード（□枠・写真大・情報リッチ） */
.hall-card {
  flex-shrink: 0;
  width: 240px;
  background: white;
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: hidden;
  cursor: pointer;
  transition: all 0.3s;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}
.hall-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 14px 32px rgba(196, 163, 90, 0.25);
  border-color: #C4A35A;
}
.hall-card .photo {
  width: 100%;
  height: 200px;
  background-size: cover;
  background-position: center 32%;
  background-color: #f5f5f5;
  border-bottom: 3px solid #C4A35A;
  position: relative;
}
.hall-card .photo::after {
  content: "IPO";
  position: absolute;
  top: 10px;
  right: 10px;
  background: linear-gradient(135deg, #C4A35A, #8B6014);
  color: white;
  font-size: 9px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 3px;
  letter-spacing: 1.2px;
  box-shadow: 0 2px 6px rgba(139, 96, 20, 0.3);
}
.hall-card .card-body {
  padding: 16px 18px 18px;
}
.hall-card .hall-name {
  font-size: 15px;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 6px;
  letter-spacing: 0.3px;
}
.hall-card .hall-company {
  font-size: 11.5px;
  color: var(--sub);
  line-height: 1.55;
  margin-bottom: 10px;
  font-weight: 500;
}
.hall-card .hall-tag {
  display: inline-block;
  font-size: 9.5px;
  color: #8B6014;
  background: #FFF8E1;
  padding: 3px 8px;
  border-radius: 3px;
  letter-spacing: 0.5px;
  font-weight: 600;
  border: 1px solid #E8D89E;
}
.hall-carousel-fade {
  display: none;
}
.hall-see-all {
  text-align: center;
  margin-top: 18px;
}
.hall-see-all a {
  display: inline-block;
  color: #8B6014;
  font-size: 12px;
  font-weight: 700;
  padding: 12px 32px;
  border: 1.5px solid #C4A35A;
  border-radius: 28px;
  letter-spacing: 1.5px;
  transition: all 0.2s;
  cursor: pointer;
}
.hall-see-all a:hover {
  background: #C4A35A;
  color: white;
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(196, 163, 90, 0.3);
}

/* ========== Hall of Fame 一覧ページ ========== */
.hof-hero {
  padding: 80px 40px 60px;
  background: linear-gradient(135deg, #8B6014 0%, #C4A35A 100%);
  color: white;
  text-align: center;
}
.hof-hero .label {
  font-size: 11px;
  letter-spacing: 5px;
  opacity: 0.9;
  margin-bottom: 16px;
  font-weight: 600;
}
.hof-hero h1 {
  font-size: 40px;
  font-weight: 700;
  margin-bottom: 14px;
  letter-spacing: 0.04em;
}
.hof-hero .en {
  font-size: 13px;
  letter-spacing: 3px;
  opacity: 0.85;
  margin-bottom: 24px;
}
.hof-hero .sub {
  font-size: 14px;
  line-height: 1.9;
  opacity: 0.95;
  max-width: 680px;
  margin: 0 auto;
}
.hof-body {
  padding: 60px 40px 80px;
  background: var(--bg);
}
.hof-body-inner {
  max-width: 1100px;
  margin: 0 auto;
}
.hof-intro {
  background: white;
  border-radius: 14px;
  padding: 32px 36px;
  margin-bottom: 40px;
  border-left: 4px solid #C4A35A;
}
.hof-intro h2 {
  font-size: 20px;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 12px;
}
.hof-intro p {
  font-size: 13.5px;
  color: var(--text);
  line-height: 1.9;
  margin-bottom: 10px;
}
.hof-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 16px;
}
.hof-card {
  background: white;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 26px 22px;
  text-align: center;
  transition: all 0.3s;
}
.hof-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 32px rgba(196, 163, 90, 0.22);
  border-color: #C4A35A;
}
.hof-card .avatar {
  width: 84px;
  height: 84px;
  border-radius: 50%;
  margin: 0 auto 16px;
  background: linear-gradient(135deg, #C4A35A, #8B6014);
  background-size: cover;
  background-position: center;
  border: 3px solid #E8D89E;
}
.hof-card .name {
  font-size: 15px;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 6px;
}
.hof-card .company {
  font-size: 11.5px;
  color: var(--sub);
  line-height: 1.55;
}
.hof-note {
  margin-top: 30px;
  text-align: center;
  font-size: 11px;
  color: var(--mute);
  letter-spacing: 0.5px;
}

/* ========== 役員プロフィールモーダル ========== */
.officer-card-clickable {
  cursor: pointer;
  transition: all 0.3s;
}
.officer-card-clickable:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 28px rgba(13, 35, 64, 0.15);
  border-color: var(--green);
}
.officer-card-clickable .photo-placeholder {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  margin: 0 auto 14px;
  background: linear-gradient(135deg, var(--navy3), var(--navy));
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 26px;
  font-weight: 700;
  border: 2px solid var(--line);
}
.officer-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(13, 35, 64, 0.72);
  backdrop-filter: blur(8px);
  z-index: 2000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
  overflow-y: auto;
}
.officer-modal-overlay.active {
  display: flex;
}
.officer-modal {
  background: white;
  border-radius: 18px;
  max-width: 680px;
  width: 100%;
  padding: 0;
  position: relative;
  box-shadow: 0 30px 60px rgba(0, 0, 0, 0.3);
  animation: modalSlide 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  max-height: 90vh;
  overflow-y: auto;
}
.officer-modal-header {
  background: linear-gradient(135deg, var(--navy) 0%, var(--navy3) 100%);
  color: white;
  padding: 36px 40px 30px;
  border-radius: 18px 18px 0 0;
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 24px;
  align-items: center;
}
.officer-modal-photo {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(255,255,255,0.3), rgba(255,255,255,0.1));
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 38px;
  font-weight: 700;
  border: 3px solid rgba(255,255,255,0.4);
}
.officer-modal-head-text .role {
  font-size: 11px;
  letter-spacing: 2px;
  color: var(--green2);
  font-weight: 600;
  margin-bottom: 6px;
}
.officer-modal-head-text h3 {
  font-size: 26px;
  font-weight: 700;
  margin-bottom: 4px;
}
.officer-modal-head-text .en {
  font-size: 13px;
  opacity: 0.85;
  letter-spacing: 0.5px;
}
.officer-modal-body {
  padding: 30px 40px 36px;
}
.officer-modal-body h4 {
  font-size: 13px;
  letter-spacing: 2px;
  color: var(--green);
  font-weight: 700;
  margin-bottom: 10px;
  margin-top: 24px;
}
.officer-modal-body h4:first-child {
  margin-top: 0;
}
.officer-modal-body p {
  font-size: 13px;
  color: var(--text);
  line-height: 1.85;
  margin-bottom: 10px;
}
.officer-modal-body ul {
  list-style: none;
  padding: 0;
}
.officer-modal-body li {
  padding: 6px 0 6px 20px;
  position: relative;
  font-size: 12.5px;
  color: var(--text);
  line-height: 1.7;
}
.officer-modal-body li::before {
  content: "■";
  position: absolute;
  left: 0;
  color: var(--green);
  font-size: 9px;
  top: 11px;
}
.officer-modal-close {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
  color: white;
  font-size: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s;
  border: none;
}
.officer-modal-close:hover {
  background: rgba(255, 255, 255, 0.35);
}
.officer-modal-note {
  margin: 20px 0 0;
  padding: 12px 16px;
  background: #FFF8E1;
  border-radius: 8px;
  font-size: 11px;
  color: #6B5A00;
  line-height: 1.6;
}
.newsletter-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(13, 35, 64, 0.7);
  backdrop-filter: blur(6px);
  z-index: 2000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
  animation: overlayFade 0.3s ease;
}
.newsletter-modal-overlay.active { display: flex; }
@keyframes overlayFade {
  from { opacity: 0; }
  to { opacity: 1; }
}
.newsletter-modal {
  background: white;
  border-radius: 18px;
  max-width: 460px;
  width: 100%;
  padding: 40px 36px 36px;
  position: relative;
  box-shadow: 0 30px 60px rgba(0, 0, 0, 0.3);
  animation: modalSlide 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes modalSlide {
  from { opacity: 0; transform: translateY(30px); }
  to { opacity: 1; transform: translateY(0); }
}
.newsletter-modal-close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--soft);
  color: var(--sub);
  font-size: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s;
}
.newsletter-modal-close:hover {
  background: var(--navy);
  color: white;
}
.newsletter-modal-icon {
  width: 56px;
  height: 56px;
  background: linear-gradient(135deg, var(--green), #006B54);
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: 26px;
  margin-bottom: 20px;
}
.newsletter-modal h3 {
  font-size: 24px;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 8px;
  letter-spacing: 0.02em;
}
.newsletter-modal .sub {
  font-size: 13px;
  color: var(--sub);
  line-height: 1.8;
  margin-bottom: 8px;
}
.newsletter-modal .proof {
  font-size: 11px;
  color: var(--green);
  font-weight: 600;
  letter-spacing: 0.5px;
  margin-bottom: 24px;
}
.newsletter-modal-form {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.newsletter-modal-form input {
  padding: 14px 18px;
  border: 1px solid var(--line);
  border-radius: 10px;
  font-size: 13.5px;
  font-family: inherit;
  outline: none;
  transition: all 0.2s;
}
.newsletter-modal-form input:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 3px rgba(0, 137, 108, 0.12);
}
.newsletter-modal-form button {
  padding: 14px 20px;
  background: var(--green);
  color: white;
  border-radius: 10px;
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: 1px;
  transition: all 0.2s;
}
.newsletter-modal-form button:hover {
  background: #006B54;
}
.newsletter-modal .benefits {
  display: grid;
  gap: 8px;
  margin: 20px 0;
  padding: 14px 16px;
  background: var(--bg);
  border-radius: 10px;
}
.newsletter-modal .benefit-item {
  display: flex;
  gap: 10px;
  align-items: center;
  font-size: 12px;
  color: var(--text);
}
.newsletter-modal .benefit-item::before {
  content: "✓";
  color: var(--green);
  font-weight: 700;
}
.newsletter-modal .note {
  font-size: 10.5px;
  color: var(--mute);
  text-align: center;
  margin-top: 14px;
  letter-spacing: 0.3px;
}

/* ========== Old nav-fab (removed, keeping styles just in case) ========== */
.nav-fab {
  display: none;
}

/* ========== Responsive ========== */
@media (max-width: 900px) {
  .topnav { padding: 0 16px; }
  .topnav .nav-center { display: none; }
  .topnav .nav-right .contact-btn span { display: none; }
  .hero h1 { font-size: 32px; }
  .hero-content { grid-template-columns: 1fr !important; padding: 40px 24px 60px !important; text-align: center; }
  .hero-left { text-align: center !important; }
  .hero-tag { justify-content: center; }
  .hero-right { display: none !important; }
  .hero-sub { margin: 0 auto 30px !important; }
  .hero-stats { margin: 0 auto !important; grid-template-columns: repeat(2, 1fr); }
  .top-message-grid,
  .access-grid { grid-template-columns: 1fr; gap: 24px; }
  .officers-grid { grid-template-columns: 1fr 1fr; }
  .lte-ages { grid-template-columns: repeat(2, 1fr); }
  .learning-programs { grid-template-columns: 1fr 1fr; }
  .recurrent-grid,
  .insights-preview-grid,
  .insights-grid { grid-template-columns: 1fr; }
  .is-showcase { grid-template-columns: 1fr; }
  .is-card .img { width: 130px; }
  .footer-cols { grid-template-columns: 1fr 1fr; }
  .careers-hero h1 {
  font-size: clamp(26px, 3.1vw, 38px);
  font-weight: 700;
  color: #fff;
  line-height: 1.34;
  letter-spacing: .06em;
  margin: 13px 0 0;
}
  .careers-layer-header { flex-direction: column; gap: 8px; align-items: flex-start; }
  .careers-layer-num { font-size: 42px; }
  .anchor-buttons { flex-direction: column; }
  .anchor-btn { max-width: none; }
  .recruit-grid { grid-template-columns: 1fr 1fr; }
  .footer-newsletter-form { flex-direction: column; }
  .company-row { grid-template-columns: 1fr; }
  .company-row .k { background: var(--green3); padding-bottom: 8px; }
  .entry-form-card { padding: 28px 22px; }
  .entry-checkbox-group { grid-template-columns: 1fr; }
  .related-cards { grid-template-columns: 1fr; }
  .article-container h1 { font-size: 22px; }
}

/* ========== INSIGHTS Page（3列完成版 / 2026-07-29 差し替え） ========== */
#page-insights{--navy:#0D2340; --bg:#F8F6F1; --bg-soft:#FAFAF7; --sub:#5A5A5A; --mute:#9A9A9A; --line:#E8E4DA; --line-soft:#F0EDE6;
  --ohmae:#C4A35A; --ohmae-d:#8B6014; --ohmae-bg:#FBF6EC;
  --alumni:#A05A7E; --alumni-d:#6E3A56; --alumni-bg:#F9F1F5;
  --seminar:#00896C; --seminar-d:#006B54; --seminar-bg:#ECF6F3;
  --event:#D2703A; --event-d:#A6501F; --event-bg:#FBF0E8;
  --news:#1E3A5F; --news-d:#0D2340; --news-bg:#EEF1F5;
  --press:#4A6572; --press-d:#33474F; --press-bg:#EFF2F3;}
#page-insights .ins-wrap{max-width:1400px; margin:0 auto; padding:0 40px;}
#page-insights .hero-fv{position:relative; width:100%; aspect-ratio:16/5.4; min-height:280px; max-height:420px; overflow:hidden;}
#page-insights .hero-fv .hbg{position:absolute; inset:0; background-image:url('../images/04_insights/insights_hero.jpg'); background-size:cover; background-position:center;}
#page-insights .hero-fv .hov{position:absolute; inset:0; background:linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.12) 42%, rgba(255,255,255,0.35) 100%);}
#page-insights .hero-fv .hc{position:absolute; inset:0; z-index:2; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:0 32px;}
#page-insights .hero-fv .heb{font-family:"Cormorant Garamond",serif; font-size:15px; letter-spacing:.5em; color:var(--seminar); font-weight:600; margin-bottom:16px; text-indent:.5em;}
#page-insights .hero-fv h1{font-size:44px; font-weight:700; color:var(--navy); letter-spacing:.04em; margin-bottom:16px; text-shadow:0 2px 24px rgba(255,255,255,0.6);}
#page-insights .hero-fv h1 em{color:var(--seminar); font-style:normal;}
#page-insights .hero-fv .hlead{font-size:14.5px; color:var(--navy); line-height:1.9; font-weight:500; max-width:640px; text-shadow:0 1px 16px rgba(255,255,255,0.8);}
#page-insights .search-sticky{position:sticky; top:64px; z-index:50; background:rgba(248,246,241,.92); backdrop-filter:blur(12px); border-bottom:1px solid var(--line); padding:14px 0; transition:box-shadow .3s;}
#page-insights .search-sticky.stuck{box-shadow:0 4px 20px rgba(13,35,64,.06);}
#page-insights .search-inner{max-width:1400px; margin:0 auto; padding:0 40px; display:flex; align-items:center; gap:18px; flex-wrap:wrap;}
#page-insights .search-box{position:relative; flex:1; min-width:280px; max-width:620px;}
#page-insights .search-box input{width:100%; padding:13px 18px 13px 46px; border:1px solid var(--line); border-radius:30px; font-size:14px; font-family:inherit; background:#fff; outline:none; transition:all .25s;}
#page-insights .search-box input:focus{border-color:var(--seminar); box-shadow:0 0 0 3px rgba(0,137,108,.08);}
#page-insights .search-box .si{position:absolute; left:17px; top:50%; transform:translateY(-50%); color:var(--mute); pointer-events:none;}
#page-insights .suggest{display:flex; align-items:center; gap:8px; flex-wrap:wrap;}
#page-insights .suggest .sl{font-size:11.5px; color:var(--mute);}
#page-insights .stag{padding:5px 13px; background:#fff; border:1px solid var(--line); border-radius:20px; font-size:12px; color:var(--sub); cursor:pointer; transition:all .2s; font-family:inherit; white-space:nowrap;}
#page-insights .stag:hover{background:var(--navy); color:#fff; border-color:var(--navy);}
#page-insights .cat-columns{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; padding:40px 0 30px;}
#page-insights .cat-top2{grid-template-columns:repeat(2,1fr); max-width:806px; margin:0 auto; padding-bottom:0;}
#page-insights .cat-bottom3{padding-top:24px;}
#page-insights .cat-col{background:#fff; border-radius:8px; overflow:hidden; border:1px solid var(--line-soft); display:flex; flex-direction:column; transition:box-shadow .3s;}
#page-insights .cat-col:hover{box-shadow:0 14px 34px rgba(13,35,64,.1);}
#page-insights .col-fv{position:relative; aspect-ratio:16/8; overflow:hidden;}
#page-insights .col-fv .cbg{position:absolute; inset:0; background-size:cover; background-position:center;}
#page-insights .col-fv .ctop{position:absolute; top:0; left:0; right:0; height:4px; z-index:3;}
#page-insights .col-fv .cc{position:absolute; inset:0; z-index:2; padding:20px 22px; display:flex; flex-direction:column; justify-content:center;}
#page-insights .col-fv .ceb{font-family:"Cormorant Garamond",serif; font-size:11px; letter-spacing:.3em; font-weight:600; margin-bottom:8px;}
#page-insights .col-fv h2{font-family:"Noto Serif JP",serif; font-size:22px; font-weight:700; line-height:1.3; letter-spacing:.02em;}
#page-insights .col-fv h2 .en{font-family:"Cormorant Garamond",serif;}
#page-insights .col-fv .cjp{font-family:"Noto Serif JP",serif; font-size:13px; margin-top:4px;}
#page-insights .col-body{flex:1; padding:6px 0;}
#page-insights .mini{display:flex; gap:13px; padding:14px 20px; cursor:pointer; border-bottom:1px solid var(--line-soft); transition:background .2s; align-items:flex-start;}
#page-insights .mini:last-child{border-bottom:none;}
#page-insights .mini-thumb{width:78px; height:56px; border-radius:4px; background-size:cover; background-position:center; flex-shrink:0; position:relative; overflow:hidden;}
#page-insights .mini-st{position:absolute; bottom:0; left:0; right:0; font-size:8px; font-weight:700; text-align:center; padding:1px 0; color:#fff;}
#page-insights .mini-st.end{background:var(--mute)!important;}
#page-insights .mini-body{flex:1; min-width:0;}
#page-insights .mini-date{font-size:11px; font-weight:700; margin-bottom:3px; letter-spacing:.02em;}
#page-insights .mini-date.plain{color:var(--mute); font-weight:500;}
#page-insights .mini-title{font-family:"Noto Serif JP",serif; font-size:13px; font-weight:700; color:var(--navy); line-height:1.5; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;}
#page-insights .mini-sub{font-size:10.5px; color:var(--mute); margin-top:4px;}
#page-insights .mini-ext{display:inline-flex; align-items:center; gap:3px; font-size:10px; margin-top:4px; font-weight:600;}
#page-insights .col-foot{padding:14px 20px; border-top:1px solid var(--line-soft); background:var(--bg-soft);}
#page-insights .col-foot a{display:flex; align-items:center; justify-content:center; gap:8px; font-size:12px; font-weight:700; text-decoration:none; letter-spacing:.04em; transition:gap .25s;}
#page-insights .col-foot a:hover{gap:12px;}
#page-insights .c-ohmae .ctop{background:linear-gradient(90deg,var(--ohmae),#E8CB80,var(--ohmae));}
#page-insights .c-ohmae .col-fv .cbg::after{content:""; position:absolute; inset:0; background:linear-gradient(120deg,rgba(6,15,30,.9) 0%,rgba(6,15,30,.5) 55%,rgba(6,15,30,.2) 100%);}
#page-insights .c-ohmae .cc{color:#fff;}
#page-insights .c-ohmae .ceb{color:#E8CB80;}
#page-insights .c-ohmae h2{color:#fff; text-shadow:0 2px 12px rgba(0,0,0,.5);}
#page-insights .c-ohmae .mini:hover{background:var(--ohmae-bg);}
#page-insights .c-ohmae .mini-date{color:var(--ohmae-d);}
#page-insights .c-ohmae .mini-st{background:var(--ohmae);}
#page-insights .c-ohmae .col-foot a{color:var(--ohmae-d);}
#page-insights .c-alumni .ctop{background:linear-gradient(90deg,var(--alumni),#D9A8C4,var(--alumni));}
#page-insights .c-alumni .col-fv .cbg::after{content:""; position:absolute; inset:0; background:linear-gradient(120deg,rgba(30,10,25,.92) 0%,rgba(45,15,40,.6) 55%,rgba(110,58,86,.25) 100%);}
#page-insights .c-alumni .cc{color:#fff;}
#page-insights .c-alumni .ceb{color:#D9A8C4;}
#page-insights .c-alumni h2{color:#fff; text-shadow:0 2px 12px rgba(0,0,0,.5);}
#page-insights .c-alumni .mini:hover{background:var(--alumni-bg);}
#page-insights .c-alumni .mini-date{color:var(--alumni-d);}
#page-insights .c-alumni .mini-st{background:var(--alumni);}
#page-insights .c-alumni .col-foot a{color:var(--alumni-d);}
#page-insights .c-seminar .ctop{background:linear-gradient(90deg,var(--seminar),#2BB695,var(--seminar));}
#page-insights .c-seminar .col-fv .cbg::after{content:""; position:absolute; inset:0; background:linear-gradient(120deg,rgba(255,255,255,.9) 0%,rgba(240,250,247,.6) 50%,rgba(255,255,255,.15) 100%);}
#page-insights .c-seminar .cc{color:var(--navy);}
#page-insights .c-seminar .ceb{color:var(--seminar);}
#page-insights .c-seminar h2{color:var(--navy);}
#page-insights .c-seminar h2 .ac{color:var(--seminar);}
#page-insights .c-seminar .mini:hover{background:var(--seminar-bg);}
#page-insights .c-seminar .mini-date{color:var(--seminar);}
#page-insights .c-seminar .mini-st{background:var(--seminar);}
#page-insights .c-seminar .col-foot a{color:var(--seminar-d);}
#page-insights .c-event .ctop{background:linear-gradient(90deg,var(--event),#E89B6B,var(--event));}
#page-insights .c-event .col-fv .cbg::after{content:""; position:absolute; inset:0; background:linear-gradient(120deg,rgba(255,250,245,.9) 0%,rgba(251,240,232,.6) 50%,rgba(255,255,255,.12) 100%);}
#page-insights .c-event .cc{color:var(--navy);}
#page-insights .c-event .ceb{color:var(--event-d);}
#page-insights .c-event h2{color:var(--navy);}
#page-insights .c-event .cjp{color:var(--event-d);}
#page-insights .c-event .mini:hover{background:var(--event-bg);}
#page-insights .c-event .mini-date{color:var(--event);}
#page-insights .c-event .mini-st{background:var(--event);}
#page-insights .c-event .col-foot a{color:var(--event-d);}
#page-insights .c-news .ctop{background:linear-gradient(90deg,var(--news),#3E6294,var(--news));}
#page-insights .c-news .col-fv .cbg::after{content:""; position:absolute; inset:0; background:linear-gradient(120deg,rgba(255,255,255,.85) 0%,rgba(255,255,255,.5) 50%,transparent 100%);}
#page-insights .c-news .cc{color:var(--navy);}
#page-insights .c-news .ceb{color:var(--news);}
#page-insights .c-news h2{color:var(--navy);}
#page-insights .c-news .mini:hover{background:var(--news-bg);}
#page-insights .c-news .mini-date{color:var(--news);}
#page-insights .c-news .mini-st{background:var(--news);}
#page-insights .c-news .col-foot a{color:var(--news);}
#page-insights .c-press .ctop{background:linear-gradient(90deg,var(--press),#6E8A99,var(--press));}
#page-insights .c-press .col-fv .cbg::after{content:""; position:absolute; inset:0; background:linear-gradient(120deg,rgba(248,250,250,.88) 0%,rgba(240,244,245,.55) 50%,transparent 100%);}
#page-insights .c-press .cc{color:var(--navy);}
#page-insights .c-press .ceb{color:var(--press);}
#page-insights .c-press h2{color:var(--navy);}
#page-insights .c-press .mini:hover{background:var(--press-bg);}
#page-insights .c-press .mini-date{color:var(--press);}
#page-insights .c-press .mini-ext{color:var(--press);}
#page-insights .c-press .col-foot a{color:var(--press-d);}
#page-insights .all-cta{text-align:center; padding:20px 0 80px;}
#page-insights .all-cta a{display:inline-flex; align-items:center; gap:14px; padding:17px 46px; background:var(--navy); color:#fff; border-radius:3px; font-size:13px; font-weight:600; letter-spacing:.15em; text-decoration:none; transition:all .3s;}
#page-insights .all-cta a:hover{background:var(--seminar); transform:translateY(-2px); box-shadow:0 14px 30px rgba(0,137,108,.28);}
@media(max-width:1024px){
  #page-insights .cat-columns{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:640px){
  #page-insights .ins-wrap{padding:0 20px;}
  #page-insights .search-inner{padding:0 20px;}
  #page-insights .hero-fv{aspect-ratio:auto; padding:56px 0;}
  #page-insights .hero-fv h1{font-size:30px;}
  #page-insights .cat-columns{grid-template-columns:1fr;}
}

/* ---- 2026-07-31 カテゴリ再構成：学びを試す / プレス帯 ---- */
#page-insights{--people:#1E3A5F; --people-d:#0D2340; --people-bg:#EEF1F5;
  --learn:#1F7A8C; --learn-d:#125A69; --learn-bg:#EAF4F6;}

#page-insights .c-people .ctop{background:linear-gradient(90deg,var(--people),#3E6294,var(--people));}
#page-insights .c-people .col-fv .cbg::after{content:""; position:absolute; inset:0; background:linear-gradient(270deg,rgba(255,255,255,.92) 0%,rgba(255,255,255,.55) 45%,transparent 100%);}
#page-insights .c-people .cc{color:var(--navy); align-items:flex-end; text-align:right;}
#page-insights .c-people .ceb{color:var(--people);}
#page-insights .c-people h2{color:var(--navy);}
#page-insights .c-people .cjp{color:var(--sub);}
#page-insights .c-people .mini:hover{background:var(--people-bg);}
#page-insights .c-people .mini-date{color:var(--people);}
#page-insights .c-people .col-foot a{color:var(--people);}

#page-insights .c-learn .ctop{background:linear-gradient(90deg,var(--learn),#4FA8B8,var(--learn));}
#page-insights .c-learn .col-fv .cbg::after{content:""; position:absolute; inset:0; background:linear-gradient(120deg,rgba(255,255,255,.9) 0%,rgba(240,250,252,.55) 48%,transparent 100%);}
#page-insights .c-learn .cc{color:var(--navy);}
#page-insights .c-learn .ceb{color:var(--learn);}
#page-insights .c-learn h2{color:var(--navy);}
#page-insights .c-learn .cjp{color:var(--sub);}
#page-insights .c-learn .mini:hover{background:var(--learn-bg);}
#page-insights .c-learn .mini-date{color:var(--learn);}
#page-insights .c-learn .mini-st{background:var(--learn);}
#page-insights .c-learn .col-foot a{color:var(--learn-d);}

/* プレスリリース帯（外部＝PR Times へ送るので軽く扱う） */
#page-insights .press-strip{background:#fff; border:1px solid var(--line); border-left:3px solid var(--press);
  border-radius:4px; padding:22px 28px 20px; display:grid; grid-template-columns:200px 1fr; gap:26px; align-items:start; margin-top:6px;}
#page-insights .press-strip .ps-eyebrow{font-family:"Cormorant Garamond",serif; font-size:11px; letter-spacing:.3em; color:var(--press); font-weight:600; margin-bottom:4px;}
#page-insights .press-strip .ps-label{font-family:"Noto Serif JP",serif; font-size:16px; font-weight:700; color:var(--navy);}
#page-insights .press-strip .ps-note{font-size:11px; color:var(--mute); line-height:1.7; margin-top:8px;}
#page-insights .press-list{list-style:none; margin:0; padding:0;}
#page-insights .press-list li + li{border-top:1px solid var(--line-soft);}
#page-insights .press-list a{display:flex; align-items:baseline; gap:18px; padding:10px 0; text-decoration:none; color:inherit; transition:background .2s;}
#page-insights .press-list a:hover{background:var(--press-bg);}
#page-insights .press-list .ps-date{font-size:11.5px; color:var(--mute); white-space:nowrap; letter-spacing:.04em;}
#page-insights .press-list .ps-title{flex:1; font-size:13px; font-weight:600; color:var(--navy); line-height:1.55;}
#page-insights .press-list .ps-ext{font-size:10.5px; font-weight:600; color:var(--press); white-space:nowrap; display:inline-flex; align-items:center; gap:4px;}
#page-insights .ps-all{display:inline-block; margin-top:12px; font-size:11.5px; font-weight:700; color:var(--press-d); text-decoration:none; letter-spacing:.04em;}
#page-insights .ps-all:hover{text-decoration:underline;}
@media (max-width:900px){
  #page-insights .press-strip{grid-template-columns:1fr; gap:14px;}
  #page-insights .press-list a{flex-wrap:wrap; gap:6px 14px;}
}

/* ================= HOME（メディア型 / 2026-07-31 再構成） ================= */
#page-home{--h-navy:#0D2340; --h-navy-deep:#061528; --h-green:#00896C; --h-gold:#C4A35A; --h-gold-l:#E8CB80;
  --h-bg:#F8F6F1; --h-bg-soft:#FAFAF7; --h-sub:#5A5A5A; --h-mute:#9A9A9A; --h-line:#E8E4DA; --h-line-soft:#F0EDE6;
  --ohmae:#C4A35A; --alumni:#A05A7E; --people:#1E3A5F; --seminar:#00896C; --event:#D2703A; --learn:#1F7A8C; --press:#4A6572; --press-d:#33474F; --press-bg:#EFF2F3;}

/* --- ヒーロー（左：ブランド／右：キャンペーンバナー1枠・自動切替） --- */
#page-home .home-hero{position:relative; height:35vh; min-height:300px; max-height:380px; background:var(--h-navy-deep); overflow:hidden; color:#fff;}
#page-home .hh-bg{position:absolute; inset:0; background-image:url('https://aoba-bbt.com/wp-content/uploads/2024/09/abbt_6bancho2.jpg'); background-size:cover; background-position:center; z-index:0;}
#page-home .hh-bg::after{content:""; position:absolute; inset:0; background:linear-gradient(95deg,rgba(6,21,40,.93) 0%,rgba(6,21,40,.8) 48%,rgba(6,21,40,.68) 100%);}
#page-home .hh-inner{position:relative; z-index:1; max-width:1400px; margin:0 auto; height:100%; padding:0 40px; display:grid; grid-template-columns:1.15fr .85fr; gap:48px; align-items:center;}
#page-home .hh-eyebrow{display:inline-flex; align-items:center; gap:14px; font-family:"Cormorant Garamond",Georgia,serif; font-size:11.5px; letter-spacing:.4em; color:var(--h-gold-l); font-weight:500; margin-bottom:14px;}
#page-home .hh-eyebrow::before{content:""; width:34px; height:1px; background:var(--h-gold);}
#page-home .hh-title{font-size:34px; font-weight:700; line-height:1.4; letter-spacing:.02em; margin-bottom:13px; font-feature-settings:"palt";}
#page-home .hh-title em{font-style:normal; color:var(--h-gold-l);}
#page-home .hh-sub{font-size:13px; line-height:1.9; opacity:.85; max-width:480px;}

/* 右カラム：キャンペーンバナー（1枠・自動切替＋ドット） */
#page-home .hh-right{display:flex; flex-direction:column; gap:9px;}
#page-home .cmp-label{display:flex; align-items:center; gap:9px; font-family:"Cormorant Garamond",Georgia,serif; font-size:10.5px; letter-spacing:.32em; color:var(--mute); font-weight:600; margin-bottom:9px;}
#page-home .cmp-label::before{content:""; width:20px; height:1px; background:var(--h-gold);}
#page-home .cmp-carousel{position:relative; width:100%; aspect-ratio:3/1; border-radius:5px; overflow:hidden; border:1px solid var(--line); background:#0B1B30; box-shadow:0 12px 34px rgba(13,35,64,.16);}
#page-home .cmp-carousel:hover{border-color:var(--h-gold);}
#page-home .cmp-slide{position:absolute; inset:0; display:block; text-decoration:none; color:#fff; opacity:0; visibility:hidden; transition:opacity .7s ease;}
#page-home .cmp-slide.active{opacity:1; visibility:visible;}
#page-home .cmp-img{position:absolute; inset:0; background-size:cover; background-position:center;}
#page-home .cmp-tag{position:absolute; top:9px; left:9px; z-index:3; font-size:9px; font-weight:700; letter-spacing:.1em; padding:3px 9px; border-radius:2px; background:var(--h-gold); color:#0B1B30;}
#page-home .cmp-ext{position:absolute; bottom:9px; right:12px; z-index:3; font-size:10px; font-weight:700; color:#fff; letter-spacing:.06em; background:rgba(11,27,48,.55); padding:4px 10px; border-radius:2px;}
#page-home .cmp-dots{display:flex; gap:7px; align-items:center;}
#page-home .cmp-dot{width:7px; height:7px; border-radius:50%; border:0; padding:0; background:rgba(255,255,255,.28); cursor:pointer; transition:all .25s;}
#page-home .cmp-dot:hover{background:rgba(255,255,255,.55);}
#page-home .cmp-dot.on{background:var(--h-gold); width:18px; border-radius:4px;}

/* --- ニュース・コラム（メイン領域） --- */
#page-home .home-media{padding:70px 40px 80px; background:var(--h-bg-soft); border-bottom:1px solid var(--h-line);}
#page-home .hm-inner{max-width:1400px; margin:0 auto;}
#page-home .hm-head{display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:26px; padding-bottom:22px; border-bottom:1px solid var(--h-line);}
#page-home .hm-eyebrow{font-family:"Cormorant Garamond",Georgia,serif; font-size:13px; letter-spacing:.45em; color:var(--h-green); font-weight:600; margin-bottom:8px;}
#page-home .hm-title{font-family:"Noto Serif JP",serif; font-size:28px; font-weight:700; color:var(--h-navy); letter-spacing:.02em; line-height:1.4;}
#page-home .hm-title em{color:var(--h-green); font-style:normal; font-family:"Cormorant Garamond",Georgia,serif; font-size:32px; margin:0 4px;}
#page-home .hm-all{display:inline-flex; align-items:center; gap:10px; padding:11px 22px; background:var(--h-navy); color:#fff; border-radius:2px; font-size:12px; font-weight:600; letter-spacing:.15em; text-decoration:none; transition:all .25s; white-space:nowrap; cursor:pointer;}
#page-home .hm-all::after{content:"→"; transition:transform .25s;}
#page-home .hm-all:hover{background:var(--h-green); transform:translateY(-2px); box-shadow:0 12px 24px rgba(0,137,108,.25);}
#page-home .hm-all:hover::after{transform:translateX(3px);}

#page-home .hm-tabs{display:flex; gap:2px; margin-bottom:26px; flex-wrap:wrap; border-bottom:1px solid var(--h-line-soft);}
#page-home .hm-tab{padding:12px 18px; font-size:12.5px; font-weight:600; color:var(--h-sub); cursor:pointer; border:none; border-bottom:2px solid transparent; background:none; font-family:inherit; transition:all .25s; letter-spacing:.03em;}
#page-home .hm-tab:hover{color:var(--h-navy);}
#page-home .hm-tab.active{color:var(--h-navy); border-bottom-color:var(--h-green);}
#page-home .hm-tab .dot{display:inline-block; width:7px; height:7px; border-radius:50%; margin-right:7px; vertical-align:1px;}
#page-home .hm-tab .dot.ohmae{background:var(--ohmae);} #page-home .hm-tab .dot.alumni{background:var(--alumni);}
#page-home .hm-tab .dot.people{background:var(--people);} #page-home .hm-tab .dot.seminar{background:var(--seminar);}
#page-home .hm-tab .dot.event{background:var(--event);} #page-home .hm-tab .dot.learn{background:var(--learn);}

#page-home .hm-grid{display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:22px; grid-template-areas:"top side1 side2" "top side3 side4";}
#page-home .hm-card{background:#fff; border-radius:4px; overflow:hidden; cursor:pointer; transition:all .4s cubic-bezier(.16,1,.3,1); text-decoration:none; color:inherit; display:block; border:1px solid transparent;}
#page-home .hm-card:hover{transform:translateY(-4px); box-shadow:0 16px 36px rgba(13,35,64,.12); border-color:var(--h-line);}
#page-home .hm-photo{width:100%; background-size:cover; background-position:center; background-color:#ddd; position:relative;}
#page-home .hm-cat{position:absolute; top:12px; left:12px; font-size:10px; font-weight:700; letter-spacing:.1em; padding:4px 11px; border-radius:2px; z-index:2; background:#fff; color:var(--h-navy);}
#page-home .hm-cat[data-type="ohmae"]{background:var(--ohmae); color:#fff;}
#page-home .hm-cat[data-type="alumni"]{background:var(--alumni); color:#fff;}
#page-home .hm-cat[data-type="people"]{background:var(--people); color:#fff;}
#page-home .hm-cat[data-type="seminar"]{background:var(--seminar); color:#fff;}
#page-home .hm-cat[data-type="event"]{background:var(--event); color:#fff;}
#page-home .hm-cat[data-type="learn"]{background:var(--learn); color:#fff;}
#page-home .hm-status{position:absolute; left:0; bottom:0; z-index:2; font-size:10px; font-weight:700; letter-spacing:.08em; color:#fff; padding:3px 12px;}
#page-home .hm-status.seminar{background:var(--seminar);} #page-home .hm-status.event{background:var(--event);}
#page-home .hm-body{padding:18px 20px 22px;}
#page-home .hm-card-title{font-size:14.5px; font-weight:700; color:var(--h-navy); line-height:1.55; margin-bottom:10px; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;}
#page-home .hm-meta{display:flex; gap:12px; font-size:11px; color:var(--h-mute); letter-spacing:.04em;}
#page-home .hm-meta .author{font-weight:600; color:var(--h-sub);}
#page-home .hm-card.top{grid-area:top;}
#page-home .hm-card.top .hm-photo{aspect-ratio:16/11;}
#page-home .hm-card.top .hm-cat{top:16px; left:16px; font-size:11px; padding:5px 14px;}
#page-home .hm-card.top .hm-body{padding:22px 26px 28px;}
#page-home .hm-card.top .hm-card-title{font-size:22px; line-height:1.45; margin-bottom:14px;}
#page-home .hm-card.top .hm-meta{font-size:12px;}
#page-home .hm-card.s1{grid-area:side1;} #page-home .hm-card.s2{grid-area:side2;}
#page-home .hm-card.s3{grid-area:side3;} #page-home .hm-card.s4{grid-area:side4;}
#page-home .hm-card.s1 .hm-photo,#page-home .hm-card.s2 .hm-photo,
#page-home .hm-card.s3 .hm-photo,#page-home .hm-card.s4 .hm-photo{aspect-ratio:16/10;}
#page-home .hm-card.c-alumni .hm-meta .who{color:#6E3A56; font-weight:700;}
#page-home .hm-card.c-seminar .hm-meta .date{color:var(--seminar); font-weight:700;}
#page-home .hm-card.c-event .hm-meta .date{color:var(--event); font-weight:700;}

/* --- ホーム側 プレスリリース帯 --- */
#page-home .hm-press{margin-top:22px; background:#fff; border:1px solid var(--h-line); border-left:3px solid var(--press); border-radius:4px; padding:20px 26px 18px; display:grid; grid-template-columns:190px 1fr; gap:24px; align-items:start;}
#page-home .hm-press .ps-eyebrow{font-family:"Cormorant Garamond",Georgia,serif; font-size:11px; letter-spacing:.3em; color:var(--press); font-weight:600; margin-bottom:4px;}
#page-home .hm-press .ps-label{font-size:15px; font-weight:700; color:var(--h-navy);}
#page-home .hm-press .ps-note{font-size:11px; color:var(--h-mute); line-height:1.6; margin-top:6px;}
#page-home .press-list{list-style:none; margin:0; padding:0;}
#page-home .press-list li + li{border-top:1px solid var(--h-line-soft);}
#page-home .press-list a{display:flex; align-items:baseline; gap:16px; padding:9px 0; text-decoration:none; color:inherit; transition:background .2s;}
#page-home .press-list a:hover{background:var(--press-bg);}
#page-home .press-list .ps-date{font-size:11.5px; color:var(--h-mute); white-space:nowrap;}
#page-home .press-list .ps-title{flex:1; font-size:13px; font-weight:600; color:var(--h-navy); line-height:1.5;}
#page-home .press-list .ps-ext{font-size:10.5px; font-weight:600; color:var(--press); white-space:nowrap; display:inline-flex; align-items:center; gap:4px;}
#page-home .ps-all{display:inline-block; margin-top:10px; font-size:11.5px; font-weight:700; color:var(--press-d); text-decoration:none;}
#page-home .ps-all:hover{text-decoration:underline;}

@media (max-width:1024px){
  #page-home .home-hero{height:auto; max-height:none;}
  #page-home .hh-inner{grid-template-columns:1fr; gap:26px; padding:34px 28px 30px;}
  #page-home .hh-title{font-size:28px;}
  #page-home .hm-grid{grid-template-columns:1fr 1fr; grid-template-areas:"top top" "side1 side2" "side3 side4";}
  #page-home .hm-card.top .hm-card-title{font-size:18px;}
}
@media (max-width:640px){
  #page-home .hh-inner{padding:32px 20px 30px;}
  #page-home .hh-title{font-size:22px;}
  #page-home .home-media{padding:44px 20px 54px;}
  #page-home .hm-head{flex-direction:column; align-items:flex-start; gap:16px;}
  #page-home .hm-grid{grid-template-columns:1fr; grid-template-areas:"top" "side1" "side2" "side3" "side4";}
  #page-home .hm-tabs{overflow-x:auto; flex-wrap:nowrap;}
  #page-home .hm-tab{white-space:nowrap;}
  #page-home .hm-press{grid-template-columns:1fr; gap:14px;}
}

/* --- 会社情報ページに移設した「お知らせ」 --- */
#page-about .about-news{border-top:1px solid var(--line); margin-top:10px;}
#page-about .about-news-list{list-style:none; margin:0; padding:0; border-top:1px solid var(--line);}
#page-about .about-news-list li{border-bottom:1px solid var(--line);}
#page-about .about-news-list a{display:flex; gap:20px; align-items:baseline; padding:15px 6px; text-decoration:none; color:inherit; transition:background .2s;}
#page-about .about-news-list a:hover{background:#F4F2ED;}
#page-about .about-news-list .an-date{font-size:12px; color:var(--mute); white-space:nowrap; letter-spacing:.04em;}
#page-about .about-news-list .an-title{font-size:14px; font-weight:600; color:var(--navy); line-height:1.6;}
#page-about .about-news-more{text-align:right; margin-top:16px;}
#page-about .about-news-more a{font-size:12px; font-weight:700; color:var(--navy); text-decoration:none; letter-spacing:.06em;}
#page-about .about-news-more a:hover{text-decoration:underline;}

/* ========== 起業の殿堂：帯（軽量版 2026-07-31） ========== */
#page-learning .hof-band{background:linear-gradient(180deg,#0B1B30 0%,#12294A 100%); color:#fff; padding:30px 0 22px; border-bottom:1px solid rgba(255,255,255,.08);}
#page-learning .hof-band-inner{max-width:1400px; margin:0 auto; padding:0 40px;}
#page-learning .hof-band-head{display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap; margin-bottom:18px;}
#page-learning .hof-band-eyebrow{font-family:"Cormorant Garamond",Georgia,serif; font-size:11px; letter-spacing:.32em; color:#E8CB80; font-weight:600; display:block; margin-bottom:6px;}
#page-learning .hof-band-title{font-size:19px; font-weight:700; letter-spacing:.02em; line-height:1.5;}
#page-learning .hof-band-title em{font-style:normal; color:#E8CB80;}
#page-learning .hof-band-stats{display:flex; align-items:center; gap:14px; font-size:11.5px; color:rgba(255,255,255,.75); letter-spacing:.06em;}
#page-learning .hof-band-stats strong{font-family:"Cormorant Garamond",Georgia,serif; font-size:19px; color:#fff; margin-right:3px;}
#page-learning .hof-band-stats i{width:1px; height:12px; background:rgba(255,255,255,.2);}
#page-learning .hof-band .hall-carousel{margin:0;}
#page-learning .hof-band .hall-card{width:210px;}
#page-learning .hof-band .hall-card .photo{height:112px;}
#page-learning .hall-card .card-body{padding:10px 12px 12px;}
#page-learning .hall-card .hall-name{font-size:13px; font-weight:700; margin-bottom:2px;}
#page-learning .hall-card .hall-company{display:block; font-size:10.5px; color:rgba(255,255,255,.62); line-height:1.45; margin-bottom:7px; text-decoration:none;}
#page-learning .hall-card a.hall-company:hover{color:#fff; text-decoration:underline;}
#page-learning .hall-card .hall-prog{display:inline-block; font-size:10px; font-weight:600; color:#E8CB80; border:1px solid rgba(232,203,128,.4); border-radius:2px; padding:3px 8px; line-height:1.4; text-decoration:none; transition:all .2s;}
#page-learning .hall-card a.hall-prog:hover{background:#E8CB80; color:#0B1B30;}
#page-learning .hall-card .hall-prog.no-link{color:rgba(232,203,128,.72); border-style:dashed;}
#page-learning .hall-card .hall-story{display:block; margin-top:8px; font-size:10px; font-weight:700; color:#8FD8C4; cursor:pointer; letter-spacing:.04em;}
#page-learning .hall-card .hall-story:hover{text-decoration:underline;}
#page-learning .hof-band-foot{max-width:1400px; margin:14px auto 0; padding:0 40px; display:flex; justify-content:space-between; align-items:center; gap:18px; flex-wrap:wrap;}
#page-learning .hof-band-note{font-size:10.5px; color:rgba(255,255,255,.45);}
#page-learning .hof-band-foot a{font-size:12px; font-weight:700; color:#E8CB80; cursor:pointer; letter-spacing:.06em;}
#page-learning .hof-band-foot a:hover{text-decoration:underline;}

/* 殿堂一覧ページ側 */
#page-hall-of-fame .hof-prog{font-size:10.5px; color:var(--gold); margin-top:6px; line-height:1.5;}
#page-hall-of-fame .hof-story{display:inline-block; margin-top:8px; font-size:10.5px; font-weight:700; color:var(--green); cursor:pointer;}
#page-hall-of-fame .hof-story:hover{text-decoration:underline;}

/* ========== Learning Hub 主体セクション ========== */
#page-learning .lh-section{background:#fff; padding:70px 40px 60px; border-bottom:1px solid var(--line);}
#page-learning .lh-inner{max-width:1200px; margin:0 auto;}
#page-learning .lh-head{text-align:center; margin-bottom:38px;}
#page-learning .lh-eyebrow{font-family:"Cormorant Garamond",Georgia,serif; font-size:12px; letter-spacing:.4em; color:var(--green); font-weight:600;}
#page-learning .lh-title{font-family:"Noto Serif JP",serif; font-size:29px; font-weight:700; color:var(--navy); margin:12px 0 14px; letter-spacing:.02em;}
#page-learning .lh-lead{font-size:13.5px; color:var(--sub); line-height:1.95;}
#page-learning .lh-lead strong{color:var(--navy);}
#page-learning .lh-themes{display:grid; grid-template-columns:repeat(5,1fr); gap:14px; margin-bottom:42px;}
#page-learning .lh-theme{display:flex; flex-direction:column; background:#FAFAF7; border:1px solid var(--line); border-radius:4px; padding:20px 18px 18px; text-decoration:none; color:inherit; transition:all .3s cubic-bezier(.16,1,.3,1);}
#page-learning .lh-theme:hover{transform:translateY(-4px); box-shadow:0 14px 30px rgba(13,35,64,.12); border-color:var(--green);}
#page-learning .lh-theme-name{font-size:15px; font-weight:700; color:var(--navy); margin-bottom:10px; line-height:1.45;}
#page-learning .lh-theme-desc{font-size:11.5px; color:var(--sub); line-height:1.75; flex:1; margin-bottom:14px;}
#page-learning .lh-theme-more{font-size:11px; font-weight:700; color:var(--green); letter-spacing:.06em;}
#page-learning .lh-theme-ch{background:linear-gradient(160deg,#0D2340,#1E3A5F); border-color:transparent;}
#page-learning .lh-theme-ch .lh-theme-name{color:#fff;}
#page-learning .lh-theme-ch .lh-theme-desc{color:rgba(255,255,255,.72);}
#page-learning .lh-theme-ch .lh-theme-more{color:#E8CB80;}
#page-learning .lh-kadai-block{background:#F8F6F1; border-radius:5px; padding:30px 32px 28px;}
#page-learning .lh-kadai-title{font-size:15px; font-weight:700; color:var(--navy); margin-bottom:20px; letter-spacing:.04em;}
#page-learning .lh-kadai-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
#page-learning .lh-kadai-head{font-size:11.5px; font-weight:700; color:var(--green); margin-bottom:10px; line-height:1.6; letter-spacing:.03em;}
#page-learning .lh-kadai{display:block; background:#fff; border:1px solid var(--line); border-radius:3px; padding:10px 13px; margin-bottom:7px; font-size:12.5px; font-weight:600; color:var(--navy); text-decoration:none; transition:all .2s;}
#page-learning .lh-kadai:hover{border-color:var(--green); color:var(--green); transform:translateX(3px);}
#page-learning .lh-kadai::after{content:" ↗"; font-size:10px; color:var(--mute);}
#page-learning .lh-cta{text-align:center; margin-top:34px;}
#page-learning .lh-cta-main{display:inline-flex; align-items:center; gap:12px; padding:17px 46px; background:var(--navy); color:#fff; border-radius:3px; font-size:13px; font-weight:700; letter-spacing:.12em; text-decoration:none; transition:all .3s;}
#page-learning .lh-cta-main::after{content:"↗";}
#page-learning .lh-cta-main:hover{background:var(--green); transform:translateY(-2px); box-shadow:0 14px 30px rgba(0,137,108,.28);}
#page-learning .lh-cta-sub{display:block; margin-top:16px; font-size:12px; font-weight:600; color:var(--sub); text-decoration:none;}
#page-learning .lh-cta-sub:hover{color:var(--green); text-decoration:underline;}
@media (max-width:1100px){
  #page-learning .lh-themes{grid-template-columns:repeat(2,1fr);}
  #page-learning .lh-kadai-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:640px){
  #page-learning .lh-section{padding:44px 20px 40px;}
  #page-learning .lh-themes{grid-template-columns:1fr;}
  #page-learning .lh-kadai-grid{grid-template-columns:1fr;}
  #page-learning .hof-band-head{flex-direction:column; align-items:flex-start;}
}

/* ナビゲーター結果カードをリンク化 */
.lnav-rec-card{display:block; text-decoration:none; color:inherit; transition:all .25s;}
a.lnav-rec-card:hover{transform:translateY(-2px); box-shadow:0 10px 22px rgba(13,35,64,.14);}
.lnav-rec-go{font-size:10.5px; font-weight:700; color:#00896C; letter-spacing:.06em;}

/* ================= 記事ページ（共通 2026-07-31） ================= */
.article-page{--acc:#0D2340; --acc-d:#0D2340; --acc-bg:#F2F4F7;}
.article-page.a-ohmae {--acc:#C4A35A; --acc-d:#8B6014; --acc-bg:#FBF6EC;}
.article-page.a-alumni{--acc:#A05A7E; --acc-d:#6E3A56; --acc-bg:#F9F1F5;}
.article-page.a-people{--acc:#1E3A5F; --acc-d:#0D2340; --acc-bg:#EEF1F5;}
.article-page.a-learn {--acc:#1F7A8C; --acc-d:#125A69; --acc-bg:#EAF4F6;}
.article-page.a-event {--acc:#B07A2A; --acc-d:#7A5116; --acc-bg:#FAF4E9;}
.art-table{width:100%; border-collapse:collapse; margin:8px 0 28px; font-size:13px;}
.art-table th,.art-table td{border:1px solid var(--line); padding:11px 14px; text-align:left; line-height:1.8; vertical-align:top;}
.art-table th{background:var(--acc-bg); color:var(--navy); font-weight:700; width:30%; white-space:nowrap;}
.art-table td{color:#2A2A2A;}
.art-ul{margin:0 0 22px; padding-left:20px;}
.art-ul li{font-size:14px; line-height:2.05; color:#2A2A2A;}

.art-crumb{max-width:820px; margin:0 auto; padding:22px 24px 0; font-size:11.5px; color:var(--mute); letter-spacing:.04em;}
.art-crumb a{color:var(--sub); cursor:pointer; text-decoration:none;}
.art-crumb a:hover{color:var(--acc); text-decoration:underline;}
.art-crumb span{margin:0 8px; color:var(--line);}


.art-body{max-width:760px; margin:0 auto; padding:34px 24px 10px;}
.art-cat{display:inline-block; font-size:10.5px; font-weight:700; letter-spacing:.1em; color:#fff; background:var(--acc); padding:5px 13px; border-radius:2px; margin-bottom:18px;}
.art-body h1{font-family:"Noto Serif JP",serif; font-size:28px; font-weight:700; color:var(--navy); line-height:1.55; letter-spacing:.01em; margin-bottom:16px;}
.art-meta{display:flex; flex-wrap:wrap; gap:8px 16px; font-size:12px; color:var(--mute); padding-bottom:20px; border-bottom:1px solid var(--line); margin-bottom:28px;}
.art-meta .who{font-weight:700; color:var(--acc-d);}
.art-lead{background:var(--acc-bg); border-left:3px solid var(--acc); padding:20px 22px; font-size:13.5px; line-height:2; color:var(--navy); margin-bottom:34px; border-radius:0 3px 3px 0;}
.art-body h2{font-family:"Noto Serif JP",serif; font-size:19px; font-weight:700; color:var(--navy); line-height:1.6; margin:38px 0 16px; padding-left:14px; border-left:4px solid var(--acc);}
.art-body p{font-size:14px; line-height:2.05; color:#2A2A2A; margin-bottom:18px;}
.art-quote{background:#fff; border:1px solid var(--line); border-top:3px solid var(--acc); border-radius:3px; padding:20px 24px; margin:24px 0 28px;}
.art-quote p{font-size:14px; line-height:1.95; color:var(--navy); margin-bottom:10px; font-weight:500;}
.art-quote cite{display:block; font-size:11.5px; color:var(--mute); font-style:normal; text-align:right;}
.art-note{font-size:11.5px; color:var(--mute); line-height:1.9; border-top:1px solid var(--line); padding-top:16px; margin-top:30px;}
.art-ph{background:repeating-linear-gradient(135deg,#F4F2ED,#F4F2ED 10px,#EFECE5 10px,#EFECE5 20px); border:1px dashed var(--line); border-radius:3px; padding:26px 22px; text-align:center; color:var(--mute); font-size:12px; line-height:1.9; margin-bottom:20px;}
.art-video{position:relative; width:100%; aspect-ratio:16/9; margin:8px 0 26px; border-radius:4px; overflow:hidden; background:#000;}
.art-video iframe{position:absolute; inset:0; width:100%; height:100%; border:0;}

/* 送客ブロック（全カテゴリ共通の部品） */
.art-cta{max-width:760px; margin:44px auto 0; padding:0 24px;}
.art-cta-box{background:linear-gradient(160deg,#0D2340,#1E3A5F); border-radius:5px; padding:30px 32px 28px; color:#fff;}
.art-cta-eyebrow{font-family:"Cormorant Garamond",Georgia,serif; font-size:11px; letter-spacing:.32em; color:#E8CB80; font-weight:600; margin-bottom:8px;}
.art-cta-title{font-size:17px; font-weight:700; line-height:1.6; margin-bottom:6px;}
.art-cta-sub{font-size:12px; color:rgba(255,255,255,.7); line-height:1.85; margin-bottom:20px;}
.art-cta-list{display:grid; gap:10px;}
.art-cta-item{display:flex; align-items:center; justify-content:space-between; gap:16px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.16); border-radius:3px; padding:14px 18px; text-decoration:none; color:#fff; transition:all .25s;}
.art-cta-item:hover{background:rgba(232,203,128,.16); border-color:#E8CB80; transform:translateX(3px);}
.art-cta-item .l{font-size:13px; font-weight:700; line-height:1.5;}
.art-cta-item .d{display:block; font-size:11px; font-weight:400; color:rgba(255,255,255,.62); margin-top:3px;}
.art-cta-item .g{font-size:11px; color:#E8CB80; white-space:nowrap; font-weight:700;}
.art-cta-note{font-size:10.5px; color:rgba(255,255,255,.4); margin-top:14px; line-height:1.7;}

/* 回遊 */
.art-related{max-width:760px; margin:44px auto 0; padding:0 24px;}
.art-related-title{font-size:13px; font-weight:700; color:var(--navy); letter-spacing:.06em; padding-bottom:12px; border-bottom:1px solid var(--line); margin-bottom:16px;}
.art-rel-list{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
.art-rel{background:#fff; border:1px solid var(--line); border-radius:4px; padding:14px 16px; cursor:pointer; transition:all .25s;}
.art-rel:hover{transform:translateY(-3px); box-shadow:0 12px 24px rgba(13,35,64,.1);}
.art-rel .c{font-size:10px; font-weight:700; letter-spacing:.06em; margin-bottom:7px;}
.art-rel .t{font-size:12.5px; font-weight:600; color:var(--navy); line-height:1.6;}
.art-foot-nav{max-width:760px; margin:34px auto 90px; padding:0 24px; display:flex; gap:12px; flex-wrap:wrap;}
.art-foot-nav a{flex:1; min-width:200px; text-align:center; padding:15px 20px; border:1px solid var(--navy); color:var(--navy); border-radius:3px; font-size:12.5px; font-weight:700; letter-spacing:.06em; cursor:pointer; text-decoration:none; transition:all .25s;}
.art-foot-nav a:hover{background:var(--navy); color:#fff;}
@media (max-width:640px){
  .art-body h1{font-size:21px;}
  .art-rel-list{grid-template-columns:1fr;}
  .art-cta-box{padding:24px 20px;}
}


/* メルマガ：外部（Pardot）へのリンクに変更 */
.newsletter-link{display:inline-flex; align-items:center; gap:12px; padding:16px 42px; background:#00896C; color:#fff;
  border-radius:2px; font-size:13px; font-weight:700; letter-spacing:.14em; text-decoration:none; transition:all .25s;}
.newsletter-link:hover{background:#2BB695; transform:translateY(-2px); box-shadow:0 10px 22px rgba(0,137,108,.35);}

/* ============ v9統合：トップ再構成・学び4分割・学長ページ ============ */
:root{--h-navy:#0D2340; --h-navy2:#16324F; --h-gold:#C4A35A; --h-gold-l:#E8CB80;
  --h-green:#00896C; --cream:#F8F6F1; --line:#E8E4DA; --line-soft:#F0EDE6;
  --sub:#5A5A5A; --mute:#9A9A9A;
  --ohmae:#C4A35A; --alumni:#A05A7E; --people:#1E3A5F; --seminar:#00896C;
  --event:#D2703A; --learn:#1F7A8C; --press:#4A6572; --press-bg:#EFF2F3;}
/* ===================== 共通トークン ===================== */


/* ===================== セクション枠（白／クリーム交互＋B4帯） ===================== */
.sect{position:relative; padding:54px 0 50px; overflow:hidden;}
.sect-white{background:#fff;}
.sect-cream{background:var(--cream);}
.sect-cream .band{position:absolute; left:0; top:0; bottom:0; width:60px; background:var(--h-navy);
  display:flex; align-items:center; justify-content:center;}
.sect-cream .band::after{content:""; position:absolute; right:0; top:0; bottom:0; width:2px; background:var(--h-gold);}
.sect-cream .band span{writing-mode:vertical-rl; font-family:"Cormorant Garamond",Georgia,serif;
  font-size:12px; letter-spacing:.42em; color:var(--h-gold-l); font-weight:600;}
.sect-inner{max-width:1300px; margin:0 auto; padding:0 48px;}
.sect-cream .sect-inner{padding-left:116px;}
.sect-head{margin-bottom:26px;}
.sect-head.center{text-align:center;}
.sect-eyebrow{font-family:"Cormorant Garamond",Georgia,serif; font-size:12px; letter-spacing:.42em;
  color:var(--h-green); font-weight:600; margin-bottom:11px;}
.sect-ttl{font-family:"Noto Serif JP",serif; font-size:27px; font-weight:700; color:var(--h-navy);
  line-height:1.5; letter-spacing:.02em;}
.sect-ttl em{font-style:normal; color:var(--h-gold);}
.sect-lead{font-size:13px; color:var(--sub); line-height:1.85; margin-top:10px;}

/* ===================== FV ===================== */
/* FVの高さはカルーセルの中身で決まる（∞画像は「4つの学び」に一本化したためFVからは撤去） */
.fv{position:relative; background:#FBFAF7; overflow:hidden; border-bottom:1px solid var(--line);}
.fv-inner{position:relative; z-index:2; width:100%; max-width:1200px; margin:0 auto; padding:26px 44px 28px;}

/* PICK UP */
.cmp-label{display:flex; align-items:center; gap:9px; font-family:"Cormorant Garamond",Georgia,serif;
  font-size:10.5px; letter-spacing:.32em; color:var(--mute); font-weight:600; margin-bottom:9px;}
.cmp-label::before{content:""; width:20px; height:1px; background:var(--h-gold);}
.cmp-carousel{position:relative; width:100%; aspect-ratio:3/1; border-radius:4px; overflow:hidden;
  border:1px solid var(--line); background:#0B1B30; box-shadow:0 14px 40px rgba(13,35,64,.22);}
.cmp-slide{position:absolute; inset:0; display:block; text-decoration:none; color:#fff; opacity:0; visibility:hidden; transition:opacity .7s ease;}
.cmp-slide.active{opacity:1; visibility:visible;}
.cmp-img{position:absolute; inset:0; background-size:cover; background-position:center;}
.cmp-tag{position:absolute; top:12px; left:12px; z-index:3; font-size:10px; font-weight:700; letter-spacing:.1em;
  padding:3px 9px; border-radius:2px; background:var(--h-gold); color:#0B1B30;}
.cmp-ext{position:absolute; bottom:10px; right:14px; z-index:3; font-size:10.5px; font-weight:700; color:rgba(255,255,255,.85);}
.cmp-dots{display:flex; gap:7px; margin-top:9px;}
.cmp-dot{width:7px; height:7px; border-radius:50%; border:0; padding:0; background:rgba(13,35,64,.2); cursor:pointer; transition:all .25s;}
.cmp-dot.on{background:var(--h-gold); width:18px; border-radius:4px;}

/* ===================== 4事業ブロック ===================== */
/* ===== 私たちの約束（現行踏襲のアコーディオン＋行動規範スライド） ===== */
.cr-head{max-width:1100px; margin:0 auto; padding:44px 40px 30px; text-align:center;}
.cr-eyebrow{font-family:"Cormorant Garamond",Georgia,serif; font-size:11px; letter-spacing:.36em;
  color:var(--h-gold); font-weight:600; margin-bottom:12px;}
.cr-ttl{font-family:"Noto Serif JP",serif; font-size:30px; font-weight:700; color:var(--h-navy);
  letter-spacing:.06em; margin:0;}
.cr-ttl::after{content:""; display:block; width:44px; height:2px; background:var(--h-gold);
  margin:18px auto 0;}
.cr-body{max-width:1240px; margin:0 auto; padding:0 40px 70px;}
.cr-cols{display:grid; grid-template-columns:470px 1fr; gap:40px; align-items:stretch;}

/* 左：4つの約束（押すとモーダル） */
.cr-left{display:flex; flex-direction:column; gap:14px;}
.cr-left .cr-card{flex:1;}
.cr-card{display:flex; align-items:center; gap:18px; width:100%; padding:24px 26px;
  background:#FBFAF7; border:1px solid var(--line); border-radius:5px; cursor:pointer;
  text-align:left; transition:all .3s cubic-bezier(.4,.02,.2,1);}
.cr-card:hover{background:#fff; border-color:rgba(178,148,86,.6);
  transform:translateX(4px); box-shadow:0 10px 26px rgba(13,35,64,.10);}
.cr-card:focus-visible{outline:2px solid var(--h-gold); outline-offset:2px;}
.cr-card-n{font-family:"Cormorant Garamond",Georgia,serif; font-size:19px; font-weight:600;
  color:var(--h-gold); letter-spacing:.06em; flex:0 0 auto;}
.cr-card-t{flex:1; font-family:"Noto Serif JP",serif; font-size:16px; font-weight:700;
  color:var(--h-navy); letter-spacing:.03em; line-height:1.5;}
.cr-card-go{flex:0 0 26px; height:26px; display:flex; align-items:center; justify-content:center;
  border:1px solid var(--h-gold); border-radius:50%; color:var(--h-gold); font-size:12px;
  transition:all .3s;}
.cr-card:hover .cr-card-go{background:var(--h-gold); color:#fff;}

/* 右：行動規範スライド */
.cr-right{border-left:1px solid var(--line); padding-left:34px;}
.cr-deck-head{display:flex; align-items:baseline; gap:16px; flex-wrap:wrap; margin-bottom:16px;}
.cr-deck-ttl{font-family:"Noto Serif JP",serif; font-size:19px; font-weight:700;
  color:var(--h-navy); margin:0; letter-spacing:.04em; flex:0 0 auto;}
.cr-deck-lead{font-size:11.5px; line-height:1.7; color:var(--mute); margin:0; flex:1 1 auto;
  min-width:180px; font-feature-settings:"palt";}
.cr-slide{position:relative; width:100%; aspect-ratio:16/9; background:#F4F1EA;
  border:1px solid var(--line); border-radius:4px; overflow:hidden;}
.cr-slide img{width:100%; height:100%; object-fit:contain; display:block;}
.cr-deck-bar{display:flex; align-items:center; gap:10px; margin-top:11px;}
.cr-nav{width:28px; height:28px; flex:0 0 28px; border:1px solid var(--line); background:#fff;
  border-radius:50%; color:var(--h-navy); font-size:15px; line-height:1; cursor:pointer; transition:all .25s;}
.cr-nav:hover{background:var(--h-navy); color:#fff; border-color:var(--h-navy);}
.cr-nav:focus-visible{outline:2px solid var(--h-gold); outline-offset:2px;}
.cr-count{font-size:11px; color:var(--mute); letter-spacing:.06em; min-width:52px;}
.cr-full{margin-left:auto; font-size:11px; font-weight:700; color:var(--h-navy);
  text-decoration:none; border-bottom:1px solid var(--h-gold); padding-bottom:2px;}

/* モーダル */
.cr-modal{position:fixed; inset:0; z-index:9000; display:flex; align-items:center;
  justify-content:center; padding:40px 24px;}
.cr-modal[hidden]{display:none;}
.cr-modal-bg{position:absolute; inset:0; background:rgba(11,27,48,.62);
  backdrop-filter:blur(3px); animation:crFade .3s ease;}
.cr-modal-box{position:relative; width:100%; max-width:760px; max-height:100%;
  background:#fff; border-radius:6px; box-shadow:0 30px 70px rgba(11,27,48,.36);
  display:flex; flex-direction:column; overflow:hidden; animation:crRise .34s cubic-bezier(.4,.02,.2,1);}
@keyframes crFade{from{opacity:0}to{opacity:1}}
@keyframes crRise{from{opacity:0; transform:translateY(18px) scale(.985)}to{opacity:1; transform:none}}
.cr-modal-x{position:absolute; top:14px; right:16px; z-index:2; width:34px; height:34px;
  border:0; background:none; font-size:24px; line-height:1; color:var(--mute); cursor:pointer;
  border-radius:50%; transition:all .25s;}
.cr-modal-x:hover{background:#F4F1EA; color:var(--h-navy);}
.cr-modal-scroll{overflow-y:auto; padding:44px 48px 44px;}
.cr-modal-num{font-family:"Cormorant Garamond",Georgia,serif; font-size:15px; font-weight:600;
  color:var(--h-gold); letter-spacing:.16em; margin-bottom:8px;}
.cr-modal-ttl{font-family:"Noto Serif JP",serif; font-size:22px; font-weight:700;
  color:var(--h-navy); margin:0 0 20px; letter-spacing:.03em; line-height:1.5;}
.cr-lead{font-size:13px; line-height:2; color:var(--sub); padding-top:18px;
  border-top:1px solid var(--line-soft); font-feature-settings:"palt";}
.cr-we{font-size:13px; font-weight:700; color:var(--h-navy); margin:18px 0 8px;}
.cr-list{list-style:none; margin:0; padding:0;}
.cr-list li{position:relative; padding:8px 0 8px 20px; font-size:13px; line-height:1.9;
  color:var(--h-navy); font-feature-settings:"palt";}
.cr-list li::before{content:""; position:absolute; left:2px; top:17px; width:6px; height:1px;
  background:var(--h-gold);}

@media(max-width:1120px){
  .cr-cols{grid-template-columns:1fr; gap:34px;}
  .cr-right{border-left:0; border-top:1px solid var(--line); padding:30px 0 0;}
  .cr-deck-viewer{max-width:520px;}
}
@media(max-width:680px){
  .cr-head{padding:30px 22px 22px;} .cr-ttl{font-size:24px;}
  .cr-body{padding:0 22px 48px;}
  .cr-card{padding:18px 18px; gap:13px;} .cr-card-t{font-size:14.5px;}
  .cr-modal{padding:16px;} .cr-modal-scroll{padding:36px 24px 32px;}
  .cr-modal-ttl{font-size:19px;}
}
@media(prefers-reduced-motion:reduce){
  .cr-card, .cr-card-go{transition:none;} .cr-card:hover{transform:none;}
  .cr-modal-bg, .cr-modal-box{animation:none;}
}

/* ===== 学び／社会人：2分岐ハブ ===== */
.hub{padding:64px 0 76px; background:
  linear-gradient(180deg, #FBFAF7 0%, #F5F3EE 100%);}
.hub-in{max-width:1180px; margin:0 auto; padding:0 44px;}
.hub-lead{text-align:center; margin-bottom:42px;}
.hub-lead p{font-size:14px; line-height:2.05; color:var(--sub); font-feature-settings:"palt";}

.hub-fork{display:grid; grid-template-columns:1fr auto 1fr; align-items:stretch; gap:0;}

.hub-door{position:relative; display:block; text-decoration:none; background:#fff;
  border:1px solid var(--line); border-radius:6px; overflow:hidden;
  box-shadow:0 2px 10px rgba(13,35,64,.05);
  transition:transform .5s cubic-bezier(.4,.02,.2,1), box-shadow .5s ease, border-color .5s ease;}
.hub-door:hover{transform:translateY(-6px); box-shadow:0 22px 46px rgba(13,35,64,.16);
  border-color:rgba(178,148,86,.55);}
.hub-door:focus-visible{outline:2px solid var(--h-gold); outline-offset:3px;}

.hub-door-media{height:172px; background-size:cover; background-position:center;
  position:relative; filter:saturate(.82); transition:filter .6s ease, transform .8s ease;}
.hub-door-media::after{content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(13,35,64,.30) 0%, rgba(13,35,64,.62) 100%);}
.hub-door:hover .hub-door-media{filter:saturate(1); transform:scale(1.04);}

.hub-door-body{padding:30px 34px 34px;}
.hub-eyebrow{display:flex; align-items:center; gap:11px;
  font-family:"Cormorant Garamond",Georgia,serif; font-size:11px; letter-spacing:.34em;
  color:var(--h-gold); font-weight:600; margin-bottom:14px;}
.hub-eyebrow::before{content:""; width:26px; height:1px; background:var(--h-gold);}
.hub-ttl{font-family:"Noto Serif JP",serif; font-size:25px; font-weight:700; color:var(--h-navy);
  line-height:1.5; letter-spacing:.02em; margin:0 0 16px; font-feature-settings:"palt";}
.hub-ttl em{font-style:normal; color:var(--h-gold);}
.hub-desc{font-size:13px; line-height:1.95; color:var(--sub); margin-bottom:20px;
  font-feature-settings:"palt";}
.hub-topics{font-size:11.5px; line-height:1.95; color:var(--mute);
  padding:14px 0 18px; border-top:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft);
  margin-bottom:22px; font-feature-settings:"palt";}
.hub-go{display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:14px 20px; background:var(--h-navy); border-radius:3px;
  transition:background .3s ease;}
.hub-go-site{font-size:12.5px; font-weight:700; color:#fff; letter-spacing:.04em;}
.hub-go-arrow{font-size:13px; color:var(--h-gold-l); transition:transform .3s ease;}
.hub-door:hover .hub-go{background:#16305A;}
.hub-door:hover .hub-go-arrow{transform:translate(3px,-3px);}

.hub-or{display:flex; flex-direction:column; align-items:center; justify-content:center;
  width:76px; position:relative;}
.hub-or::before, .hub-or::after{content:""; position:absolute; left:50%; width:1px;
  background:linear-gradient(180deg, transparent, var(--line), transparent);}
.hub-or::before{top:8%; height:34%;}
.hub-or::after{bottom:8%; height:34%;}
.hub-or span{font-family:"Cormorant Garamond",Georgia,serif; font-size:14px; font-style:italic;
  color:var(--mute); letter-spacing:.08em;}

.hub-note{margin-top:34px; text-align:center; font-size:12px; line-height:1.9; color:var(--mute);
  font-feature-settings:"palt";}

@media(max-width:900px){
  .hub{padding:44px 0 52px;}
  .hub-in{padding:0 24px;}
  .hub-fork{grid-template-columns:1fr; gap:0;}
  .hub-or{width:auto; height:56px; flex-direction:row;}
  .hub-or::before, .hub-or::after{left:auto; top:50%; height:1px; width:32%;
    background:linear-gradient(90deg, transparent, var(--line), transparent);}
  .hub-or::before{left:6%;} .hub-or::after{right:6%; left:auto;}
  .hub-door-body{padding:26px 24px 28px;}
  .hub-ttl{font-size:22px;}
  .hub-lead br.pc{display:none;}
}
@media(prefers-reduced-motion:reduce){
  .hub-door, .hub-door-media, .hub-go, .hub-go-arrow{transition:none;}
  .hub-door:hover{transform:none;}
  .hub-door:hover .hub-door-media{transform:none;}
}

/* ===== ホーム：PICK UPカルーセル（両サイド見切れ型） ===== */
/* 比率を変えたいときはここ1行。正方形なら 1/1、横長バナーなら 3/1 */
.cmp-wrap{--cmp-ratio:3/1; --cmp-w:64%; --cmp-gap:16px; position:relative;}
.cmp-viewport{overflow:hidden; padding:6px 0 10px;}
.cmp-track{display:flex; gap:var(--cmp-gap); will-change:transform;
  transition:transform .62s cubic-bezier(.4,.02,.2,1);}
.cmp-item{position:relative; flex:0 0 var(--cmp-w); aspect-ratio:var(--cmp-ratio);
  display:block; text-decoration:none; color:#fff; border-radius:5px; overflow:hidden;
  border:1px solid var(--line); background:#0B1B30;
  opacity:.34; transform:scale(.94); filter:saturate(.55);
  transition:opacity .55s ease, transform .55s ease, filter .55s ease, box-shadow .55s ease;}
.cmp-item.is-center{opacity:1; transform:scale(1); filter:none;
  box-shadow:0 14px 38px rgba(13,35,64,.2);}
.cmp-item:not(.is-center){cursor:pointer;}
.cmp-item-img{position:absolute; inset:0; background-size:cover; background-position:center;}
.cmp-item-tag{position:absolute; top:11px; left:11px; z-index:3; font-size:9.5px; font-weight:700;
  letter-spacing:.1em; padding:3px 9px; border-radius:2px; background:var(--h-gold); color:#0B1B30;}
.cmp-item-ext{position:absolute; bottom:10px; right:12px; z-index:3; font-size:10px; font-weight:700;
  color:#fff; letter-spacing:.06em; background:rgba(11,27,48,.55); padding:4px 10px; border-radius:2px;
  opacity:0; transition:opacity .4s ease;}
.cmp-item.is-center .cmp-item-ext{opacity:1;}
.cmp-wrap .cmp-nav{position:absolute; top:50%; transform:translateY(-50%); z-index:6;
  width:40px; height:40px; border-radius:50%; border:1px solid var(--line); background:rgba(255,255,255,.94);
  color:var(--h-navy); font-size:20px; line-height:1; cursor:pointer; opacity:0; transition:all .3s;
  box-shadow:0 4px 14px rgba(13,35,64,.16);}
.cmp-wrap:hover .cmp-nav{opacity:1;}
.cmp-wrap .cmp-nav:hover{background:#fff; transform:translateY(-50%) scale(1.08);}
.cmp-wrap .cmp-nav.prev{left:calc(18% - 20px);} 
.cmp-wrap .cmp-nav.next{right:calc(18% - 20px);}
.cmp-dots{display:flex; gap:7px; margin-top:12px; justify-content:center;}
.cmp-dot{box-shadow:0 0 0 2px rgba(255,255,255,.75);}
/* スマホは矢印を出さずスワイプ＋ドットで操作（矢印がバナーに被るため） */
@media(max-width:900px){ .cmp-wrap{--cmp-w:82%; --cmp-gap:10px;}
  .cmp-wrap .cmp-nav{display:none;} }
@media(max-width:620px){ .cmp-wrap{--cmp-w:88%;}
  .cmp-item-ext{display:none;}  /* 幅が狭いとバナー文字に重なるため非表示 */
  }

/* OUR LEARNING は帯の上、もともと空いていた余白に置く（帯は端から端まで） */

.sv-list{display:flex; flex-direction:column; gap:26px;}
.sv-block{display:grid; grid-template-columns:1fr 320px; gap:0; align-items:stretch;}
.sv-visual{position:relative; background-size:cover; background-position:center; min-height:280px; border-radius:4px 0 0 4px; overflow:hidden;}
.sv-visual::after{content:""; position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(13,35,64,.86) 0%, rgba(13,35,64,.7) 42%, rgba(13,35,64,.28) 72%, rgba(13,35,64,.12) 100%);}
.sv-white .sv-visual::after{background:linear-gradient(100deg, rgba(13,35,64,.86) 0%, rgba(13,35,64,.7) 42%, rgba(13,35,64,.28) 72%, rgba(13,35,64,.12) 100%);}
.sv-cream .sv-visual::after{background:linear-gradient(100deg, rgba(22,50,79,.86) 0%, rgba(22,50,79,.7) 42%, rgba(22,50,79,.3) 72%, rgba(22,50,79,.12) 100%);}
.sv-visual-in{position:relative; z-index:2; padding:38px 40px; color:#fff; height:100%; display:flex; flex-direction:column; justify-content:center;}
.sv-eyebrow{font-family:"Cormorant Garamond",Georgia,serif; font-size:11px; letter-spacing:.4em; color:var(--h-gold-l); font-weight:600; margin-bottom:9px;}
.sv-label{font-size:13px; font-weight:700; letter-spacing:.1em; margin-bottom:14px; opacity:.92;}
.sv-copy{font-family:"Noto Serif JP",serif; font-size:29px; font-weight:700; line-height:1.5; letter-spacing:.02em; font-feature-settings:"palt";}
.sv-copy em{font-style:normal; color:var(--h-gold-l);}
.sv-card{background:#fff; border:1px solid var(--line); border-left:0; border-radius:0 4px 4px 0;
  padding:30px 30px 26px; display:flex; flex-direction:column;}
.sv-lead{font-size:12.5px; color:var(--sub); line-height:1.95; padding-bottom:17px; border-bottom:1px solid var(--line-soft); margin-bottom:16px;}
.sv-svc-ttl{font-size:11px; font-weight:700; color:var(--h-navy); letter-spacing:.1em; margin-bottom:11px;}
.sv-svc{list-style:none; margin:0 0 auto; padding:0; flex:1;}
.sv-svc li{font-size:12px; color:var(--h-navy); line-height:1.65; padding:7px 0 7px 15px; position:relative; border-bottom:1px solid var(--line-soft);}
.sv-svc li::before{content:""; position:absolute; left:0; top:14px; width:5px; height:5px; border-radius:50%; background:var(--h-gold);}
.sv-wip{display:inline-block; font-size:10.5px; color:var(--mute); margin-top:12px;}
.sv-more{display:inline-flex; align-items:center; justify-content:center; gap:10px; margin-top:20px; padding:12px 20px;
  background:var(--h-navy); color:#fff; border-radius:2px; font-size:12px; font-weight:700; letter-spacing:.12em;
  text-decoration:none; cursor:pointer; transition:all .28s;}
.sv-more::after{content:"→"; transition:transform .28s;}
.sv-more:hover{background:var(--h-gold); color:var(--h-navy);}
.sv-more:hover::after{transform:translateX(4px);}

/* ===================== Insights（日経型） ===================== */
.ns-wrap{display:grid; grid-template-columns:1.05fr 1fr; gap:36px; align-items:stretch;}
.ns-list-col{display:flex; flex-direction:column;}
.ns-lead-art{display:block; text-decoration:none; color:inherit; cursor:pointer;}
.ns-lead-photo{width:100%; aspect-ratio:16/9; background-size:cover; background-position:center; border-radius:3px; margin-bottom:15px;}
.ns-lead-cat{display:inline-block; font-size:10px; font-weight:700; letter-spacing:.1em; padding:3px 10px;
  border-radius:2px; color:#fff; background:var(--ohmae); margin-bottom:10px;}
.ns-lead-ttl{font-family:"Noto Serif JP",serif; font-size:22px; font-weight:700; color:var(--h-navy); line-height:1.55; margin-bottom:11px;}
.ns-lead-meta{display:flex; gap:14px; font-size:11.5px; color:var(--mute);}
.ns-lead-meta .who{font-weight:700; color:var(--sub);}
.ns-list{border-top:1px solid var(--line); flex:1; display:flex; flex-direction:column;}
.ns-row{flex:1; display:flex; align-items:center; gap:15px; padding:10px 4px;
  border-bottom:1px solid var(--line);
  text-decoration:none; color:inherit; cursor:pointer; transition:background .22s;}
.ns-row:last-child{border-bottom:0;}
.ns-row:hover{background:#FCFBF8;}
.ns-thumb{flex:0 0 92px; height:62px; background-size:cover; background-position:center; border-radius:2px; background-color:#EDEAE3;}
.ns-body{flex:1; min-width:0;}
.ns-cat{display:inline-block; font-size:10.5px; font-weight:700; letter-spacing:.08em;
  margin-bottom:7px; padding:4px 10px; border-radius:2px; line-height:1.35; color:#fff;}
.ns-row.c-ohmae   .ns-cat{background:#8B6014;}
.ns-row.c-alumni  .ns-cat{background:#8E3F68;}
.ns-row.c-people  .ns-cat{background:#1E3A5F;}
.ns-row.c-seminar .ns-cat{background:#00785E;}
.ns-row.c-event   .ns-cat{background:#C25A22;}
.ns-row.c-learn   .ns-cat{background:#15697A;}
.ns-title{font-size:13.5px; font-weight:600; color:var(--h-navy); line-height:1.55; margin-bottom:5px;}
.ns-meta{display:flex; justify-content:space-between; gap:10px; font-size:10.5px; color:var(--mute);}
.ns-foot{display:flex; justify-content:center; margin-top:30px;}
.ns-all{display:inline-flex; align-items:center; gap:11px; padding:14px 40px; border:1px solid var(--h-navy);
  color:var(--h-navy); border-radius:2px; font-size:12.5px; font-weight:700; letter-spacing:.11em; text-decoration:none; cursor:pointer; transition:all .28s;}
.ns-all::after{content:"→"; transition:transform .28s;}
.ns-all:hover{background:var(--h-navy); color:#fff;}
.ns-all:hover::after{transform:translateX(4px);}
/* プレス帯 */
.ns-press{margin-top:26px; background:#fff; border:1px solid var(--line); border-left:3px solid var(--press);
  border-radius:4px; padding:19px 24px 17px; display:grid; grid-template-columns:170px 1fr; gap:22px; align-items:start;}
.ps-eyebrow{font-family:"Cormorant Garamond",Georgia,serif; font-size:11px; letter-spacing:.3em; color:var(--press); font-weight:600; margin-bottom:4px;}
.ps-label{font-size:14px; font-weight:700; color:var(--h-navy);}
.ps-note{font-size:10.5px; color:var(--mute); line-height:1.65; margin-top:6px;}
.press-list{list-style:none; margin:0; padding:0;}
.press-list li + li{border-top:1px solid var(--line-soft);}
.press-list a{display:flex; align-items:baseline; gap:15px; padding:8px 0; text-decoration:none; color:inherit; transition:background .2s;}
.press-list a:hover{background:var(--press-bg);}
.press-list .ps-date{font-size:11px; color:var(--mute); white-space:nowrap;}
.press-list .ps-title{flex:1; font-size:12.5px; font-weight:600; color:var(--h-navy); line-height:1.5;}
.press-list .ps-ext{font-size:10px; font-weight:700; color:var(--press); white-space:nowrap; display:inline-flex; align-items:center; gap:4px;}

/* ===================== 殿堂 ===================== */
.hf-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px; max-width:760px; margin:0 auto;}
.hf-person{text-align:center; text-decoration:none; color:inherit; cursor:pointer; transition:transform .3s cubic-bezier(.16,1,.3,1);}
.hf-person:hover{transform:translateY(-4px);}
.hf-photo{width:100%; aspect-ratio:1/1; border-radius:50%; background-size:cover; background-color:#EFECE5;
  margin-bottom:13px; border:3px solid #fff; box-shadow:0 6px 18px rgba(13,35,64,.12); transition:all .3s;}
.hf-person:hover .hf-photo{border-color:var(--h-gold); box-shadow:0 12px 26px rgba(13,35,64,.2);}
.hf-name{font-size:13.5px; font-weight:700; color:var(--h-navy); margin-bottom:4px;}
.hf-co{font-size:10.5px; color:var(--mute); line-height:1.55;}
.hf-foot{display:flex; justify-content:center; margin-top:22px;}
.hf-note{text-align:center; font-size:10.5px; color:var(--mute); margin-top:26px; line-height:1.7;}

/* ===================== インタビュー ===================== */
.itv-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
.itv-card{background:#fff; border:1px solid var(--line); border-radius:4px; overflow:hidden;
  text-decoration:none; color:inherit; cursor:pointer; display:flex; flex-direction:column; transition:all .38s cubic-bezier(.16,1,.3,1);}
.itv-card:hover{transform:translateY(-4px); box-shadow:0 18px 38px rgba(13,35,64,.13); border-color:var(--people);}
.itv-photo{width:100%; aspect-ratio:5/3; background-size:cover; background-color:#EEF1F5;}
.itv-body{padding:19px 21px 22px; flex:1; display:flex; flex-direction:column;}
.itv-tag{font-family:"Cormorant Garamond",Georgia,serif; font-size:10px; letter-spacing:.28em; color:var(--h-gold); font-weight:600; margin-bottom:8px;}
.itv-who{font-size:11.5px; font-weight:700; color:var(--people); margin-bottom:9px;}
.itv-ttl{font-size:15px; font-weight:700; color:var(--h-navy); line-height:1.6; margin-bottom:10px;}
.itv-lead{font-size:12px; color:var(--sub); line-height:1.85; flex:1;}

/* ===================== レスポンシブ ===================== */
@media (max-width:1100px){
  .fv-inner{padding:20px 28px 24px;}
  .ns-wrap{grid-template-columns:1fr; gap:26px;}
  .hf-grid{grid-template-columns:repeat(3,1fr);}
  .itv-grid{grid-template-columns:repeat(2,1fr);}
  .sect-cream .sect-inner{padding-left:100px;}
}
@media (max-width:640px){
  .sect{padding:48px 0 44px;}
  .sect-inner{padding:0 20px;}
  .sect-cream .sect-inner{padding-left:76px;}
  .sect-cream .band{width:44px;}
  .fv-inner{padding:16px 20px 20px;}
  .hf-grid{grid-template-columns:repeat(2,1fr);}
  .itv-grid{grid-template-columns:1fr;}
  .ns-press{grid-template-columns:1fr; gap:12px;}
  .ns-thumb{flex:0 0 74px; height:50px;}
}


/* ===================== 学び詳細ページ（共通） ===================== */
.ld{--acc:#1F6FA8;}
.ld.t-global{--acc:#1F6FA8;} .ld.t-university{--acc:#5B4C8A;}
.ld.t-business{--acc:#00896C;} .ld.t-alumni{--acc:#A05A7E;}

.ld-hero{position:relative; min-height:340px; overflow:hidden; background:#0D2340;}
.ld-hero-bg{position:absolute; inset:0; background-size:cover; background-position:center;}
.ld-hero-bg::after{content:""; position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(13,35,64,.9) 0%, rgba(13,35,64,.74) 46%, rgba(13,35,64,.40) 78%, rgba(13,35,64,.22) 100%);}
/* FVもカテゴリ色を右下から差して、4ページの見分けをつける */
.ld-hero-bg::before{content:""; position:absolute; inset:0; z-index:1; mix-blend-mode:screen;
  background:linear-gradient(315deg, var(--ld-tint, transparent) 0%, transparent 58%);}
.t-global     {--ld-tint:rgba(214,150,36,.44);}
.t-university {--ld-tint:rgba(48,112,186,.44);}
.t-business   {--ld-tint:rgba(20,138,132,.42);}
.t-alumni     {--ld-tint:rgba(158,84,132,.44);}
.t-global .ld-eyebrow    {color:#F2C878;}
.t-university .ld-eyebrow{color:#9CC8F0;}
.t-business .ld-eyebrow  {color:#8FDCD2;}
.t-alumni .ld-eyebrow    {color:#E2AFCE;}
.ld-hero-in{position:relative; z-index:2; max-width:1300px; margin:0 auto; padding:52px 48px 46px;
  min-height:340px; display:flex; flex-direction:column; justify-content:center; color:#fff;}
.ld-crumb{font-size:11.5px; color:rgba(255,255,255,.62); letter-spacing:.04em; margin-bottom:20px;}
.ld-crumb a{color:rgba(255,255,255,.82); cursor:pointer; text-decoration:none;}
.ld-crumb a:hover{color:#E8CB80; text-decoration:underline;}
.ld-crumb span{margin:0 9px; opacity:.45;}
.ld-eyebrow{font-family:"Cormorant Garamond",Georgia,serif; font-size:12px; letter-spacing:.42em;
  color:#E8CB80; font-weight:600; margin-bottom:13px;}
.ld-copy{font-family:"Noto Serif JP",serif; font-size:34px; font-weight:700; line-height:1.45;
  letter-spacing:.02em; margin-bottom:16px; font-feature-settings:"palt";}
.ld-copy em{font-style:normal; color:#E8CB80;}
.ld-lead{font-size:13.5px; line-height:2; color:rgba(255,255,255,.84); max-width:660px;}

.ld-stat{padding:0 34px; border-right:1px solid var(--line);}
.ld-stat:first-child{padding-left:0;}
.ld-stat:last-child{border-right:0;}
.ld-stat .n{font-family:"Cormorant Garamond",Georgia,serif; font-size:30px; font-weight:700; color:var(--h-navy); line-height:1.1;}
.ld-stat .n small{font-size:14px; margin-left:2px;}
.ld-stat .l{font-size:10.5px; color:var(--mute); letter-spacing:.06em; margin-top:4px;}

.ld-body{background:var(--cream); padding:60px 0 72px;}
.ld-body-in{max-width:1300px; margin:0 auto; padding:0 48px;}
.ld-group{margin-bottom:46px;}
.ld-group:last-child{margin-bottom:0;}
.ld-gttl{display:flex; align-items:baseline; gap:15px; padding-bottom:13px;
  border-bottom:2px solid var(--acc); margin-bottom:9px;}
.ld-gttl h3{font-family:"Noto Serif JP",serif; font-size:19px; font-weight:700; color:var(--h-navy); letter-spacing:.02em;}
.ld-gnum{font-family:"Cormorant Garamond",Georgia,serif; font-size:22px; font-weight:700; color:var(--acc); line-height:1;}
.ld-gdesc{font-size:12.5px; color:var(--sub); line-height:1.9; margin-bottom:20px;}
.ld-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
.ld-card{background:#fff; border:1px solid var(--line); border-radius:4px; overflow:hidden;
  display:flex; flex-direction:column; text-decoration:none; color:inherit; transition:all .35s cubic-bezier(.16,1,.3,1);}
a.ld-card:hover{transform:translateY(-4px); box-shadow:0 16px 34px rgba(13,35,64,.12); border-color:var(--acc);}
/* スクールのロゴ枠（ロゴ入手後は background-image を差すだけ） */
.ld-logo{width:100%; aspect-ratio:16/5; background:#FCFBF8; border-bottom:1px solid var(--line);
  background-size:auto 46%; background-repeat:no-repeat; background-position:center;
  display:flex; align-items:center; justify-content:center;}
.ld-logo-ph{font-family:"Cormorant Garamond",Georgia,serif; font-size:11px; letter-spacing:.34em;
  color:#C3BEB2; font-weight:600; border:1px dashed #DED8CB; border-radius:2px; padding:9px 20px;}
.ld-logo[style*="background-image"] .ld-logo-ph{display:none;}
/* バナー画像はロゴと違い、枠いっぱいに敷く */
.ld-logo.is-banner{background-size:cover; background-position:center;}
.ld-thumb{width:100%; aspect-ratio:3/2; background-size:cover; background-position:center; background-color:#E6EAEF; position:relative;}
.ld-thumb::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 58%,rgba(13,35,64,.24) 100%);}
.ld-card-in{padding:18px 20px 19px; display:flex; flex-direction:column; flex:1;}
.ld-name{font-size:14.5px; font-weight:700; color:var(--h-navy); line-height:1.55; margin-bottom:10px;}
.ld-desc{font-size:11.5px; color:var(--sub); line-height:1.85; flex:1;}
.ld-ext{font-size:10.5px; font-weight:700; color:var(--acc); margin-top:13px; letter-spacing:.05em;}
.ld-ext.none{color:var(--mute); font-weight:400;}

.ld-foot{background:#fff; padding:52px 48px 60px; text-align:center;}
.ld-foot-ttl{font-size:14px; font-weight:700; color:var(--h-navy); margin-bottom:18px; letter-spacing:.04em;}
.ld-foot-links{display:flex; gap:12px; justify-content:center; flex-wrap:wrap;}
.ld-fl{display:inline-flex; align-items:center; gap:9px; padding:12px 24px; border:1px solid var(--line);
  border-radius:2px; font-size:12px; font-weight:700; color:var(--h-navy); text-decoration:none; cursor:pointer;
  background:#fff; transition:all .28s;}
.ld-fl:hover{border-color:var(--h-navy); background:var(--h-navy); color:#fff;}
.ld-fl.now{background:var(--cream); color:var(--mute); border-color:var(--line); pointer-events:none;}
.ld-wip{background:#FFF6D5; border:1px solid #E8D9A0; border-radius:4px; padding:15px 20px;
  font-size:11.5px; color:#6B5A20; line-height:1.85; margin-bottom:30px;}

@media (max-width:1100px){
  .ld-cards{grid-template-columns:repeat(2,1fr);}
  .ld-copy{font-size:26px;}
  .ld-hero-in{padding:40px 28px 36px;}
    .ld-body-in{padding:0 28px;}
}
@media (max-width:640px){
  .ld-cards{grid-template-columns:1fr;}
  .ld-copy{font-size:21px;}
  .ld-stat{padding:0 18px; border-right:0;}
  .ld-hero-in,.ld-body-in{padding-left:20px; padding-right:20px;}
}

/* グロナビ：学びのドロップダウン */
.nav-item{position:relative; display:inline-flex;}
.nav-drop{position:absolute; top:calc(100% + 6px); left:50%; transform:translateX(-50%) translateY(-6px);
  background:#fff; border:1px solid var(--line); border-radius:4px; box-shadow:0 16px 40px rgba(13,35,64,.16);
  padding:9px; min-width:230px; opacity:0; visibility:hidden; transition:all .24s; z-index:200;}
.nav-item:hover .nav-drop{opacity:1; visibility:visible; transform:translateX(-50%) translateY(0);}
.nav-drop a{display:block; padding:11px 15px; font-size:12.5px; font-weight:600; color:var(--h-navy);
  text-decoration:none; border-radius:3px; cursor:pointer; transition:all .2s; white-space:nowrap;}
.nav-drop a:hover{background:var(--cream); color:var(--h-green); padding-left:19px;}
.nav-drop a small{display:block; font-size:10px; color:var(--mute); font-weight:400; margin-top:2px;}

/* インタビューカード：写真プレースホルダー */
.itv-photo.itv-ph{display:flex; align-items:center; justify-content:center; text-align:center;
  background:repeating-linear-gradient(135deg,#EDF1F5,#EDF1F5 10px,#E6EBF1 10px,#E6EBF1 20px);}
.itv-photo.itv-ph span{font-size:10.5px; color:#9AA7B4; line-height:1.8;}

/* ===================== 学長ページ ===================== */
.fp-hero{position:relative; background:linear-gradient(115deg,#0B1B30 0%,#12294A 60%,#1A3557 100%); color:#fff; overflow:hidden;}
.fp-hero::before{content:""; position:absolute; inset:0;
  background:radial-gradient(ellipse at 82% 22%, rgba(196,163,90,.16) 0%, transparent 60%); pointer-events:none;}
.fp-hero-in{position:relative; z-index:1; max-width:1200px; margin:0 auto; padding:44px 48px 52px;}
.fp-crumb{font-size:11.5px; color:rgba(255,255,255,.6); letter-spacing:.04em; margin-bottom:30px;}
.fp-crumb a{color:rgba(255,255,255,.82); cursor:pointer; text-decoration:none;}
.fp-crumb a:hover{color:#E8CB80; text-decoration:underline;}
.fp-crumb span{margin:0 9px; opacity:.45;}
.fp-hero-grid{display:grid; grid-template-columns:1fr 300px; gap:52px; align-items:center;}
.fp-eyebrow{font-family:"Cormorant Garamond",Georgia,serif; font-size:12px; letter-spacing:.42em; color:#E8CB80; font-weight:600; margin-bottom:16px;}
.fp-copy{font-family:"Noto Serif JP",serif; font-size:34px; font-weight:700; line-height:1.45; letter-spacing:.02em; margin-bottom:18px;}
.fp-role{font-size:12px; color:rgba(255,255,255,.62); line-height:1.9; margin-bottom:8px;}
.fp-name{display:flex; align-items:baseline; gap:13px;}
.fp-name .t{font-size:12px; color:rgba(255,255,255,.62);}
.fp-name .n{font-size:22px; font-weight:700; letter-spacing:.08em;}
.fp-photo{width:100%; aspect-ratio:4/3; border-radius:3px; background-size:cover;
  background-position:center 25%; background-color:#16324F;}
.fp-photo span{font-size:11px; color:rgba(232,203,128,.75); line-height:1.9; letter-spacing:.04em; padding:0 18px;}

.fp-body{background:#fff; padding:66px 48px 60px;}
.fp-body-in{max-width:820px; margin:0 auto;}
.fp-h2{font-family:"Noto Serif JP",serif; font-size:21px; font-weight:700; color:var(--h-navy);
  padding-left:15px; border-left:4px solid var(--h-gold); line-height:1.6; margin:0 0 24px;}
.fp-body p{font-size:14px; line-height:2.1; color:#2A2A2A; margin-bottom:20px;}
.fp-body p.sig{text-align:right; font-size:13px; color:var(--sub); margin-top:32px;}
.fp-body p.sig strong{font-size:19px; color:var(--h-navy); margin-left:10px; letter-spacing:.08em;}

.fp-profile{background:var(--cream); padding:56px 48px 60px;}
.fp-profile-in{max-width:820px; margin:0 auto;}
.fp-profile p{font-size:12.5px; line-height:2.05; color:var(--sub); margin-bottom:16px;}
.fp-profile .ext{display:inline-flex; align-items:center; gap:8px; margin-top:8px; font-size:12px;
  font-weight:700; color:var(--h-navy); text-decoration:none;}
.fp-profile .ext:hover{color:var(--h-green); text-decoration:underline;}

.fp-rel{background:#fff; padding:58px 48px 66px;}
.fp-rel-in{max-width:1200px; margin:0 auto;}
.fp-rel-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
.fp-rel-card{background:#fff; border:1px solid var(--line); border-radius:4px; padding:24px 24px 22px;
  text-decoration:none; color:inherit; display:flex; flex-direction:column; transition:all .35s cubic-bezier(.16,1,.3,1);}
.fp-rel-card:hover{transform:translateY(-4px); box-shadow:0 16px 34px rgba(13,35,64,.12); border-color:var(--h-gold);}
.fp-rel-card .t{font-size:15px; font-weight:700; color:var(--h-navy); margin-bottom:11px; line-height:1.55;}
.fp-rel-card .d{font-size:12px; color:var(--sub); line-height:1.9; flex:1;}
.fp-rel-card .e{font-size:10.5px; font-weight:700; color:var(--h-gold); margin-top:14px; letter-spacing:.05em;}
.fp-foot{background:var(--cream); padding:46px 48px 54px; text-align:center;}
.fp-foot-ttl{font-size:13.5px; font-weight:700; color:var(--h-navy); margin-bottom:17px;}

@media (max-width:900px){
  .fp-hero-grid{grid-template-columns:1fr; gap:28px;}
  .fp-photo{max-width:220px; aspect-ratio:1/1; background-position:center 12%;}
  .fp-copy{font-size:25px;}
  .fp-hero-in,.fp-body,.fp-profile,.fp-rel,.fp-foot{padding-left:22px; padding-right:22px;}
  .fp-rel-grid{grid-template-columns:1fr;}
}

/* 会社情報：ブランドムービー（旧・学びページのヒーローを移設） */
#page-about .about-movie{background:var(--cream); padding:60px 40px 64px;}
#page-about .about-movie-in{max-width:1000px; margin:0 auto;}
#page-about .am-head{text-align:center; margin-bottom:28px;}
#page-about .am-eyebrow{font-family:"Cormorant Garamond",Georgia,serif; font-size:12px;
  letter-spacing:.42em; color:var(--h-green); font-weight:600; margin-bottom:11px;}
#page-about .am-ttl{font-family:"Noto Serif JP",serif; font-size:24px; font-weight:700;
  color:var(--h-navy); letter-spacing:.02em;}
#page-about .am-frame{position:relative; width:100%; aspect-ratio:16/9; border-radius:4px;
  overflow:hidden; background:#000; box-shadow:0 16px 40px rgba(13,35,64,.18);}
#page-about .am-frame iframe{position:absolute; inset:0; width:100%; height:100%; border:0;}
#page-about .am-note{text-align:center; font-size:11px; color:var(--mute); margin-top:16px; line-height:1.8;}

/* 殿堂ページ：修了プログラム表示 */
#page-hall-of-fame .hof-prog-link{display:inline-block; font-size:10.5px; font-weight:600;
  color:var(--gold); border:1px solid rgba(196,163,90,.45); border-radius:2px; padding:4px 10px;
  margin-top:9px; line-height:1.5; text-decoration:none; transition:all .2s;}
#page-hall-of-fame a.hof-prog-link:hover{background:var(--gold); color:#0B1B30;}
#page-hall-of-fame .hof-prog-link.none{border-style:dashed; opacity:.7;}

/* ============ グローバルナビ（B案：全項目に薄いブルー下線） ============ */
.topnav{background:#fff !important; border-bottom:1px solid var(--line) !important;
  display:flex !important; align-items:center !important; justify-content:space-between !important;
  padding:0 26px !important; height:76px !important;}
.topnav .brand{display:flex; align-items:center; gap:11px; flex:0 0 auto; cursor:pointer;}
.topnav .brand img.brand-mark{height:44px; width:auto; display:block;}
.topnav .brand-logo{display:none !important;}
.topnav .brand-text{display:none !important;}

.topnav .nav-center{display:flex !important; align-items:stretch !important; height:100% !important; gap:2px !important;}
.topnav .nav-link{display:inline-flex !important; align-items:center !important; height:100% !important;
  padding:0 16px !important; font-size:13.5px !important; font-weight:600 !important; color:var(--h-navy) !important;
  text-decoration:none !important; cursor:pointer; white-space:nowrap;
  background:none !important; border-radius:0 !important;
  border-bottom:3px solid rgba(0,160,233,.16) !important; transition:all .25s !important;}
.topnav .nav-link:hover{border-bottom-color:rgba(0,160,233,.5) !important; background:rgba(0,160,233,.04) !important;}
.topnav .nav-link.active{border-bottom-color:#00A0E9 !important; color:#00A0E9 !important;
  background:rgba(0,160,233,.06) !important;}
.topnav .nav-item{position:relative; display:inline-flex; align-items:stretch;}
.topnav .nav-caret{margin-left:6px; font-size:9px; color:var(--mute);}
.topnav .nav-item:hover .nav-link{border-bottom-color:rgba(0,160,233,.5) !important; background:rgba(0,160,233,.04) !important;}

.nav-drop{position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(-6px);
  background:#fff; border:1px solid var(--line); border-top:3px solid #00A0E9; border-radius:0 0 4px 4px;
  box-shadow:0 16px 40px rgba(13,35,64,.16); padding:8px; min-width:250px;
  opacity:0; visibility:hidden; transition:all .24s; z-index:300;}
.topnav .nav-item:hover .nav-drop{opacity:1; visibility:visible; transform:translateX(-50%) translateY(0);}
.nav-drop a{display:block; padding:11px 14px; font-size:12.5px; font-weight:600; color:var(--h-navy);
  text-decoration:none; border-radius:3px; cursor:pointer; transition:all .2s; border:0 !important;
  background:none !important; height:auto !important; white-space:nowrap;}
.nav-drop a:hover{background:#F0F8FD !important; color:#00A0E9 !important; padding-left:18px;}
.nav-drop a small{display:block; font-size:10px; color:var(--mute); font-weight:400; margin-top:2px;}

.topnav .nav-right{display:flex; align-items:center; gap:9px; flex:0 0 auto;}
@media (max-width:1200px){
  .topnav .nav-link{padding:0 11px !important; font-size:12.5px !important;}
  .topnav .brand img.brand-mark{height:38px;}
}

/* FVバナー：矢印ナビ */
.cmp-nav{position:absolute; top:50%; transform:translateY(-50%); z-index:5; width:36px; height:36px;
  border-radius:50%; border:0; background:rgba(255,255,255,.86); color:#0D2340; cursor:pointer;
  display:flex; align-items:center; justify-content:center; font-size:14px; font-weight:700;
  box-shadow:0 4px 14px rgba(0,0,0,.28); opacity:0; transition:all .25s;}
.cmp-carousel:hover .cmp-nav{opacity:1;}
.cmp-nav:hover{background:#fff; transform:translateY(-50%) scale(1.08);}
.cmp-nav.prev{left:10px;} .cmp-nav.next{right:10px;}
@media (max-width:900px){ .cmp-nav{opacity:1; width:32px; height:32px;} }

/* ============ メルマガ（白背景＋グレーの箱） ============ */
.footer-newsletter{background:#fff !important; padding:70px 40px 76px !important;
  color:var(--h-navy) !important; border-top:1px solid var(--line) !important;}
.footer-newsletter-inner{max-width:760px !important; margin:0 auto !important; text-align:center !important;
  background:#F2F1ED !important; border:1px solid #E4E1D9 !important; border-radius:5px !important;
  padding:44px 40px 40px !important;}
.footer-newsletter .icon{width:44px !important; height:44px !important; margin:0 auto 16px !important;
  background:var(--h-navy) !important; border-radius:10px !important; display:flex !important;
  align-items:center !important; justify-content:center !important; font-size:20px !important;}
.footer-newsletter h3{font-family:"Noto Serif JP",serif !important; font-size:22px !important;
  font-weight:700 !important; color:var(--h-navy) !important; margin-bottom:10px !important;}
.footer-newsletter .sub{font-size:13px !important; color:var(--sub) !important;
  line-height:1.9 !important; margin-bottom:8px !important;}
.footer-newsletter .social-proof{font-size:11.5px !important; color:var(--h-green) !important;
  font-weight:700 !important; margin-bottom:22px !important; background:none !important; padding:0 !important;}
.footer-newsletter .newsletter-link{background:var(--h-navy) !important; color:#fff !important;}
.footer-newsletter .newsletter-link:hover{background:var(--h-green) !important;}
.footer-newsletter .note{font-size:10.5px !important; color:var(--mute) !important;
  margin-top:16px !important; line-height:1.7 !important;}

/* ヘッダー高さ76pxに合わせた本文オフセット補正 */
main#mainContent{padding-top:76px !important;}
.sticky-anchor-nav{top:76px !important;}
#page-insights .search-sticky{top:76px !important;}

/* 学長ページFV：現行サイトと同じ構成（白背景・左テキスト・右写真） */
.fp-hero{background:#fff !important; border-bottom:1px solid var(--line) !important;}
.fp-hero::before{display:none !important;}
.fp-hero-in{padding:38px 48px 0 !important;}
.fp-crumb{color:var(--mute) !important; margin-bottom:26px !important;}
.fp-crumb a{color:var(--sub) !important;}
.fp-crumb a:hover{color:var(--h-green) !important;}
.fp-hero-grid{grid-template-columns:1fr 1fr !important; gap:0 !important; align-items:stretch !important;
  background:linear-gradient(90deg,#EEF3F8 0%,#F4F7FA 55%,#E9EFF5 100%); border-radius:4px; overflow:hidden;}
.fp-hero-grid > div:first-child{padding:52px 44px 56px;}
.fp-eyebrow{color:var(--h-green) !important;}
.fp-copy{color:#1B6CA8 !important; font-size:31px !important;}
.fp-role{color:var(--sub) !important;}
.fp-name .t{color:var(--sub) !important;}
.fp-name .n{color:var(--h-navy) !important;}
.fp-photo{aspect-ratio:auto !important; height:100% !important; min-height:330px;
  background-size:cover !important; background-position:center 18% !important; border-radius:0 !important;}
.fp-hero-title{max-width:1200px; margin:0 auto; padding:0 48px;}
.fp-hero-title h2{font-family:"Noto Serif JP",serif; font-size:26px; font-weight:700;
  color:var(--h-navy); text-align:center; padding:46px 0 6px;}
.fp-hero-title .bar{width:60px; height:3px; background:#1B6CA8; margin:0 auto 6px;}
@media (max-width:900px){
  .fp-hero-grid{grid-template-columns:1fr !important;}
  .fp-hero-grid > div:first-child{padding:34px 24px 30px;}
  .fp-photo{min-height:240px;}
}

/* 学び詳細：中カテゴリ見出し（ネイビー帯＋ゴールド線＋下線） */
.ld-gttl{display:block !important; position:relative; padding:0 0 15px 78px !important;
  border-bottom:1px solid var(--line) !important; margin-bottom:11px !important; min-height:56px;}
.ld-gttl::before{content:""; position:absolute; left:0; top:0; height:56px; width:56px; background:var(--h-navy);}
.ld-gttl::after{content:""; position:absolute; left:56px; top:0; height:56px; width:2px; background:var(--h-gold);}
.ld-gnum{position:absolute !important; left:0; top:0; width:56px; height:56px;
  display:flex; align-items:center; justify-content:center; z-index:2;
  font-family:"Cormorant Garamond",Georgia,serif; font-size:20px !important; font-weight:700 !important;
  color:var(--h-gold-l) !important;}
.ld-gttl h3{padding-top:15px; font-size:19px !important;}
@media (max-width:640px){
  .ld-gttl{padding-left:64px !important;}
  .ld-gttl::before{width:46px; height:48px;} .ld-gttl::after{left:46px; height:48px;}
  .ld-gnum{width:46px; height:48px; font-size:17px !important;}
  .ld-gttl h3{padding-top:12px; font-size:17px !important;}
}

/* ============ トンマナ統一：会社情報 ============ */
#page-about .about-hero{background:#fff !important; color:var(--h-navy) !important;
  border-bottom:1px solid var(--line) !important; padding:52px 40px 46px !important; text-align:center;}
#page-about .about-hero::before,#page-about .about-hero::after{display:none !important;}
#page-about .about-hero .tag{font-family:"Cormorant Garamond",Georgia,serif !important; font-size:12px !important;
  letter-spacing:.42em !important; color:var(--h-green) !important; font-weight:600 !important;
  background:none !important; border:0 !important; padding:0 !important; margin-bottom:13px !important; display:block !important;}
#page-about .about-hero h1{font-family:"Noto Serif JP",serif !important; font-size:30px !important;
  font-weight:700 !important; color:var(--h-navy) !important; margin-bottom:12px !important;}
#page-about .about-hero .en{font-family:"Cormorant Garamond",Georgia,serif !important; font-size:13px !important;
  letter-spacing:.2em !important; color:var(--mute) !important;}
#page-about .about-hero p{color:var(--sub) !important;}

#page-about .about-section{background:#fff !important; padding:66px 40px 62px !important;}
#page-about .about-section.alt{background:var(--cream) !important; position:relative; overflow:hidden;}
#page-about .about-section.alt::before{content:""; position:absolute; left:0; top:0; bottom:0; width:60px; background:var(--h-navy);}
#page-about .about-section.alt::after{content:""; position:absolute; left:60px; top:0; bottom:0; width:2px; background:var(--h-gold);}
#page-about .about-section.alt > *{position:relative; z-index:1; padding-left:56px;}
#page-about .about-section .section-label,#page-about .section-label{
  font-family:"Cormorant Garamond",Georgia,serif !important; font-size:12px !important;
  letter-spacing:.42em !important; color:var(--h-green) !important; font-weight:600 !important;
  background:none !important; border:0 !important; padding:0 !important; display:block !important; margin-bottom:11px !important;}
#page-about .section-title,#page-about h2{font-family:"Noto Serif JP",serif !important;
  color:var(--h-navy) !important; letter-spacing:.02em !important;}

/* ============ トンマナ統一：Insights ============ */
#page-insights .hero-fv{border-bottom:1px solid var(--line);}
#page-insights .ins-wrap{background:#fff;}
#page-insights .cat-columns{background:#fff; padding-top:8px;}
#page-insights .heb{font-family:"Cormorant Garamond",Georgia,serif !important; letter-spacing:.42em !important;}
#page-insights h1{font-family:"Noto Serif JP",serif !important;}
#page-insights .cat-col{border:1px solid var(--line); border-radius:4px; overflow:hidden; background:#fff;
  transition:all .35s cubic-bezier(.16,1,.3,1);}
#page-insights .cat-col:hover{transform:translateY(-3px); box-shadow:0 16px 34px rgba(13,35,64,.1);}
#page-insights .cc h2{font-family:"Noto Serif JP",serif !important;}
#page-insights .ceb{font-family:"Cormorant Garamond",Georgia,serif !important; letter-spacing:.4em !important;}
#page-insights .press-strip{margin-top:26px;}
#page-insights .col-foot{border-top:1px solid var(--line-soft);}
#page-insights .col-foot a{font-weight:700; letter-spacing:.05em;}
/* Insightsトップのセクション見出しを追加 */
#page-insights .ins-sect-head{max-width:1400px; margin:0 auto; padding:46px 40px 10px; text-align:center;}
#page-insights .ins-sect-head .eb{font-family:"Cormorant Garamond",Georgia,serif; font-size:12px;
  letter-spacing:.42em; color:var(--h-green); font-weight:600; margin-bottom:11px;}
#page-insights .ins-sect-head h2{font-family:"Noto Serif JP",serif; font-size:25px; font-weight:700;
  color:var(--h-navy); letter-spacing:.02em;}
#page-insights .ins-sect-head p{font-size:13px; color:var(--sub); line-height:1.95; margin-top:12px;}

/* 学長ページ：追加セクション */
.fp-sns{background:#fff; padding:50px 48px 54px; border-top:1px solid var(--line);}
.fp-sns-in{max-width:820px; margin:0 auto;}
.fp-sns-grid{display:flex; gap:12px; flex-wrap:wrap;}
.fp-sns-btn{display:inline-flex; align-items:center; gap:10px; padding:13px 24px; border:1px solid var(--line);
  border-radius:3px; font-size:12.5px; font-weight:700; color:var(--h-navy); text-decoration:none;
  background:#fff; transition:all .28s;}
.fp-sns-btn:hover{border-color:var(--h-navy); background:var(--h-navy); color:#fff;}
.fp-serial{background:var(--cream); padding:54px 48px 58px; position:relative; overflow:hidden;}
.fp-serial::before{content:""; position:absolute; left:0; top:0; bottom:0; width:60px; background:var(--h-navy);}
.fp-serial::after{content:""; position:absolute; left:60px; top:0; bottom:0; width:2px; background:var(--h-gold);}
.fp-serial-in{position:relative; z-index:1; max-width:900px; margin:0 auto; padding-left:56px;}
.fp-serial-list{display:grid; gap:12px;}
.fp-serial-card{background:#fff; border:1px solid var(--line); border-radius:4px; padding:19px 22px;
  text-decoration:none; color:inherit; display:block; transition:all .3s;}
.fp-serial-card:hover{border-color:var(--h-gold); transform:translateX(4px); box-shadow:0 10px 24px rgba(13,35,64,.09);}
.fp-serial-card .m{font-size:11px; font-weight:700; color:var(--h-green); letter-spacing:.06em; margin-bottom:6px;}
.fp-serial-card .t{font-size:14.5px; font-weight:700; color:var(--h-navy); margin-bottom:7px; line-height:1.5;}
.fp-serial-card .d{font-size:11.5px; color:var(--sub); line-height:1.8;}
.fp-books{background:#fff; padding:54px 48px 60px;}
.fp-books-in{max-width:1200px; margin:0 auto;}
.fp-books-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:12px;}
.fp-book{background:#fff; border:1px solid var(--line); border-radius:3px; overflow:hidden;
  text-decoration:none; color:inherit; display:flex; flex-direction:column; transition:all .3s;}
.fp-book:hover{border-color:var(--h-gold); transform:translateY(-3px); box-shadow:0 12px 26px rgba(13,35,64,.1);}
.fp-book .cov{width:100%; aspect-ratio:3/4; background:linear-gradient(150deg,#EEF1F5,#E2E7EE);
  display:flex; align-items:center; justify-content:center; padding:14px; text-align:center;}
.fp-book .cov span{font-size:10px; color:#8FA0B3; line-height:1.7;}
.fp-book .cov img{width:100%; height:100%; object-fit:contain; display:block;}

/* ===== 殿堂一覧の見出し ===== */
.hof-listhead{text-align:center; padding:64px 20px 6px; max-width:760px; margin:0 auto;}
.hof-listhead .lbl{font-size:10px; letter-spacing:5.5px; font-weight:700;
  color:#C9A24D; margin-bottom:13px;}
.hof-listhead h2{font-size:clamp(20px,2.2vw,28px); font-weight:700; color:#0D2340;
  letter-spacing:.05em; margin:0 0 16px; position:relative;
  display:inline-block; padding-bottom:15px;}
.hof-listhead h2::after{content:''; position:absolute; left:50%; bottom:0;
  transform:translateX(-50%); width:52px; height:2px;
  background:linear-gradient(90deg,rgba(201,162,77,0),#C9A24D,rgba(201,162,77,0));}
.hof-listhead p{font-size:13px; line-height:1.95; color:#6B7C8D; margin:0;}
@media (max-width:640px){
  .hof-listhead{padding:44px 18px 4px;}
  .hof-listhead p{font-size:12px;}
}


/* ============================================================
   「起業の聖地」とは（画像背景セクション）
   ============================================================ */
.seichi{position:relative; min-height:600px; overflow:hidden; background:#0A0C10;
  display:flex; align-items:center;}
.seichi-bg{position:absolute; inset:0;
  background:url('../images/09_hero/hof_seichi.jpg') center/cover no-repeat;}
.seichi-shade{position:absolute; inset:0;
  background:
    linear-gradient(100deg, rgba(8,11,16,.10) 0%, rgba(8,11,16,.30) 34%,
                    rgba(8,11,16,.86) 56%, rgba(8,11,16,.96) 100%),
    linear-gradient(180deg, rgba(8,11,16,.5) 0%, rgba(8,11,16,0) 26%,
                    rgba(8,11,16,0) 70%, rgba(8,11,16,.6) 100%);}
.seichi-in{position:relative; z-index:2; width:100%; max-width:1240px;
  margin:0 auto; padding:82px 44px;
  display:grid; grid-template-columns:1fr 1fr;}
.seichi-copy{grid-column:2; color:#fff;}
.seichi-label{font-size:10px; letter-spacing:5.5px; font-weight:600;
  color:#E0C889; margin-bottom:14px;}
.seichi-copy h2{font-size:clamp(22px,2.3vw,31px); font-weight:700;
  letter-spacing:.06em; margin:0 0 22px; color:#fff;
  position:relative; padding-bottom:17px;}
.seichi-copy h2::after{content:''; position:absolute; left:0; bottom:0;
  width:46px; height:2px;
  background:linear-gradient(90deg,#E0C889,rgba(224,200,137,0));}
.seichi-copy p{font-size:13.5px; line-height:2.15;
  color:rgba(255,255,255,.8); margin:0 0 15px;}
.seichi-copy p strong{color:#E0C889; font-weight:700;}
.seichi-stats{display:flex; gap:30px; margin-top:30px; padding-top:24px;
  border-top:1px solid rgba(255,255,255,.13);}
.seichi-stats .s{display:flex; flex-direction:column; gap:5px;}
.seichi-stats b{font-size:clamp(21px,2.1vw,28px); font-weight:700; color:#E0C889;
  letter-spacing:.02em; line-height:1;}
.seichi-stats b i{font-size:11.5px; font-style:normal; font-weight:600;
  color:rgba(224,200,137,.72); margin-left:3px;}
.seichi-stats span{font-size:10.5px; color:rgba(255,255,255,.5);
  letter-spacing:1.4px;}

@media (max-width:900px){
  .seichi{min-height:auto;}
  .seichi-in{grid-template-columns:1fr; padding:0;}
  .seichi-copy{grid-column:1; padding:300px 26px 52px;}
  .seichi-shade{background:
    linear-gradient(180deg, rgba(8,11,16,.15) 0%, rgba(8,11,16,.35) 30%,
                    rgba(8,11,16,.93) 52%, rgba(8,11,16,.98) 100%);}
  .seichi-bg{background-position:center 22%;}
  .seichi-stats{gap:20px; flex-wrap:wrap;}
}

/* 一覧側の背景をFVと繋げる */
.hof-body{background:#F5F3EE;}
.hof-note{color:#8FA0B3;}


/* ============================================================
   起業の殿堂 FV：聖地の部屋（パノラマ／プレート壁）
   ============================================================ */
.hof-room{position:relative; width:100%; aspect-ratio:1672/941;
  min-height:520px; max-height:88vh; overflow:hidden; background:#0A0C0F;
  perspective:1400px; perspective-origin:50% 46%;}
.hof-room-bg{position:absolute; inset:0;
  background:url('../images/09_hero/hof_room.jpg') center/cover no-repeat;
  transform:scale(1.02);}
.hof-room-vignette{position:absolute; inset:0; pointer-events:none; z-index:4;
  background:
    radial-gradient(120% 85% at 50% 44%, rgba(0,0,0,0) 34%, rgba(6,9,14,.62) 100%),
    linear-gradient(180deg, rgba(6,9,14,.55) 0%, rgba(6,9,14,0) 22%,
                    rgba(6,9,14,0) 62%, rgba(6,9,14,.82) 100%);}

/* --- 壁面（プレートを敷く領域。実測 X:14-86% / Y:20-76%） --- */
.hof-wall{position:absolute; left:17%; right:17%; top:25%; bottom:31%;
  z-index:2; display:flex; flex-direction:column; justify-content:center;
  gap:3%;}
.hof-wall-row{display:flex; justify-content:center; gap:1.6%; height:48.5%;}

/* --- プレート1枚 --- */
.plq{position:relative; width:8.6%; height:100%; cursor:pointer;
  border-radius:2px; overflow:hidden; text-decoration:none;
  background:linear-gradient(152deg,#9C7B3C 0%,#C8A659 22%,#E0C889 42%,
                             #B9954C 64%,#8E6F35 100%);
  box-shadow:0 5px 14px rgba(0,0,0,.55), 0 1px 0 rgba(255,255,255,.14) inset,
             0 0 0 1px rgba(0,0,0,.32);
  transition:transform .42s cubic-bezier(.22,.9,.28,1), box-shadow .42s, filter .42s;
  filter:brightness(.82) saturate(.9);
  transform-style:preserve-3d;}
.plq::after{content:''; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(118deg, rgba(255,255,255,.34) 0%,
    rgba(255,255,255,0) 34%, rgba(255,255,255,0) 66%, rgba(255,255,255,.16) 100%);}
.plq-ph{position:absolute; left:8%; right:8%; top:6%; aspect-ratio:1/1;
  background-size:cover; background-position:center center;
  background-color:#2A2E35;
  border:1px solid rgba(232,208,150,.85);
  box-shadow:0 1px 4px rgba(0,0,0,.4);}
.plq-ph::after{content:''; position:absolute; inset:0;
  background:linear-gradient(160deg, rgba(255,255,255,.10), transparent 46%);}
.plq-nm{position:absolute; left:5%; right:5%; top:auto; bottom:26%;
  font-size:clamp(6px,.62vw,9.5px); font-weight:700; color:#2B2013;
  text-align:center; line-height:1.25; letter-spacing:.02em;
  text-shadow:0 1px 0 rgba(255,255,255,.28);}
.plq-cp{position:absolute; left:4%; right:4%; top:auto; bottom:12%;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  font-size:clamp(5px,.46vw,7.5px); color:#4B3A20; text-align:center;
  line-height:1.3; overflow:hidden; max-height:2.6em;}
.plq-yr{position:absolute; left:4%; right:4%; bottom:4%;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  font-size:clamp(4.5px,.42vw,7px); color:#5C4728; text-align:center;
  letter-spacing:.04em;}

.hof-wall:hover .plq{filter:brightness(.6) saturate(.78);}
.plq:hover{filter:brightness(1.14) saturate(1.06) !important;
  transform:translateZ(26px) translateY(-4px);
  box-shadow:0 20px 42px rgba(0,0,0,.68), 0 0 26px rgba(224,200,137,.34),
             0 1px 0 rgba(255,255,255,.32) inset, 0 0 0 1px rgba(0,0,0,.3);
  z-index:6;}

/* --- ホバー時のネームプレート --- */
.plq-pop{position:absolute; left:50%; bottom:calc(100% + 11px);
  transform:translateX(-50%) translateY(5px); opacity:0; pointer-events:none;
  background:rgba(10,14,20,.94); border:1px solid rgba(224,200,137,.42);
  border-radius:3px; padding:8px 13px; white-space:nowrap; z-index:8;
  transition:opacity .3s, transform .3s;
  box-shadow:0 10px 26px rgba(0,0,0,.6);}
.plq:hover .plq-pop{opacity:1; transform:translateX(-50%) translateY(0);}
.plq-pop .n{font-size:13px; font-weight:700; color:#F0E4C4; letter-spacing:.04em;}
.plq-pop .c{font-size:10.5px; color:#B9C4D0; margin-top:2px;}
.plq-pop .i{font-size:10px; color:#E0C889; margin-top:4px; letter-spacing:.05em;}

/* --- タイトル --- */
.hof-room-copy{position:absolute; left:0; right:0; bottom:7.5%; z-index:5;
  text-align:center; color:#fff; pointer-events:none;}
.hof-room-copy .label{font-size:10.5px; letter-spacing:6px; font-weight:600;
  color:#E0C889; margin-bottom:11px;}
.hof-room-copy h1{font-size:clamp(28px,3.5vw,46px); font-weight:700;
  letter-spacing:.14em; margin:0 0 10px;
  text-shadow:0 3px 26px rgba(0,0,0,.8);}
.hof-room-copy .en{font-size:clamp(8.5px,.78vw,11.5px); letter-spacing:3.6px;
  color:rgba(255,255,255,.62);}

.hof-room-scroll{position:absolute; left:50%; transform:translateX(-50%);
  bottom:14px; z-index:5; font-size:9px; letter-spacing:2.6px;
  color:rgba(255,255,255,.42); display:flex; flex-direction:column;
  align-items:center; gap:6px;}
.hof-room-scroll span{width:1px; height:26px;
  background:linear-gradient(180deg,rgba(224,200,137,.75),transparent);}

/* --- リード文 --- */
.hof-lead{background:#0D1117; padding:52px 40px 56px;}
.hof-lead-in{max-width:820px; margin:0 auto; text-align:center;}
.hof-lead p{font-size:14px; line-height:2.1; color:rgba(255,255,255,.76); margin:0;}

/* --- レスポンシブ --- */
@media (max-width:900px){
  .hof-room{aspect-ratio:4/3; max-height:none; min-height:430px;}
  .hof-wall{left:8%; right:8%; top:19%; bottom:30%; gap:1.6%;}
  .hof-wall-row{gap:1.3%;}
  .plq{width:12.6%;}
  .plq-cp,.plq-yr{display:none;}
  .plq-nm{top:63%; font-size:7px;}
}
@media (max-width:560px){
  .hof-room{aspect-ratio:3/4; min-height:400px;}
  .hof-wall{left:6%; right:6%; top:17%; bottom:32%;}
  .plq{width:17.5%;}
  .plq-nm{display:none;}
  .hof-lead{padding:40px 22px 44px;}
  .hof-lead p{font-size:12.5px; line-height:2;}
}


/* ===== 学長ページ 書籍カルーセル ===== */
.bk-wrap{position:relative; margin:0 -6px;}
.bk-track{display:flex; gap:14px; overflow-x:auto; scroll-behavior:smooth;
  padding:4px 6px 10px; scroll-snap-type:x mandatory;
  scrollbar-width:none; -ms-overflow-style:none;}
.bk-track::-webkit-scrollbar{display:none;}
.bk-item{flex:0 0 138px; scroll-snap-align:start; text-decoration:none; color:inherit;
  display:flex; flex-direction:column;}
.bk-cov{width:100%; aspect-ratio:5/7; background:#F2F5F8; border:1px solid rgba(13,35,64,.08);
  border-radius:3px; overflow:hidden; display:flex; align-items:center; justify-content:center;
  transition:box-shadow .3s, transform .3s, border-color .3s;}
.bk-cov img{width:100%; height:100%; object-fit:contain; display:block;}
.bk-item:hover .bk-cov{transform:translateY(-4px); box-shadow:0 10px 24px rgba(13,35,64,.14);
  border-color:rgba(201,162,77,.55);}
.bk-t{font-size:11.5px; font-weight:700; color:#0D2340; line-height:1.5;
  margin-top:10px;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;}
.bk-y{font-size:10.5px; color:#A9B6C4; margin-top:4px;}
.bk-a{font-size:10.5px; font-weight:700; color:#C9A24D; margin-top:5px;}
.bk-item:hover .bk-a{color:#00A0E9;}
.bk-nav{position:absolute; top:96px; z-index:3; width:38px; height:38px; border-radius:50%;
  background:#fff; border:1px solid rgba(13,35,64,.12); color:#0D2340; cursor:pointer;
  display:flex; align-items:center; justify-content:center; padding:0;
  box-shadow:0 3px 12px rgba(13,35,64,.13); transition:all .25s;}
.bk-nav svg{width:17px; height:17px;}
.bk-nav:hover{background:#0D2340; border-color:#0D2340; color:#fff;}
.bk-nav.prev{left:-14px;}
.bk-nav.next{right:-14px;}
.bk-nav[disabled]{opacity:.25; cursor:default;}
.bk-nav[disabled]:hover{background:#fff; color:#0D2340; border-color:rgba(13,35,64,.12);}
.bk-dots{display:flex; justify-content:center; gap:6px; margin-top:14px;}
.bk-dots i{width:6px; height:6px; border-radius:50%; background:rgba(13,35,64,.16);
  cursor:pointer; transition:all .25s;}
.bk-dots i.on{background:#C9A24D; width:18px; border-radius:3px;}
@media (max-width:640px){
  .bk-item{flex:0 0 118px;}
  .bk-nav{top:78px; width:32px; height:32px;}
  .bk-nav.prev{left:-8px;} .bk-nav.next{right:-8px;}
}


/* ===== 起業の殿堂 カード（v14 リデザイン） ===== */
.hof-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-top:30px;}
.hof2-card{display:grid; grid-template-columns:186px 1fr; gap:0;
  min-height:279px;
  background:#fff; border:1px solid rgba(13,35,64,.09); border-radius:6px;
  overflow:hidden; transition:box-shadow .3s, transform .3s, border-color .3s;
  position:relative;}
.hof2-card::before{content:''; position:absolute; left:0; top:0; bottom:0; width:3px;
  background:linear-gradient(180deg,#C9A24D,#E3C87F); opacity:0; transition:opacity .3s; z-index:2;}
.hof2-card:hover{box-shadow:0 14px 34px rgba(13,35,64,.11); transform:translateY(-3px);
  border-color:rgba(201,162,77,.5);}
.hof2-card:hover::before{opacity:1;}
.hof2-card.hof2-flash{border-color:#C9A24D;
  box-shadow:0 0 0 3px rgba(201,162,77,.28), 0 14px 34px rgba(13,35,64,.16);}
.hof2-card.hof2-flash::before{opacity:1;}
.hof2-photo{position:relative; background:#EEF1F5; overflow:hidden;}
.hof2-photo img{width:100%; height:100%; object-fit:cover; object-position:center top;
  display:block; transition:transform .5s;}
.hof2-card:hover .hof2-photo img{transform:scale(1.04);}
.hof2-info{padding:20px 22px 18px; min-width:0;}
.hof2-company{display:block; font-size:13px; font-weight:700; color:#0D2340;
  text-decoration:none; line-height:1.5; margin-bottom:3px;}
a.hof2-company:hover{color:#00A0E9;}
.hof2-company .ex{font-size:10px; color:#8FA0B3;}
.hof2-title{font-size:11px; color:#8FA0B3; line-height:1.6; margin-bottom:9px;}
.hof2-name{font-size:19px; font-weight:700; color:#0D2340; letter-spacing:.5px; line-height:1.3;}
.hof2-en{font-size:11px; color:#A9B6C4; letter-spacing:.6px; margin-top:2px;}
.hof2-meta{margin-top:13px; padding-top:12px; border-top:1px solid rgba(13,35,64,.08);}
.hof2-meta .row{display:flex; gap:10px; font-size:11.5px; line-height:1.75; margin-bottom:4px;}
.hof2-meta .row:last-child{margin-bottom:0;}
.hof2-meta .k{flex:0 0 62px; color:#A9B6C4; font-weight:600; letter-spacing:.3px;}
.hof2-meta .v{flex:1; color:#4A5B6D; min-width:0;}
.hof2-meta .ipo .k{color:#C9A24D;}
.hof2-meta .ipo .v{color:#0D2340; font-weight:700;}
.hof2-prog{color:#4A5B6D; text-decoration:none; border-bottom:1px solid rgba(13,35,64,.15);}
.hof2-prog:hover{color:#00A0E9; border-bottom-color:#00A0E9;}
.hof2-prog.none{border-bottom:none;}
.hof2-story{display:inline-block; margin-top:12px; font-size:11.5px; font-weight:700;
  color:#0F6E56; cursor:pointer; text-decoration:none;}
.hof2-story:hover{color:#00A0E9;}
@media (max-width:1024px){ .hof-grid{grid-template-columns:1fr;} }
@media (max-width:560px){
  .hof2-card{grid-template-columns:1fr;}
  .hof2-photo{height:230px;}
  .hof2-photo img{object-position:center 22%;}
}


/* ===== お問い合わせ：同意ボックス（現行踏襲） ===== */



/* ===== 採用：選考の流れ ===== */
.flow-block{margin-top:52px; padding-top:44px; border-top:1px solid rgba(255,255,255,.14);}
.flow-h{font-size:20px; font-weight:700; color:#fff; letter-spacing:.05em; margin:0 0 26px;}
.flow-steps{display:grid; grid-template-columns:repeat(4,1fr); gap:12px;}
.fs{position:relative; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14);
  border-radius:5px; padding:18px 16px;}
.fs .n{display:block; font-size:11px; font-weight:700; color:#E0C889; letter-spacing:.14em;}
.fs .t{display:block; font-size:15px; font-weight:700; color:#fff; margin-top:8px;}
.fs .s{display:block; font-size:11px; color:rgba(255,255,255,.55); margin-top:5px;}
@media (max-width:900px){ .flow-steps{grid-template-columns:1fr 1fr;} }



/* ===== トップ：起業の殿堂バナー ===== */
.hf-banner{position:relative; display:block; margin-top:30px; border-radius:8px;
  overflow:hidden; cursor:pointer; min-height:230px; background:#0A0C10;
  text-decoration:none; transition:box-shadow .35s, transform .35s;}
.hf-banner:hover{transform:translateY(-3px); box-shadow:0 20px 44px rgba(10,12,16,.3);}
.hf-banner-bg{position:absolute; inset:0;
  background:url('../images/09_hero/hof_seichi.jpg') center/cover no-repeat; transition:transform .6s;}
.hf-banner:hover .hf-banner-bg{transform:scale(1.03);}
.hf-banner-bg::after{content:''; position:absolute; inset:0;
  background:linear-gradient(96deg, rgba(8,11,16,.25) 0%, rgba(8,11,16,.55) 44%, rgba(8,11,16,.88) 100%);}
.hf-banner-in{position:relative; z-index:2; min-height:230px; display:flex;
  flex-direction:column; justify-content:center; align-items:flex-end;
  text-align:right; padding:40px 44px; gap:10px;}
.hf-banner .lb{font-size:10px; letter-spacing:5px; font-weight:700; color:#E0C889;}
.hf-banner .tt{font-size:clamp(19px,2.1vw,27px); font-weight:700; color:#fff;
  letter-spacing:.05em; line-height:1.45;}
.hf-banner .cta{font-size:12.5px; font-weight:700; color:#E0C889; margin-top:4px;}
@media(max-width:640px){
  .hf-banner-in{align-items:flex-start; text-align:left; padding:30px 24px;}
  .hf-banner-bg::after{background:linear-gradient(180deg, rgba(8,11,16,.5) 0%, rgba(8,11,16,.88) 100%);}
}


/* ===== メルマガ：画像つきレイアウト ===== */
.footer-newsletter-inner.nl2{max-width:940px !important;
  display:grid !important; grid-template-columns:1fr 1fr !important; gap:34px !important;
  align-items:center !important; text-align:left !important; padding:34px !important;}
.nl2-img{position:relative; aspect-ratio:4/3; border-radius:4px; overflow:hidden;
  background:#0E1B26 url('../images/11_learn/mailmag.jpg') center 42%/cover no-repeat;
  box-shadow:0 14px 34px rgba(0,0,0,.28);}
/* メルマガは緑の額縁で。写真の色みも緑寄りに寄せる */
.nl2-img::before{content:""; position:absolute; inset:0; z-index:1; mix-blend-mode:screen;
  background:linear-gradient(200deg, rgba(24,122,92,.34) 0%, rgba(24,122,92,.10) 46%, transparent 74%);}
.nl2-img::after{content:""; position:absolute; inset:10px; z-index:2; border-radius:2px;
  border:1px solid rgba(126,214,178,.55);}
.nl2-img .ph{font-size:10.5px; letter-spacing:2.6px; color:#9A9385;
  text-align:center; line-height:1.9; font-weight:700;}
.nl2-img .cap{font-size:10.5px; color:#9A9385; text-align:center;
  padding:0 20px; line-height:1.7;}
.nl2-text{text-align:left !important;}
.nl2-text .icon{margin:0 0 14px !important;}
.footer-newsletter-inner.nl2 h3{text-align:left !important;}
.footer-newsletter-inner.nl2 .sub,
.footer-newsletter-inner.nl2 .social-proof,
.footer-newsletter-inner.nl2 .note{text-align:left !important;}
@media(max-width:760px){
  .footer-newsletter-inner.nl2{grid-template-columns:1fr !important; gap:20px !important;
    text-align:center !important;}
  .nl2-text, .nl2-text .icon, .footer-newsletter-inner.nl2 h3,
  .footer-newsletter-inner.nl2 .sub, .footer-newsletter-inner.nl2 .social-proof,
  .footer-newsletter-inner.nl2 .note{text-align:center !important;}
  .nl2-text .icon{margin:0 auto 14px !important;}
  .nl2-img{aspect-ratio:16/9;}
}
/* ===== 委員会一覧 ===== */
.cm-sub{font-size:14px; font-weight:700; color:var(--h-navy); margin:26px 0 14px;
  padding-left:11px; border-left:3px solid #C9A24D; letter-spacing:.04em;}
.cm-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1px;
  background:var(--line); border:1px solid var(--line); border-radius:4px; overflow:hidden;}
.cm-item{background:#fff; padding:13px 16px;}
.cm-item .n{font-size:13.5px; font-weight:700; color:var(--h-navy); line-height:1.4;}
.cm-item .a{font-size:11.5px; color:#6B7C8D; line-height:1.6; margin-top:3px;}
@media(max-width:720px){ .cm-grid{grid-template-columns:1fr;} }

/* ===== 採用：社員紹介一覧 ===== */
.careers-interview{background:#F7F5F0; padding:80px 40px;}
.ci-inner{max-width:1120px; margin:0 auto;}
.ci-lead{font-size:14px; line-height:2; color:#5A6B7D; margin:0 0 38px;}
.ci-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.ci-card{display:flex; flex-direction:column; background:#fff; border-radius:6px;
  overflow:hidden; cursor:pointer; text-decoration:none;
  border:1px solid rgba(13,35,64,.07); transition:all .32s;}
.ci-card:hover{transform:translateY(-4px); box-shadow:0 16px 36px rgba(13,35,64,.12);
  border-color:rgba(201,162,77,.45);}
.ci-card .ph{display:block; width:100%; aspect-ratio:6/7;
  background-size:cover; background-position:center 18%; background-color:#E8EDF2;}
.ci-card .tx{display:block; padding:20px 22px 22px;}
.ci-card .dp{display:block; font-size:11px; color:#C9A24D; font-weight:700;
  letter-spacing:.06em; margin-bottom:8px;}
.ci-card .nm{display:block; font-size:19px; font-weight:700; color:#0D2340;
  letter-spacing:.04em; line-height:1.3;}
.ci-card .nm em{display:block; font-style:normal; font-size:11px; color:#A9B6C4;
  letter-spacing:.06em; margin-top:3px;}
.ci-card .ct{display:block; font-size:12.5px; line-height:1.85; color:#5A6B7D;
  margin-top:13px; padding-top:13px; border-top:1px solid rgba(13,35,64,.08);}
.ci-card .rd{display:block; font-size:11.5px; font-weight:700; color:#0F6E56; margin-top:14px;}
.ci-card:hover .rd{color:#00A0E9;}

/* ===== 社員紹介：記事ページ ===== */
.sf-hero{position:relative; min-height:400px; display:flex; align-items:flex-end;
  overflow:hidden; background:#0D2340;}
.sf-hero-bg{position:absolute; inset:0; background-size:cover; background-position:center;}
.sf-hero-bg::after{content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(13,35,64,.15) 0%, rgba(13,35,64,.28) 46%, rgba(13,35,64,.86) 100%);}
.sf-hero-in{position:relative; z-index:2; width:100%; max-width:1120px;
  margin:0 auto; padding:0 40px 46px; color:#fff;}
.sf-hero-in .lb{font-size:10px; letter-spacing:5px; color:#E0C889; font-weight:700;}
.sf-hero-in .dept{font-size:12.5px; color:rgba(255,255,255,.82); margin:14px 0 8px;}
.sf-hero-in h1{font-size:clamp(28px,3.2vw,40px); font-weight:700;
  letter-spacing:.08em; margin:0; line-height:1.25;}
.sf-hero-in .en{font-size:11.5px; color:rgba(255,255,255,.6);
  letter-spacing:.1em; margin-top:6px;}
.sf-hero-in .catch{font-size:15px; line-height:1.9; color:rgba(255,255,255,.94);
  margin:20px 0 0; max-width:680px; font-weight:500;}

.sf-body{background:#fff; padding:64px 40px 20px;}
.sf-in{max-width:760px; margin:0 auto;}
.sf-sec{margin-bottom:46px;}
.sf-sec h2{font-size:19px; font-weight:700; color:#0D2340; letter-spacing:.04em;
  margin:0 0 18px; padding-left:14px; border-left:3px solid #C9A24D; line-height:1.5;}
.sf-sec p{font-size:14.5px; line-height:2.15; color:#3E4C5A; margin:0;}
.sf-img{width:100%; aspect-ratio:13/7; background-size:cover; background-position:center;
  border-radius:5px; margin-top:26px; background-color:#EEF1F5;}

.sf-next{background:#F7F5F0; padding:56px 40px 72px;}
.sf-next-in{max-width:900px; margin:0 auto; text-align:center;}
.sf-next-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:22px 0 34px;}
.sf-nx{display:flex; align-items:center; gap:15px; background:#fff; border-radius:5px;
  padding:14px 18px; cursor:pointer; text-decoration:none; text-align:left;
  border:1px solid rgba(13,35,64,.07); transition:all .28s;}
.sf-nx:hover{border-color:#C9A24D; box-shadow:0 8px 22px rgba(13,35,64,.1);}
.sf-nx .ph{width:52px; height:52px; border-radius:50%; flex:0 0 52px;
  background-size:cover; background-position:center 18%; background-color:#E8EDF2;}
.sf-nx .dp{display:block; font-size:10.5px; color:#8FA0B3;}
.sf-nx .nm{display:block; font-size:15px; font-weight:700; color:#0D2340; margin-top:3px;}
.sf-back{background:transparent; border:1px solid rgba(13,35,64,.24); color:#0D2340;
  font-size:13px; font-weight:700; padding:13px 34px; border-radius:3px;
  cursor:pointer; letter-spacing:.05em; transition:all .28s;}
.sf-back:hover{background:#0D2340; color:#fff; border-color:#0D2340;}

@media (max-width:900px){
  .ci-grid{grid-template-columns:1fr;}
  .careers-interview{padding:56px 22px;}
  .sf-hero{min-height:320px;}
  .sf-hero-in{padding:0 22px 34px;}
  .sf-body{padding:44px 22px 12px;}
  .sf-next{padding:40px 22px 56px;}
  .sf-next-grid{grid-template-columns:1fr;}
}

/* ===== お問い合わせ：学び案内ブロック ===== */
.cg-head{display:flex; align-items:center; gap:9px; margin-bottom:9px;}
.cg-head .ic{width:22px; height:22px; border-radius:50%; background:#EEF2F6;
  color:#4A5B6D; font-size:11px; font-weight:700; display:flex;
  align-items:center; justify-content:center; flex:0 0 22px;}
.cg-head .tt{font-size:14px; font-weight:700; color:var(--h-navy);}
.cg-lead{font-size:12px; color:#8FA0B3; line-height:1.75; margin:0 0 13px;}
.cg-grid{display:grid; grid-template-columns:1fr 1fr; gap:9px;}
.cg-card{display:flex; flex-direction:column; gap:3px; cursor:pointer;
  background:#fff; border:1px solid var(--line); border-radius:5px;
  padding:12px 13px; text-decoration:none; transition:all .22s;}
.cg-card:hover{border-color:#00A0E9; box-shadow:0 3px 12px rgba(13,35,64,.09);
  transform:translateY(-1px);}
.cg-card .t{font-size:12.5px; font-weight:700; color:var(--h-navy); line-height:1.45;}
.cg-card .s{font-size:10.5px; color:#8FA0B3; line-height:1.55;}
.cg-card .c{font-size:11px; color:#00A0E9; font-weight:700; margin-top:5px;}
.cg-divider{height:1px; background:var(--line); margin:22px 0 20px;}
@media (max-width:520px){ .cg-grid{grid-template-columns:1fr;} }
.contact-agree-box{border:1px solid var(--line); border-radius:4px; background:#FAFBFC;
  padding:14px 15px; margin-top:6px;}
.contact-agree-title{font-size:12px; font-weight:700; color:var(--h-navy); margin:0 0 9px;}
.contact-agree-scroll{max-height:150px; overflow-y:auto; background:#fff;
  border:1px solid var(--line); border-radius:3px; padding:12px 13px;
  font-size:11px; line-height:1.85; color:#5A6B7D;}
.contact-agree-scroll p{margin:0 0 10px;}
.contact-agree-scroll p:last-child{margin-bottom:0;}
.contact-agree-scroll strong{color:var(--h-navy); font-weight:700;}
.contact-agree-scroll a{color:#00A0E9; text-decoration:underline;}

/* ===== 完了画面：入力内容の確認 ===== */
.contact-thanks-detail{margin:18px auto 0; max-width:420px; text-align:left;
  border:1px solid var(--line); border-radius:4px; overflow:hidden;}
.contact-thanks-detail .row{display:flex; border-bottom:1px solid var(--line);
  font-size:12px; line-height:1.6;}
.contact-thanks-detail .row:last-child{border-bottom:none;}
.contact-thanks-detail .k{flex:0 0 118px; background:#F6F8FA; color:#8FA0B3;
  padding:9px 11px; font-size:11px; font-weight:700;}
.contact-thanks-detail .v{flex:1; padding:9px 11px; color:var(--h-navy); font-weight:600;
  word-break:break-all;}

.fp-book .bi{padding:12px 13px 14px;}
.fp-book .bt{font-size:11.5px; font-weight:700; color:var(--h-navy); line-height:1.55; margin-bottom:6px;}
.fp-book .by{font-size:10px; color:var(--mute);}
.fp-book .ba{font-size:10px; font-weight:700; color:var(--h-gold); margin-top:7px; display:block;}
@media (max-width:1024px){ .fp-books-grid{grid-template-columns:repeat(3,1fr);} }
@media (max-width:640px){
  .fp-books-grid{grid-template-columns:repeat(2,1fr);}
  .fp-sns,.fp-serial,.fp-books{padding-left:20px; padding-right:20px;}
  .fp-serial-in{padding-left:44px;}
}


/* ============ Alumni記事（テストサイトのデザインを踏襲） ============ */

.al-metabar-in{max-width:1100px; margin:0 auto; display:flex; align-items:center; gap:16px; flex-wrap:wrap;}
.al-badge{background:var(--h-gold); color:#0B1B30; font-size:10.5px; font-weight:700;
  letter-spacing:.1em; padding:6px 13px; border-radius:2px; white-space:nowrap;}

.al-wrap{background:var(--h-navy); padding:0 32px 70px;}
.al-card{max-width:820px; margin:0 auto; background:#fff; border-radius:4px;
  padding:52px 60px 56px; box-shadow:0 20px 60px rgba(0,0,0,.2);}
.al-card > p{font-size:14px; line-height:2.05; color:#2A2A2A; margin-bottom:20px;}
.al-card h2{font-family:"Noto Serif JP",serif; font-size:18px; font-weight:700; color:var(--h-navy);
  line-height:1.6; margin:40px 0 16px; padding-left:14px; border-left:4px solid var(--h-gold);}
.al-quote{background:#FAF7F0; border-left:3px solid var(--h-gold); border-radius:0 3px 3px 0;
  padding:20px 24px 16px; margin:26px 0 28px;}
.al-quote p{font-size:13.5px; line-height:1.95; color:#333; margin-bottom:10px;}
.al-quote cite{display:block; font-size:11.5px; color:var(--mute); font-style:normal;}
.al-ph{background:repeating-linear-gradient(135deg,#F4F2ED,#F4F2ED 10px,#EFECE5 10px,#EFECE5 20px);
  border:1px dashed var(--line); border-radius:3px; padding:24px 22px; text-align:center;
  color:var(--mute); font-size:12px; line-height:1.9; margin-bottom:20px;}
.al-video{position:relative; width:100%; aspect-ratio:16/9; border-radius:4px 4px 0 0; overflow:hidden; background:#000;}
.al-video iframe{position:absolute; inset:0; width:100%; height:100%; border:0;}
.al-video-cap{background:var(--h-navy); color:#fff; font-size:11.5px; padding:11px 16px;
  border-radius:0 0 4px 4px; margin-bottom:8px;}
.al-video-cap span{color:rgba(255,255,255,.6); margin-left:10px; font-size:10.5px;}

.al-table{width:100%; border-collapse:collapse; margin-bottom:10px;}
.al-table th{background:#F7F6F2; border:1px solid var(--line); padding:12px 14px; text-align:left;
  font-size:12px; font-weight:700; color:var(--h-navy); width:130px; vertical-align:top; white-space:nowrap;}
.al-table td{border:1px solid var(--line); padding:12px 16px; font-size:12.5px; color:#333; line-height:1.85;}

.al-promo{border:1px solid var(--h-gold); border-radius:5px; background:#FFFDF7;
  padding:26px 28px 24px; margin-top:36px;}
.al-promo .t{font-size:15px; font-weight:700; color:var(--h-navy); margin-bottom:10px;}
.al-promo .d{font-size:12.5px; color:var(--sub); line-height:1.9; margin-bottom:18px;}
.al-promo .btn{display:inline-flex; align-items:center; gap:9px; padding:12px 24px;
  background:var(--h-navy); color:#fff; border-radius:3px; font-size:12px; font-weight:700;
  letter-spacing:.06em; text-decoration:none; transition:all .28s;}
.al-promo .btn:hover{background:var(--h-gold); color:#0B1B30;}

.al-foot{max-width:820px; margin:0 auto; padding:36px 0 0;}
.al-foot h3{font-size:13px; font-weight:700; color:rgba(255,255,255,.85); letter-spacing:.06em; margin-bottom:14px;}
.al-rel{display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-bottom:28px;}
.al-rc{background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); border-radius:4px;
  padding:16px 18px; cursor:pointer; transition:all .28s;}
.al-rc:hover{background:rgba(196,163,90,.14); border-color:var(--h-gold); transform:translateY(-2px);}
.al-rc .c{font-size:10.5px; font-weight:700; color:var(--h-gold-l); margin-bottom:6px;}
.al-rc .t{font-size:12.5px; color:#fff; line-height:1.6;}
.al-cta{display:flex; gap:12px; flex-wrap:wrap;}
.al-btn{flex:1; min-width:200px; padding:14px; text-align:center; border-radius:3px;
  font-size:12.5px; font-weight:700; cursor:pointer; text-decoration:none; transition:all .28s; letter-spacing:.05em;}
.al-btn.sec{background:transparent; border:1px solid rgba(255,255,255,.4); color:#fff;}
.al-btn.sec:hover{border-color:var(--h-gold); color:var(--h-gold-l);}
.al-btn.pri{background:var(--h-gold); border:1px solid var(--h-gold); color:#0B1B30;}
.al-btn.pri:hover{background:var(--h-gold-l); border-color:var(--h-gold-l);}

@media (max-width:768px){
  .al-wrap{padding:0 18px 50px;}
  .al-card{padding:32px 24px 34px;}
  .al-rel{grid-template-columns:1fr;}
  .al-table th{width:96px; font-size:11px; padding:10px;}
  .al-table td{font-size:11.5px; padding:10px 12px;}
}

/* ===== トップ新着：5枠グリッド＋同期カルーセル（v20） ===== */
.ng-wrap{max-width:1300px; margin:0 auto;}
.ng-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
.ng-cell{--ngc:#0D2340; background:#fff; border:1px solid var(--line); border-radius:5px;
  padding:16px 16px 12px; display:flex; flex-direction:column; overflow:hidden;}
.ng-cell.c-seminar{--ngc:#00896C;}
.ng-cell.c-event  {--ngc:#B07A2A;}
.ng-cell.c-ohmae  {--ngc:#C4A35A;}
.ng-cell.c-alumni {--ngc:#A05A7E;}
.ng-cell.c-people {--ngc:#1E3A5F;}
.ng-head{display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:11px;}
.ng-cat{display:inline-block; font-size:10.5px; font-weight:700; letter-spacing:.08em; color:#fff;
  background:var(--ngc); padding:4px 11px; border-radius:2px; line-height:1.5;}
.ng-count{font-size:10.5px; color:var(--mute); letter-spacing:.06em; flex:0 0 auto;}
.ng-count .ng-i{color:var(--ngc); font-weight:700;}
.ng-slides{position:relative; flex:1 1 auto;}
.ng-slide{display:none; text-decoration:none; color:inherit; cursor:pointer;}
.ng-slide.is-on{display:block; animation:ngFade .45s ease;}
@keyframes ngFade{from{opacity:0; transform:translateY(5px);} to{opacity:1; transform:none;}}
.ng-ph{position:relative; width:100%; aspect-ratio:16/9; background-size:cover; background-position:center;
  border-radius:3px; background-color:#EEF1F5; margin-bottom:11px;}
.ng-badge{position:absolute; top:8px; left:8px; font-size:10px; font-weight:700; color:#fff;
  background:var(--ngc); padding:3px 9px; border-radius:2px; letter-spacing:.04em;}
.ng-ttl{font-size:13.5px; font-weight:700; line-height:1.65; color:var(--navy); margin:0 0 8px;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;}
.ng-cell:hover .ng-ttl{color:var(--ngc);}
.ng-meta{display:flex; align-items:baseline; justify-content:space-between; gap:10px;
  font-size:11px; color:var(--mute); line-height:1.6;}
.ng-meta span:first-child{overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.ng-date{flex:0 0 auto;}
.ng-more{display:block; margin-top:12px; padding-top:10px; border-top:1px solid var(--line);
  font-size:11.5px; font-weight:700; color:var(--ngc); text-decoration:none; cursor:pointer;}
.ng-more:hover{opacity:.72;}
/* 空き枠 */
.ng-all-cell{background:linear-gradient(155deg,#0D2340,#1E3A5F); border-color:transparent;
  justify-content:center; text-decoration:none; transition:all .25s;}
.ng-all-cell:hover{transform:translateY(-2px); box-shadow:0 12px 26px rgba(13,35,64,.2);}
.ng-all-in{text-align:center; padding:14px 0;}
.ng-all-eb{font-family:"Cormorant Garamond",Georgia,serif; font-size:11px; letter-spacing:.32em;
  color:#E8CB80; font-weight:600; margin-bottom:9px;}
.ng-all-tx{font-size:15px; font-weight:700; color:#fff; letter-spacing:.04em;}
.ng-all-ar{font-size:18px; color:#E8CB80; margin-top:10px;}
/* プレスリリース細帯 */
.ng-press{display:flex; align-items:flex-start; gap:22px; margin-top:18px; padding:14px 18px;
  background:#fff; border:1px solid var(--line); border-radius:5px;}
.ngp-label{flex:0 0 168px; font-family:"Cormorant Garamond",Georgia,serif; font-size:11px;
  letter-spacing:.24em; color:#8B6014; font-weight:700; padding-top:3px;}
.ngp-label span{display:block; font-family:inherit; font-size:10px; letter-spacing:.02em;
  color:var(--mute); font-weight:400; margin-top:4px;}
.ngp-list{flex:1 1 auto; list-style:none; margin:0; padding:0;}
.ngp-list li + li{border-top:1px dotted var(--line);}
.ngp-list a{display:flex; align-items:baseline; gap:14px; padding:7px 0; text-decoration:none; color:inherit;}
.ngp-list a:hover .ngp-t{color:#8B6014; text-decoration:underline;}
.ngp-d{flex:0 0 78px; font-size:11px; color:var(--mute);}
.ngp-t{flex:1 1 auto; font-size:12.5px; line-height:1.65; color:var(--navy);}
.ngp-e{flex:0 0 auto; font-size:11px; color:var(--mute);}
@media (max-width:980px){
  .ng-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:640px){
  .ng-grid{grid-template-columns:1fr; gap:14px;}
  .ng-press{flex-direction:column; gap:10px;}
  .ngp-label{flex:none;}
  .ngp-d{flex:0 0 70px;}
}

/* ===================== 4つの学び：∞ゾーン版（v21） ===================== */
.lz-sect{position:relative; width:100%; background:#F4F6F9; overflow:hidden;
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.lz-stage{position:relative; width:100%; aspect-ratio:3.18/1; min-height:520px;
  display:flex; flex-direction:column;}
.lz-photo{position:absolute; inset:0; background-image:url('../images/09_hero/home_fv_wide.jpg');
  background-size:cover; background-position:center; }
/* 上＝タイトル可読性、下＝タブ可読性。中央の写真は素のまま見せる */
.lz-veil{position:absolute; inset:0; pointer-events:none;
  background:
    linear-gradient(180deg, rgba(255,255,255,.90) 0%, rgba(255,255,255,.55) 16%, rgba(255,255,255,0) 34%),
    linear-gradient(0deg, rgba(10,22,40,.80) 0%, rgba(10,22,40,.42) 20%, rgba(10,22,40,0) 44%);}

/* --- 見出し --- */
.lz-head{position:relative; z-index:3; padding:56px 48px 0; text-align:center; flex:0 0 auto;}
.lz-eyebrow{font-family:"Cormorant Garamond",Georgia,serif; font-size:11px; letter-spacing:.34em;
  color:#8B6014; font-weight:600; margin-bottom:10px;}
/* 「Aoba-BBTのいまを知る。」(.sect-ttl) と同じ書体・同じ金アクセントに統一。
   サイズだけこのセクションの主役に合わせて大きく取る */
.lz-ttl{font-family:"Noto Serif JP",serif; font-size:42px; font-weight:700;
  color:var(--h-navy); letter-spacing:.02em; line-height:1.5; margin:0;}
.lz-ttl em{font-style:normal; color:var(--h-gold);}
/* 創業理念：画像の右上に小さく添える。中央の見出しとは役割が違うので離して置く */
.lz-creed{position:absolute; z-index:3; top:40px; right:44px; text-align:right;
  font-family:"Noto Serif JP",serif; font-size:13px; font-weight:600; line-height:1.95;
  color:#2C3E55; letter-spacing:.04em;}

/* --- 4カラム --- */
.lz-cols{position:relative; z-index:3; margin-top:auto; width:100%;
  display:grid; grid-template-columns:repeat(4,1fr); align-items:end; gap:0;}
.lz-col{--z:#B8892E; position:relative; display:flex; flex-direction:column; justify-content:flex-end;
  min-width:0; cursor:pointer; outline:none;
  border-left:1px solid rgba(255,255,255,.16);
  transition:background .3s ease;}
.lz-col:first-child{border-left:none;}
.lz-col[data-tone="children"]  {--z:#E0A63C;}
.lz-col[data-tone="university"]{--z:#3FB6A8;}
.lz-col[data-tone="business"]  {--z:#5B9BE8;}
.lz-col[data-tone="alumni"]    {--z:#D08BB8;}

/* 閉じているときのタブ */
.lz-tab{position:relative; padding:14px 20px 16px; border-top:3px solid var(--z);
  background:linear-gradient(180deg, rgba(10,22,40,.30), rgba(10,22,40,.72));
  transition:background .3s ease;}
.lz-top{display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:7px;}
.lz-eb{font-family:"Cormorant Garamond",Georgia,serif; font-size:10px; letter-spacing:.28em;
  color:var(--z); font-weight:700; white-space:nowrap;}
.lz-name{font-size:16px; font-weight:700; color:#fff; letter-spacing:.02em; line-height:1.45;}
.lz-fact{font-size:11.5px; line-height:1.75; color:rgba(255,255,255,.80); margin:7px 0 0;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;}
/* 英字ラベル行の右側、空いていたスペースに導線を置く */
.lz-cue{display:inline-flex; align-items:center; gap:6px; flex:0 0 auto;
  font-size:10.5px; letter-spacing:.06em; color:var(--z); font-weight:700; white-space:nowrap;
  opacity:.92; transition:opacity .25s;}
.lz-cue i{width:0; height:0; flex:0 0 auto;
  border-left:4px solid transparent; border-right:4px solid transparent;
  border-bottom:6px solid var(--z); animation:lzPulse 2.2s ease-in-out infinite;}
@keyframes lzPulse{0%,100%{opacity:.4; transform:translateY(1px);} 50%{opacity:1; transform:translateY(-2px);}}
.lz-col.is-open .lz-cue i,.lz-col:hover .lz-cue i{animation:none; transform:rotate(180deg);}

/* 展開パネル */
/* max-height だと中身より大きい値まで動かすぶん、開き終わり・閉じ始めが間延びする。
   grid-template-rows を 0fr→1fr にすると実際の中身の高さぶんだけ等速で動く */
.lz-panel{display:grid; grid-template-rows:0fr;
  transition:grid-template-rows .40s cubic-bezier(.22,.61,.36,1);
  background:rgba(9,20,36,.93); backdrop-filter:blur(3px);}
.lz-panel-in{overflow:hidden; min-height:0; opacity:0;
  transition:opacity .26s ease .04s;}
.lz-panel-pad{padding:20px 20px 17px; border-top:1px solid rgba(255,255,255,.12);}
.lz-panel-ttl{font-size:10.5px; letter-spacing:.16em; color:var(--z); font-weight:700; margin-bottom:11px;}
.lz-list{list-style:none; margin:0 0 13px; padding:0;}
.lz-list li{font-size:12px; line-height:1.6; color:rgba(255,255,255,.90); padding:7px 0;
  border-bottom:1px dotted rgba(255,255,255,.18); display:flex; justify-content:space-between; gap:8px;}
.lz-tag{flex:0 0 auto; font-size:9.5px; font-weight:700; color:#0A1424; background:var(--z);
  padding:2px 7px; border-radius:2px; align-self:center;}
.lz-pick{display:flex; flex-direction:column; gap:3px; padding:9px 0;
  border-bottom:1px dotted rgba(255,255,255,.18); margin-bottom:2px;}
.lz-pick .k{font-size:11px; color:rgba(255,255,255,.66);}
.lz-pick .v{font-size:12.5px; font-weight:700; color:#fff;}
.lz-wip{display:block; font-size:10.5px; color:rgba(255,255,255,.55); margin-bottom:11px;}
/* 遷移ボタンであることが一目で分かるよう、塗りのピル型にして右寄せ */
.lz-more{display:inline-flex; align-items:center; gap:8px; margin-top:14px; float:right;
  font-size:12px; font-weight:700; letter-spacing:.04em;
  color:#0A1424; background:var(--z); border:none; border-radius:999px;
  padding:9px 17px 9px 19px; text-decoration:none; cursor:pointer;
  box-shadow:0 3px 12px rgba(0,0,0,.28); transition:transform .2s ease, box-shadow .2s ease, filter .2s ease;}
.lz-more::after{content:"→"; font-size:13px; line-height:1;}
.lz-more:hover{transform:translateX(2px); filter:brightness(1.08);
  box-shadow:0 5px 16px rgba(0,0,0,.36);}
.lz-panel-pad::after{content:""; display:block; clear:both;}

/* 開いた状態（hover / focus / タップ共通） */
.lz-col.is-open .lz-panel{grid-template-rows:1fr;}
.lz-col.is-open .lz-panel-in{opacity:1;}
.lz-col.is-open .lz-cue{opacity:.55;}
.lz-col.is-open .lz-tab{background:rgba(9,20,36,.93);}
@media (hover:hover){
  .lz-col:hover .lz-panel{grid-template-rows:1fr;}
  .lz-col:hover .lz-panel-in{opacity:1;}
  .lz-col:hover .lz-cue{opacity:.55;}
  .lz-col:hover .lz-tab{background:rgba(9,20,36,.93);}
  .lz-col:hover{background:rgba(9,20,36,.10);}
}
.lz-col:focus-visible{box-shadow:inset 0 0 0 2px var(--z);}

/* --- レスポンシブ：横長画像が破綻する幅で縦積みへ --- */
@media (max-width:1080px){
  .lz-ttl{font-size:34px;}
  .lz-creed{top:32px; right:28px; font-size:12px;}
  .lz-name{font-size:14.5px;}
  .lz-fact{font-size:11px;}
  .lz-tab{padding:14px 15px 17px;}
}
@media (max-width:860px){
  .lz-stage{aspect-ratio:auto; min-height:0; display:block;}
  .lz-photo{position:relative; inset:auto; width:100%; aspect-ratio:16/8;
    background-position:center; }
  .lz-veil{background:linear-gradient(180deg, rgba(255,255,255,.92) 0%, rgba(255,255,255,.35) 22%, rgba(255,255,255,0) 46%);
    bottom:auto; height:56%;}
  .lz-head{position:absolute; top:0; left:0; right:0; padding:26px 22px 0;}
  .lz-ttl{font-size:26px;}
  .lz-creed{display:none;}  /* 幅が狭いと見出しに重なるため非表示 */

  .lz-cols{grid-template-columns:repeat(2,1fr); background:#0A1424;}
  .lz-col{border-left:1px solid rgba(255,255,255,.12); border-top:1px solid rgba(255,255,255,.12);}
  .lz-col:first-child,.lz-col:nth-child(3){border-left:none;}
  .lz-tab{background:transparent;}
}
@media (max-width:560px){
  .lz-photo{aspect-ratio:16/11; background-position:32% center;}
  .lz-head{padding:20px 16px 0;}
  .lz-ttl{font-size:21px;}
  .lz-cols{grid-template-columns:1fr;}
  .lz-col,.lz-col:nth-child(3){border-left:none;}
  .lz-fact{-webkit-line-clamp:3;}
}

/* ===================== 大前研一ニュースの視点：記事ページ（v22） ===================== */
.ok-page{--ok:#B8892E; --ok-d:#8B6014; --ok-bg:#FAF6EE;}
/* ヘッダー：アイキャッチは文字入りバナーなので、切らずに全体を見せる */

/* 本文レイアウト：目次を横に固定し、長文でも現在地が分かるようにする */
.ok-body{max-width:1100px; margin:0 auto; padding:44px 40px 10px;
  display:grid; grid-template-columns:250px 1fr; gap:44px; align-items:start;}
.ok-toc{position:sticky; top:96px; background:var(--ok-bg); border:1px solid #E6DCC6;
  border-radius:5px; padding:18px 16px 16px; max-height:calc(100vh - 130px); overflow:auto;}
.ok-toc-ttl{font-size:11px; font-weight:700; letter-spacing:.14em; color:var(--ok-d);
  padding-bottom:10px; margin-bottom:8px; border-bottom:1px solid #E6DCC6;}
.ok-toc-list{list-style:none; margin:0; padding:0; counter-reset:none;}
.ok-toc-list a{display:flex; gap:9px; padding:8px 4px; text-decoration:none; cursor:pointer;
  border-radius:3px; transition:background .18s;}
.ok-toc-list a:hover{background:#F2E9D6;}
.ok-toc-list a.is-cur{background:#F2E9D6;}
.ok-toc-list a.is-cur .ok-x{color:var(--ok-d); font-weight:700;}
.ok-n{flex:0 0 auto; font-family:"Cormorant Garamond",Georgia,serif; font-size:12px;
  font-weight:700; color:var(--ok); padding-top:1px;}
.ok-x{font-size:11.5px; line-height:1.6; color:#3C4A5C;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;}

.ok-article{min-width:0;}
.ok-sec{scroll-margin-top:96px; padding-bottom:34px; margin-bottom:34px;
  border-bottom:1px dotted #DDD6C8;}
.ok-sec:last-of-type{border-bottom:none;}
.ok-sec-no{font-family:"Cormorant Garamond",Georgia,serif; font-size:11px; letter-spacing:.22em;
  color:var(--ok); font-weight:700; margin-bottom:9px;}
/* 現行サイトの見出し（太字＋左の縦線）を踏襲 */
.ok-h{font-family:"Noto Serif JP",serif; font-size:20px; font-weight:700; color:var(--h-navy);
  line-height:1.65; letter-spacing:.01em; margin:0 0 18px; padding-left:15px;
  border-left:4px solid var(--ok);}
.ok-article p{font-size:14.5px; line-height:2.15; color:#2A2A2A; margin:0 0 19px;}
.ok-article p:last-child{margin-bottom:0;}
.ok-foot{font-size:12px !important; line-height:1.85 !important; color:var(--mute) !important;
  background:#F5F5F3; border-radius:4px; padding:13px 16px; margin-top:8px !important;}

/* 記事末尾のバナー枠 */
.ok-promo{max-width:1100px; margin:14px auto 0; padding:0 40px;}
.ok-promo-lab{font-family:"Cormorant Garamond",Georgia,serif; font-size:11px; letter-spacing:.28em;
  color:var(--ok-d); font-weight:700; margin-bottom:13px;}
.ok-promo-lab span{font-family:"Noto Sans JP",sans-serif; letter-spacing:.02em; font-size:10.5px;
  font-weight:400; color:var(--mute); margin-left:12px;}
.ok-bn-row{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.ok-bn{display:block; background:#fff; border:1px solid var(--line); border-radius:5px;
  overflow:hidden; text-decoration:none; color:inherit; cursor:pointer;
  transition:transform .22s ease, box-shadow .22s ease;}
.ok-bn:hover{transform:translateY(-2px); box-shadow:0 12px 26px rgba(13,35,64,.13);}
.ok-bn-img{position:relative; width:100%; aspect-ratio:16/9; background-size:cover;
  background-position:center; background-color:#EEF1F5;}
.ok-bn-tag{position:absolute; top:9px; left:9px; font-size:10px; font-weight:700; color:#fff;
  padding:3px 9px; border-radius:2px; letter-spacing:.04em;}
.ok-bn-tag.t-sem{background:#00896C;} .ok-bn-tag.t-ev{background:#B07A2A;}
.ok-bn-tx{padding:14px 16px 15px;}
.ok-bn-eb{font-family:"Cormorant Garamond",Georgia,serif; font-size:10px; letter-spacing:.26em;
  color:var(--ok); font-weight:700; margin-bottom:8px;}
.ok-bn-ttl{font-size:14px; font-weight:700; line-height:1.6; color:var(--h-navy); margin:0;}
.ok-bn-sub{font-size:11.5px; line-height:1.7; color:var(--mute); margin:7px 0 0;}
.ok-bn-cta{display:inline-block; margin-top:11px; font-size:11.5px; font-weight:700; color:var(--ok-d);}
/* 個別指定時は1枚を大きく */
.ok-promo.is-single .ok-bn-lg{display:grid; grid-template-columns:minmax(0,44%) 1fr; align-items:center;}
.ok-promo.is-single .ok-bn-lg .ok-bn-img{aspect-ratio:16/9;}
.ok-promo.is-single .ok-bn-lg .ok-bn-tx{padding:22px 28px;}
.ok-promo.is-single .ok-bn-ttl{font-size:19px; line-height:1.55;}
.ok-promo.is-single .ok-bn-sub{font-size:12.5px;}
.ok-promo.is-single .ok-bn-cta{font-size:13px;}
.ok-promo-note{font-size:10.5px; line-height:1.8; color:var(--mute); margin:12px 0 0;}

@media (max-width:1080px){
  .ok-body{grid-template-columns:1fr; gap:26px; padding:32px 28px 10px;}
  .ok-toc{position:static; max-height:none;}
  .ok-toc-list{display:grid; grid-template-columns:1fr 1fr; gap:2px 14px;}
  .ok-promo{padding:0 28px;}
}
@media (max-width:720px){
  .ok-body{padding:26px 18px 10px;}
  .ok-toc-list{grid-template-columns:1fr;}
  .ok-h{font-size:17px; padding-left:12px; border-left-width:3px;}
  .ok-article p{font-size:14px; line-height:2.05;}
  .ok-promo{padding:0 18px;}
  .ok-bn-row{grid-template-columns:1fr;}
  .ok-promo.is-single .ok-bn-lg{grid-template-columns:1fr;}
  .ok-promo.is-single .ok-bn-lg .ok-bn-tx{padding:16px 18px 18px;}
  .ok-promo.is-single .ok-bn-ttl{font-size:16px;}
}

/* ===================== 会社情報：メディア掲載／お知らせ（v23） ===================== */
.mi-lead{font-size:13px; line-height:1.9; color:var(--sub); margin:0 0 20px;}
.mi-list,.nw-list{border-top:1px solid var(--line);}
.mi-row,.nw-row{display:flex; align-items:baseline; gap:14px; padding:13px 6px;
  border-bottom:1px solid var(--line); text-decoration:none; color:inherit; cursor:pointer;
  transition:background .18s;}
.mi-row:hover,.nw-row:hover{background:#FAF8F4;}
.mi-row[data-more],.nw-row[data-more]{display:none;}
.mi-row.is-shown,.nw-row.is-shown{display:flex;}
.mi-date,.nw-date{flex:0 0 82px; font-size:11.5px; color:var(--mute); letter-spacing:.02em;}
.mi-kind{flex:0 0 auto; font-size:10px; font-weight:700; padding:3px 9px; border-radius:2px;
  letter-spacing:.06em; align-self:center;}
.mi-kind.k-a{background:#E8EEF5; color:#1E3A5F;}   /* 掲載 */
.mi-kind.k-b{background:#F2E7EE; color:#7E3F6B;}   /* 出演・紹介 */
.mi-kind.k-c{background:#EAF4F1; color:#0F6E56;}   /* 登壇 */
.mi-body{flex:1 1 auto; min-width:0;}
.mi-media{display:block; font-size:14px; font-weight:700; color:var(--h-navy); line-height:1.6;}
.mi-sub{display:block; font-size:12px; color:var(--sub); line-height:1.7; margin-top:2px;}
.mi-arw,.nw-arw{flex:0 0 auto; font-size:12px; color:var(--mute);}
.mi-row:hover .mi-arw,.nw-row:hover .nw-arw{color:var(--h-gold);}
.nw-title{flex:1 1 auto; font-size:13.5px; line-height:1.7; color:var(--h-navy); font-weight:600;}
.nw-row.is-important .nw-title{color:#A3352B;}
.nw-row.is-important .nw-date::after{content:"重要"; display:inline-block; margin-left:7px;
  font-size:9.5px; font-weight:700; color:#fff; background:#A3352B; padding:2px 6px; border-radius:2px;}
.nw-ext{flex:0 0 auto; font-size:10.5px; font-weight:700; color:#8B6014;}
.mi-toggle{display:block; width:100%; margin-top:16px; padding:12px; background:#fff;
  border:1px solid var(--line); border-radius:4px; cursor:pointer;
  font-size:12.5px; font-weight:700; color:var(--h-navy); letter-spacing:.04em;
  font-family:inherit; transition:background .2s;}
.mi-toggle:hover{background:#FAF8F4;}
.mi-toggle span{color:var(--h-gold); margin-left:8px;}
@media (max-width:720px){
  .mi-row,.nw-row{flex-wrap:wrap; gap:6px 10px;}
  .mi-date,.nw-date{flex:0 0 auto;}
  .mi-body,.nw-title{flex:1 1 100%;}
  .mi-arw,.nw-arw{display:none;}
}

/* ===== お知らせ／メディア掲載の記事ページ（軽い型） ===== */
.nt-page .nt-body{max-width:820px; margin:0 auto; padding:38px 40px 0;}
.nt-art p{font-size:14.5px; line-height:2.1; color:#2A2A2A; margin:0 0 18px;}
.nt-to{font-weight:700; color:var(--h-navy) !important;}
.nt-ki{text-align:center; font-size:14px; font-weight:700; color:var(--h-navy); margin:26px 0 14px;
  letter-spacing:.3em;}
.nt-fin{text-align:right; font-weight:700;}
.nt-table{width:100%; border-collapse:collapse; margin:0 0 22px; font-size:13px;}
.nt-table th,.nt-table td{border:1px solid var(--line); padding:10px 13px; text-align:left; line-height:1.75;}
.nt-table th{background:#F4F1EA; color:var(--h-navy); font-weight:700;}
.nt-src{background:#F7F5F0; border-left:3px solid var(--h-gold); border-radius:3px;
  padding:18px 20px; margin:6px 0 22px;}
.nt-src-lab{font-size:10.5px; font-weight:700; letter-spacing:.14em; color:#8B6014; margin-bottom:10px;}
.nt-src-link{display:block; text-decoration:none; color:inherit;}
.nt-src-media{display:block; font-size:15px; font-weight:700; color:var(--h-navy);}
.nt-src-ttl{display:block; font-size:12.5px; line-height:1.75; color:var(--sub); margin-top:5px;}
.nt-src-go{display:inline-block; margin-top:11px; font-size:12px; font-weight:700; color:#8B6014;}
.nt-src-link:hover .nt-src-go{text-decoration:underline;}
.nt-note{font-size:11.5px !important; line-height:1.85 !important; color:var(--mute) !important;
  background:#F5F5F3; border-radius:4px; padding:13px 16px; margin-top:6px !important;}
.nt-foot{display:flex; gap:14px; flex-wrap:wrap; margin:32px 0 0; padding:22px 0 40px;
  border-top:1px solid var(--line);}
.nt-foot a{font-size:12.5px; font-weight:700; color:var(--h-navy); cursor:pointer; text-decoration:none;}
.nt-foot a:hover{color:var(--h-gold);}
@media (max-width:720px){
  .nt-page .nt-body{padding:26px 18px 0;}
  .nt-table{font-size:12px;}
  .nt-table th,.nt-table td{padding:8px 10px;}
}

/* ===================== ニュース・コラム アーカイブ（v24） ===================== */
.ar-head{background:linear-gradient(160deg,#0B1B30 0%,#16324F 100%); padding:46px 0 44px;}
.ar-head-in{max-width:1060px; margin:0 auto; padding:0 40px;}
.ar-eb{font-family:"Cormorant Garamond",Georgia,serif; font-size:11px; letter-spacing:.34em;
  color:#E8CB80; font-weight:600; margin-bottom:12px;}
.ar-ttl{font-family:"Noto Serif JP",serif; font-size:34px; font-weight:700; color:#fff;
  line-height:1.4; margin:0 0 14px;}
.ar-lead{font-size:13px; line-height:1.95; color:rgba(255,255,255,.78); margin:0;}
.ar-wrap{max-width:1060px; margin:0 auto; padding:30px 40px 60px;}

/* 絞り込み */
.ar-filter{background:#FAF8F4; border:1px solid var(--line); border-radius:6px;
  padding:18px 20px 14px; margin-bottom:22px;}
.ar-f-row{display:flex; gap:12px; margin-bottom:14px;}
.ar-search{position:relative; flex:1 1 auto; min-width:0;}
.ar-si{position:absolute; left:14px; top:50%; transform:translateY(-50%); color:var(--mute);
  display:flex; pointer-events:none;}
#arQ{width:100%; padding:12px 40px 12px 42px; font-size:13.5px; font-family:inherit;
  border:1px solid var(--line); border-radius:4px; background:#fff; color:var(--navy); outline:none;}
#arQ:focus{border-color:var(--h-gold);}
.ar-clear{position:absolute; right:10px; top:50%; transform:translateY(-50%);
  width:22px; height:22px; border:none; border-radius:50%; background:#DDD6C8; color:#fff;
  font-size:13px; line-height:1; cursor:pointer;}
.ar-year{flex:0 0 160px; padding:12px 12px; font-size:13px; font-family:inherit;
  border:1px solid var(--line); border-radius:4px; background:#fff; color:var(--navy); cursor:pointer;}
.ar-tabs{display:flex; gap:7px; overflow-x:auto; padding-bottom:4px; -webkit-overflow-scrolling:touch;}
.ar-tabs::-webkit-scrollbar{height:4px;}
.ar-tabs::-webkit-scrollbar-thumb{background:#DDD6C8; border-radius:2px;}
.ar-tab{flex:0 0 auto; padding:8px 15px; font-size:12px; font-weight:700; font-family:inherit;
  color:var(--sub); background:#fff; border:1px solid var(--line); border-radius:999px;
  cursor:pointer; white-space:nowrap; transition:all .2s;}
.ar-tab:hover{border-color:#C9BFA8;}
.ar-tab.is-on{background:var(--h-navy); border-color:var(--h-navy); color:#fff;}

.ar-count{font-size:12px; color:var(--mute); margin-bottom:12px;}
.ar-count b{color:var(--h-navy); font-size:15px; margin:0 3px;}

/* カード */
.ar-list{border-top:1px solid var(--line);}
.ar-card{display:flex; gap:20px; padding:20px 6px; border-bottom:1px solid var(--line);
  text-decoration:none; color:inherit; cursor:pointer; transition:background .18s;}
.ar-card:hover{background:#FAF8F4;}
.ar-th{flex:0 0 176px; aspect-ratio:16/9; background-size:cover; background-position:center;
  background-color:#EEF1F5; border-radius:4px;}
.ar-th.no-img{display:flex; align-items:center; justify-content:center;
  background:#F2EFE8; color:#B3A88E; font-family:"Cormorant Garamond",Georgia,serif;
  font-size:12px; letter-spacing:.2em;}
.ar-tx{flex:1 1 auto; min-width:0;}
.ar-meta{display:flex; align-items:center; gap:10px; margin-bottom:9px; flex-wrap:wrap;}
.ar-cat{font-size:10.5px; font-weight:700; color:#fff; padding:3px 10px; border-radius:2px; letter-spacing:.04em;}
.ar-cat.c-ohmae{background:#B8892E;} .ar-cat.c-seminar{background:#00896C;}
.ar-cat.c-event{background:#B07A2A;}  .ar-cat.c-alumni{background:#A05A7E;}
.ar-cat.c-people{background:#1E3A5F;} .ar-cat.c-learn{background:#1F7A8C;}
.ar-cat.c-press{background:#8B6014;}
.ar-date{font-size:11.5px; color:var(--mute);}
.ar-ext{font-size:10.5px; font-weight:700; color:#8B6014;}
.ar-t{font-size:15px; font-weight:700; line-height:1.7; color:var(--h-navy); margin:0;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;}
.ar-card:hover .ar-t{color:#8B6014;}
.ar-s{font-size:12px; color:var(--sub); line-height:1.7; margin:7px 0 0;}
.ar-hit{font-size:11.5px; line-height:1.75; color:var(--mute); margin:8px 0 0;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;}
.ar-hit mark{background:#F6E7BE; color:var(--h-navy); padding:0 2px; border-radius:2px;}

.ar-empty{text-align:center; padding:54px 20px;}
.ar-empty p{font-size:14px; color:var(--sub); margin:0 0 18px;}
.ar-reset{padding:11px 24px; font-size:12.5px; font-weight:700; font-family:inherit;
  color:#fff; background:var(--h-navy); border:none; border-radius:4px; cursor:pointer;}
.ar-reset:hover{opacity:.88;}

.ar-pager{display:flex; justify-content:center; align-items:center; gap:6px; margin-top:30px;}
.ar-pg{min-width:36px; height:36px; padding:0 10px; font-size:12.5px; font-weight:700;
  font-family:inherit; color:var(--h-navy); background:#fff; border:1px solid var(--line);
  border-radius:4px; cursor:pointer; transition:all .18s;}
.ar-pg:hover:not(:disabled){border-color:#C9BFA8;}
.ar-pg.is-on{background:var(--h-navy); border-color:var(--h-navy); color:#fff;}
.ar-pg:disabled{opacity:.35; cursor:default;}

@media (max-width:820px){
  .ar-head{padding:32px 0 30px;} .ar-head-in{padding:0 20px;}
  .ar-ttl{font-size:26px;} .ar-wrap{padding:24px 20px 46px;}
  .ar-f-row{flex-direction:column;} .ar-year{flex:none; width:100%;}
  .ar-card{gap:14px; padding:16px 4px;}
  .ar-th{flex:0 0 116px;}
  .ar-t{font-size:13.5px;}
  .ar-s,.ar-hit{font-size:11px;}
}

/* Insightsトップ：検索バー（「記事を探す」→ アーカイブへ送る） */
.search-inner{display:flex; align-items:center; gap:14px; flex-wrap:wrap;}
.search-lab{flex:0 0 auto; font-family:"Noto Serif JP",serif; font-size:15px; font-weight:700;
  color:var(--h-navy); letter-spacing:.04em;}
.search-box{flex:1 1 320px; min-width:0;}
.search-go{flex:0 0 auto; padding:12px 26px; font-size:13px; font-weight:700; font-family:inherit;
  color:#fff; background:var(--h-navy); border:none; border-radius:4px; cursor:pointer;
  letter-spacing:.06em; transition:opacity .2s;}
.search-go:hover{opacity:.86;}
@media (max-width:720px){
  .search-inner{gap:10px;}
  .search-lab{flex:1 1 100%;}
  .search-box{flex:1 1 auto;}
  .search-go{padding:12px 18px;}
}

/* ===================== 記事ヘッダー：全カテゴリ共通の型（v25） =====================
   左にアイキャッチ／右にタイトル。淡い地＋CSSのみの模様＋左端にカテゴリ色の縦帯。
   色と模様の濃さはすべて数値なので、後から一括で調整できる。 */
.ah{position:relative; padding:38px 0 40px; border-bottom:1px solid rgba(0,0,0,.07);
  background-color:#FBF7EE; overflow:hidden;}
.ah::before{content:""; position:absolute; left:0; top:0; bottom:0; width:5px; background:var(--ac);}
.ah-in{max-width:1180px; margin:0 auto; padding:0 40px;
  display:grid; grid-template-columns:560px 1fr; gap:38px; align-items:center;}
.ah-kv{width:100%; aspect-ratio:16/9; background-size:contain; background-repeat:no-repeat;
  background-position:center; background-color:#fff; border-radius:4px;
  border:1px solid rgba(0,0,0,.08); box-shadow:0 8px 24px rgba(40,40,40,.11);}
.ah-kv.cover{background-size:cover;}
.ah-cat{display:inline-block; font-size:11px; font-weight:700; letter-spacing:.08em;
  color:#fff; background:var(--ac); padding:5px 13px; border-radius:2px; margin-bottom:14px;}
.ah-no{display:inline-block; font-family:"Cormorant Garamond",Georgia,serif; font-size:12px;
  letter-spacing:.24em; color:#fff; background:var(--ac); font-weight:700;
  padding:4px 12px; border-radius:2px; margin-bottom:14px;}
.ah-title{font-family:"Noto Serif JP",serif; font-size:23px; font-weight:700; color:var(--h-navy);
  line-height:1.72; letter-spacing:.01em; margin:0 0 18px;}
.ah-meta{display:flex; align-items:center; flex-wrap:wrap; gap:9px 16px; font-size:12px; color:var(--mute);}
.ah-who{font-weight:700; color:var(--h-navy);}
.ah-chip{border:1px solid var(--acl); color:var(--acd); background:rgba(255,255,255,.72);
  border-radius:999px; padding:3px 11px; font-size:11px;}

/* --- カテゴリ別の地色・模様・アクセント --- */
.ah.t-ohmae{--ac:#B8892E; --acd:#8B6014; --acl:#D9C89C; background-color:#FBF7EE;
  background-image:linear-gradient(rgba(184,137,46,.07) 1px, transparent 1px),
                   linear-gradient(90deg, rgba(184,137,46,.07) 1px, transparent 1px);
  background-size:22px 22px;}
.ah.t-alumni{--ac:#A05A7E; --acd:#7E3F6B; --acl:#DFC2D2; background-color:#FBF4F7;
  background-image:radial-gradient(rgba(160,90,126,.14) 1px, transparent 1.2px);
  background-size:14px 14px;}
.ah.t-people{--ac:#1E3A5F; --acd:#16304F; --acl:#B9C7D8; background-color:#F3F6FB;
  background-image:radial-gradient(rgba(30,58,95,.13) 1px, transparent 1.2px);
  background-size:14px 14px;}
.ah.t-event{--ac:#B07A2A; --acd:#7A5116; --acl:#DCC69C; background-color:#FCF6EA;
  background-image:repeating-linear-gradient(45deg, rgba(176,122,42,.06) 0 1px, transparent 1px 9px);}
.ah.t-seminar{--ac:#00896C; --acd:#006B54; --acl:#A9D3C7; background-color:#F0F8F5;
  background-image:repeating-linear-gradient(45deg, rgba(0,137,108,.06) 0 1px, transparent 1px 9px);}
.ah.t-learn{--ac:#1F7A8C; --acd:#125A69; --acl:#AACFD8; background-color:#F1F8F9;
  background-image:repeating-linear-gradient(180deg, rgba(31,122,140,.075) 0 1px, transparent 1px 7px);}
.ah.t-media{--ac:#C97B92; --acd:#A0596F; --acl:#E4C6CF; background-color:#FCF6F3;
  background-image:repeating-linear-gradient(180deg, rgba(201,123,146,.075) 0 1px, transparent 1px 7px);}
.ah.t-topic{--ac:#4A9FD4; --acd:#2F7BAB; --acl:#B6D8EC; background-color:#F3F9FD;
  background-image:repeating-linear-gradient(180deg, rgba(74,159,212,.075) 0 1px, transparent 1px 7px);}

@media (max-width:1080px){
  .ah-in{grid-template-columns:1fr; gap:22px; padding:0 28px;}
  .ah-kv{max-width:560px;}
  .ah-title{font-size:22px;}
}
@media (max-width:720px){
  .ah{padding:24px 0 26px;}
  .ah-in{padding:0 18px;}
  .ah-title{font-size:19px; line-height:1.7;}
}

/* ===== Alumni Stories：全幅ヒーロー（テストサイト stg 準拠） ===== */
.alh{position:relative; width:100%; height:calc(100vh - 72px); min-height:520px; max-height:820px;
  background-size:cover; background-color:#0D2340; overflow:hidden;}
.alh.pos-r{background-position:center 20%;}   /* 人物が左寄りの写真：右に文字を置く */
.alh.pos-l{background-position:center 18%;}   /* 人物が右寄りの写真：左に文字を置く */
.alh::after{content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(13,35,64,.34) 0%, rgba(13,35,64,.06) 30%, rgba(13,35,64,0) 55%);}
.alh-crumb{position:absolute; top:18px; left:0; right:0; z-index:4; padding:0 34px;
  font-size:12px; color:rgba(255,255,255,.9);}
.alh-crumb a{color:rgba(255,255,255,.92); cursor:pointer; text-decoration:none;}
.alh-crumb a:hover{color:#E8CB80; text-decoration:underline;}
.alh-crumb span{margin:0 9px; opacity:.65;}

/* 写真に溶ける大きな抜き文字 */
.alh-ghost{position:absolute; z-index:2; left:0; right:0; bottom:20%; text-align:center;
  font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(52px,7.4vw,116px);
  font-weight:600; letter-spacing:.22em; color:#fff; opacity:.30; white-space:nowrap;
  pointer-events:none; text-indent:.22em;}

/* 写真上に組む見出しブロック */
.alh-cap{position:absolute; z-index:3; top:50%; transform:translateY(-50%); max-width:44%;}
.alh.pos-r .alh-cap{right:6%;}
.alh.pos-l .alh-cap{left:6%; top:15%; transform:none;}
.alh-eb{position:relative; padding-left:20px; margin-bottom:20px;
  font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(22px,2.2vw,34px);
  letter-spacing:.2em; color:#fff; font-weight:600;}
.alh-eb::before{content:""; position:absolute; left:0; top:4px; bottom:4px; width:2px; background:#fff; opacity:.85;}
.alh-role{font-family:"Noto Serif JP",serif; font-size:clamp(18px,1.9vw,29px); font-weight:600;
  color:#fff; line-height:1.55; margin:0 0 14px; text-shadow:0 2px 14px rgba(0,0,0,.3);}
.alh-name{font-family:"Noto Serif JP",serif; font-size:clamp(38px,4.6vw,74px); font-weight:600;
  color:#fff; letter-spacing:.14em; line-height:1.2; margin:0; text-shadow:0 2px 18px rgba(0,0,0,.32);}
.alh-line{height:1px; background:rgba(255,255,255,.5); margin:26px 0 18px;}
.alh-prog{font-family:"Noto Serif JP",serif; font-size:clamp(15px,1.4vw,22px); color:rgba(255,255,255,.94);
  line-height:1.7; margin:0; text-shadow:0 2px 14px rgba(0,0,0,.3);}
.alh-lead{font-family:"Noto Sans JP",sans-serif; font-size:clamp(15px,1.5vw,23px); font-weight:700;
  color:#fff; line-height:1.6; margin:0; text-shadow:0 2px 14px rgba(0,0,0,.34);}
.alh-lead .s{display:block; font-size:.72em; font-weight:400; opacity:.9; margin-bottom:8px;}

/* 紺のメタバー：写真の直下に1行 */
.alm{background:#0D2340; padding:20px 0;}
.alm-in{max-width:1180px; margin:0 auto; padding:0 40px;
  display:flex; align-items:center; gap:0 18px; flex-wrap:wrap;}
.alm-badge{font-size:11.5px; font-weight:700; letter-spacing:.08em; color:#0D2340;
  background:#C9A44C; padding:8px 16px; border-radius:3px; white-space:nowrap;}
.alm-who{font-size:13.5px; font-weight:700; color:#fff;}
.alm-sep{width:1px; height:14px; background:rgba(255,255,255,.28);}
.alm-sub{font-size:12.5px; color:rgba(255,255,255,.82);}

@media (max-width:1080px){
  .alh{height:auto; aspect-ratio:16/10; min-height:0; max-height:none;}
  .alh-cap{max-width:52%;}
  .alh-ghost{bottom:14%;}
}
@media (max-width:720px){
  .alh{aspect-ratio:4/3;}
  .alh-crumb{padding:0 18px; font-size:11px;}
  .alh-cap{position:static; transform:none; max-width:none; padding:0 18px;
    position:absolute; bottom:16%; left:0; right:0;}
  .alh.pos-l .alh-cap{top:auto; bottom:16%;}
  .alh-ghost{bottom:6%; opacity:.22;}
  .alh-line{margin:16px 0 12px;}
  .alm-in{padding:0 18px; gap:0 12px;}
  .alm-sep{display:none;}
  .alm-who,.alm-sub{flex:1 1 100%; margin-top:6px;}
}


/* 本文の1行目に置く記事タイトル（テンプレートではなく本文側に入れる想定） */
.al-card > h1.al-h1{font-family:"Noto Serif JP",serif; font-size:27px; font-weight:700;
  color:var(--h-navy); line-height:1.65; letter-spacing:.01em;
  margin:0 0 26px; padding-bottom:22px; border-bottom:2px solid var(--h-navy);}
@media (max-width:720px){ .al-card > h1.al-h1{font-size:20px; margin-bottom:20px; padding-bottom:16px;} }
.nav-link.nav-ext{display:inline-flex; align-items:center; gap:5px;}
.nav-link.nav-ext svg{opacity:.55; margin-top:-1px;}
.nav-link.nav-ext:hover svg{opacity:.9;}


/* ================================================================
   WordPress 追加スタイル（テーマ移植時の補完）
   ─ 記事ヘッダー(.ah)の配色は本ファイル内の .ah / .t-ohmae / .t-event /
     .t-learn / .t-media / .t-topic 各定義にまとまっています（仕様No.4）。
   ================================================================ */
body.admin-bar .topnav { top: 32px; }
@media screen and (max-width: 782px) { body.admin-bar .topnav { top: 46px; } }

/* Word貼り付け残骸の無効化（仕様No.7）：本文中の font-weight:400 インラインspanを打ち消す */
.nt-art span[style*="font-weight"], .art-body span[style*="font-weight"],
.ok-article span[style*="font-weight"], .al-card span[style*="font-weight"],
.sf-in span[style*="font-weight"] { font-weight: inherit !important; }

/* 汎用アーカイブ（index.php フォールバック用） */
.aoba-fallback-wrap { max-width: 1000px; margin: 0 auto; padding: 130px 24px 90px; }
.aoba-fallback-wrap .ar-list { margin-top: 20px; }

/* 記事本文（WordPress投稿）内の標準要素 */
.aoba-content img { max-width: 100%; height: auto; border-radius: 4px; }
.aoba-content iframe { max-width: 100%; }
