/* =========================================================
   Community Reach：SNSフォロワーカード + 補助チャンネル
   Track Record内のサブブロック。B2B訴求用にPRアセット化
   ========================================================= */
.record__community-lead {
  font-size: 14px;
  line-height: 1.9;
  color: var(--ink-2);
  max-width: 720px;
  margin: 0 0 24px;
}
/* 主要SNSカード（X / Instagram） */
.record__socials {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  padding: 0;
  margin: 0 0 24px;
}
.record__social a {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 24px 28px;
  border: 1px solid var(--line);
  background: #fff;
  text-decoration: none;
  color: var(--ink);
  transition: border-color .2s ease, background .2s ease;
}
.record__social a:hover {
  border-color: var(--red);
  background: var(--red-tint);
}
.record__social-ico {
  width: 32px;
  height: 32px;
  color: var(--red);
  flex-shrink: 0;
}
.record__social-body { flex: 1; }
.record__social-name {
  display: block;
  font-family: var(--font-en);
  font-size: 11px;
  color: var(--ink-3);
  letter-spacing: .12em;
  text-transform: uppercase;
  margin-bottom: 6px;
}
.record__social-num {
  display: block;
  font-family: var(--font-en);
  font-size: 32px;
  font-weight: 600;
  letter-spacing: -.01em;
  line-height: 1;
  color: var(--red); /* イボンヌレッド：フォロワー数をアクセントカラーで強調 */
  margin-bottom: 6px;
}
.record__social-num em {
  font-size: 18px;
  font-weight: 500;
  font-style: normal;
  color: var(--ink-3);
  margin-left: 2px;
}
.record__social-label {
  display: block;
  font-family: var(--font-en);
  font-size: 12px;
  color: var(--ink-2);
}
.record__social-arrow {
  width: 18px;
  height: 18px;
  color: var(--ink-3);
  transition: color .2s ease, transform .2s ease;
  flex-shrink: 0;
}
.record__social a:hover .record__social-arrow {
  color: var(--red);
  transform: translate(2px, -2px);
}
/* 補助チャンネル（Facebook / YouTube）— インライン表示 */
.record__social-extra {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px;
  padding: 16px 0;
  border-top: 1px solid var(--line);
  font-size: 13px;
  color: var(--ink-2);
}
.record__social-extra-label {
  font-size: 11px;
  color: var(--ink-3);
  letter-spacing: .08em;
}
.record__social-extra a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--ink-2);
  text-decoration: none;
  transition: color .2s ease;
}
.record__social-extra a:hover { color: var(--red); }
.record__social-extra i { width: 16px; height: 16px; }
.record__community-note {
  margin-top: 4px;
  font-size: 11px;
  color: var(--ink-3);
  line-height: 1.8;
}

/* =========================================================
   Products：卸向け代表SKU
   ========================================================= */
.products__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
.product {
  border: 1px solid var(--line);
  background: #fff;
  transition: border-color .2s ease;
}
.product:hover { border-color: var(--ink); }
.product__img {
  aspect-ratio: 1 / 1;
  background: var(--bg-alt);
  overflow: hidden;
}
.product__img img { width: 100%; height: 100%; object-fit: cover; }
/* プレースホルダー：画像準備中のカード用 */
.product__img--placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  background: repeating-linear-gradient(
    135deg,
    #F5F5F5,
    #F5F5F5 8px,
    #FAFAFA 8px,
    #FAFAFA 16px
  );
  color: var(--ink-3);
  font-family: var(--font-en);
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.product--placeholder { opacity: .85; }
.product__body { padding: 20px; }
.product__cat {
  font-family: var(--font-en);
  font-size: 10px;
  color: var(--red);
  letter-spacing: .12em;
  font-weight: 600;
  margin-bottom: 8px;
}
.product__name {
  font-size: 14px;
  font-weight: 500;
  color: var(--ink);
  line-height: 1.6;
  margin-bottom: 12px;
  min-height: 44px;
}
.product__meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 12px;
  border-top: 1px solid var(--line);
  font-size: 11px;
  color: var(--ink-3);
}

.products__footer {
  margin-top: 48px;
  padding: 32px;
  background: var(--bg-alt);
  display: flex;
  justify-content: space-between;
  align-items: center;
  border: 1px solid var(--line);
}
.products__footer p {
  font-size: 14px;
  color: var(--ink);
}
.products__footer strong { font-weight: 700; }

/* =========================================================
   License Menu：3プラン
   ========================================================= */
.license { background: var(--bg-alt); }
.license__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.plan {
  position: relative; /* badgeの絶対配置基準 */
  background: #fff;
  border: 1px solid var(--line);
  padding: 40px 32px;
  display: flex;
  flex-direction: column;
  transition: border-color .2s ease, transform .2s ease;
}
.plan:hover { border-color: var(--red); }
.plan--featured { border-color: var(--ink); }
.plan--featured .plan__badge { display: inline-flex; }
/* RECOMMENDEDバッジは絶対配置で、A/B/Cのカード内部要素の垂直位置を揃える。
   カード右上に貼り付くラベル表現（-1pxでborderとぴったり重ねる） */
.plan__badge {
  display: none;
  position: absolute;
  top: -1px;
  right: -1px;
  background: var(--ink);
  color: #fff;
  font-family: var(--font-en);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .15em;
  padding: 6px 12px;
  z-index: 1;
}
.plan__en {
  font-family: var(--font-en);
  font-size: 11px;
  color: var(--red);
  font-weight: 600;
  letter-spacing: .15em;
  margin-bottom: 8px;
}
.plan__title {
  font-size: 22px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 20px;
  line-height: 1.5;
}
.plan__desc {
  font-size: 14px;
  line-height: 2;
  color: var(--ink-2);
  margin-bottom: 24px;
}
.plan__list {
  margin: 0 0 32px;
  padding: 20px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.plan__list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 6px 0;
  font-size: 13px;
  color: var(--ink);
  line-height: 1.7;
}
.plan__list li::before {
  content: "";
  width: 14px;
  height: 1px;
  background: var(--red);
  margin-top: 12px;
  flex-shrink: 0;
}
.plan__meta {
  margin-top: auto;
  padding-top: 20px;
  font-size: 12px;
  color: var(--ink-3);
}
.plan__meta strong {
  display: block;
  color: var(--ink);
  font-size: 13px;
  margin-bottom: 4px;
}

/* =========================================================
   License Flow：4ステップ
   ========================================================= */
.flow__list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.flow__step {
  padding: 40px 28px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  position: relative;
  background: #fff;
}
.flow__num {
  font-family: var(--font-en);
  font-size: 11px;
  font-weight: 600;
  color: var(--red);
  letter-spacing: .15em;
  margin-bottom: 16px;
}
.flow__num strong {
  display: block;
  font-size: 36px;
  color: var(--ink);
  line-height: 1;
  margin-top: 8px;
}
.flow__title {
  font-size: 16px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 12px;
}
.flow__text {
  font-size: 13px;
  line-height: 1.9;
  color: var(--ink-2);
}
.flow__dur {
  display: inline-block;
  margin-top: 16px;
  font-size: 11px;
  padding: 3px 10px;
  background: var(--bg-alt);
  color: var(--ink-3);
  letter-spacing: .04em;
}

/* =========================================================
   イボンヌ：IP概要（軽量化／卸視点で）
   ========================================================= */
.ip { background: #fff; }
.ip__grid {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 80px;
  align-items: center;
}
.ip__visual {
  aspect-ratio: 1 / 1;
  background: var(--bg-alt);
  border: 1px solid var(--line);
  overflow: hidden;
}
.ip__visual img { width: 100%; height: 100%; object-fit: cover; }
.ip__body h2 {
  font-size: 32px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 12px;
}
.ip__body .en {
  display: block;
  font-family: var(--font-en);
  font-size: 12px;
  letter-spacing: .18em;
  color: var(--red);
  font-weight: 600;
  margin-bottom: 24px;
}
.ip__body p {
  font-size: 15px;
  line-height: 2;
  color: var(--ink-2);
  margin-bottom: 16px;
}
.ip__profile {
  margin-top: 32px;
  border-top: 1px solid var(--line);
}
.ip__profile dl {
  display: grid;
  grid-template-columns: 140px 1fr;
  border-bottom: 1px solid var(--line);
}
.ip__profile dt {
  padding: 16px 0;
  font-size: 12px;
  color: var(--ink-3);
  letter-spacing: .08em;
}
.ip__profile dd {
  padding: 16px 0;
  font-size: 14px;
  color: var(--ink);
  line-height: 1.8;
}

/* =========================================================
   News：フォーマル表組み
   ========================================================= */
.news__list {
  border-top: 1px solid var(--line);
}
.news__item {
  display: grid;
  grid-template-columns: 140px 120px 1fr 24px;
  gap: 24px;
  padding: 24px 0;
  align-items: center;
  border-bottom: 1px solid var(--line);
  transition: background .15s ease;
}
.news__item:hover { background: var(--bg-alt); }
.news__date { font-family: var(--font-en); font-size: 13px; color: var(--ink-3); letter-spacing: .04em; }
.news__cat {
  display: inline-block;
  font-size: 11px;
  padding: 3px 0;
  text-align: center;
  border: 1px solid var(--line);
  color: var(--ink-2);
  letter-spacing: .04em;
}
.news__title { font-size: 14px; color: var(--ink); line-height: 1.7; }
.news__arrow { width: 16px; height: 16px; color: var(--ink-3); }
.news__footer {
  margin-top: 32px;
  text-align: center;
}

/* =========================================================
   Company：会社概要表組み
   ========================================================= */
.company { background: var(--bg-alt); }
.company__grid {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  gap: 64px;
  align-items: start;
}
.company__intro h2 {
  font-size: 28px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 24px;
  line-height: 1.5;
}
.company__intro p {
  font-size: 14px;
  line-height: 2;
  color: var(--ink-2);
  margin-bottom: 16px;
}
.company__table {
  width: 100%;
  background: #fff;
  border-top: 1px solid var(--line);
}
.company__table tr { border-bottom: 1px solid var(--line); }
.company__table th {
  padding: 18px 20px;
  width: 160px;
  font-size: 12px;
  font-weight: 500;
  color: var(--ink-3);
  letter-spacing: .08em;
  text-align: left;
  vertical-align: top;
  background: var(--bg-alt);
  border-right: 1px solid var(--line);
}
.company__table td {
  padding: 18px 20px;
  font-size: 14px;
  color: var(--ink);
  line-height: 1.8;
  vertical-align: top;
}

/* 会社概要：工場ビジュアル（intro列の上部に配置） */
.company__visuals {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin-bottom: 32px;
}
.company__visual {
  position: relative;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
}
.company__visual img {
  width: 100%;
  height: auto;
  object-fit: contain;
  display: block;
  transition: transform .6s ease;
}
.company__visual:hover img { transform: scale(1.04); }
/* プレースホルダ（撮影前）用：ストライプ + キャプション */
.company__visual--placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: rgba(255, 255, 255, .85);
  background:
    repeating-linear-gradient(135deg, rgba(255, 255, 255, .04) 0 8px, transparent 8px 16px),
    linear-gradient(135deg, var(--ink) 0%, #2a2426 100%);
}
.company__visual--placeholder i { width: 28px; height: 28px; color: rgba(255, 255, 255, .6); }
.company__visual--placeholder span {
  font-family: var(--font-en);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.company__visual--placeholder small {
  font-size: 10px;
  color: rgba(255, 255, 255, .5);
  letter-spacing: .1em;
}

/* =========================================================
   Contact：2窓口＋個人問合せ
   ========================================================= */
.contact { background: #fff; }
.contact__head {
  text-align: center;
  margin-bottom: 56px;
}
.contact__head .sec-label { justify-content: center; }
.contact__head .sec-label::before { display: none; }
.contact__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  margin-bottom: 32px;
}
.contact__card {
  padding: 48px 40px;
  border: 1px solid var(--line);
  background: #fff;
  display: flex;
  flex-direction: column;
  transition: border-color .2s ease;
}
.contact__card:hover { border-color: var(--red); }
.contact__card--primary { background: var(--red); color: #fff; border-color: var(--red); }
.contact__card--primary .contact__cat { color: #fff; }
.contact__card--primary .contact__en { color: rgba(255,255,255,.5); }
/* 下に定義される .contact__card p に上書きされていたため、詳細度を上げる（.contact__card.contact__card--primary） */
.contact__card.contact__card--primary p { color: rgba(255,255,255,.88); }
.contact__card--primary .contact__points li { color: rgba(255,255,255,.9); border-color: rgba(255,255,255,.15); }
.contact__card--primary .contact__points li::before { background: var(--red); }
.contact__card--primary .btn--outline { background: transparent; color: #fff; border-color: rgba(255,255,255,.3); }
.contact__card--primary .btn--outline:hover { background: #fff; color: var(--red); border-color: #fff; }

.contact__en {
  font-family: var(--font-en);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .2em;
  color: var(--red);
  margin-bottom: 12px;
}
.contact__cat {
  font-size: 24px;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.5;
  margin-bottom: 16px;
}
.contact__card p {
  font-size: 14px;
  line-height: 2;
  color: var(--ink-2);
  margin-bottom: 24px;
}
.contact__points {
  padding: 20px 0;
  margin-bottom: 32px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.contact__points li {
  padding: 6px 0;
  font-size: 13px;
  color: var(--ink);
  display: flex;
  align-items: center;
  gap: 10px;
}
.contact__points li::before {
  content: "";
  width: 4px;
  height: 4px;
  background: var(--red);
  border-radius: 50%;
}
.contact__card .btn {
  margin-top: auto;
  align-self: stretch;
}
.contact__extra {
  padding: 20px 32px;
  background: var(--bg-alt);
  display: flex;
  justify-content: space-between;
  align-items: center;
  border: 1px solid var(--line);
  font-size: 13px;
}
.contact__extra span { color: var(--ink-3); }
.contact__extra a {
  color: var(--ink);
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.contact__extra a:hover { color: var(--red); }

/* =========================================================
   Footer
   ========================================================= */
.footer {
  background: var(--ink);
  color: rgba(255,255,255,.7);
  padding: 80px 0 24px;
}
.footer__inner {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--gutter);
}
.footer__top {
  display: grid;
  grid-template-columns: 1.2fr 3fr;
  gap: 64px;
  padding-bottom: 48px;
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.footer__brand .logo__primary { color: #fff; }
.footer__brand .logo__secondary { color: rgba(255,255,255,.5); }
.footer__brand p { font-size: 12px; margin-top: 16px; line-height: 1.9; color: rgba(255,255,255,.55); }
.footer__nav {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
}
.footer__nav h4 {
  font-size: 12px;
  font-weight: 600;
  color: #fff;
  letter-spacing: .1em;
  margin-bottom: 16px;
  font-family: var(--font-en);
  text-transform: uppercase;
}
.footer__nav a {
  display: block;
  font-size: 13px;
  padding: 4px 0;
  color: rgba(255,255,255,.7);
}
.footer__nav a:hover { color: #fff; }
/* Footer内のSNSアイコン行（Follow us） */
.footer__social {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 24px 0;
  border-top: 1px solid rgba(255,255,255,.08);
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.footer__social-label {
  font-family: var(--font-en);
  font-size: 11px;
  color: rgba(255,255,255,.5);
  letter-spacing: .18em;
  text-transform: uppercase;
}
.footer__social-icons {
  display: flex;
  gap: 10px;
}
.footer__social-icons a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: 1px solid rgba(255,255,255,.18);
  color: rgba(255,255,255,.7);
  border-radius: 999px;
  transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.footer__social-icons a:hover {
  background: var(--red);
  border-color: var(--red);
  color: #fff;
}
.footer__social-icons i { width: 16px; height: 16px; }
.footer__bottom {
  padding-top: 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 11px;
  color: rgba(255,255,255,.4);
  font-family: var(--font-en);
  letter-spacing: .04em;
}
.footer__bottom a { color: rgba(255,255,255,.5); margin-left: 16px; }
.footer__bottom a:hover { color: #fff; }

/* =========================================================
   レスポンシブ：1280 / 1024 / 767（RULES.md準拠）
   ========================================================= */
@media (max-width: 1280px) {
  :root { --container: 100%; }
  .container, .header__inner, .utility__inner, .topics__inner, .footer__inner { padding-left: 40px; padding-right: 40px; }
}

@media (max-width: 1024px) {
  :root { --section-y: 96px; }
  /* T1：グリッドを縦積みに／コピーのパディング縮小／パネルは一定高さを確保 */
  .v-t1 .container { grid-template-columns: 1fr; min-height: auto; }
  .v-t1 .panel { min-height: 58vh; }
  .v-t1 .copy { padding: 64px 40px; }
  .v-t1 .copy h1 { font-size: clamp(32px, 4.4vw, 48px); }

  .value__grid { grid-template-columns: 1fr 1fr; }
  .value__item:nth-child(3) { grid-column: span 2; }

  .biz__item { grid-template-columns: 160px 1fr 240px; gap: 32px; }

  /* フルブリード写真帯：タブレット */
  .bleed-band { aspect-ratio: auto; min-height: 42vw; }
  .bleed-band__inner { height: auto; align-items: flex-start; padding-top: 56px; padding-bottom: 56px; }
  .bleed-band__title { font-size: 28px; line-height: 1.6; }

  /* 会社概要ビジュアル：タブレット */
  .company__visuals { grid-template-columns: 1fr; }

  .record__stats { grid-template-columns: repeat(2, 1fr); }
  .record__stat:nth-child(2) { border-right: none; }
  .record__stat:nth-child(1), .record__stat:nth-child(2) { border-bottom: 1px solid var(--line); }
  .record__partners { grid-template-columns: repeat(3, 1fr); }

  .products__grid { grid-template-columns: repeat(2, 1fr); }

  .license__grid { grid-template-columns: 1fr; }

  .flow__list { grid-template-columns: repeat(2, 1fr); }

  .ip__grid { grid-template-columns: 1fr; gap: 48px; }

  .company__grid { grid-template-columns: 1fr; gap: 32px; }

  .contact__grid { grid-template-columns: 1fr; }

  .footer__top { grid-template-columns: 1fr; gap: 40px; }
  .footer__nav { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 767px) {
  :root { --section-y: 64px; --gutter: 20px; }
  body { font-size: 14px; }

  .container, .header__inner, .utility__inner, .topics__inner, .footer__inner { padding-left: 20px; padding-right: 20px; }

  /* Utility bar：右側は非表示 */
  .utility__right { display: none; }

  /* Header */
  .header__inner { height: 60px; }
  .gnav { display: none; }
  .header__cta { display: none; }
  .burger { display: inline-flex; }

  /* Hero T1：SPは上下2段（上＝写真パネル56vh／下＝コピー） */
  .v-t1 .panel { min-height: 56vh; }
  .v-t1 .panel .caption { left: 20px; bottom: 20px; font-size: 10px; }
  .v-t1 .panel .dots { right: 20px; bottom: 20px; }
  .v-t1 .copy { padding: 48px 20px 56px; }
  .v-t1 .copy .label { font-size: 10px; margin-bottom: 20px; }
  .v-t1 .copy h1 { font-size: clamp(26px, 7.2vw, 36px); line-height: 1.28; margin-bottom: 24px; }
  .v-t1 .copy .lead { margin-bottom: 28px; }
  .v-t1 .copy .lead p { font-size: 13.5px; line-height: 1.9; }
  .v-t1 .copy .ctas { flex-direction: column; align-items: stretch; gap: 12px; margin-bottom: 32px; }
  .v-t1 .copy .ctas .btn { width: 100%; justify-content: center; }
  /* 数値メタは3列横並び（スマホ幅でも "15+ / 100+ / 3" を一目で見せる） */
  .v-t1 .copy .metrics {
    gap: 12px;
    justify-content: space-between;
    margin-top: 0;
    padding-top: 24px;
  }
  .v-t1 .copy .metrics > div { flex: 1; min-width: 0; }
  .v-t1 .copy .metrics strong { font-size: 22px; margin-bottom: 4px; }
  .v-t1 .copy .metrics span { font-size: 11px; line-height: 1.5; }

  /* Topics */
  .topics__inner { flex-direction: column; align-items: flex-start; gap: 12px; }
  .topics__list { flex-direction: column; gap: 8px; width: 100%; }

  /* Sec common */
  .sec-title { font-size: 24px; }
  .sec-head { margin-bottom: 32px; }

  /* セクション末尾CTA：モバイルは全幅。padding-top は新パネルでは不要なので解除 */
  .sec-cta { margin-top: 40px; padding: 20px 20px; flex-direction: column; align-items: stretch; gap: 16px; }
  .sec-cta::before { font-size: 13px; text-align: center; }
  .sec-cta::after { font-size: 40px; right: 12px; opacity: .8; }
  .sec-cta__link { width: 100%; justify-content: center; padding: 16px 20px; }
  /* SP用 EN サイズ調整。親セクションのspecificityに勝つよう .sec-cta から書く */
  .sec-cta .sec-cta__link .en { font-size: 9px; padding-right: 10px; margin-right: 10px; }

  /* Value */
  .value__grid { grid-template-columns: 1fr; }
  .value__item:nth-child(3) { grid-column: auto; }
  .value__item { padding: 32px 24px; }

  /* Biz */
  .biz__item {
    grid-template-columns: 1fr;
    gap: 20px;
    padding: 32px 0;
  }
  .biz__no { display: flex; align-items: baseline; gap: 12px; }
  .biz__no strong { font-size: 32px; margin-top: 0; }
  .biz__thumb { order: -1; }

  /* フルブリード写真帯：モバイル（高さを内容依存にしてテキスト溢れ・上クリップを防止） */
  .bleed-band { aspect-ratio: auto; min-height: 56vw; }
  .bleed-band__inner { height: auto; align-items: flex-start; padding-top: 40px; padding-bottom: 40px; }
  .bleed-band__title { font-size: 22px; line-height: 1.55; }
  .bleed-band__sub { font-size: 13px; line-height: 1.8; }
  .bleed-band__en { font-size: 10px; padding-top: 10px; margin-bottom: 12px; }

  /* 会社概要ビジュアル：モバイル */
  .company__visuals { grid-template-columns: 1fr; gap: 10px; margin-bottom: 24px; }

  /* Record */
  .record__stats { grid-template-columns: 1fr; }
  .record__stat { border-right: none; border-bottom: 1px solid var(--line); padding: 28px 20px; }
  .record__stat:last-child { border-bottom: none; }
  .record__stat dd { font-size: 36px; }
  .record__partners { grid-template-columns: repeat(2, 1fr); }
  .record__awards { grid-template-columns: 1fr; }
  /* Community Reach */
  .record__socials { grid-template-columns: 1fr; }
  .record__social a { padding: 20px; gap: 16px; }
  .record__social-num { font-size: 28px; }
  .record__social-extra { flex-direction: column; align-items: flex-start; gap: 10px; }

  /* Products */
  .products__grid { grid-template-columns: 1fr 1fr; gap: 12px; }
  .product__body { padding: 14px; }
  .product__name { font-size: 13px; min-height: auto; }
  .products__footer { flex-direction: column; gap: 16px; padding: 24px; text-align: center; }

  /* License */
  .plan { padding: 32px 24px; }
  .plan__title { font-size: 20px; }

  /* Flow */
  .flow__list { grid-template-columns: 1fr; }

  /* News：モバイルは日付＋カテゴリを1行目／タイトル全幅を2行目／矢印を右端に */
  .news__item {
    grid-template-columns: auto 1fr 20px;
    grid-template-rows: auto auto;
    column-gap: 10px;
    row-gap: 6px;
    padding: 18px 0;
    align-items: center;
  }
  .news__date {
    grid-row: 1;
    grid-column: 1;
    font-size: 12px;
  }
  .news__cat {
    grid-row: 1;
    grid-column: 2;
    justify-self: start;
    padding: 2px 8px;
    font-size: 10px;
  }
  .news__arrow {
    grid-row: 1;
    grid-column: 3;
    align-self: center;
  }
  .news__title {
    grid-row: 2;
    grid-column: 1 / -1;
    font-size: 13px;
    line-height: 1.7;
  }

  /* Company */
  .company__table th { width: 120px; padding: 14px; font-size: 11px; }
  .company__table td { padding: 14px; font-size: 13px; }

  /* Contact */
  .contact__card { padding: 32px 24px; }
  .contact__cat { font-size: 20px; }
  .contact__extra { flex-direction: column; gap: 12px; padding: 20px; text-align: center; }

  /* Footer */
  .footer__nav { grid-template-columns: 1fr 1fr; gap: 24px; }
  .footer__social { flex-direction: column; align-items: flex-start; gap: 12px; padding: 20px 0; }
  .footer__bottom { flex-direction: column; gap: 12px; text-align: center; }
}

/* === shiawase-corp: reveal animation === */
.js [data-reveal] {
  opacity: 0;
  transform: translateY(16px);
  transition:
    opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}
.js [data-reveal].is-visible {
  opacity: 1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  .js [data-reveal] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  /* Variation T1: パネル・コピー子要素・Ken Burns も即表示 */
  .v-t1 .panel,
  .v-t1 .copy .label,
  .v-t1 .copy h1 .line > span,
  .v-t1 .copy .lead,
  .v-t1 .copy .ctas,
  .v-t1 .copy .metrics {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .v-t1 .slide img { transform: none !important; transition: none !important; }
}
/* reveal observer の親 fade-up は新ヒーローでは干渉回避（子のステージングに任せる） */
.js .v-t1[data-reveal] { opacity: 1; transform: none; transition: none; }


/* 装飾英字フォント（Cormorant Garamond） */
.sec-title .en, .bleed-band__en, h1 .en, .v-a .label, .v-a .en, .v-b .label, .v-c .label, .v-d .badge, .v-e .kv .cap, .v-f .marquee span { font-family: 'Cormorant Garamond', 'Georgia', serif; letter-spacing: .04em; }

