@charset "UTF-8";

/************************************/
/* Root Variables */
/************************************/

:root {
  /* Color */
  --color-bg: #FFFFFF;
  --color-text: #111111;
  --color-gray-light: #F5F5F5;
  --color-gray: #EEEEEE;
  --color-border: #DDDDDD;
  --color-accent-red: #FF5A36;
  --color-accent-blue: #2F80ED;
  --color-accent-yellow: #FFC700;
  --color-primary: #111111;

  /* Font */
  --font-family-main: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  --font-family-en: "Inter", "Helvetica Neue", Arial, sans-serif;

  /* Font Size — 全体的に2px UP */
  --fz-xs: 13px;
  --fz-s: 15px;
  --fz-m: 16px;
  --fz-l: 18px;
  --fz-xl: 24px;
  --fz-xxl: 32px;
  --fz-display: 48px;

  /* Space */
  --space-xs: 8px;
  --space-s: 16px;
  --space-m: 24px;
  --space-l: 40px;
  --space-xl: 64px;
  --space-xxl: 96px;

  /* Section common padding */
  --sec-py-sp: 56px;
  --sec-py-pc: 80px;

  /* Layout */
  --container-w: 1120px;
  --header-h: 64px;
  --header-h-pc: 80px;
}

/************************************/
/* CSS Reset */
/************************************/

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{font-size:16px;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;}
body{min-height:100vh;line-height:1.5;font-family:var(--font-family-main);color:var(--color-text);background-color:var(--color-bg);}
h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit;line-height:1.2;}
ul,ol{list-style:none;}
a{color:inherit;text-decoration:none;}
img,picture,video,canvas,svg{display:block;max-width:100%;height:auto;}
button,input,textarea,select{font:inherit;color:inherit;background:none;border:none;outline:none;}
button{cursor:pointer;}
table{border-collapse:collapse;border-spacing:0;}

/* Focus Style */
a:focus,button:focus,input:focus,textarea:focus,select:focus{outline:2px solid var(--color-primary);outline-offset:2px;}

body {
  font-family: var(--font-family-main);
  letter-spacing: 0.02em;
  font-feature-settings: "palt" 1;
  -webkit-font-kerning: auto;
  font-kerning: auto;
}

/************************************/
/* Display Utility */
/************************************/

.u-show{display:block !important;}
.u-hide{display:none !important;}

.u-sp-only{display:block !important;}
.u-pc-only{display:none !important;}
@media (min-width: 1024px) {
  .u-sp-only{display:none !important;}
  .u-pc-only{display:block !important;}
}

.u-tb-only{display:none !important;}
@media (min-width: 768px) and (max-width: 1023px) {
  .u-tb-only{display:block !important;}
}

/************************************/
/* Common Layout */
/************************************/

.l-container {width:100%;max-width:var(--container-w);margin:0 auto;padding:0 20px;}
@media (min-width:768px) {
  .l-container {padding:0 40px;}
}

/* ==========================================
  Common Section
========================================== */

.each_sec {padding:var(--sec-py-sp) 0;}
@media (min-width:768px) {
  .each_sec {padding:var(--sec-py-pc) 0;}
}

/* ==========================================
  Common Title
========================================== */

.c-title {font-size:28px;font-weight:900;letter-spacing:0.01em;line-height:1.2;color:var(--color-text);text-align:center;margin-bottom:24px;}
@media (min-width:768px) {
  .c-title {font-size:38px;text-align:left;margin-bottom:32px;}
}

/* ==========================================
  Common Button
========================================== */

.c-button {display:inline-flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 24px;min-width:180px;font-size:var(--fz-s);font-weight:700;border-radius:2px;transition:all 0.3s ease;cursor:pointer;position:relative;overflow:hidden;}
.c-button__arrow {font-size:16px;transition:transform 0.3s ease;}
.c-button:hover .c-button__arrow {transform:translateX(4px);}
.c-button--primary {background:var(--color-text);color:#fff;}
.c-button--primary:hover {background:#000;transform:translateY(-2px);}
/* 小さなハイライト線 — 遊び心 */
.c-button--primary::after {content:"";position:absolute;top:0;left:-100%;width:40%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.12),transparent);transition:left 0.5s ease;}
.c-button--primary:hover::after {left:160%;}
.c-button--outline {background:#fff;color:var(--color-text);border:1.5px solid var(--color-text);}
.c-button--outline:hover {background:var(--color-text);color:#fff;transform:translateY(-2px);}

@media (min-width:768px) {
  .c-button {padding:16px 28px;font-size:var(--fz-m);min-width:200px;}
}

/* ==========================================
  Common Section More (右下リンク・ボタン)
========================================== */

.c-sec-more {display:flex;justify-content:center;margin-top:24px;}
.c-sec-more__link {font-size:var(--fz-xs);font-weight:700;color:var(--color-text);transition:opacity 0.2s ease;border-bottom:1px solid var(--color-text);padding-bottom:2px;}
.c-sec-more__link:hover {opacity:0.6;}
.c-sec-more__btn {min-width:220px;}

@media (min-width:768px) {
  .c-sec-more {justify-content:flex-end;margin-top:32px;}
  .c-sec-more__link {font-size:var(--fz-s);}
}

/* ==========================================
  Header
========================================== */

.l-header {position:fixed;top:0;left:0;width:100%;height:var(--header-h);background:#fff;z-index:1000;border-bottom:1px solid var(--color-border);transition:box-shadow 0.3s ease;}
.l-header.is-scrolled {box-shadow:0 2px 20px rgba(0,0,0,0.06);}
.l-header__inner {height:100%;max-width:var(--container-w);margin:0 auto;padding:0 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;}
.l-header__logo {display:flex;flex-direction:column;line-height:1.1;white-space:nowrap;min-width:0;}
.l-header__logo-main {font-family:var(--font-family-en);font-size:20px;font-weight:900;letter-spacing:0.02em;color:var(--color-text);}
/* Logoの「ZERO」部分に極細ドットアクセント */
.l-header__logo-main span {position:relative;}
.l-header__logo-main span::after {content:"";display:inline-block;width:5px;height:5px;background:var(--color-accent-red);border-radius:50%;margin-left:1px;vertical-align:top;margin-top:4px;}
.l-header__logo-sub {font-size:10px;font-weight:500;color:var(--color-text);margin-top:2px;}

/* SP: PCナビ非表示 */
.l-header__nav {display:none;}

/* SP: 参加するCTA */
.l-header__sp-cta {display:inline-flex;align-items:center;justify-content:center;padding:8px 14px;background:var(--color-accent-red);color:#fff;font-size:13px;font-weight:700;border-radius:2px;white-space:nowrap;margin-left:auto;}
.l-header__sp-cta:hover {opacity:0.85;}

.l-header__menu-btn {width:40px;height:40px;background:var(--color-text);border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative;flex-shrink:0;}
.l-header__menu-btn-icon {position:relative;width:16px;height:2px;background:#fff;display:block;}
.l-header__menu-btn-icon::before,
.l-header__menu-btn-icon::after {content:"";position:absolute;left:0;width:16px;height:2px;background:#fff;transition:transform 0.3s ease;}
.l-header__menu-btn-icon::before {top:-5px;}
.l-header__menu-btn-icon::after {top:5px;}
.l-header__menu-btn.is-open .l-header__menu-btn-icon {background:transparent;}
.l-header__menu-btn.is-open .l-header__menu-btn-icon::before {transform:translateY(5px) rotate(45deg);}
.l-header__menu-btn.is-open .l-header__menu-btn-icon::after {transform:translateY(-5px) rotate(-45deg);}

@media (min-width:768px) {
  .l-header__logo-main {font-size:24px;}
  .l-header__logo-sub {font-size:11px;}
  .l-header__sp-cta {font-size:14px;padding:10px 18px;}
}

@media (min-width:1024px) {
  .l-header {height:var(--header-h-pc);}
  .l-header__inner {padding:0 32px;}
  .l-header__nav {display:block !important;margin-left:auto;}
  .l-header__nav-list {display:flex;align-items:center;gap:28px;}
  .l-header__nav-item a {font-size:var(--fz-s);font-weight:700;transition:opacity 0.2s ease;}
  .l-header__nav-item a:hover {opacity:0.6;}
  .l-header__nav-item--cta a {background:var(--color-accent-red);color:#fff;padding:10px 22px;border-radius:2px;font-weight:700;transition:opacity 0.2s ease;}
  .l-header__nav-item--cta a:hover {opacity:0.85;}
  .l-header__sp-cta {display:none !important;}
  .l-header__menu-btn {display:none !important;}
}

/* ==========================================
  Drawer Menu (SP)
========================================== */

.l-drawer {position:fixed;top:var(--header-h);left:0;width:100%;height:calc(100vh - var(--header-h));background:#fff;z-index:999;transform:translateX(100%);transition:transform 0.4s cubic-bezier(0.22,0.61,0.36,1);border-top:1px solid var(--color-border);}
.l-drawer.is-open {transform:translateX(0);}
.l-drawer__nav {padding:40px 20px;}
.l-drawer__list {display:flex;flex-direction:column;gap:0;}
.l-drawer__item {border-bottom:1px solid var(--color-border);}
.l-drawer__item a {display:flex;align-items:center;justify-content:space-between;padding:20px 0;font-size:18px;font-weight:700;}
/* ドロワーアイテムに右の小さな矢印 */
.l-drawer__item a::after {content:"→";font-size:14px;opacity:0.3;}

@media (min-width:1024px) {
  .l-drawer {display:none !important;}
}

/* ==========================================
  Hero
========================================== */

.p-hero {position:relative;padding-top:var(--header-h);background:#fff;overflow:hidden;}

/* 背景デコ */
.p-hero__bg {position:absolute;top:0;left:0;width:100%;height:100%;line-height:0;pointer-events:none;z-index:1;}

/* 右上の小さなカラードット群 — 遊び心 */
.p-hero__bg-dots {position:absolute;top:var(--header-h);right:0;width:220px;height:220px;background:radial-gradient(circle,rgba(255,90,54,0.18) 1.5px,transparent 1.5px) 0 0 / 14px 14px,radial-gradient(circle,rgba(47,128,237,0.12) 1.5px,transparent 1.5px) 7px 7px / 14px 14px;opacity:1;z-index:1;}

/* 小さなカラーバー群 */
.p-hero__bg-bar1 {position:absolute;bottom:80px;left:0;width:4px;height:48px;background:var(--color-accent-yellow);z-index:2;}
.p-hero__bg-bar2 {position:absolute;bottom:56px;left:12px;width:4px;height:28px;background:var(--color-accent-blue);opacity:0.5;z-index:2;}

.p-hero__illust {display:block;width:100%;max-width:var(--container-w);height:auto;margin:0 auto;padding:100px 0 0;}
.p-hero__illust--sp {max-width:100%;height:auto;opacity:0.55;}

.p-hero__inner {position:relative;z-index:2;width:100%;max-width:var(--container-w);margin:0 auto;padding:0;}

.p-hero__content {
  padding:32px 20px 48px;
  background:linear-gradient(to right, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0) 100%);
}
.p-hero__title {
  font-size:34px;
  font-weight:900;
  line-height:1.18;
  letter-spacing:-0.05em;
  color:var(--color-text);
  margin-bottom:18px;
}
.p-hero__title-dot {color:var(--color-accent-red);}
.p-hero__lead {
  font-size:var(--fz-m);
  font-weight:500;
  line-height:1.7;
  color:var(--color-text);
  margin-bottom:24px;
}
.p-hero__buttons {display:flex;flex-direction:column;gap:12px;align-items:flex-start;}

@media (min-width:1024px) {
  .p-hero {padding-top:120px;min-height:calc(var(--container-w) * 0.45 + var(--header-h-pc));}
  .p-hero__content {
    padding:72px 40px 80px;
    max-width:50%;
    background:none;
  }
  .p-hero__title {font-size:58px;letter-spacing:-0.06em;margin-bottom:32px;}
  .p-hero__lead {font-size:var(--fz-l);margin-bottom:40px;}
  .p-hero__buttons {flex-direction:row;gap:16px;}
}

/* ==========================================
  News
========================================== */

.p-news__list {border-top:1px solid var(--color-border);}
.p-news__item {border-bottom:1px solid var(--color-border);}
.p-news__link {display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:18px 0;transition:opacity 0.2s ease;}
.p-news__link:hover {opacity:0.6;}
.p-news__date {font-family:var(--font-family-en);font-size:var(--fz-xs);font-weight:500;color:var(--color-text);min-width:80px;}
.p-news__text {font-size:var(--fz-s);font-weight:700;line-height:1.5;color:var(--color-text);}
.p-news__arrow {font-size:16px;color:var(--color-text);}

@media (min-width:768px) {
  .p-news__link {gap:32px;padding:22px 0;}
  .p-news__date {font-size:var(--fz-s);min-width:100px;}
  .p-news__text {font-size:var(--fz-m);}
}

/* ==========================================
  About
========================================== */

.p-about__lead {font-size:var(--fz-s);font-weight:500;line-height:1.8;margin-bottom:32px;color:var(--color-text);text-align:center;}
.p-about__cards {display:flex;flex-direction:column;gap:24px;}

.p-about__card {display:flex;align-items:center;gap:16px;text-align:left;}
.p-about__card-icon {width:90px;height:90px;flex-shrink:0;display:flex;align-items:center;justify-content:center;}
.p-about__card-icon-img {width:100%;height:100%;object-fit:contain;}
.p-about__card-body {flex:1;min-width:0;}
.p-about__card-title {font-size:18px;font-weight:900;margin-bottom:8px;color:var(--color-text);}
.p-about__card-text {font-size:var(--fz-xs);font-weight:500;line-height:1.7;color:var(--color-text);}

@media (min-width:768px) {
  .p-about__lead {font-size:var(--fz-m);margin-bottom:18px;text-align:left;}
  .p-about__cards {flex-direction:row;gap:32px;}
  .p-about__card {flex:1;flex-direction:column;text-align:center;gap:16px;}
  .p-about__card-icon {width:160px;height:160px;margin:0 auto;}
  .p-about__card-body {width:100%;}
  .p-about__card-title {font-size:22px;margin-bottom:14px;}
  .p-about__card-text {font-size:var(--fz-s);line-height:1.8;}
}

/* ==========================================
  Manifest
========================================== */

.p-manifest__grid {display:grid;grid-template-columns:repeat(3, 1fr);gap:10px;}
.p-manifest__card {padding:14px 10px;background:#fff;border:1px solid var(--color-border);transition:transform 0.3s ease;}
/* ホバー時に色border線が出る — 遊び心 */
.p-manifest__card:hover {transform:translateY(-4px);border-color:var(--color-text);}
.p-manifest__card-head {display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;gap:6px;flex-direction:column;}
.p-manifest__card-num {font-family:var(--font-family-en);font-size:22px;font-weight:900;line-height:1;flex-shrink:0;}
.p-manifest__card-num--yellow {color:var(--color-accent-yellow);}
.p-manifest__card-num--blue {color:var(--color-accent-blue);}
.p-manifest__card-num--red {color:var(--color-accent-red);}
.p-manifest__card-icon {width:42px;height:auto;flex-shrink:0;object-fit:contain;}
.p-manifest__card-title {font-size:13px;font-weight:900;line-height:1.4;margin-bottom:8px;color:var(--color-text);padding-bottom:8px;border-bottom:1px solid var(--color-border);text-align:center;}
.p-manifest__card-text {font-size:11px;font-weight:500;line-height:1.6;color:var(--color-text);}

@media (min-width:768px) {
  .p-manifest__grid {grid-template-columns:repeat(3, 1fr);gap:16px;}
  .p-manifest__card {padding:20px 16px;}
  .p-manifest__card-num {font-size:30px;}
  .p-manifest__card-icon {width:56px;}
  .p-manifest__card-title {font-size:16px;text-align:left;}
  .p-manifest__card-text {font-size:var(--fz-xs);line-height:1.7;}
}

@media (min-width:1024px) {
  .p-manifest__grid {grid-template-columns:repeat(5, 1fr);gap:16px;}
  .p-manifest__card {padding:24px 20px;}
  .p-manifest__card-num {font-size:36px;}
  .p-manifest__card-icon {width:64px;}
  .p-manifest__card-title {font-size:17px;}
}

/* ==========================================
  Issue
========================================== */

.p-issue__lead {font-size:var(--fz-s);font-weight:500;margin-top:-16px;margin-bottom:32px;color:var(--color-text);text-align:center;}
.p-issue__content {display:flex;flex-direction:column;gap:32px;}
.p-issue__visual {width:100%;max-width:400px;margin:0 auto;}
.p-issue__illust {width:100%;height:auto;}
.p-issue__stats {display:grid;grid-template-columns:1fr 1fr;gap:24px 16px;}
.p-issue__stat {display:flex;flex-direction:column;gap:6px;}
.p-issue__stat-num {font-family:var(--font-family-en);font-size:38px;font-weight:900;line-height:1;color:var(--color-text);letter-spacing:-0.02em;}
.p-issue__stat-prefix {font-size:var(--fz-s);font-weight:700;margin-right:4px;}
.p-issue__stat-unit {font-family:var(--font-family-main);font-size:17px;font-weight:700;margin-left:2px;}
.p-issue__stat-label {font-size:16px;font-weight:500;color:var(--color-text);}

@media (min-width:768px) {
  .p-issue__lead {font-size:var(--fz-m);text-align:left;margin-top:-24px;margin-bottom:40px;}
  .p-issue__content {flex-direction:row;align-items:center;gap:60px;}
  .p-issue__visual {flex:1;margin:0;}
  .p-issue__stats {flex:1;gap:32px 24px;}
  .p-issue__stat-num {font-size:54px;}
}

/* ==========================================
  Join
========================================== */

.p-join__inner {
  /* padding-top で画像比率(429/1500)を完全再現 */
  position: relative;
  width: 100%;
  padding-top: 28.6%;
  border-radius: 4px;
  overflow: hidden;
  background: url('../img/cta-bg.png') center center / 100% 100% no-repeat;
}
.p-join__inner::before {content: none;}
.p-join__inner::after {content: none;}

.p-join__content {
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  z-index: 1;
  padding: 0 5%;
}
.p-join__title {
  font-size: clamp(18px, 3vw, 42px);
  font-weight: 900;
  line-height: 1.3;
  margin-bottom: 1em;
  color: var(--color-text);
  letter-spacing: -0.05em;
}
.p-join__title br {display: block;}
/* ==========================================
  Footer
========================================== */

.l-footer {padding:48px 0 24px;background:#fff;border-top:1px solid var(--color-border);}
.l-footer__top {display:flex;flex-direction:column;gap:32px;margin-bottom:32px;}
.l-footer__contact-title {font-family:var(--font-family-en);font-size:32px;font-weight:900;margin-bottom:14px;color:var(--color-text);}
.l-footer__contact-text {font-size:var(--fz-xs);font-weight:500;line-height:1.7;margin-bottom:14px;color:var(--color-text);}
.l-footer__contact-tel {font-size:var(--fz-s);font-weight:700;margin-bottom:12px;color:var(--color-text);}
.l-footer__contact-tel span {font-size:var(--fz-xs);font-weight:500;margin-left:4px;}
.l-footer__contact-link {font-size:var(--fz-s);font-weight:700;color:var(--color-text);border-bottom:1px solid var(--color-text);padding-bottom:2px;transition:opacity 0.2s ease;}
.l-footer__contact-link:hover {opacity:0.6;}
.l-footer__illust {max-width:140px;margin:0 auto;}
.l-footer__illust-img {width:100%;height:auto;display:block;}
.l-footer__nav-list {display:flex;flex-direction:column;gap:10px;}
.l-footer__nav-list a {font-size:var(--fz-s);font-weight:500;color:var(--color-text);transition:opacity 0.2s ease;}
.l-footer__nav-list a:hover {opacity:0.6;}
.l-footer__sns {display:flex;gap:20px;align-items:center;}
.l-footer__sns-link {color:var(--color-text);transition:opacity 0.2s ease;display:flex;align-items:center;justify-content:center;}
.l-footer__sns-link:hover {opacity:0.6;}
.l-footer__bottom {display:flex;flex-direction:column;gap:14px;padding-top:24px;border-top:1px solid var(--color-border);}
.l-footer__brand {display:flex;flex-direction:column;line-height:1.1;}
.l-footer__brand-main {font-family:var(--font-family-en);font-size:18px;font-weight:900;letter-spacing:0.02em;color:var(--color-text);}
.l-footer__brand-sub {font-size:11px;font-weight:500;color:var(--color-text);margin-top:2px;}
.l-footer__copy {font-size:var(--fz-xs);font-weight:500;color:var(--color-text);}

@media (min-width:768px) {
  .l-footer {padding:64px 0 32px;}
  .l-footer__top {display:grid;grid-template-columns:1.5fr 0.8fr 1fr;gap:40px;align-items:start;}
  .l-footer__illust {grid-column:2;margin:0;}
  .l-footer__nav {grid-column:3;}
  .l-footer__sns {grid-column:3;justify-content:flex-end;margin-top:16px;}
  .l-footer__bottom {flex-direction:row;justify-content:space-between;align-items:center;}
}

@media (min-width:1024px) {
  .l-footer__top {grid-template-columns:1.4fr 0.6fr 1fr auto;}
  .l-footer__sns {grid-column:4;margin-top:0;}
}

/* ==========================================
  Sub Page Common - Hero
  ※ 縦accent帯を削除、代わりにハーフトーン＋シンプルな下線に
========================================== */

.p-sub-hero {position:relative;padding-top:var(--header-h);background:#fff;border-bottom:1px solid var(--color-border);overflow:hidden;}
.p-sub-hero__inner {max-width:var(--container-w);margin:0 auto;padding:0 20px;height:160px;display:flex;align-items:center;position:relative;z-index:1;}
.p-sub-hero__bg {position:absolute;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none;}
/* ドットパターンのみ — 縦帯accent削除済み */
.p-sub-hero__bg-dot {position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle,rgba(0,0,0,0.07) 1px,transparent 1px) 0 0 / 14px 14px;opacity:1;}
/* 右下に小さなカラードット3点 — 赤・青・黄 */
.p-sub-hero__bg-playful {position:absolute;bottom:24px;right:44px;display:flex;gap:10px;align-items:center;}
.p-sub-hero__bg-playful::before {content:"";display:block;width:10px;height:10px;background:var(--color-accent-red);border-radius:50%;}
.p-sub-hero__bg-playful-mid {display:block;width:8px;height:8px;background:var(--color-accent-blue);border-radius:50%;}
.p-sub-hero__bg-playful::after {content:"";display:block;width:7px;height:7px;background:var(--color-accent-yellow);border-radius:50%;}

@media (min-width:768px) {
  .p-sub-hero__bg-playful {bottom:32px;right:80px;}
  .p-sub-hero__bg-playful::before {width:12px;height:12px;}
  .p-sub-hero__bg-playful-mid {width:9px;height:9px;}
  .p-sub-hero__bg-playful::after {width:8px;height:8px;}
}

.p-sub-hero__content {position:relative;z-index:1;}
.p-sub-hero__label {font-family:var(--font-family-en);font-size:11px;font-weight:700;letter-spacing:0.1em;color:var(--color-accent-red);text-transform:uppercase;margin-bottom:8px;display:block;}
.p-sub-hero__title {font-size:32px;font-weight:900;letter-spacing:-0.04em;line-height:1.1;color:var(--color-text);}

@media (min-width:768px) {
  .p-sub-hero {padding-top:var(--header-h-pc);}
  .p-sub-hero__inner {height:200px;padding:0 40px;}
  .p-sub-hero__title {font-size:52px;}
}

/* ==========================================
  Sub Page Common - Breadcrumb
========================================== */

.c-breadcrumb {padding:12px 0;border-bottom:1px solid var(--color-border);margin-bottom:20px;}
.c-breadcrumb__inner {max-width:var(--container-w);margin:0 auto;padding:0 20px;}
.c-breadcrumb__list {display:flex;gap:8px;align-items:center;}
.c-breadcrumb__item {font-size:12px;font-weight:500;color:var(--color-text);}
.c-breadcrumb__item a {color:var(--color-text);opacity:0.6;transition:opacity 0.2s;}
.c-breadcrumb__item a:hover {opacity:1;}
.c-breadcrumb__sep {font-size:11px;color:var(--color-border);}

@media (min-width:768px) {
  .c-breadcrumb__inner {padding:0 40px;}
  .c-breadcrumb__item {font-size:13px;}
}

/* ==========================================
  Sub Page Common - Content Layout
========================================== */

.p-sub-body {padding:48px 0 80px;}
@media (min-width:768px) {
  .p-sub-body {padding:44px 0 96px;}
}

/* ==========================================
  About Page
========================================== */

.p-about-page__lead-block {margin-bottom:56px;}
.p-about-page__lead {font-size:var(--fz-m);font-weight:500;line-height:2;color:var(--color-text);max-width:720px;}

.p-about-page__zero {margin-bottom:56px;}
.p-about-page__zero-title {font-size:13px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--color-accent-red);margin-bottom:24px;font-family:var(--font-family-en);}
.p-about-page__zero-grid {display:flex;flex-direction:column;gap:1px;border-top:1px solid var(--color-border);}
.p-about-page__zero-item {display:flex;align-items:flex-start;gap:20px;padding:24px 0;border-bottom:1px solid var(--color-border);}
.p-about-page__zero-num {font-family:var(--font-family-en);font-size:36px;font-weight:900;line-height:1;flex-shrink:0;width:60px;}
.p-about-page__zero-num--red {color:var(--color-accent-red);}
.p-about-page__zero-num--blue {color:var(--color-accent-blue);}
.p-about-page__zero-num--yellow {color:var(--color-accent-yellow);}
.p-about-page__zero-body {}
.p-about-page__zero-label {font-size:20px;font-weight:900;margin-bottom:8px;color:var(--color-text);}
.p-about-page__zero-text {font-size:var(--fz-s);font-weight:500;line-height:1.8;color:var(--color-text);}

@media (min-width:768px) {
  .p-about-page__zero-grid {flex-direction:row;gap:0;border-bottom:none;}
  .p-about-page__zero-item {flex-direction:column;gap:12px;border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);flex:1;padding:28px 24px;}
  .p-about-page__zero-item:last-child {border-right:none;}
  .p-about-page__zero-num {font-size:48px;width:auto;}
}

.p-about-page__data {background:var(--color-gray-light);padding:40px 24px;margin-bottom:56px;}
.p-about-page__data-title {font-size:22px;font-weight:900;margin-bottom:32px;color:var(--color-text);}
.p-about-page__data-grid {display:grid;grid-template-columns:1fr 1fr;gap:28px 16px;}
.p-about-page__data-stat {}
.p-about-page__data-num {font-family:var(--font-family-en);font-size:40px;font-weight:900;line-height:1;color:var(--color-text);letter-spacing:-0.02em;margin-bottom:6px;}
.p-about-page__data-num2 {font-size:30px;}
.p-about-page__data-unit {font-family:var(--font-family-main);font-size:17px;font-weight:700;}
.p-about-page__data-prefix {font-size:var(--fz-s);font-weight:700;margin-right:2px;}
.p-about-page__data-label {font-size:var(--fz-xs);font-weight:500;color:var(--color-text);}
.p-about-page__data-note {font-size:12px;font-weight:500;color:#888;margin-top:20px;}

@media (min-width:768px) {
  .p-about-page__data {padding:48px 40px;}
  .p-about-page__data-grid {grid-template-columns:repeat(4, 1fr);gap:32px;}
  .p-about-page__data-num {font-size:52px;}
}

/* vision: border-leftのAI感ありデザインを廃止。
   代わりにシンプルな引用スタイル — 上に細いラインのみ */
.p-about-page__vision {padding:28px 0 0;margin-top:4px;}
.p-about-page__vision::before {content:"";display:block;width:40px;height:3px;background:var(--color-accent-red);margin-bottom:20px;}
.p-about-page__vision-text {font-size:var(--fz-m);font-weight:500;line-height:2;color:var(--color-text);}
.p-about-page__vision-author {margin-top:16px;font-size:13px;font-weight:700;color:var(--color-text);}

/* ==========================================
  Manifest Page
========================================== */

.p-manifest-page__intro {font-size:var(--fz-m);font-weight:500;line-height:1.9;max-width:720px;margin-bottom:48px;color:var(--color-text);}
.p-manifest-page__list {display:flex;flex-direction:column;gap:0;border-top:1px solid var(--color-border);}
.p-manifest-page__item {border-bottom:1px solid var(--color-border);padding:32px 0;}
.p-manifest-page__item-inner {display:flex;align-items:flex-start;gap:20px;}
.p-manifest-page__item-num {font-family:var(--font-family-en);font-size:48px;font-weight:900;line-height:1;flex-shrink:0;width:64px;}
.p-manifest-page__item-num--yellow {color:var(--color-accent-yellow);}
.p-manifest-page__item-num--blue {color:var(--color-accent-blue);}
.p-manifest-page__item-num--red {color:var(--color-accent-red);}
.p-manifest-page__item-body {flex:1;}
.p-manifest-page__item-head {display:flex;align-items:flex-start;gap:16px;margin-bottom:12px;}
.p-manifest-page__item-icon {width:40px;height:40px;flex-shrink:0;object-fit:contain;}
.p-manifest-page__item-title {font-size:20px;font-weight:900;color:var(--color-text);line-height:1.3;}
.p-manifest-page__item-text {font-size:var(--fz-s);font-weight:500;line-height:1.9;color:var(--color-text);}
.p-manifest-page__item-tags {display:flex;flex-wrap:wrap;gap:6px;margin-top:14px;}
.p-manifest-page__item-tag {font-size:11px;font-weight:700;padding:4px 10px;border:1px solid var(--color-border);border-radius:2px;color:var(--color-text);}

@media (min-width:768px) {
  .p-manifest-page__item {padding:40px 0;}
  .p-manifest-page__item-inner {gap:32px;}
  .p-manifest-page__item-num {font-size:64px;width:80px;}
  .p-manifest-page__item-title {font-size:24px;}
  .p-manifest-page__item-text {font-size:var(--fz-m);}
}

/* ==========================================
  Member Page
========================================== */

/* Community Page: キービジュアル */
.p-community-page__kv {width:100%;margin-bottom:0;overflow:hidden;background:#fff;margin: 30px 0;}
.p-community-page__kv-img {width:100%;height:auto;display:block;max-height:320px;object-fit:cover;object-position:center top;}

@media (min-width:768px) {
  .p-community-page__kv-img {max-height:420px;}
}

@media (min-width:1024px) {
  .p-community-page__kv-img {max-height:480px;}
}

.p-member-page__intro {font-size:var(--fz-m);font-weight:500;line-height:1.9;max-width:100%;margin-bottom:48px;color:var(--color-text);}

/* leaderのborder-leftをaccent上線スタイルに変更 */
.p-member-page__leader {margin-bottom:56px;padding:32px;background:var(--color-gray-light);position:relative;overflow:hidden;}
/* 左上の小さな3色ドット — ブランディング遊び心 */
/*.p-member-page__leader::before {content:"";position:absolute;top:0;left:0;width:100%;height:3px;background:linear-gradient(90deg,var(--color-accent-red) 0%,var(--color-accent-red) 33%,var(--color-accent-blue) 33%,var(--color-accent-blue) 66%,var(--color-accent-yellow) 66%,var(--color-accent-yellow) 100%);}*/
.p-member-page__leader-label {font-family:var(--font-family-en);font-size:13px;font-weight:700;letter-spacing:0.1em;color:var(--color-accent-red);margin-bottom:12px;display:block;}
.p-member-page__leader-inner {display:flex;flex-direction:column;gap:24px;}
.p-member-page__leader-photo {width:160px;height:200px;object-fit:cover;flex-shrink:0;}
.p-member-page__leader-photo-wrap {width:160px;height:200px;background:var(--color-gray);flex-shrink:0;overflow:hidden;}
.p-member-page__leader-body {}
.p-member-page__leader-name {font-size:28px;font-weight:900;margin-bottom:4px;color:var(--color-text);}
.p-member-page__leader-role {font-size:13px;font-weight:700;color:var(--color-accent-red);margin-bottom:16px;}
.p-member-page__leader-text {font-size:var(--fz-s);font-weight:500;line-height:1.8;color:var(--color-text);}
.p-member-page__leader-tags {display:flex;flex-wrap:wrap;gap:6px;margin-top:16px;}
.p-member-page__leader-tag {font-size:11px;font-weight:700;padding:4px 10px;border:1px solid var(--color-border);border-radius:2px;}

@media (min-width:768px) {
  .p-member-page__leader-inner {flex-direction:row;gap:32px;}
  .p-member-page__leader-name {font-size:34px;}
}

.p-member-page__section-title {font-size:var(--fz-s);font-weight:700;letter-spacing:0.08em;color:var(--color-accent-red);font-family:var(--font-family-en);margin-bottom:20px;}

.p-member-page__grid {display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--color-border);border:1px solid var(--color-border);margin-bottom:56px;}
.p-member-page__card {background:#fff;padding:20px 16px;transition:background 0.2s ease;}
.p-member-page__card:hover {background:var(--color-gray-light);}
.p-member-page__card-area {font-size:11px;font-weight:700;letter-spacing:0.08em;color:var(--color-accent-blue);margin-bottom:6px;font-family:var(--font-family-en);}
.p-member-page__card-name {font-size:17px;font-weight:900;margin-bottom:4px;color:var(--color-text);}
.p-member-page__card-company {font-size:12px;font-weight:500;color:#666;margin-bottom:8px;}
.p-member-page__card-specialty {font-size:11px;font-weight:700;padding:3px 8px;border:1px solid var(--color-border);border-radius:2px;display:inline-block;}
.p-member-page__card-photo {width:100%;height: 150px;background:var(--color-gray);object-fit:cover;margin-bottom:12px;display:block;}

@media (min-width:768px) {
  .p-member-page__grid {grid-template-columns:repeat(3, 1fr);}
  .p-member-page__card {padding:24px 20px;}
  .p-member-page__card-name {font-size:18px;}
  .p-member-page__card-photo {height:150px;}
}

@media (min-width:1024px) {
  .p-member-page__grid {grid-template-columns:repeat(5, 1fr);}
}

.p-member-page__advisor {margin-bottom:48px;}
.p-member-page__advisor-grid {display:flex;flex-direction:column;gap:0;border-top:1px solid var(--color-border);}
.p-member-page__advisor-item {display:flex;align-items:flex-start;gap:16px;padding:20px 0;border-bottom:1px solid var(--color-border);}
.p-member-page__advisor-photo {width:72px;height:72px;object-fit:cover;flex-shrink:0;background:var(--color-gray);}
.p-member-page__advisor-body {}
.p-member-page__advisor-role {font-size:11px;font-weight:700;letter-spacing:0.08em;color:var(--color-accent-red);margin-bottom:4px;font-family:var(--font-family-en);}
.p-member-page__advisor-name {font-size:18px;font-weight:900;margin-bottom:4px;}
.p-member-page__advisor-company {font-size:12px;font-weight:500;color:#666;margin-bottom:8px;}
.p-member-page__advisor-text {font-size:var(--fz-xs);font-weight:500;line-height:1.7;color:var(--color-text);}

@media (min-width:768px) {
  .p-member-page__advisor-grid {flex-direction:row;flex-wrap:wrap;gap:0;border-right:1px solid var(--color-border);}
  .p-member-page__advisor-item {flex-direction:column;width:calc(100% / 2);padding:24px 20px;border-right:none;border-bottom:1px solid var(--color-border);border-left:1px solid var(--color-border);}
  .p-member-page__advisor-photo {width:120px;height:120px;}
}

@media (min-width:1024px) {
  .p-member-page__advisor-item {width:calc(100% / 4);}
}

/* ==========================================
  News Page
========================================== */

.p-news-page__list {border-top:1px solid var(--color-border);}
.p-news-page__item {border-bottom:1px solid var(--color-border);}
.p-news-page__link {display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:12px;padding:20px 0;transition:opacity 0.2s ease;}
.p-news-page__link:hover {opacity:0.6;}
.p-news-page__cat {font-size:11px;font-weight:700;padding:3px 8px;border:1px solid var(--color-border);border-radius:2px;white-space:nowrap;}
.p-news-page__cat--info {border-color:var(--color-accent-blue);color:var(--color-accent-blue);}
.p-news-page__cat--press {border-color:var(--color-accent-red);color:var(--color-accent-red);}
.p-news-page__cat--event {border-color:var(--color-accent-yellow);color:var(--color-accent-yellow);}
.p-news-page__date {font-family:var(--font-family-en);font-size:var(--fz-xs);font-weight:500;color:var(--color-text);min-width:80px;}
.p-news-page__text {font-size:var(--fz-s);font-weight:700;line-height:1.5;}
.p-news-page__arrow {font-size:16px;}

@media (min-width:768px) {
  .p-news-page__link {gap:20px;padding:24px 0;}
  .p-news-page__date {font-size:var(--fz-s);min-width:100px;}
  .p-news-page__text {font-size:var(--fz-m);}
}

/* ==========================================
  News Detail Page
========================================== */

.p-news-detail__header {margin-bottom:32px;padding-bottom:24px;border-bottom:1px solid var(--color-border);}
.p-news-detail__meta {display:flex;align-items:center;gap:12px;margin-bottom:16px;}
.p-news-detail__date {font-family:var(--font-family-en);font-size:var(--fz-xs);font-weight:500;}
.p-news-detail__title {font-size:22px;font-weight:900;line-height:1.4;color:var(--color-text);}
.p-news-detail__body {font-size:var(--fz-s);font-weight:400;line-height:2;color:var(--color-text);max-width:760px;}
.p-news-detail__body h2 {font-size:20px;font-weight:900;margin:40px 0 16px;}
.p-news-detail__body h3 {font-size:17px;font-weight:900;margin:28px 0 12px;}
.p-news-detail__body p {margin-bottom:20px;}
.p-news-detail__body img {width:100%;height:auto;margin:28px 0;}
.p-news-detail__body ul {padding-left:20px;margin-bottom:20px;}
.p-news-detail__body ul li {margin-bottom:8px;list-style:disc;}
.p-news-detail__nav {margin-top:48px;padding-top:32px;border-top:1px solid var(--color-border);display:flex;justify-content:center;}

@media (min-width:768px) {
  .p-news-detail__title {font-size:30px;}
  .p-news-detail__body {font-size:var(--fz-m);}
}

/* ==========================================
  Join Page (参加する)
========================================== */

.p-join-page__intro {font-size:var(--fz-m);font-weight:500;line-height:1.9;max-width:720px;margin-bottom:48px;}
.p-join-page__types {display:flex;flex-direction:column;gap:24px;margin-bottom:56px;}
.p-join-page__type {padding:28px 24px;border:1px solid var(--color-border);}
.p-join-page__type-label {font-size:11px;font-weight:700;letter-spacing:0.1em;color:var(--color-accent-red);font-family:var(--font-family-en);margin-bottom:8px;display:block;}
.p-join-page__type-title {font-size:20px;font-weight:900;margin-bottom:12px;color:var(--color-text);}
.p-join-page__type-text {font-size:var(--fz-s);font-weight:500;line-height:1.8;color:var(--color-text);margin-bottom:20px;}
.p-join-page__type-btn {}

@media (min-width:768px) {
  .p-join-page__types {flex-direction:row;gap:0;}
  .p-join-page__type {flex:1;border-right:none;}
  .p-join-page__type:last-child {border-right:1px solid var(--color-border);}
  .p-join-page__type:first-child {border-right:1px solid var(--color-border);}
}

.p-join-page__form-section {max-width:640px;}
.p-join-page__form-title {font-size:22px;font-weight:900;margin-bottom:8px;color:var(--color-text);}
.p-join-page__form-lead {font-size:var(--fz-s);font-weight:500;line-height:1.8;margin-bottom:32px;color:var(--color-text);}
.p-join-page__form {display:flex;flex-direction:column;gap:20px;}
.p-join-page__form-group {display:flex;flex-direction:column;gap:6px;}
.p-join-page__form-label {font-size:var(--fz-s);font-weight:700;color:var(--color-text);}
.p-join-page__form-label span {font-size:11px;font-weight:700;color:var(--color-accent-red);margin-left:6px;}
.p-join-page__form-input {width:100%;padding:12px 14px;border:1px solid var(--color-border);font-size:var(--fz-s);background:#fff;border-radius:2px;color:var(--color-text);transition:border-color 0.2s ease;}
.p-join-page__form-input:focus {outline:none;border-color:var(--color-text);}
.p-join-page__form-textarea {min-height:120px;resize:vertical;}
.p-join-page__form-select {width:100%;padding:12px 14px;border:1px solid var(--color-border);font-size:var(--fz-s);background:#fff;border-radius:2px;color:var(--color-text);appearance:none;}
.p-join-page__form-submit {margin-top:8px;}

/* ==========================================
  Community Page
========================================== */

.p-community-page__hero-block {background:var(--color-text);color:#fff;padding:40px 24px;margin-bottom: 16px;}
.p-community-page__hero-label {font-family:var(--font-family-en);font-size:11px;font-weight:700;letter-spacing:0.1em;color:var(--color-accent-red);margin-bottom:12px;display:block;}
.p-community-page__hero-title {font-size:30px;font-weight:900;letter-spacing:-0.04em;line-height:1.2;margin-bottom:16px;}
.p-community-page__hero-lead {font-size:var(--fz-s);font-weight:400;line-height:1.9;opacity:0.85;}

@media (min-width:768px) {
  .p-community-page__hero-block {padding: 56px 48px;}
  .p-community-page__hero-title {font-size:42px;}
  .p-community-page__hero-lead {font-size:var(--fz-m);}
}

.p-community-page__features {margin-bottom:56px;}
.p-community-page__features-title {font-size:13px;font-weight:700;letter-spacing:0.08em;color:var(--color-accent-red);font-family:var(--font-family-en);margin-bottom:20px;}
.p-community-page__features-grid {display:flex;flex-direction:column;gap:0;border-top:1px solid var(--color-border);}
.p-community-page__feature {display:flex;align-items:flex-start;gap:16px;padding:24px 0;border-bottom:1px solid var(--color-border);}
.p-community-page__feature-icon {width:48px;height:48px;flex-shrink:0;background:var(--color-gray-light);display:flex;align-items:center;justify-content:center;font-family:var(--font-family-en);font-size:18px;font-weight:900;color:var(--color-accent-red);}
/* Tabler Icon inside feature-icon */
.p-community-page__feature-icon .ti {font-size:26px;line-height:1;}
.p-community-page__feature-body {}
.p-community-page__feature-title {font-size:17px;font-weight:900;margin-bottom:6px;color:var(--color-text);}
.p-community-page__feature-text {font-size:var(--fz-s);font-weight:500;line-height:1.8;color:var(--color-text);}

/* ==========================================
  Community Page: SVGイラストバナー
========================================== */

.p-community-page__illust-band {margin-bottom:48px;padding:40px 24px;background:var(--color-gray-light);position:relative;overflow:hidden;display:flex;flex-direction:column;gap:24px;align-items:flex-start;}
.p-community-page__illust-band-content {}
.p-community-page__illust-band-label {font-family:var(--font-family-en);font-size:11px;font-weight:700;letter-spacing:0.1em;color:var(--color-accent-red);margin-bottom:8px;display:block;}
.p-community-page__illust-band-title {font-size:22px;font-weight:900;line-height:1.3;margin-bottom:12px;letter-spacing:-0.02em;}
.p-community-page__illust-band-text {font-size:var(--fz-s);font-weight:500;line-height:1.8;color:var(--color-text);max-width:480px;}
.p-community-page__illust-svg {width:100%;max-width:320px;margin:0 auto;}

@media (min-width:768px) {
  .p-community-page__illust-band {flex-direction:row;align-items:center;gap:40px;padding:48px 48px;}
  .p-community-page__illust-band-content {flex:1.2;}
  .p-community-page__illust-svg {flex:0.8;max-width:280px;margin:0;}
  .p-community-page__illust-band-title {font-size:28px;}
}

@media (min-width:768px) {
  .p-community-page__features-grid {flex-direction:row;flex-wrap:wrap;border-right:1px solid var(--color-border);}
  .p-community-page__feature {flex-direction:column;gap:12px;width:50%;padding:28px 24px;border-right:none;border-bottom:1px solid var(--color-border);border-left:1px solid var(--color-border);}
}

@media (min-width:1024px) {
  .p-community-page__feature {width:33.33%;}
}

.p-community-page__flow {margin-bottom:56px;}
.p-community-page__flow-title {font-size:13px;font-weight:700;letter-spacing:0.08em;color:var(--color-accent-red);font-family:var(--font-family-en);margin-bottom:20px;}
.p-community-page__flow-steps {display:flex;flex-direction:column;gap:0;}
.p-community-page__flow-step {display:flex;align-items:flex-start;gap:16px;padding:20px 0;position:relative;}
.p-community-page__flow-step:not(:last-child)::after {content:"";position:absolute;left:19px;top:60px;width:2px;height:calc(100% - 20px);background:var(--color-border);}
.p-community-page__flow-num {width:40px;height:40px;background:var(--color-text);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-family-en);font-size:14px;font-weight:900;flex-shrink:0;}
.p-community-page__flow-body {}
.p-community-page__flow-label {font-size:17px;font-weight:900;margin-bottom:6px;color:var(--color-text);}
.p-community-page__flow-text {font-size:var(--fz-s);font-weight:500;line-height:1.7;color:var(--color-text);}

@media (min-width:768px) {
  .p-community-page__flow-steps {flex-direction:row;gap:0;}
  .p-community-page__flow-step {flex-direction:column;gap:12px;flex:1;padding:24px 20px 24px 0;position:relative;}
  .p-community-page__flow-step:not(:last-child)::after {top:19px;left:60px;width:calc(100% - 40px);height:2px;}
}

.p-community-page__cta {background:var(--color-gray-light);padding:40px 24px;text-align:center;}
.p-community-page__cta-title {font-size:22px;font-weight:900;margin-bottom:12px;letter-spacing:-0.04em;}
.p-community-page__cta-lead {font-size:var(--fz-s);font-weight:500;line-height:1.8;margin-bottom:28px;color:var(--color-text);}
.p-community-page__cta-btn {display:inline-flex;align-items:center;gap:12px;padding:18px 32px;background:var(--color-accent-red);color:#fff;font-size:var(--fz-m);font-weight:700;border-radius:2px;transition:all 0.3s;}
.p-community-page__cta-btn:hover {background:#e04826;transform:translateY(-2px);}

@media (min-width:768px) {
  .p-community-page__cta {padding:56px 48px;}
  .p-community-page__cta-title {font-size:28px;}
}

/* ==========================================
  community.html 追加CSS
  ※ このブロックを style.css の末尾に追加
========================================== */

/* --- Sub Hero: タイトルアイコン --- */
.p-sub-hero__title-icon {font-size:0.75em;vertical-align:middle;margin-right:10px;opacity:0.55;}

/* --- Hero Badge (Members Only + 価格) --- */
.p-community-page__hero-badge {display:inline-flex;align-items:center;gap:10px;margin-bottom:16px;font-family:var(--font-family-en);font-size:11px;font-weight:700;letter-spacing:0.1em;color:var(--color-accent-red);flex-wrap:wrap;}
.p-community-page__hero-price {font-family:var(--font-family-main);font-size:14px;font-weight:700;color:#fff;background:var(--color-accent-red);padding:3px 12px;border-radius:2px;letter-spacing:0.02em;}
.p-community-page__hero-price small {font-size:11px;font-weight:500;margin-left:2px;opacity:0.85;}

/* --- IllustBand: imgバージョン --- */
.p-community-page__illust-band {margin-bottom:56px;padding:40px 24px;background:var(--color-gray-light);position:relative;overflow:hidden;display:flex;flex-direction:column;gap:28px;align-items:flex-start;}
.p-community-page__illust-band-content {}
.p-community-page__illust-band-label {font-family:var(--font-family-en);font-size:11px;font-weight:700;letter-spacing:0.1em;color:var(--color-accent-red);margin-bottom:8px;display:block;}
.p-community-page__illust-band-title {font-size:24px;font-weight:900;line-height:1.3;margin-bottom:12px;letter-spacing:-0.03em;color:var(--color-text);}
.p-community-page__illust-band-text {font-size:var(--fz-s);font-weight:500;line-height:1.85;color:var(--color-text);max-width:520px;}
.p-community-page__illust-img-wrap {width:100%;max-width:320px;margin:0 auto;}
.p-community-page__illust-img {width:100%;height:auto;display:block;}

@media (min-width:768px) {
  .p-community-page__illust-band {flex-direction:row;align-items:center;gap:48px;padding:52px 48px;}
  .p-community-page__illust-band-content {flex:1.3;}
  .p-community-page__illust-img-wrap {flex:0.7;max-width:260px;margin:0;}
  .p-community-page__illust-band-title {font-size:30px;}
}

/* --- Features Heading (大きく) --- */
.p-community-page__features-heading {font-family:var(--font-family-en);font-size:22px;font-weight:900;letter-spacing:0.04em;color:var(--color-text);margin-bottom:24px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;}
.p-community-page__features-heading-sub {font-size:14px;font-weight:500;color:#888;letter-spacing:0.06em;}

@media (min-width:768px) {
  .p-community-page__features-heading {font-size:28px;}
  .p-community-page__features-heading-sub {font-size:15px;}
}

/* --- Feature Icon (Tabler対応) --- */
.p-community-page__feature-icon {width:52px;height:52px;flex-shrink:0;display:flex;align-items:center;justify-content:center;}
.p-community-page__feature-icon .ti {font-size:28px;line-height:1;}

/* --- Target Section --- */
.p-community-page__target {margin-bottom:56px;}
.p-community-page__target-title {font-family:var(--font-family-en);font-size:20px;font-weight:700;letter-spacing:0.08em;color:var(--color-accent-red);margin-bottom:20px;display:flex;align-items:center;gap:6px;}
.p-community-page__target-list {display:flex;flex-direction:column;gap:0;border-top:1px solid var(--color-border);}
.p-community-page__target-item {display:flex;align-items:flex-start;gap:10px;padding:14px 0;border-bottom:1px solid var(--color-border);font-size:var(--fz-s);font-weight:500;line-height:1.6;color:var(--color-text);}

@media (min-width:768px) {
  .p-community-page__target-item {font-size:var(--fz-m);padding:16px 0;}
}

/* --- Price Section --- */
.p-community-page__price {margin-bottom:56px;}
.p-community-page__price-card {display:inline-flex;flex-direction:column;gap:8px;padding:28px 32px;border:1px solid var(--color-border);background:#fff;margin-top:4px;}
.p-community-page__price-main {display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;}
.p-community-page__price-num {font-family:var(--font-family-en);font-size:48px;font-weight:900;line-height:1;letter-spacing:-0.03em;color:var(--color-text);}
.p-community-page__price-unit {font-size:var(--fz-m);font-weight:700;color:var(--color-text);}
.p-community-page__price-note {font-size:var(--fz-xs);font-weight:500;color:#888;max-width:320px;}

@media (min-width:768px) {
  .p-community-page__price-num {font-size:60px;}
}

/* --- CTA price badge --- */
.p-community-page__cta-price-badge {display:inline-block;font-size:14px;font-weight:700;color:var(--color-accent-red);border:1px solid var(--color-accent-red);padding:4px 14px;border-radius:2px;margin-bottom:16px;letter-spacing:0.02em;}

/* --- CTA btn icon --- */
.p-community-page__cta-btn {display:inline-flex;align-items:center;gap:10px;}



/* ==========================================
  Contact Page
========================================== */

.p-contact-page__intro {font-size:var(--fz-m);font-weight:500;line-height:1.9;max-width:720px;margin-bottom:48px;}
.p-contact-page__form-wrap {max-width:640px;}
.p-contact-page__form {display:flex;flex-direction:column;gap:20px;}
.p-contact-page__form-group {display:flex;flex-direction:column;gap:6px;}
.p-contact-page__form-label {font-size:var(--fz-s);font-weight:700;color:var(--color-text);}
.p-contact-page__form-label span {font-size:11px;font-weight:700;color:var(--color-accent-red);margin-left:6px;}
.p-contact-page__form-input {width:100%;padding:12px 14px;border:1px solid var(--color-border);font-size:var(--fz-s);background:#fff;border-radius:2px;color:var(--color-text);transition:border-color 0.2s ease;}
.p-contact-page__form-input:focus {outline:none;border-color:var(--color-text);}
.p-contact-page__form-textarea {min-height:160px;resize:vertical;}
.p-contact-page__form-submit {margin-top:8px;}
.p-contact-page__info {margin-top:48px;padding-top:32px;border-top:1px solid var(--color-border);}
.p-contact-page__info-title {font-size:18px;font-weight:900;margin-bottom:16px;}
.p-contact-page__info-item {font-size:var(--fz-s);font-weight:500;line-height:2;color:var(--color-text);}

/* ==========================================
  Scroll Reveal Utility（JSと連携）
========================================== */

.js-reveal {opacity:0;transform:translateY(16px);transition:opacity 0.55s ease,transform 0.55s ease;}
.js-reveal.is-visible {opacity:1;transform:translateY(0);}

/* stagger用 */
.js-reveal-stagger > * {opacity:0;transform:translateY(12px);transition:opacity 0.45s ease,transform 0.45s ease;}
.js-reveal-stagger.is-visible > *:nth-child(1) {opacity:1;transform:translateY(0);transition-delay:0s;}
.js-reveal-stagger.is-visible > *:nth-child(2) {opacity:1;transform:translateY(0);transition-delay:0.1s;}
.js-reveal-stagger.is-visible > *:nth-child(3) {opacity:1;transform:translateY(0);transition-delay:0.2s;}
.js-reveal-stagger.is-visible > *:nth-child(4) {opacity:1;transform:translateY(0);transition-delay:0.3s;}
.js-reveal-stagger.is-visible > *:nth-child(5) {opacity:1;transform:translateY(0);transition-delay:0.4s;}

/* 数字カウントアップ後のアンダーライン */
.js-countup-done {position:relative;display:inline-block;}
.js-countup-done::after {content:"";position:absolute;bottom:-2px;left:0;width:100%;height:2px;background:var(--color-accent-red);transform:scaleX(0);transform-origin:left;animation:lineIn 0.4s ease forwards;}
@keyframes lineIn {to {transform:scaleX(1);}}

/* ==========================================
  遊び心：グローバルなアクセントデコ
  sectionの右端に小さなカラーノッチ
========================================== */

/* トップページのsectionに軽いアクセント */
.each_sec--accent {position:relative;}
.each_sec--accent::after {content:"";position:absolute;top:50%;right:0;transform:translateY(-50%);width:3px;height:40px;background:var(--color-accent-yellow);border-radius:0 2px 2px 0;}

/* ==========================================
  Tabler Icons — サイズ調整
========================================== */

.ti {line-height:1;vertical-align:middle;}

/* ==========================================
  About: フレームワーク (index用)
========================================== */

.p-about__framework {margin-top:40px;padding:28px 24px;background:var(--color-gray-light);border-top:2px solid var(--color-text);}
.p-about__framework-label {font-family:var(--font-family-en);font-size:13px;font-weight:700;letter-spacing:0.06em;color:var(--color-text);margin-bottom:12px;display:flex;align-items:center;gap:6px;}
.p-about__framework-text {font-size:var(--fz-s);font-weight:500;line-height:1.8;color:var(--color-text);margin-bottom:20px;}
.p-about__framework-steps {display:flex;flex-direction:column;gap:12px;align-items:flex-start;}
.p-about__framework-step {display:flex;align-items:center;gap:10px;font-size:var(--fz-s);font-weight:700;}
.p-about__framework-arrow {font-size:14px;opacity:0.4;transform:rotate(90deg);}

@media (min-width:768px) {
  .p-about__framework {padding:36px 40px;}
  .p-about__framework-steps {flex-direction:row;flex-wrap:wrap;gap:8px 0;align-items:center;}
  .p-about__framework-arrow {transform:none;}
}

/* ==========================================
  About Page: 5つの構造的問題
========================================== */

.p-about-page__problems {margin-bottom:56px;}
.p-about-page__problems-list {display:flex;flex-direction:column;gap:0;border-top:1px solid var(--color-border);}
.p-about-page__problem-item {display:flex;align-items:flex-start;gap:20px;padding:24px 0;border-bottom:1px solid var(--color-border);}
.p-about-page__problem-num {font-family:var(--font-family-en);font-size:40px;font-weight:900;line-height:1;flex-shrink:0;width:56px;}
.p-about-page__problem-title {font-size:18px;font-weight:900;margin-bottom:8px;color:var(--color-text);}
.p-about-page__problem-text {font-size:var(--fz-s);font-weight:500;line-height:1.8;color:var(--color-text);}

@media (min-width:768px) {
  .p-about-page__problem-num {font-size:52px;}
  .p-about-page__problem-title {font-size:20px;}
}

/* ==========================================
  About Page: フレームワーク詳細グリッド
========================================== */

.p-about-page__framework-block {margin-bottom:56px;}
.p-about-page__framework-grid {display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--color-border);border:1px solid var(--color-border);margin-top:24px;}
.p-about-page__framework-step-card {background:#fff;padding:24px 20px;}
.p-about-page__framework-step-label {font-size:15px;font-weight:900;margin-bottom:8px;color:var(--color-text);}
.p-about-page__framework-step-text {font-size:var(--fz-xs);font-weight:500;line-height:1.7;color:var(--color-text);}

@media (min-width:768px) {
  .p-about-page__framework-grid {grid-template-columns:repeat(4,1fr);}
}

/* ==========================================
  About Page: テクノロジー活用
========================================== */

.p-about-page__tech {margin-bottom:56px;}
.p-about-page__tech-grid {display:flex;flex-direction:column;gap:0;border-top:1px solid var(--color-border);margin-top:20px;}
.p-about-page__tech-item {display:flex;align-items:flex-start;gap:16px;padding:20px 0;border-bottom:1px solid var(--color-border);}
.p-about-page__tech-title {font-size:17px;font-weight:900;margin-bottom:6px;color:var(--color-text);}
.p-about-page__tech-text {font-size:var(--fz-s);font-weight:500;line-height:1.8;color:var(--color-text);}

@media (min-width:768px) {
  .p-about-page__tech-grid {flex-direction:row;flex-wrap:wrap;border-right:1px solid var(--color-border);}
  .p-about-page__tech-item {width:50%;padding:24px 20px;border-right:none;border-bottom:1px solid var(--color-border);border-left:1px solid var(--color-border);flex-direction:column;gap:12px;}
}

/* ==========================================
  Manifest Page: item detail
========================================== */

.p-manifest-page__item-detail {margin-top:20px;display:flex;flex-direction:column;gap:16px;padding-top:20px;border-top:1px solid var(--color-border);}
.p-manifest-page__item-detail-row {display:flex;align-items:flex-start;gap:12px;}
.p-manifest-page__item-detail-row strong {display:block;font-size:var(--fz-s);font-weight:700;margin-bottom:4px;color:var(--color-text);}
.p-manifest-page__item-detail-row p {font-size:var(--fz-xs);font-weight:500;line-height:1.8;color:var(--color-text);}

/* ==========================================
  Manifest Page: マイルストーン
========================================== */

.p-manifest-page__milestone {margin-top:56px;padding-top:56px;border-top:1px solid var(--color-border);}
.p-manifest-page__milestone-grid {display:flex;flex-direction:column;gap:0;border-top:1px solid var(--color-border);}
.p-manifest-page__milestone-item {padding:28px 0;border-bottom:1px solid var(--color-border);}
.p-manifest-page__milestone-year {font-family:var(--font-family-en);font-size:40px;font-weight:900;line-height:1;display:block;margin-bottom:8px;}
.p-manifest-page__milestone-title {font-size:18px;font-weight:900;margin-bottom:8px;color:var(--color-text);}
.p-manifest-page__milestone-text {font-size:var(--fz-s);font-weight:500;line-height:1.8;color:var(--color-text);}

@media (min-width:768px) {
  .p-manifest-page__milestone-grid {flex-direction:row;gap:0;}
  .p-manifest-page__milestone-item {flex:1;padding:28px 24px;border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border);}
  .p-manifest-page__milestone-item:last-child {border-right:none;}
  .p-manifest-page__milestone-year {font-size:52px;}
}

/* ==========================================
  Manifest page icon size override
========================================== */

.p-manifest-page__item-icon.ti {font-size:36px;width:40px;height:40px;display:flex;align-items:center;}


/* ==========================================
  Hero — SP強化 (〜767px)
========================================== */

@media (max-width: 767px) {
  .p-hero__illust--sp {opacity:0.75;}
  .p-hero__content {
    padding:28px 20px 44px;
    background:linear-gradient(to bottom,rgba(255,255,255,0.72) 0%,rgba(255,255,255,0.55) 60%,rgba(255,255,255,0.2) 100%);
  }
  .p-hero__title {font-size:40px;letter-spacing:-0.06em;line-height:1.12;margin-bottom:16px;text-shadow:0 1px 8px rgba(255,255,255,0.9),0 0px 2px rgba(255,255,255,1);}
  .p-hero__lead {font-size:15px;font-weight:600;text-shadow:0 1px 4px rgba(255,255,255,0.85);margin-bottom:24px;}
  .p-hero__buttons {flex-direction:column;gap:10px;align-items:stretch;width:100%;max-width:280px;}
  .p-hero__buttons .c-button {width:100%;justify-content:space-between;}
}

/* ==========================================
  News — SP右下リンク
========================================== */

@media (max-width: 767px) {
  .p-news .c-sec-more {justify-content:flex-end;}
}

/* ==========================================
  About lead — SP左揃え
========================================== */

@media (max-width: 767px) {
  .p-about__lead {font-size:var(--fz-s);text-align:left;}
}

/* ==========================================
  フレームワーク — SP/PC両方で文字を大きく
========================================== */

.p-about__framework-label {font-size:16px !important;font-weight:900 !important;letter-spacing:0.02em;color:var(--color-text) !important;margin-bottom:16px;}
.p-about__framework-text {font-size:var(--fz-m) !important;line-height:1.85;}
.p-about__framework-step {font-size:var(--fz-m) !important;font-weight:700;gap:10px;}

@media (max-width: 767px) {
  .p-about__framework {padding:24px 16px;}
  .p-about__framework-steps {flex-direction:column;gap:8px;align-items:flex-start;}
  .p-about__framework-step {font-size:var(--fz-m) !important;gap:12px;}
  .p-about__framework-arrow {transform:none;opacity:0.35;font-size:16px;margin-left:4px;}
  .p-about .c-sec-more {justify-content:flex-end;}
}

@media (min-width:768px) {
  .p-about__framework-label {font-size:17px !important;}
  .p-about__framework-step {font-size:var(--fz-l) !important;}
}

/* ==========================================
  Manifest — SP 2列 (〜767px)
========================================== */

@media (max-width: 767px) {
  .p-manifest__grid {grid-template-columns:repeat(2,1fr);gap:8px;}
  .p-manifest__card:last-child:nth-child(odd) {grid-column:1 / -1;max-width:calc(50% - 4px);margin:0 auto;}
  .p-manifest__card-num {font-size:24px;}
  .p-manifest__card-title {font-size:13px;}
  .p-manifest__card-text {font-size:11px;}
  .p-manifest .c-sec-more {justify-content:flex-end;}
}

/* ==========================================
  Join CTA — SP: top-cta-btn.png のみ表示
========================================== */

.p-join__sp-img-link {display:block;width:100%;border-radius:4px;overflow:hidden;}
.p-join__sp-img {width:100%;height:auto;display:block;}

@media (max-width: 1023px) {
  .p-join__inner.u-pc-only {display:none !important;}
}
@media (min-width: 1024px) {
  .p-join__sp-img-link.u-sp-only {display:none !important;}
}

/* ==========================================
  Issue — SP 詳細リンク右下
========================================== */

@media (max-width: 767px) {
  .p-issue .c-sec-more {justify-content:flex-end;}
}
