@charset "UTF-8";
/* ============================================================
   FLORENTYNA コーポレートサイト
   デザイントークンと共通スタイル
   ============================================================ */

:root{
  /* Color */
  --ink:#182145;        /* 基調色（ロゴのネイビー） */
  --ink-80:#3a4166;
  --body:#4A5169;       /* 本文 */
  --mute:#8A92A8;       /* 注釈 */
  --accent:#FB3D28;     /* アクセント */
  --marker:#E4EC2D;     /* マーカー */
  --surface:#F2F4F9;    /* 面 */
  --surface-2:#F8F9FC;
  --line:#DDE1EC;       /* 罫線 */
  --white:#FFFFFF;

  /* Type */
  --jp:"BIZ UDPGothic","Noto Sans JP","Hiragino Sans","Yu Gothic Medium","Meiryo",sans-serif;
  --en:"Bahnschrift","DIN Alternate","Segoe UI","BIZ UDPGothic",sans-serif;

  /* Metrics */
  --r:8px;
  --r-lg:14px;
  --wrap:1080px;
  --gap:clamp(56px,7vw,96px);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;font-family:var(--jp);color:var(--body);background:var(--white);
  font-size:16px;line-height:1.85;letter-spacing:.02em;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  font-feature-settings:"palt" 1;
}
h1,h2,h3,h4,h5{color:var(--ink);line-height:1.45;margin:0;font-weight:700;letter-spacing:.01em;text-wrap:balance}
p{margin:0 0 1.3em}
p:last-child{margin-bottom:0}
ul,ol{margin:0 0 1.3em;padding-left:1.3em}
li{margin-bottom:.4em}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{
  outline:3px solid var(--accent);outline-offset:3px
}
img,svg{max-width:100%;height:auto;display:block}
hr{border:none;border-top:1px solid var(--line);margin:var(--gap) 0}

/* ---------- Layout ---------- */
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
.narrow{max-width:760px}
.section{padding:var(--gap) 0}
.section--surface{background:var(--surface)}
.section--line{border-top:1px solid var(--line)}
.stack>*+*{margin-top:1.3em}

.grid{display:grid;gap:22px}
.grid--2{grid-template-columns:repeat(2,1fr)}
.grid--3{grid-template-columns:repeat(3,1fr)}
.grid--4{grid-template-columns:repeat(4,1fr)}

/* ---------- Type helpers ---------- */
.en{font-family:var(--en);letter-spacing:.07em;font-feature-settings:normal}
.mk{background:linear-gradient(transparent 62%,var(--marker) 62%);padding:0 .12em}
.note{font-size:13px;color:var(--mute);line-height:1.8}
.lead{font-size:clamp(16px,1.2vw,17.5px)}
.eyebrow{font-family:var(--en);font-size:13px;color:var(--accent);letter-spacing:.12em;margin-bottom:14px}

.sec-head{margin-bottom:38px;max-width:820px}
.sec-head h2{font-size:clamp(22px,2.4vw,28px);margin-bottom:14px}
.sec-head p{margin:0;font-size:15.5px}

/* ---------- Buttons ---------- */
.btn{
  display:inline-block;font-family:var(--jp);font-size:15px;font-weight:700;
  border-radius:var(--r);padding:15px 30px;border:2px solid var(--ink);
  background:var(--ink);color:#fff;cursor:pointer;text-align:center;
  transition:opacity .15s
}
.btn:hover{opacity:.86;text-decoration:none}
.btn--ghost{background:transparent;color:var(--ink)}
.btn--accent{background:var(--accent);border-color:var(--accent);color:#fff}
.btns{display:flex;gap:14px;flex-wrap:wrap}

/* ---------- Cards / boxes ---------- */
.card{background:var(--surface);border-radius:var(--r);padding:28px}
.card--plain{background:#fff;border:1px solid var(--line)}
.card h3{font-size:18px;margin-bottom:10px}
.card p{font-size:14.5px}

.callout{background:var(--surface);border-left:4px solid var(--ink);border-radius:var(--r);padding:22px 26px;font-size:14.5px}

/* ---------- Tables ---------- */
.tbl-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse;font-size:15px}
th,td{padding:15px 16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{color:var(--ink);font-weight:700;background:var(--surface);white-space:nowrap}
table.plain th{background:transparent}
.cmp th:last-child{background:var(--marker);color:var(--ink)}
.cmp td:last-child{background:#FFFDF0;color:var(--ink);font-weight:700}

/* ---------- Header ---------- */
.site-head{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:saturate(180%) blur(8px);border-bottom:1px solid var(--line)}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;height:74px;gap:20px}
.logo img{height:22px;width:auto}
.gnav{display:flex;align-items:center;gap:24px;font-size:14.5px}
.gnav a{color:var(--ink);font-weight:500}
.gnav a:hover{color:var(--accent);text-decoration:none}
.gnav a[aria-current="page"]{color:var(--accent)}
.gnav .cta{background:var(--accent);color:#fff;padding:10px 20px;border-radius:var(--r);font-weight:700}
.navtoggle{display:none;background:none;border:1px solid var(--line);border-radius:var(--r);padding:9px 12px;cursor:pointer;font-family:var(--jp);font-size:13px;color:var(--ink)}

.alertbar{background:#FFF8D6;border-bottom:1px solid var(--line);font-size:14px;padding:11px 0}
.alertbar .wrap{display:flex;gap:14px;align-items:center}
.alertbar .tag{background:var(--ink);color:#fff;font-size:12px;padding:3px 11px;border-radius:99px;white-space:nowrap}
.alertbar a{color:var(--ink)}

/* ---------- Page head ---------- */
.pagehead{padding:64px 0 48px;border-bottom:1px solid var(--line)}
.pagehead h1{font-size:clamp(28px,3.4vw,40px);margin-bottom:18px}
.pagehead .lead{max-width:680px}
.crumbs{font-size:12.5px;color:var(--mute);padding:14px 0 0}
.crumbs a{color:var(--mute)}
.crumbs span{margin:0 .5em}

/* ---------- Hero ---------- */
.hero{padding:clamp(56px,7vw,92px) 0 clamp(48px,6vw,76px);border-bottom:1px solid var(--line)}
.hero-grid{display:grid;grid-template-columns:1.28fr .72fr;gap:clamp(32px,4vw,56px);align-items:center}
.hero h1{font-size:clamp(26px,3.5vw,44px);line-height:1.32;margin-bottom:26px}
.nb{display:inline-block}
.hero-fig{border-radius:var(--r-lg);overflow:hidden}
.hero-fig img{width:100%;height:clamp(220px,34vw,420px);object-fit:cover}

.stats{display:flex;gap:44px;margin-top:56px;padding-top:30px;border-top:1px solid var(--line);flex-wrap:wrap}
.stats div{min-width:132px}
.stats .n{font-family:var(--en);font-size:clamp(26px,3vw,36px);color:var(--ink);font-weight:700;line-height:1.2}
.stats .l{font-size:13px;color:var(--mute);line-height:1.7}

/* ---------- Service rows ---------- */
.svc{display:grid;grid-template-columns:220px 1fr;gap:32px;padding:34px 0;border-top:1px solid var(--line);align-items:start}
.svc:last-of-type{border-bottom:1px solid var(--line)}
.svc-thumb{border-radius:var(--r);overflow:hidden;margin-bottom:14px}
.svc-thumb img{width:100%;height:136px;object-fit:cover}
.svc h3{font-size:21px;margin-top:6px}

/* ---------- News ---------- */
.news-row{display:grid;grid-template-columns:118px 112px 1fr;gap:16px;padding:19px 0;border-bottom:1px solid var(--line);font-size:15px;align-items:baseline}
.news-row .date{font-family:var(--en);color:var(--mute);font-size:14px}
.news-row .cat{font-size:12px;border:1px solid var(--line);border-radius:99px;padding:3px 10px;color:var(--ink);text-align:center;white-space:nowrap}
.news-row a{color:var(--ink)}

/* ---------- Glossary ---------- */
.filters{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}
.filters input{flex:1;min-width:230px;font-family:var(--jp);font-size:15px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r)}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:26px}
.chip{font-size:13px;border:1px solid var(--line);border-radius:99px;padding:7px 15px;color:var(--ink);cursor:pointer;background:#fff;font-family:var(--jp)}
.chip[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.g-item{padding:21px 0;border-bottom:1px solid var(--line)}
.g-item h3{font-size:17px;margin-bottom:5px}
.g-item h3 a{color:var(--ink)}
.g-item .term-en{font-size:12.5px;color:var(--mute);margin-left:10px;font-weight:400;font-family:var(--en)}
.g-item p{margin:0;font-size:14.5px}
.g-empty{padding:40px 0;color:var(--mute)}

/* ---------- FAQ ---------- */
details{border-bottom:1px solid var(--line)}
summary{cursor:pointer;padding:21px 44px 21px 0;font-weight:700;color:var(--ink);font-size:16px;list-style:none;position:relative}
summary::-webkit-details-marker{display:none}
summary::after{content:"";position:absolute;right:8px;top:28px;width:10px;height:10px;border-right:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(45deg);transition:transform .2s}
details[open] summary::after{transform:rotate(-135deg)}
.faq-a{padding:0 0 24px;font-size:15px}

/* ---------- Forms ---------- */
.form{max-width:680px}
.field{margin-bottom:22px}
.field label{display:block;font-weight:700;color:var(--ink);font-size:14.5px;margin-bottom:7px}
.field .req{color:var(--accent);font-size:12px;margin-left:8px}
.field .opt{color:var(--mute);font-size:12px;font-weight:400;margin-left:8px}
.field input,.field select,.field textarea{
  width:100%;font-family:var(--jp);font-size:16px;line-height:1.5;padding:11px 15px;
  border:1px solid var(--line);border-radius:var(--r);background:#fff;color:var(--body)
}
/* プルダウン：ブラウザ標準の見た目では、Windows の Chrome などで和文の下側が欠けるため、文字の高さと矢印をサイト側で指定します */
.field select{
  -webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;
  padding-right:44px;text-overflow:ellipsis;
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23182145' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 16px center/12px 8px
}
.field select::-ms-expand{display:none}
.field select:hover{border-color:var(--ink)}
.field textarea{min-height:170px;resize:vertical}
.field .hint{font-size:12.5px;color:var(--mute);margin-top:6px}
.form-error{background:#FFF1EF;border-left:4px solid var(--accent);padding:16px 20px;border-radius:var(--r);margin-bottom:24px;font-size:14.5px}
.form-ok{background:var(--surface);border-left:4px solid var(--ink);padding:20px 24px;border-radius:var(--r);margin-bottom:24px;font-size:15px}

/* ---------- Footer ---------- */
.site-foot{border-top:1px solid var(--line);padding:58px 0 30px;font-size:14px;margin-top:var(--gap)}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:30px;margin-bottom:42px}
.foot-grid .foot-head{font-size:13px;color:var(--ink);margin:0 0 13px;font-weight:700}
.foot-grid ul{list-style:none;margin:0;padding:0}
.foot-grid li{margin-bottom:8px}
.foot-grid a{color:var(--body)}
.foot-bottom{border-top:1px solid var(--line);padding-top:20px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:14px;color:var(--mute);line-height:1.8}
.foot-bottom a{color:var(--mute)}

/* ---------- Responsive ---------- */
@media(max-width:900px){
  .gnav{
    display:none;position:absolute;top:74px;left:0;right:0;background:#fff;
    border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;
    gap:0;padding:10px 24px 22px
  }
  .gnav.is-open{display:flex}
  .gnav a{padding:13px 0;border-bottom:1px solid var(--line)}
  .gnav .cta{margin-top:14px;text-align:center;border-bottom:none}
  .navtoggle{display:block}
  .hero-grid{grid-template-columns:1fr;gap:28px}
  .grid--2,.grid--3,.grid--4,.foot-grid{grid-template-columns:1fr}
  .svc{grid-template-columns:1fr;gap:12px}
  .svc-thumb img{height:170px}
  .news-row{grid-template-columns:104px 1fr;row-gap:5px}
  .news-row .title{grid-column:1/3}
  body{font-size:15px}
  .tbl-scroll table{min-width:620px}
  .stats{gap:26px 32px;margin-top:38px}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* ---------- Print ---------- */
@media print{
  .site-head,.alertbar,.navtoggle,.btns,.crumbs{display:none!important}
  body{font-size:10.5pt;color:#000;background:#fff}
  .section{padding:14pt 0}
  .card,.callout,.card--plain{background:#fff!important;border:1px solid #999}
  th{background:#eee!important}
  a{color:#000;text-decoration:none}
  .site-foot{margin-top:18pt;padding-top:12pt}
  .mk{background:none;border-bottom:2px solid #999}
}

/* ---------- 図解 ---------- */
.fig{margin:0 0 8px}
.fig svg{width:100%;height:auto;display:block;font-family:var(--jp)}
.fig svg text{font-family:var(--jp);letter-spacing:.02em}
.fig-alt{border-bottom:none;margin-top:10px}
.fig-alt summary{padding:12px 34px 12px 0;font-size:13.5px;font-weight:500;color:var(--mute)}
.fig-alt summary::after{top:20px;width:8px;height:8px;border-color:var(--mute)}
.fig-alt .faq-a{padding:0 0 16px;font-size:14px}
.fig-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.fig-scroll .fig svg{min-width:720px}
@media print{.fig-alt{display:none}.fig-scroll .fig svg{min-width:0}}

@media(max-width:900px){
  .fig-scroll{position:relative;padding-bottom:26px}
  .fig-scroll::after{
    content:"→ 横にスクロールできます";position:absolute;right:0;bottom:2px;
    font-size:12px;color:var(--mute)
  }
}

/* ---------- メンバー ---------- */
.member{display:grid;grid-template-columns:148px 1fr;gap:26px;align-items:start;padding:30px 0;border-bottom:1px solid var(--line)}
.member:first-of-type{border-top:1px solid var(--line)}
.member-photo{width:148px;height:148px;border-radius:var(--r);overflow:hidden;background:var(--surface)}
.member-photo img{width:100%;height:100%;object-fit:cover}
.member-photo.is-placeholder{display:flex;align-items:center;justify-content:center;color:var(--mute);font-size:38px;font-weight:700}
.member h3{font-size:20px;margin-bottom:2px}
.member .role{color:var(--accent);font-size:13px;letter-spacing:.06em;margin-bottom:12px}
.member p{font-size:14.5px;margin:0}
@media(max-width:700px){
  .member{grid-template-columns:1fr;gap:16px}
  .member-photo{width:128px;height:128px}
}

.member-social{display:flex;gap:12px;align-items:center;margin-top:14px}
.member-social a{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--line);border-radius:var(--r);color:var(--ink)}
.member-social a:hover{border-color:var(--ink);text-decoration:none}
.member-social svg{width:15px;height:15px;fill:currentColor;display:block}
.member-social .blog{width:auto;padding:0 12px;font-size:12.5px;font-weight:700;letter-spacing:.04em}
.member-photo.is-placeholder{padding:0}
.member-photo.is-placeholder svg{width:100%;height:100%;display:block}
@media print{.member-social{display:none}}

/* ---------- コラム ---------- */
.post-list{display:grid;gap:0}
.post-card{padding:26px 0;border-bottom:1px solid var(--line)}
.post-card:first-child{border-top:1px solid var(--line)}
.post-meta{display:flex;gap:12px;align-items:center;margin:0 0 8px;font-size:13px}
.post-meta .date{color:var(--mute)}
.post-meta .cat{border:1px solid var(--line);border-radius:99px;padding:3px 11px;color:var(--ink);font-size:12px}
.post-card h3{font-size:20px;margin-bottom:8px;line-height:1.5}
.post-card h3 a{color:var(--ink)}
.post-summary{font-size:14.5px;margin:0}
a.chip[aria-current="page"]{background:var(--ink);color:#fff;border-color:var(--ink)}
a.chip:hover{text-decoration:none;border-color:var(--ink)}
.post-body{font-size:16px}
.post-body h2{font-size:22px;margin:44px 0 16px;padding-bottom:10px;border-bottom:2px solid var(--ink)}
.post-body h3{font-size:18px;margin:32px 0 12px}
.post-body ul,.post-body ol{margin:0 0 1.4em;padding-left:1.4em}
.post-body blockquote{margin:1.6em 0;padding:18px 24px;background:var(--surface);border-left:4px solid var(--ink);border-radius:var(--r);font-size:15px}
.post-body blockquote p:last-child{margin:0}
.post-body table{margin:1.6em 0}
.post-tbl{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:1.6em 0}
.post-body .post-tbl table{margin:0}
@media(max-width:760px){.post-tbl--wide table{min-width:560px}}
.post-body code{background:var(--surface);padding:2px 6px;border-radius:4px;font-size:.92em}
.post-body strong{color:var(--ink)}
.post-body img{border-radius:var(--r);margin:1.6em 0}
.post-nav{margin-top:44px;padding-top:22px;border-top:1px solid var(--line);font-size:14.5px}

.post-points{background:var(--surface);border-radius:var(--r);padding:26px 30px;margin:0 0 40px}
.post-points h2{font-size:16px;margin:0 0 12px;border:none;padding:0;letter-spacing:.06em}
.post-points ul{margin:0;padding-left:1.3em;font-size:15px}
.post-points li{margin-bottom:.5em}
.post-points li:last-child{margin-bottom:0}

/* 画面には出さず、読み上げと構造にだけ効かせる見出し */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---------- 企業価値の簡易算定 ---------- */
.calc-result{background:var(--surface);border-radius:var(--r-lg);padding:38px 32px;text-align:center}
.calc-label{font-size:14px;color:var(--mute);margin:0 0 10px}
.calc-range{font-family:var(--en);font-size:clamp(28px,5vw,52px);font-weight:700;color:var(--ink);line-height:1.2;margin:0 0 12px;
  background:linear-gradient(transparent 62%,var(--marker) 62%);display:inline-block;padding:0 .15em}
.calc-range span{font-size:.55em;margin:0 .35em;color:var(--body);background:none}

/* 算定レポートはサーバー側でPDFを生成するため、印刷用のスタイルは不要になりました */

/* ---------- 簡易算定：PDFレポートの案内 ---------- */
.sim-badges{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:20px 0 0;padding:0}
.sim-badges li{border:1px solid var(--line);border-radius:99px;padding:4px 14px;font-size:14px;color:var(--ink);background:#fff}
.sim-badges li.is-strong{background:var(--marker);border-color:var(--marker);font-weight:700}
.sim-promo-wrap{padding-bottom:0}
.sim-promo{display:grid;grid-template-columns:minmax(260px,400px) 1fr;gap:56px;align-items:center}
.sim-promo__img{margin:0}
.sim-promo__img img{width:100%;height:auto;display:block}
.sim-promo__body h2{font-size:clamp(22px,2.6vw,28px);line-height:1.5;margin:6px 0 16px}
.sim-promo__body h3{font-size:16px;margin:26px 0 8px}
.sim-list{list-style:none;counter-reset:sim;padding:0;margin:0 0 18px}
.sim-list li{counter-increment:sim;display:grid;grid-template-columns:34px 1fr;column-gap:8px;padding:11px 0;border-bottom:1px solid var(--line)}
.sim-list li::before{content:counter(sim);grid-row:span 2;width:26px;height:26px;border:1.5px solid var(--ink);border-radius:50%;color:var(--ink);font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-top:1px}
.sim-list strong{color:var(--ink)}
.sim-list span{font-size:14px;color:var(--mute)}
.sim-steps{list-style:none;padding:0;margin:56px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.sim-steps li{background:var(--surface);border-radius:8px;padding:18px 22px;display:flex;flex-direction:column;gap:2px}
.sim-steps__n{font-size:22px;font-weight:700;color:var(--accent);line-height:1.2}
.sim-steps strong{color:var(--ink);font-size:16px}
.sim-steps li > span:last-child{font-size:14px;color:var(--mute)}
@media (max-width:820px){
  .sim-promo{grid-template-columns:1fr;gap:28px}
  .sim-promo__img{max-width:340px;margin:0 auto}
  .sim-steps{grid-template-columns:1fr;margin-top:36px}
}


/* ---------- 採用：掲載日（NEW・掲載開始日・最終更新日） ---------- */
.job-dates{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px 14px;font-size:14px;color:var(--mute)}
.job-date time{font-family:var(--en);color:var(--ink);font-weight:700;margin-left:4px}
.job-new{display:inline-block;background:var(--marker);color:var(--ink);font-weight:700;font-size:12px;letter-spacing:.08em;
  padding:1px 10px;border-radius:99px;font-family:var(--en)}
.job-card-dates{margin:0 0 8px}
.job-head-dates{margin:8px 0 14px}

/* ---------- 採用FAQ ---------- */
.rfaq-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin:0 0 48px}
.rfaq-nav__item{display:flex;align-items:center;gap:12px;padding:14px 18px;border:1px solid var(--line);border-radius:8px;
  color:var(--ink);text-decoration:none;background:#fff;transition:border-color .2s, transform .2s}
.rfaq-nav__item:hover{border-color:var(--ink);transform:translateY(-2px)}
.rfaq-nav__no{font-size:22px;font-weight:700;color:var(--accent);line-height:1}
.rfaq-nav__label{flex:1;font-weight:700;font-size:15px}
.rfaq-nav__count{font-size:13px;color:var(--mute);border:1px solid var(--line);border-radius:99px;padding:0 9px}
.rfaq-cat{margin:0 0 56px;scroll-margin-top:90px}
.rfaq-cat__head{display:flex;align-items:baseline;gap:14px;padding-bottom:14px;border-bottom:2px solid var(--ink);margin-bottom:4px}
.rfaq-cat__no{font-size:34px;font-weight:700;line-height:1;color:var(--ink)}
.rfaq-cat__head h2{font-size:21px;margin:0;background:linear-gradient(transparent 62%, var(--marker) 62%);display:inline}
.rfaq-item{border-bottom:1px solid var(--line)}
/* 開閉の印は、サイト全体の summary::after（朱色の∨）をそのまま使います */
.rfaq-q{display:flex;align-items:flex-start;gap:16px;padding:22px 44px 22px 4px;cursor:pointer;list-style:none}
.rfaq-q::after{top:30px}
.rfaq-q::-webkit-details-marker{display:none}
.rfaq-q:hover .rfaq-q__text{color:var(--accent)}
.rfaq-mark{flex:0 0 auto;width:34px;height:34px;border-radius:50%;border:1.5px solid var(--accent);color:var(--accent);
  display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:17px;line-height:1}
.rfaq-mark--a{border-color:var(--ink);color:var(--ink);background:var(--marker)}
.rfaq-q__text{flex:1;font-weight:700;font-size:17px;line-height:1.7;padding-top:3px;transition:color .2s}
.rfaq-item[open] .rfaq-q__text{color:var(--ink)}
.rfaq-a{display:flex;gap:16px;padding:4px 4px 26px}
.rfaq-a p{margin:0;flex:1;padding-top:3px}
.rfaq-end{margin-top:12px;padding:28px 30px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}
.rfaq-end p{margin:0 0 16px}
/* ---------- よくあるご質問（コーポレート）：採用FAQの部品を共用 ---------- */
/* 回答が複数段落のとき、A の印の右に段落を縦に並べる */
.rfaq-a__body{flex:1;min-width:0;padding-top:3px}
.rfaq-a__body p{margin:0 0 .9em}
.rfaq-a__body p:last-child{margin-bottom:0}
.rfaq-a__body a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
/* PICK UP（よく見られる質問） */
.rfaq-nav__item--pick{border-color:var(--ink)}
.rfaq-cat__head{flex-wrap:wrap}
.rfaq-cat__no--pick{font-size:15px;letter-spacing:.14em;color:var(--accent);align-self:center}
.rfaq-cat__note{flex-basis:100%;margin:6px 0 0;font-size:14px;color:var(--mute)}
/* 末尾の問い合わせ誘導 */
.rfaq-end__title{font-size:17px;margin:0 0 8px;color:var(--ink)}
@media (max-width:640px){
  .rfaq-cat__head .rfaq-cat__no--pick{font-size:14px}   /* 後ろにある .rfaq-cat__no{font-size:28px}（スマホ）より優先させるため、親を付けています */
}
/* 分類カードの見出しを、語のまとまりで折り返す（対応ブラウザのみ。非対応でも従来どおり表示） */
.rfaq-nav__label{word-break:auto-phrase;text-wrap:balance}
.rfaq-nav__no--pick{display:inline-block;font-size:12px;line-height:1.3;letter-spacing:.08em;text-align:center}
/* 分類が多いページ（コーポレートのFAQ）では、スマホで2列に並べて縦の長さを抑える */
@media (max-width:640px){
  .rfaq-nav--many{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:40px}
  .rfaq-nav--many .rfaq-nav__item{padding:11px 12px;gap:8px}
  .rfaq-nav--many .rfaq-nav__no{font-size:17px}
  .rfaq-nav--many .rfaq-nav__no--pick{font-size:12px;letter-spacing:.04em}
  .rfaq-nav--many .rfaq-nav__label{font-size:14px;line-height:1.45;min-width:0}
  .rfaq-nav--many .rfaq-nav__count{display:none}
}
/* 回答内の手順（例：「どのような流れで進みますか」） */
.rfaq-steps{list-style:none;margin:0 0 .9em;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.rfaq-steps li{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r);background:#fff;line-height:1.45}
.rfaq-steps__no{flex:0 0 auto;font-size:14px;font-weight:700;color:var(--accent)}
.rfaq-steps__label{font-size:14px;font-weight:700;color:var(--ink);word-break:auto-phrase}
.rfaq-steps li:last-child{border-color:var(--ink)}
@media (max-width:900px){.rfaq-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:420px){.rfaq-steps{grid-template-columns:1fr}}
/* ヘッダー：スマホ幅で「メニュー」ボタンの文字が折り返さないようにする（サイト共通） */
.navtoggle{white-space:nowrap;flex-shrink:0}
.logo{min-width:0}
.logo img{display:block;max-width:100%;height:auto;max-height:22px}
@media (max-width:640px){
  .rfaq-q{gap:12px;padding:18px 36px 18px 0}.rfaq-q::after{top:26px;right:4px}.rfaq-a{gap:12px}.rfaq-q__text{font-size:16px}
  .rfaq-mark{width:30px;height:30px;font-size:15px}.rfaq-cat__no{font-size:28px}
}

/* ============================================================
   ナレッジ（/knowledge/ と、ナレッジの中の案内）
   knowledge_pages.py が出力します
   ============================================================ */
/* ナレッジの中の案内（コラム・用語集・よくあるご質問・資料ダウンロードの切り替え） */
.knav{display:flex;gap:6px 26px;flex-wrap:wrap;align-items:center;margin-top:12px;border-bottom:1px solid var(--line);font-size:14.5px}
.knav a{color:var(--body);padding:10px 0 11px;border-bottom:3px solid transparent;margin-bottom:-1px;white-space:nowrap}
.knav a:hover{color:var(--ink);text-decoration:none;border-bottom-color:var(--line)}
.knav a[aria-current="page"]{color:var(--ink);font-weight:700;border-bottom-color:var(--marker)}
.knav .knav__home{color:var(--ink);font-weight:700;padding-right:22px;border-right:1px solid var(--line);margin-right:-4px}

/* 入口のページの見出し */
.kn-hero__grid{display:grid;grid-template-columns:1fr 260px;gap:40px;align-items:center}
.kn-hero__art img{width:100%}
.kn-hero .lead{line-height:2}

/* 4つの入口 */
.kn-entries{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.kn-entry{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r);padding:20px 22px 24px;background:#fff;color:var(--body);transition:border-color .15s,transform .15s}
.kn-entry:hover{border-color:var(--ink);transform:translateY(-3px);text-decoration:none}
.kn-entry__art{display:block;background:var(--surface-2);border-radius:var(--r);margin-bottom:18px;padding:10px 0}
.kn-entry__art img{width:150px;margin:0 auto}
.kn-entry__verb{align-self:flex-start;font-size:14px;font-weight:700;color:var(--ink);background:linear-gradient(transparent 58%,var(--marker) 58%);padding:0 .2em;margin-bottom:8px}
.kn-entry__title{font-size:19px;font-weight:700;color:var(--ink);line-height:1.45}
.kn-entry__count{font-size:14px;color:var(--ink);margin:4px 0 10px}
.kn-entry__count b{font-size:26px;color:var(--accent);margin-right:3px;letter-spacing:.02em}
.kn-entry__text{font-size:14.5px;line-height:1.8}
.kn-entry__title::after{content:"";display:inline-block;width:.5em;height:.5em;border-top:2px solid var(--accent);border-right:2px solid var(--accent);transform:rotate(45deg);margin-left:.5em;vertical-align:.12em}

/* それぞれの内容の案内 */
.kn-head{display:grid;grid-template-columns:1fr 150px;gap:32px;align-items:center;margin-bottom:8px;padding-bottom:26px;border-bottom:2px solid var(--ink)}
.kn-head h2{font-size:clamp(23px,2.6vw,30px);margin-bottom:12px}
.kn-head p{margin:0;font-size:15.5px;max-width:720px}
.kn-head .kn-head__no,.kn-sim .kn-head__no{font-size:14.5px;font-weight:700;color:var(--ink);margin:0 0 6px;display:flex;align-items:center;gap:12px}
.kn-head__no .en{font-size:30px;color:var(--accent);line-height:1}
.kn-head__art img{width:100%}
.kn-sub{font-size:17px;margin:36px 0 16px;padding-left:12px;border-left:4px solid var(--marker)}
.kn-more{margin:32px 0 0}
#columns,#glossary,#faq,#download{scroll-margin-top:84px}

.kn-posts{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.kn-post{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:0 22px 24px;overflow:hidden}
.kn-post__art{display:block;margin:0 -22px 18px;background:var(--surface-2);border-bottom:1px solid var(--line);padding:8px 0}
.kn-post__art img{width:136px;margin:0 auto}
.kn-post h3{font-size:17px;line-height:1.55;margin-bottom:8px}
.kn-post h3 a{color:var(--ink)}
.kn-post p:last-child{font-size:14.5px;margin:0}
.kn-post .post-meta .date{font-size:14px}
.kn-post .post-meta{flex-wrap:wrap;gap:4px 12px}
.kn-post .post-meta .cat{font-size:14px;white-space:nowrap}

.kn-search{display:flex;gap:10px;flex-wrap:wrap;max-width:720px}
.kn-search input{flex:1;min-width:230px;font-family:var(--jp);font-size:15px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r);background:#fff}
#glossary .chip,#columns .chip{font-size:14px}
#glossary a.chip:hover,#columns a.chip:hover{border-color:var(--ink);text-decoration:none}

.kn-terms{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:0 40px;border-top:1px solid var(--line)}
.kn-terms li{margin:0;padding:15px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:2px}
.kn-terms a{font-weight:700;color:var(--ink);font-size:16px}
.kn-terms a:hover{color:var(--accent)}
.kn-terms span{font-size:14.5px}
.kn-terms--docs{margin-top:32px}

.kn-faqnav{margin-bottom:0}
.kn-qs{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}
.kn-qs li{margin:0;border-bottom:1px solid var(--line)}
.kn-qs a{display:block;padding:14px 0 14px 34px;color:var(--ink);font-weight:700;position:relative}
.kn-qs a::before{content:"Q";font-family:var(--en);color:var(--accent);position:absolute;left:4px;top:13px;font-size:17px}

.kn-sim{display:grid;grid-template-columns:230px 1fr;gap:40px;align-items:center;margin-top:56px;padding:32px 36px;background:var(--surface);border-radius:var(--r)}
.kn-sim__fig img{width:100%;border:1px solid var(--line);border-radius:4px;background:#fff}
.kn-sim h2{font-size:clamp(21px,2.3vw,26px);margin-bottom:12px}
.kn-sim p{font-size:15px}
.kn-sim .kn-sim__note{font-size:14px;color:var(--body)}

@media(max-width:1000px){
  .kn-entries{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:900px){
  .knav{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;gap:0 22px;scrollbar-width:none}
  .knav::-webkit-scrollbar{display:none}
  .kn-hero__grid{grid-template-columns:1fr 130px;gap:20px}
  .kn-posts{grid-template-columns:1fr}
  .kn-post{display:grid;grid-template-columns:104px 1fr;column-gap:16px;padding:18px}
  .kn-post__art{grid-row:1/3;margin:0;border:none;border-radius:var(--r);align-self:start;padding:6px 0}
  .kn-post p:last-child{grid-column:1/3;margin-top:12px}
  .kn-post__art img{width:92px}
  .kn-terms{grid-template-columns:1fr}
  .kn-sim{grid-template-columns:1fr;padding:26px 22px;gap:24px}
  .kn-sim__fig{max-width:200px}
}
@media(max-width:640px){
  .kn-entries{grid-template-columns:1fr;gap:14px}
  .kn-entry{display:grid;grid-template-columns:96px 1fr;column-gap:16px;padding:16px 18px 18px;align-items:start}
  .kn-entry__art{grid-row:1/5;margin:0;padding:6px 0}
  .kn-entry__art img{width:84px}
  .kn-entry__verb{justify-self:start}
  .kn-entry__text{grid-column:1/3;margin-top:12px}
  .kn-head{grid-template-columns:1fr 84px;gap:16px}
  .kn-hero__grid{grid-template-columns:1fr 96px}
}
@media print{.knav{display:none}}

/* ============================================================
   次の一歩（用語・コラムから、簡易算定・資料・ご相談へ進む案内）。leads.py が出力します
   ============================================================ */
.next-steps{margin-top:48px;padding-top:30px;border-top:2px solid var(--ink)}
.next-steps h2{font-size:19px;margin:0 0 18px;padding:0;border:none}
.next-steps__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}
.next-step{border:1px solid var(--line);border-radius:var(--r);padding:20px 22px;background:#fff;display:flex;flex-direction:column}
.next-step h3{font-size:16.5px;margin:0 0 8px;line-height:1.5}
.next-step p{font-size:14.5px;line-height:1.8;margin:0 0 12px}
.next-step .next-step__link{margin:auto 0 0;font-weight:700;font-size:15px}
.next-step__link a::after{content:"";display:inline-block;width:.45em;height:.45em;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:rotate(45deg);margin-left:.45em;vertical-align:.1em}
.rel-posts{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}
.rel-posts li{margin:0;padding:13px 0;border-bottom:1px solid var(--line)}
.rel-posts a{font-weight:700;color:var(--ink)}
.rel-posts a:hover{color:var(--accent)}
.rel-posts span{display:block;font-size:14.5px;margin-top:2px}

/* 譲受のご希望の登録（/buyer/）と、選択肢の並び */
.checks{display:flex;flex-wrap:wrap;gap:8px 10px}
.field .checks label{display:inline-flex;align-items:center;gap:7px;font-weight:400;color:var(--body);font-size:15px;margin:0;border:1px solid var(--line);border-radius:var(--r);padding:9px 14px;cursor:pointer;background:#fff}
.field .checks input{width:auto;margin:0}
.field .checks label:has(input:checked){border-color:var(--ink);color:var(--ink);font-weight:700;background:var(--surface-2)}
.flow3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;counter-reset:flow}
.flow3>div{background:var(--surface);border-radius:var(--r);padding:24px 24px 22px;counter-increment:flow}
.flow3 h3{font-size:17px;margin-bottom:8px}
.flow3 h3::before{content:counter(flow,decimal-leading-zero);font-family:var(--en);color:var(--accent);font-size:22px;margin-right:12px;letter-spacing:.04em}
.flow3 p{font-size:14.5px;margin:0}
@media(max-width:900px){.flow3{grid-template-columns:1fr}}
@media print{.next-steps{break-inside:avoid}}

/* ============================================================
   業種から探す（/industry/）・お悩みから探す（/theme/）。guides_pages.py が出力します
   ============================================================ */
.guide-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.guide-card{display:flex;flex-direction:column;gap:8px;border:1px solid var(--line);border-radius:var(--r);padding:22px 24px;background:#fff;color:var(--body);transition:border-color .15s,transform .15s}
.guide-card:hover{border-color:var(--ink);transform:translateY(-3px);text-decoration:none}
.guide-card__title{font-size:17.5px;font-weight:700;color:var(--ink);line-height:1.5}
.guide-card__title::after{content:"";display:inline-block;width:.5em;height:.5em;border-top:2px solid var(--accent);border-right:2px solid var(--accent);transform:rotate(45deg);margin-left:.5em;vertical-align:.12em}
.guide-card__text{font-size:14.5px;line-height:1.75}

.guide-split{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:start}
.guide-split h2{font-size:clamp(21px,2.3vw,26px);margin-bottom:20px}
.guide-points{list-style:none;padding:0;margin:0;counter-reset:gp}
.guide-points li{counter-increment:gp;position:relative;padding:0 0 18px 46px;margin:0 0 18px;border-bottom:1px solid var(--line)}
.guide-points li:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}
.guide-points li::before{content:counter(gp,decimal-leading-zero);position:absolute;left:0;top:1px;font-family:var(--en);font-size:21px;color:var(--accent);line-height:1.3}
.guide-points strong{display:block;color:var(--ink);font-size:16.5px;margin-bottom:4px}
.guide-points span{font-size:15px}
.guide-check{list-style:none;padding:22px 24px;margin:0;background:#fff;border-radius:var(--r);border:1px solid var(--line)}
.guide-check li{position:relative;padding-left:30px;margin-bottom:14px;font-size:15px}
.guide-check li:last-child{margin-bottom:0}
.guide-check li::before{content:"";position:absolute;left:2px;top:.42em;width:14px;height:8px;border-left:3px solid var(--ink);border-bottom:3px solid var(--ink);transform:rotate(-45deg)}
.guide-steps{margin:0;padding:0;list-style:none;counter-reset:gs}
.guide-steps li{counter-increment:gs;position:relative;padding:16px 20px 16px 62px;margin:0 0 10px;background:#fff;border-radius:var(--r);font-size:15.5px}
.guide-steps li::before{content:counter(gs);position:absolute;left:20px;top:14px;width:28px;height:28px;border-radius:50%;border:2px solid var(--ink);color:var(--ink);font-family:var(--en);font-weight:700;font-size:15px;display:flex;align-items:center;justify-content:center}
a.chip[aria-current="page"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.guide-box .chip,.kn-sub + .chips .chip{font-size:14px}
.guide-box a.chip:hover,.kn-sub + .chips a.chip:hover{border-color:var(--ink);text-decoration:none}

/* ナレッジの入口の、お悩み・業種からの案内 */
.guide-two{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.guide-box{border:1px solid var(--line);border-radius:var(--r);padding:22px 26px 6px;background:#fff}
.guide-box__head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px}
.guide-box__head h3{font-size:19px}
.guide-box__head h3 a{color:var(--ink)}
.guide-box__head h3 a::after{content:"";display:inline-block;width:.5em;height:.5em;border-top:2px solid var(--accent);border-right:2px solid var(--accent);transform:rotate(45deg);margin-left:.5em;vertical-align:.12em}
.guide-box__head img{width:84px;flex:none}

@media(max-width:900px){
  .guide-cards{grid-template-columns:1fr 1fr}
  .guide-split{grid-template-columns:1fr;gap:36px}
  .guide-two{grid-template-columns:1fr}
}
@media(max-width:640px){
  .guide-cards{grid-template-columns:1fr;gap:12px}
  .guide-box{padding:18px 18px 2px}
}

/* ---------- お問い合わせ：ご相談内容の候補と、ご希望の日時（2026-10-11） ---------- */
.field .field-error{color:var(--accent);font-size:14px;font-weight:700;margin:8px 0 0}
.field .selects{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px}
.field .selects label{font-weight:400;font-size:14px;color:var(--body);margin:0}
.field .selects select{margin-top:4px}
.hope{display:grid;gap:10px}
.hope-row{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
.hope-row__no{flex:0 0 5em;font-size:15px;color:var(--ink);font-weight:700}
.field .hope-row input[type=date],.field .hope-row select{width:auto;min-width:9.5em}
.hope-btn{font:inherit;font-size:15px;min-width:11.5em;text-align:left;padding:10px 14px;border:1px solid var(--line);border-radius:var(--r);background:#fff;color:var(--ink);cursor:pointer}
.hope-btn.is-empty{color:var(--mute)}
.hope-btn:hover,.hope-btn[aria-expanded=true]{border-color:var(--ink)}
.hope-clear{font:inherit;font-size:14px;background:none;border:0;color:var(--mute);text-decoration:underline;cursor:pointer;padding:6px 4px}
.cal{position:absolute;z-index:20;top:calc(100% + 6px);left:0;width:292px;max-width:calc(100vw - 48px);background:#fff;border:1px solid var(--ink);border-radius:var(--r);padding:12px;box-shadow:0 8px 24px rgba(24,33,69,.14)}
.cal__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.cal__title{font-weight:700;color:var(--ink);font-size:15px}
.cal__nav{font:inherit;font-size:20px;line-height:1;width:36px;height:36px;border:1px solid var(--line);border-radius:var(--r);background:#fff;color:var(--ink);cursor:pointer}
.cal__nav:disabled{opacity:.3;cursor:default}
.cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.cal__w{text-align:center;font-size:14px;color:var(--mute);padding:4px 0}
.cal__d{font:inherit;font-size:15px;height:36px;border:1px solid transparent;border-radius:var(--r);background:#fff;color:var(--ink);cursor:pointer}
.cal__d:hover:not(:disabled){border-color:var(--ink);background:var(--surface-2)}
.cal__d:disabled{color:#c3c7d3;cursor:default}
.cal__d[aria-pressed=true]{background:var(--marker,#E4EC2D);font-weight:700;border-color:var(--ink)}
.cal__note{font-size:14px;color:var(--mute);margin:8px 0 0}
.field .radios{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:12px}
.field .radios label{display:inline-flex;align-items:center;gap:7px;font-weight:400;color:var(--body);font-size:15px;margin:0;cursor:pointer}
.field .radios input{width:auto;margin:0}
@media (max-width:560px){
  .field .selects{grid-template-columns:1fr}
  .hope-row__no{flex-basis:100%}
}

/* ---------- サービスの導線と、画像のリンク（2026-10-11） ---------- */
a.svc-thumb{display:block}
a.svc-thumb img,.kn-sim__fig a img,.kn-head__art a img,.guide-box__head a img,a.kn-hero__art img{transition:transform .2s,opacity .2s}
a.svc-thumb:hover img{transform:scale(1.04)}
.kn-sim__fig a:hover img,.kn-head__art a:hover img,.guide-box__head>a:hover img,a.kn-hero__art:hover img{opacity:.8}
.kn-sim__fig a,.kn-head__art a,a.kn-hero__art{display:block}
.guide-box__head>a{flex:none;line-height:0}
.svc h3 a{color:var(--ink)}
.svc h3 a:hover{text-decoration:none;color:var(--accent)}
.svc-more{display:inline-flex;align-items:center;font-weight:700}
.svc-more::after{content:"";display:inline-block;width:.5em;height:.5em;border-top:2px solid var(--accent);border-right:2px solid var(--accent);transform:rotate(45deg);margin-left:.5em}
.svc-links{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 0;padding:0;list-style:none}
.svc-links::before{content:"関連するページ";flex-basis:100%;font-size:14px;color:var(--mute)}
.svc-links a{display:inline-block;font-size:14px;border:1px solid var(--line);border-radius:var(--r);padding:7px 13px;color:var(--ink);background:#fff}
.svc-links a:hover{border-color:var(--ink);text-decoration:none}
.guide-card--art{flex-direction:row;align-items:center;gap:16px}
.guide-card--art img{width:72px;height:auto;flex:none}
.guide-card--art>span{display:flex;flex-direction:column;gap:6px}
.partner-study{margin:16px 0 0;padding:0;list-style:none;border-top:1px solid var(--line)}
.partner-study li{border-bottom:1px solid var(--line);padding:13px 0;font-size:15px}
.partner-faq{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.partner-faq__item{border:1px solid var(--line);border-radius:var(--r);padding:20px 22px;background:#fff}
.partner-faq__item h3{font-size:16.5px;margin-bottom:8px}
.partner-faq__item h3::before{content:"Q";font-family:var(--en);color:var(--accent);margin-right:10px}
.partner-faq__item p{font-size:15px;margin:0}
@media(max-width:900px){.partner-faq{grid-template-columns:1fr}}

/* ---------- パートナー登録・マイページ、フッター（2026-10-11） ---------- */
.field .selects{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px}
.field .selects label{font-weight:400;font-size:14px;color:var(--body);margin:0}
.field .selects select,.field .selects input{margin-top:4px}
.field .radios{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:12px}
.field .radios label{display:inline-flex;align-items:center;gap:7px;font-weight:400;color:var(--body);font-size:15px;margin:0;cursor:pointer}
.field .radios input{width:auto;margin:0}
.flow3--4{grid-template-columns:repeat(4,1fr)}
.pro-top{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:24px}
.pro-h{font-size:21px;margin:56px 0 14px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.pro-offer{border:1px solid var(--line);border-radius:var(--r);padding:22px 24px;margin-bottom:16px;background:#fff}
.pro-offer h3{font-size:18px;margin-bottom:10px}
.pro-offer__meta{font-size:14px;color:var(--mute);margin-bottom:6px}
.pro-offer__ans{background:var(--surface);border-radius:var(--r);padding:12px 16px;font-size:15px}
.pro-files{list-style:none;margin:0 0 20px;padding:0;border-top:1px solid var(--line)}
.pro-files li{display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid var(--line);padding:12px 0;font-size:15px}
.pro-files .hint{font-size:14px;color:var(--mute)}
.pro-link{font:inherit;font-size:14px;background:none;border:0;color:var(--mute);text-decoration:underline;cursor:pointer;padding:6px 4px;white-space:nowrap}
.pro-withdraw{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;font-size:15px}
.pro-withdraw input{font:inherit;width:8em;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r)}
.foot-brand{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;flex-wrap:wrap;padding-bottom:30px;margin-bottom:30px;border-bottom:1px solid var(--line)}
.foot-cta{display:flex;gap:12px;flex-wrap:wrap}
.foot-brand .note{font-size:14px}
.foot-grid--5{grid-template-columns:repeat(5,1fr);gap:28px 24px}
.foot-grid--5 .foot-head{font-size:14px}
.foot-grid--5 .foot-head a{color:var(--ink)}
.foot-grid--5 li{margin-bottom:9px;line-height:1.6}
@media(max-width:1000px){.foot-grid--5{grid-template-columns:repeat(3,1fr)}.flow3--4{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.foot-grid.foot-grid--5{grid-template-columns:repeat(3,1fr)}}
@media(max-width:640px){
  .foot-grid.foot-grid--5{grid-template-columns:1fr 1fr}
  .field .selects,.flow3--4{grid-template-columns:1fr}
  .pro-files li{flex-direction:column;align-items:flex-start;gap:4px}
}

/* ---------- パートナーの皆様へ（入口のページ。2026-10-11） ---------- */
.pt-ways{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.pt-way{display:grid;grid-template-columns:120px 1fr;gap:22px;align-items:start;border:1px solid var(--line);border-radius:var(--r);padding:28px 28px 26px;background:#fff}
.pt-way__art{display:block}
.pt-way__art img{width:100%;height:auto;transition:opacity .2s}
.pt-way__art:hover img{opacity:.8}
.pt-way h3{font-size:20px;line-height:1.5;margin-bottom:6px}
.pt-way h3 a{color:var(--ink)}
.pt-way h3 a:hover{text-decoration:none;color:var(--accent)}
.pt-way__who{font-size:14px;color:var(--mute);margin-bottom:12px}
.pt-way ul{margin:0 0 18px;padding-left:1.2em;font-size:15px}
.pt-way li{margin-bottom:4px}
.pt-sub{font-size:18px;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.pt-steps{list-style:none;margin:0 0 18px;padding:0;counter-reset:pt}
.pt-steps li{position:relative;padding:0 0 16px 44px;font-size:15px;counter-increment:pt}
.pt-steps li::before{content:counter(pt,decimal-leading-zero);position:absolute;left:0;top:0;font-family:var(--en);color:var(--accent);font-size:19px;letter-spacing:.04em}
.pt-steps strong{display:block;color:var(--ink)}
@media(max-width:900px){.pt-ways{grid-template-columns:1fr}}
@media(max-width:560px){.pt-way{grid-template-columns:1fr;padding:22px}.pt-way__art{max-width:110px}}

/* ---------- バリューアップ支援・AI活用支援・私たちの強み（2026-10-11） ---------- */
.sol-sit h3{font-size:17.5px;line-height:1.55;margin-bottom:14px}
.sol-sit__label{font-size:14px;color:var(--accent);font-weight:700;margin:0 0 4px;letter-spacing:.04em}
.sol-sit p{font-size:15px}
.sol-who{font-size:14px;color:var(--mute);margin:0;padding-top:12px;border-top:1px solid var(--line)}
.sol-chips{margin-bottom:0}
.sol-chips .chip{font-size:14px}
.sol-case__meta{font-size:14px;color:var(--mute);margin-bottom:6px}
.sol-case dl{margin:0;display:grid;grid-template-columns:6em 1fr;gap:8px 14px;font-size:15px}
.sol-case dt{color:var(--ink);font-weight:700}
.sol-case dd{margin:0}
.access{display:grid;grid-template-columns:1fr 1.2fr;gap:28px;align-items:start}
.access__info{margin:0;display:grid;grid-template-columns:7em 1fr;gap:12px 16px;font-size:15.5px}
.access__info dt{color:var(--ink);font-weight:700}
.access__info dd{margin:0}
.access__info ul,.access__info ol{margin:0;padding-left:1.2em}
.access__map{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;line-height:0}
.access__map iframe{width:100%;height:340px;border:0}
@media(max-width:900px){.access{grid-template-columns:1fr}.access__map iframe{height:280px}}
@media print{.access__map{display:none}}

/* ---------- AI活用支援・私たちの強み：図とアイコン、文字の大きさの統一（2026-10-11） ----------
   文字の大きさは、サイトの共通の決まりにそろえています。
   ページの見出し＝.pagehead h1 のまま／節の見出し＝.sec-head h2 のまま／図の題＝22〜28px／まとまりの見出し＝20〜22px／
   項目の見出し＝17.5px／本文＝15px／補足＝14px */
.sv-ico{display:block;width:76px;height:76px;flex:none;margin:0 0 12px -7px}
.sv-check{display:block;flex:none;width:30px;height:30px}
.sv-link,.st-link{display:inline-flex;align-items:center;font-size:15px;font-weight:700;color:var(--accent)}
.sv-link::after,.st-link::after{content:"";display:inline-block;width:.45em;height:.45em;border-top:2px solid var(--accent);border-right:2px solid var(--accent);transform:rotate(45deg);margin-left:.5em}

/* AI活用支援 */
.ai-eq,.st-span{margin-top:40px;border-top:2px solid var(--ink);border-bottom:1px solid var(--line);padding:28px 0 26px}
.ai-eq__row{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 20px;color:var(--ink);font-weight:700;font-size:clamp(22px,2.6vw,28px);line-height:1.45}
.ai-eq__pair{display:inline-flex;align-items:baseline;gap:inherit;white-space:nowrap}
.ai-eq__op{font-family:var(--en);font-weight:400;color:var(--mute)}
.ai-eq__term b{background:linear-gradient(transparent 62%,var(--marker) 62%);padding:0 .12em}
.ai-eq__notes{display:grid;grid-template-columns:1fr 1fr;gap:18px 44px;margin-top:24px}
.ai-eq__notes>div{display:flex;gap:16px;align-items:flex-start}
.ai-eq__notes .sv-ico{margin:0}
.ai-eq__notes p{margin:0;font-size:15px;line-height:1.85}
.ai-eq__notes .ai-eq__label{color:var(--ink);font-weight:700;font-size:17.5px;line-height:1.6;margin-bottom:4px}
.ai-eq__foot{margin:20px 0 0;font-size:14px;color:var(--mute)}
.ai-ledger{border-top:2px solid var(--ink)}
.ai-ledger>div{display:grid;grid-template-columns:1fr 1.25fr;gap:12px 72px;padding:20px 0;border-bottom:1px solid var(--line)}
.ai-ledger p{margin:0;font-size:15px;line-height:1.85}
.ai-ledger>div>p:first-child{color:var(--ink);font-size:16px}
.ai-ledger>div>p+p{position:relative}
.ai-ledger>div>p+p::before{content:"";position:absolute;left:-46px;top:.62em;width:22px;border-top:2px solid var(--ink)}
.ai-ledger>div>p+p::after{content:"";position:absolute;left:-33px;top:.62em;width:8px;height:8px;border-top:2px solid var(--ink);border-right:2px solid var(--ink);transform:translateY(-3px) rotate(45deg)}
.ai-ledger strong{color:var(--ink);background:linear-gradient(transparent 68%,var(--marker) 68%)}
.ai-ledger .ai-ledger__head{padding:12px 0;font-size:14px;color:var(--mute)}
.ai-flow{list-style:none;margin:0 0 44px;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:44px}
.ai-flow li{position:relative}
.ai-flow li+li::before{content:"";position:absolute;left:-33px;top:50%;width:14px;height:14px;border-top:2px solid var(--ink);border-right:2px solid var(--ink);transform:translateY(-50%) rotate(45deg)}
.ai-flow a{display:grid;grid-template-columns:104px 1fr;column-gap:18px;align-items:center;height:100%;padding:18px 20px;background:var(--white);border:1px solid var(--line);border-radius:var(--r);color:inherit;text-decoration:none}
.ai-flow img{grid-row:1/4;width:104px;height:auto}
.ai-flow__no{font-size:14px;color:var(--accent);letter-spacing:.08em;align-self:end}
.ai-flow strong{color:var(--ink);font-size:clamp(20px,2vw,22px);line-height:1.4}
.ai-flow a>span:last-child{font-size:14.5px;line-height:1.7;align-self:start}
.ai-flow a:hover{border-color:var(--ink)}
.ai-flow a:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.ai-stage,.st-theme{display:grid;grid-template-columns:240px 1fr;gap:20px 48px;padding:32px 0;border-top:2px solid var(--ink);scroll-margin-top:90px}
.ai-stage+.ai-stage,.st-theme+.st-theme{margin-top:8px}
.ai-stage__no{font-size:14px;color:var(--accent);letter-spacing:.08em;margin:0 0 4px}
.ai-stage__head h3,.st-theme__head h3{font-size:clamp(20px,2vw,22px);line-height:1.5;margin-bottom:10px}
.ai-stage__head p,.st-theme__head p{font-size:15px;line-height:1.85;margin:0}
.ai-stage__list{margin:0}
.ai-stage__list>div{display:grid;grid-template-columns:15em 1fr;gap:6px 28px;padding:16px 0;border-bottom:1px solid var(--line)}
.ai-stage__list>div:first-child{padding-top:4px}
.ai-stage__list dt{color:var(--ink);font-weight:700;font-size:17.5px;line-height:1.6}
.ai-stage__list dd{margin:0;font-size:15px;line-height:1.85}
.ai-stage__list dd span{display:block;margin-top:6px;font-size:14px;color:var(--mute)}
.ai-moments,.ai-plans,.st-promise{display:grid;grid-template-columns:repeat(3,1fr);border-top:2px solid var(--ink)}
.ai-plans{grid-template-columns:repeat(4,1fr)}
.ai-moments>div,.ai-plans>div,.st-promise>div{display:flex;flex-direction:column;padding:26px 26px 24px 0;border-bottom:1px solid var(--line)}
.ai-moments>div+div,.ai-plans>div+div,.st-promise>div+div{padding-left:26px;border-left:1px solid var(--line)}
.ai-moments__when{font-size:14px;font-weight:700;color:var(--accent);margin:0 0 6px}
.ai-moments h3,.ai-plans h3,.st-promise h3{font-size:17.5px;line-height:1.55;margin-bottom:10px}
.ai-moments p,.ai-plans p,.st-promise p{font-size:15px;line-height:1.85}
.ai-moments>div>p:last-child{margin-top:auto}
.ai-plans p{margin:0 0 14px;flex:1}
.ai-plans .ai-plans__fit{flex:none;margin:0;padding-top:14px;border-top:1px dashed var(--line);font-size:14.5px;line-height:1.8}
.ai-plans__fit span{display:block;font-size:14px;font-weight:700;color:var(--ink);margin-bottom:2px}
.ai-promise{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;column-gap:48px;border-top:2px solid var(--ink)}
.ai-promise li{display:flex;gap:14px;align-items:flex-start;padding:18px 0;border-bottom:1px solid var(--line)}
.ai-promise p{margin:0;font-size:15px;line-height:1.85}
.ai-promise strong{display:block;color:var(--ink);font-size:17.5px;line-height:1.6;margin-bottom:2px}

/* 私たちの強み */
.st-span__title{margin:0 0 24px;color:var(--ink);font-weight:700;font-size:clamp(22px,2.6vw,28px);line-height:1.45}
.st-span__grid{display:grid;grid-template-columns:11.5em 1fr;gap:14px 28px;align-items:center}
.st-span__cols{grid-column:2;display:grid;grid-template-columns:repeat(3,1fr);font-size:14.5px;color:var(--mute);text-align:center}
.st-span__who{margin:0;font-size:15px;line-height:1.6;color:var(--body)}
.st-span__who--us{color:var(--ink);font-weight:700;font-size:17.5px;align-self:start;padding-top:18px}
.st-span__track{display:grid;grid-template-columns:repeat(3,1fr);align-items:center;min-height:58px}
.st-span__track b{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;text-align:center;padding:10px 8px;line-height:1.5}
.st-span__track--other i{height:0;border-top:2px dashed var(--line)}
.st-span__track--other b{align-self:stretch;border:1px solid var(--mute);border-radius:var(--r);font-weight:400;font-size:15px;color:var(--body);background:var(--white)}
.st-span__track--us{border:2px solid var(--ink);border-radius:var(--r);background:linear-gradient(transparent 68%,var(--marker) 68%);min-height:64px}
.st-span__track--us b{color:var(--ink);font-size:clamp(17.5px,1.9vw,20px);align-self:stretch}
.st-span__track--us b+b{border-left:1px solid var(--ink)}
.st-span__sub{display:grid;grid-template-columns:repeat(3,1fr);margin-top:10px;font-size:14.5px;line-height:1.6;color:var(--body);text-align:center}
.st-span__sub span{padding:0 8px}
.st-span__foot{margin:24px 0 0;max-width:46em;font-size:15px;line-height:1.85}
.st-span__note{margin:10px 0 0;font-size:14px;color:var(--mute)}
.st-one{display:grid;grid-template-columns:minmax(0,440px) 1fr;gap:28px 56px;align-items:center}
.st-one__fig{margin:0}
.st-venn{display:block;width:100%;height:auto;font-family:var(--jp)}
.st-one__fig p{margin:6px 0 0;font-size:14.5px;line-height:1.7;text-align:center;color:var(--body)}
.st-one__list{border-top:2px solid var(--ink)}
.st-one__list>a{display:grid;grid-template-columns:96px 1fr;gap:22px;align-items:center;padding:20px 28px 20px 0;border-bottom:1px solid var(--line);color:inherit;text-decoration:none;position:relative}
.st-one__list>a::after{content:"";position:absolute;right:6px;top:50%;width:9px;height:9px;border-top:2px solid var(--accent);border-right:2px solid var(--accent);transform:translateY(-50%) rotate(45deg)}
.st-one__list img{width:96px;height:auto}
.st-one__list strong{display:block;color:var(--ink);font-size:17.5px;line-height:1.55;margin-bottom:4px}
.st-one__list span span{display:block;font-size:15px;line-height:1.8}
.st-one__list>a:hover strong{color:var(--accent)}
.st-one__list>a:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.st-theme__list{display:grid;grid-template-columns:1fr 1fr;gap:28px 44px}
.st-theme__list>div{display:flex;flex-direction:column}
.st-theme__list h4{color:var(--ink);font-size:17.5px;line-height:1.6;margin:0 0 8px}
.st-theme__list p{font-size:15px;line-height:1.85;margin:0 0 14px}
.st-theme__list .st-link,.st-promise .st-link{margin-top:auto;align-self:flex-start}
.st-people{border-top:2px solid var(--ink)}
.st-people>div{display:grid;grid-template-columns:240px 1fr;gap:10px 48px;padding:24px 0;border-bottom:1px solid var(--line)}
.st-people__who{margin:0;color:var(--ink);font-weight:700;font-size:17.5px;line-height:1.6}
.st-people__who span{display:block;font-weight:400;font-size:14.5px;color:var(--body)}
.st-people h3{font-size:17.5px;line-height:1.6;margin-bottom:8px}
.st-path{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px 0}
.st-path li{position:relative;display:flex;align-items:center;font-size:15px;line-height:1.5;color:var(--ink);background:var(--white);border:1px solid var(--ink);border-radius:var(--r);padding:8px 14px}
.st-path li+li{margin-left:34px}
.st-path li+li::before{content:"";position:absolute;right:100%;top:50%;width:34px;border-top:2px solid var(--ink);margin-right:1px}
.st-path li:last-child{background:linear-gradient(transparent 62%,var(--marker) 62%) var(--white);font-weight:700}
.st-figures{display:grid;grid-template-columns:repeat(3,1fr);border-top:2px solid var(--ink);border-bottom:1px solid var(--line)}
.st-figures>div{padding:24px 28px 22px 0}
.st-figures>div+div{padding-left:28px;border-left:1px solid var(--line)}
.st-figures p{margin:0}
.st-figures__n{font-family:var(--en);font-weight:700;color:var(--ink);font-size:clamp(36px,4.6vw,56px);line-height:1.1;white-space:nowrap}
.st-figures__n small{font-family:var(--jp);font-size:.36em;margin-left:.2em}
.st-figures__n--jp{font-family:var(--jp);font-size:clamp(30px,3.7vw,45px);line-height:1.37}
.st-figures__n--jp small{font-size:.45em}
.st-figures__l{font-size:15px;color:var(--body);margin-top:6px}
.st-figures__note{margin:14px 0 0;font-size:14px;line-height:1.8;color:var(--mute)}
.st-scope{margin:36px 0 0;border-top:1px solid var(--line)}
.st-scope>div{display:grid;grid-template-columns:240px 1fr;gap:8px 48px;padding:18px 0;border-bottom:1px solid var(--line)}
.st-scope dt{color:var(--ink);font-weight:700;font-size:15px;line-height:1.85}
.st-scope dd{margin:0;font-size:15px;line-height:1.85}
.st-tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.st-tags li{font-size:14.5px;line-height:1.5;color:var(--ink);border:1px solid var(--line);border-radius:var(--r);padding:6px 12px;background:var(--white)}
@media(max-width:1000px){
  .ai-plans{grid-template-columns:1fr 1fr}
  .ai-plans>div:nth-child(3){padding-left:0;border-left:0}
  .ai-flow{gap:32px}
  .ai-flow li+li::before{left:-23px}
  .ai-flow a{grid-template-columns:1fr;row-gap:2px;padding:16px}
  .ai-flow img{grid-row:auto;width:88px}
}
@media(max-width:900px){
  .ai-stage,.st-theme,.st-people>div,.st-scope>div{grid-template-columns:1fr;gap:12px}
  .ai-moments,.st-promise{grid-template-columns:1fr}
  .ai-moments>div,.ai-moments>div+div,.st-promise>div,.st-promise>div+div{padding:22px 0;border-left:0}
  .st-one{grid-template-columns:1fr}
  .st-one__fig{max-width:400px;margin:0 auto}
  .ai-promise{grid-template-columns:1fr}
}
@media(max-width:640px){
  .ai-hero .kn-hero__grid,.st-hero .kn-hero__grid,.vu-hero .kn-hero__grid{grid-template-columns:1fr;gap:12px}
  .ai-hero .kn-hero__art,.st-hero .kn-hero__art,.vu-hero .kn-hero__art{order:-1;width:128px;margin-left:-6px}
  /* 3つの円の図：図が画面の幅に合わせて縮んでも、文字が14px を下回らないよう、スマートフォンでは図の中の文字を大きくします（2026-10-11）。
     大きさは図の座標の単位（幅440）。幅360px の画面で、いずれも14px 以上になる大きさです。文字は各円の中央に置いています（2026-10-12）。
     「バリューアップ」の題だけは、隣の円の線に触れないよう20px（幅360px の画面で約14.2px）とし、字間を少し詰めます */
  .st-venn .v-t{font-size:21px}
  .st-venn .v-s,.st-venn .v-c{font-size:20px}
  .st-venn .v-t.v-vu{font-size:20px;letter-spacing:-.02em}
  .ai-eq__notes,.ai-ledger>div,.ai-stage__list>div,.st-theme__list,.ai-plans{grid-template-columns:1fr}
  .ai-plans>div,.ai-plans>div+div{padding:22px 0;border-left:0}
  .ai-ledger .ai-ledger__head{display:none}
  .ai-ledger>div{gap:10px}
  .ai-ledger>div>p:first-child{font-weight:700}
  .ai-ledger>div>p+p{padding-left:30px}
  .ai-ledger>div>p+p::before{left:0;width:18px}
  .ai-ledger>div>p+p::after{left:9px}
  .ai-flow{grid-template-columns:1fr;gap:30px}
  .ai-flow li+li::before{left:50%;top:-22px;transform:translateX(-50%) rotate(135deg)}
  .ai-flow a{grid-template-columns:88px 1fr;column-gap:16px}
  .ai-flow img{grid-row:1/4;width:88px}
  .st-span__grid{grid-template-columns:1fr;gap:8px}
  .st-span__cols{grid-column:1;order:-1}
  .st-span__who--us{padding-top:14px}
  .st-span__track--other b{font-size:14px;padding:8px 4px}
  .st-span__sub{font-size:14px}
  .st-span__sub span{padding:0 4px}
  .st-figures>div{padding:20px 12px 18px 0}
  .st-figures>div+div{padding-left:12px}
  .st-figures__l{font-size:14px}
  .st-figures__n small,.st-figures__n--jp small{font-size:14px}
  .st-one__list>a{grid-template-columns:72px 1fr;gap:16px}
  .st-one__list img{width:72px}
  .st-path{flex-direction:column;align-items:flex-start;gap:0}
  .st-path li+li{margin:18px 0 0}
  .st-path li+li::before{right:auto;left:22px;top:auto;bottom:100%;width:0;height:18px;border-top:0;border-left:2px solid var(--ink);margin:0 0 1px}
}
@media print{.st-span__track--us{background:none}}

/* ---------- 支援事例（cases_parts.py。2026-10-11） ---------- */
.cs-list{border-top:2px solid var(--ink)}
.cs-case{display:grid;grid-template-columns:240px 1fr;gap:16px 48px;padding:28px 0;border-bottom:1px solid var(--line)}
.cs-case__meta{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.cs-case__meta li{font-size:14px;line-height:1.5;color:var(--ink);border:1px solid var(--line);border-radius:var(--r);padding:4px 10px;background:var(--white)}
.cs-case__meta li:first-child{border-color:var(--ink);font-weight:700}
.cs-case h3{font-size:clamp(18px,1.9vw,20px);line-height:1.55;margin:0}
.cs-case__own{margin:10px 0 0;font-size:14px;line-height:1.7;color:var(--mute)}
.cs-case__flow{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:34px}
.cs-case__flow li{position:relative}
.cs-case__flow li+li::before{content:"";position:absolute;left:-23px;top:6px;width:10px;height:10px;border-top:2px solid var(--ink);border-right:2px solid var(--ink);transform:rotate(45deg)}
.cs-case__flow span{display:inline-block;font-size:14px;font-weight:700;color:var(--ink);margin-bottom:6px}
.cs-case__result span{background:linear-gradient(transparent 62%,var(--marker) 62%);padding:0 .15em}
.cs-case__flow p{margin:0;font-size:15px;line-height:1.85}
.cs-block{margin-top:56px}
.cs-block h2{font-size:clamp(21px,2.3vw,26px);margin-bottom:10px}
.cs-block__lead{font-size:15px;margin:0 0 22px}
@media(max-width:900px){
  .cs-case{grid-template-columns:1fr}
}
@media(max-width:640px){
  .cs-case__flow{grid-template-columns:1fr;gap:26px}
  .cs-case__flow li+li::before{left:4px;top:-19px;transform:rotate(135deg)}
}

/* ---------- M&Aアドバイザリー（ma_pages.py。2026-10-12） ---------- */
.ma-pos{display:block;width:100%;max-width:320px;height:auto;font-family:var(--jp);margin:0 0 18px}
.ma-vs{display:grid;grid-template-columns:1fr 1fr;border-top:2px solid var(--ink);border-bottom:1px solid var(--line)}
.ma-vs>div{display:flex;flex-direction:column;padding:28px 40px 28px 0}
.ma-vs>div+div{padding:28px 0 28px 40px;border-left:1px solid var(--line)}
.ma-vs h3{font-size:clamp(20px,2vw,22px);line-height:1.5;margin-bottom:10px}
.ma-vs p{font-size:15px;line-height:1.85;margin:0 0 16px}
.ma-vs .st-tags{margin-bottom:18px}
.ma-vs .ma-vs__fee{margin:auto 0 0;color:var(--ink);font-weight:700}
.ma-flow{display:grid;gap:26px}
.ma-flow__phase>p{margin:0 0 10px;font-size:14.5px;font-weight:700;color:var(--accent)}
.ma-flow ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:30px}
.ma-flow li{position:relative;display:flex;flex-direction:column;background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px 18px}
.ma-flow li+li::before{content:"";position:absolute;left:-21px;top:50%;width:10px;height:10px;border-top:2px solid var(--ink);border-right:2px solid var(--ink);transform:translateY(-50%) rotate(45deg)}
.ma-flow__no{font-size:22px;line-height:1.2;color:var(--accent);margin-bottom:4px}
.ma-flow strong{color:var(--ink);font-size:17.5px;line-height:1.55;margin-bottom:6px}
.ma-flow li>span:last-child{font-size:14.5px;line-height:1.75}
.ma-flow__phase:last-child li:last-child{border-color:var(--ink);background:linear-gradient(transparent 92%,var(--marker) 92%) var(--white)}
.ma-sub{font-size:clamp(20px,2vw,22px);line-height:1.5;margin:0 0 16px}
.ma-stance__us h3 span{background:linear-gradient(transparent 62%,var(--marker) 62%);padding:0 .12em}
.ma-rule{margin-top:36px;display:grid;gap:0;border-top:2px solid var(--ink)}
.ma-rule>div{display:grid;grid-template-columns:76px 1fr;gap:22px;padding:26px 0;border-bottom:1px solid var(--line)}
.ma-rule .sv-ico{margin:0}
.ma-rule h3{font-size:17.5px;line-height:1.55;margin-bottom:8px}
.ma-rule p{font-size:15px;line-height:1.85}
.ma-rule .st-scope>div{grid-template-columns:200px 1fr;gap:6px 32px;padding:14px 0}
.ma-rule .st-scope>div:last-child{border-bottom:0}
@media(max-width:900px){
  .ma-vs{grid-template-columns:1fr}
  .ma-vs>div,.ma-vs>div+div{padding:26px 0;border-left:0}
  .ma-vs>div+div{border-top:1px solid var(--line)}
  .ma-flow ol{grid-template-columns:1fr 1fr}
  .ma-flow li:nth-child(3)::before{display:none}
  .ma-rule .st-scope>div{grid-template-columns:1fr}
}
@media(max-width:640px){
  .ma-hero .kn-hero__grid{grid-template-columns:1fr;gap:12px}
  .ma-hero .kn-hero__art{order:-1;width:128px;margin-left:-6px}
  .ma-flow ol{grid-template-columns:1fr;gap:26px}
  .ma-flow li+li::before,.ma-flow li:nth-child(3)::before{display:block;left:50%;top:-19px;transform:translateX(-50%) rotate(135deg)}
  .ma-rule>div{grid-template-columns:1fr;gap:6px}
}

/* ---------- トップページ（top_pages.py。2026-10-12） ---------- */
.tp-hero__fig{display:block;width:100%;max-width:440px;margin-left:auto}
.tp-figures{grid-template-columns:repeat(4,1fr);margin-top:48px}
.tp-want{display:grid;grid-template-columns:repeat(4,1fr);border-top:2px solid var(--ink)}
.tp-want>a,.tp-doors>a{display:flex;flex-direction:column;padding:26px 24px 24px 0;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}
.tp-want>a+a,.tp-doors>a+a{padding-left:24px;border-left:1px solid var(--line)}
.tp-want h3,.tp-doors h3{font-size:17.5px;line-height:1.55;margin-bottom:8px}
.tp-want p,.tp-doors p{font-size:15px;line-height:1.85;margin:0 0 16px}
.tp-want .st-link,.tp-doors .st-link{margin-top:auto;align-self:flex-start}
.tp-want>a:hover h3,.tp-doors>a:hover h3,.tp-know>a:hover strong{color:var(--accent)}
.tp-want>a:focus-visible,.tp-doors>a:focus-visible,.tp-know>a:focus-visible,.tp-hero__fig:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.tp-svc{display:grid;grid-template-columns:repeat(3,1fr);border-top:2px solid var(--ink)}
.tp-svc>div{display:flex;flex-direction:column;padding:28px 28px 26px 0;border-bottom:1px solid var(--line)}
.tp-svc>div+div{padding-left:28px;border-left:1px solid var(--line)}
.tp-svc__art{display:block;width:150px;margin:0 0 12px -8px}
.tp-svc__art img{width:100%;height:auto}
.tp-svc h3{font-size:clamp(20px,2vw,22px);line-height:1.5;margin-bottom:10px}
.tp-svc h3 a{color:inherit;text-decoration:none}
.tp-svc p{font-size:15px;line-height:1.85;margin:0 0 16px}
.tp-svc .st-tags{margin-bottom:20px}
.tp-svc .st-tags li{font-size:14px;padding:4px 10px}
.tp-svc .tp-svc__more{margin:auto 0 0}
.tp-two{display:grid;grid-template-columns:1fr 1fr;margin-top:36px;border-top:2px solid var(--ink);border-bottom:1px solid var(--line)}
.tp-two>div{padding:26px 36px 26px 0}
.tp-two>div+div{padding:26px 0 26px 36px;border-left:1px solid var(--line)}
.tp-two h3{font-size:17.5px;line-height:1.55;margin-bottom:12px}
.tp-check{list-style:none;margin:0;padding:0}
.tp-check li{display:flex;gap:12px;align-items:flex-start;font-size:15px;line-height:1.85;padding:6px 0}
.tp-check .sv-check{width:24px;height:24px;margin-top:2px}
.tp-sim .kn-sim{margin-top:0}
.tp-know{display:grid;grid-template-columns:1fr 1fr;column-gap:48px;border-top:2px solid var(--ink)}
.tp-know>a{display:grid;grid-template-columns:104px 1fr;gap:20px;align-items:center;padding:20px 28px 20px 0;border-bottom:1px solid var(--line);color:inherit;text-decoration:none;position:relative}
.tp-know>a::after{content:"";position:absolute;right:6px;top:50%;width:9px;height:9px;border-top:2px solid var(--accent);border-right:2px solid var(--accent);transform:translateY(-50%) rotate(45deg)}
.tp-know img{width:104px;height:auto}
.tp-know strong{color:var(--ink);font-size:17.5px;line-height:1.55;margin-right:.7em}
.tp-know em{font-style:normal;font-family:var(--en);font-size:15px;color:var(--accent)}
.tp-know span span{display:block;font-size:15px;line-height:1.8;margin-top:2px}
.tp-doors{border-top:2px solid var(--ink)!important}
@media(max-width:1000px){
  .tp-want{grid-template-columns:1fr 1fr}
  .tp-want>a:nth-child(3){padding-left:0;border-left:0}
  .tp-figures{grid-template-columns:1fr 1fr}
  .tp-figures>div:nth-child(3){padding-left:0;border-left:0}
  .tp-figures>div:nth-child(n+3){border-top:1px solid var(--line)}
}
@media(max-width:900px){
  .tp-svc,.tp-know{grid-template-columns:1fr}
  .tp-svc>div,.tp-svc>div+div{padding:26px 0;border-left:0}
  .tp-doors>a,.tp-doors>a+a{padding:22px 0;border-left:0}
  .tp-hero__fig{margin:8px auto 0;max-width:360px}
}
@media(max-width:640px){
  .tp-want,.tp-two{grid-template-columns:1fr}
  .tp-want>a,.tp-want>a+a{padding:22px 0;border-left:0}
  .tp-two>div,.tp-two>div+div{padding:22px 0;border-left:0}
  .tp-two>div+div{border-top:1px solid var(--line)}
  .tp-know>a{grid-template-columns:72px 1fr;gap:16px}
  .tp-know img{width:72px}
  .tp-figures>div:nth-child(even){padding-left:12px}
}

/* ---------- キャッチコピー（Beyond the Change. ／ 変革のその先へ、企業価値を最大化する。2026-10-12） ---------- */
.catch{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 18px;margin:0 0 18px;line-height:1.5}
.catch__en{font-family:var(--en);color:var(--accent);font-size:15px;letter-spacing:.12em;white-space:nowrap}
.catch__ja{color:var(--ink);font-size:15px;font-weight:700;letter-spacing:.04em}
.catch--lead{display:block;margin:6px 0 22px;padding:18px 0 18px 22px;border-left:4px solid var(--marker)}
.catch--lead .catch__en{display:block;color:var(--ink);font-size:clamp(22px,2.6vw,28px);letter-spacing:.06em;line-height:1.3}
.catch--lead .catch__ja{display:block;margin-top:6px;font-size:clamp(16px,1.5vw,17.5px)}
.catch--foot{display:block;margin:0 0 14px}
.catch--foot .catch__en{display:block;color:var(--ink);font-size:15px;letter-spacing:.1em}
.catch--foot .catch__ja{display:block;font-size:14px;font-weight:400;color:var(--body);letter-spacing:.02em}

/* ---------- 反響につなげる共通の部品（site_parts.py。2026-10-12 の全体の見直し） ---------- */
.mbar{display:none}
.mid-cta{display:flex;justify-content:space-between;align-items:center;gap:18px 36px;flex-wrap:wrap;margin-top:44px;padding:24px 0;border-top:2px solid var(--ink);border-bottom:1px solid var(--line)}
.mid-cta p{margin:0;flex:1 1 320px;color:var(--ink);font-weight:700;font-size:16px;line-height:1.8}
.next-wrap .next-steps{margin-top:0}
.face{display:block;width:96px;height:96px;border-radius:var(--r);object-fit:cover;background:var(--surface)}
.faces{margin-top:36px;padding-top:28px;border-top:1px solid var(--line)}
.faces__head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.faces__head h3{font-size:17.5px}
.faces__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px 32px}
.faces__grid>div{display:grid;grid-template-columns:96px 1fr;column-gap:18px;align-content:center}
.faces__grid .face{grid-row:1/3}
.faces__who{margin:0;align-self:end;color:var(--ink);font-weight:700;font-size:17.5px;line-height:1.5}
.faces__who span{display:block;font-weight:400;font-size:14px;color:var(--body)}
.faces__line{margin:4px 0 0;align-self:start;font-size:15px;line-height:1.7}
.st-people__who .face{width:72px;height:72px;margin-bottom:10px}
.msg-photo{float:right;width:200px;margin:4px 0 20px 32px}
.msg-photo .face{width:200px;height:200px}
.msg-photo figcaption{margin-top:8px;font-size:14px;line-height:1.6;color:var(--body)}
.hs{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}
.hs li{position:relative;display:grid;grid-template-columns:120px 1fr;gap:8px 36px;padding:20px 0 20px 26px;border-bottom:1px solid var(--line)}
.hs li::before{content:"";position:absolute;left:5px;top:0;bottom:0;border-left:2px solid var(--line)}
.hs li::after{content:"";position:absolute;left:0;top:27px;width:12px;height:12px;border-radius:50%;background:var(--white);border:2px solid var(--ink)}
.hs li:last-child::after{background:var(--marker)}
.hs__year{font-size:22px;line-height:1.3;color:var(--ink);font-weight:700}
.hs p{margin:0;font-size:15px;line-height:1.85}
.svi-hero__fig{max-width:340px;justify-self:end;width:100%}
.svi-hero .kn-hero__grid{grid-template-columns:1fr 340px}
.svi-svc h2{font-size:clamp(20px,2vw,22px);line-height:1.5;margin-bottom:10px}
.svi-svc h2 a{color:inherit;text-decoration:none}
.svi-links{list-style:none;margin:0 0 20px;padding:0;border-top:1px solid var(--line)}
.svi-links li{border-bottom:1px solid var(--line)}
.svi-links a{display:block;position:relative;padding:10px 22px 10px 0;font-size:15px;line-height:1.6;color:var(--ink)}
.svi-links a::after{content:"";position:absolute;right:4px;top:50%;width:7px;height:7px;border-top:2px solid var(--accent);border-right:2px solid var(--accent);transform:translateY(-50%) rotate(45deg)}
.fee-flow{margin-top:36px}
.fee-flow h3{font-size:17.5px;margin-bottom:14px}
.fee-flow ol{grid-template-columns:repeat(3,1fr)}
.form-ok__next{margin:14px 0 0;padding-top:14px;border-top:1px solid var(--line)}
.form-ok__next a{display:inline-block;margin-right:1.4em;font-weight:700}
@media(max-width:900px){
  body.has-mbar{padding-bottom:76px}
  .mbar{display:flex;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:40;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);border-top:1px solid var(--line)}
  .mbar .btn{flex:1;padding:12px 8px;font-size:14.5px;text-align:center;white-space:nowrap}
  .faces__grid{grid-template-columns:1fr}
  .svi-hero .kn-hero__grid{grid-template-columns:1fr}
  .svi-hero__fig{justify-self:center;max-width:320px}
  .fee-flow ol{grid-template-columns:1fr}
}
@media(max-width:640px){
  .msg-photo{float:none;margin:0 0 24px}
  .hs li{grid-template-columns:1fr;gap:4px}
  .mid-cta .btns{width:100%}
}
@media print{.mbar{display:none!important}}

/* ---------- 執筆者・成功報酬の試算・要点・スキーム・モデルケース（seo_pages.py・scheme_pages.py・cases_parts.py。2026-10-12） ---------- */
.au-head{display:grid;grid-template-columns:148px 1fr;gap:32px;align-items:center}
.au-head__photo{width:148px;height:148px}
.au-head .eyebrow{font-family:var(--jp);font-size:14px;letter-spacing:.04em;margin-bottom:8px}
.au-head h1{margin-bottom:6px}
.au-head__role{margin:0 0 12px;font-size:15px;font-weight:700;color:var(--accent)}
.au-head__line{margin:0;font-size:clamp(16px,1.5vw,17.5px);color:var(--ink)}
.au-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:64px;align-items:start}
.au-h{display:flex;align-items:baseline;gap:14px;font-size:clamp(20px,2vw,22px);line-height:1.5;margin:0 0 18px;padding-top:16px;border-top:2px solid var(--ink)}
.au-h span{font-size:14px;font-weight:400;color:var(--body)}
.au-cats{margin:0 0 14px;font-size:14px;color:var(--body)}
.au-posts{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.au-posts li{margin:0;padding:14px 0;border-bottom:1px solid var(--line)}
.au-posts a{display:block;font-weight:700;color:var(--ink);font-size:16px;line-height:1.65}
.au-posts a:hover{color:var(--accent);text-decoration:none}
.au-posts li>span{display:block;margin-top:3px;font-size:14px;color:var(--body)}

.fc{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px;align-items:start}
.fc .field{margin-bottom:8px}
.fc .field label{font-size:15px}
.fc__row{display:flex;align-items:center;gap:12px}
.fc__row input{font-family:var(--en);font-size:22px;font-weight:700;color:var(--ink);letter-spacing:.02em}
.fc__row span{flex:none;font-size:16px;color:var(--ink);font-weight:700}
.fc__read{margin:8px 0 0;font-size:15px;color:var(--body);min-height:1.8em}
.fc__label{margin:18px 0 10px;font-size:14px;font-weight:700;color:var(--ink)}
.fc__presets{margin-bottom:0}
.fc__presets .chip{font-size:14px;padding:8px 16px}
.fc__presets .chip:hover{border-color:var(--ink)}
.fc__out{border-top:2px solid var(--ink);padding-top:16px}
.fc__out .fc__label{margin-top:0}
.fc__fee{margin:0;font-size:clamp(34px,5vw,54px);font-weight:700;line-height:1.25;color:var(--ink);letter-spacing:.01em;display:inline;background:linear-gradient(transparent 68%,var(--marker) 68%);padding:0 .08em}
.fc__sub{margin:12px 0 22px;font-size:15px;color:var(--body);min-height:1.8em}
.fc__tbl{font-size:15px}
.fc__tbl th{font-size:14px;color:var(--body);font-weight:400;text-align:left;padding:10px 12px 10px 0;border-bottom:1px solid var(--line)}
.fc__tbl td{padding:12px 12px 12px 0;border-bottom:1px solid var(--line);vertical-align:top}
.fc__tbl td:nth-child(n+2),.fc__tbl th:nth-child(n+2){text-align:right;white-space:nowrap}
.fc__tbl td:last-child,.fc__tbl th:last-child{padding-right:0}
.fc__tbl td:last-child{font-weight:700;color:var(--ink)}
.fc__min{margin:16px 0 0;padding-left:14px;border-left:4px solid var(--marker);font-size:15px;color:var(--ink)}

.fx-qa{border-top:2px solid var(--ink)}
.fx-qa>div{display:grid;grid-template-columns:300px 1fr;gap:10px 56px;padding:24px 0;border-bottom:1px solid var(--line)}
.fx-qa h3{font-size:17.5px;line-height:1.6;margin:0}
.fx-qa p{margin:0 0 .8em;font-size:15px;line-height:1.85}
.fx-qa p:last-child{margin-bottom:0}
.fx-qa a,.fx-scope dd a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.fx-links h3 a{color:var(--ink)}
.fx-links h3 a::after{content:"";display:inline-block;width:.45em;height:.45em;border-top:2px solid var(--accent);border-right:2px solid var(--accent);transform:rotate(45deg);margin-left:.5em;vertical-align:.14em}
.fx-links h3 a:hover{color:var(--accent);text-decoration:none}

.sc-list{border-top:2px solid var(--ink)}
.sc-row{display:grid;grid-template-columns:76px 250px 1fr 16px;gap:8px 28px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line);color:var(--body)}
.sc-row::after{content:"";width:9px;height:9px;border-top:2px solid var(--accent);border-right:2px solid var(--accent);transform:rotate(45deg);transition:transform .15s}
.sc-row:hover{text-decoration:none}
.sc-row:hover::after{transform:translateX(4px) rotate(45deg)}
.sc-row:hover .sc-row__name{color:var(--accent)}
.sc-row .sv-ico{margin:0}
.sc-row__name{font-size:clamp(18px,1.9vw,20px);font-weight:700;color:var(--ink);line-height:1.5;transition:color .15s}
.sc-row__text{font-size:15px;line-height:1.85}
.sc-tbl{min-width:860px;background:#fff}
.sc-tbl th,.sc-tbl td{vertical-align:top;line-height:1.8}
.sc-tbl tbody th{width:170px;white-space:nowrap}
.sc-tbl tbody th a{color:var(--ink)}
.sc-steps li{background:var(--surface)}
.sc-note{margin:24px 0 0;padding-left:16px;border-left:4px solid var(--marker);font-size:15px;color:var(--ink)}

.cs-case__model{display:inline-block;margin:0 0 12px;padding:2px 12px;border:1px solid var(--ink);border-radius:var(--r);font-size:14px;font-weight:700;line-height:1.7;color:var(--ink);background:#F4F7C4}
.cs-case--model .cs-case__meta li:first-child{border-color:var(--line);font-weight:400}

@media(max-width:900px){
  .au-grid,.fc{grid-template-columns:1fr;gap:44px}
  .fx-qa>div{grid-template-columns:1fr}
  .sc-row{grid-template-columns:64px 1fr 16px;gap:2px 18px}
  .sc-row .sv-ico{width:64px;height:64px;grid-row:1 / span 2}
  .sc-row__text{grid-column:2}
  .sc-row::after{grid-column:3;grid-row:1 / span 2}
}
@media(max-width:640px){
  .au-head{grid-template-columns:96px 1fr;gap:20px;align-items:start}
  .au-head__photo{width:96px;height:96px}
  .fc__tbl td:first-child{font-size:14px}
  .fc__tbl td:nth-child(2),.fc__tbl th:nth-child(2){display:none}
}
.guide-split>div{min-width:0}
.cs-case h3{word-break:auto-phrase}
.faces__note{font-size:14px;margin:16px 0 0;grid-column:1 / -1}
.fd-list{border-top:2px solid var(--ink)}
.fd-row{display:grid;grid-template-columns:76px 270px 1fr;gap:10px 32px;align-items:start;padding:26px 0;border-bottom:1px solid var(--line)}
.fd-row .sv-ico{margin:0}
.fd-row h3{font-size:clamp(18px,1.9vw,20px);line-height:1.5;margin:6px 0 8px}
.fd-row h3 a{color:var(--ink)}
.fd-row h3 a::after{content:"";display:inline-block;width:.45em;height:.45em;border-top:2px solid var(--accent);border-right:2px solid var(--accent);transform:rotate(45deg);margin-left:.5em;vertical-align:.14em}
.fd-row h3 a:hover{color:var(--accent);text-decoration:none}
.fd-row__head p{margin:0;font-size:15px;line-height:1.85}
.fd-row .chips{margin:8px 0 0}
.fd-row .chip{font-size:14px}
.fd-row a.chip:hover{border-color:var(--ink);text-decoration:none}
.fd-docs{list-style:none;margin:0;padding:0}
.fd-docs li{margin:0;padding:7px 0;border-bottom:1px solid var(--line);font-size:15px;line-height:1.7}
.fd-docs li:last-child{border-bottom:none}
.fd-docs a{color:var(--ink)}
.fd-docs a:hover{color:var(--accent)}
@media(max-width:900px){
  .fd-row{grid-template-columns:64px 1fr;gap:6px 18px}
  .fd-row .sv-ico{width:64px;height:64px}
  .fd-row .chips{grid-column:1 / -1}
}

/* ---------- スキームへの案内（第21弾。2026-10-12） ---------- */
.sc-rel{margin-bottom:0}
.sc-rel .chip{font-size:14px}
.sc-rel a.chip:hover{border-color:var(--ink);text-decoration:none}

/* ---------- 私たちの理念（vision_pages.py。2026-10-13） ---------- */
.vs-vision{text-align:center;max-width:860px;margin:0 auto;padding:24px 0 8px}
/* キャッチコピーの大きさは、会社概要の冒頭（.catch--lead）とそろえ、ページの見出しより小さくします（2026-10-13・嵐様。例外にしない） */
.vs-vision__en{font-family:var(--en);color:var(--ink);font-size:clamp(22px,2.6vw,28px);letter-spacing:.06em;line-height:1.3;margin:6px 0 10px}
.vs-vision__ja{color:var(--ink);font-weight:700;font-size:clamp(16px,1.5vw,17.5px);letter-spacing:.04em;margin:0 0 22px}
.vs-vision__sub{font-size:16px;margin:0}
.vs-missions{display:grid;gap:0;border-top:2px solid var(--ink)}
.vs-mission{display:grid;grid-template-columns:220px 1fr;gap:6px 40px;padding:28px 0;border-bottom:1px solid var(--line)}
.vs-mission__who{grid-row:span 2;margin:0;font-size:14px;font-weight:700;color:var(--accent);letter-spacing:.04em;padding-top:6px}
.vs-mission__m{margin:0;color:var(--ink);font-weight:700;font-size:clamp(19px,2.1vw,24px);line-height:1.6}
.vs-mission__t{margin:0;font-size:15px}
.vs-values{display:grid;grid-template-columns:repeat(3,1fr);border-top:2px solid var(--ink)}
.vs-values>div{padding:26px 26px 24px 0;border-bottom:1px solid var(--line)}
.vs-values>div:not(:nth-child(3n+1)){padding-left:26px;border-left:1px solid var(--line)}
.vs-values h3{font-size:17.5px;line-height:1.55;margin:10px 0 8px}
.vs-values p{font-size:15px;margin:0}
.vs-origin{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:center}
.vs-origin h2{font-size:clamp(21px,2.3vw,26px);margin-bottom:14px}
.vs-origin__figs{grid-template-columns:1fr 1fr;margin:0}
.vs-logo{display:flex;align-items:center;gap:32px;margin-top:48px;padding-top:32px;border-top:1px solid var(--line)}
.vs-logo img{width:220px;height:auto;flex:none}
.vs-logo p{margin:0;font-size:15px}
.vs-ways{display:grid;grid-template-columns:repeat(3,1fr);border-top:2px solid var(--ink)}
.vs-ways>a{display:flex;flex-direction:column;padding:26px 24px 24px 0;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}
.vs-ways>a:not(:nth-child(3n+1)){padding-left:24px;border-left:1px solid var(--line)}
.vs-ways__who{font-size:14px;font-weight:700;color:var(--accent);margin:10px 0 2px}
.vs-ways h3{font-size:17.5px;line-height:1.55;margin:0 0 8px}
.vs-ways p:not(.vs-ways__who){font-size:15px;margin:0 0 16px}
.vs-ways .st-link{margin-top:auto;align-self:flex-start}
.vs-ways>a:hover h3{color:var(--accent)}
.vs-ways>a:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.vs-band{display:grid;grid-template-columns:1fr 1.4fr;gap:40px;align-items:start}
.vs-band__head h2{font-size:clamp(22px,2.6vw,28px);margin:0}
.vs-band__list{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}
.vs-band__list li{padding:18px 0;border-bottom:1px solid var(--line)}
.vs-band__who{display:block;font-size:14px;font-weight:700;color:var(--accent);margin-bottom:4px}
.vs-band__m{display:block;color:var(--ink);font-weight:700;font-size:17.5px;line-height:1.6}
.tp-doors--4{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){
  .vs-values,.vs-ways{grid-template-columns:1fr 1fr}
  .vs-values>div,.vs-ways>a{padding:24px 20px 22px 0;border-left:0}
  .vs-values>div:not(:nth-child(3n+1)),.vs-ways>a:not(:nth-child(3n+1)){padding-left:0;border-left:0}
  .vs-values>div:nth-child(2n),.vs-ways>a:nth-child(2n){padding-left:20px;border-left:1px solid var(--line)}
  .vs-origin,.vs-band{grid-template-columns:1fr;gap:28px}
  .tp-doors--4{grid-template-columns:1fr 1fr}
  .tp-doors--4>a:nth-child(2n){padding-left:20px;border-left:1px solid var(--line)}
}
@media(max-width:640px){
  .vs-mission{grid-template-columns:1fr}
  .vs-mission__who{grid-row:auto;padding:0}
  .vs-values,.vs-ways,.tp-doors--4{grid-template-columns:1fr}
  .vs-values>div,.vs-ways>a,.vs-values>div:nth-child(2n),.vs-ways>a:nth-child(2n),.tp-doors--4>a:nth-child(2n){padding:22px 0;border-left:0}
  .vs-logo{flex-direction:column;align-items:flex-start;gap:18px}
  .vs-logo img{width:180px}
}

/* ---------- 私たちの理念：地方創生への考え方（2026-10-13 追加） ---------- */
.vs-local{margin-top:64px}
.vs-local .flow3>div{background:#fff}

/* ---------------------------------------------------------------- 法令・判例の参考情報（legal_parts.py。2026-10-17） */
.legal-refs{margin:48px 0 0;border:1px solid var(--line);border-radius:var(--r);padding:24px 26px 18px}
.legal-refs h2{font-size:18px;margin:0 0 6px;border:none;padding:0}
.legal-refs h2 span{font-size:14px;font-weight:400;color:var(--mute);margin-left:4px}
.legal-refs__list{list-style:none;margin:0;padding:0}
.legal-refs__list>li{padding:16px 0;border-bottom:1px solid var(--line)}
.legal-refs__list>li:last-child{border-bottom:none}
.legal-refs__kind{display:inline-block;font-size:13px;line-height:1.5;border:1px solid var(--ink);color:var(--ink);border-radius:99px;padding:0 10px;margin-right:8px;vertical-align:1px;white-space:nowrap}
.legal-refs__kind--case{border-style:dashed}
.legal-refs__title{display:inline;font-weight:700;color:var(--ink);margin:0}
.legal-refs__sum{margin:8px 0 4px;font-size:15px}
.legal-refs__meta{margin:0;font-size:14px;color:var(--mute)}
.legal-refs__aside{font-size:14px;color:var(--mute)}
.legal-refs__foot{margin:12px 0 0;font-size:14px;color:var(--mute);line-height:1.8}
.legal-abbr{display:grid;grid-template-columns:max-content 1fr;gap:6px 18px;margin:8px 0 20px;padding:16px 20px;background:var(--surface);border-radius:var(--r);font-size:15px}
.legal-abbr dt{font-weight:700;color:var(--ink)}
.legal-abbr dd{margin:0}
.legal-list h3{margin:36px 0 4px}
.legal-list__row{padding:16px 0;border-bottom:1px solid var(--line);scroll-margin-top:90px}
.legal-list__pages{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 16px;font-size:14px}
.legal-list__pages .legal-refs__kind{font-size:12.5px;padding:0 8px;margin-right:4px}
@media (max-width:640px){.legal-refs{padding:20px 16px 12px}.legal-abbr{grid-template-columns:1fr;gap:2px}.legal-abbr dd{margin-bottom:8px}}
.legal-compact{margin:14px 0 4px;padding:10px 14px;border-left:3px solid var(--line);font-size:14px}
.legal-compact__h{margin:0 0 4px;color:var(--mute)}
.legal-compact__list{list-style:none;margin:0;padding:0}
.legal-compact__list li{margin:3px 0}
.legal-compact .legal-refs__kind{font-size:12px;padding:0 8px;margin-right:6px}
.legal-refs+.legal-refs{margin-top:24px}

/* ---------- フッターの整理（2026-10-17） ----------
   列は <details>（スマートフォンでは折りたたみ。開閉の印はサイト全体の summary::after）、お知らせ・IR・採用の行、最下段は 14px */
.foot-col{min-width:0;border-bottom:0}
.foot-col>summary{padding:0;margin:0 0 13px;font-size:14px;cursor:default;pointer-events:none}
.foot-col>summary a{pointer-events:auto}
.foot-col>summary::after{display:none}
.foot-row{list-style:none;margin:0 0 28px;padding:18px 0 0;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:8px 28px;font-weight:700}
.foot-row a{color:var(--ink)}
@media(max-width:900px){
  body.has-mbar .foot-cta{display:none}
  .foot-grid.foot-grid--5{grid-template-columns:1fr;gap:0;margin-bottom:28px}
  .foot-col{border-top:1px solid var(--line)}
  .foot-col:first-child{border-top:0}
  .foot-col>summary{cursor:pointer;pointer-events:auto;padding:14px 44px 14px 0;margin:0;font-size:15px}
  .foot-col>summary::after{display:block;top:20px}
  .foot-col>ul{padding:0 0 14px 4px}
  .foot-col>ul li{margin-bottom:10px}
  .foot-row{gap:10px 22px}
}
@media(max-width:640px){.foot-grid.foot-grid--5{grid-template-columns:1fr}}

/* ---------- サイトマップ（/sitemap/。2026-10-17） ---------- */
.sm-grid{columns:3;column-gap:40px}
.sm-col{break-inside:avoid;margin-bottom:34px}
.sm-col h2{font-size:17px;margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.sm-col h2 a{color:var(--ink)}
.sm-col ul{list-style:none;margin:0;padding:0}
.sm-col li{margin-bottom:8px;line-height:1.7;display:flex;justify-content:space-between;gap:10px}
.sm-col li a{color:var(--body)}
.sm-col li span{color:var(--mute);font-size:14px;flex:none}
@media(max-width:900px){.sm-grid{columns:2}}
@media(max-width:640px){.sm-grid{columns:1}.sm-col{margin-bottom:26px}}

/* ---- 採用の動画（採用トップの冒頭。2026-10-18） ----
   横長（16:9）と縦長（9:16）を置き、幅 767px 以下では縦長だけを表示します。動画の背景が白のため、細い枠で囲みます */
.recruit-movie,.about-movie{padding-top:48px;padding-bottom:0}
.about-movie{padding-top:36px}
.movie{position:relative;margin:0 auto;max-width:960px}
.movie__v{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:var(--r);background:#fff;cursor:pointer}
.movie__v--tall{display:none}
.movie__btn{position:absolute;left:14px;bottom:16px;padding:7px 18px;border:2px solid var(--ink);border-radius:999px;background:#fff;color:var(--ink);font-weight:700;font-size:15px;line-height:1.4;cursor:pointer}
.movie__btn:hover{background:var(--marker)}
.movie__text{max-width:960px;margin:14px auto 0}
.movie__text summary{font-size:15px;padding-top:14px;padding-bottom:14px}
.movie__text summary::after{top:20px}
.movie__text ol{margin:0 0 18px;padding-left:2.2em;font-size:15px}
.movie__text li{margin-bottom:6px}
@media(max-width:767px){
  .movie{width:fit-content;max-width:100%}
  .movie__v--wide{display:none}
  .movie__v--tall{display:block;width:auto;max-width:100%;max-height:80vh;max-height:80svh}
}

/* ---------- 会社案内の動画（2026-10-18）：トップの「会社案内」のカードのポスター ---------- */
.tp-doors__thumb{position:relative;display:block;margin-bottom:16px}
.tp-doors__poster{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:var(--r);background:#fff}
.tp-doors__play{position:absolute;left:12px;bottom:12px;padding:5px 12px;border:2px solid var(--ink);border-radius:999px;background:#fff;color:var(--ink);font-size:14px;font-weight:700;line-height:1.4}
.tp-doors__play span{font-size:11px;vertical-align:1px}

/* ================================================================
   図解（.fx）：コラム・用語集・サービスの説明を補う図（figures.py・src/data/figures.json。2026-10-18）
   文字は画像にせず本文と同じ文字で組みます（14px 以上）。紺・赤のべた塗りはせず、罫線とマーカーで示します
   ================================================================ */
.fx{margin:32px 0;padding:22px 22px 18px;border:1px solid var(--line);border-radius:8px;background:#fff;break-inside:avoid}
.fx p{margin:0}
.fx-title{margin:0 0 14px!important;font-weight:700;color:var(--ink);font-size:16px;line-height:1.6}
.fx-note{margin:14px 0 0!important;font-size:14px;color:var(--body);line-height:1.7}
.fx mark{background:linear-gradient(transparent 55%,var(--marker) 55%);color:inherit;font-weight:700;padding:0}
.fx ul{margin:0;padding:0}
.post-body .fx ul li,.fx li{padding-left:0;margin:0}
.post-body .fx li::before,.fx li::before{display:none}
/* スキーム */
.fx-cols{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.fx-cols--1{grid-template-columns:minmax(0,520px);justify-content:center}
.fx-cols--3{grid-template-columns:repeat(3,1fr)}
.fx-col{display:flex;flex-direction:column;align-items:stretch;min-width:0}
.fx-col__h{margin:0 0 12px!important;font-weight:700;color:var(--ink);font-size:17px;border-bottom:2px solid var(--marker);padding-bottom:6px}
.fx-node{border:1.5px solid var(--line);border-radius:8px;padding:10px 12px;text-align:center;color:var(--ink);font-weight:700;font-size:15px;line-height:1.6;background:var(--surface)}
.fx-node span{display:block;font-weight:400;font-size:14px;color:var(--body)}
.fx-node--strong{background:#fff;border-color:var(--ink)}
.fx-arrow{position:relative;text-align:center;padding:10px 0 20px;font-size:14px;line-height:1.6;color:var(--body)}
.fx-arrow::after{content:"";position:absolute;left:50%;bottom:5px;width:10px;height:10px;border-right:2px solid var(--mute);border-bottom:2px solid var(--mute);transform:translateX(-50%) rotate(45deg)}
.fx-arrow span{background:#fff;padding:0 6px}
.fx-box{margin-top:14px;border:1px dashed var(--mute);border-radius:8px;padding:12px}
.fx-box__h{margin:0 0 8px!important;font-size:14px;color:var(--ink);font-weight:700}
.fx-tags{list-style:none;display:flex;flex-wrap:wrap;gap:6px}
.fx-tags li{font-size:14px;line-height:1.6;border:1px solid var(--line);border-radius:999px;padding:3px 10px!important;color:var(--body);background:#fff}
.fx-col .fx-note{margin-top:10px!important}
/* 時間 */
.fx-time{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}
.fx-time--3{grid-template-columns:repeat(3,1fr)}
.fx-time--4{grid-template-columns:repeat(4,1fr)}
.fx-time--5{grid-template-columns:repeat(5,1fr)}
.fx-time__seg{display:flex;flex-direction:column;gap:4px;min-width:0}
.fx-time__bar{height:14px;border-radius:7px;background:var(--surface);border:1px solid var(--line)}
.fx-time__seg--hi .fx-time__bar{background:var(--marker);border-color:var(--marker)}
.fx-time__seg b{color:var(--ink);font-size:15px;margin-top:6px;line-height:1.5}
.fx-time__seg small{font-size:14px;color:var(--body);line-height:1.6}
/* 計算 */
.fx-stack{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:stretch}
.fx-stack__bar{display:flex;flex-direction:column;gap:6px;min-width:0}
.fx-stack__eq{align-self:center;font-size:22px;color:var(--ink);font-weight:700}
.fx-stack__op{text-align:center;font-size:18px;line-height:1;color:var(--ink);font-weight:700}
.fx-blk{flex:1;border:1.5px solid var(--line);border-radius:8px;padding:12px;color:var(--ink);font-weight:700;font-size:15px;line-height:1.6;display:flex;flex-direction:column;justify-content:center;text-align:center;background:var(--surface)}
.fx-blk small{font-weight:400;font-size:14px;color:var(--body);margin-top:2px}
.fx-blk--ev{min-height:150px;background:#fff;border-color:var(--ink)}
.fx-blk--hi{background:#fff;border-color:var(--marker);border-width:3px;flex:1.6}
/* 分かれ道・手順 */
.fx-branch{list-style:none;border-left:3px solid var(--marker);display:flex;flex-direction:column;gap:10px}
.fx-branch li{display:grid;grid-template-columns:10em 1fr;gap:12px;align-items:center;padding:4px 0 4px 16px!important;position:relative}
.post-body .fx-branch li::before,.fx-branch li::before{display:block;content:"";position:absolute;left:0;top:50%;width:12px;height:0;border-top:2px solid var(--marker);background:none;border-radius:0}
.fx-branch b{color:var(--ink);font-size:15px;line-height:1.5;border:1.5px solid var(--line);border-radius:8px;padding:6px 10px;text-align:center}
.fx-branch span{font-size:15px;line-height:1.7;color:var(--body)}
.fx-branch--steps{counter-reset:fxstep}
.fx-branch--steps b::before{counter-increment:fxstep;content:counter(fxstep) ". ";font-family:var(--en)}
@media (max-width:760px){
  .fx-cols--3,.fx-time--4,.fx-time--5{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .fx{padding:16px 14px}
  .fx-cols,.fx-cols--3{grid-template-columns:1fr;gap:26px}
  .fx-time,.fx-time--3,.fx-time--4,.fx-time--5{grid-template-columns:1fr;gap:12px}
  .fx-stack{grid-template-columns:1fr;gap:8px}
  .fx-stack__eq{justify-self:center;transform:rotate(90deg)}
  .fx-blk--ev{min-height:0}
  .fx-branch li{grid-template-columns:1fr;gap:4px}
  .fx-branch b{justify-self:start}
}

/* 本文の長い URL のリンクが、スマートフォンではみ出さないように（2026-10-18・全ページの最終確認） */
main a[href^="http"]{overflow-wrap:anywhere}

/* ページの最終更新日（seo_meta.py の <!--lastmod-->。2026-10-18） */
.lastmod{font-size:14px;color:var(--mute);margin:12px 0 0}
/* 会社・サービスを一文で言い表す定義文（単独で引用されても意味が通る文。2026-10-18） */
.def-line{font-size:16px;line-height:1.8;color:var(--ink);margin:14px 0 0}
