/*
Theme Name: SEED
Theme URI: https://seed.or.jp/
Author: 一般社団法人中小企業販促・DX支援協会
Description: seed.or.jp 用の自作ブロックテーマ。トップは「SEED トップの部品」パターン（コアブロックのみ）で組む。テンプレート・ヘッダー・フッター・CSSはClaudeが管理し、サイトエディタでは直さない。
Version: 0.6.3
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 8.0
Text Domain: seed
*/

/* 0. トークン（2026-08-23 デザイン案の値） */
:root{
  --color-bg:#EFEEEC; --color-bg-2:#E0DEDA; --color-ink:#171717; --color-surface:#FFFFFF;
  --color-primary:#1A5999; --color-secondary:#1967D2; --color-tertiary:#0C2B4E;
  --color-accent:#E8752A; --color-border:#D9D9D9;
  --font-family:"YuGothic","Yu Gothic","Hiragino Kaku Gothic ProN","Hiragino Kaku Gothic Pro","Meiryo",sans-serif;
  --scale-base:1536;
  --radius-md:16px; --radius-lg:30px; --radius-pill:1000px; --radius-asym:16px 0;
  --section-gap:120px;
  --wave-h:clamp(72px, calc(180 / var(--scale-base) * 100vw), 180px);
  --side-w:160px; --header-h:76px; --content-max:1200px;
  --gutter:clamp(20px, 4vw, 64px);
}

/* 1. ベース */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:100px; }
body{
  margin:0; font-family:var(--font-family); font-size:16px; line-height:1.9;
  color:var(--color-ink); background:var(--color-bg);
  -webkit-font-smoothing:antialiased; text-size-adjust:100%;
}
img,svg{ max-width:100%; height:auto; }
a{ color:inherit; text-decoration:none; }
p{ margin:0 0 1.6em; }
p:last-child{ margin-bottom:0; }
h1,h2,h3,h4{ margin:0; font-weight:700; }
:focus-visible{ outline:3px solid var(--color-accent); outline-offset:3px; border-radius:4px; }
.wp-site-blocks{ padding:0; }
.wp-site-blocks > *{ margin-block-start:0; }
main{ display:block; }

.inner{
  width:100%; max-width:var(--content-max); margin-inline:auto;
  padding-inline:var(--gutter); position:relative; z-index:2;
}
.skip-link.screen-reader-text:focus{ z-index:200; }

/* 2. タイポグラフィ */
.kv-title{
  font-size:clamp(40px, calc(100 / var(--scale-base) * 100vw), 120px) !important;
  line-height:1.0; font-weight:700; letter-spacing:-0.01em; overflow-wrap:anywhere;
}
@media (max-width:430px){ .kv-title{ font-size:clamp(28px, calc(126 / var(--scale-base) * 100vw), 40px) !important; } }
.band-title{
  font-size:clamp(44px, calc(124 / var(--scale-base) * 100vw), 150px) !important;
  line-height:1.4; font-weight:700; letter-spacing:0.02em;
  color:transparent !important;
  -webkit-text-stroke-width:clamp(1.2px, calc(2 / var(--scale-base) * 100vw), 2px);
  -webkit-text-stroke-color:var(--color-surface);
  overflow-wrap:anywhere; margin-bottom:.1em;
}
.band-title--ink{ -webkit-text-stroke-color:var(--color-primary); }
.lead-title{
  font-size:clamp(26px, calc(54 / var(--scale-base) * 100vw), 64px) !important;
  line-height:2.0; font-weight:700; overflow-wrap:anywhere;
}
.msg-title{
  font-size:clamp(20px, calc(32 / var(--scale-base) * 100vw), 38px) !important;
  line-height:1.6; font-weight:700; overflow-wrap:anywhere;
}
.eyebrow{
  display:inline-block; font-size:13px; font-weight:700; letter-spacing:.18em;
  padding:6px 16px; margin:0 0 20px; border:1px solid currentColor;
  border-radius:var(--radius-pill); opacity:.85;
}
.lead-text{ font-size:clamp(15px,1.15vw,18px); line-height:2.0; max-width:52em; }

/* 3. ボタン（core/button のブロックスタイル） */
.wp-block-buttons.btn-row{ display:flex; flex-wrap:wrap; gap:16px; margin-top:36px; }
.wp-block-button .wp-block-button__link{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  min-height:56px; padding:0 32px; font-size:16px; font-weight:700; line-height:1.4;
  text-align:center; border-radius:var(--radius-pill);
  background:var(--color-accent); color:#fff;
  transition:transform .18s ease, box-shadow .18s ease, background-color .18s ease, color .18s ease;
}
.wp-block-button.is-style-seed-primary .wp-block-button__link{
  background:var(--color-accent); color:#fff; border-radius:var(--radius-lg);
  padding:0 40px; box-shadow:0 8px 20px rgba(232,117,42,.28);
}
.wp-block-button.is-style-seed-primary .wp-block-button__link:hover{ transform:translateY(3px); box-shadow:0 3px 10px rgba(232,117,42,.28); }
.wp-block-button.is-style-seed-secondary .wp-block-button__link{
  background:var(--color-surface); color:var(--color-ink);
  border:1px solid var(--color-border); border-radius:var(--radius-pill); padding:0 40px;
}
.wp-block-button.is-style-seed-secondary .wp-block-button__link:hover{ transform:translateY(3px); }
.wp-block-button.is-style-seed-ghost .wp-block-button__link{
  background:transparent; color:#fff; border:1px solid rgba(255,255,255,.7);
  border-radius:var(--radius-pill); padding:0 40px;
}
.wp-block-button.is-style-seed-ghost .wp-block-button__link:hover{ background:rgba(255,255,255,.12); transform:translateY(3px); }
.wp-block-button.is-style-seed-white .wp-block-button__link{
  background:var(--color-surface); color:var(--color-ink); border-radius:var(--radius-pill); padding:0 40px;
}
.wp-block-button.is-style-seed-white .wp-block-button__link:hover{ transform:translateY(3px); }
.band--primary .is-style-seed-secondary .wp-block-button__link,
.band--secondary .is-style-seed-secondary .wp-block-button__link,
.band--tertiary .is-style-seed-secondary .wp-block-button__link,
.band--accent .is-style-seed-secondary .wp-block-button__link{ border-color:transparent; }

/* 4. 左固定サイドメニュー（トップのみ・1024px以上） */
.sidenav{ display:none; }
@media (min-width:1024px){
  .sidenav{
    display:flex; flex-direction:column; align-items:center; justify-content:space-between;
    position:fixed; inset:0 auto 0 0; z-index:60; width:var(--side-w); padding:26px 0;
    background:var(--color-surface); border-right:1px solid var(--color-border);
    overflow-y:auto; overscroll-behavior:contain; margin:0 !important;
  }
  .admin-bar .sidenav{ top:32px; }
  .sidenav p{ margin:0; }
  .sidenav__logo{
    writing-mode:vertical-rl; text-orientation:mixed; white-space:nowrap;
    font-weight:700; letter-spacing:.22em; font-size:12px; color:var(--color-primary);
    display:flex; align-items:center; gap:12px; flex:0 0 auto;
  }
  .sidenav__mark{ writing-mode:horizontal-tb; font-size:21px; letter-spacing:.12em; color:var(--color-tertiary); }
  .sidenav__list{ display:flex; flex-direction:column; gap:13px; align-items:center; flex:0 0 auto; padding:16px 0; }
  .sidenav__list a{
    writing-mode:vertical-rl; text-orientation:mixed; white-space:nowrap;
    font-size:11.5px; letter-spacing:.16em; font-weight:700;
    color:var(--color-ink); opacity:.6; transition:opacity .2s ease, color .2s ease;
  }
  .sidenav__list a:hover, .sidenav__list a.is-active{ opacity:1; color:var(--color-primary); }
  .sidenav__foot{ font-size:10px; letter-spacing:.24em; color:#9a9a9a; flex:0 0 auto; }
}
@media (min-width:1024px) and (max-height:920px){
  .sidenav__name{ display:none; }
  .sidenav__list{ gap:10px; padding:10px 0; }
  .sidenav__list a{ font-size:11px; letter-spacing:.12em; }
}

/* 5. ヘッダー */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:70; height:var(--header-h);
  display:flex; align-items:center; transition:background-color .25s ease, box-shadow .25s ease;
  margin:0 !important;
}
.admin-bar .site-header{ top:32px; }
@media (max-width:782px){ .admin-bar .site-header{ top:46px; } }
body:not(.home) .site-header,
.site-header.is-stuck{ background:rgba(255,255,255,.94); box-shadow:0 2px 18px rgba(0,0,0,.08); }
.site-header__inner{
  width:100%; max-width:var(--content-max); margin-inline:auto; padding-inline:var(--gutter);
  display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:nowrap;
}
.brand{ margin:0; }
.brand a{ display:flex; align-items:baseline; gap:10px; }
.brand__mark{ font-size:22px; font-weight:700; letter-spacing:.12em; color:var(--color-primary); }
.brand__name{ font-size:11.5px; font-weight:700; letter-spacing:.04em; color:var(--color-ink); opacity:.8; }
@media (max-width:520px){ .brand__name{ display:none; } }
.gnav-wrap{ display:flex; align-items:center; gap:26px; }
.gnav.wp-block-navigation{ font-size:14px; font-weight:700; gap:26px; }
.gnav .wp-block-navigation-item__content:hover{ color:var(--color-primary); }
.header-cta{ display:none !important; margin:0 !important; }
@media (min-width:900px){
  .header-cta{ display:flex !important; }
  .header-cta .wp-block-button__link{ min-height:48px; font-size:14px; padding:0 26px !important; }
}
/* SP：右下フローティングのメニューボタン（コアのナビのオーバーレイを使う） */
@media (max-width:899px){
  .gnav .wp-block-navigation__responsive-container-open{
    position:fixed; right:20px; bottom:20px; z-index:120;
    width:60px; height:60px; border-radius:50%;
    background:var(--color-tertiary); color:#fff; display:flex; align-items:center; justify-content:center;
    border:2px solid #fff; box-shadow:0 10px 24px rgba(12,43,78,.32);
  }
  .gnav .wp-block-navigation__responsive-container-open svg{ width:28px; height:28px; fill:#fff; }
}
@media (min-width:900px){
  .gnav .wp-block-navigation__responsive-container-open{ display:none !important; }
  .gnav .wp-block-navigation__responsive-container:not(.is-menu-open){ display:block !important; position:static; width:auto; background:transparent; }
}
.gnav .wp-block-navigation__responsive-container.is-menu-open{
  background:var(--color-tertiary) !important; color:#fff !important;
  padding:40px var(--gutter) 120px;
}
.gnav .is-menu-open .wp-block-navigation__responsive-container-content{ align-items:stretch !important; }
.gnav .is-menu-open .wp-block-navigation__container{ align-items:stretch !important; gap:0 !important; width:100%; }
.gnav .is-menu-open .wp-block-navigation-item{ width:100%; }
.gnav .is-menu-open .wp-block-navigation-item__content{
  display:block; padding:14px 0 !important; font-size:20px; font-weight:700;
  border-bottom:1px solid rgba(255,255,255,.18); width:100%;
}
.gnav .is-menu-open .wp-block-navigation__responsive-container-close svg{ fill:#fff; }

/* 6. セクション帯＋波形 */
.band{
  position:relative; margin:0 !important;
  padding-top:calc(var(--wave-h) + var(--section-gap) * .5);
  padding-bottom:calc(var(--section-gap) + var(--wave-h));
}
.band + .band, .band + .wp-block-group.band{ margin-top:calc(-1 * var(--wave-h)) !important; }
.band::before{
  content:""; position:absolute; top:0; left:0; width:100%; height:var(--wave-h); z-index:1;
  pointer-events:none; background-repeat:no-repeat; background-size:100% 100%;
}
.band.hero::before{ display:none; }
.band--bg{ background:var(--color-bg); }
.band--surface{ background:var(--color-surface); }
.band--bg2{ background:var(--color-bg-2); }
.band--primary{ background:var(--color-primary); color:#fff; }
.band--secondary{ background:var(--color-secondary); color:#fff; }
.band--tertiary{ background:var(--color-tertiary); color:#fff; }
.band--accent{ background:var(--color-accent); color:#fff; }
/* 波の色＝直前の帯の色（形は2種を交互に） */
.wave-a-bg::before{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 180' preserveAspectRatio='none'%3E%3Cpath fill='%23EFEEEC' d='M0,0 H1440 V72 C1320,142 1180,170 1010,150 C840,130 700,62 520,50 C362,39 152,86 0,134 Z'/%3E%3C/svg%3E"); }
.wave-b-surface::before{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 180' preserveAspectRatio='none'%3E%3Cpath fill='%23FFFFFF' d='M0,0 H1440 V130 C1292,86 1130,40 950,56 C772,72 640,142 458,152 C300,161 132,122 0,64 Z'/%3E%3C/svg%3E"); }
.wave-a-primary::before{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 180' preserveAspectRatio='none'%3E%3Cpath fill='%231A5999' d='M0,0 H1440 V96 C1312,42 1170,24 1000,62 C830,100 690,168 500,160 C332,153 152,110 0,122 Z'/%3E%3C/svg%3E"); }
.wave-b-secondary::before{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 180' preserveAspectRatio='none'%3E%3Cpath fill='%231967D2' d='M0,0 H1440 V64 C1290,124 1140,164 960,146 C782,128 648,58 466,52 C312,47 148,90 0,140 Z'/%3E%3C/svg%3E"); }
.wave-a-tertiary::before{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 180' preserveAspectRatio='none'%3E%3Cpath fill='%230C2B4E' d='M0,0 H1440 V138 C1288,92 1124,44 944,60 C766,76 636,146 454,154 C298,161 130,120 0,58 Z'/%3E%3C/svg%3E"); }
.wave-b-surface2::before{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 180' preserveAspectRatio='none'%3E%3Cpath fill='%23FFFFFF' d='M0,0 H1440 V88 C1300,148 1150,168 980,142 C806,116 668,50 486,50 C328,50 152,94 0,128 Z'/%3E%3C/svg%3E"); }
.wave-a-bg2::before{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 180' preserveAspectRatio='none'%3E%3Cpath fill='%23E0DEDA' d='M0,0 H1440 V126 C1296,80 1132,38 952,58 C774,78 640,148 458,150 C302,152 136,116 0,68 Z'/%3E%3C/svg%3E"); }

/* 7. キービジュアル */
.hero{ padding-top:calc(var(--header-h) + 56px); }
.hero__sub{ margin-top:32px !important; max-width:40em; font-size:clamp(15px,1.15vw,18px); line-height:2.0; }
ul.hero__tags{ display:flex; flex-wrap:wrap; gap:10px; margin:40px 0 0; padding:0; list-style:none; }
ul.hero__tags li{
  font-size:13px; font-weight:700; letter-spacing:.02em; padding:8px 18px;
  background:var(--color-surface); border:1px solid var(--color-border);
  border-radius:var(--radius-asym); color:var(--color-tertiary); margin:0;
}
.hero__visual{ margin-top:56px !important; border-radius:var(--radius-md); overflow:hidden; }
.hero__scroll{
  margin-top:44px !important; display:inline-flex; align-items:center; gap:12px;
  font-size:12px; font-weight:700; letter-spacing:.24em; color:var(--color-primary);
}
.hero__scroll::after{
  content:""; display:block; width:56px; height:1px;
  background:linear-gradient(90deg, var(--color-accent) 0 40%, var(--color-primary) 40% 100%);
  background-size:200% 100%; animation:scrollline 2.4s ease-in-out infinite;
}
@keyframes scrollline{ 0%{background-position:100% 0;} 100%{background-position:-100% 0;} }

/* 写真の置き場（画像が入るまでのグレーの枠） */
.ph{
  display:flex; align-items:center; justify-content:center; text-align:center;
  background:#E4E3E0; color:#8d8d8d; font-weight:700; font-size:clamp(14px,1.4vw,20px);
  aspect-ratio:600/360; padding:16px; margin:0;
}
.ph--wide{ aspect-ratio:1200/520; font-size:clamp(16px,2vw,28px); }
.ph--portrait{ aspect-ratio:600/720; }
.ph p{ margin:0; }
.hero__visual img, .card img, .ceo__photo img{ display:block; width:100%; object-fit:cover; }

/* 8. メッセージ */
.msg-card{
  background:var(--color-surface); border-radius:var(--radius-md);
  padding:clamp(28px,4.5vw,72px); box-shadow:0 20px 60px rgba(23,23,23,.06);
}
.msg-card__body{ margin-top:32px !important; font-size:clamp(15px,1.05vw,17px); line-height:2.1; max-width:56em; }
.msg-card__body p{ margin-bottom:1.6em; }

/* 9. サービス（2本柱） */
.biz{ margin-top:64px !important; }
.biz + .biz{ margin-top:80px !important; }
.biz__head{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:16px 32px; }
.biz__en{ font-size:13px; font-weight:700; letter-spacing:.18em; opacity:.8; margin:0 0 6px; }
.biz__title{ font-size:clamp(24px,2.3vw,34px) !important; line-height:1.5; }
.biz__lead{ margin-top:10px !important; font-size:clamp(14.5px,1.05vw,16px); line-height:1.95; max-width:40em; opacity:.95; }
.biz__head .wp-block-buttons{ margin:0; }
.cards{
  display:grid !important; gap:24px; margin-top:32px !important;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
}
.card{
  background:var(--color-surface); color:var(--color-ink);
  border-radius:var(--radius-md); overflow:hidden;
  display:flex; flex-direction:column; transition:transform .25s ease, box-shadow .25s ease;
  margin:0 !important; position:relative;
}
.card:hover{ transform:translateY(-6px); box-shadow:0 18px 40px rgba(0,0,0,.14); }
.card__body{ padding:26px 26px 30px; display:flex; flex-direction:column; flex:1; }
.card__no{ display:inline-block; font-size:12px; font-weight:700; letter-spacing:.14em; color:var(--color-primary); margin:0 0 10px; }
.card__title{ font-size:19px !important; line-height:1.6; font-weight:700; }
.card__title a::after{ content:""; position:absolute; inset:0; }
.card__text{ margin-top:12px !important; font-size:14.5px; line-height:1.95; color:#3d3d3d; flex:1; }
.card__more{ margin-top:16px !important; font-size:13px; font-weight:700; color:var(--color-primary); letter-spacing:.04em; }
.card__more::after{ content:" →"; }
.card--ext .card__more::after{ content:" ↗"; }

.dl-banner{
  margin-top:72px !important; padding:clamp(26px,3.6vw,48px);
  background:var(--color-surface); color:var(--color-ink); border-radius:var(--radius-asym);
  display:flex !important; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:28px;
}
.dl-banner__title{ font-size:clamp(19px,1.7vw,26px) !important; line-height:1.6; font-weight:700; }
.dl-banner__text{ margin-top:10px !important; font-size:14.5px; color:#3d3d3d; }
.dl-banner .wp-block-buttons{ margin:0; }

/* 10. 支援の流れ */
.steps{ display:grid !important; gap:24px; margin-top:56px !important; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); }
.step{
  background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.32);
  border-radius:var(--radius-md); padding:34px 28px 36px; margin:0 !important;
}
.step__no{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:92px; height:34px; padding:0 16px; margin:0 0 20px;
  background:var(--color-surface); color:var(--color-secondary); border-radius:var(--radius-asym);
  font-size:13px; font-weight:700; letter-spacing:.12em;
}
.step__title{ font-size:21px !important; line-height:1.6; font-weight:700; }
.step__text{ margin-top:14px !important; font-size:14.5px; line-height:1.95; color:rgba(255,255,255,.9); }

/* 11. 支援実績カルーセル */
.carousel{ position:relative; margin-top:48px !important; }
.carousel__track{
  display:flex !important; flex-wrap:nowrap !important; gap:24px; overflow-x:auto;
  overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scroll-behavior:smooth;
  padding:4px 4px 24px; scrollbar-width:thin; scrollbar-color:rgba(255,255,255,.5) transparent;
}
.carousel__track::-webkit-scrollbar{ height:6px; }
.carousel__track::-webkit-scrollbar-thumb{ background:rgba(255,255,255,.45); border-radius:99px; }
.work{
  flex:0 0 min(88%,380px); scroll-snap-align:start; margin:0 !important;
  background:var(--color-surface); color:var(--color-ink); border-radius:var(--radius-md); overflow:hidden;
  display:flex; flex-direction:column;
}
.work .ph{ aspect-ratio:600/340; }
.work__body{ padding:24px 24px 28px; }
.work__tag{
  display:inline-block; margin:0 0 14px; padding:5px 14px; background:var(--color-tertiary); color:#fff;
  border-radius:var(--radius-asym); font-size:12px; font-weight:700; letter-spacing:.06em;
}
.work__title{ font-size:19px !important; line-height:1.65; font-weight:700; }
.work__text{ margin-top:12px !important; font-size:14px; line-height:1.9; color:#3d3d3d; }
.work__num{ margin-top:14px !important; font-size:clamp(20px,1.6vw,24px); font-weight:700; color:var(--color-primary); line-height:1.4; }
.works-note{ margin-top:8px !important; font-size:12.5px; opacity:.8; }
.carousel__ctrl{ display:flex; gap:12px; margin-top:8px; }
.carousel__btn{
  width:52px; height:52px; border-radius:50%; border:1px solid rgba(255,255,255,.6); color:#fff;
  background:none; cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition:background-color .2s ease;
}
.carousel__btn:hover{ background:rgba(255,255,255,.16); }
.carousel__btn:disabled{ opacity:.32; cursor:default; }

/* 12. 代表メッセージ */
.ceo{ margin-top:40px !important; gap:clamp(28px,4vw,64px) !important; align-items:flex-start; }
.ceo__photo{ border-radius:var(--radius-asym); overflow:hidden; }
@media (min-width:782px){ .ceo > .wp-block-column:first-child{ flex:0 0 min(380px,34%) !important; } }
.ceo__text{ margin-top:28px !important; font-size:clamp(15px,1.02vw,16.5px); line-height:2.1; }
.ceo__text p{ margin-bottom:1.6em; }
.ceo__sign{ margin-top:32px !important; font-size:14.5px; font-weight:700; letter-spacing:.02em; }

/* 13. 料金の目安 */
.price-list{ display:grid !important; gap:20px; margin-top:48px !important; }
.price{
  background:var(--color-surface); border-radius:var(--radius-md);
  padding:28px clamp(22px,3vw,40px); display:grid !important; gap:8px 32px; align-items:center;
  grid-template-columns:1fr; margin:0 !important;
}
@media (min-width:820px){ .price{ grid-template-columns:minmax(200px,1fr) 2fr minmax(180px,auto); } }
.price > *{ margin:0 !important; }
.price__name{ font-size:18px !important; font-weight:700; line-height:1.6; }
.price__desc{ font-size:14.5px; color:#3d3d3d; line-height:1.9; }
.price__fee{ font-size:clamp(20px,1.7vw,26px); font-weight:700; color:var(--color-primary); line-height:1.4; }
.price__fee small{ font-size:14px; }
@media (min-width:820px){ .price__fee{ text-align:right; } }
.price-note{ margin-top:26px !important; font-size:13.5px; line-height:1.95; color:#4a4a4a; }

/* 14. お問い合わせ */
.contact__text{ margin-top:16px !important; font-size:clamp(16px,1.3vw,20px); line-height:2.0; max-width:44em; }
.contact__meta{ margin-top:36px !important; font-size:14px; letter-spacing:.02em; opacity:.92; }

/* 15. フッター */
.site-footer{
  position:relative; background:var(--color-surface); margin:0 !important;
  padding-top:calc(var(--wave-h) + var(--section-gap) * .4); padding-bottom:40px;
}
.home .site-footer{ margin-top:0 !important; }
.home .site-footer::before{ display:none;
  content:""; position:absolute; top:0; left:0; width:100%; height:var(--wave-h); pointer-events:none;
  background:no-repeat 0 0/100% 100% url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 180' preserveAspectRatio='none'%3E%3Cpath fill='%23E8752A' d='M0,0 H1440 V70 C1298,130 1146,166 966,144 C788,122 650,54 468,52 C314,50 146,92 0,136 Z'/%3E%3C/svg%3E");
}
body:not(.home) .site-footer{ padding-top:72px; border-top:1px solid var(--color-border); }
.footer-grid{ gap:40px !important; }
.footer-brand__mark{ font-size:30px; font-weight:700; letter-spacing:.14em; color:var(--color-primary); margin:0; line-height:1.4; }
.footer-brand__name{ margin-top:6px !important; font-size:14px; font-weight:700; }
.footer-brand__addr{ margin-top:16px !important; font-size:13.5px; line-height:1.95; color:#4a4a4a; }
.footer-col__head{ font-size:13px; font-weight:700; letter-spacing:.14em; color:var(--color-primary); margin:0 0 14px; }
.footer-col ul{ margin:0; padding:0; list-style:none; }
.footer-col li{ margin-bottom:10px; font-size:14px; }
.footer-col a:hover{ color:var(--color-primary); }
.copyright{ margin-top:48px !important; padding-top:24px; border-top:1px solid var(--color-border); font-size:12.5px; color:#6a6a6a; }

/* 16. 吹き出し */
.bubble{
  position:fixed; right:20px; bottom:96px; z-index:100; max-width:min(320px,calc(100vw - 40px));
  background:var(--color-surface); color:var(--color-ink); border:1px solid var(--color-border);
  border-radius:24px 24px 6px 24px; padding:18px 44px 18px 22px; box-shadow:0 14px 34px rgba(0,0,0,.16);
  font-size:14px; line-height:1.8; font-weight:700;
  transition:opacity .35s ease, transform .35s ease, visibility .35s;
}
@media (min-width:900px){ .bubble{ right:28px; bottom:28px; } }
.bubble.is-hidden{ opacity:0; transform:translateY(12px); visibility:hidden; }
.bubble__close{
  position:absolute; top:8px; right:8px; width:28px; height:28px; border-radius:50%; border:0; background:none;
  display:flex; align-items:center; justify-content:center; font-size:16px; line-height:1; color:#6a6a6a; cursor:pointer;
}
.bubble__close:hover{ background:var(--color-bg); }

/* 17. 下層ページ */
.page-main{ padding-top:calc(var(--header-h) + 56px); padding-bottom:96px; min-height:60vh; }
.page-head{ margin-bottom:40px !important; }
.page-head .wp-block-post-title{ font-size:clamp(28px,3vw,44px); line-height:1.5; }
.page-body{ background:var(--color-surface); border-radius:var(--radius-md); padding:clamp(24px,4vw,56px); }
.page-body > * + *{ margin-top:1.2em; }
.page-body h2{ font-size:clamp(20px,1.8vw,26px); margin-top:2em; }
.page-body h3{ font-size:clamp(17px,1.4vw,20px); margin-top:1.6em; }
.page-body a{ color:var(--color-primary); text-decoration:underline; }

/* 18. フェードイン（JSが動くときだけ） */
.js-reveal .reveal{ opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .7s ease; }
.js-reveal .reveal.is-visible{ opacity:1; transform:none; }
.editor-styles-wrapper .reveal{ opacity:1 !important; transform:none !important; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
  .js-reveal .reveal{ opacity:1 !important; transform:none !important; }
}

/* 19. エディタ内の見え方（固定ヘッダー・波を編集の邪魔にしない） */
.editor-styles-wrapper .band + .band{ margin-top:0 !important; }
.editor-styles-wrapper .band{ padding-top:calc(var(--section-gap) * .5); padding-bottom:calc(var(--section-gap) * .5); }
.editor-styles-wrapper .band::before{ display:none; }
.editor-styles-wrapper .hero{ padding-top:56px; }

/* 20. 補足 */
@media (min-width:900px){ .gnav .gnav__sp-only{ display:none !important; } }
.biz__intro > *{ margin:0; }
.biz .cards .card__no{ color:var(--color-primary); }
.front-main{ overflow-x:clip; }
@media (min-width:1024px){ .biz--dx .cards{ grid-template-columns:repeat(3,1fr); } .biz--promo .cards{ grid-template-columns:repeat(4,1fr); } }
@media (max-width:599px){ .card__body{ padding:22px 22px 24px; } .cards{ gap:16px; } }

/* 21. 記事（お知らせ・コラム） */
.single-eyecatch{ margin:0 0 32px !important; border-radius:var(--radius-md); overflow:hidden; }
.single-eyecatch img{ display:block; width:100%; height:auto; }
.page-head .wp-block-post-date{ font-size:13px; color:#6a6a6a; margin-bottom:6px; }
.page-head .wp-block-post-terms a{ display:inline-block; font-size:12px; font-weight:700; padding:3px 12px; background:var(--color-tertiary); color:#fff; border-radius:var(--radius-asym); margin-top:10px; }
.page-body img{ max-width:100%; height:auto; border-radius:8px; }
.page-body .wp-block-table{ overflow-x:auto; }
.page-body table{ border-collapse:collapse; width:100%; font-size:14.5px; }
.page-body th,.page-body td{ border:1px solid var(--color-border); padding:10px 12px; vertical-align:top; text-align:left; }
.page-body th{ background:var(--color-bg); }
.page-body blockquote{ margin:1.2em 0; padding:12px 20px; border-left:4px solid var(--color-primary); background:var(--color-bg); }
.page-body ul,.page-body ol{ padding-left:1.4em; }
.wp-block-query .page-body{ margin-bottom:16px; }
.wp-block-query .wp-block-post-title{ font-size:clamp(17px,1.4vw,20px); margin:.3em 0; }
.wp-block-query .wp-block-post-title a{ text-decoration:none; color:var(--color-ink); }
.wp-block-query .wp-block-post-title a:hover{ color:var(--color-primary); }
.wp-block-query-title.page-head{ font-size:clamp(28px,3vw,44px); line-height:1.5; }

@media (max-width:599px){ .page-body .wp-block-button__link{ padding:0 22px !important; font-size:15px; } }

/* ===== 0.2.0 トップ（パネル型レイアウト） ===== */
:root{ --panel-r:24px; --panel-m:clamp(12px,2vw,32px); --light:#EAF1F8; }
body.home{ background:#fff; }
.home .site-header{ background:rgba(255,255,255,.96); box-shadow:none; }
.home .site-header.is-stuck{ box-shadow:0 2px 18px rgba(0,0,0,.06); }
.front-main{ padding-top:var(--header-h); }
.wp-block-button.is-style-seed-navy .wp-block-button__link{ background:var(--color-tertiary); color:#fff; border-radius:var(--radius-pill); padding:0 40px; }
.wp-block-button.is-style-seed-navy .wp-block-button__link:hover{ background:var(--color-primary); }
.btn-row--center{ justify-content:center; }
/* ヒーロー：角丸の写真を横に並べ、左下にコピー */
.hero2{ position:relative; margin:0 !important; padding:24px 0 56px; overflow:hidden; }
.strip{ display:flex !important; gap:16px; padding:0 var(--panel-m); }
.strip .wp-block-image{ margin:0; flex:1 1 0; min-width:0; height:clamp(300px,42vw,620px); border-radius:var(--panel-r); overflow:hidden; }
.strip .wp-block-image img{ width:100%; height:100%; object-fit:cover; display:block; }
@media (max-width:781px){ .strip .wp-block-image:nth-child(n+4){ display:none; } .strip{ gap:8px; } }
.hero2__copy{ position:absolute; left:0; bottom:80px; background:var(--color-tertiary); color:#fff;
  padding:clamp(20px,3vw,40px) clamp(24px,4vw,56px); border-radius:0 var(--panel-r) var(--panel-r) 0; max-width:min(92vw,640px); margin:0 !important; }
.hero2__title{ font-size:clamp(24px,3.2vw,46px) !important; line-height:1.45; letter-spacing:.04em; }
.hero2__sub{ margin-top:14px !important; font-size:clamp(14px,1.1vw,17px); opacity:.92; }
/* パネル */
.panel{ margin:0 var(--panel-m) 40px !important; border-radius:var(--panel-r); padding:clamp(56px,7vw,110px) 0; }
.panel--navy{ background:var(--color-tertiary); color:#fff; }
.panel--light{ background:var(--light); }
.panel--plain{ background:#fff; }
.sec-en{ font-size:clamp(36px,4.6vw,64px); font-weight:700; letter-spacing:.06em; line-height:1.15; margin:0; font-family:"Helvetica Neue",Arial,var(--font-family); }
.panel--navy .sec-en{ color:#fff; } .panel--light .sec-en,.panel--plain .sec-en,.contact2 .sec-en{ color:var(--color-primary); }
.sec-ja{ font-size:14px; font-weight:700; letter-spacing:.12em; margin:10px 0 0; padding-top:10px; position:relative; opacity:.85; }
.sec-ja::before{ content:""; position:absolute; top:0; left:0; width:32px; height:2px; background:currentColor; }
.sec-title{ font-size:clamp(22px,2.4vw,34px) !important; line-height:1.6; letter-spacing:.04em; margin-top:28px !important; }
.sec-text{ margin-top:18px !important; font-size:15.5px; line-height:2; }
.sec-head{ display:grid !important; grid-template-columns:1fr; gap:24px 56px; align-items:end; margin-bottom:48px !important; }
@media (min-width:900px){ .sec-head{ grid-template-columns:minmax(0,5fr) minmax(0,6fr); } }
.sec-head__text{ font-size:15.5px; line-height:2; margin:0; }
/* About */
.about2{ gap:clamp(32px,5vw,80px) !important; align-items:center !important; }
.gallery{ display:grid !important; grid-template-columns:1fr 1fr; gap:14px; }
.gallery .wp-block-image{ margin:0; border-radius:16px; overflow:hidden; aspect-ratio:4/3; }
.gallery .wp-block-image:nth-child(2n){ transform:translateY(28px); }
.gallery img{ width:100%; height:100%; object-fit:cover; display:block; }
/* Business */
.cards2{ display:grid !important; grid-template-columns:1fr; gap:28px; }
@media (min-width:782px){ .cards2{ grid-template-columns:1fr 1fr; } }
.card2{ position:relative; margin:0 !important; }
.card2__img{ margin:0 0 18px !important; border-radius:18px; overflow:hidden; aspect-ratio:16/9; }
.card2__img img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s ease; }
.card2:hover .card2__img img{ transform:scale(1.04); }
.card2__title{ font-size:22px !important; color:var(--color-tertiary); }
.card2__title a::after{ content:""; position:absolute; inset:0; }
.card2__title a::before{ content:"→"; float:right; color:var(--color-primary); }
.card2__text{ margin-top:10px !important; font-size:14.5px; line-height:1.95; color:#3d3d3d; }
.minis{ display:grid !important; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:12px; margin-top:44px !important; }
.mini{ position:relative; background:#fff; border-radius:14px; padding:16px 18px; margin:0 !important; transition:box-shadow .2s ease; }
.mini:hover{ box-shadow:0 8px 24px rgba(12,43,78,.12); }
.mini__title{ font-size:15px !important; color:var(--color-tertiary); line-height:1.6; }
.mini__title a::after{ content:""; position:absolute; inset:0; }
.mini__text{ margin-top:4px !important; font-size:13px; color:#555; }
.panel .btn-row{ margin-top:48px; }
/* News */
.news2 .wp-block-post-template{ list-style:none; margin:0; padding:0; border-top:1px solid var(--color-border); }
.news2__item{ display:grid !important; grid-template-columns:110px auto 1fr; gap:6px 20px; align-items:center; padding:22px 4px; border-bottom:1px solid var(--color-border); }
@media (max-width:700px){ .news2__item{ grid-template-columns:auto 1fr; } .news2__item .wp-block-post-title{ grid-column:1/-1; } }
.news2__item .wp-block-post-date{ font-size:14px; color:#666; }
.news2__item .wp-block-post-terms a{ display:inline-block; font-size:12px; font-weight:700; padding:3px 12px; border:1px solid var(--color-primary); color:var(--color-primary); border-radius:var(--radius-pill); }
.news2__item .wp-block-post-title{ font-size:16px; margin:0; font-weight:700; }
.news2__item .wp-block-post-title a:hover{ color:var(--color-primary); }
/* Message */
.msg2{ gap:clamp(32px,5vw,80px) !important; align-items:center !important; }
.msg2__img{ margin:0 !important; border-radius:var(--panel-r); overflow:hidden; aspect-ratio:4/5; }
.msg2__img img{ width:100%; height:100%; object-fit:cover; display:block; }
.msg2__sign{ margin-top:28px !important; font-weight:700; }
/* Company */
.company2__cols{ gap:clamp(24px,5vw,80px) !important; }
@media (min-width:782px){ .company2__head{ flex:0 0 32% !important; } }
.company2 table{ border-collapse:collapse; width:100%; }
.company2 th,.company2 td{ text-align:left; padding:18px 4px; border-bottom:1px solid rgba(255,255,255,.25); font-size:15px; vertical-align:top; }
.company2 th{ width:8em; font-weight:700; opacity:.85; }
/* Contact */
.contact2{ margin:0 var(--panel-m) 40px !important; padding:clamp(56px,7vw,100px) 0; text-align:center; border-radius:var(--panel-r); background:linear-gradient(135deg,#fff 0%,var(--light) 100%); border:1px solid #dbe6f1; }
.contact2 .sec-text{ max-width:40em; margin-inline:auto; }
/* フェードインはパネル単位で控えめに */
.js-reveal .panel.reveal,.js-reveal .contact2.reveal{ transform:translateY(16px); }
/* 0.2.1 調整 */
.company2 table,.company2 th,.company2 td{ border:0 !important; }
.company2 th,.company2 td{ border-bottom:1px solid rgba(255,255,255,.25) !important; }
.company2 tr:first-child th,.company2 tr:first-child td{ border-top:1px solid rgba(255,255,255,.25) !important; }
.home .site-footer{ padding-top:72px !important; }
@media (max-width:781px){
  .hero2{ padding:12px 0 8px; }
  .strip .wp-block-image{ height:46vw; }
  .hero2__copy{ position:relative; bottom:auto; margin:-28px 12px 0 !important; border-radius:var(--panel-r); max-width:none; }
  .minis{ grid-template-columns:1fr 1fr; gap:8px; }
  .mini{ padding:12px 12px; }
  .mini__title{ font-size:13.5px !important; }
  .mini__text{ display:none; }
  .company2 th{ width:5.5em; }
}
/* 0.2.2 調整 */
.minis-wrap{ margin-top:44px !important; }
.minis__label{ font-size:15px !important; color:var(--color-primary); letter-spacing:.08em; margin:28px 0 12px !important; }
.minis-wrap .minis{ margin-top:0 !important; }
.hero2__btn{ margin-top:22px !important; }
.hero2__btn .wp-block-button__link{ min-height:48px; }
@media (max-width:899px){
  .header-cta{ display:flex !important; }
  .header-cta .wp-block-button__link{ min-height:38px; font-size:12.5px; padding:0 14px !important; box-shadow:none; }
}

/* ===== 0.3.0 下層ページ（トップと同じパネル型）・実績・タブ ===== */
body:not(.home){ background:#fff; }
body:not(.home) .site-footer{ border-top:0; }
.lmain{ padding-top:var(--header-h); }
.inner--narrow{ max-width:900px; }
/* 見出し帯 */
.phero{ margin:16px var(--panel-m) 0; border-radius:var(--panel-r); background:linear-gradient(135deg,#fff 0%,var(--light) 100%); border:1px solid #dbe6f1; padding:clamp(28px,4vw,48px) 0 clamp(44px,6vw,80px); }
.crumbs ol{ display:flex; flex-wrap:wrap; gap:4px 0; list-style:none; margin:0 0 clamp(28px,4vw,48px); padding:0; font-size:12.5px; color:#5b6573; }
.crumbs li{ display:flex; align-items:center; }
.crumbs li + li::before{ content:"/"; margin:0 10px; opacity:.5; }
.crumbs a:hover{ color:var(--color-primary); text-decoration:underline; }
.crumbs [aria-current]{ max-width:28em; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.phero__en{ font-size:clamp(40px,6vw,84px); font-weight:700; letter-spacing:.05em; line-height:1.1; margin:0; color:var(--color-primary); font-family:"Helvetica Neue",Arial,var(--font-family); }
.phero__title{ font-size:clamp(16px,1.5vw,20px); letter-spacing:.1em; margin:14px 0 0; padding-top:14px; position:relative; color:var(--color-tertiary); line-height:1.6; }
.phero__title::before{ content:""; position:absolute; top:0; left:0; width:32px; height:2px; background:currentColor; }
.phero--post .phero__en{ font-size:clamp(28px,3.4vw,44px); }
.phero--post .phero__title{ font-size:clamp(20px,2.4vw,32px); letter-spacing:.03em; max-width:30em; }
.phero__meta{ display:flex; align-items:center; gap:14px; margin:20px 0 0; font-size:14px; color:#5b6573; }
.phero__badge{ display:inline-block; font-size:12px; font-weight:700; padding:3px 14px; border:1px solid var(--color-primary); color:var(--color-primary); border-radius:var(--radius-pill); }
/* 本文の区画 */
.lbody > :not(.lsec){ max-width:var(--content-max); margin-inline:auto; padding-inline:var(--gutter); }
.lsec{ padding:clamp(56px,7vw,100px) 0; margin:0 !important; }
.lsec--light,.lsec--navy{ margin:0 var(--panel-m) !important; border-radius:var(--panel-r); }
.lsec--light{ background:var(--light); }
.lsec--navy{ background:var(--color-tertiary); color:#fff; }
.lsec--light + .lsec--light,.lsec--navy + .lsec--light,.lsec--light + .lsec--navy{ margin-top:24px !important; }
.lsec--navy .sec-en{ color:#fff; } .lsec .sec-en{ color:var(--color-primary); }
.lsec--navy .sec-title,.lsec--navy .sec-ja{ color:#fff; }
.lsec .sec-title:first-child{ margin-top:0 !important; }
.lsec .sec-head{ margin-bottom:40px !important; }
.lead{ font-size:clamp(16px,1.35vw,19px); line-height:2.1; font-weight:500; max-width:46em; margin:0; }
.lsec .btn-row{ margin-top:40px; }
/* 特長カード */
.feats{ display:grid !important; grid-template-columns:1fr; gap:16px; }
@media (min-width:700px){ .feats{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px){ .feats--3{ grid-template-columns:repeat(3,1fr); } }
.feat{ background:#fff; border-radius:18px; padding:clamp(22px,2.6vw,32px); margin:0 !important; position:relative; }
.lsec:not(.lsec--light):not(.lsec--navy) .feat{ background:var(--light); }
.feat__num{ font-family:"Helvetica Neue",Arial,sans-serif; font-size:13px; font-weight:700; letter-spacing:.14em; color:var(--color-primary); margin:0 0 8px; }
.feat__title{ font-size:18px !important; color:var(--color-tertiary); line-height:1.6; }
.feat__text{ margin-top:10px !important; font-size:14.5px; line-height:1.95; color:#3d3d3d; }
.feat__title a::after{ content:""; position:absolute; inset:0; }
.feat:has(a) { transition:box-shadow .2s ease; } .feat:has(a):hover{ box-shadow:0 10px 28px rgba(12,43,78,.12); }
.feat__title a::before{ content:"→"; float:right; margin-left:12px; color:var(--color-primary); }
.feat__title a[target="_blank"]::before{ content:"↗"; }
/* 流れ */
.steps{ list-style:none; margin:0; padding:0; counter-reset:step; display:grid; gap:14px; }
.steps li{ counter-increment:step; position:relative; background:#fff; border-radius:18px; padding:22px 24px 22px 84px; font-size:15px; line-height:1.9; }
.steps li::before{ content:counter(step,decimal-leading-zero); position:absolute; left:22px; top:20px; width:44px; height:44px; border-radius:50%; background:var(--color-tertiary); color:#fff; font-weight:700; font-size:14px; display:flex; align-items:center; justify-content:center; font-family:"Helvetica Neue",Arial,sans-serif; }
.steps strong{ display:block; color:var(--color-tertiary); font-size:16px; }
/* 文章（記事・規約など） */
.prose > * + *,.entry > * + *{ margin-top:1.2em; }
.prose h2,.entry h2{ font-size:clamp(20px,1.9vw,26px); color:var(--color-tertiary); margin-top:2.2em; padding-bottom:12px; border-bottom:2px solid var(--light); }
.prose h3,.entry h3{ font-size:clamp(17px,1.4vw,20px); color:var(--color-tertiary); margin-top:1.8em; }
.prose a,.entry a{ color:var(--color-primary); text-decoration:underline; }
.prose ul,.prose ol,.entry ul,.entry ol{ padding-left:1.4em; }
.prose li + li,.entry li + li{ margin-top:.4em; }
.entry img{ max-width:100%; height:auto; border-radius:12px; }
.entry .wp-block-table{ overflow-x:auto; }
.entry table,.prose table{ border-collapse:collapse; width:100%; font-size:14.5px; }
.entry th,.entry td,.prose th,.prose td{ border:1px solid var(--color-border); padding:10px 12px; vertical-align:top; text-align:left; }
.entry th,.prose th{ background:var(--light); }
.entry blockquote{ margin:1.2em 0; padding:12px 20px; border-left:4px solid var(--color-primary); background:var(--light); }
.single-eyecatch{ margin:0 0 40px !important; border-radius:var(--panel-r); overflow:hidden; }
.single-eyecatch img{ width:100%; height:auto; display:block; }
.entry-back{ margin-top:64px !important; }
/* 表（協会情報など） */
.dtable table{ border-collapse:collapse; width:100%; }
.dtable th,.dtable td{ text-align:left; padding:18px 4px; border:0; border-bottom:1px solid var(--color-border); font-size:15px; vertical-align:top; }
.dtable tr:first-child th,.dtable tr:first-child td{ border-top:1px solid var(--color-border); }
.dtable th{ width:9em; font-weight:700; color:var(--color-tertiary); }
@media (max-width:600px){ .dtable th{ width:6em; } }
/* 2列（文章＋写真） */
.split{ gap:clamp(28px,5vw,72px) !important; align-items:center !important; }
.split__img{ margin:0 !important; border-radius:var(--panel-r); overflow:hidden; aspect-ratio:4/3; }
.split__img img{ width:100%; height:100%; object-fit:cover; display:block; }
/* 一覧のタブ（ページ切り替え） */
.ltabs ul{ display:flex; flex-wrap:wrap; gap:10px; list-style:none; margin:0 0 36px; padding:0; }
.ltabs a{ display:inline-flex; align-items:center; min-height:44px; padding:0 24px; border-radius:var(--radius-pill); border:1px solid var(--color-tertiary); color:var(--color-tertiary); font-size:14.5px; font-weight:700; background:#fff; transition:background .2s ease,color .2s ease; }
.ltabs a:hover{ background:var(--light); }
.ltabs a.is-current{ background:var(--color-tertiary); color:#fff; }
.news2 .news2__item .wp-block-post-title{ font-size:16px; }
.pager{ margin-top:40px; justify-content:center; gap:8px; font-size:14px; }
.pager .page-numbers{ display:inline-flex; min-width:40px; height:40px; align-items:center; justify-content:center; border-radius:50%; }
.pager .page-numbers.current{ background:var(--color-tertiary); color:#fff; }
/* 実績カード */
.cases__grid{ display:grid !important; grid-template-columns:1fr; gap:36px 28px; list-style:none; margin:0; padding:0; }
@media (min-width:700px){ .cases__grid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px){ .cases__grid{ grid-template-columns:repeat(3,1fr); } }
.case-card{ position:relative; margin:0 !important; }
.case-card__img{ margin:0 0 16px !important; border-radius:18px; overflow:hidden; background:var(--light); }
.case-card__img img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s ease; }
.case-card:hover .case-card__img img{ transform:scale(1.04); }
.case-card__cat a{ display:inline-block; font-size:12px; font-weight:700; padding:2px 12px; border-radius:var(--radius-pill); background:var(--color-tertiary); color:#fff; position:relative; z-index:2; }
.case-card__title{ font-size:17px !important; line-height:1.7; margin-top:10px !important; color:var(--color-tertiary); }
.case-card__title a::after{ content:""; position:absolute; inset:0; }
.case-card__text{ margin-top:8px !important; font-size:14px; line-height:1.9; color:#4a4a4a; }
.case-card__text p{ margin:0; }
.case-card__text .wp-block-post-excerpt__more-link{ display:none; }
/* 成果の強調（実績の本文） */
.result{ background:var(--color-tertiary); color:#fff; border-radius:18px; padding:24px 28px; margin:0 !important; }
.result__label{ font-size:13px; letter-spacing:.14em; opacity:.8; margin:0; }
.result__value{ font-size:clamp(22px,2.4vw,30px) !important; line-height:1.5; margin-top:6px !important; color:#fff; }
.note{ font-size:12.5px; color:#666; line-height:1.8; }
/* トップ：お知らせ／コラムのタブ（JSで切り替え。JSが無い時は両方表示） */
.tabs__nav{ gap:10px !important; margin-bottom:28px !important; }
.tabs__nav .wp-block-button .wp-block-button__link{ min-height:44px; padding:0 28px !important; border-radius:var(--radius-pill); border:1px solid var(--color-tertiary); background:#fff; color:var(--color-tertiary); font-size:15px; font-weight:700; }
.tabs__nav .wp-block-button .wp-block-button__link[aria-selected="true"]{ background:var(--color-tertiary); color:#fff; }
.tabs__panel + .tabs__panel{ margin-top:48px; }
.tabs.is-ready .tabs__panel + .tabs__panel{ margin-top:0; }
.tabs.is-ready .tabs__panel[hidden]{ display:none !important; }
.tabs__panel .btn-row{ margin-top:36px; }
/* SP */
@media (max-width:781px){
  .phero{ margin-top:8px; }
  .crumbs ol{ margin-bottom:24px; }
  .steps li{ padding:20px 20px 20px 74px; }
  .steps li::before{ left:16px; }
  .ltabs a{ padding:0 18px; font-size:13.5px; }
}
@media (min-width:1024px){ .cards2--3{ grid-template-columns:repeat(3,1fr); } .cards2--3 .card2__title{ font-size:19px !important; } }
.lsec .cards2{ margin-top:8px; }
.inq{ align-items:flex-start !important; margin-top:48px !important; }
.inq .sec-title{ font-size:20px !important; margin-bottom:20px !important; }
.inq .feats{ grid-template-columns:1fr; }
.msg2__sign{ margin-top:28px !important; font-weight:700; }
.cta2{ margin-top:40px !important; }
.lsec .steps{ grid-template-columns:1fr !important; max-width:880px; }
.lsec .steps li{ margin:0; }
.lsec:not(.lsec--light):not(.lsec--navy) .steps li{ background:var(--light); }
.sec-title,.phero__title{ text-wrap:pretty; }
.cases-mix{ display:grid !important; grid-template-columns:1fr; gap:36px 28px; }
@media (min-width:1024px){ .cases-mix{ grid-template-columns:1fr 2fr; } .cases-mix .cases--dx .cases__grid{ grid-template-columns:repeat(2,1fr); } .cases-mix .cases--promo .cases__grid{ grid-template-columns:1fr; } }
@media (min-width:700px) and (max-width:1023px){ .cases-mix .cases__grid{ grid-template-columns:repeat(2,1fr); } }
.tabs__nav .wp-block-button .wp-block-button__link{ border-width:1px !important; }

/* ===== 0.4.0 ロゴ・支援先・フォーム ===== */
.brand__logo{ display:block; height:44px; width:auto; }
@media (max-width:520px){ .brand__logo{ height:34px; } }
.footer-brand__logo{ margin:0; } .footer-brand__logo img{ display:block; width:min(320px,100%); height:auto; }
.case-card__client{ margin:6px 0 0 !important; font-size:13px; font-weight:700; color:var(--color-primary); }
.phero__client{ font-weight:700; color:var(--color-tertiary); }
.msg2__img,.split__img--portrait{ aspect-ratio:1/1 !important; }
.msg2__img img{ object-position:50% 20%; }
.hsform{ background:#fff; border-radius:18px; padding:clamp(20px,3vw,36px); }
.lsec:not(.lsec--light) .hsform{ background:var(--light); }
.hsform__note{ margin-top:16px !important; font-size:13px; color:#555; }
.hsform__note a{ color:var(--color-primary); text-decoration:underline; }
.hsform .hs-form-field{ margin-bottom:18px; }
.hsform .hs-form-field > label{ display:block; font-size:14px; font-weight:700; margin-bottom:6px; color:var(--color-tertiary); }
.hsform .hs-form-required{ color:var(--color-accent); margin-left:4px; }
.hsform input[type=text],.hsform input[type=email],.hsform input[type=tel],.hsform textarea{ width:100% !important; box-sizing:border-box; border:1px solid #c9d3df; border-radius:10px; padding:12px 14px; font:inherit; font-size:16px; background:#fff; }
.hsform textarea{ min-height:160px; }
.hsform .hs-error-msgs{ list-style:none; padding:0; margin:6px 0 0; color:#c0392b; font-size:13px; }
.hsform input[type=submit]{ appearance:none; border:0; cursor:pointer; background:var(--color-accent); color:#fff; font-weight:700; font-size:16px; min-height:52px; padding:0 40px; border-radius:var(--radius-pill); }
.hsform input[type=submit]:hover{ filter:brightness(1.05); }
.hsform fieldset{ max-width:none !important; }
.hsform .submitted-message{ font-size:16px; line-height:2; }
.inq__tel{ margin-top:56px !important; } .inq__form .sec-title,.inq__tel .sec-title{ margin-bottom:20px !important; }
.brand__logo{ height:50px; } @media (max-width:520px){ .brand__logo{ height:38px; } } .inq__form{ margin-top:40px !important; }

/* ===== 0.5.0 お役立ち資料・フォーム ===== */
/* 資料の詳細：左に資料の中身、右に申込フォーム（PCは追従） */
.docd{ display:grid !important; grid-template-columns:minmax(0,1fr); gap:40px; align-items:start; }
@media (min-width:1000px){ .docd{ grid-template-columns:minmax(0,1fr) 400px; gap:56px; } .docd__side{ position:sticky; top:calc(var(--header-h) + 24px); } }
.docd__main > * + *{ margin-top:0; }
.doc-vis{ background:linear-gradient(160deg,#F0F4F8,#E4EAF1); border:1px solid #dbe6f1; border-radius:20px; padding:clamp(16px,2.4vw,28px); margin:0 0 32px !important; }
.doc-hero{ margin:0 0 14px !important; } .doc-hero img{ display:block; width:100%; height:auto; border-radius:8px; border:1px solid #C3CEDA; box-shadow:0 12px 26px rgba(7,27,49,.18); background:#fff; }
.doc-shots{ display:grid !important; grid-template-columns:repeat(5,1fr); gap:8px; }
@media (max-width:640px){ .doc-shots{ grid-template-columns:repeat(3,1fr); } .doc-shots .wp-block-image:nth-child(n+4){ display:none; } }
.doc-shots .wp-block-image{ margin:0 !important; } .doc-shots img{ display:block; width:100%; height:auto; border-radius:4px; border:1px solid #C3CEDA; background:#fff; }
.doc-shots-note{ font-size:12.5px; color:#5b6573; margin:10px 0 0 !important; }
.doc-lead{ font-size:clamp(16px,1.3vw,18px); line-height:2; font-weight:500; margin:0 0 10px !important; }
.doc-meta{ font-size:13px; color:#5b6573; margin:0 0 36px !important; }
.doc-h{ font-size:19px !important; color:var(--color-tertiary); border-left:5px solid var(--color-primary); padding-left:12px; margin:36px 0 16px !important; line-height:1.5; }
.doc-list{ list-style:none; margin:0; padding:0; }
.doc-list li{ position:relative; padding-left:26px; margin:0 0 12px; font-size:15.5px; line-height:1.85; }
.doc-list li::before{ content:""; position:absolute; left:2px; top:.62em; width:11px; height:11px; border-radius:3px; border:2px solid var(--color-primary); }
.doc-toc__item{ display:grid !important; grid-template-columns:110px 1fr; gap:4px 16px; border-top:1px solid #dbe3ec; padding:16px 0; margin:0 !important; }
.doc-toc__item:last-child{ border-bottom:1px solid #dbe3ec; }
@media (max-width:640px){ .doc-toc__item{ grid-template-columns:1fr; } }
.doc-toc__no{ font-size:12px; font-weight:700; letter-spacing:.12em; color:var(--color-primary); margin:3px 0 0 !important; font-family:"Helvetica Neue",Arial,sans-serif; }
.doc-toc__t{ font-size:16px; font-weight:700; color:var(--color-tertiary); margin:0 !important; }
.doc-toc__d{ grid-column:2; font-size:13.5px; color:#555; margin:0 !important; }
@media (max-width:640px){ .doc-toc__d{ grid-column:1; } }
.doc-src{ font-size:12px; line-height:1.85; color:#5b6573; margin:28px 0 0 !important; }
/* 右側の申込カード */
.doc-card{ background:#F0F4F8; border:1px solid #dbe6f1; border-radius:20px; padding:28px 26px 26px; }
.doc-card__h{ font-size:20px; font-weight:700; color:var(--color-tertiary); line-height:1.5; margin:0 0 6px !important; }
.doc-card__d{ font-size:14px; line-height:1.8; margin:0 0 20px !important; color:#3d3d3d; }
/* 自前フォーム（HubSpotへ送信） */
.sform{ display:grid; gap:16px; }
.sform__row--2{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.sform__field{ display:flex; flex-direction:column; gap:6px; font-size:14px; font-weight:700; color:var(--color-tertiary); }
.sform__req,.sform__opt{ display:inline-block; margin-left:8px; font-size:11px; font-weight:700; padding:1px 8px; border-radius:4px; vertical-align:1px; }
.sform__req{ background:var(--color-accent); color:#fff; } .sform__opt{ background:#dfe5ec; color:#4a5563; }
.sform input,.sform textarea{ width:100%; box-sizing:border-box; border:1px solid #c3cedA; border-radius:10px; padding:12px 14px; font:inherit; font-size:16px; font-weight:400; color:var(--color-ink); background:#fff; }
.sform input:focus,.sform textarea:focus{ outline:3px solid rgba(26,89,153,.25); border-color:var(--color-primary); }
.sform textarea{ min-height:160px; resize:vertical; }
.sform__submit{ appearance:none; border:0; cursor:pointer; width:100%; min-height:56px; margin-top:4px; border-radius:var(--radius-pill); background:var(--color-accent); color:#fff; font:inherit; font-size:17px; font-weight:700; box-shadow:0 8px 20px rgba(232,117,42,.28); }
.sform__submit:hover{ filter:brightness(1.05); } .sform__submit:disabled{ opacity:.7; cursor:wait; }
.sform__status{ margin:0 !important; font-size:13.5px; color:#c0392b; min-height:0; }
.sform__privacy{ font-size:12px; line-height:1.8; color:#5b6573; margin:18px 0 0 !important; padding-top:14px; border-top:1px solid #dbe3ec; }
.sform__privacy a{ color:var(--color-primary); text-decoration:underline; }
.sform__done{ background:#fff; border-radius:14px; padding:24px; outline:none; }
.sform__done-title{ font-size:18px; font-weight:700; color:var(--color-tertiary); margin:0 0 8px !important; }
.sform__done p{ margin:0; line-height:1.9; }
.sform__pdf{ display:inline-flex; align-items:center; justify-content:center; margin-top:16px; min-height:52px; padding:0 30px; border-radius:var(--radius-pill); background:var(--color-accent); color:#fff !important; font-weight:700; text-decoration:none !important; }
.inq .sform-wrap,.inq__form .sform-wrap{ background:#F0F4F8; border-radius:20px; padding:clamp(22px,3vw,36px); }
/* 資料の一覧 */
.docnav{ display:flex !important; flex-wrap:wrap; gap:10px; margin-top:28px !important; }
.docnav .wp-block-button__link{ min-height:46px; }
.docs__grid{ display:grid !important; grid-template-columns:1fr; gap:36px 28px; list-style:none; margin:0; padding:0; }
@media (min-width:700px){ .docs__grid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px){ .docs__grid{ grid-template-columns:repeat(3,1fr); } }
.doc-item{ position:relative; margin:0 !important; background:#fff; border-radius:18px; padding:16px 16px 22px; border:1px solid #e3e9f0; transition:box-shadow .2s ease; }
.lsec:not(.lsec--light) .doc-item{ background:#F7F9FB; }
.doc-item:hover{ box-shadow:0 12px 28px rgba(12,43,78,.12); }
.doc-item__img{ margin:0 0 14px !important; border-radius:10px; overflow:hidden; border:1px solid #dbe3ec; background:#fff; }
.doc-item__img img{ width:100%; height:100%; object-fit:cover; display:block; }
.doc-item__cat a,.doc-item__cat{ font-size:12px; font-weight:700; color:var(--color-primary); }
.doc-item__cat a{ display:inline-block; padding:2px 12px; border:1px solid var(--color-primary); border-radius:var(--radius-pill); position:relative; z-index:2; }
.doc-item__title{ font-size:17px !important; line-height:1.65; margin:10px 0 0 !important; color:var(--color-tertiary); }
.doc-item__title a::after{ content:""; position:absolute; inset:0; }
.doc-item__text{ margin-top:8px !important; font-size:14px; line-height:1.85; color:#4a4a4a; }
.doc-item__text p{ margin:0; } .doc-item__text .wp-block-post-excerpt__more-link{ display:none; }
.doc-item__more{ margin:14px 0 0 !important; font-size:14px; font-weight:700; color:var(--color-accent); }
.sform__label{ display:block; }
.phero__jump{ display:none; }
@media (max-width:999px){ .phero__jump{ display:inline-flex; align-items:center; min-height:40px; padding:0 18px; border-radius:var(--radius-pill); background:var(--color-accent); color:#fff !important; font-size:13.5px; font-weight:700; } .phero__meta{ flex-wrap:wrap; } }
#docform{ scroll-margin-top:calc(var(--header-h) + 16px); }
/* 0.5.1 調整 */
.docs__grid > li{ display:flex; } .docs__grid .doc-item{ display:flex !important; flex-direction:column; width:100%; }
.docs__grid .doc-item__more{ margin-top:auto !important; padding-top:14px; }
.sform__after{ margin:-4px 0 0 !important; font-size:13px; color:#3f4650; text-align:center; }
.sform__privacy{ font-size:13px; color:#3f4650; }
.phero__title,.sec-title,.doc-item__title{ word-break:auto-phrase; }
@media (max-width:640px){ .crumbs li[aria-current]{ display:none; } .crumbs li:nth-last-child(2)::after{ content:""; } }
.sform .sform__privacy{ margin:4px 0 0 !important; padding-top:0; border-top:0; }
.doc-card__h{ word-break:auto-phrase; }

/* =========================================================
 * 0.6.0 コラム：目次・見出し・太字・表・枠・カテゴリー・関連記事
 * ========================================================= */
.is-column .entry{ font-size:16.5px; line-height:2; }
.is-column .entry p{ margin:0; }
.is-column .entry > * + *{ margin-top:1.3em; }
/* 見出し：大見出しは帯、小見出しは左の線 */
.is-column .entry h2{ margin-top:2.6em !important; padding:16px 20px; border:0; border-radius:10px; background:var(--color-tertiary); color:#fff; font-size:clamp(19px,1.8vw,23px); line-height:1.55; }
.is-column .entry h3{ margin-top:2.2em !important; padding:10px 0 10px 16px; border-left:5px solid var(--color-primary); border-bottom:1px solid #dbe6f1; color:var(--color-tertiary); font-size:clamp(17px,1.45vw,19.5px); line-height:1.6; }
.is-column .entry h4{ margin-top:1.8em !important; font-size:17px; color:var(--color-tertiary); }
.is-column .entry h4::before{ content:""; display:inline-block; width:8px; height:8px; margin-right:10px; border-radius:50%; background:var(--color-accent); vertical-align:middle; }
.is-column .entry h2 + *,.is-column .entry h3 + *{ margin-top:1em; }
.is-column .entry h2,.is-column .entry h3{ scroll-margin-top:96px; }
/* 太字：マーカーで目に入るように */
.is-column .entry strong,.is-column .entry b{ font-weight:700; color:#0f1d2e; background:linear-gradient(transparent 62%,#FFE2B8 62%); padding:0 1px; }
.is-column .entry h2 strong,.is-column .entry h3 strong,.is-column .entry th strong{ background:none; color:inherit; }
/* 箇条書き */
.is-column .entry ul{ list-style:none; padding-left:0; }
.is-column .entry ul > li{ position:relative; padding-left:1.3em; }
.is-column .entry ul > li::before{ content:""; position:absolute; left:.25em; top:.85em; width:7px; height:7px; border-radius:50%; background:var(--color-primary); }
.is-column .entry ol{ padding-left:1.6em; }
.is-column .entry ol > li::marker{ color:var(--color-primary); font-weight:700; }
/* 表：横にはみ出す表はスクロール */
.is-column .entry table{ display:block; overflow-x:auto; -webkit-overflow-scrolling:touch; border-collapse:collapse; font-size:14.5px; line-height:1.7; }
@media (min-width:760px){ .is-column .entry table{ display:table; } }
.is-column .entry th{ background:var(--color-tertiary); color:#fff; font-weight:700; white-space:nowrap; }
.is-column .entry tbody tr:nth-child(even) td{ background:#f6f9fc; }
.is-column .entry td,.is-column .entry th{ min-width:6em; }
/* 引用・コード・図 */
.is-column .entry blockquote{ border-left:4px solid var(--color-primary); background:var(--light); border-radius:0 10px 10px 0; padding:16px 22px; }
.is-column .entry pre{ background:#0f1d2e; color:#e6edf5; padding:18px 20px; border-radius:10px; overflow-x:auto; font-size:13.5px; line-height:1.7; }
.is-column .entry code{ font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:.92em; }
.is-column .entry :not(pre) > code{ background:#eef2f7; padding:1px 6px; border-radius:4px; }
.is-column .entry figure{ margin-left:0; margin-right:0; }
.is-column .entry figcaption{ margin-top:8px; font-size:13px; color:#5b6573; line-height:1.7; }
.is-column .entry hr{ border:0; border-top:1px solid var(--color-border); margin:2.4em 0; }
/* 目次 */
.toc{ margin:2.2em 0 !important; border:1px solid #dbe6f1; border-radius:14px; background:#f7fafd; }
.toc summary{ cursor:pointer; list-style:none; padding:16px 22px; font-weight:700; color:var(--color-tertiary); font-size:17px; display:flex; align-items:center; gap:10px; }
.toc summary::-webkit-details-marker{ display:none; }
.toc summary::before{ content:""; width:18px; height:2px; background:var(--color-primary); box-shadow:0 -5px 0 var(--color-primary),0 5px 0 var(--color-primary); }
.toc summary::after{ content:"閉じる"; margin-left:auto; font-size:12.5px; font-weight:400; color:#5b6573; }
.toc details:not([open]) summary::after{ content:"開く"; }
.toc__list{ counter-reset:toc; list-style:none; margin:0; padding:0 22px 20px; font-size:14.5px; line-height:1.7; }
.toc__list > li{ counter-increment:toc; padding:6px 0 6px 2.2em; position:relative; border-top:1px dashed #d6e2ee; }
.toc__list > li::before{ content:counter(toc); position:absolute; left:0; top:7px; width:1.6em; height:1.6em; border-radius:50%; background:var(--color-tertiary); color:#fff; font-size:12px; font-weight:700; display:flex; align-items:center; justify-content:center; }
.toc__list > li > a{ font-weight:700; color:var(--color-tertiary); }
.toc__list ol{ list-style:none; margin:4px 0 0; padding:0; }
.toc__list ol li{ padding:2px 0 2px 1.1em; position:relative; font-size:14px; }
.toc__list ol li::before{ content:"–"; position:absolute; left:0; color:#8a96a6; }
.toc__list a{ text-decoration:none !important; color:#2d3a4a; }
.toc__list a:hover{ color:var(--color-primary); text-decoration:underline !important; }
/* dx-ai から引き継いだ相談枠・HANALOG枠・実装相談枠 */
.is-column .entry .cta-block,.is-column .entry .hanalog-block{ margin-top:2.6em !important; padding:26px 28px; border-radius:16px; border:1px solid #dbe6f1; background:linear-gradient(135deg,#fff 0%,var(--light) 100%); }
.is-column .entry .cta-block h3,.is-column .entry .hanalog-block h3{ margin-top:0 !important; padding:0 0 10px; border-left:0; border-bottom:2px solid var(--color-accent); }
.is-column .entry .cta-block a,.is-column .entry .hanalog-block p > a:not(:has(img)){ display:inline-flex; align-items:center; min-height:44px; padding:0 22px; border-radius:var(--radius-pill); background:var(--color-accent); color:#fff; font-weight:700; text-decoration:none; }
.is-column .entry .cta-block p + p{ margin-top:10px; }
.is-column .entry .cta-block p:nth-of-type(3) a{ background:#fff; color:var(--color-tertiary); border:1px solid var(--color-tertiary); }
.is-column .entry .hanalog-block img{ border-radius:10px; }
.is-column .entry .seed-post-cta{ border-radius:16px !important; }
/* カテゴリーの小札 */
.catchip{ display:inline-block; font-size:12px; font-weight:700; line-height:1.6; padding:3px 12px; border:1px solid var(--color-primary); color:var(--color-primary); border-radius:var(--radius-pill); background:#fff; white-space:nowrap; }
.catchip:hover{ background:var(--light); }
.item-cats{ display:flex; flex-wrap:wrap; gap:6px; }
@media (min-width:701px){ .news2__item{ grid-template-columns:110px minmax(0,auto) 1fr; } }
.phero__meta{ flex-wrap:wrap; }
.phero__upd{ font-size:13px; color:#5b6573; }
.phero__meta .phero__badge + .phero__badge{ margin-left:-6px; }
/* 一覧のカテゴリー絞り込み */
.catnav{ margin:-12px 0 36px; padding:18px 20px; border:1px solid #dbe6f1; border-radius:14px; background:#f7fafd; }
.catnav__label{ margin:0 0 10px; font-size:13px; font-weight:700; color:var(--color-tertiary); }
.catnav ul{ display:flex; flex-wrap:wrap; gap:8px; list-style:none; margin:0; padding:0; }
.catnav a{ display:inline-flex; align-items:center; gap:6px; min-height:36px; padding:0 14px; border-radius:var(--radius-pill); border:1px solid #c9d7e6; background:#fff; font-size:13.5px; color:var(--color-tertiary); }
.catnav a span{ font-size:11.5px; color:#7a8796; }
.catnav a:hover{ border-color:var(--color-primary); }
.catnav a.is-current{ background:var(--color-primary); border-color:var(--color-primary); color:#fff; }
.catnav a.is-current span{ color:#dce8f5; }
/* 関連記事 */
.related{ margin-top:72px; }
.related__head{ font-size:20px; color:var(--color-tertiary); margin:0 0 20px; padding-left:14px; border-left:5px solid var(--color-accent); }
.related ul{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
@media (max-width:640px){ .related ul{ grid-template-columns:1fr; } }
.related a{ display:grid; grid-template-columns:120px 1fr; gap:14px; align-items:center; padding:12px; border:1px solid #dbe6f1; border-radius:14px; background:#fff; height:100%; transition:border-color .2s ease; }
.related a:hover{ border-color:var(--color-primary); }
.related__img img{ display:block; width:120px; height:80px; object-fit:cover; border-radius:8px; }
.related__img:empty{ display:block; width:120px; height:80px; border-radius:8px; background:var(--light); }
.related__body{ display:flex; flex-direction:column; gap:4px; }
.related__body time{ font-size:12.5px; color:#5b6573; }
.related__title{ font-size:14.5px; font-weight:700; line-height:1.6; color:var(--color-tertiary); }

/* 0.6.1 目次の余白（本文の ol の指定より優先）・カテゴリーの折りたたみ */
.is-column .entry .toc__list{ list-style:none; padding:0 22px 20px; }
.is-column .entry .toc__list ol{ padding:0; }
.is-column .entry .toc__list li::marker{ content:none; }
.catnav__more{ margin-top:10px; }
.catnav__more summary{ cursor:pointer; display:inline-flex; align-items:center; min-height:36px; font-size:13.5px; font-weight:700; color:var(--color-primary); list-style:none; }
.catnav__more summary::-webkit-details-marker{ display:none; }
.catnav__more summary::after{ content:"＋"; margin-left:6px; }
.catnav__more[open] summary::after{ content:"－"; }
.catnav__more ul{ margin-top:8px; }

/* ===== 0.6.2 (2026-11-09) コラム右サイドバー：HANALOGバナー＋関連コラム ===== */
.is-column .single-wrap{ max-width:var(--content-max); display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:56px; align-items:start; }
.single-main{ min-width:0; }
.col-side{ display:flex; flex-direction:column; gap:36px; }
.col-side__banner{ display:block; width:100%; aspect-ratio:3/1; border-radius:10px; overflow:hidden; box-shadow:0 2px 10px rgba(16,43,63,.12); }
.col-side__banner img{ display:block; width:100%; height:100%; object-fit:cover; }
.col-side__head{ font-size:18px; color:var(--color-tertiary); margin:0 0 18px; padding-left:12px; border-left:5px solid var(--color-accent); }
.col-side__rel ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:22px; }
.col-side__rel a{ display:block; text-decoration:none; color:var(--color-tertiary); }
.col-side__img{ display:block; aspect-ratio:3/2; border-radius:10px; overflow:hidden; background:var(--light); }
.col-side__img img{ display:block; width:100%; height:100%; object-fit:cover; transition:transform .3s ease; }
.col-side__rel a:hover .col-side__img img{ transform:scale(1.04); }
.col-side__title{ display:block; margin-top:10px; font-size:14.5px; font-weight:700; line-height:1.6; }
.col-side__rel a:hover .col-side__title{ color:var(--color-primary); }
@media (max-width:1023px){
  .is-column .single-wrap{ display:block; max-width:900px; }
  .col-side{ margin-top:64px; }
  .col-side__banner{ max-width:480px; }
  .col-side__rel ul{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 16px; }
}
@media (max-width:640px){ .col-side__rel ul{ grid-template-columns:1fr; } }

/* ===== 0.6.2 協会について：基本理念を「見出し＋本文 左／ロゴ 右（上下中央）」に ===== */
@media (min-width:900px){
.page-id-100001 .lbody > .lsec:first-child > .inner{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);column-gap:clamp(40px,6vw,96px);align-items:center}
.page-id-100001 .lbody > .lsec:first-child .sec-head{grid-column:1;grid-row:1;display:block !important;margin-bottom:32px !important;align-self:end}
.page-id-100001 .lbody > .lsec:first-child .split{display:contents !important}
.page-id-100001 .lbody > .lsec:first-child .split__text{grid-column:1;grid-row:2;align-self:start}
.page-id-100001 .lbody > .lsec:first-child .split__media{grid-column:2;grid-row:1 / span 2;align-self:center}
}
.page-id-100001 .split__img--brand{aspect-ratio:auto !important;max-width:440px;margin-inline:auto !important}
.page-id-100001 .split__img--brand img{height:auto}

/* 0.6.2 協会について：DX認定ロゴ（比率固定・加工なし） */
.cert-logo{ margin:28px 0 0 !important; }
.cert-logo img{ width:280px; max-width:100%; height:auto !important; }
