/* コンテナと余白 */
.u-container {
  margin-inline: auto;
  padding-inline: clamp(16px, 4vw, 40px);
}
.section {
  padding-block: clamp(40px, 8vw, 96px);
}

/* タイポ（clampで可変） */
:root{
  --fz-display: clamp(32px, 6vw, 64px);
  --fz-h: clamp(20px, 3vw, 28px);
  --ls-wide: 0.06em;
}
h1, .is-display {
  font-size: var(--fz-display);
  letter-spacing: var(--ls-wide);
}

/* ボタンの見た目を少し強める */
.wp-element-button {
  border-radius: 999px;
  padding: 12px 20px;
  font-weight: 600;
}

/* details要素の軽い装飾 */
details {
  border-top: 1px solid #e9e9e9;
  padding: 12px 0;
}
details summary {
  cursor: pointer;
  list-style: none;
}
details[open] summary {
  opacity:.8;
}

/* 画像遅延読み込みの保険 */
img[loading="lazy"] {
  contain-intrinsic-size:auto 300px;
}

/* モーション配慮 */
@media (prefers-reduced-motion: reduce){
  .reveal, .parallax {
    transition: none !important;
    transform: none !important;
    animation: none !important;
  }
}


:root{
  --footer-bg:#0b0c10;
  --footer-fg:#e8ecf3;
  --footer-muted:#a6adbb;
  --footer-accent:#1754f1; /* ブランド色に変更可 */
}

.site-footer{
  background: var(--footer-bg);
  color: var(--footer-fg);
  font-size: 15px;
}
.site-footer a{ color: inherit; text-decoration: none; }
.site-footer a:hover{ color: var(--footer-accent); }

.f-container{
  max-width: 1200px;              /* 端まで広げたいなら→ none に */
  margin-inline: auto;
  padding: clamp(28px,4vw,56px) clamp(16px,4vw,40px);
}

.footer-grid{
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.5fr;
  gap: clamp(20px,3.5vw,40px);
  align-items: start;
}

.footer-brand .brand{
  font-weight: 800;
  font-size: clamp(20px,2.2vw,24px);
  letter-spacing: .04em;
}
.footer-brand .tagline{ color: var(--footer-muted); margin: .5rem 0 1.1rem; }

.social a{
  display:inline-flex; width:36px; height:36px; border-radius:999px;
  align-items:center; justify-content:center;
  background: rgba(255,255,255,.06);
  margin-right:8px; transition: transform .2s ease, background .2s ease;
}
.social a:hover{ transform: translateY(-2px); background: rgba(255,255,255,.12); }

.footer-nav h4, .footer-cta h4{
  font-size:.95rem; letter-spacing:.06em; text-transform:uppercase;
  margin:0 0 .75rem; color: var(--footer-muted);
}
.footer-nav ul{ list-style:none; margin:0; padding:0; display:grid; gap:.5rem; }
.footer-nav a{ opacity:.95; }
.footer-nav a:hover{ opacity:1; }

.btn{
  display:inline-block; padding:10px 16px; border-radius:999px;
  background: var(--footer-accent); color:#fff; font-weight:700;
  transition: transform .15s ease, filter .15s ease;
}
.btn:hover{ transform: translateY(-1px); filter: brightness(1.05); }

.footer-bottom{
  display:flex; justify-content: space-between; align-items:center; gap:16px;
  border-top:1px solid rgba(255,255,255,.08);
  margin-top: clamp(24px,4vw,40px);
  padding-top: clamp(16px,2.5vw,24px);
  color: var(--footer-muted);
}
.footer-bottom .legal{ display:flex; gap:16px; list-style:none; margin:0; padding:0; }

@media (max-width: 980px){
  .footer-grid{ grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px){
  .footer-grid{ grid-template-columns: 1fr; }
  .footer-bottom{ flex-direction: column; align-items: flex-start; }
}

/* アクセシビリティ：キーボードフォーカス */
.site-footer a:focus-visible,
.btn:focus-visible{
  outline:2px solid var(--footer-accent);
  outline-offset:2px;
  border-radius:10px;
}


:root{
  --bg:#07080c;
  --bg-2:#0d0f16;
  --ink:#e8ecf3;
  --ink-muted:#a6adbb;
  --accent:#1754f1;
  --radius:16px;

  /* タイポ：字間・行送り広め */
  --fz-display: clamp(28px, 6.2vw, 64px);
  --ls-wide: 0.06em;
  --lh-loose: 1.22;
}

html,body{background:var(--bg); color:var(--ink);}
.section{padding: clamp(40px, 8vw, 96px) clamp(16px, 4vw, 40px);}

.h-section{font-size: clamp(20px,3vw,28px); letter-spacing:.08em; margin-bottom: 1.2rem; opacity:.9}
.h-display{font-size: var(--fz-display); letter-spacing: var(--ls-wide); line-height: var(--lh-loose); margin: 0 0 1rem; text-wrap: balance;}
.lead{font-size: clamp(16px, 2.6vw, 20px); color: var(--ink-muted); max-width: 80ch;}

.btn{display:inline-block; padding:12px 18px; border-radius:999px; font-weight:700; text-decoration:none; }
.btn.-primary{ background: var(--accent); color:#fff; }
.btn.-primary:hover{ filter: brightness(1.05); }
.btn.-ghost{ border:1px solid rgba(255,255,255,.2); color:var(--ink); }
.btn.-ghost:hover{ background: rgba(255,255,255,.06); }

.-fullbleed{padding-inline:0}

/* ===== Hero ===== */
.hero{ position: relative; min-height: 78vh; display:grid; place-items:center; overflow:hidden; background: radial-gradient(1200px 600px at 80% -10%, #1a1f35 0%, transparent 60%);}
.hero-bg{ position:absolute; inset:0; width:100%; height:100%; display:block; }
.hero[data-bg="grid"] .hero-bg{ display:none; } /* gridは純CSSで描画 */

.hero::before{ /* CSSグリッド背景（data-bg="grid" のとき見えるように） */
  content:""; position:absolute; inset:-2px; 
  background:
    linear-gradient(transparent 95%, rgba(255,255,255,.05) 0) 0 0/ 100% 28px,
    linear-gradient(90deg, transparent 95%, rgba(255,255,255,.05) 0) 0 0/ 28px 100%;
  opacity: .25;
}
.hero[data-bg="grid"]::before{ opacity:.5 }

.hero-inner{ position: relative; z-index:2; text-align:center; padding-inline: clamp(16px,4vw,40px); }
.cta{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; margin-top: 1.2rem; }

.scroll-indicator{ position:absolute; left:50%; bottom:18px; translate:-50% 0; color: var(--ink-muted); font-size: 12px; letter-spacing:.4em; display:flex; flex-direction:column; align-items:center; gap:6px; opacity:.8 }
.scroll-indicator svg{ animation: bob 1.6s ease-in-out infinite; }
@keyframes bob { 0%,100%{ transform: translateY(0)} 50%{ transform: translateY(6px)} }

/* 行→文字の二段アニメ用（JSで .line / .char を付与） */
.h-display .line{ display:block; overflow:hidden; }
.h-display .line .char{ display:inline-block; transform: translateY(12px); opacity:0; }
.h-display.is-in .line .char{ transform:none; opacity:1; transition: transform .6s ease, opacity .6s ease; }

/* 露出アニメ（小要素） */
.reveal{ opacity:0; transform: translateY(10px); transition: opacity .5s ease, transform .5s ease; }
.reveal.is-in{ opacity:1; transform:none; }

/* ===== Info Bar ===== */
.info-bar{ background: linear-gradient(90deg, rgba(23,84,241,.16), rgba(23,84,241,0)); padding-block: 12px; }
.info-wrap{ display:flex; gap:12px; align-items:center; white-space:nowrap; overflow:auto; }
.badge{ font-size:12px; padding:4px 8px; border:1px solid rgba(255,255,255,.25); border-radius:999px; color:#cfe0ff; }
.info-link{ color:#fff; text-decoration:none; opacity:.9 }
.info-link:hover{ opacity:1; }

/* ===== Story（動画背景） ===== */
.story{ position:relative; overflow:hidden; }
.story-media{ position:absolute; inset:0; z-index:0; }
.story-video{ width:100%; height:100%; object-fit:cover; opacity:.56; filter: saturate(1.1) contrast(1.05); }
.story-inner{ position:relative; z-index:1; max-width: 1100px; margin-inline:auto; }
.story .kicker{ letter-spacing:.2em; text-transform:uppercase; color: var(--ink-muted); margin:0 0 .4rem; }
.story .h-eyebrow{ font-size: clamp(20px,3.4vw,36px); margin:.2rem 0 1rem; }
.story .body{ color: var(--ink-muted); max-width: 80ch; }
.link-more{ display:inline-block; margin-top: .8rem; color:#fff; text-decoration:none; border-bottom:1px solid rgba(255,255,255,.3); }
.link-more:hover{ border-bottom-color:#fff; }

/* ===== Services ===== */
.card-grid{ display:grid; gap:16px; grid-template-columns: repeat(4, 1fr); }
.card{ background: var(--bg-2); border:1px solid rgba(255,255,255,.08); border-radius: var(--radius); padding:18px; display:grid; gap:.6rem; }
.card h3{ margin:.2rem 0 .2rem; font-size: clamp(16px,2.2vw,20px); }
.card p{ color: var(--ink-muted); }
.card-link{ color:#fff; text-decoration:none; font-weight:700; }
.card:hover{ outline:1px solid rgba(255,255,255,.2); }

.card.-row{ display:flex; align-items:center; justify-content:space-between; }

/* ===== Community ===== */
.comm-grid{ display:grid; gap:12px; grid-template-columns: repeat(3, 1fr); }
.comm .comm-title{ font-weight:700; }
.comm .comm-more{ color: var(--ink-muted); }

/* ===== News ===== */
.news-list{ list-style:none; padding:0; margin:0; display:grid; gap:12px; grid-template-columns: repeat(3, 1fr); }
.news-item{ background: var(--bg-2); border:1px solid rgba(255,255,255,.08); border-radius: var(--radius); padding:16px; display:grid; gap:.3rem; }
.news-item time{ color: var(--ink-muted); font-size: 12px; }
.news-item a{ color:#fff; text-decoration:none; font-weight:600; }
.news-item.-loading{ opacity:.7; text-align:center; }
.news-more{ margin-top: 12px; }

@media (max-width: 980px){
  .card-grid{ grid-template-columns: repeat(2, 1fr); }
  .news-list{ grid-template-columns: 1fr 1fr; }
  .comm-grid{ grid-template-columns: 1fr; }
}
@media (max-width: 520px){
  .news-list{ grid-template-columns: 1fr; }
}

/* モバイルの見出しを1〜2行に収める（広がりすぎ抑制） */
@media (max-width: 480px){
  .h-display{ font-size: clamp(20px, 7vw, 24px); }
}

/* 配慮：モーション軽減 */
@media (prefers-reduced-motion: reduce){
  .h-display .char,
  .reveal{ transition:none !important; transform:none !important; }
  .scroll-indicator svg{ animation:none !important; }
  .story-video{ display:none; }
}



/* Enterprise */
/* ===== Enterprise page styles ===== */
.page-enterprise{ --max: 1200px; --ink:#e8ecf3; --muted:#a6adbb; --bg:#0b0c10; --bg2:#131722; --accent:#1754f1; color:var(--ink); }
.page-enterprise .section{ padding: clamp(32px,6vw,72px) clamp(16px,4vw,40px); }
.page-enterprise .h-section{ font-size: clamp(18px,2.6vw,26px); letter-spacing:.12em; text-transform: uppercase; opacity:.9; margin:0 0 1rem; }
.page-enterprise .lead{ color:var(--muted); max-width: 80ch; }

/* TOC */
.page-enterprise .toc{ position: sticky; top: 0; z-index:10; background: linear-gradient(180deg, rgba(11,12,16,.92), rgba(11,12,16,.75)); backdrop-filter: blur(6px); border-bottom:1px solid rgba(255,255,255,.06); }
.page-enterprise .toc ol{ max-width:var(--max); margin:0 auto; padding: 10px clamp(16px,4vw,40px); display:flex; gap: clamp(8px,1.6vw,16px); flex-wrap: wrap; list-style: none; }
.page-enterprise .toc a{ display:flex; align-items:center; gap:8px; text-decoration:none; color:var(--ink); font-weight:700; padding:8px 10px; border-radius:10px; }
.page-enterprise .toc a:hover{ background: rgba(255,255,255,.06); }
.page-enterprise .toc span{ display:inline-block; min-width:2.2em; text-align:center; border:1px solid rgba(255,255,255,.2); border-radius:999px; font-size:.85em; }

/* OUTLINE */
.page-enterprise #outline .lead{ margin-bottom: 1rem; }
.page-enterprise .flow{ max-width:var(--max); margin:16px auto 0; display:grid; gap:12px; grid-template-columns: repeat(3, 1fr); padding:0; list-style:none; }
.page-enterprise .flow li{ background:var(--bg2); border:1px solid rgba(255,255,255,.08); border-radius:14px; padding:16px; }
.page-enterprise .flow h3{ margin:.2rem 0 .3rem; font-size: clamp(16px,2.2vw,20px); }
.page-enterprise .flow p{ color:var(--muted); }

@media (max-width: 960px){
  .page-enterprise .flow{ grid-template-columns: 1fr; }
}

/* FEATURE */
.page-enterprise .feature-grid{ max-width:var(--max); margin:0 auto; display:grid; grid-template-columns: repeat(3, 1fr); gap:10px; padding:0; list-style:none; }
.page-enterprise .chip{ background:var(--bg2); border:1px solid rgba(255,255,255,.08); border-radius:999px; padding:10px 14px; text-align:center; font-weight:700; }
@media (max-width: 720px){ .page-enterprise .feature-grid{ grid-template-columns: repeat(2, 1fr); } }

/* FUNCTION */
.page-enterprise .func-list{ max-width:var(--max); margin:0 auto; padding-left: 1.1em; display:grid; gap:.35rem; }
.page-enterprise .func-list li{ max-width: 80ch; }

/* ESTIMATE */
.page-enterprise .steps{ max-width:var(--max); margin:8px auto 12px; padding:0; list-style:none; display:grid; grid-template-columns: repeat(4,1fr); gap:10px; }
.page-enterprise .steps li{ background:var(--bg2); border:1px solid rgba(255,255,255,.08); border-radius:14px; padding:18px; display:flex; align-items:center; gap:10px; font-weight:700; }
.page-enterprise .steps span{ display:inline-grid; place-items:center; width:28px; height:28px; border-radius:999px; border:1px solid rgba(255,255,255,.3); font-size:.9em; }
.page-enterprise .cta{ margin-top: 8px; }
.page-enterprise .btn{ display:inline-block; padding:10px 16px; border-radius:999px; text-decoration:none; font-weight:700; }
.page-enterprise .btn.-primary{ background:var(--accent); color:#fff; }
.page-enterprise .btn.-ghost{ border:1px solid rgba(255,255,255,.2); color:var(--ink); }
@media (max-width: 960px){ .page-enterprise .steps{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 520px){ .page-enterprise .steps{ grid-template-columns: 1fr; } }

/* DOCUMENTS */
.page-enterprise .doc-links{ max-width:var(--max); margin:0 auto; padding:0; list-style:none; display:grid; grid-template-columns: repeat(2,1fr); gap:10px; }
.page-enterprise .doc-links a{ display:block; background:var(--bg2); border:1px solid rgba(255,255,255,.08); border-radius:12px; padding:12px 14px; text-decoration:none; color:var(--ink); font-weight:700; }
.page-enterprise .doc-links a:hover{ outline:1px solid rgba(255,255,255,.2); }
@media (max-width: 720px){ .page-enterprise .doc-links{ grid-template-columns: 1fr; } }

/* FAQ — detailsでアクセシブルに */
.page-enterprise .faq{ max-width:var(--max); margin:0 auto; display:grid; gap:8px; }
.page-enterprise .faq details{ background:var(--bg2); border:1px solid rgba(255,255,255,.08); border-radius:12px; padding:10px 12px; }
.page-enterprise .faq summary{ cursor:pointer; list-style:none; font-weight:700; }
.page-enterprise .faq summary::-webkit-details-marker{ display:none; }
.page-enterprise .faq details[open]{ border-color: rgba(255,255,255,.18); }
.page-enterprise .faq details > div{ color:var(--muted); margin-top:.5rem; }

/* NEWS */
.page-enterprise .news-list{ max-width:var(--max); margin:0 auto; padding:0; list-style:none; display:grid; grid-template-columns: repeat(3,1fr); gap:10px; }
.page-enterprise .news-item{ background:var(--bg2); border:1px solid rgba(255,255,255,.08); border-radius:12px; padding:12px; display:grid; gap:.3rem; }
.page-enterprise .news-item time{ color:var(--muted); font-size:.9em; }
.page-enterprise .news-item a{ font-weight:700; text-decoration:none; color:var(--ink); }
.page-enterprise .news-item.-loading{ text-align:center; opacity:.75; }
.page-enterprise .news-more{ max-width:var(--max); margin: 10px auto 0; }
@media (max-width: 960px){ .page-enterprise .news-list{ grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px){ .page-enterprise .news-list{ grid-template-columns: 1fr; } }

/* 体裁 */
.page-enterprise .section > *{ max-width:var(--max); margin-left:auto; margin-right:auto; }
html{ scroll-behavior: smooth; }
/* Enterprise */


/* Story */
:root{
  --svm-bg:#fff; --svm-fg:#0b0b0b; --svm-mute:#555; --svm-accent:#111;
  --svm-br:14px; --svm-border:#e5e7eb; --svm-shadow:0 8px 26px rgba(0,0,0,.08);
}

/* Theme bleeding guard (Astra/Gutenberg背景の干渉を抑制) */
.svm-section{background:#fff;}
.svm-section *{box-sizing:border-box}

.svm-section{padding:80px 4vw; color:var(--svm-fg);}
.svm-section + .svm-section{border-top:1px solid var(--svm-border);}
.svm-container{max-width:1120px; margin:0 auto;}

.svm-head{margin:0 0 24px}
.svm-title{font-size:clamp(28px,3vw,40px); font-weight:800; letter-spacing:.02em; margin:0}
.svm-sub{margin:8px 0 0; color:var(--svm-mute); font-size:clamp(14px,1.4vw,16px)}

/* ===== VISION (sticky horizontal) ===== */
.svm-vision__wrap{position:relative}
.svm-vision__sticky{
  position:sticky; top:0; height:100vh; display:flex; align-items:center; overflow:hidden;
  border:1px solid var(--svm-border); border-radius:var(--svm-br); background:#fff; box-shadow:var(--svm-shadow);
}
.svm-vision__track{display:flex; will-change:transform; transition:transform .2s ease-out}
.svm-panel{width:100vw; padding:0 7vw; display:grid; place-items:center; text-align:center}
.svm-panel__icon{color:var(--svm-accent); margin:0 auto 10px}
.svm-panel__ttl{font-size:clamp(20px,2.2vw,28px); margin:.3em 0; font-weight:800}
.svm-panel__txt{color:var(--svm-mute); line-height:1.8}

/* ===== UPCOMING ===== */
.svm-grid{display:grid; gap:18px; grid-template-columns:repeat(1,minmax(0,1fr))}
@media (min-width:740px){ .svm-grid{grid-template-columns:repeat(3,minmax(0,1fr));} }

.svm-card{
  background:#fff; border:1px solid var(--svm-border); border-radius:var(--svm-br);
  padding:20px; display:flex; flex-direction:column; gap:8px; transition:transform .18s ease, box-shadow .18s ease;
}
.svm-card:hover{ transform:translateY(-2px); box-shadow:var(--svm-shadow) }
.svm-card__icon{color:var(--svm-accent)}
.svm-card__ttl{font-size:18px; font-weight:800; margin:2px 0}
.svm-card__txt{color:var(--svm-mute); line-height:1.8}

/* ===== MOVIE ===== */
.svm-movie__thumbwrap{display:grid; place-items:start}
.svm-movie__open{all:unset; cursor:pointer; display:block}
.svm-movie__thumb{
  position:relative; border:1px solid var(--svm-border); border-radius:var(--svm-br);
  overflow:hidden; box-shadow:var(--svm-shadow); max-width:min(880px,86vw)
}
.svm-movie__thumb img{display:block; width:100%; height:auto}
.svm-play{
  position:absolute; inset:auto auto 12px 12px;
  background:#fff; color:#111; border:1px solid #111; border-radius:999px;
  padding:10px 14px; font-weight:700; box-shadow:0 4px 12px rgba(0,0,0,.08)
}

/* Modal */
.svm-modal{position:fixed; inset:0; display:none; align-items:center; justify-content:center; z-index:9999}
.svm-modal[aria-hidden="false"]{display:flex}
.svm-modal__overlay{position:absolute; inset:0; background:rgba(0,0,0,.45)}
.svm-modal__dialog{
  position:relative; width:min(960px,92vw); background:#fff; border:1px solid var(--svm-border);
  border-radius:var(--svm-br); box-shadow:0 16px 48px rgba(0,0,0,.12); overflow:hidden
}
.svm-modal__close{
  position:absolute; top:8px; right:10px; background:#fff; color:#111; border:1px solid #111;
  font-size:18px; line-height:1; cursor:pointer; padding:6px 10px; border-radius:999px; z-index:2
}
.svm-modal__frame{aspect-ratio:16/9; width:100%; background:#000}
.svm-iframeholder, .svm-iframeholder iframe{width:100%; height:100%}

/* Focus styles */
.svm-movie__open:focus-visible, .svm-modal__close:focus-visible, .svm-card:focus-within{
  outline:2px dotted #111; outline-offset:3px;
}

/* Reduce motion */
@media (prefers-reduced-motion: reduce){
  .svm-vision__track{transition:none}
  .svm-card, .svm-card:hover{transform:none; box-shadow:none}
}
/* Story */


/* ===== Page Transition: safe (no stuck white) ===== */
:root{
  --ptz-bg:#fff;            /* サイトがダークなら #0b0b0b に */
  --ptz-dur:800ms;
  --ptz-ease:cubic-bezier(.22,.61,.36,1);
}

/* デフォルトは非表示。離脱時だけ覆う */
body::before{
  content:"";
  position:fixed; inset:0; z-index:2147483647;
  background:var(--ptz-bg);
  opacity:0; transform:scale(1); pointer-events:none;
  transition:
    opacity var(--ptz-dur) var(--ptz-ease),
    transform var(--ptz-dur) var(--ptz-ease);
}
body.ptz-leave::before{
  opacity:1; transform:scale(1.02); pointer-events:auto;
}

/* 入り側の“うっすらフェードイン”はオーバーレイではなく中身に付ける */
@keyframes ptzFadeIn { from{opacity:0; filter:saturate(.95) blur(.3px)} to{opacity:1; filter:none} }
.ptz-fade-in{ animation: ptzFadeIn var(--ptz-dur) var(--ptz-ease) both; }

@media (prefers-reduced-motion: reduce){
  body::before{transition:none}
  .ptz-fade-in{animation:none}
}
/* フェードイン */

/* コミュニティ */
:root{
  --cm-fg:#0b0b0b; --cm-mute:#60656f; --cm-bg:#fff; --cm-br:14px;
  --cm-border:#e5e7eb; --cm-shadow:0 10px 28px rgba(0,0,0,.08);
  --cm-accent:#111; /* 黒基調 */
}

.cm-section{background:var(--cm-bg); color:var(--cm-fg); padding:72px 4vw}
.cm-container{max-width:1120px; margin:0 auto}
.cm-head{display:flex; align-items:end; justify-content:space-between; gap:12px; margin:0 0 18px}
.cm-sec{margin:0; font-size:clamp(20px,2vw,24px); font-weight:800; letter-spacing:.08em}
.cm-sub{margin:8px 0 0; color:var(--cm-mute)}
.cm-more{font-weight:700; text-decoration:none; border-bottom:1px solid currentColor}

.cm-hero{position:relative; padding-top:88px; padding-bottom:32px; border-bottom:1px solid var(--cm-border)}
.cm-hero__head{display:grid; gap:6px}
.cm-eyebrow{letter-spacing:.32em; font-size:12px; margin:0; color:var(--cm-mute)}
.cm-title{margin:0; font-size:clamp(34px,6vw,68px); font-weight:900; letter-spacing:.22em}
.cm-chapters{display:flex; gap:16px; margin-top:20px; flex-wrap:wrap}
.cm-chapter{display:inline-flex; gap:8px; align-items:center; text-decoration:none; color:var(--cm-fg); border:1px solid var(--cm-fg);
  padding:8px 12px; border-radius:999px; font-weight:700}
.cm-num{opacity:.7}
.cm-scroll{position:fixed; inset:auto auto 24px 16px; writing-mode:vertical-rl; text-orientation:upright; letter-spacing:.2em; font-weight:800; opacity:.25; pointer-events:none}

.cm-grid.--modules{display:grid; grid-template-columns:repeat(1,minmax(0,1fr)); gap:18px}
@media (min-width:760px){ .cm-grid.--modules{grid-template-columns:repeat(4,minmax(0,1fr))} }

.cm-card{background:#fff; border:1px solid var(--cm-border); border-radius:var(--cm-br);
  box-shadow:var(--cm-shadow); padding:18px; display:flex; flex-direction:column; gap:10px;
  transition:transform .18s ease, box-shadow .18s ease}
.cm-card:hover{transform:translateY(-2px); box-shadow:0 14px 36px rgba(0,0,0,.12)}
.cm-icn{color:var(--cm-accent)}
.cm-card__ttl{margin:2px 0; font-size:18px; font-weight:800}
.cm-card__txt{color:var(--cm-mute); line-height:1.8}
.cm-btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:8px 12px; border:1px solid #111; color:#111; background:#fff; border-radius:999px; font-weight:700; text-decoration:none}
.cm-newsletter{display:grid; grid-template-columns:1fr auto; gap:8px}
.cm-newsletter input{border:1px solid var(--cm-border); border-radius:999px; padding:10px 12px; min-width:0}

.cm-grid.--news{display:grid; grid-template-columns:repeat(1,minmax(0,1fr)); gap:16px}
@media (min-width:880px){ .cm-grid.--news{grid-template-columns:repeat(3,minmax(0,1fr))} }

.cm-post{border:1px solid var(--cm-border); border-radius:var(--cm-br); padding:16px; background:#fff; box-shadow:var(--cm-shadow);
  display:flex; flex-direction:column; gap:10px}
.cm-post__meta{font-size:12px; color:#444}
.cm-post__ttl{margin:2px 0; font-size:16px; font-weight:800; line-height:1.5}
.cm-post__excerpt{color:var(--cm-mute); font-size:14px; line-height:1.7}
.cm-post__link{margin-top:auto; display:inline-flex; border:1px solid #111; border-radius:999px; padding:8px 12px; text-decoration:none; color:#111}

[data-reveal]{opacity:0; transform:translateY(8px); transition:opacity .4s ease, transform .4s ease}
.is-in{opacity:1 !important; transform:none !important}

.sr-only{position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0}

@media (prefers-reduced-motion: reduce){
  [data-reveal]{transition:none}
  .cm-card:hover{transform:none; box-shadow:var(--cm-shadow)}
}
/* コミュニティ */


/* Function */
:root{
  --fx-fg:#0b0b0b; --fx-mute:#565b66; --fx-border:#e5e7eb;
  --fx-br:14px; --fx-shadow:0 10px 28px rgba(0,0,0,.08);
}

/* セクションの余白を少しタイトに */
.wp-block-group.section{ padding:64px 4vw; background:#fff; color:var(--fx-fg); }
.wp-block-heading.h-section{ margin:0 0 12px; font-weight:800; letter-spacing:.02em; }

/* FUNCTION グリッド（Columnsに fx-grid を付ける） */
.fx-grid{ gap:16px !important; }
@media (min-width:760px){ .fx-grid{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; display:grid !important; } }
@media (min-width:1040px){ .fx-grid{ grid-template-columns:repeat(3,minmax(0,1fr)) !important; } }
/* Columnsブロックでも動くよう保険 */
.fx-grid.wp-block-columns{ gap:16px; }
.fx-grid.wp-block-columns > .wp-block-column{ margin:0; }

/* カード（各カラム内のグループに fx-card を付ける） */
.fx-card{
  border:1px solid var(--fx-border); border-radius:var(--fx-br); background:#fff;
  box-shadow:var(--fx-shadow); padding:16px; display:flex; flex-direction:column; gap:10px;
  transition:transform .18s ease, box-shadow .18s ease;
}
.fx-card:hover{ transform:translateY(-2px); box-shadow:0 14px 36px rgba(0,0,0,.10); }

/* アイコン画像のサイズ調整（画像ブロックを想定） */
.fx-card .wp-block-image{ margin:0; }
.fx-card .wp-block-image img{ width:28px; height:auto; }

/* タイトル/本文 */
.fx-card h3{ margin:2px 0; font-size:18px; font-weight:800; }
.fx-card p{ margin:0; color:var(--fx-mute); line-height:1.8; }

/* 箇条書き（fx-list / fx-chips の2種類） */
.fx-list{ margin:6px 0 0; padding-left:1.1em; }
.fx-list li::marker{ color:#111; }

.fx-chips{ list-style:none; margin:6px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:8px; }
.fx-chips li{
  display:inline-flex; align-items:center; padding:6px 10px;
  border:1px solid var(--fx-border); border-radius:999px; font-size:13px; background:#fff; color:#111;
}

/* “準備中”バッジっぽさ（任意で使う場合） */
.fx-badge{
  display:inline-flex; align-items:center; padding:2px 8px; border:1px dashed #111; border-radius:999px;
  font-size:12px; font-weight:700; color:#111; background:#fff; margin-left:.3em;
}

/* ふわっと表示用（js-reveal に付与） */
.js-reveal{ opacity:0; transform:translateY(8px); transition:opacity .4s ease, transform .4s ease; }
.js-reveal.is-in{ opacity:1; transform:none; }

@media (prefers-reduced-motion: reduce){
  .fx-card:hover{ transform:none; }
  .js-reveal{ transition:none; opacity:1 !important; transform:none !important; }
}


/* Astra無料版でグローバルヘッダーを固定する */
.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: #fff; /* スクロール時に白背景に */
}

/* ログイン時の管理バー対応 */
body.admin-bar .site-header { top: 32px; }
@media (max-width:782px){
  body.admin-bar .site-header { top: 46px; }
}


/* Single投稿のタイトル直下のメタ（著者・日付・区切り）を一括で非表示 */
.single .entry-meta,
.single .entry-meta * ,
.single .ast-author-meta,
.single .ast-date-meta,
.single .posted-by,
.single .posted-on,
.single time.published,
.single time.updated,
.single .meta-separator,
.single .wp-block-post-author,
.single .wp-block-post-author__byline,
.single .wp-block-post-date {
  display: none !important;
}


.section.hero.-fullbleed .hero-video {
  width: 100%;
  height: 100%;
  object-fit: cover;     /* 縦横比キープで全面カバー */
  object-position: center;
}


/* ===== Compact slider base ===== */
.ui-carousel.is-compact{
  --w: min(100%, 980px);
  /* 文章(数行)くらいの高さ：90〜140pxの間で可変 */
  --h: clamp(90px, 16vw, 140px);
  --nav: 36px;     /* 矢印ボタンの大きさ */
  --dot: 8px;      /* ドットのサイズ */
  --radius: 12px;

  position: relative;
  width: var(--w);
  margin: 0 auto 1rem;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans JP", sans-serif;
}

/* radios hidden */
.ui-carousel .uicar{ position:absolute; opacity:0; pointer-events:none; }

/* frame */
.ui-carousel .uc-viewport{
  overflow: hidden;
  height: var(--h);
  border-radius: var(--radius);
  box-shadow: 0 8px 18px rgba(0,0,0,.12);
  background: linear-gradient(180deg, #0f1114, #0a0b0d);
  position: relative;
}

/* track */
.ui-carousel .uc-track{
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 100%;
  width: 300%;
  height: 100%;
  transition: transform .45s ease;
}

/* slides */
.ui-carousel .uc-slide{
  position: relative;
  height: 100%;
  display: grid;
  grid-template-columns: 1fr;
  align-items: end;
  isolation: isolate;
}
.ui-carousel .uc-media{
  position: absolute; inset: 0; overflow: hidden; z-index: 0;
}
.ui-carousel .uc-media img{
  width: 100%; height: 100%; object-fit: cover; display: block;
  filter: brightness(.78) contrast(1.05);
}
.ui-carousel .uc-meta{
  position: relative; z-index: 1;
  margin: 8px;
  padding: 6px 10px;
  border-radius: 8px;
  background: linear-gradient(180deg, rgba(0,0,0,.15), rgba(0,0,0,.35));
  backdrop-filter: blur(2px);
  color: #fff;
}
.ui-carousel .uc-meta h3{
  font-size: clamp(13px, 2vw, 16px);
  line-height: 1.3;
  margin: 0;
  font-weight: 600;
  letter-spacing: .01em;
}

/* translate by checked */
#uicar-1:checked ~ .uc-viewport .uc-track{ transform: translateX(0); }
#uicar-2:checked ~ .uc-viewport .uc-track{ transform: translateX(-100%); }
#uicar-3:checked ~ .uc-viewport .uc-track{ transform: translateX(-200%); }

/* arrows — always visible in compact */
.ui-carousel .uc-nav{
  position: absolute; top: 50%; translate: 0 -50%;
  width: var(--nav); height: var(--nav);
  border: 0; border-radius: 999px;
  background: rgba(0,0,0,.45);
  box-shadow: 0 2px 8px rgba(0,0,0,.2);
  cursor: pointer;
}
.ui-carousel .uc-prev{ left: 6px; }
.ui-carousel .uc-next{ right: 6px; }
.ui-carousel .uc-nav::before{
  content:""; display:block; width:9px; height:9px;
  border:2px solid #fff; border-right:0; border-top:0; rotate:45deg; margin: auto;
}
.ui-carousel .uc-next::before{ rotate:-135deg; }
.ui-carousel .uc-nav:hover{ background: rgba(0,0,0,.60); }

/* dots */
.ui-carousel .uc-dots{
  position: absolute; inset: auto 0 6px 0;
  display: flex; gap: 6px; justify-content: center;
}
.ui-carousel .uc-dot{
  width: var(--dot); height: var(--dot); border-radius: 999px;
  background: rgba(255,255,255,.4);
  cursor: pointer; transition: transform .15s ease, background .15s ease;
}
#uicar-1:checked ~ .uc-dots .d1,
#uicar-2:checked ~ .uc-dots .d2,
#uicar-3:checked ~ .uc-dots .d3{ background:#fff; }
.ui-carousel .uc-dot:hover{ transform: scale(1.12); }

/* reduce motion */
@media (prefers-reduced-motion: reduce){
  .ui-carousel .uc-track{ transition: none; }
}

/* ラベルがクリックできないテーマ対策 */
.ui-carousel .uc-nav,
.ui-carousel .uc-dot {
  pointer-events: auto !important;
  cursor: pointer;
}

/* 矢印が前面に来ない対策 */
.ui-carousel .uc-nav { z-index: 5; }
.ui-carousel .uc-viewport { position: relative; z-index: 1; }

/* 万一テーマが label { pointer-events:none } を入れている場合の上書き */
label.uc-nav, label.uc-dot { pointer-events: auto !important; }

/* （再掲）スライド切替の表示条件：このブロックが無いと矢印が出ない */
#uicar-1:checked ~ .uc-prev.prev-1,
#uicar-1:checked ~ .uc-next.next-1,
#uicar-2:checked ~ .uc-prev.prev-2,
#uicar-2:checked ~ .uc-next.next-2,
#uicar-3:checked ~ .uc-prev.prev-3,
#uicar-3:checked ~ .uc-next.next-3 {
  opacity: 1; pointer-events: auto;
}

/* ヒーロー高さを端末に応じて自動調整 */
.hero, .wp-block-cover.hero, .h-hero {
  min-height: clamp(360px, 48vh, 640px);
  padding-block: clamp(24px, 6vh, 80px);
}

/* ヒーロー内の見出しの行間と折り返し最適化 */
.hero h1, .hero .wp-block-heading.is-style-hero {
  line-height: 1.15;
  letter-spacing: 0.02em;
  margin: 0 0 .5em;
  word-break: keep-all;
}

/* モバイルでの全体余白をタイトにする */
@media (max-width: 768px) {
  .site-content .entry-content > * {
    margin-block: clamp(12px, 3.5vw, 20px);
  }
}


/* ==== Force 3 columns on all devices ==== */
/* 1) グリッド本体：どんな画面でも3列固定 */
.svc .svc__grid,
section.svc > .svc__grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: var(--svc-gap, 16px) !important;
}

/* 2) カード：小画面で潰れないように内側余白とフォントを自動調整 */
.svc {
  --svc-gap: clamp(8px, 2vw, 24px);
  --svc-radius: 14px;
  --svc-pad: clamp(8px, 2vw, 18px);
  --svc-accent: #1754f1;
  --svc-bg: #fff;
}

.svc .svc__card {
  height: 100%;
  background: var(--svc-bg);
  border: 1px solid rgba(0,0,0,.06);
  border-radius: var(--svc-radius);
  padding: var(--svc-pad);
  box-shadow: 0 6px 20px rgba(0,0,0,.06);
  display: grid;
  grid-template-rows: auto auto 1fr;
  align-items: start;
}

/* 3) アイコン枠とSVG：極小画面でも収まるように縮小 */
.svc .svc__media {
  margin: 0 0 8px 0;
  display: grid;
  place-items: center;
  aspect-ratio: 16/9;
  overflow: hidden;
  border-radius: calc(var(--svc-radius) - 4px);
  background: linear-gradient(0deg, rgba(23,84,241,.06), rgba(23,84,241,.06));
}
.svc .svc__media .ico {
  width: clamp(48%, 7vw, 64%);
  height: auto;
}
.svc .s {
  stroke: var(--svc-accent);
  stroke-width: 8;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
}
.svc .s-fill { fill: var(--svc-accent); }

/* 4) タイトル＆本文：小さめでOKな設定（読みやすさ優先でclamp） */
.svc .svc__title {
  font-size: clamp(13px, 2.4vw, 18px);
  line-height: 1.25;
  margin: 6px 0 4px;
  letter-spacing: .01em;
}
.svc .svc__text {
  margin: 0;
  color: #333;
  line-height: 1.6;
  font-size: clamp(11px, 2vw, 15px);
  word-break: break-word;
}

/* 5) どうしてもテーマ側が勝つ場合に備えた“最終兵器”（任意）
   これでも2列のままなら↓を有効化して、テーマの列指定を潰します。
   .svc .svc__grid > * { width: auto !important; max-width: none !important; flex: 0 0 auto !important; }
*/



/* ===== PeakWay Company Styles ===== */
:root{
  --pw-accent: #1754f1;         /* 主要アクセント（必要に応じて変更） */
  --pw-ink: #0f172a;            /* 文字色 */
  --pw-ink-sub: #475569;        /* サブ文字色 */
  --pw-bg: #ffffff;             /* 背景 */
  --pw-surface: #f8fafc;        /* カード背景 */
  --pw-line: #e2e8f0;           /* 罫線 */
  --pw-radius: 16px;
  --pw-shadow: 0 8px 20px rgba(2,6,23,.06);
}

/* セクション */
.section { padding: clamp(40px, 6vw, 80px) 0; }
.section__head { text-align: center; margin-bottom: clamp(24px, 5vw, 48px); }
.section__title {
  font-size: clamp(22px, 2.6vw, 34px);
  line-height: 1.2;
  letter-spacing: .02em;
  color: var(--pw-ink);
  position: relative;
  display: inline-block;
  padding-bottom: .6rem;
}
.section__title:after{
  content:"";
  display:block;
  width: 72px;
  height: 3px;
  margin: .6rem auto 0;
  background: linear-gradient(90deg, var(--pw-accent), color-mix(in oklab, var(--pw-accent) 50%, #9aa7ff));
  border-radius: 3px;
}
.section__lead { color: var(--pw-ink-sub); }

/* グリッド */
.company__grid{
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: clamp(18px, 2.4vw, 28px);
}
@media (max-width: 900px){
  .company__grid{ grid-template-columns: 1fr; }
}

/* カード */
.company__card{
  background: var(--pw-surface);
  border: 1px solid var(--pw-line);
  border-radius: var(--pw-radius);
  padding: clamp(18px, 2.2vw, 28px);
  box-shadow: var(--pw-shadow);
}
.company__subtitle{
  font-size: clamp(16px, 2vw, 20px);
  margin: 0 0 .8rem;
  color: var(--pw-ink);
}

/* 定義表 */
.company__table{
  margin: 0;
}
.company__table .row{
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 12px;
  padding: 14px 0;
  border-bottom: 1px dashed var(--pw-line);
}
.company__table .row:last-child{ border-bottom: none; }
.company__table dt{
  color: var(--pw-ink-sub);
  font-weight: 600;
}
.company__table dd{ margin: 0; }

/* ボタン */
.btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5em;
  padding: .7em 1.1em;
  border-radius: 999px;
  border: 1px solid var(--pw-line);
  text-decoration: none;
  font-weight: 600;
  transition: transform .05s ease, box-shadow .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
  will-change: transform;
}
.btn:hover{ transform: translateY(-1px); box-shadow: var(--pw-shadow); }
.btn--primary{
  background: var(--pw-accent);
  border-color: transparent;
  color: #fff;
}
.btn--ghost{
  background: #fff;
  color: var(--pw-ink);
}
.company__actions{ display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }

/* マップ */
.company__map{
  aspect-ratio: 16 / 11;
  border-radius: calc(var(--pw-radius) - 4px);
  overflow: hidden;
  border: 1px solid var(--pw-line);
  background: #eaeef5;
}
.company__map iframe{
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

/* 備考 */
.company__notes{
  margin: 14px 0 0;
  padding-left: 1.1em;
  color: var(--pw-ink-sub);
}
.company__notes li{ margin: .3em 0; }

/* --- 全文黒指定（PeakWay 会社概要）--- */
:root{
  --pw-ink: #000;     /* 本文色 */
  --pw-ink-sub: #000; /* サブ本文色 */
}

/* セクション内はすべて黒 */
.company, .company * { color: #000 !important; }

/* 見出し下線も黒に統一 */
.section__title:after{ background: #000 !important; }

/* リンクも黒（青リンクをなくす） */
.company a{ color:#000 !important; text-decoration: underline; }
.company a:hover{ opacity:.8; }

/* ボタンも黒文字＋白背景に統一（可読性重視） */
.btn--primary,
.btn--ghost{
  background:#fff !important;
  border-color:#000 !important;
  color:#000 !important;
}
.btn:hover{ box-shadow: 0 6px 16px rgba(0,0,0,.08); }

/* --- PeakWay 会社概要：左揃えに統一 --- */

/* 見出しブロックを左寄せ */
.company .section__head{ 
  text-align: left !important; 
}

/* 見出し下のラインも左からに */
.company .section__title:after{
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* 本文・表・リストなどのテキストを左寄せ強制 */
.company h1,
.company h2,
.company p,
.company dl,
.company dt,
.company dd,
.company li,
.company .row,
.company .company__card{
  text-align: left !important;
}

/* ボタンの並びも左寄せ */
.company .company__actions{
  justify-content: flex-start !important;
}
