/* CX研究所: editorial direction, preserving the original blue accent. */
:root {
  --cxv-blue: #2b4c8a;
  --cxv-blue-dark: #203d71;
  --cxv-navy: #182d47;
  --cxv-ink: #293440;
  --cxv-muted: #5c6672;
  --cxv-border: #d8dce0;
  --cxv-pale: #f8f7f3;
  --cxv-mint: #eef2f8;
  /* Existing components keep their token names for compatibility. */
  --cxv-green: var(--cxv-blue);
  --cxv-green-dark: var(--cxv-blue-dark);
  --c-bg: #fff;
  --c-bg2: var(--cxv-pale);
  --c-bg3: #eceff3;
  --c-text: var(--cxv-ink);
  --c-text2: var(--cxv-muted);
  --c-text3: #65707a;
  --c-acc: var(--cxv-blue);
  --c-acc-dim: var(--cxv-blue-dark);
  --c-acc-l: var(--cxv-mint);
  --c-bdr: var(--cxv-border);
  --c-rule: var(--cxv-border);
  --cxv-display: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", Georgia, serif;
}
.cxv-header { background: #fff; }
.cxv-header .header-inner { max-width: 1320px; height: 86px; padding-inline: 48px; }
.cxv-header .site-logo { font-size: 23px; letter-spacing: .045em; }
.cxv-header .site-logo-mark { width: 28px; height: 28px; }
.cxv-header .gnav a { font-size: 13px; }
.cxv-header .gnav a:hover, .cxv-header .gnav a.current { text-decoration-thickness: 1px; text-underline-offset: 9px; }
.cxv-header .search-toggle { border: 0; }
.cxv-container { max-width: 1320px; padding-inline: 48px; }
.cxv-home-hero { padding: 44px 0 0; background: var(--cxv-pale); border: 0; overflow: hidden; }
.cxv-hero-grid { grid-template-columns: .96fr 1.1fr; gap: 12px; align-items: center; min-height: 536px; }
.cxv-hero-copy { padding: 30px 0 68px; position: relative; z-index: 1; }
.cxv-home .cxv-eyebrow { font-size: 12px; font-weight: 600; letter-spacing: .11em; margin-bottom: 22px; }
.cxv-home .cxv-hero-copy h1 { font-family: var(--cxv-display); font-size: clamp(40px,4.45vw,64px); font-weight: 600; letter-spacing: -.055em; line-height: 1.55; margin: 0 0 25px; white-space: nowrap; }
.cxv-hero-lead { font-size: 15px; line-height: 2.15; margin-bottom: 28px; color: #465360; }
.cxv-home .cxv-button { border-radius: 0; font-size: 14px; padding: 16px 23px; min-height: 54px; box-shadow: none; font-weight: 600; }
.cxv-home .cxv-text-link { font-size: 13px; text-decoration: none; border-bottom: 1px solid var(--cxv-blue); padding-block: 9px; }
.cxv-actions { gap: 10px 24px; }
.cxv-hero-note { margin-top: 16px; font-size: 11px; color: #656e77; }
.cxv-hero-visual { position: relative; align-self: end; margin: 0 -26px 0 -16px; padding-top: 35px; isolation: isolate; }
.cxv-photo-plane { position: absolute; z-index: -1; inset: 12% 5% 0 18%; background: #e4eaf2; border-top: 2px solid #b2c0d4; }
.cxv-hero-visual picture { display: block; position: relative; }
.cxv-hero-visual img { width: 100%; height: auto; }
.cxv-hero-visual figcaption { position: absolute; right: 14px; bottom: 8px; font-size: 10px; color: #465360; background: rgba(248,247,243,.92); padding: 3px 7px; }
.cxv-home-section { padding: 82px 0; }
.cxv-section-heading { margin-bottom: 35px; align-items: end; gap: 30px; }
.cxv-section-heading .cxv-eyebrow { margin-bottom: 10px; }
.cxv-home .cxv-section-heading h2 { font-size: clamp(25px,2.6vw,35px); font-weight: 650; letter-spacing: -.045em; line-height: 1.5; }
.cxv-section-heading > p { font-size: 14px; max-width: 390px; }
.cxv-topic-grid { gap: 36px; counter-reset: topic; }
.cxv-home .cxv-topic-card { border: 0; border-top: 1px solid #a9b6c6; border-radius: 0; padding: 23px 0 0; box-shadow: none; background: transparent; position: relative; counter-increment: topic; }
.cxv-topic-card::before { content: "0" counter(topic); font-family: Georgia,serif; font-size: 19px; color: #73849b; position: absolute; right: 0; top: 19px; }
.cxv-home .cxv-topic-card:hover { border-color: var(--cxv-blue); background: transparent; box-shadow: none; transform: none; }
.cxv-topic-label { font-size: 11px; padding-right: 30px; }
.cxv-home .cxv-topic-card h3 { font-size: 19px; line-height: 1.7; margin-block: 16px 13px; }
.cxv-topic-card p { font-size: 13px; line-height: 1.9; }
.cxv-card-action { font-size: 12px; margin-top: 22px; }
.cxv-latest-section { background: var(--cxv-pale); }
.cxv-latest-grid { grid-template-columns: 1.08fr 1fr; gap: 30px 44px; }
.cxv-latest-card { border: 0; background: transparent; border-radius: 0; box-shadow: none; min-width: 0; }
.cxv-latest-card:first-child { grid-row: span 2; }
.cxv-latest-card:not(:first-child) { border-bottom: 1px solid var(--cxv-border); padding-bottom: 26px; }
.cxv-latest-card:not(:first-child) .cxv-latest-link { display: grid; grid-template-columns: 40% 1fr; gap: 23px; align-items: start; }
.cxv-latest-card .cxv-latest-body { padding: 20px 0 0; }
.cxv-latest-card:not(:first-child) .cxv-latest-body { padding: 0; }
.cxv-latest-card .art-thumb { aspect-ratio: 16/10; overflow: hidden; }
.cxv-latest-card .art-thumb img { transition: transform .45s ease; }
.cxv-latest-card:first-child h3 { font-size: 25px; line-height: 1.65; }
.cxv-latest-card:not(:first-child) h3 { font-size: 17px; line-height: 1.7; }
.cxv-latest-card:not(:first-child) .cxv-latest-body > p { display: none; }
.cxv-latest-card .cxv-latest-body > p { font-size: 13px; }
.cxv-article-meta { flex-wrap: wrap; font-size: 11px; }
.cxv-resources-section { background: #fff; }
.cxv-home .cxv-resource-card { border: 0; border-top: 1px solid #a9b6c6; border-radius: 0; background: transparent; padding: 26px 0; }
.cxv-home .cxv-resource-card:hover { background: transparent; border-color: var(--cxv-blue); }
.cxv-footer { background: var(--cxv-navy); padding-block: 56px 30px; }
.cxv-footer .footer-inner { max-width: 1320px; padding-inline: 48px; }
.cxv-home a span[aria-hidden="true"] { display: inline-block; transition: transform .16s ease; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .cxv-home a:hover span[aria-hidden="true"] { transform: translateX(4px); }
  .cxv-latest-link:hover h3 { color: var(--cxv-blue); }
}
@media (max-width: 1100px) {
  .cxv-header .header-inner,.cxv-container,.cxv-footer .footer-inner { padding-inline: 30px; }
  .cxv-header .gnav { gap: 18px; }
  .cxv-hero-grid { grid-template-columns: 1fr 1fr; min-height: 485px; }
  .cxv-home .cxv-hero-copy h1 { font-size: 43px; }
  .cxv-hero-visual { margin-right: -25px; margin-left: -30px; }
  .cxv-hero-lead { font-size: 14px; }
  .cxv-actions { gap: 12px; }
  .cxv-latest-grid { gap: 28px; }
  .cxv-latest-card:not(:first-child) .cxv-latest-link { grid-template-columns: 35% 1fr; gap: 16px; }
}
@media (max-width: 960px) {
  .cxv-header .header-inner { height: 72px; }
  .cxv-header .site-logo { font-size: 21px; }
  .cxv-header .nav-toggle { border: 0; }
  .cxv-topic-grid { gap: 25px; }
  .cxv-home .cxv-topic-card h3 { font-size: 17px; }
}
@media (max-width: 760px) {
  .cxv-container,.cxv-footer .footer-inner { padding-inline: 24px; }
  .cxv-header .header-inner { padding-inline: 20px; }
  .cxv-home-hero { padding: 0; }
  .cxv-hero-grid { display: block; min-height: 0; }
  .cxv-hero-copy { padding: 41px 0 0; }
  .cxv-home .cxv-hero-copy h1 { font-size: clamp(36px,7vw,49px); line-height: 1.52; letter-spacing: -.06em; margin-bottom: 22px; }
  .cxv-home .cxv-eyebrow { font-size: 11px; margin-bottom: 15px; }
  .cxv-hero-lead { font-size: 13px; line-height: 2; margin-bottom: 24px; }
  .cxv-actions { flex-direction: row; align-items: center; flex-wrap: wrap; gap: 10px 18px; }
  .cxv-home .cxv-button { padding: 14px 18px; font-size: 13px; }
  .cxv-home .cxv-text-link { font-size: 12px; }
  .cxv-hero-note { margin-top: 12px; font-size: 10px; }
  .cxv-hero-visual { margin: 4px -12px 0; padding-top: 7px; max-width: 560px; margin-inline: auto; }
  .cxv-photo-plane { inset: 10% 2% 0 18%; }
  .cxv-hero-visual figcaption { font-size: 9px; bottom: 6px; right: 5px; }
  .cxv-home-section { padding: 49px 0; }
  .cxv-section-heading { gap: 15px; margin-bottom: 25px; align-items: flex-start; }
  .cxv-home .cxv-section-heading h2 { font-size: 26px; }
  .cxv-section-heading .cxv-eyebrow { margin-bottom: 8px; }
  .cxv-topic-grid { gap: 28px; }
  .cxv-home .cxv-topic-card { padding-top: 20px; }
  .cxv-home .cxv-topic-card h3 { font-size: 20px; margin-block: 12px 8px; }
  .cxv-card-action { margin-top: 14px; }
  .cxv-latest-grid { grid-template-columns: 1fr; gap: 28px; }
  .cxv-latest-card:first-child { grid-row: auto; padding-bottom: 28px; border-bottom: 1px solid var(--cxv-border); }
  .cxv-latest-card:first-child h3 { font-size: 22px; }
  .cxv-latest-card:not(:first-child) .cxv-latest-link { grid-template-columns: 34% 1fr; gap: 18px; }
  .cxv-latest-card:not(:first-child) h3 { font-size: 16px; }
  .cxv-footer { padding-top: 38px; }
}
@media (max-width: 360px) {
  .cxv-container { padding-inline: 18px; }
  .cxv-header .header-inner { padding-inline: 14px; }
  .cxv-header .site-logo { font-size: 18px; }
  .cxv-home .cxv-hero-copy h1 { font-size: 33px; }
  .cxv-home .cxv-section-heading h2 { font-size: 24px; text-wrap: balance; }
  .cxv-actions { gap: 9px 15px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; }
  .cxv-home *, .cxv-header * { animation: none !important; transition: none !important; }
  .reveal { opacity: 1 !important; transform: none !important; }
}
@media print {
  .cxv-hero-visual { display: none; }
  .cxv-home .cxv-hero-copy h1 { white-space: normal; }
  .cxv-hero-grid,.cxv-latest-grid { display: block; }
  .cxv-home-section { padding: 20px 0; }
  .cxv-home-hero { padding-top: 0; }
  .cxv-hero-copy { padding: 0; }
}

/* Full-width image and short statement, following the CEO's corporate direction. */
.cxv-home-hero { position: relative; isolation: isolate; padding: 0; background: #16334f; }
.cxv-hero-landscape { position: absolute; inset: 0; z-index: -1; margin: 0; }
.cxv-hero-landscape picture, .cxv-hero-landscape img { display: block; width: 100%; height: 100%; }
.cxv-hero-landscape img { object-fit: cover; object-position: 50% 50%; }
.cxv-hero-landscape::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg,rgba(9,30,51,.36),rgba(9,30,51,.12) 60%,transparent 80%); }
.cxv-hero-grid { display: flex; align-items: center; min-height: 534px; }
.cxv-hero-copy { padding: 58px 0 65px; max-width: 650px; }
.cxv-home .cxv-hero-copy .cxv-eyebrow { color: #fff; font-size: 12px; letter-spacing: .12em; margin-bottom: 18px; }
.cxv-home .cxv-hero-copy h1 { color: #fff; font-family: var(--cxv-font); font-weight: 650; font-size: clamp(38px,4.1vw,58px); line-height: 1.55; letter-spacing: -.035em; margin-bottom: 19px; white-space: normal; }
.cxv-hero-copy .cxv-hero-lead { color: #fff; font-size: 15px; line-height: 2; margin-bottom: 30px; }
.cxv-hero-copy .cxv-button { background: #fff; border-color: #fff; color: #203d71; }
.cxv-hero-copy .cxv-button:hover { background: #eaf0f7; border-color: #eaf0f7; }
.cxv-hero-copy .cxv-text-link { color: #fff; border-color: rgba(255,255,255,.75); }
.cxv-hero-copy a:focus-visible { outline-color: #fff; }
@media (max-width: 1100px) {
  .cxv-hero-grid { min-height: 485px; }
  .cxv-home .cxv-hero-copy h1 { font-size: 47px; }
}
@media (max-width: 760px) {
  .cxv-hero-grid { min-height: 475px; align-items: center; }
  .cxv-hero-copy { padding: 43px 0 56px; }
  .cxv-home .cxv-hero-copy h1 { font-size: clamp(32px,7.5vw,45px); line-height: 1.55; }
  .cxv-home .cxv-hero-copy .cxv-eyebrow { font-size: 10px; }
  .cxv-hero-copy .cxv-hero-lead { font-size: 13px; line-height: 2.05; max-width: 330px; }
  .cxv-hero-copy .cxv-actions { flex-direction: row; align-items: center; }
  .cxv-hero-copy .cxv-text-link { font-size: 11px; }
  .cxv-hero-landscape img { object-position: 86% 50%; }
  .cxv-hero-landscape::after { background: rgba(9,30,51,.65); }
}
@media print {
  .cxv-hero-landscape { display: none; }
  .cxv-home-hero { background: #fff; }
  .cxv-hero-grid { display: block; min-height: 0; }
  .cxv-hero-copy { padding: 15px 0; }
  .cxv-home .cxv-hero-copy h1,.cxv-home .cxv-hero-copy .cxv-eyebrow,.cxv-hero-copy .cxv-hero-lead,.cxv-hero-copy .cxv-text-link { color: #182d47; }
}
