/* ========================================
   CSS Custom Properties (Design Tokens)
   v27 - 2026-05-03
   ======================================== */
:root{
  /* KV H1 - TOPページ .kv-h1 に完全準拠 */
  --kv-h1-size: clamp(56px,8vw,120px);
  --kv-h1-weight: 700;
  --kv-h1-line-height: 1.2;
  --kv-h1-letter-spacing: -0.04em;
  --kv-h1-color: #28282D;
  --kv-h1-mb: 48px;

  /* Section H2 - 全ページ統一基準（sec-title-lg基準・最大インパクト） */
  --sec-h2-size: clamp(36px,4.2vw,60px);
  --sec-h2-weight: 900;
  --sec-h2-line-height: 1.2;
  --sec-h2-letter-spacing: -0.04em;
  --sec-h2-color: #28282D;
  --sec-h2-mb: 20px;
  --sec-h2-size-sp: clamp(28px,7.5vw,44px);

  /* Section H3 - TOPページ中見出しに準拠 */
  --sec-h3-size: clamp(20px,2.5vw,28px);
  --sec-h3-weight: 700;
  --sec-h3-line-height: 1.5;
  --sec-h3-letter-spacing: -0.02em;
  --sec-h3-color: #28282D;
  --sec-h3-mb: 16px;

  /* KV Padding - 詳細ページ共通余白変数 */
  --kv-padding-v: 72px;
  --kv-padding-v-sp: 56px;

  /* KV Body */
  --kv-body-size: 16px;
  --kv-body-line-height: 1.85;
  --kv-body-color: #4A4A50;
  --kv-body-mb: 48px;
}
.sp-br{display:none}

/* ========================================
   Base CSS (extracted from index.html)
   ======================================== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth}
body{
      font-family:'Yu Gothic','游ゴシック',YuGothic,'Hiragino Kaku Gothic ProN','ヒラギノ角ゴ ProN W3','Meiryo','メイリオ',sans-serif;
      font-weight:400;
      color:#28282D;
      background:#fff;
      overflow-x:hidden;
      -webkit-font-smoothing:antialiased;
    }
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
.hd{
      position:fixed;top:0;left:0;right:0;
      height:72px;
      background:#fff;
      display:flex;align-items:center;justify-content:space-between;
      padding:0 48px;
      z-index:100;
      border-bottom:1px solid #E8E8E8;
    }
.hd-logo img{height:34px;width:auto}
.hd-nav{display:flex;align-items:center;gap:32px}
.hd-nav a{font-size:13px;letter-spacing:0.04em;color:#28282D;transition:opacity .2s;padding:14px 0}
.hd-nav a:hover{opacity:.5}
.hd-btn{
      display:inline-flex;align-items:center;justify-content:center;
      height:48px;padding:0 28px;
      background:#28282D;color:#fff;
      font-size:13px;letter-spacing:0.08em;font-weight:600;
      border:1px solid #28282D;
      transition:background .2s,color .2s;
    }
.hd-btn:hover{background:#fff;color:#28282D}
.hd-btn-external{
      display:inline-flex;align-items:center;justify-content:center;gap:6px;
      height:48px;padding:0 20px;
      background:#fff;color:#28282D;
      font-size:12px;letter-spacing:0.04em;font-weight:600;
      border:1.5px solid #28282D;
      transition:background .2s,color .2s;
      white-space:nowrap;
      line-height:1.3;
    }
.hd-btn-external:hover{background:#28282D;color:#fff}
.hd-btn-external svg{flex-shrink:0;transition:transform .2s}
.hd-btn-external:hover svg{transform:translate(2px,-2px)}
.hd-btns{display:flex;align-items:center;gap:10px}
.hd-nav-item{position:relative}
.hd-nav-item>a{display:flex;align-items:center;gap:4px;cursor:pointer;padding:14px 0}
.hd-nav-item>a::after{
      content:'';
      display:inline-block;
      width:6px;height:6px;
      border-right:1px solid #28282D;
      border-bottom:1px solid #28282D;
      transform:rotate(45deg) translateY(-2px);
      transition:transform .2s;
    }
.hd-nav-item.open>a::after{transform:rotate(-135deg) translateY(-2px)}
.hd-dropdown{
      position:absolute;top:calc(100% + 12px);left:50%;
      transform:translateX(-50%) translateY(-8px);
      background:#fff;
      border:1px solid #E8E8E8;
      min-width:200px;
      opacity:0;visibility:hidden;
      transition:opacity .22s,transform .22s,visibility .22s;
      z-index:200;
      box-shadow:0 8px 32px rgba(0,0,0,.08);
    }
.hd-dropdown::before{
      content:'';
      position:absolute;top:-14px;left:0;right:0;
      height:14px;
    }
.hd-nav-item.open .hd-dropdown{
      opacity:1;visibility:visible;
      transform:translateX(-50%) translateY(0);
    }
.hd-dropdown a{
      display:block;
      padding:12px 20px;
      font-size:13px;
      color:#28282D;
      border-bottom:1px solid #F0F0F0;
      transition:background .15s;
      white-space:nowrap;
    }
.hd-dropdown a:last-child{border-bottom:none}
.hd-dropdown a:hover{background:#F7F7F7;opacity:1}
.hd-dropdown-sub{
      border-bottom:1px solid #F0F0F0;
    }
.hd-dropdown-sub-label{
      font-size:11px;letter-spacing:.1em;
      color:#767680;padding:10px 20px 4px;
      text-transform:uppercase;display:block;
    }
.hd-dropdown-sub a{
      padding:9px 20px 9px 28px;
      font-size:12px;
      border-bottom:none;
    }
.hd-dropdown-sub:last-child{border-bottom:none}
.hd-mega-wrap{
      position:fixed;top:72px;left:0;right:0;
      background:#F5F5F5;
      border-top:1px solid #E8E8E8;
      border-bottom:1px solid #E0E0E0;
      box-shadow:0 12px 40px rgba(0,0,0,.08);
      opacity:0;visibility:hidden;
      transition:opacity .22s,transform .22s,visibility .22s;
      transform:translateY(-8px);
      z-index:200;
      padding:20px 0 24px;
    }
.hd-nav-item.open .hd-mega-wrap{
      opacity:1;visibility:visible;
      transform:translateY(0);
    }
.hd-mega{
      display:grid;
      grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
      max-width:1200px;
      margin:0 auto;
      width:100%;
      gap:12px;
      padding:0 24px;
    }
.hd-mega::before{
      content:'';
      position:absolute;top:-14px;left:0;right:0;
      height:14px;
    }
.hd-mega-col{
      background:#fff;
      border:1px solid #E8E8E8;
      padding:18px 20px 14px;
    }
.hd-mega-col-label{
      font-size:13px;letter-spacing:.04em;
      white-space:nowrap;
      font-weight:700;
      color:#1A1A1E;
      display:block;
      padding-bottom:10px;
      margin-bottom:10px;
      border-bottom:2px solid #1A1A1E;
      overflow:hidden;
      text-overflow:ellipsis;
    }
.hd-mega-col a{
      display:flex;
      align-items:center;
      gap:6px;
      padding:12px 0;
      font-size:16px;
      color:#28282D;
      border-bottom:1px solid #F0F0F0;
      transition:color .15s;
      white-space:nowrap;
    }
.hd-mega-col-label-link{
      color:#28282D !important;
      text-decoration:none;
      transition:opacity .2s !important;
      border-bottom:2px solid #1A1A1E !important;
      padding-bottom:10px !important;
    }
.hd-mega-col-label-link:hover{
      opacity:.6;
    }
.hd-mega-col a:last-child{border-bottom:none}
.hd-mega-col a::before{
      content:'';
      width:4px;height:4px;
      border-radius:50%;
      background:#1A1A1E;
      flex-shrink:0;
      opacity:.25;
      transition:opacity .15s;
    }
.hd-mega-col a:hover{color:#000;background:none}
.hd-mega-col a:hover::before{opacity:1}
.hd-hamburger{
      display:none;
      flex-direction:column;justify-content:center;align-items:center;
      width:44px;height:44px;
      cursor:pointer;
      gap:6px;
      background:none;border:none;padding:0;
    }
.hd-hamburger span{
      display:block;width:24px;height:1px;
      background:#28282D;
      transition:transform .3s,opacity .3s;
    }
.hd-hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hd-hamburger.open span:nth-child(2){opacity:0}
.hd-hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.hd-drawer{
      display:none;
      position:fixed;top:0;left:0;right:0;bottom:0;
      background:#fff;
      overflow-y:auto;
      z-index:200;
      padding:0 0 80px;
      transform:translateX(100%);
      transition:transform .3s cubic-bezier(.16,1,.3,1);
    }
.hd-drawer.open{transform:translateX(0)}
.hd-drawer-item{
      border-bottom:1px solid #F0F0F0;
    }
.hd-drawer-link{
      display:flex;align-items:center;justify-content:space-between;
      padding:18px 24px;
      font-size:16px;
      color:#28282D;
      cursor:pointer;
    }
.hd-drawer-link::after{
      content:'';
      display:block;width:8px;height:8px;
      border-right:1px solid #28282D;
      border-bottom:1px solid #28282D;
      transform:rotate(45deg);
      transition:transform .2s;
      flex-shrink:0;
    }
.hd-drawer-link.no-arrow::after{display:none}
.hd-drawer-link.open::after{transform:rotate(-135deg)}
.hd-drawer-sub{
      display:none;
      background:#F7F7F7;
      padding:8px 0;
    }
.hd-drawer-sub.open{display:block}
.hd-drawer-sub a{
      display:block;
      padding:13px 24px 13px 36px;
      font-size:13px;
      color:#28282D;
      border-bottom:1px solid #EFEFEF;
    }
.hd-drawer-sub a:last-child{border-bottom:none}
/* WEB広告アコーディオン */
.hd-drawer-accordion{}
.hd-drawer-accordion-btn{
  display:flex;align-items:center;justify-content:space-between;
  width:100%;padding:13px 24px 13px 36px;
  font-size:13px;color:#28282D;
  background:none;border:none;cursor:pointer;
  border-bottom:1px solid #E8E8E8;
  text-align:left;
  font-family:inherit;
}
.hd-drawer-accordion-btn:hover{color:#000;background:none}
.hd-drawer-accordion-icon{
  transition:transform .25s;
  flex-shrink:0;
}
.hd-drawer-accordion-btn.open .hd-drawer-accordion-icon{
  transform:rotate(180deg);
}
.hd-drawer-accordion-sub{
  display:none !important;
  background:#EFEFEF;
}
.hd-drawer-accordion-sub.open{display:block !important}
.hd-drawer-accordion-sub a{
  padding-left:48px !important;
  font-size:12px !important;
  color:#555 !important;
}
/* PCメガメニュー WEB広告アコーディオン */
.hd-mega-accordion-btn{
  display:flex;align-items:center;justify-content:flex-start;
  width:100%;padding:12px 0;
  font-size:16px;
  color:#28282D;
  background:none;border:none;border-bottom:1px solid #F0F0F0;cursor:pointer;
  font-family:inherit;font-weight:400;font-size:inherit;
  white-space:nowrap;
  gap:6px;
}
.hd-mega-accordion-btn:hover{color:#000;}
.hd-mega-accordion-btn::before{
  content:'';
  width:4px;height:4px;
  border-radius:50%;
  background:#1A1A1E;
  flex-shrink:0;
  opacity:.25;
  transition:opacity .15s;
}
.hd-mega-accordion-btn:hover::before{opacity:1;}
.hd-mega-accordion-icon{
  transition:transform .2s;
  flex-shrink:0;
  margin-left:auto;
}
.hd-mega-accordion-btn.open .hd-mega-accordion-icon{
  transform:rotate(180deg);
}
.hd-mega-accordion-sub{
  display:none !important;
}
.hd-mega-accordion-sub.open{
  display:block !important;
}
.hd-mega-sub-link{
  padding-left:10px !important;
  font-size:12px !important;
  color:#666 !important;
}
.hd-drawer-sub-label{
      font-size:11px;letter-spacing:.1em;
      color:#767680;padding:12px 24px 4px 36px;
      text-transform:uppercase;
    }
.hd-drawer-cta{
      padding:24px;
      display:flex;flex-direction:column;gap:12px;
    }
.hd-drawer-cta .hd-btn{
      display:flex;width:100%;justify-content:center;
      height:52px;font-size:16px;
    }
.hd-drawer-cta .hd-btn-saicatsu{
      display:flex;width:100%;justify-content:center;align-items:center;gap:6px;
      height:52px;font-size:13px;
      background:#fff;color:#28282D;
      border:1.5px solid #28282D;
      text-decoration:none;font-weight:500;
      transition:background .2s,color .2s;
      letter-spacing:.04em;
    }
.hd-drawer-cta .hd-btn-saicatsu:hover{background:#28282D;color:#fff}
.hd-drawer-cta .hd-btn-saicatsu:hover svg path{stroke:#fff}
.hd-drawer-sns{
      padding:20px 24px 32px;
      border-top:1px solid #F0F0F0;
      display:flex;flex-direction:column;align-items:center;gap:14px;
    }
.hd-drawer-sns-label{
      font-size:10px;letter-spacing:.18em;color:#767680;font-weight:600;
    }
.hd-drawer-sns-links{
      display:flex;align-items:center;justify-content:center;gap:12px;
    }
.hd-drawer-sns-link{
      display:flex;align-items:center;justify-content:center;
      width:44px;height:44px;
      border:1px solid #D8D8DC;
      border-radius:50%;
      text-decoration:none;
      transition:background .2s,border-color .2s;
    }
.hd-drawer-sns-ig:hover{background:#E1306C;border-color:#E1306C}
.hd-drawer-sns-tt:hover{background:linear-gradient(135deg,#69C9D0 0%,#EE1D52 100%);border-color:transparent}
.hd-drawer-sns-x:hover{background:#000;border-color:#000}
.kv{
      min-height:100vh;
      display:flex;align-items:center;
      padding:var(--kv-padding-v) 80px;
      background:#fff;
    }
.kv-wrap{max-width:1100px;width:100%}
.kv-eyebrow{
      font-size:11px;letter-spacing:.22em;font-weight:700;
      color:#767680;margin-bottom:48px;
      display:flex;align-items:center;gap:16px;
    }
.kv-eyebrow::before{content:'';display:block;width:32px;height:1px;background:#9B9BA0}
.kv-h1{
      font-size:clamp(56px,8vw,120px);
      font-weight:700;
      line-height:1.2;
      letter-spacing:-0.04em;
      color:#28282D;
      margin-bottom:48px;
    }
.kv-body{
      font-size:16px;line-height:1.85;
      color:#4A4A50;
      max-width:520px;
      margin-bottom:48px;
    }
.kv-stats{
      display:flex;gap:0;
      border-top:1px solid #E8E8E8;
      padding-top:48px;
    }
.kv-stat{padding-right:56px;border-right:1px solid #E8E8E8;margin-right:56px}
.kv-stat:last-child{border-right:none;margin-right:0;padding-right:0}
.kv-stat-n{
      font-size:clamp(40px,4.5vw,60px);
      font-weight:400;letter-spacing:-0.04em;
      line-height:1;color:#28282D;
    }
.kv-stat-n sup{font-size:.45em;letter-spacing:0;vertical-align:super}
.kv-stat-l{font-size:14px;color:#4A4A50;margin-top:10px;letter-spacing:.08em}
.kv-stat-note{display:block;font-size:11px;color:#767680;letter-spacing:.04em;margin-top:3px}
.voice-link,.work-link{
      display:block;text-decoration:none;color:inherit;
    }
.voice-more,.work-more{
      font-size:12px;color:#28282D;letter-spacing:.06em;
      margin-top:12px;font-weight:500;
    }
.voice-card:hover .voice-more,
    .work-card:hover .work-more{
      text-decoration:underline;
    }
.notice-bar{
      display:flex;
      align-items:center;
      border-bottom:1px solid #E8E8E8;
      background:#fff;
    }
.notice-bar-label{
      flex-shrink:0;
      font-size:12px;
      font-weight:700;
      letter-spacing:.12em;
      color:#28282D;
      padding:14px 24px;
      border-right:1px solid #E8E8E8;
      text-transform:uppercase;
    }
.notice-bar-item{
      flex:1;
      display:flex;
      align-items:center;
      gap:20px;
      padding:14px 24px;
      text-decoration:none;
      color:#28282D;
      font-size:13px;
      transition:opacity .2s;
      min-width:0;
    }
.notice-bar-item:hover{opacity:.6}
.notice-bar-date{
      flex-shrink:0;
      font-size:12px;
      color:#767680;
      letter-spacing:.05em;
    }
.notice-bar-title{
      flex:1;
      white-space:nowrap;
      overflow:hidden;
      text-overflow:ellipsis;
    }
.notice-bar-all{
      flex-shrink:0;
      font-size:12px;
      letter-spacing:.1em;
      color:#767680;
      text-decoration:none;
      padding:14px 24px;
      border-left:1px solid #E8E8E8;
      white-space:nowrap;
      transition:color .2s;
    }
.notice-bar-all:hover{color:#28282D}
.notice-bar-arrow{display:inline-block;margin-left:6px;font-size:10px}

    
    .sec-head{
      display:flex;align-items:flex-start;gap:72px;
      padding:120px 80px 80px;
      border-top:1px solid #E8E8E8;
    }
.sec-head-body{padding-top:4px}
.sec-eyebrow{font-size:12px;letter-spacing:.15em;color:#767680;margin-bottom:20px}
.sec-h2{
      font-size:var(--sec-h2-size,clamp(36px,4.2vw,60px));
      font-weight:var(--sec-h2-weight,900);
      line-height:var(--sec-h2-line-height,1.2);
      letter-spacing:var(--sec-h2-letter-spacing,-.04em);
      color:var(--sec-h2-color,#28282D);
      margin-bottom:var(--sec-h2-mb,20px);
    }
.sec-body{font-size:16px;line-height:1.85;color:#4A4A50;max-width:460px}
.challenge-sec{border-top:1px solid #E8E8E8}
.challenge-head{
      position:relative;
      padding:60px 80px 32px;
      display:flex;align-items:flex-start;gap:72px;
      overflow:hidden;
    }
/* ---- スプリットビュー（新デザイン） ---- */
.challenge-split{
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:420px;
  overflow:hidden;
  position:relative;
  background:#28282D;
}
.challenge-split-left{
  padding:80px 80px 72px;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  gap:24px;
  background:transparent;
  position:relative;
  z-index:1;
}
.challenge-split-left .sec-eyebrow{
  color:#ffffff;
}
.challenge-split-left .sec-eyebrow::before{
  background:rgba(255,255,255,.4);
}
.challenge-split-left .sec-h2{
  color:#fff;
}
.challenge-split-left .sec-body{
  color:#ffffff;
  font-size:16px;
  line-height:1.85;
}
.challenge-split-right{
  background:#F8F8F8;
  clip-path:polygon(12% 0,100% 0,100% 100%,0 100%);
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  padding:80px 72px 72px 14%;
  gap:24px;
  position:relative;
  z-index:2;
}
.challenge-split-voice{
  font-size:clamp(36px,4.2vw,60px);
  font-weight:900;
  line-height:1.2;
  letter-spacing:-0.04em;
  color:#28282D;
}
.challenge-split-sub{
  font-size:16px;
  color:#000000;
  line-height:1.8;
  letter-spacing:.02em;
}
.challenge-split-num{
  font-size:18px;letter-spacing:.08em;color:#767680;font-weight:700;
  margin-bottom:0;
}
.challenge-split-tags{
  display:flex;flex-direction:column;gap:0;
}
.challenge-watermark{
      position:absolute;
      top:50%;left:50%;
      transform:translate(-50%,-50%);
      font-size:clamp(100px,15vw,220px);
      font-weight:900;
      letter-spacing:-.04em;
      color:rgba(40,40,45,.05);
      -webkit-text-stroke:none;
      white-space:nowrap;
      pointer-events:none;
      user-select:none;
      line-height:1;
      z-index:0;
    }
.challenge-head-body{position:relative;z-index:1;padding-top:4px}
.challenge-grid{
      display:grid;
      grid-template-columns:repeat(2,1fr);
      border-top:1px solid #E8E8E8;
      align-items:stretch;
    }
.challenge-overall{
      grid-column:1/-1;
      border-bottom:1px solid rgba(255,255,255,.12);
      background:#28282D;
    }
.challenge-overall-top{
      display:grid;
      grid-template-columns:auto 1fr;
      gap:48px;
      padding:56px 72px 48px;
      border-bottom:1px solid rgba(255,255,255,.12);
      align-items:start;
    }
.challenge-overall-heading{
      display:flex;flex-direction:column;gap:16px;
      min-width:220px;
    }
.challenge-overall-steps{
      display:grid;
      grid-template-columns:repeat(3,1fr);
      border-left:1px solid rgba(255,255,255,.12);
    }
.challenge-overall-step{
      padding:24px 28px;
      border-right:1px solid rgba(255,255,255,.12);
    }
.challenge-overall-step-num{
      font-size:13px;letter-spacing:.12em;
      color:#fff;font-weight:700;
      margin-bottom:14px;
    }
.challenge-overall-step-text{
      font-size:16px;color:#fff;line-height:1.7;
    }
.challenge-overall-bottom{
      display:grid;
      grid-template-columns:1fr auto;
      align-items:center;
      gap:48px;
      padding:36px 72px;
    }
.challenge-overall-tag{
      font-size:13px;letter-spacing:.15em;
      color:rgba(255,255,255,.92);margin-bottom:16px;
    }
.challenge-overall-title{
      font-size:clamp(28px,3.5vw,48px);
      font-weight:400;line-height:1.3;
      letter-spacing:-.03em;color:#fff;
    }
.challenge-overall-sub{
      font-size:16px;color:#fff;
      line-height:1.7;font-weight:500;
    }
.challenge-overall-desc{
      font-size:16px;line-height:1.85;
      color:rgba(255,255,255,.92);
      margin-bottom:36px;max-width:380px;
    }
.btn-more-inv{
      display:inline-flex;align-items:center;justify-content:center;
      width:180px;height:48px;
      border:none;
      font-size:13px;letter-spacing:.08em;font-weight:600;
      color:#28282D;background:#fff;
      transition:background .2s,color .2s,opacity .2s;
    }
.btn-more-inv:hover{background:#E8E8E8;opacity:1}
.challenge-card{
      padding:36px 32px;
      border-right:1px solid #E8E8E8;
      display:flex;flex-direction:column;
      transition:background .2s;
    }
.challenge-card:last-child{border-right:none}
/* 2列グリッド: 偶数カードの右ボーダーを消し、上段2枚の下ボーダーを追加 */
.challenge-card:nth-child(even){border-right:none}
.challenge-card:nth-child(-n+2){border-bottom:1px solid #E8E8E8}

.challenge-card:hover{background:#F8F8F8}
.challenge-card-num{
      display:block;
      margin-bottom:24px;
    }
.challenge-card-num-n{
      font-size:18px;letter-spacing:.08em;color:#767680;font-weight:700;
    }
.challenge-card-tag{
      font-size:12px;letter-spacing:.12em;
      color:#28282D;
      border:1px solid #E8E8E8;
      padding:3px 10px;
    }
.challenge-card-title{
      font-size:clamp(22px,2.4vw,32px);
      font-weight:700;line-height:1.35;
      letter-spacing:-.02em;color:#28282D;
      margin-bottom:10px;
      position:relative;
      display:inline-block;
      white-space:nowrap;
    }
.challenge-card-title::after{
      content:'';
      position:absolute;
      bottom:-4px;left:0;
      width:0;height:2px;
      background:#28282D;
      transition:width .6s cubic-bezier(.4,0,.2,1);
      transition-delay:.5s;
    }
.challenge-card.fu.on .challenge-card-title::after{
      width:100%;
    }
.challenge-card-desc{
      font-size:16px;line-height:1.85;
      color:#4A4A50;margin-bottom:0;
    }
.challenge-tags-label{
      font-size:11px;letter-spacing:.14em;
      color:#767680;font-weight:600;
      margin-top:24px;
      padding-top:0;
      margin-bottom:8px;
    }
.challenge-tags-wrap{
      display:flex;flex-wrap:wrap;gap:8px;
      margin-bottom:28px;
    }
.challenge-tag{
      display:inline-flex;align-items:center;gap:4px;
      font-size:12px;letter-spacing:.06em;
      color:#4A4A50;
      background:#F3F4F6;
      padding:4px 12px;
      text-decoration:none;
      transition:background .15s,color .15s;
    }
a.challenge-tag:hover{
      background:#28282D;
      color:#fff;
    }
.challenge-link{
      font-size:12px;letter-spacing:.1em;
      color:#28282D;
      border-bottom:1px solid #28282D;
      padding-bottom:2px;
      display:inline-block;
      width:fit-content;
      transition:opacity .2s;
    }
.challenge-link:hover{opacity:.5}
.voice-sec{background:#F7F7F7}
.voice-head{
      padding:120px 80px 72px;
      border-top:1px solid #E8E8E8;
      display:flex;align-items:flex-end;justify-content:space-between;
    }
.voice-grid{
      display:grid;grid-template-columns:repeat(3,1fr);
      gap:28px 20px;
    }
.voice-card{border:1px solid #E8E8E8;overflow:hidden;transition:background .2s}
.voice-card:last-child{border:1px solid #E8E8E8;}
.voice-card:hover{background:#EFEFEF}
.voice-link{
      display:block;
    }
.voice-avatar{
      aspect-ratio:3/2;
      overflow:hidden;background:#E8E8E8;
    }
.voice-avatar img{width:100%;height:100%;object-fit:cover;object-position:center top;transition:transform .5s ease}
.voice-card:hover .voice-avatar img{transform:scale(1.04)}
.voice-body{
      padding:28px 36px 36px;
      border-top:1px solid #E8E8E8;
    }
.voice-quote{font-size:16px;line-height:1.9;color:#28282D;margin-bottom:24px}
.voice-meta{border-top:1px solid #E8E8E8;padding-top:16px}
.voice-co{font-size:12px;letter-spacing:.06em;color:#4A4A50;margin-bottom:4px}
.voice-name{font-size:16px;font-weight:500;color:#28282D}
.works-head{
      padding:120px 80px 72px;
      border-top:1px solid #E8E8E8;
      display:flex;align-items:flex-end;justify-content:space-between;
    }
.works-grid{
      display:grid;grid-template-columns:repeat(3,1fr);
      gap:28px 20px;
    }
.work-card{border:1px solid #E8E8E8;overflow:hidden}
.work-card:last-child{border:1px solid #E8E8E8;}
.work-thumb{aspect-ratio:16/10;overflow:hidden;background:#F3F4F6}
.work-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.work-card:hover .work-thumb img{transform:scale(1.04)}
.work-info{padding:28px 36px 36px;border-top:1px solid #E8E8E8}
.work-cat{font-size:12px;letter-spacing:.1em;color:#4A4A50;margin-bottom:10px}
.work-title{font-size:17px;font-weight:500;letter-spacing:-.01em;color:#28282D;margin-bottom:6px}
.work-result{font-size:14px;color:#3D3D42;font-weight:500}
.cta{
      padding:80px 80px;
      border-top:1px solid #E8E8E8;
      background:#111111;
    }
.cta-wrap{max-width:900px}
.cta-eyebrow{font-size:12px;letter-spacing:.15em;color:#ffffff;margin-bottom:28px;text-align:center}
.cta-eyebrow::before{background:rgba(255,255,255,.7) !important;margin-left:auto;margin-right:auto}
.cta-h2{
      font-size:clamp(36px,5vw,64px);
      font-weight:700;line-height:1.3;
      letter-spacing:-.04em;color:#fff;
      margin-bottom:32px;
    }
.cta-h2-line{display:block}
.cta-body{font-size:16px;line-height:1.85;color:#ffffff;margin-bottom:52px;max-width:460px;text-align:center;margin-left:auto;margin-right:auto}
.cta-actions{display:flex;align-items:center;gap:40px;flex-wrap:wrap}
.btn-cta{
      display:inline-flex;align-items:center;justify-content:center;
      height:56px;padding:0 40px;
      background:#fff;color:#28282D;
      font-size:14px;letter-spacing:.06em;font-weight:500;
      border:1px solid #fff;
      transition:background .2s,color .2s;
    }
.btn-cta:hover{background:transparent;color:#fff}
.cta-tel-wrap{}
.cta-tel-label{font-size:12px;letter-spacing:.1em;color:#ffffff;margin-bottom:4px}
.cta-tel{font-size:28px;font-weight:400;letter-spacing:-.02em;color:#fff}
.about-inner{
      display:grid;grid-template-columns:1fr 1fr;
      min-height:640px;
      border-top:1px solid #E8E8E8;
    }
.about-text{
      padding:120px 80px;
      display:flex;flex-direction:column;justify-content:center;
    }
.about-eyebrow{font-size:12px;letter-spacing:.15em;color:#767680;margin-bottom:28px}
.about-h2{
      font-size:var(--sec-h2-size);
      font-weight:var(--sec-h2-weight);line-height:var(--sec-h2-line-height);
      letter-spacing:var(--sec-h2-letter-spacing);color:#28282D;
      margin-bottom:24px;
    }
.about-body{font-size:16px;line-height:1.9;color:#4A4A50;margin-bottom:48px;max-width:400px}
.about-stats{
      display:grid;grid-template-columns:repeat(3,1fr);
      border-top:1px solid #E8E8E8;padding-top:32px;gap:0;
    }
.about-stat{padding-right:28px;border-right:1px solid #E8E8E8;margin-right:28px}
.about-stat:last-child{border-right:none;margin-right:0;padding-right:0}
.about-stat-n{
      font-size:clamp(28px,3vw,40px);
      font-weight:400;letter-spacing:-.04em;
      line-height:1;color:#28282D;
    }
.about-stat-n sup{font-size:.45em;letter-spacing:0;vertical-align:super}
.about-stat-l{font-size:14px;color:#4A4A50;margin-top:8px;letter-spacing:.06em}
.about-visual{
      background:#F7F7F7;
      display:flex;align-items:flex-start;justify-content:flex-start;
    }
.about-mission{text-align:left;padding:120px 80px}
.about-mission-label{font-size:12px;letter-spacing:.15em;color:#767680;margin-bottom:20px;text-align:left}
.about-mission-label::before{margin-left:0;margin-right:auto}
.about-mission-text{
      font-size:var(--sec-h2-size);
      font-weight:var(--sec-h2-weight);line-height:var(--sec-h2-line-height);
      letter-spacing:var(--sec-h2-letter-spacing);color:#28282D;
    }
.sns-bar{
      border-top:1px solid #E8E8E8;
      border-bottom:1px solid #E8E8E8;
      padding:40px 80px;
      display:flex;align-items:center;justify-content:space-between;
      gap:32px;
    }
.sns-bar-left{
      display:flex;flex-direction:column;gap:6px;
    }
.sns-bar-label{
      font-size:11px;letter-spacing:.16em;color:#767680;font-weight:600;
    }
.sns-bar-title{
      font-size:clamp(15px,1.5vw,18px);
      font-weight:500;letter-spacing:-.01em;color:#28282D;
      line-height:1.4;
    }
.sns-bar-links{
      display:flex;align-items:center;gap:16px;
    }
.sns-bar-link{
      display:flex;align-items:center;gap:10px;
      padding:14px 28px;
      border:1px solid #E8E8E8;
      color:#28282D;
      font-size:13px;letter-spacing:.04em;
      text-decoration:none;
      transition:background .2s,border-color .2s;
      white-space:nowrap;
    }
.sns-bar-link:hover{background:#28282D;color:#fff;border-color:#28282D}
.sns-bar-link:hover svg path,.sns-bar-link:hover svg rect,.sns-bar-link:hover svg circle,.sns-bar-link:hover svg polygon{stroke:#fff;fill:none}
.sns-bar-link svg{width:16px;height:16px;flex-shrink:0}
.footer-sns{
      display:flex;align-items:center;gap:16px;
      margin-top:20px;
    }
.footer-sns-link{
      display:flex;align-items:center;justify-content:center;
      width:36px;height:36px;
      border:1px solid #E8E8E8;
      color:#28282D;
      text-decoration:none;
      transition:background .2s,border-color .2s;
    }
.footer-sns-link:hover{background:#28282D;border-color:#28282D}
.footer-sns-link:hover svg path,.footer-sns-link:hover svg rect,.footer-sns-link:hover svg circle,.footer-sns-link:hover svg polygon{stroke:#fff;fill:none}
.footer-sns-ig:hover{background:#E1306C;border-color:#E1306C}
.footer-sns-tt:hover{background:linear-gradient(135deg,#69C9D0 0%,#EE1D52 100%);border-color:transparent}
.footer-sns-x:hover{background:#000;border-color:#000}
.about-sns{
      margin-top:28px;
      text-align:center;
    }
.about-sns-label{
      font-size:10px;letter-spacing:.18em;color:#767680;font-weight:600;
      margin-bottom:14px;
    }
.about-sns-links{
      display:flex;align-items:center;justify-content:center;gap:12px;
    }
.about-sns-link{
      display:flex;align-items:center;justify-content:center;
      width:100px;height:100px;
      border:1px solid #D8D8DC;
      color:#28282D;
      text-decoration:none;
      transition:background .2s,border-color .2s,color .2s;
    }
.about-sns-link:hover{border-color:transparent}
.about-sns-ig:hover{background:#E1306C;color:#fff}
.about-sns-tt:hover{background:linear-gradient(135deg,#69C9D0 0%,#EE1D52 100%);border-color:transparent;color:#fff}
.about-sns-x:hover{background:#000;color:#fff}
.news-sec{border-top:1px solid #E8E8E8}
.news-sec.column-sec{background:#FFFFFF}
.news-head{
      padding:80px 80px 52px;
      display:flex;align-items:flex-end;justify-content:space-between;
    }
.news-h2{
      font-size:clamp(40px,5.5vw,72px);
      font-weight:700;letter-spacing:-.04em;color:#28282D;
    }
.news-list{}
.news-item{
      display:grid;grid-template-columns:160px 1fr;
      align-items:baseline;
      padding:24px 80px;
      border-top:1px solid #E8E8E8;
      color:#28282D;
      transition:background .15s;
    }
.news-item:hover{background:#F8F8F8}
.news-date{font-size:12px;color:#767680;letter-spacing:.05em}
.news-title{font-size:16px;line-height:1.6;color:#28282D}
.view-all{
      display:inline-flex;align-items:center;gap:8px;
      font-size:12px;letter-spacing:.1em;color:#28282D;
      border-bottom:1px solid #28282D;padding-bottom:2px;
      transition:opacity .2s;
    }
.view-all:hover{opacity:.5}
.sec-title-lg{
      font-size:var(--sec-h2-size,clamp(36px,4.2vw,60px));
      font-weight:var(--sec-h2-weight,900);
      line-height:var(--sec-h2-line-height,1.2);
      letter-spacing:var(--sec-h2-letter-spacing,-.04em);
      color:var(--sec-h2-color,#28282D);
      margin-bottom:var(--sec-h2-mb,20px);
    }






.hd-nav>a,
    .footer-nav-group a{
      position:relative;
      text-decoration:none;
    }
.hd-nav>a::before,
    .footer-nav-group a::before{
      content:'';
      position:absolute;
      bottom:-1px;left:0;
      width:0;height:1px;
      background:currentColor;
      transition:width .3s cubic-bezier(.25,.46,.45,.94);
    }
.hd-nav>a:hover::before,
    .footer-nav-group a:hover::before{
      width:100%;
    }
.footer{padding:80px 80px 48px;border-top:1px solid #E8E8E8}
.footer-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:64px}
.footer-logo img{height:30px;width:auto}
.footer-nav{display:grid;grid-template-columns:repeat(3,1fr);gap:48px}
.footer-nav-title{font-size:12px;letter-spacing:.12em;color:#767680;margin-bottom:14px}
.footer-nav-group a{display:block;font-size:14px;color:#28282D;margin-bottom:10px;letter-spacing:.01em;transition:opacity .2s}
.footer-nav-group a:hover{opacity:.5}
.footer-bottom{
      display:flex;justify-content:flex-end;align-items:center;
      padding-top:24px;border-top:1px solid #E8E8E8;
    }
.footer-copy{font-size:12px;color:#767680;letter-spacing:.05em}
.footer-logo-wrap{display:flex;flex-direction:column;gap:0}
.footer-logo-addr{font-size:12px;color:#4A4A52;line-height:1.9;font-style:normal;margin-top:20px}
.footer-logo-addr a{color:#4A4A52;text-decoration:none}
.footer-logo-addr a:hover{opacity:.6}
.footer-sns-block{margin-top:28px}
.footer-sns-label{font-size:10px;letter-spacing:.14em;color:#767680;font-weight:500;margin-bottom:12px}
.footer-sns{display:flex;align-items:center;gap:16px;margin-top:0}
.footer-logo-related{display:block;margin-top:24px;padding-top:20px;border-top:1px solid #E8E8E8}
.footer-related-label{display:block;font-size:10px;letter-spacing:.14em;color:#767680;font-weight:500;white-space:nowrap}
.footer-related-link{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:#4A4A52;text-decoration:none;letter-spacing:.04em;transition:opacity .2s}
.footer-related-link:hover{opacity:.5}
.footer-bottom-right{display:flex;align-items:center;gap:24px}
.footer-privacy{font-size:12px;color:#4A4A52;text-decoration:none;letter-spacing:.04em}
.footer-privacy:hover{opacity:.6}
.service-opt-sec{border-top:1px solid #E8E8E8}
.service-opt-inner{
      display:grid;grid-template-columns:1fr 1fr;
      min-height:480px;
    }
.service-opt-left{
      padding:80px;
      border-right:1px solid #E8E8E8;
      display:flex;flex-direction:column;justify-content:space-between;
    }
.service-opt-eyebrow{font-size:12px;letter-spacing:.15em;color:#767680;margin-bottom:24px}
.service-opt-h2{
      font-size:var(--sec-h2-size);
      font-weight:var(--sec-h2-weight);letter-spacing:var(--sec-h2-letter-spacing);
      line-height:var(--sec-h2-line-height);color:#28282D;
      margin-bottom:32px;
    }
.service-opt-desc{font-size:16px;line-height:1.8;color:#3D3D42;max-width:440px}
.service-opt-right{
      display:grid;grid-template-columns:1fr 1fr;
      border-top:none;
      background:#F7F7F7;
    }
.service-opt-card{
      padding:48px 40px;
      border-right:1px solid #E8E8E8;
      border-bottom:1px solid #E8E8E8;
      display:flex;flex-direction:column;gap:16px;
      transition:background .25s;
    }
.service-opt-card:nth-child(2n){border-right:none}
.service-opt-card:nth-child(3),.service-opt-card:nth-child(4){border-bottom:none}
.service-opt-card:hover{background:#F8F8F7}
.service-opt-num{font-size:12px;letter-spacing:.1em;color:#B0B0B5}
.service-opt-name{
      font-size:clamp(16px,1.8vw,22px);
      font-weight:700;letter-spacing:-.02em;color:#28282D;
      line-height:1.3;
    }
.service-opt-link{
      margin-top:auto;font-size:12px;color:#28282D;
      letter-spacing:.04em;text-decoration:none;
      display:inline-flex;align-items:center;gap:6px;
    }
.service-opt-link:hover{opacity:.5}
.btn-cta-primary{
      display:inline-flex;align-items:center;justify-content:center;
      padding:0 40px;
      height:56px;
      background:#28282D;color:#fff;
      font-size:15px;font-weight:600;letter-spacing:.06em;
      text-decoration:none;
      border:2px solid #28282D;
      transition:background .2s,color .2s;
      align-self:flex-start;
      margin-top:40px;
    }
.btn-cta-primary:hover{background:transparent;color:#28282D}
.area-sec{border-top:1px solid #E8E8E8}
.area-inner{
      display:grid;grid-template-columns:1fr 1fr;
      min-height:400px;
    }
.area-left{
      padding:80px;
      border-right:1px solid #E8E8E8;
      display:flex;flex-direction:column;justify-content:center;
    }
.area-eyebrow{font-size:12px;letter-spacing:.15em;color:#767680;margin-bottom:24px}
.area-h2{
      font-size:var(--sec-h2-size);
      font-weight:var(--sec-h2-weight);letter-spacing:var(--sec-h2-letter-spacing);
      line-height:var(--sec-h2-line-height);color:#28282D;
      margin-bottom:24px;
    }
.area-desc{font-size:16px;line-height:1.8;color:#3D3D42;max-width:400px}
.area-right{
      padding:80px;
      background:#EDEDEE;
      display:flex;flex-direction:column;justify-content:center;
    }
.area-tags{
      display:flex;flex-wrap:wrap;gap:12px;
      margin-bottom:40px;
    }
.area-tag{
      display:inline-flex;align-items:center;gap:8px;
      padding:10px 20px;
      border:1px solid #C0C0C0;
      font-size:16px;color:#28282D;
      letter-spacing:.02em;
      transition:background .2s,border-color .2s;
    }
.area-tag:hover{background:#F3F4F6;border-color:#C0C0C0}
.area-tag-main{
      background:#28282D;color:#fff;border-color:#28282D;
    }
.area-tag-main:hover{background:#444;border-color:#444}
.area-tag-dot{
      width:6px;height:6px;border-radius:50%;
      background:currentColor;opacity:.5;
    }
.area-note{font-size:14px;color:#767680;line-height:1.7}
.area-group{margin-bottom:32px}
.area-group:last-child{margin-bottom:0}
.area-group-label{
      font-size:12px;letter-spacing:.12em;color:#767680;
      margin-bottom:12px;display:flex;align-items:center;gap:8px;
    }
.area-group-label::before{
      content:'';display:inline-block;
      width:8px;height:8px;border-radius:50%;
    }
.area-group-label.easy::before{background:#28282D}
.area-group-label.adjust::before{background:#B0B0B5}
.area-group-label.online::before{background:#D8D8DB;border:1px solid #B0B0B5}
.area-group .area-tags{margin-bottom:0}
.faq-sec{border-top:1px solid #E8E8E8;padding-bottom:80px}
.faq-head{
      padding:80px 80px 52px;
      display:flex;align-items:flex-end;justify-content:space-between;
    }
.faq-h2{
      font-size:clamp(40px,5.5vw,72px);
      font-weight:700;letter-spacing:-.04em;color:#28282D;
    }
.faq-list{border-top:1px solid #E8E8E8}
.faq-item{
      border-bottom:1px solid #E8E8E8;
      overflow:hidden;
    }
.faq-q{
      display:flex;align-items:flex-start;gap:24px;
      padding:32px 80px;
      cursor:pointer;
      list-style:none;
      transition:background .2s;
    }
.faq-q:hover{background:#F8F8F7}
.faq-q-mark{
      font-size:13px;letter-spacing:.06em;color:#767680;
      font-weight:700;flex-shrink:0;margin-top:2px;
    }
.faq-q-text{
      font-size:clamp(15px,1.6vw,18px);
      font-weight:700;color:#28282D;
      letter-spacing:-.01em;line-height:1.5;
      flex:1;
    }
.faq-q-icon{
      flex-shrink:0;width:20px;height:20px;
      position:relative;margin-top:2px;
    }
.faq-q-icon::before,.faq-q-icon::after{
      content:'';position:absolute;
      background:#28282D;border-radius:1px;
    }
.faq-q-icon::before{width:20px;height:1px;top:50%;left:0;transform:translateY(-50%)}
.faq-q-icon::after{width:1px;height:20px;top:0;left:50%;transform:translateX(-50%);transition:transform .3s,opacity .3s}
.faq-item.open .faq-q-icon::after{transform:translateX(-50%) rotate(90deg);opacity:0}
.faq-a{
      max-height:0;overflow:hidden;
      transition:max-height .4s cubic-bezier(.16,1,.3,1);
    }
.faq-item.open .faq-a{max-height:300px}
.faq-a-inner{
      display:flex;gap:24px;
      padding:0 80px 32px;
    }
.faq-a-mark{
      font-size:13px;letter-spacing:.06em;color:#28282D;
      font-weight:700;flex-shrink:0;margin-top:2px;
    }
.faq-a-text{
      font-size:16px;color:#3D3D42;line-height:1.8;
      letter-spacing:.01em;
    }
.fu{opacity:0;transform:translateY(24px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}
.fu.on{opacity:1;transform:translateY(0)}
@media(max-width:900px){
      .hd{padding:0 20px;height:60px}.hd-nav{display:none}
      .hd-logo img{height:28px}
      .hd-hamburger{display:flex}
      .hd-drawer{display:block}
      .hd-btns{display:none}
      .kv{padding:40px 24px 60px}
      .kv-stats{display:grid;grid-template-columns:1fr 1fr;gap:0}
      .kv-stat{border-right:none;margin-right:0;padding-right:0;border-bottom:1px solid #E8E8E8;padding:24px 20px;text-align:center}
      .kv-stat:nth-child(odd){border-right:1px solid #E8E8E8}
      .kv-stat:nth-child(3),.kv-stat:nth-child(4){border-bottom:none}
      .kv-stat:last-child{border-bottom:none;padding-bottom:24px}
      .sec-head{padding:80px 24px 48px;flex-direction:column;gap:24px}

      .challenge-head{padding:80px 24px 48px;flex-direction:column;gap:24px}
      /* スプリットビュー SP（タブレット） */
      .challenge-split{grid-template-columns:1fr;min-height:auto}
      .challenge-split-left{padding:64px 40px 56px}
      .challenge-split-right{
        clip-path:polygon(0 5%,100% 0,100% 100%,0 100%);
        padding:72px 40px 64px;
        min-height:280px;
      }
      .challenge-overall-top{grid-template-columns:1fr;padding:48px 24px 32px;gap:32px}
      .challenge-overall-steps{grid-template-columns:1fr;border-left:none}
      .challenge-overall-step{border-right:none;border-bottom:1px solid #E8E8E8}
      .challenge-overall-bottom{grid-template-columns:1fr;padding:32px 24px;gap:24px}
      .challenge-grid{grid-template-columns:repeat(2,1fr)}
      .challenge-card{border-bottom:1px solid #E8E8E8}
      .challenge-card:nth-child(even){border-right:none}
      .challenge-card:nth-last-child(-n+2){border-bottom:none}
      .voice-head,.works-head{padding:80px 24px 48px;flex-direction:column;gap:20px;align-items:flex-start}
      .voice-grid{grid-template-columns:1fr;gap:16px;}
      .voice-card{border:1px solid #E8E8E8;}
      .works-grid{grid-template-columns:1fr;gap:16px;}
      .work-card{border:1px solid #E8E8E8;}
      .cta{padding:56px 24px}
      .about-inner{grid-template-columns:1fr}
      .about-text{padding:80px 24px}
      .about-visual{min-height:280px}
      .news-head{padding:60px 24px 36px;flex-direction:column;gap:20px;align-items:flex-start}
      .news-item{grid-template-columns:1fr;padding:20px 24px;gap:6px}
      .footer{padding:60px 24px 40px}
      .footer-top{flex-direction:column;gap:40px}
      .footer-nav{grid-template-columns:1fr 1fr;gap:28px}
      .footer-bottom{flex-direction:column;gap:12px;align-items:flex-start}
      .service-opt-inner{grid-template-columns:1fr}
      .service-opt-left{padding:60px 24px 40px;border-right:none;border-bottom:1px solid #E8E8E8}
      .service-opt-right{grid-template-columns:1fr}
      .service-opt-card{border-right:none;padding:32px 24px}
      .service-opt-card:nth-child(3){border-bottom:1px solid #E8E8E8}
      .service-opt-name{font-size:18px}
      .area-inner{grid-template-columns:1fr}
      .area-left{padding:60px 24px 40px;border-right:none;border-bottom:1px solid #E8E8E8}
      .area-right{padding:40px 24px 60px}
      .faq-head{padding:60px 24px 36px;flex-direction:column;gap:20px;align-items:flex-start}
      .faq-q{padding:24px}
      .faq-a-inner{padding:0 24px 24px}
      .sns-bar{flex-direction:column;align-items:flex-start;padding:40px 24px;gap:24px}
      .sns-bar-links{flex-wrap:wrap;gap:12px}
      .sns-bar-link{padding:12px 20px;font-size:12px}
    }
.sp-fixed-cta{
      display:none;
      position:fixed;
      bottom:0;left:0;right:0;
      background:#28282D;
      padding:12px 16px;
      padding-bottom:calc(12px + env(safe-area-inset-bottom));
      z-index:90;
      box-shadow:0 -2px 12px rgba(0,0,0,.15);
      transform:translateY(100%);
      transition:transform .3s ease,opacity .3s ease;
      opacity:0;
    }
.sp-fixed-cta.visible{
      transform:translateY(0);
      opacity:1;
    }
.sp-fixed-cta-inner{
      display:flex;
      align-items:center;
      gap:10px;
    }
.sp-fixed-cta-consult{
      flex:1;
      display:flex;align-items:center;justify-content:center;
      height:48px;
      background:#fff;
      color:#28282D;
      font-size:16px;
      font-weight:600;
      text-decoration:none;
      border-radius:4px;
      letter-spacing:.02em;
    }
.sp-fixed-cta-tel{
      display:flex;align-items:center;justify-content:center;gap:6px;
      height:48px;
      padding:0 16px;
      border:1.5px solid rgba(255,255,255,.4);
      border-radius:4px;
      color:#fff;
      text-decoration:none;
      white-space:nowrap;
    }
.sp-fixed-cta-tel-icon{
      flex-shrink:0;
    }
.sp-fixed-cta-tel-num{
      font-size:13px;
      font-weight:500;
      letter-spacing:.03em;
    }
@media(min-width:769px){
      .sp-fixed-cta{display:none!important}
      /* results-gallery-full PC用余白 */
      .results-gallery-full{
        gap:0 32px;
        padding:0 80px;
      }
    }
@media(max-width:768px){
      .sp-fixed-cta{display:block}
      .sp-swipe-hint{display:block}
      body{padding-bottom:80px}
      .challenge-grid{grid-template-columns:1fr}
      .challenge-card{border-right:none;border-bottom:1px solid #E8E8E8;padding:36px 24px;min-height:auto}
      .challenge-card:last-child{border-bottom:none}
      
      .kv-h1{font-size:clamp(32px,9.5vw,56px);margin-bottom:24px;line-height:1.1}
      .kv-body{font-size:16px;margin-bottom:36px}
      
      .notice-bar{flex-wrap:wrap}
      .notice-bar-label{order:1;padding:12px 16px;font-size:11px}
      .notice-bar-item{order:2;flex:1 1 100%;padding:10px 16px;gap:12px}
      .notice-bar-title{white-space:normal;overflow:visible;text-overflow:clip;font-size:13px}
      .notice-bar-all{order:3;border-left:none;border-top:1px solid #E8E8E8;padding:10px 16px;width:100%;text-align:right}
      
      .cta-h2{font-size:clamp(26px,7.5vw,40px)}
      .cta-actions{flex-direction:column;align-items:flex-start;gap:20px}
      .btn-cta{width:100%;justify-content:center;height:52px}
      /* [5] challenge-split-tags: SP 2列表示 */
      .challenge-split-tags{flex-direction:row;flex-wrap:wrap}
      .challenge-split-tags .challenge-tag{width:50%;box-sizing:border-box}
      /* [6] challenge-tags-wrap: SP 2列表示維持 */
      .challenge-tags-wrap .challenge-tag{width:50%;font-size:13px;padding:10px 10px}
    }


/* ========================================
   Page-specific CSS (unique rules per page)
   ======================================== */
.breadcrumb{
      padding:12px 80px;
      background:#fff;
      border-bottom:1px solid #E8E8E8;
    }
.breadcrumb ol{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.breadcrumb li{font-size:12px;color:#9B9BA0;display:flex;align-items:center;gap:8px}
.breadcrumb li::after{content:'/';}
.breadcrumb li:last-child::after{content:''}
.breadcrumb a{color:#9B9BA0;transition:color .2s}
.breadcrumb a:hover{color:#28282D}
.breadcrumb span{color:#28282D}
.breadcrumb-sp{display:none;padding:12px 20px;background:#fff;border-top:1px solid #E8E8E8}
.breadcrumb-sp ol{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.breadcrumb-sp li{font-size:12px;color:#9B9BA0;display:flex;align-items:center;gap:8px}
.breadcrumb-sp li::after{content:'/'}
.breadcrumb-sp li:last-child::after{content:''}
.breadcrumb-sp a{color:#9B9BA0;transition:color .2s}
.breadcrumb-sp span{color:#28282D}
.breadcrumb-sp-footer{display:none;}
.btn-primary{
      display:inline-flex;align-items:center;justify-content:center;
      height:56px;padding:0 40px;
      background:#fff;color:#28282D;
      font-size:14px;letter-spacing:.06em;font-weight:700;
      border:1px solid #fff;
      transition:background .2s,color .2s,border-color .2s;
    }
.btn-primary:hover{background:transparent;color:#fff;border-color:#fff}
.btn-plan{
      display:flex;align-items:center;justify-content:center;
      height:48px;
      border:1.5px solid #28282D;
      color:#28282D;font-size:14px;font-weight:700;letter-spacing:.04em;
      margin-top:auto;
      transition:background .2s,color .2s;
    }
.btn-plan:hover{background:#28282D;color:#fff}
.kv::before{content:'';display:none;}
.kv-inner{
      max-width:1200px;width:100%;
      display:grid;
      grid-template-columns:1fr;
      gap:0;
      align-items:center;
      position:relative;z-index:1;
    }
.kv-right{
      display:block;
      position:absolute;
      top:50%;
      right:-60px;
      transform:translateY(-50%);
      width:520px;
      height:520px;
      pointer-events:none;
      z-index:0;
    }
.kv-left{
      position:relative;
      z-index:1;
    }
.kv-splash{
      width:100%;
      height:100%;
      object-fit:contain;
      opacity:.85;
      mix-blend-mode:screen;
      filter:none;
      animation:splashFloat 6s ease-in-out infinite;
    }
@keyframes splashFloat{
      0%,100%{transform:translateY(0) rotate(-2deg);}
      50%{transform:translateY(-12px) rotate(2deg);}
    }
.kv-sub{
      font-size:clamp(14px,1.6vw,18px);
      font-weight:400;line-height:1.8;
      letter-spacing:-.01em;
      color:#ffffff;
      margin-bottom:56px;
      max-width:520px;
    }
.kv-actions{display:flex;align-items:center;gap:40px;flex-wrap:wrap;}
.kv-tel-wrap{}
.kv-tel-label{font-size:11px;letter-spacing:.18em;color:#ffffff;margin-bottom:6px;text-transform:uppercase;font-weight:600;}
.kv-tel{font-size:24px;font-weight:400;letter-spacing:-.02em;color:#fff;}
.kv-badge-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:32px;}
.kv-badge{
      display:inline-flex;align-items:center;
      padding:6px 14px;
      border:1px solid rgba(255,255,255,.3);
      font-size:12px;color:#28282D;letter-spacing:.04em;
      background:#ffffff;
    }
.problem-sec{
      background:#fff;
      padding:100px 80px;
      border-top:1px solid #E8E8E8;
    }
.problem-inner{max-width:1100px;margin:0 auto}
.problem-head{margin-bottom:64px}
.problem-cards{
      display:grid;grid-template-columns:repeat(3,1fr);
      border:1px solid #E0E0E0;
    }
.problem-card{
      padding:40px 32px 48px;
      border-right:1px solid #E0E0E0;
    }
.problem-card:last-child{border-right:none}
.problem-num{
      display:block;font-size:11px;letter-spacing:.18em;
      color:#C0C0C5;font-weight:700;margin-bottom:20px;
    }
.problem-title{
      font-size:clamp(20px,2.4vw,30px);
      font-weight:700;line-height:1.25;
      letter-spacing:-.03em;color:#28282D;
      margin-bottom:12px;
    }
.problem-desc{
      font-size:16px;line-height:1.8;color:#767680;
    }
.results-sec{
      background:#F7F7F5;
      padding:100px 80px;
      border-top:1px solid #E8E8E8;
    }
.results-inner{max-width:1100px;margin:0 auto}
.results-head{margin-bottom:64px}
.results-eyebrow{
      display:block;font-size:11px;letter-spacing:.22em;
      color:#9B9BA0;font-weight:700;text-transform:uppercase;
      margin-bottom:16px;
    }
.results-h2{
      font-size:clamp(28px,3.5vw,48px);
      font-weight:700;line-height:1.2;
      letter-spacing:-.03em;color:#28282D;
      margin-bottom:20px;
    }
.results-grid{
      display:grid;
      grid-template-columns:repeat(2,1fr);
      gap:0;
      border:1px solid #E0E0E0;
    }
.result-card{
      background:#fff;
      padding:40px 40px 48px;
      border-right:1px solid #E0E0E0;
      border-bottom:1px solid #E0E0E0;
      display:flex;flex-direction:column;
    }
.result-card:nth-child(2n){border-right:none}
.result-card:nth-child(3),.result-card:nth-child(4){border-bottom:none}
.result-industry{
      font-size:11px;letter-spacing:.18em;
      color:#9B9BA0;font-weight:700;
      text-transform:uppercase;margin-bottom:16px;
    }
.result-title{
      font-size:clamp(16px,1.6vw,19px);
      font-weight:700;line-height:1.45;
      letter-spacing:-.02em;color:#28282D;
      margin-bottom:8px;
    }
.result-point{
      font-size:13px;line-height:1.7;
      color:#767680;
      margin-bottom:28px;
    }
.result-metric-row{
      display:flex;align-items:flex-end;gap:16px;
      margin-bottom:24px;
    }
.result-metric-num{
      font-size:clamp(40px,4.5vw,64px);
      font-weight:900;line-height:1;
      letter-spacing:-.04em;
      color:#0077B6;
      display:inline-block;
      transform-origin:left center;
      will-change:transform;
    }
.result-metric-unit{
      font-size:16px;font-weight:700;color:#0077B6;
      padding-bottom:8px;
    }
.result-chart-wrap{
      position:relative;
      height:140px;
      margin-top:auto;
    }
.case-sec{
      background:#28282D;
      padding:100px 80px;
    }
.case-inner{max-width:1100px;margin:0 auto}
.case-head{margin-bottom:64px}
.case-eyebrow{
      display:block;font-size:11px;letter-spacing:.22em;
      color:#ffffff;font-weight:700;text-transform:uppercase;
      margin-bottom:16px;
    }
.case-eyebrow::before{background:rgba(255,255,255,.4) !important;}
.case-h2{
      font-size:clamp(28px,3.5vw,48px);
      font-weight:700;line-height:1.2;
      letter-spacing:-.03em;color:#ffffff;
      margin-bottom:20px;
    }
.case-body-text{
      font-size:16px;line-height:1.9;
      color:#ffffff;max-width:600px;
    }
.case-grid{
      display:grid;grid-template-columns:repeat(3,1fr);
      gap:0;
      background:#ffffff;
      border-radius:4px;
      overflow:hidden;
    }
.case-card{
      padding:56px 48px 64px;
      border-right:1px solid #E0E0E0;
      display:flex;flex-direction:column;
      background:#ffffff;
    }
.case-card:last-child{border-right:none}
.case-industry{
      display:block;font-size:11px;letter-spacing:.18em;
      color:#9B9BA0;font-weight:700;
      text-transform:uppercase;margin-bottom:20px;
    }
.case-title{
      font-size:clamp(20px,2.4vw,30px);
      font-weight:700;line-height:1.25;
      letter-spacing:-.03em;color:#28282D;
      margin-bottom:16px;
    }
.case-summary{
      font-size:16px;line-height:1.8;
      color:#5A5A60;
      margin-bottom:28px;flex:1;
    }
.case-ba{
      border-top:1px solid #E8E8E8;
      padding-top:24px;
      display:grid;grid-template-columns:1fr auto 1fr;
      gap:8px;align-items:center;
    }
.case-ba-col{display:flex;flex-direction:column;gap:4px}
.case-ba-col.after{text-align:right}
.case-ba-label{
      font-size:10px;letter-spacing:.16em;
      color:#9B9BA0;font-weight:700;
      text-transform:uppercase;
    }
.case-ba-num{
      font-size:clamp(22px,2.4vw,30px);
      font-weight:800;line-height:1;
      letter-spacing:-.03em;
    }
.case-ba-col:not(.after) .case-ba-num{color:#28282D}
.case-ba-col.after .case-ba-num{
      font-size:clamp(40px,4.5vw,64px);
      color:#28282D;
      font-weight:900;
      letter-spacing:-.04em;
      display:inline-block;
      transform-origin:right center;
      will-change:transform;
    }
.case-ba-unit{
      font-size:12px;color:#9B9BA0;
      line-height:1.4;
    }
.case-ba-col.after .case-ba-unit{color:#28282D;font-weight:700}
.case-ba-arrow{
      display:flex;align-items:center;justify-content:center;
      font-size:20px;color:#C0C0C5;
    }
.case-ba-metric{
      grid-column:1/-1;
      font-size:11px;letter-spacing:.1em;
      color:#9B9BA0;font-weight:700;
      text-transform:uppercase;margin-bottom:8px;
    }
.voice-more{font-size:12px;color:#767680;margin-top:8px}
.targeting-sec{
      background:#F7F7F7;
      padding:100px 80px;
      border-top:1px solid #E8E8E8;
    }
.targeting-inner{max-width:1100px;margin:0 auto}
.targeting-head{margin-bottom:64px}
.targeting-grid{
      display:grid;
      grid-template-columns:repeat(3,1fr);
      gap:24px;
    }
.targeting-card{
      background:#fff;
      border-radius:12px;
      padding:32px 28px;
      border:1px solid #E8E8E8;
      transition:box-shadow .25s,transform .25s;
    }
.targeting-card:hover{
      box-shadow:0 8px 32px rgba(0,0,0,.08);
      transform:translateY(-4px);
    }
.targeting-card.is-geo{
      border-color:#0077B6;
      background:linear-gradient(135deg,#fff 80%,rgba(0,119,182,.04));
    }
.targeting-card-num{
      font-size:11px;letter-spacing:.18em;color:#0077B6;
      font-weight:700;margin-bottom:12px;
    }
.targeting-card-icon{
      width:40px;height:40px;
      background:rgba(0,119,182,.08);
      border-radius:8px;
      display:flex;align-items:center;justify-content:center;
      margin-bottom:16px;
    }
.targeting-card-icon svg{width:20px;height:20px;stroke:#0077B6;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.targeting-card-title{
      font-size:17px;font-weight:700;
      color:#28282D;line-height:1.45;
      margin-bottom:10px;
    }
.targeting-card-desc{
      font-size:16px;line-height:1.75;
      color:#5A5A60;
    }
.targeting-card-tags{
      display:flex;flex-wrap:wrap;gap:6px;
      margin-top:16px;
    }
.targeting-card-tag{
      font-size:11px;letter-spacing:.06em;
      background:#F0F4F8;color:#4A4A50;
      border-radius:4px;padding:3px 8px;
    }
.targeting-card.is-geo .targeting-card-tag{
      background:rgba(0,119,182,.08);color:#0077B6;
    }
.flow-sec{
      background:#fff;
      padding:100px 80px;
      border-top:1px solid #E8E8E8;
    }
.flow-inner{max-width:1100px;margin:0 auto}
.flow-head{margin-bottom:72px}
.flow-items{display:flex;flex-direction:column;gap:0}
.flow-item{
      display:grid;
      grid-template-columns:200px 1fr;
      gap:0;
      border-top:1px solid #E8E8E8;
      align-items:start;
      padding:56px 0;
    }
.flow-item:last-child{border-bottom:1px solid #E8E8E8}
.flow-item-num{
      font-size:clamp(80px,10vw,140px);
      font-weight:800;line-height:1;
      letter-spacing:-.05em;
      color:rgba(40,40,45,.07);
      font-variant-numeric:tabular-nums;
      user-select:none;padding-top:4px;
    }
.flow-item-body{
      padding:0 0 0 40px;
      border-left:1px solid #E8E8E8;
    }
.flow-item-step{
      font-size:11px;letter-spacing:.22em;
      color:rgba(40,40,45,.4);font-weight:700;
      display:block;margin-bottom:14px;text-transform:uppercase;
    }
.flow-item-title{
      font-size:clamp(20px,2.4vw,30px);
      font-weight:700;line-height:1.25;
      letter-spacing:-.03em;color:#28282D;
      margin-bottom:16px;
    }
.flow-item-desc{
      font-size:16px;line-height:1.9;
      color:#5A5A60;max-width:560px;
    }
.flow-item-tag{
      display:inline-flex;align-items:center;
      margin-top:20px;
      font-size:12px;letter-spacing:.1em;
      color:rgba(40,40,45,.4);font-weight:600;gap:6px;
    }
.flow-item-tag::before{
      content:'';display:block;width:20px;height:1px;
      background:rgba(40,40,45,.25);
    }
.badge-sec{
      background:#28282D;
      padding:64px 80px;
      border-top:1px solid rgba(255,255,255,.08);
    }
.badge-inner{
      max-width:1100px;margin:0 auto;
      display:flex;align-items:center;justify-content:space-between;gap:48px;
    }
.badge-head{flex:1;}
.badge-label{
      display:block;font-size:11px;letter-spacing:.22em;
      color:#ffffff;font-weight:700;text-transform:uppercase;
      margin-bottom:16px;
    }
.badge-title{
      font-size:clamp(28px,3.5vw,48px);
      font-weight:700;line-height:1.2;
      letter-spacing:-.03em;color:#ffffff;
      margin-bottom:20px;
    }
.badge-desc{
      font-size:16px;line-height:1.9;
      color:#ffffff;max-width:600px;
    }
.badge-card{
      background:#ffffff;
      border-radius:4px;
      padding:40px 48px;
      display:flex;align-items:center;justify-content:space-between;
      gap:48px;
    }
.badge-img-block{
      flex-shrink:0;
      display:flex;align-items:center;
      width:180px;
    }
.badge-placeholder{
      width:160px;height:80px;
      border:2px dashed #C8C8C8;
      border-radius:4px;
      display:flex;align-items:center;justify-content:center;
      flex-direction:column;gap:6px;
      background:#F7F7F5;
    }
.badge-placeholder-label{
      font-size:10px;letter-spacing:.1em;text-transform:uppercase;
      color:#9B9BA0;font-weight:600;
    }
.badge-placeholder-note{
      font-size:10px;color:#B0B0B5;text-align:center;line-height:1.5;
    }
.badge-cert-list{
      display:flex;flex-direction:column;gap:10px;
    }
.badge-cert-item{
      display:flex;align-items:center;gap:10px;
      font-size:16px;color:#28282D;font-weight:500;
    }
.badge-cert-item::before{
      content:'';display:block;width:6px;height:6px;
      border-radius:50%;background:#0077B6;flex-shrink:0;
    }
.plan-sec{
      background:#F7F7F5;
      padding:100px 80px;
      border-top:1px solid #E8E8E8;
    }
.plan-inner{max-width:1100px;margin:0 auto}
.plan-head{margin-bottom:64px}
.plan-note-box{
      border:1px solid #E0E0E0;
      background:#fff;
      padding:28px 32px;
      margin-bottom:40px;
      display:flex;gap:16px;align-items:flex-start;
    }
.plan-note-icon{
      flex-shrink:0;width:20px;height:20px;margin-top:2px;
      color:#9B9BA0;
    }
.plan-note-text{
      font-size:16px;line-height:1.8;color:#5A5A60;
    }
.plan-grid{
      display:grid;
      grid-template-columns:repeat(2,1fr);
      gap:0;
      border:1px solid #E0E0E0;
    }
.plan-card{
      padding:48px 40px 56px;
      border-right:1px solid #E0E0E0;
      display:flex;flex-direction:column;
      background:#fff;
      position:relative;
      transition:background .25s;
    }
.plan-card:last-child{border-right:none}
.plan-card:hover{background:#F8F8F8}
.plan-type{
      font-size:11px;letter-spacing:.22em;color:#9B9BA0;
      margin-bottom:16px;font-weight:700;text-transform:uppercase;
    }
.plan-name{
      font-size:clamp(20px,2.2vw,26px);
      font-weight:700;line-height:1.3;
      letter-spacing:-.03em;color:#28282D;
      margin-bottom:8px;
    }
.plan-tagline{
      font-size:13px;color:#767680;
      line-height:1.6;margin-bottom:32px;
    }
.plan-price{
      font-size:clamp(32px,4vw,48px);
      font-weight:800;line-height:1;
      letter-spacing:-.04em;color:#28282D;
      margin-bottom:4px;
    }
.plan-price-note{
      font-size:14px;color:#9B9BA0;
      margin-bottom:28px;
    }
.plan-divider{height:1px;background:#E8E8E8;margin-bottom:28px}
.plan-features{display:flex;flex-direction:column;gap:12px;margin-bottom:36px;flex:1}
.plan-feature{
      font-size:16px;color:#28282D;line-height:1.5;
      padding-left:20px;position:relative;
    }
.plan-feature::before{
      content:'';position:absolute;left:0;top:8px;
      width:8px;height:1px;background:#28282D;
    }
.plan-fee-table{
      width:100%;border-collapse:collapse;
      margin-bottom:8px;
      display:table;
    }
.plan-fee-row{
      display:grid;grid-template-columns:1fr 1fr;
      border-bottom:1px solid #E8E8E8;
      padding:14px 0;
      font-size:18px;color:#28282D;
      font-weight:700;
    }
.plan-fee-header{
      font-size:11px;color:#9B9BA0;
      font-weight:600;letter-spacing:.06em;
      text-transform:uppercase;
      border-bottom:2px solid #28282D;
    }
.plan-fee-price{
      font-weight:700;color:#0077B6;
    }
.plan-caution{
      font-size:12px;color:#5A5A60;line-height:1.7;
      margin-bottom:28px;
    }
.seo-banner{
      background:#fff;
      border-top:1px solid #E8E8E8;
      padding:32px 80px;
    }
.seo-banner-inner{
      max-width:1100px;margin:0 auto;
      display:flex;align-items:center;justify-content:space-between;gap:32px;
      flex-wrap:wrap;
    }
.seo-banner-left{display:flex;align-items:center;gap:20px}
.seo-banner-icon{
      flex-shrink:0;width:40px;height:40px;
      color:#9B9BA0;
    }
.seo-banner-label{
      font-size:10px;letter-spacing:.18em;color:#9B9BA0;
      font-weight:700;text-transform:uppercase;
      display:block;margin-bottom:4px;
    }
.seo-banner-text{font-size:16px;font-weight:600;color:#28282D;margin-bottom:4px}
.seo-banner-sub{font-size:13px;color:#767680;line-height:1.6}
.seo-banner-btn{
      display:inline-flex;align-items:center;
      height:44px;padding:0 24px;
      border:1.5px solid #28282D;
      font-size:13px;font-weight:600;color:#28282D;
      letter-spacing:.04em;white-space:nowrap;
      transition:background .2s,color .2s;
    }
.seo-banner-btn:hover{background:#28282D;color:#fff}
.faq-item:last-child{border-bottom:1px solid #E8E8E8}
.cta-sec{
      background:#28282D;
      padding:72px 80px;
    }
.blog-sec{
      background:#fff;
      border-top:1px solid #E8E8E8;
      padding:100px 80px;
    }
.blog-inner{max-width:1100px;margin:0 auto}
.blog-head{
      display:flex;align-items:flex-end;justify-content:space-between;
      margin-bottom:56px;gap:24px;flex-wrap:wrap;
    }
.blog-h2{
      font-size:var(--sec-h2-size,clamp(36px,4.2vw,60px));
      font-weight:900;line-height:1.2;
      letter-spacing:-.04em;color:#28282D;
    }
.view-all::after{content:'→';font-size:14px}
.blog-grid{
      display:grid;grid-template-columns:repeat(3,1fr);
      gap:0;border:1px solid #E0E0E0;
    }
.blog-card{
      padding:40px 32px 48px;
      border-right:1px solid #E0E0E0;
      display:flex;flex-direction:column;
      transition:background .2s;
    }
.blog-card:last-child{border-right:none}
.blog-card:hover{background:#F8F8F7}
.blog-cat{
      font-size:11px;letter-spacing:.18em;color:#767680;
      font-weight:700;text-transform:uppercase;margin-bottom:16px;
    }
.blog-title{
      font-size:clamp(15px,1.6vw,18px);
      font-weight:600;line-height:1.5;
      letter-spacing:-.02em;color:#28282D;
      margin-bottom:auto;padding-bottom:24px;
    }
.blog-date{font-size:12px;color:#9B9BA0;margin-top:auto}
.footer-sns a{
      display:flex;align-items:center;justify-content:center;
      width:36px;height:36px;
      border:1px solid #D8D8DC;
      border-radius:50%;
      transition:background .2s,border-color .2s;
    }
.footer-sns a:hover{background:#28282D;border-color:#28282D}
.footer-sns a:hover svg rect,.footer-sns a:hover svg circle,.footer-sns a:hover svg path{stroke:#fff}
.footer-nav-group{}
@media(max-width:480px){
      .footer-nav{grid-template-columns:1fr}
    }
@keyframes sp-slide-up{
      from{opacity:0;transform:translateY(48px)}
      to{opacity:1;transform:translateY(0)}
    }
@keyframes sp-fade-in{
      from{opacity:0}
      to{opacity:1}
    }
@keyframes sp-line-grow{
      from{width:0}
      to{width:32px}
    }
@media(max-width:767px){

      
      .kv{
        padding:0;
        min-height:auto;
        display:flex;
        align-items:flex-start;
        background:#28282D;
        position:relative;
        overflow:hidden;
      }
      
      .kv::after{
        content:'';
        position:absolute;
        bottom:0;left:0;right:0;
        height:40%;
        background:linear-gradient(to top, rgba(0,0,0,.25) 0%, transparent 100%);
        pointer-events:none;
        z-index:0;
      }
      .kv-inner{
        padding:80px 20px 52px;
        gap:0;
        position:relative;
        z-index:1;
      }
      
      .kv-h1{
        font-size:clamp(38px,10.5vw,54px);
        font-weight:900;
        line-height:1.05;
        letter-spacing:-.04em;
        margin-bottom:20px;
        
        animation:sp-slide-up .8s cubic-bezier(.22,1,.36,1) both;
        animation-delay:.1s;
      }
      .kv-eyebrow{
        animation:sp-fade-in .6s ease both;
        animation-delay:0s;
      }
      .kv-eyebrow::before{
        animation:sp-line-grow .6s ease both;
        animation-delay:.2s;
      }
      .kv-sub{
        font-size:16px;
        line-height:1.8;
        margin-bottom:36px;
        animation:sp-slide-up .8s cubic-bezier(.22,1,.36,1) both;
        animation-delay:.25s;
      }
      .kv-actions{
        flex-direction:column;
        align-items:stretch;
        gap:14px;
        animation:sp-slide-up .8s cubic-bezier(.22,1,.36,1) both;
        animation-delay:.4s;
      }
      .btn-primary{
        width:100%;
        text-align:center;
        justify-content:center;
        padding:0 20px;
        height:52px;
        font-size:16px;
        letter-spacing:.08em;
      }
      .kv-tel-label{font-size:11px;letter-spacing:.18em}
      .kv-tel{font-size:22px}
      .kv-badge-row{
        flex-wrap:wrap;
        gap:8px;
        margin-top:28px;
        animation:sp-fade-in .8s ease both;
        animation-delay:.55s;
      }
      .kv-badge{font-size:11px;padding:5px 12px}

      /* KV スマホ用テキスト色（背景が#28282Dになるため白に変更） */
      .kv-h1{color:#ffffff}
      .kv-sub{color:rgba(255,255,255,.85)}
      .kv-eyebrow{color:rgba(255,255,255,.55)}
      .kv-body{color:rgba(255,255,255,.8)}
      /* TOPページは白背景のため黒に戻す */
      body.page-top .kv-h1{color:#28282D !important}
      body.page-top .kv-eyebrow{color:#767680 !important}
      body.page-top .kv-body{color:#4A4A50 !important}
      .kv-badge{
        color:rgba(255,255,255,.7);
        border-color:rgba(255,255,255,.25);
        background:rgba(255,255,255,.06);
      }
      
      .breadcrumb{display:none}

      
      
      .problem-sec{background:#F7F7F8}
      .results-sec{background:#fff}
      .case-sec{background:#28282D}
      .voice-sec{background:#fff}
      .targeting-sec{background:#F7F7F8}
      .flow-sec{background:#fff}
      .badge-sec{background:#28282D} 
      .plan-sec{background:#fff}
      .faq-sec{background:#F7F7F8}
      .challenge-sec{background:#fff}
      .blog-sec{background:#F7F7F8}

      
      .fu{
        opacity:0;
        transform:translateY(40px);
        transition:opacity .7s cubic-bezier(.22,1,.36,1), transform .7s cubic-bezier(.22,1,.36,1);
      }
      .fu.on{
        opacity:1;
        transform:translateY(0);
      }
      
      .fu:nth-child(2){transition-delay:.08s}
      .fu:nth-child(3){transition-delay:.16s}
      .fu:nth-child(4){transition-delay:.24s}
      .fu:nth-child(5){transition-delay:.32s}
      .fu:nth-child(6){transition-delay:.40s}

      
      .sec-h2,
      .sec-title-lg,
      .blog-h2{
        font-size:var(--sec-h2-size-sp,clamp(28px,7.5vw,44px));
        font-weight:900;
        line-height:1.15;
        letter-spacing:-.04em;
      }
      .sec-eyebrow{
        font-size:10px;
        letter-spacing:.2em;
        margin-bottom:12px;
      }
      .sec-body{
        font-size:16px;
        line-height:1.85;
      }

      
      .problem-sec{padding:56px 0}
      .problem-inner{padding:0}
      .problem-head{padding:0 20px;margin-bottom:32px}
      .problem-head .sec-eyebrow,
      .problem-head .sec-h2,
      .problem-head .sec-body{padding:0}
      .problem-head .sec-h2{font-size:clamp(22px,6vw,32px);line-height:1.35;}
      .problem-cards{
        display:flex;
        overflow-x:auto;
        scroll-snap-type:x mandatory;
        -webkit-overflow-scrolling:touch;
        gap:0;
        padding:0 20px 16px;
        grid-template-columns:unset;
      }
      .problem-cards::-webkit-scrollbar{display:none}
      .problem-card{
        flex:0 0 80vw;
        max-width:300px;
        scroll-snap-align:start;
        border-right:1px solid #E0E0E0;
        border-bottom:none;
        margin-right:0;
      }
      .problem-card:last-child{border-right:none}
      
      [class^="swipe-hint-"]{
        display:flex;
        align-items:center;
        justify-content:flex-end;
        gap:6px;
        padding:0 20px 12px;
        font-size:11px;
        color:#9B9BA0;
        letter-spacing:.06em;
      }
      [class^="swipe-hint-"]::before{
        content:'';
        display:inline-block;
        width:20px;
        height:1px;
        background:currentColor;
        opacity:.5;
      }
      [class^="swipe-hint-"]::after{
        content:'';
        display:inline-block;
        width:20px;
        height:1px;
        background:currentColor;
        opacity:.5;
      }
      .swipe-hint-problem{
        display:flex;
        font-size:11px;color:#9B9BA0;
        letter-spacing:.06em;
        padding:0 20px 12px;
        text-align:right;
      }

      
      .results-sec{padding:56px 0}
      .results-inner{padding:0}
      .results-head{padding:0 20px;margin-bottom:32px}
      .results-grid{
        display:flex;
        overflow-x:auto;
        scroll-snap-type:x mandatory;
        -webkit-overflow-scrolling:touch;
        grid-template-columns:unset;
        padding:0 20px 16px;
        gap:0;
      }
      .results-grid::-webkit-scrollbar{display:none}
      .result-card{
        flex:0 0 80vw;
        max-width:300px;
        scroll-snap-align:start;
        border-right:1px solid #E0E0E0;
        border-bottom:none;
      }
      .result-card:last-child{border-right:none}
      .swipe-hint-results{
        display:flex;
        font-size:11px;color:#9B9BA0;
        letter-spacing:.06em;
        padding:0 20px 12px;
        text-align:right;
      }

      
      .case-sec{padding:56px 0}
      .case-inner{padding:0}
      .case-head{padding:0 20px;margin-bottom:32px}
      .case-head .sec-h2{margin-bottom:16px;}
      .case-grid{
        display:flex;
        overflow-x:auto;
        scroll-snap-type:x mandatory;
        -webkit-overflow-scrolling:touch;
        grid-template-columns:unset;
        padding:0 20px 16px;
        gap:0;
      }
      .case-grid::-webkit-scrollbar{display:none}
      .case-card{
        flex:0 0 85vw;
        max-width:320px;
        scroll-snap-align:start;
        border-right:1px solid #E0E0E0;
        border-bottom:none;
        background:#ffffff;
      }
      .case-card:last-child{border-right:none}
      .swipe-hint-case{
        display:flex;
        font-size:11px;color:#9B9BA0;
        letter-spacing:.06em;
        padding:0 20px 12px;
        text-align:right;
      }

      
      .voice-sec{padding:0}
      .voice-head{padding:56px 20px 32px}
      .voice-grid{
        display:grid;
        grid-template-columns:1fr;
        overflow-x:unset;
        scroll-snap-type:unset;
        padding:0;
        gap:0;
      }
      .voice-card{
        flex:unset;
        width:100%;
        max-width:none;
        scroll-snap-align:unset;
        border-right:none;
        border-bottom:1px solid #E8E8E8;
      }
      .voice-card:last-child{border-bottom:none}
      .swipe-hint-voice{
        display:none;
      }

      
      .targeting-sec{padding:56px 0}
      .targeting-inner{padding:0}
      .targeting-head{padding:0 20px;margin-bottom:32px}
      .targeting-grid{
        display:flex;
        overflow-x:auto;
        scroll-snap-type:x mandatory;
        -webkit-overflow-scrolling:touch;
        grid-template-columns:unset;
        padding:0 20px 16px;
        gap:12px;
      }
      .targeting-grid::-webkit-scrollbar{display:none}
      .targeting-card{
        flex:0 0 80vw;
        max-width:300px;
        scroll-snap-align:start;
        padding:32px 24px;
      }
      .swipe-hint-targeting{
        display:flex;
        font-size:11px;color:#9B9BA0;
        letter-spacing:.06em;
        padding:0 20px 12px;
        text-align:right;
      }

      
      .flow-sec{padding:56px 20px}
      .flow-item{
        grid-template-columns:64px 1fr;
        padding:32px 0;
        border-bottom:1px solid #F0F0F0;
      }
      .flow-item:last-child{border-bottom:none}
      .flow-item-num{
        font-size:clamp(40px,10vw,64px);
        color:#28282D;
        opacity:.12;
        font-weight:900;
      }
      .flow-item-body{padding-left:16px}
      .flow-item-title{
        font-size:16px;
        font-weight:700;
        letter-spacing:-.02em;
      }
      .flow-item-desc{font-size:16px;line-height:1.8}

      
      @keyframes badge-item-in{
        from{opacity:0;transform:translateY(16px)}
        to{opacity:1;transform:translateY(0)}
      }
      .badge-sec{padding:56px 20px}
      .badge-title{
        font-size:clamp(26px,8vw,40px);
        font-weight:900;
        letter-spacing:-.04em;
        line-height:1.15;
        color:#ffffff;
      }
      .badge-label{color:rgba(255,255,255,.5);font-size:10px;letter-spacing:.22em}
      .badge-desc{font-size:16px;color:#ffffff;line-height:1.85}
      .badge-card{
        flex-direction:column;
        align-items:flex-start;
        gap:24px;
        padding:28px 20px;
        background:rgba(255,255,255,.06);
        border:1px solid rgba(255,255,255,.12);
        border-radius:8px;
      }
      .badge-placeholder{border-color:rgba(255,255,255,.25)}
      .badge-placeholder-label{color:rgba(255,255,255,.5)}
      .badge-placeholder-note{color:rgba(255,255,255,.4)}
      .badge-cert-item{
        color:#ffffff !important;
        font-size:16px;
        font-weight:500;
        opacity:0;
        animation:badge-item-in .5s cubic-bezier(.22,1,.36,1) forwards;
      }
      .badge-cert-item:nth-child(1){animation-delay:.1s}
      .badge-cert-item:nth-child(2){animation-delay:.2s}
      .badge-cert-item:nth-child(3){animation-delay:.3s}
      .badge-cert-item:nth-child(4){animation-delay:.4s}
      .badge-cert-item:nth-child(5){animation-delay:.5s}
      .badge-cert-item::before{background:rgba(255,255,255,.6)}

      
      .plan-sec{padding:56px 0}
      .plan-inner{padding:0}
      .plan-head{padding:0 20px;margin-bottom:32px}
      .plan-note-box{margin:32px 20px 24px;flex-direction:column;gap:8px}
      .plan-grid{
        display:flex;
        overflow-x:auto;
        scroll-snap-type:x mandatory;
        -webkit-overflow-scrolling:touch;
        grid-template-columns:unset;
        padding:0 20px 16px;
        gap:0;
      }
      .plan-grid::-webkit-scrollbar{display:none}
      .plan-card{
        flex:0 0 78vw;
        max-width:300px;
        scroll-snap-align:start;
        border-right:1px solid #E0E0E0;
        border-bottom:none;
      }
      .plan-card:last-child{border-right:none}
      .swipe-hint-plan{
        display:flex!important;
        justify-content:center;
        align-items:center;
        gap:6px;
        font-size:12px;color:#000000;
        letter-spacing:.06em;
        padding:20px 20px 20px;
        text-align:center;
      }

      
      .faq-sec{padding:56px 20px;gap:32px}
      .faq-q-text{font-size:16px}
      .faq-a-text{font-size:16px}

      
      .challenge-sec{padding:0}
      .challenge-head{padding:56px 20px 32px;flex-direction:column;gap:16px}
      /* スプリットビュー SP（スマホ） */
      .challenge-split{grid-template-columns:1fr;min-height:auto}
      .challenge-split-left{padding:56px 20px 48px;gap:16px}
      .challenge-split-right{
        clip-path:polygon(0 6%,100% 0,100% 100%,0 100%);
        padding:72px 20px 56px;
        min-height:240px;
      }
      .challenge-split-voice{font-size:clamp(28px,7.5vw,44px)}
      .challenge-split-sub{font-size:16px}
      .sec-vert{display:none}
      .challenge-grid{
        display:flex;
        flex-direction:column;
        overflow-x:visible;
        scroll-snap-type:unset;
        grid-template-columns:unset;
        border-top:none;
        padding:0;
        gap:0;
      }
      .challenge-grid::-webkit-scrollbar{display:none}
      .challenge-card{
        flex:0 0 auto;
        width:100%;
        max-width:none;
        scroll-snap-align:unset;
        border-right:none;
        border-bottom:1px solid #E8E8E8;
        padding:36px 24px;
      }
      .challenge-card:last-child{border-bottom:none}
      .challenge-card--last{border-bottom:none!important}
      .challenge-card:not(:last-child):not(.challenge-card--last){border-bottom:1px solid #E8E8E8!important}
      .swipe-hint-challenge{
        display:none;
      }

      
      .cta-sec{padding:48px 20px}
      .btn-cta{
        width:100%;
        text-align:center;
        justify-content:center;
        height:54px;
        font-size:16px;
        letter-spacing:.08em;
      }
      .cta-actions{flex-direction:column;align-items:center;gap:20px}
      .cta-h2{
        font-size:clamp(28px,8vw,44px);
        font-weight:900;
        line-height:1.1;
        letter-spacing:-.04em;
      }
      .cta-body{font-size:16px;line-height:1.85}

      
      .area-inner{grid-template-columns:1fr}
      .area-left{padding:48px 20px 32px;border-right:none;border-bottom:1px solid #E8E8E8}
      .area-right{padding:32px 20px 48px}
      .area-h2{font-size:var(--sec-h2-size-sp)}
      .area-desc{font-size:16px}

      
      .seo-banner{padding:20px}
      .seo-banner-inner{flex-direction:column;align-items:flex-start;gap:16px}

      
      .blog-sec{padding:56px 0}
      .blog-inner{padding:0}
      .blog-head{padding:0 20px;margin-bottom:32px}
      .blog-grid{
        display:flex;
        overflow-x:auto;
        scroll-snap-type:x mandatory;
        -webkit-overflow-scrolling:touch;
        grid-template-columns:unset;
        border:none;
        padding:0 20px 16px;
        gap:0;
      }
      .blog-grid::-webkit-scrollbar{display:none}
      .blog-card{
        flex:0 0 80vw;
        max-width:300px;
        scroll-snap-align:start;
        border:1px solid #E0E0E0;
        border-right:none;
        border-bottom:1px solid #E0E0E0;
      }
      .blog-card:last-child{border-right:1px solid #E0E0E0}
      .swipe-hint-blog{
        display:flex;
        font-size:11px;color:#9B9BA0;
        letter-spacing:.06em;
        padding:0 20px 12px;
        text-align:right;
      }

      
      .breadcrumb-sp-footer{
        display:block;
        padding:16px 20px;
        border-top:1px solid #E8E8E8;
        background:#fff;
      }
      .breadcrumb-sp-footer ol{
        list-style:none;
        display:flex;
        flex-wrap:wrap;
        gap:4px;
        padding:0;margin:0;
      }
      .breadcrumb-sp-footer li{
        font-size:12px;color:#9B9BA0;
        display:flex;align-items:center;gap:4px;
      }
      .breadcrumb-sp-footer li+li::before{
        content:'/';
        color:#C0C0C5;
      }
      .breadcrumb-sp-footer a{color:#5A5A60;text-decoration:none}
      .breadcrumb-sp-footer a:hover{color:#28282D}
      .breadcrumb-sp-footer [aria-current]{color:#28282D}

      
      .footer{padding:48px 20px 32px}
      .footer-top{flex-direction:column;gap:32px}
      .footer-nav{grid-template-columns:1fr;gap:24px}
      .footer-nav-group a{font-size:14px}
      .footer-bottom{flex-direction:column-reverse;gap:12px;text-align:center}
      /* challenge推奨施策タグ: SP 2列表示 */
      .challenge-split-tags{flex-direction:row!important;flex-wrap:wrap!important}
      .challenge-split-tags .challenge-tag{width:50%!important;box-sizing:border-box!important}
      .challenge-tags-wrap .challenge-tag{width:50%!important;font-size:13px!important;padding:10px 10px!important}
    }
.hd-mega-wrap::before{content:'';position:absolute;top:-14px;left:0;right:0;height:14px;}

main{padding-top:72px;}
.kv::after{content:'';display:none;}
.kv-particles{position:absolute;inset:0;pointer-events:none;overflow:hidden;}
.kv-particle{
      position:absolute;width:2px;height:2px;
      background:rgba(255,255,255,.2);border-radius:50%;
      animation:float linear infinite;
    }
@keyframes float{
      0%{transform:translateY(0) translateX(0);opacity:0;}
      10%{opacity:1;}
      90%{opacity:.5;}
      100%{transform:translateY(-80vh) translateX(20px);opacity:0;}
    }
.kv-grid-lines{
      position:absolute;inset:0;pointer-events:none;
      background-image:
        linear-gradient(rgba(14,165,233,.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(14,165,233,.04) 1px, transparent 1px);
      background-size:80px 80px;
    }
.kv-h1 em{
      font-style:normal;
      background:linear-gradient(135deg,#38bdf8,#0ea5e9,#06b6d4);
      -webkit-background-clip:text;
      -webkit-text-fill-color:transparent;
      background-clip:text;
    }
.kv-tags{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:48px;}
.kv-tag{
      display:inline-flex;align-items:center;
      padding:6px 16px;
      border:1px solid rgba(14,165,233,.4);
      font-size:12px;color:rgba(255,255,255,.7);
      letter-spacing:.06em;border-radius:100px;
      background:rgba(14,165,233,.06);
    }
.what-sec{
      background:#F4F6F9;
      padding:100px 80px;
    }
.what-inner{max-width:1100px;margin:0 auto;}
.what-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;}
.what-eyebrow{
      font-size:11px;letter-spacing:.2em;color:#0EA5E9;
      font-weight:700;text-transform:uppercase;
      margin-bottom:20px;display:flex;align-items:center;gap:12px;
    }
.what-eyebrow::before{content:'';display:block;width:24px;height:2px;background:#0EA5E9;border-radius:2px;}
.what-h2{
      font-size:clamp(28px,3.2vw,44px);
      font-weight:700;line-height:1.25;
      letter-spacing:-.03em;color:#28282D;
      margin-bottom:24px;
    }
.what-h2-accent{
      color:#0EA5E9;
    }
.what-sub{
      font-size:16px;line-height:1.9;color:#4A4A50;
    }
.what-compare{
      display:flex;
      flex-direction:row;
      align-items:center;
      gap:16px;
    }
.what-cmp-card{
      flex:1;
      border-radius:16px;
      padding:28px 24px;
      box-shadow:0 4px 20px rgba(0,0,0,.08);
      text-align:center;
    }
.what-cmp-ng{
      background:#F5F5F5;
      border:2px solid #D8D8D8;
    }
.what-cmp-ok{
      background:#EBF8FF;
      border:2px solid #0EA5E9;
    }
.what-cmp-badge{
      display:inline-block;
      font-size:12px;font-weight:700;
      letter-spacing:.1em;
      border-radius:20px;
      padding:4px 16px;
      margin-bottom:16px;
    }
.what-cmp-badge-ng{
      background:#E0E0E0;
      color:#888;
    }
.what-cmp-badge-ok{
      background:#0EA5E9;
      color:#fff;
    }
.what-cmp-icon-wrap{
      margin-bottom:12px;
    }
.what-cmp-bigicon{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      width:52px;height:52px;
      border-radius:50%;
      font-size:24px;font-weight:900;
      line-height:1;
    }
.what-cmp-bigicon-ng{
      background:#D8D8D8;
      color:#999;
    }
.what-cmp-bigicon-ok{
      background:#0EA5E9;
      color:#fff;
    }
.what-cmp-title-ng,
    .what-cmp-title-ok{
      font-size:16px;font-weight:700;
      line-height:1.5;
      margin-bottom:16px;
    }
.what-cmp-title-ng{color:#888;}
.what-cmp-title-ok{color:#0EA5E9;}
.what-cmp-list{
      list-style:none;padding:0;margin:0;
      display:flex;flex-direction:column;gap:10px;
      text-align:left;
    }
.what-cmp-list li{
      font-size:16px;line-height:1.7;color:#555;
      padding-left:20px;position:relative;
    }
.what-cmp-ng .what-cmp-list li::before{
      content:'✕';position:absolute;left:0;color:#C0C0C0;font-weight:700;font-size:12px;
    }
.what-cmp-ok .what-cmp-list li::before{
      content:'✓';position:absolute;left:0;color:#0EA5E9;font-weight:700;font-size:12px;
    }
.what-cmp-arrow{
      display:flex;align-items:center;justify-content:center;
      flex-shrink:0;
    }
.cmp-table tbody td{padding:16px 20px;font-size:16px;line-height:1.6;vertical-align:middle;border-right:1px solid #EBEBEB;background:#fff;}
.cmp-table tbody td:last-child{border-right:none;}
.cmp-table tbody td.cmp-label{font-size:13px;font-weight:700;color:#28282D;background:#FAFAFA;white-space:nowrap;border-right:1px solid #E0E0E0;}
.cmp-table tbody td.cmp-aiseo{color:#6366f1;font-weight:600;text-align:center;}
.cmp-table tbody td.cmp-auto{color:#0ea5e9;font-weight:600;text-align:center;}
.problem-head .sec-body{max-width:560px;margin-top:16px;}
.problem-list{
      display:grid;grid-template-columns:repeat(3,1fr);
      gap:0;border:1px solid #E0E0E0;
    }
.problem-item{
      padding:40px 36px;
      border-right:1px solid #E0E0E0;
      display:flex;flex-direction:column;gap:14px;
      background:#fff;transition:background .2s;
    }
.problem-item:last-child{border-right:none;}
.problem-item:hover{background:#F8F8F8;}
.problem-item:nth-child(4),.problem-item:nth-child(5),.problem-item:nth-child(6){
      border-top:1px solid #E0E0E0;
    }
.problem-note{
      max-width:1100px;margin:40px auto 0;
      padding:28px 36px;
      background:#fff;border:1px solid #E0E0E0;
      border-left:3px solid #0ea5e9;
    }
.problem-note p{font-size:16px;line-height:1.8;color:#28282D;font-weight:500;}
.solutions-sec{
      background:#fff;
      padding:100px 80px;
      border-top:1px solid #E8E8E8;
    }
.solutions-inner{max-width:1100px;margin:0 auto;}
.solutions-head{margin-bottom:64px;}
.solutions-head .sec-body{max-width:640px;margin-top:16px;}
.solutions-grid{
      display:grid;grid-template-columns:repeat(3,1fr);
      gap:0;border:1px solid #E0E0E0;
    }
.solutions-card{
      padding:40px 36px;
      border-right:1px solid #E0E0E0;
      display:flex;flex-direction:column;gap:16px;
      background:#fff;transition:background .2s;
      position:relative;
    }
.solutions-card:last-child{border-right:none;}
.solutions-card:hover{background:#F8F8F8;}
.solutions-card:nth-child(4),.solutions-card:nth-child(5),.solutions-card:nth-child(6){
      border-top:1px solid #E0E0E0;
    }
.solutions-icon{
      width:44px;height:44px;
      border:1px solid #E0E0E0;
      display:flex;align-items:center;justify-content:center;
      flex-shrink:0;
    }
.solutions-title{
      font-size:clamp(16px,1.8vw,20px);font-weight:700;line-height:1.35;
      letter-spacing:-.02em;color:#28282D;
    }
.solutions-desc{font-size:13px;line-height:1.85;color:#5A5A60;flex:1;}
.features-sec{
      background:#0A0F1E;
      padding:100px 80px;
    }
.features-inner{max-width:1100px;margin:0 auto;}
.features-head{margin-bottom:72px;}
.features-eyebrow{
      font-size:12px;letter-spacing:.18em;color:#ffffff;
      font-weight:700;text-transform:uppercase;
      margin-bottom:20px;display:flex;align-items:center;gap:16px;
    }
.features-eyebrow::before{content:'';display:block;width:32px;height:1px;background:rgba(255,255,255,.4);}
.features-h2{
      font-size:clamp(28px,3.5vw,48px);
      font-weight:700;line-height:1.3;
      letter-spacing:-.03em;color:#fff;
    }
.features-body{
      font-size:16px;line-height:1.85;color:rgba(255,255,255,.75);
      max-width:560px;margin-top:16px;
    }
.features-list{display:flex;flex-direction:column;gap:0;}
.features-item{
      display:grid;grid-template-columns:80px 1fr;
      gap:0;
      border-top:1px solid rgba(255,255,255,.08);
      padding:52px 0;
      align-items:start;
    }
.features-item:last-child{border-bottom:1px solid rgba(255,255,255,.08);}
.features-num{
      font-size:clamp(56px,7vw,88px);
      font-weight:800;line-height:1;
      letter-spacing:-.05em;
      color:rgba(255,255,255,.4);
      font-variant-numeric:tabular-nums;
      user-select:none;
    }
.features-body-wrap{
      padding:0 0 0 40px;
      border-left:1px solid rgba(255,255,255,.08);
    }
.features-label{
      font-size:11px;letter-spacing:.22em;
      color:rgba(14,165,233,.8);
      font-weight:700;display:block;
      margin-bottom:14px;text-transform:uppercase;
    }
.features-title{
      font-size:clamp(18px,2.2vw,26px);
      font-weight:700;line-height:1.3;
      letter-spacing:-.03em;color:#fff;
      margin-bottom:14px;
    }
.features-desc{
      font-size:16px;line-height:1.9;
      color:rgba(255,255,255,.75);
      max-width:560px;
    }
.cases-sec{
      background:#F7F7F5;
      padding:100px 80px;
      border-top:1px solid #E8E8E8;
    }
.cases-inner{max-width:1100px;margin:0 auto;}
.cases-head{margin-bottom:64px;}
.cases-head .sec-body{max-width:560px;margin-top:16px;}
.cases-list{display:flex;flex-direction:column;gap:0;border:1px solid #E0E0E0;}
.cases-item{
      display:grid;grid-template-columns:1fr 1fr;
      gap:0;
      border-bottom:1px solid #E0E0E0;
      background:#fff;
      transition:background .2s;
    }
.cases-item:last-child{border-bottom:none;}
.cases-item:hover{background:#F8F8F8;}
.cases-left{
      padding:48px 48px 48px 48px;
      border-right:1px solid #E0E0E0;
      display:flex;flex-direction:column;gap:16px;
    }
.cases-num{font-size:11px;letter-spacing:.22em;color:#9B9BA0;font-weight:700;text-transform:uppercase;}
.cases-title{
      font-size:clamp(18px,2.2vw,26px);font-weight:700;line-height:1.35;
      letter-spacing:-.02em;color:#28282D;
    }
.cases-right{
      padding:48px;
      display:flex;flex-direction:column;justify-content:center;gap:12px;
    }
.cases-support-label{
      font-size:10px;letter-spacing:.2em;font-weight:700;
      color:#0ea5e9;text-transform:uppercase;
    }
.cases-support-text{font-size:16px;line-height:1.85;color:#4A4A50;}
.cases-note{
      max-width:1100px;margin:40px auto 0;
      padding:28px 36px;
      background:#fff;border:1px solid #E0E0E0;
      border-left:3px solid #0ea5e9;
    }
.cases-note p{font-size:16px;line-height:1.8;color:#28282D;font-weight:500;}
.flow-head .sec-body{max-width:560px;margin-top:16px;}
.flow-steps{
      display:grid;grid-template-columns:repeat(3,1fr);
      gap:0;border:1px solid #E0E0E0;
    }
.flow-step-free{
      display:flex;
      align-items:center;
      gap:48px;
      background:#EBF8FF;
      border:2px solid #0EA5E9;
      border-radius:12px;
      padding:32px 40px;
      margin-bottom:32px;
    }
.flow-step-free-left{
      display:flex;flex-direction:column;gap:8px;
      flex-shrink:0;
    }
.flow-step-free-badge{
      display:inline-flex;align-items:center;
      padding:4px 14px;
      background:#0EA5E9;
      font-size:11px;color:#fff;font-weight:700;
      letter-spacing:.1em;border-radius:20px;
      width:fit-content;
    }
.flow-step-free-num{
      font-size:11px;letter-spacing:.22em;color:#0ea5e9;
      font-weight:700;text-transform:uppercase;
    }
.flow-step-free-title{
      font-size:clamp(20px,2.2vw,26px);font-weight:700;
      line-height:1.3;letter-spacing:-.02em;color:#28282D;
    }
.flow-step-free-right{
      flex:1;
      display:flex;align-items:center;gap:32px;
    }
.flow-step-free-desc{
      flex:1;
      font-size:16px;line-height:1.85;color:#4A4A50;
    }
.flow-step-free-btn{
      display:inline-flex;align-items:center;
      padding:14px 28px;
      background:#0EA5E9;color:#fff;
      font-size:16px;font-weight:700;
      border-radius:6px;
      white-space:nowrap;
      text-decoration:none;
      transition:background .2s;
      flex-shrink:0;
    }
.flow-step-free-btn:hover{background:#0284C7;}
.flow-step{
      padding:40px 32px 48px;
      border-right:1px solid #E0E0E0;
      display:flex;flex-direction:column;gap:16px;
      position:relative;
    }
.flow-step:last-child{border-right:none;}
.flow-step-num{
      font-size:11px;letter-spacing:.22em;color:#0ea5e9;
      font-weight:700;text-transform:uppercase;
    }
.flow-step-title{
      font-size:clamp(16px,1.8vw,20px);font-weight:700;line-height:1.35;
      letter-spacing:-.02em;color:#28282D;
    }
.flow-step-desc{font-size:13px;line-height:1.85;color:#5A5A60;}
.flow-step-badge{
      display:inline-flex;align-items:center;
      padding:4px 12px;
      background:#F0F9FF;border:1px solid #BAE6FD;
      font-size:11px;color:#0ea5e9;font-weight:700;
      letter-spacing:.06em;width:fit-content;
    }
.plan-head .sec-body{max-width:640px;margin-top:16px;}
.plan-point{
      padding:40px 36px;
      border-right:1px solid #E0E0E0;
      display:flex;flex-direction:column;gap:12px;
      background:#fff;
    }
.plan-point:last-child{border-right:none;}
.plan-point-num{font-size:11px;letter-spacing:.22em;color:#0ea5e9;font-weight:700;text-transform:uppercase;}
.plan-point-title{font-size:clamp(16px,1.8vw,20px);font-weight:700;color:#28282D;letter-spacing:-.02em;}
.plan-point-desc{font-size:13px;line-height:1.85;color:#5A5A60;}
.plan-cta{
      text-align:center;
      padding:56px 40px;
      background:#fff;border:1px solid #E0E0E0;
    }
.plan-cta-text{font-size:16px;line-height:1.8;color:#4A4A50;margin-bottom:32px;}
.related-banner{
      background:#F7F7F5;
      padding:44px 80px;
      border-top:1px solid #E8E8E8;
    }
.related-banner-inner{
      max-width:1100px;margin:0 auto;
      display:flex;align-items:center;justify-content:space-between;
      gap:32px;
    }
.related-banner-left{display:flex;align-items:center;gap:28px;}
.related-banner-icon{
      width:48px;height:48px;flex-shrink:0;
      border:1px solid #D8D8DC;
      display:flex;align-items:center;justify-content:center;
    }
.related-banner-label{font-size:10px;letter-spacing:.2em;font-weight:700;color:#9B9BA0;text-transform:uppercase;margin-bottom:6px;display:block;}
.related-banner-text{font-size:18px;font-weight:700;color:#28282D;letter-spacing:-.02em;line-height:1.4;}
.related-banner-sub{font-size:16px;color:#767680;margin-top:4px;}
.related-banner-btn{
      display:inline-flex;align-items:center;gap:10px;
      font-size:16px;font-weight:700;color:#fff;
      background:#28282D;padding:14px 28px;
      white-space:nowrap;transition:opacity .2s;flex-shrink:0;
    }
.related-banner-btn:hover{opacity:.75;}
.related-banner-arrow{display:inline-block;width:18px;height:1px;background:#fff;position:relative;vertical-align:middle;}
.related-banner-arrow::after{content:'';position:absolute;right:0;top:-3px;width:6px;height:6px;border-top:1px solid #fff;border-right:1px solid #fff;transform:rotate(45deg);}
.cta-sec::before{content:'';display:none;}
@media(max-width:1024px){
      .hd{padding:0 20px}.hd-nav{display:none}.hd-hamburger{display:flex}.hd-drawer{display:block}.hd-btns{display:none}
    }
@media(max-width:600px){
      .flow-steps{grid-template-columns:1fr;}
      .flow-step{border-right:none!important;border-bottom:1px solid #E0E0E0!important;}
      .flow-step:last-child{border-bottom:none!important;}
      .cmp-table tbody td,.cmp-head-row th{padding:12px 10px;font-size:12px;}
      .cmp-table tbody td.cmp-label{font-size:11px;}
    }
.works-sec{background:#fff;padding:80px 0;}
.works-inner{max-width:900px;margin:0 auto;padding:0 40px;}
.works-list{display:grid;grid-template-columns:1fr 1fr;gap:32px;}
.works-item{background:#F8F8F8;border-radius:12px;padding:32px;display:flex;flex-direction:column;gap:8px;}
.works-num{font-size:11px;font-weight:700;letter-spacing:.1em;color:#0EA5E9;}
.works-cat{font-size:12px;color:#888;}
.works-title{font-size:18px;font-weight:700;line-height:1.5;color:#28282D;margin:4px 0;}
.works-desc{font-size:16px;line-height:1.8;color:#555;}
:root{
      --ai-bk:   #28282D;
      --ai-wh:   #ffffff;
      --ai-gray: #F7F7F5;
      --ai-lt:   #F7F7F5;
      --ai-dark: #111113;
      --ai-border:#E0E0E0;
      --ai-border-lt:#E8E8E8;
      --ai-text: #5A5A60;
      --ai-text2:#4A4A50;
      --ai-num:  #9B9BA0;
    }
.v2-works-sec{background:#F7F7F5;padding:100px 80px;border-top:1px solid #E8E8E8;}
.v2-works-inner{max-width:1100px;margin:0 auto;}
.v2-works-head{margin-bottom:64px;}
.v2-works-head .v2-en{display:none;}
.v2-works-head .v2-bar{display:none;}
.v2-works-head .v2-ja{
      font-size:clamp(28px,3.5vw,48px);font-weight:700;line-height:1.3;
      letter-spacing:-.03em;color:#28282D;
    }
.v2-works-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid #E0E0E0;}
.v2-works-card{
      padding:48px 40px 56px;border-right:1px solid #E0E0E0;
      background:#fff;display:flex;flex-direction:column;
      transition:background .2s;
    }
.v2-works-card:last-child{border-right:none;}
.v2-works-card:hover{background:#F8F8F8;}
.v2-works-case{
      font-size:11px;letter-spacing:.22em;color:#9B9BA0;
      margin-bottom:16px;font-weight:700;text-transform:uppercase;
    }
.v2-works-case span{font-size:inherit;color:inherit;font-family:inherit;font-style:normal;font-weight:700;}
.v2-works-tag{font-size:11px;letter-spacing:.14em;color:#9B9BA0;font-weight:600;margin-bottom:12px;text-transform:uppercase;}
.v2-works-ttl{font-size:clamp(16px,1.8vw,20px);font-weight:700;color:#28282D;margin-bottom:16px;line-height:1.45;flex:1;}
.v2-works-desc{font-size:13px;line-height:1.85;color:#5A5A60;}
.v2-prob-sec{background:#F7F7F5;padding:100px 80px 0;border-top:1px solid #E8E8E8;}
.v2-prob-inner{max-width:1100px;margin:0 auto;}
.v2-prob-head{margin-bottom:64px;}
.v2-prob-grid{
      display:grid;grid-template-columns:repeat(3,1fr);
      gap:0;border:1px solid #E0E0E0;margin-bottom:0;
    }
.v2-prob-card{
      padding:48px 40px;border-right:1px solid #E0E0E0;
      background:#fff;display:flex;flex-direction:column;align-items:flex-start;gap:16px;
      transition:background .2s;
    }
.v2-prob-card:last-child{border-right:none;}
.v2-prob-card:hover{background:#F8F8F8;}
.v2-prob-icon{display:flex;align-items:center;justify-content:center;width:52px;height:52px;background:#EDEDEE;flex-shrink:0;}
.v2-prob-icon svg{stroke:#28282D !important;}
.v2-prob-txt{font-size:clamp(15px,1.6vw,18px);font-weight:700;color:#28282D;line-height:1.55;}
.v2-prob-txt .t{color:#28282D;}
.v2-prob-sum{background:#111113;padding:56px 80px;text-align:center;}
.v2-prob-sum p{font-size:clamp(15px,1.6vw,18px);color:#fff;line-height:1.9;font-weight:400;}
.v2-prob-sum .t{color:#ffffff;font-weight:700;}
.v2-sol-sec{background:#fff;padding:100px 80px 64px;border-top:1px solid #E8E8E8;}
.v2-sol-inner{max-width:1100px;margin:0 auto;}
.v2-sol-top{display:grid;grid-template-columns:1fr 1fr;gap:80px;margin-bottom:64px;align-items:center;}
.v2-sol-en{display:none;}
.v2-sol-bar{display:none;}
.v2-sol-ttl{font-size:clamp(22px,2.8vw,32px);font-weight:700;color:#28282D;line-height:1.45;margin-bottom:18px;letter-spacing:-.02em;}
.v2-sol-desc{font-size:16px;line-height:1.85;color:#5A5A60;max-width:440px;}
.v2-sol-desc .t{color:#28282D;font-weight:700;}
.v2-svc-grid{
      display:grid;grid-template-columns:repeat(3,1fr);
      gap:0;border:1px solid #E0E0E0;
    }
.v2-svc-card{
      padding:40px 32px;border-right:1px solid #E0E0E0;
      background:#fff;display:flex;flex-direction:column;gap:10px;
      transition:background .2s;
    }
.v2-svc-card:nth-child(3){border-right:none;}
.v2-svc-card:nth-child(4){border-top:1px solid #E0E0E0;}
.v2-svc-card:nth-child(5){border-top:1px solid #E0E0E0;}
.v2-svc-card:nth-child(6){border-top:1px solid #E0E0E0;border-right:none;}
.v2-svc-card:hover{background:#F8F8F8;}
.v2-svc-ico{
      display:flex;align-items:center;justify-content:center;
      width:48px;height:48px;background:#EDEDEE;margin-bottom:4px;
    }
.v2-svc-ico svg{stroke:#28282D !important;}
.v2-svc-name{font-size:clamp(14px,1.5vw,17px);font-weight:700;color:#28282D;line-height:1.4;}
.v2-svc-desc{font-size:13px;color:#5A5A60;line-height:1.8;}
.v2-feat-sec{background:#F7F7F5;padding:100px 80px;border-top:1px solid #E8E8E8;}
.v2-feat-inner{max-width:1100px;margin:0 auto;}
.v2-feat-in{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;}
.v2-feat-illust-wrap{display:flex;align-items:center;justify-content:center;padding:40px;}
.v2-feat-illust-box{
      width:220px;height:220px;background:#EDEDEE;
      display:flex;align-items:center;justify-content:center;
    }
.v2-feat-illust-box svg{stroke:#28282D !important;}
.v2-feat-r{}
.v2-feat-head{margin-bottom:48px;}
.v2-feat-head .v2-en{display:none;}
.v2-feat-head .v2-bar{display:none;}
.v2-feat-head .v2-ja{
      font-size:clamp(28px,3.5vw,48px);font-weight:700;line-height:1.3;
      letter-spacing:-.03em;color:#28282D;
    }
.v2-feat-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid #E0E0E0;}
.v2-feat-item{
      padding:36px 28px;border-right:1px solid #E0E0E0;border-bottom:1px solid #E0E0E0;
      background:#fff;transition:background .2s;
    }
.v2-feat-item:nth-child(2n){border-right:none;}
.v2-feat-item:nth-child(3),.v2-feat-item:nth-child(4){border-bottom:none;}
.v2-feat-item:hover{background:#F8F8F8;}
.v2-feat-num{
      font-size:11px;letter-spacing:.22em;color:#9B9BA0;
      margin-bottom:16px;font-weight:700;text-transform:uppercase;
    }
.v2-feat-ttl{font-size:clamp(14px,1.5vw,17px);font-weight:700;color:#28282D;margin-bottom:8px;line-height:1.5;}
.v2-feat-desc{font-size:13px;color:#5A5A60;line-height:1.75;}
.v2-cases-sec{background:#F7F7F5;padding:100px 80px 0;border-top:1px solid #E8E8E8;}
.v2-cases-inner{max-width:1100px;margin:0 auto;}
.v2-cases-head{margin-bottom:64px;}
.v2-cases-list{display:flex;flex-direction:column;gap:0;border:1px solid #E0E0E0;}
.v2-cases-list>div{
      display:grid;grid-template-columns:1fr 1fr;gap:0;
      border-bottom:1px solid #E0E0E0;
    }
.v2-cases-list>div:last-child{border-bottom:none;}
.v2-case-q{
      padding:48px 40px;border-right:1px solid #E0E0E0;
      background:#fff;display:flex;align-items:flex-start;gap:24px;
    }
.v2-case-lbl{
      font-size:11px;letter-spacing:.22em;font-weight:700;
      color:#9B9BA0;flex-shrink:0;line-height:1.3;text-align:center;text-transform:uppercase;
    }
.v2-case-lbl span{
      font-size:22px;display:block;line-height:1;font-weight:700;
      color:#28282D;font-style:normal;font-family:inherit;
    }
.v2-case-q-txt{font-size:clamp(15px,1.6vw,18px);font-weight:700;color:#28282D;line-height:1.55;}
.v2-case-a{padding:48px 40px;background:#EDEDEE;display:flex;flex-direction:column;gap:10px;}
.v2-case-sup{font-size:11px;letter-spacing:.22em;font-weight:700;color:#9B9BA0;text-transform:uppercase;}
.v2-case-a-txt{font-size:16px;color:#3D3D42;line-height:1.85;}
.v2-cases-sum{background:#111113;padding:56px 80px;text-align:center;margin-top:0;}
.v2-cases-sum p{font-size:clamp(15px,1.6vw,18px);color:#fff;line-height:1.9;font-weight:400;}
.v2-cases-sum .t{color:#ffffff;font-weight:700;}
.v2-flow-sec{background:#fff;padding:100px 80px;border-top:1px solid #E8E8E8;}
.v2-flow-inner{max-width:1100px;margin:0 auto;}
.v2-flow-head{margin-bottom:24px;}
.v2-flow-sub{font-size:16px;color:#5A5A60;line-height:1.8;margin-bottom:72px;}
.v2-flow-list{display:flex;flex-direction:column;gap:0;}
.v2-flow-item{
      display:grid;grid-template-columns:200px 1fr;gap:0;
      border-top:1px solid #E8E8E8;align-items:start;padding:56px 0;
    }
.v2-flow-item:last-child{border-bottom:1px solid #E8E8E8;}
.v2-flow-step{
      font-size:11px;letter-spacing:.22em;font-weight:700;
      color:#9B9BA0;line-height:1.3;text-align:left;padding-top:4px;text-transform:uppercase;
    }
.v2-flow-step span{
      font-size:clamp(80px,10vw,140px);font-weight:800;line-height:1;
      letter-spacing:-.05em;color:rgba(40,40,45,.07);display:block;
      font-style:normal;font-family:inherit;
    }
.v2-flow-body{padding:0 0 0 40px;border-left:1px solid #E8E8E8;}
.v2-flow-ttl{font-size:clamp(20px,2.4vw,30px);font-weight:700;color:#28282D;margin-bottom:16px;line-height:1.25;letter-spacing:-.03em;}
.v2-flow-desc{font-size:16px;color:#5A5A60;line-height:1.9;max-width:560px;}
.v2-price-sec{background:#F7F7F5;padding:100px 80px;border-top:1px solid #E8E8E8;}
.v2-price-inner{max-width:1100px;margin:0 auto;}
.v2-price-in{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:start;}
.v2-price-l{padding-right:56px;border-right:1px solid #E0E0E0;}
.v2-price-pts{padding-left:56px;display:flex;flex-direction:column;gap:0;}
.v2-price-pt{padding:28px 0;border-bottom:1px solid #E0E0E0;}
.v2-price-pt:first-child{padding-top:0;}
.v2-price-pt:last-child{border-bottom:none;}
.v2-price-pt-num{font-size:11px;letter-spacing:.22em;font-weight:700;color:#9B9BA0;margin-bottom:8px;text-transform:uppercase;}
.v2-price-pt-num span{font-size:inherit;color:#28282D;font-family:inherit;font-style:normal;}
.v2-price-pt-ttl{font-size:clamp(20px,2.4vw,30px);font-weight:700;color:#28282D;margin-bottom:6px;line-height:1.25;letter-spacing:-.03em;}
.v2-price-pt-desc{font-size:16px;color:#5A5A60;line-height:1.85;}
.v2-price-h3{font-size:clamp(22px,2.8vw,34px);font-weight:700;color:#28282D;line-height:1.35;margin-bottom:18px;letter-spacing:-.02em;}
.v2-price-desc{font-size:16px;color:#5A5A60;line-height:1.85;margin-bottom:32px;}
.v2-price-btn{
      display:inline-flex;align-items:center;gap:8px;
      height:52px;padding:0 32px;
      background:#28282D;color:#fff;
      font-size:14px;font-weight:700;letter-spacing:.04em;
      border:1px solid #28282D;transition:background .2s,color .2s;
    }
.v2-price-btn:hover{background:#fff;color:#28282D;}
.v2-faq-sec{background:#fff;padding:0;border-top:1px solid #E8E8E8;}
.v2-faq-inner{max-width:1100px;margin:0 auto;}
.v2-faq-head{padding:80px 80px 52px;display:flex;align-items:flex-end;justify-content:space-between;}
.v2-faq-list{border-top:1px solid #E8E8E8;}
.v2-faq-item{border-bottom:1px solid #E8E8E8;overflow:hidden;}
.v2-faq-q{
      display:flex;align-items:flex-start;gap:24px;
      padding:32px 80px;cursor:pointer;transition:background .2s;
    }
.v2-faq-q:hover{background:#F8F8F7;}
.v2-faq-qi{
      font-size:13px;letter-spacing:.06em;color:#767680;
      font-weight:700;flex-shrink:0;margin-top:2px;
    }
.v2-faq-qt{
      font-size:clamp(15px,1.6vw,18px);font-weight:400;color:#28282D;
      letter-spacing:-.01em;line-height:1.5;flex:1;
    }
.v2-faq-tog{
      flex-shrink:0;width:20px;height:20px;position:relative;margin-top:2px;
    }
.v2-faq-tog::before,.v2-faq-tog::after{
      content:'';position:absolute;background:#28282D;border-radius:1px;
    }
.v2-faq-tog::before{width:20px;height:1px;top:50%;left:0;transform:translateY(-50%);}
.v2-faq-tog::after{width:1px;height:20px;top:0;left:50%;transform:translateX(-50%);transition:transform .3s,opacity .3s;}
.v2-faq-item.open .v2-faq-tog::after{transform:translateX(-50%) rotate(90deg);opacity:0;}
.v2-faq-a{
      max-height:0;overflow:hidden;
      transition:max-height .4s cubic-bezier(.16,1,.3,1);
    }
.v2-faq-item.open .v2-faq-a{max-height:400px;}
.v2-faq-a-inner{display:flex;gap:24px;padding:0 80px 32px;}
.v2-faq-ai{
      font-size:13px;letter-spacing:.06em;color:#28282D;
      font-weight:700;flex-shrink:0;margin-top:2px;
    }
.v2-faq-at{font-size:15px;color:#3D3D42;line-height:1.8;letter-spacing:.01em;}
.v2-cta-sec{
      background:#28282D;padding:72px 80px;
      position:relative;overflow:hidden;
    }
.v2-cta-sec::before{
      content:'';position:absolute;top:-20%;right:-10%;
      width:60vw;height:120%;
      background:radial-gradient(ellipse at center,rgba(255,255,255,.02) 0%,transparent 70%);
      pointer-events:none;
    }
.v2-cta-in{position:relative;z-index:1;text-align:center;max-width:1100px;margin:0 auto;}
.v2-cta-en{
      font-size:12px;font-weight:700;letter-spacing:.18em;
      color:rgba(255,255,255,.5);margin-bottom:28px;
      display:flex;align-items:center;justify-content:center;gap:16px;
    }
.v2-cta-en::before,.v2-cta-en::after{content:'';display:block;width:32px;height:1px;background:rgba(255,255,255,.4);}
.v2-cta-box{
      display:inline-block;
      border:1px solid rgba(255,255,255,.3);
      padding:40px 60px;margin-bottom:32px;
    }
.v2-cta-ttl{font-size:clamp(22px,3vw,36px);font-weight:700;color:#fff;margin-bottom:10px;line-height:1.3;letter-spacing:-.03em;}
.v2-cta-sub{font-size:16px;color:rgba(255,255,255,.8);line-height:1.8;}
.v2-cta-lbl{font-size:11px;letter-spacing:.22em;color:rgba(255,255,255,.5);font-weight:700;margin-bottom:22px;text-transform:uppercase;}
.v2-cta-btns{
      display:flex;gap:16px;justify-content:center;
      flex-wrap:wrap;margin-bottom:16px;
    }
.v2-cta-btn-web{
      display:inline-flex;align-items:center;gap:8px;
      height:56px;padding:0 44px;
      background:#fff;color:#28282D;
      font-size:14px;font-weight:700;letter-spacing:.06em;
      border:1px solid #fff;
      transition:opacity .2s;white-space:nowrap;
    }
.v2-cta-btn-web:hover{opacity:.8;}
.v2-cta-btn-tel{
      display:inline-flex;align-items:center;gap:8px;
      height:56px;padding:0 44px;
      background:transparent;color:#fff;
      font-size:14px;font-weight:700;letter-spacing:.06em;
      border:1px solid rgba(255,255,255,.5);
      transition:border-color .2s,background .2s;white-space:nowrap;
    }
.v2-cta-btn-tel:hover{border-color:#fff;background:rgba(255,255,255,.08);}
.v2-cta-hrs{display:flex;gap:36px;justify-content:center;flex-wrap:wrap;margin-top:16px;}
.v2-cta-hr{font-size:12px;color:rgba(255,255,255,.5);text-align:center;}
@media(max-width:1023px){
      .v2-works-grid{grid-template-columns:1fr 1fr;}
      .v2-sol-top{grid-template-columns:1fr;gap:32px;}
      .v2-feat-in{grid-template-columns:1fr;}
      .v2-price-in{grid-template-columns:1fr;gap:40px;}
      .v2-price-l{padding-right:0;border-right:none;padding-bottom:40px;border-bottom:1px solid #E0E0E0;}
      .v2-price-pts{padding-left:0;padding-top:40px;}
      .v2-cases-list>div{grid-template-columns:1fr;}
      .v2-case-q{border-right:none;border-bottom:1px solid #E0E0E0;}
    }
.kv-ai-card{
      background:rgba(255,255,255,.04);
      border:1px solid rgba(255,255,255,.12);
      padding:40px 36px;
      position:relative;
      backdrop-filter:blur(8px);
    }
.kv-ai-card-label{
      font-size:10px;letter-spacing:.2em;font-weight:700;
      color:rgba(255,255,255,.4);text-transform:uppercase;
      margin-bottom:24px;display:block;
    }
.kv-ai-platforms{
      display:flex;flex-direction:column;gap:16px;
      margin-bottom:32px;
    }
.kv-ai-platform{
      display:flex;align-items:center;gap:16px;
      padding:14px 16px;
      background:rgba(255,255,255,.05);
      border:1px solid rgba(255,255,255,.08);
      border-radius:6px;
    }
.kv-ai-platform-icon{
      width:36px;height:36px;flex-shrink:0;
      border-radius:8px;
      display:flex;align-items:center;justify-content:center;
      font-size:16px;
    }
.kv-ai-platform-name{
      font-size:16px;font-weight:600;color:#ffffff;
      letter-spacing:.02em;
    }
.kv-ai-platform-status{
      margin-left:auto;
      font-size:11px;letter-spacing:.08em;
      color:rgba(255,255,255,.45);
    }
.kv-ai-note{
      font-size:12px;color:rgba(255,255,255,.35);
      line-height:1.7;
      border-top:1px solid rgba(255,255,255,.08);
      padding-top:20px;
    }
.what-left{}
.what-body{font-size:16px;line-height:1.9;color:#4A4A50;margin-bottom:32px;}
.what-right{
      padding:0;
      background:transparent;
      border:none;
    }
.what-compare-title{
      font-size:12px;letter-spacing:.18em;font-weight:700;
      color:#767680;text-transform:uppercase;
      margin-bottom:20px;
    }
.cmp-table{
      width:100%;
      border-collapse:collapse;
      border:1px solid #E0E0E0;
      background:#fff;
    }
.cmp-head-row th{
      padding:14px 20px;
      text-align:center;
      font-size:13px;font-weight:700;letter-spacing:.06em;
      color:#fff;
      border:1px solid transparent;
    }
.cmp-head-row th:first-child{
      background:#F5F5F3;
      color:#767680;
      font-size:11px;letter-spacing:.1em;
      border-color:#E0E0E0;
    }
.cmp-head-row th.col-seo{
      background:#28282D;
      border-color:#28282D;
    }
.cmp-head-row th.col-ai{
      background:#0E7490;
      border-color:#0E7490;
    }
.cmp-table tbody tr{
      border-bottom:1px solid #EBEBEB;
    }
.cmp-table tbody tr:last-child{
      border-bottom:none;
    }
.cmp-table tbody td.cmp-seo{
      color:#28282D;
      text-align:center;
    }
.cmp-table tbody td.cmp-ai{
      color:#0E7490;
      font-weight:600;
      text-align:center;
    }
.problem-head .sec-h2{color:#28282D;}
.problem-card:hover{background:#F8F8F8;}
.how-sec{
      background:#111113;
      padding:100px 80px;
    }
.how-inner{max-width:1100px;margin:0 auto;}
.how-head{margin-bottom:72px;}
.how-eyebrow{
      font-size:12px;letter-spacing:.18em;color:#ffffff;
      font-weight:700;text-transform:uppercase;
      margin-bottom:20px;display:flex;align-items:center;gap:16px;
    }
.how-eyebrow::before{content:'';display:block;width:32px;height:1px;background:rgba(255,255,255,.5);}
.how-h2{
      font-size:clamp(28px,3.5vw,48px);
      font-weight:700;line-height:1.3;
      letter-spacing:-.03em;color:#ffffff;
    }
.how-body{
      font-size:16px;line-height:1.85;color:#ffffff;
      max-width:600px;margin-top:16px;
    }
.how-steps{
      display:flex;flex-direction:column;gap:0;
    }
.how-step{
      display:grid;
      grid-template-columns:120px 1fr;
      gap:0;
      border-top:1px solid rgba(255,255,255,.08);
      padding:56px 0;
      align-items:start;
    }
.how-step:last-child{border-bottom:1px solid rgba(255,255,255,.08);}
.how-step-num{
      font-size:clamp(64px,8vw,100px);
      font-weight:800;line-height:1;
      letter-spacing:-.05em;
      color:rgba(255,255,255,.06);
      font-variant-numeric:tabular-nums;
      user-select:none;
    }
.how-step-body{
      padding:0 0 0 40px;
      border-left:1px solid rgba(255,255,255,.08);
    }
.how-step-label{
      font-size:11px;letter-spacing:.22em;
      color:rgba(255,255,255,.6);
      font-weight:700;display:block;
      margin-bottom:14px;text-transform:uppercase;
    }
.how-step-title{
      font-size:clamp(18px,2.2vw,26px);
      font-weight:700;line-height:1.3;
      letter-spacing:-.03em;color:#ffffff;
      margin-bottom:16px;
    }
.how-step-desc{
      font-size:16px;line-height:1.9;
      color:#ffffff;
      max-width:560px;
    }
.how-step-tags{
      display:flex;flex-wrap:wrap;gap:8px;
      margin-top:20px;
    }
.how-step-tag{
      display:inline-flex;align-items:center;
      padding:5px 14px;
      border:1px solid rgba(255,255,255,.35);
      font-size:12px;color:#ffffff;
      letter-spacing:.04em;
      border-radius:100px;
    }
.seo-banner-arrow{
      display:inline-block;width:18px;height:1px;
      background:#ffffff;position:relative;
      vertical-align:middle;
    }
.seo-banner-arrow::after{
      content:'';position:absolute;right:0;top:-3px;
      width:6px;height:6px;
      border-top:1px solid #ffffff;
      border-right:1px solid #ffffff;
      transform:rotate(45deg);
    }
.other-sec{
      background:#fff;
      border-top:1px solid #E8E8E8;
      padding:100px 80px;
    }
.other-inner{max-width:1100px;margin:0 auto;}
.other-head{margin-bottom:56px;}
.other-h2{
      font-size:clamp(24px,3vw,40px);
      font-weight:700;line-height:1.3;
      letter-spacing:-.03em;color:#28282D;
    }
.other-grid{
      display:grid;grid-template-columns:repeat(4,1fr);
      gap:0;
      border:1px solid #E0E0E0;
    }
.other-card{
      padding:40px 32px;
      border-right:1px solid #E0E0E0;
      display:flex;flex-direction:column;
      gap:12px;
      transition:background .2s;
    }
.other-card:last-child{border-right:none;}
.other-card:hover{background:#F7F7F5;}
.other-card.is-current{background:#28282D;cursor:default;}
.other-card.is-current:hover{background:#28282D;}
.other-card-num{font-size:11px;letter-spacing:.22em;color:#BBBBC0;font-weight:600;text-transform:uppercase;}
.other-card.is-current .other-card-num{color:#ffffff;}
.other-card-title{font-size:clamp(16px,1.8vw,20px);font-weight:700;color:#28282D;letter-spacing:-.02em;line-height:1.35;}
.other-card.is-current .other-card-title{color:#fff;}
.other-card-desc{font-size:13px;line-height:1.8;color:#5A5A60;flex:1;}
.other-card.is-current .other-card-desc{color:#ffffff;}
.other-card-link{font-size:13px;color:#767680;letter-spacing:.04em;}
.other-card:hover .other-card-link{color:#28282D;}
.sec-vert{
      position:absolute;
      top:50%;
      left:50%;
      transform:translate(-50%,-50%);
      font-size:clamp(100px,15vw,220px);
      font-weight:900;
      letter-spacing:-.04em;
      color:rgba(40,40,45,.05);
      -webkit-text-stroke:none;
      white-space:nowrap;
      pointer-events:none;
      user-select:none;
      line-height:1;
      z-index:0;
    }
.article-wrap{padding-top:72px;}
.article-header{padding:60px 80px 40px;max-width:1100px;margin:0 auto;}
.cat-strategy{background:#EEF0FF;color:#3730A3;}
.cat-web{background:#F0F0F0;color:#4A4A50;}
.cat-seo{background:#EBF4FF;color:#1A6FBF;}
.cat-meo{background:#E8F8F0;color:#1A8A4A;}
.cat-ai{background:#E6F7FA;color:#0E7490;}
.cat-instagram{background:#FFF0F5;color:#C0306A;}
.cat-tiktok{background:#E8F8F8;color:#006B6B;}
.cat-x{background:#F2F2F2;color:#3A3A3A;}
.cat-youtube{background:#FFF0F0;color:#C0201A;}
.cat-note{background:#F5FAE8;color:#4A7A10;}
.cat-line{background:#E8F8E8;color:#0A8A3A;}
.cat-sns{background:#F5EEFF;color:#7A30C0;}
.cat-listing{background:#FFF4E8;color:#C06A10;}
.cat-display{background:#FFF8E8;color:#A06010;}
.cat-marketing{background:#FFFBE8;color:#8A7010;}
.article-cat-badge{display:inline-flex;align-items:center;padding:5px 14px;font-size:12px;letter-spacing:.06em;font-weight:700;margin-bottom:20px;border-radius:2px;}
.article-title{font-size:clamp(22px,3.5vw,40px);font-weight:700;line-height:1.4;letter-spacing:-.02em;color:#28282D;margin-bottom:20px;}
.article-meta{display:flex;align-items:center;gap:20px;flex-wrap:wrap;}
.article-meta-item{display:flex;align-items:center;gap:6px;font-size:12px;color:#767680;}
.article-meta-item svg{flex-shrink:0;}
.article-eyecatch{width:100%;max-width:1100px;margin:0 auto 0;padding:0 80px;}
.article-eyecatch img{width:100%;aspect-ratio:16/9;object-fit:cover;}
.article-eyecatch-placeholder{width:100%;aspect-ratio:16/9;background:#EDEDEE;display:flex;align-items:center;justify-content:center;}
.article-body-wrap{max-width:1100px;margin:0 auto;padding:48px 80px 80px;}
.article-content{min-width:0;}
.toc-sp{display:block;border:1px solid #E0E0E0;background:#F9F9F8;margin-bottom:40px;}
.toc-sp-head{
      padding:14px 20px;
      font-size:12px;font-weight:700;letter-spacing:.1em;color:#767680;text-transform:uppercase;
      display:flex;align-items:center;justify-content:space-between;
      cursor:pointer;user-select:none;
      border-bottom:0px solid #E0E0E0;
      transition:border-color .2s;
    }
.toc-sp.open .toc-sp-head{border-bottom:1px solid #E0E0E0;}
.toc-toggle-icon{
      width:18px;height:18px;position:relative;flex-shrink:0;
    }
.toc-toggle-icon::before,.toc-toggle-icon::after{
      content:'';position:absolute;background:#767680;border-radius:1px;
      transition:transform .25s,opacity .25s;
    }
.toc-toggle-icon::before{width:10px;height:1.5px;top:50%;left:50%;transform:translate(-50%,-50%);}
.toc-toggle-icon::after{width:1.5px;height:10px;top:50%;left:50%;transform:translate(-50%,-50%);}
.toc-sp.open .toc-toggle-icon::after{transform:translate(-50%,-50%) scaleY(0);opacity:0;}
.toc-sp-body{
      display:grid;
      grid-template-rows:0fr;
      transition:grid-template-rows .3s cubic-bezier(.4,0,.2,1);
      padding:0;
    }
.toc-sp-body-inner{overflow:hidden;}
.toc-sp.open .toc-sp-body{grid-template-rows:1fr;}
.toc-sp.open .toc-sp-body-inner{padding:4px 0 12px;}
.toc-list{padding:0;margin:0;list-style:none;counter-reset:toc-counter;}
.toc-list>li{border-top:1px solid #EBEBEB;display:flex;align-items:baseline;gap:6px;}
.toc-list>li:not(.toc-list-h3){counter-increment:toc-counter;}
.toc-list>li:not(.toc-list-h3)::before{
      content:counter(toc-counter) "." !important;
      font-size:13px !important;
      font-weight:700 !important;
      color:#28282D !important;
      min-width:22px !important;
      flex-shrink:0 !important;
      padding-top:9px !important;
      background:none !important;
      border-radius:0 !important;
      width:auto !important;
      height:auto !important;
      transform:none !important;
      position:static !important;
      top:auto !important;
      left:auto !important;
      display:inline !important;
      align-items:unset !important;
      justify-content:unset !important;
    }
.toc-list-h3::before{
      content:'' !important;
      min-width:0 !important;
      width:0 !important;
      height:0 !important;
      background:none !important;
      border-radius:0 !important;
      transform:none !important;
      position:static !important;
      display:none !important;
    }
.toc-list li:first-child{border-top:none;}
.toc-list a{display:block;padding:9px 0;font-size:13px;color:#4A4A50;line-height:1.5;transition:color .15s;flex:1;}
.toc-list a:hover{color:#28282D;}
.toc-list-h3{padding-left:28px !important;}
.toc-list-h3 a{font-size:12px;color:#767680;}
.toc-list-h3 a:hover{color:#28282D;}
.article-content p{font-size:16px;line-height:1.95;color:#28282D;margin-bottom:32px;}
.article-content strong{font-weight:700;}
.article-content mark{background:#FFF3CD;padding:1px 3px;border-radius:2px;}
.article-content a{color:#1A6EBF;text-decoration:underline;text-underline-offset:3px;transition:opacity .2s;}
.article-content a:hover{opacity:.7;}
.article-content h2{
      font-size:clamp(19px,2.2vw,26px);
      font-weight:700;
      line-height:1.45;
      letter-spacing:-.01em;
      color:#28282D;
      margin:64px 0 28px;
      padding:22px 26px;
      background:#F5F5F3;
      border-left:4px solid #28282D;
      scroll-margin-top:100px;
    }
.article-content h2:first-child{margin-top:0;}
.article-content h3{
      font-size:clamp(16px,1.8vw,20px);
      font-weight:700;
      line-height:1.45;
      letter-spacing:-.01em;
      color:#fff;
      background:#28282D;
      margin:48px 0 22px;
      padding:14px 22px;
      scroll-margin-top:100px;
    }
.article-content h4{
      font-size:16px;
      font-weight:700;
      line-height:1.45;
      color:#28282D;
      margin:36px 0 18px;
      padding-left:14px;
      border-left:3px solid #28282D;
      scroll-margin-top:100px;
    }
.article-content ul{margin:0 0 28px;padding-left:0;}
.article-content ul li{font-size:16px;line-height:1.85;color:#28282D;padding:7px 0 7px 26px;position:relative;border-bottom:1px solid #F0F0F0;}
.article-content ul li:last-child{border-bottom:none;}
.article-content ul li::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);width:6px;height:6px;border-radius:50%;background:#28282D;}
.article-content ol{margin:0 0 28px;padding-left:0;counter-reset:ol-counter;}
.article-content ol li{font-size:16px;line-height:1.85;color:#28282D;padding:9px 0 9px 38px;position:relative;border-bottom:1px solid #F0F0F0;counter-increment:ol-counter;}
.article-content ol li:last-child{border-bottom:none;}
.article-content ol li::before{content:counter(ol-counter);position:absolute;left:0;top:50%;transform:translateY(-50%);width:24px;height:24px;background:#28282D;color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;border-radius:50%;}
.article-content .table-wrap{overflow-x:auto;margin:0 0 24px;-webkit-overflow-scrolling:touch;}
.article-content table{width:100%;border-collapse:collapse;font-size:16px;min-width:480px;}
.article-content th{background:#28282D;color:#fff;padding:12px 16px;text-align:left;font-weight:700;font-size:13px;letter-spacing:.02em;}
.article-content td{padding:12px 16px;border-bottom:1px solid #E8E8E8;line-height:1.7;}
.article-content tr:nth-child(even) td{background:#F9F9F8;}
.box-point{border:2px solid #28282D;padding:24px 28px;margin:0 0 32px;position:relative;}
.box-point::before{content:'POINT';position:absolute;top:-12px;left:20px;background:#28282D;color:#fff;font-size:11px;font-weight:700;letter-spacing:.12em;padding:3px 12px;}
.box-point p{margin:0;font-size:16px;line-height:1.8;}
.box-caution{border:2px solid #C0392B;padding:24px 28px;margin:0 0 32px;position:relative;background:#FFF8F8;}
.box-caution::before{content:'注意';position:absolute;top:-12px;left:20px;background:#C0392B;color:#fff;font-size:11px;font-weight:700;letter-spacing:.12em;padding:3px 12px;}
.box-caution p{margin:0;font-size:16px;line-height:1.8;color:#28282D;}
.box-summary{border:2px solid #28282D;padding:24px 28px;margin:0 0 32px;position:relative;background:#F5F5F3;}
.box-summary::before{content:'まとめ';position:absolute;top:-12px;left:20px;background:#28282D;color:#fff;font-size:11px;font-weight:700;letter-spacing:.12em;padding:3px 12px;}
.box-summary p,.box-summary ul{margin:0;font-size:16px;line-height:1.8;}
.box-summary ul{padding-left:0;}
.box-summary ul li{padding:4px 0 4px 20px;border-bottom:none;}
.box-summary ul li::before{width:5px;height:5px;top:14px;transform:none;}
.related-link-box{display:flex;align-items:center;gap:16px;border:1px solid #E0E0E0;padding:16px 20px;margin:0 0 32px;text-decoration:none;color:inherit;transition:background .2s;}
.related-link-box:hover{background:#F7F7F5;}
.related-link-box-icon{width:40px;height:40px;background:#F0F0EE;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.related-link-box-text{flex:1;min-width:0;}
.related-link-box-label{font-size:11px;letter-spacing:.08em;color:#767680;margin-bottom:4px;}
.related-link-box-title{font-size:16px;font-weight:700;color:#28282D;line-height:1.4;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.related-link-box-arrow{flex-shrink:0;}
.faq-q-arrow{width:20px;height:20px;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:transform .2s;margin-top:3px;}
.faq-q-arrow::after{content:'';display:block;width:7px;height:7px;border-right:1.5px solid #28282D;border-bottom:1.5px solid #28282D;transform:rotate(45deg) translateY(-2px);transition:transform .2s;}
.faq-item.open .faq-q-arrow::after{transform:rotate(-135deg) translateY(-2px);}
.faq-a p{font-size:16px;line-height:1.85;color:#4A4A50;margin:0;}
.supervisor-box{border:1px solid #E0E0E0;padding:28px 32px;margin:56px 0 0;display:flex;gap:24px;align-items:flex-start;}
.supervisor-label{font-size:11px;letter-spacing:.12em;color:#767680;font-weight:700;margin-bottom:16px;text-transform:uppercase;}
.supervisor-photo{width:72px;height:72px;border-radius:50%;overflow:hidden;flex-shrink:0;background:#EDEDEE;}
.supervisor-photo img{width:100%;height:100%;object-fit:cover;}
.supervisor-info{flex:1;}
.supervisor-name{font-size:16px;font-weight:700;color:#28282D;margin-bottom:4px;}
.supervisor-title{font-size:12px;color:#767680;margin-bottom:12px;line-height:1.5;}
.supervisor-bio{font-size:13px;line-height:1.85;color:#4A4A50;}
.inline-cta{background:#28282D;padding:40px 48px;margin:56px 0;text-align:center;position:relative;overflow:hidden;border-left:4px solid #fff;}
.inline-cta-eyebrow{font-size:10px;letter-spacing:.18em;color:#BBBBC0 !important;margin-bottom:12px;text-transform:uppercase;font-weight:600;}
.inline-cta-title{font-size:clamp(16px,2vw,22px) !important;font-weight:700 !important;color:#ffffff !important;line-height:1.4 !important;margin-bottom:16px !important;}
.inline-cta-body{font-size:13px;color:#D8D8DC !important;line-height:1.8;margin-bottom:24px;}
.inline-cta-btn{display:inline-flex;align-items:center;justify-content:center;height:52px;padding:0 40px;background:#ffffff;color:#28282D !important;font-size:14px;font-weight:700;letter-spacing:.04em;transition:background .2s,color .2s;border:2px solid #ffffff;}
.inline-cta-btn:hover{background:transparent;color:#ffffff !important;}
.article-content .inline-cta .inline-cta-eyebrow{color:#BBBBC0 !important;margin-bottom:12px !important;}
.article-content .inline-cta .inline-cta-title{color:#ffffff !important;margin-bottom:16px !important;}
.article-content .inline-cta .inline-cta-body{color:#D8D8DC !important;margin-bottom:24px !important;}
.article-content .inline-cta .inline-cta-btn{color:#28282D !important;}
.article-content .inline-cta .inline-cta-btn:hover{color:#ffffff !important;}
.related-service-sec{padding:56px 80px;background:#F0F4FF;border-top:1px solid #D8E0F0;}
.related-service-inner{max-width:1100px;margin:0 auto;}
.related-service-eyebrow{font-size:11px;letter-spacing:.22em;color:#5A6A8A;font-weight:700;text-transform:uppercase;display:block;margin-bottom:8px;}
.related-service-title{font-size:clamp(16px,2vw,22px);font-weight:700;color:#28282D;margin-bottom:24px;}
.related-service-card{border:1px solid #C8D4E8;background:#fff;padding:28px 32px;}
.related-service-card-body{display:flex;flex-direction:column;gap:12px;}
.related-service-label{display:inline-flex;align-items:center;padding:4px 12px;background:#EBF4FF;color:#1A6FBF;font-size:11px;font-weight:700;letter-spacing:.06em;border-radius:2px;align-self:flex-start;}
.related-service-desc{font-size:14px;line-height:1.8;color:#4A4A50;margin:0;}
.related-service-btn{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:#28282D;letter-spacing:.06em;border:1px solid #D8D8DC;padding:14px 28px;transition:background .2s,border-color .2s,color .2s;align-self:flex-start;}
.related-service-btn:hover{background:#28282D;color:#fff;border-color:#28282D;}
.related-service-btn svg{transition:transform .2s;}
.related-service-btn:hover svg{transform:translateX(4px);}
.related-sec{padding:64px 80px;background:#F7F7F5;border-top:1px solid #E8E8E8;}
.related-inner{max-width:1100px;margin:0 auto;}
.related-head{margin-bottom:36px;}
.related-eyebrow{font-size:11px;letter-spacing:.22em;color:#767680;font-weight:700;text-transform:uppercase;display:block;margin-bottom:8px;}
.related-h2{font-size:clamp(18px,2.5vw,26px);font-weight:400;letter-spacing:-.03em;color:#28282D;}
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.related-card{border:1px solid #E0E0E0;background:#fff;display:flex;flex-direction:column;overflow:hidden;transition:box-shadow .2s;}
.related-card:hover{box-shadow:0 4px 20px rgba(0,0,0,.06);}
.related-card-img{aspect-ratio:16/9;background:#EDEDEE;overflow:hidden;}
.related-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s cubic-bezier(.16,1,.3,1);}
.related-card:hover .related-card-img img{transform:scale(1.03);}
.related-card-body{padding:16px 20px 20px;flex:1;display:flex;flex-direction:column;}
.related-card-cat{font-size:11px;letter-spacing:.08em;color:#767680;margin-bottom:8px;}
.related-card-title{font-size:16px;font-weight:700;color:#28282D;line-height:1.5;flex:1;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;}
.related-card-date{font-size:12px;color:#BBBBC0;margin-top:12px;}
@media (prefers-reduced-motion:reduce){.fu{opacity:1;transform:none;}}
.cta-sec .fu{opacity:1 !important;transform:translateY(0) !important;}
.page-hero{padding:160px 80px 100px;background:#fff;border-bottom:1px solid #E8E8E8;}
.page-hero-inner{max-width:1100px;margin:0 auto;}
.page-hero-eyebrow{font-size:11px;letter-spacing:.22em;color:#767680;font-weight:700;text-transform:uppercase;margin-bottom:24px;display:block;}
.page-hero-eyebrow::before{content:'';display:block;width:24px;height:1px;background:#9B9BA0;margin-bottom:12px;}
.page-hero-h1{font-size:clamp(56px,8vw,120px);font-weight:700;line-height:1.2;letter-spacing:-.04em;color:#28282D;margin-bottom:24px;}
.page-hero-desc{font-size:16px;line-height:1.85;color:#4A4A50;max-width:600px;}
.filter-sec{background:#F7F7F5;padding:16px 80px;border-bottom:1px solid #E8E8E8;position:sticky;top:72px;z-index:50;}
.filter-inner{max-width:1100px;margin:0 auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap;width:100%;}
.filter-inner::-webkit-scrollbar{display:none}
.filter-label{font-size:12px;letter-spacing:.1em;color:#767680;font-weight:600;white-space:nowrap;margin-right:4px;flex-shrink:0;}
.filter-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border:1px solid #D8D8DC;font-size:13px;color:#28282D;background:#fff;cursor:pointer;transition:background .2s,border-color .2s,color .2s;letter-spacing:.02em;white-space:nowrap;flex-shrink:0;font-family:inherit;}
.filter-btn:hover,.filter-btn.active{background:#28282D;color:#fff;border-color:#28282D;}
.filter-btn-count{font-size:11px;opacity:.6;font-weight:600;}
.featured-sec{padding:80px 80px 0;background:#fff;}
.featured-inner{max-width:1100px;margin:0 auto;}
.featured-eyebrow{font-size:11px;letter-spacing:.22em;color:#767680;font-weight:700;text-transform:uppercase;display:block;margin-bottom:12px;}
.featured-h2{font-size:clamp(18px,2vw,22px);font-weight:700;letter-spacing:-.02em;color:#28282D;margin-bottom:32px;}
.featured-card{display:grid;grid-template-columns:1.2fr 1fr;border:1px solid #E0E0E0;background:#fff;overflow:hidden;text-decoration:none;color:inherit;transition:box-shadow .25s,transform .25s;}
.featured-card:hover{box-shadow:0 12px 48px rgba(0,0,0,.1);transform:translateY(-2px);}
.featured-card-img{background:#EDEDEE;min-height:380px;position:relative;overflow:hidden;}
.featured-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.16,1,.3,1);}
.featured-card:hover .featured-card-img img{transform:scale(1.04);}
.featured-card-body{padding:56px 48px;display:flex;flex-direction:column;justify-content:center;}
.featured-card-cat{display:inline-flex;align-items:center;padding:4px 12px;font-size:11px;letter-spacing:.1em;font-weight:700;margin-bottom:20px;align-self:flex-start;}
.featured-card-title{font-size:clamp(18px,2vw,24px);font-weight:700;color:#28282D;line-height:1.5;letter-spacing:-.02em;margin-bottom:16px;}
.featured-card-date{font-size:12px;color:#9A9AA0;letter-spacing:.06em;margin-bottom:28px;}
.featured-card-link-text{display:inline-flex;align-items:center;gap:10px;font-size:13px;font-weight:700;color:#28282D;letter-spacing:.06em;border-bottom:1px solid #28282D;padding-bottom:4px;align-self:flex-start;transition:opacity .2s;}
.featured-card:hover .featured-card-link-text{opacity:.6;}
.featured-new-badge{display:inline-flex;align-items:center;padding:3px 10px;background:#28282D;color:#fff;font-size:10px;letter-spacing:.12em;font-weight:700;margin-bottom:12px;align-self:flex-start;}
.columns-sec{padding:64px 80px 120px;}
.columns-inner{max-width:1100px;margin:0 auto;}
.columns-sec-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:40px;flex-wrap:wrap;gap:12px;}
.columns-sec-title{font-size:clamp(16px,1.8vw,20px);font-weight:700;color:#28282D;letter-spacing:-.02em;}
.columns-count{font-size:13px;color:#9A9AA0;letter-spacing:.04em;}
.columns-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.col-card{border:1px solid #E8E8E8;display:flex;flex-direction:column;overflow:hidden;transition:box-shadow .2s,transform .2s;background:#fff;}
.col-card:hover{box-shadow:0 6px 28px rgba(0,0,0,.08);transform:translateY(-2px);}
.col-card-link{display:contents;}
.col-card-img{width:100%;aspect-ratio:576/356;background:#EDEDEE;overflow:hidden;position:relative;}
.col-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s cubic-bezier(.16,1,.3,1);}
.col-card:hover .col-card-img img{transform:scale(1.04);}
.col-card-img-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#F0F0F0;}
.col-card-body{padding:20px 22px 22px;flex:1;display:flex;flex-direction:column;}
.col-card-meta{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap;}
.col-card-cat{display:inline-flex;align-items:center;padding:3px 10px;font-size:11px;letter-spacing:.08em;font-weight:700;}
.col-card-date{font-size:11px;color:#9A9AA0;letter-spacing:.04em;}
.col-card-title{font-size:14px;font-weight:700;color:#28282D;line-height:1.6;letter-spacing:-.01em;flex:1;}
.col-card-footer{display:flex;align-items:center;justify-content:flex-end;margin-top:16px;}
.col-card-arrow{width:28px;height:28px;border:1px solid #D8D8DC;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .2s,border-color .2s;}
.col-card:hover .col-card-arrow{background:#28282D;border-color:#28282D;}
.col-card:hover .col-card-arrow svg path{stroke:#fff;}
.col-cta-banner{grid-column:1/-1;background:#111111;padding:40px 48px;display:flex;align-items:center;justify-content:space-between;gap:32px;text-decoration:none;color:inherit;transition:opacity .2s;position:relative;overflow:hidden;}
.col-cta-banner::before{content:'';position:absolute;top:-60px;right:60px;width:300px;height:300px;background:radial-gradient(circle,rgba(99,102,241,.18) 0%,transparent 70%);pointer-events:none;}
.col-cta-banner:hover{opacity:.9;}
.col-cta-banner-text{position:relative;z-index:1;}
.col-cta-banner-eyebrow{font-size:10px;letter-spacing:.22em;color:#ffffff;font-weight:700;text-transform:uppercase;margin-bottom:10px;display:block;}
.col-cta-banner-title{font-size:clamp(16px,2vw,22px);font-weight:700;color:#fff;line-height:1.4;letter-spacing:-.02em;}
.col-cta-banner-btn{display:inline-flex;align-items:center;justify-content:center;height:52px;padding:0 36px;background:#fff;color:#28282D;font-size:14px;font-weight:700;letter-spacing:.04em;white-space:nowrap;flex-shrink:0;position:relative;z-index:1;transition:background .2s,color .2s;}
.col-cta-banner:hover .col-cta-banner-btn{background:#F0F0F0;}
.pagination{display:flex;align-items:center;justify-content:center;gap:4px;margin-top:56px;}
.pag-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1.5px solid #D8D8DC;font-size:16px;color:#28282D;background:#fff;cursor:pointer;transition:background .2s,border-color .2s,color .2s;font-family:inherit;font-weight:500;flex-shrink:0;}
.pag-btn:hover{border-color:#28282D;}
.pag-btn.active{background:#28282D;color:#fff;border-color:#28282D;font-weight:700;}
.pag-btn:disabled{opacity:.35;cursor:not-allowed;pointer-events:none;}
.pag-btn.pag-prev,.pag-btn.pag-next{width:auto;padding:0 16px;gap:6px;font-size:13px;letter-spacing:.04em;}
.pag-ellipsis{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;font-size:16px;color:#9A9AA0;pointer-events:none;}
@media(min-width:601px) and (max-width:900px){
      .columns-grid{grid-template-columns:repeat(2,1fr);}
      .col-cta-banner{grid-column:1/-1;}
    }
.breadcrumb [aria-current]{color:#28282D}
.page-header{padding:160px 80px 100px;background:#fff;border-bottom:1px solid #E8E8E8;}
.page-header-inner{max-width:1100px;margin:0 auto;}
.page-eyebrow{
      font-size:11px;letter-spacing:.22em;color:#767680;
      font-weight:700;text-transform:uppercase;margin-bottom:24px;
      display:block;
    }
.page-title{
      font-size:clamp(56px,8vw,120px);
      font-weight:700;letter-spacing:-.04em;
      color:#28282D;line-height:1.2;margin-bottom:24px;
    }
.page-desc{
      font-size:16px;line-height:1.85;color:#4A4A50;max-width:600px;
    }
.sec-eyebrow::before,
.about-eyebrow::before,
.area-eyebrow::before,
.service-opt-eyebrow::before,
.about-mission-label::before,
.cta-eyebrow::before,
.results-eyebrow::before,
.case-eyebrow::before,
.related-eyebrow::before,
.works-hero-eyebrow::before{
  content:none;display:none;
}
.page-eyebrow::before{content:'';display:block;width:24px;height:1px;background:#9B9BA0;margin-bottom:12px;}
.sec-title{
      font-size:clamp(36px,4.2vw,60px);
      font-weight:900;letter-spacing:-.04em;
      color:#28282D;line-height:1.2;
    }
.mission{
      padding:100px 80px;
      background:#28282D;
      color:#fff;
    }
.mission-inner{
      max-width:1200px;margin:0 auto;
      display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;
    }
.mission .sec-eyebrow{color:#ffffff}
.mission .sec-eyebrow::before{background:rgba(255,255,255,.6)}
.mission .sec-title{color:#fff}
.mission-body{
      font-size:16px;line-height:2.0;color:rgba(255,255,255,.92);
      letter-spacing:.04em;
    }
.mission-body p+p{margin-top:1.2em}
.vision{
      padding:100px 80px;
      background:#F5F5F3;
    }
.vision-inner{
      max-width:1200px;margin:0 auto;
    }
.vision-head{margin-bottom:64px}
.vision-statement{
      font-size:clamp(22px,2.4vw,34px);
      font-weight:700;letter-spacing:-.03em;
      color:#28282D;line-height:1.5;
      margin-top:28px;
      padding-left:36px;
      border-left:3px solid #28282D;
    }
.value{
      padding:100px 80px;
      background:#fff;
    }
.value-inner{
      max-width:1200px;margin:0 auto;
    }
.value-head{margin-bottom:64px}
.value-list{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:0;
      border-top:1px solid #E8E8E8;
      border-left:1px solid #E8E8E8;
    }
.value-item{
      padding:48px 48px;
      border-right:1px solid #E8E8E8;
      border-bottom:1px solid #E8E8E8;
      transition:background .2s;
    }
.value-item:hover{background:#FAFAFA}
.value-num{
      font-size:11px;letter-spacing:.2em;color:#9B9BA0;
      margin-bottom:20px;display:block;
    }
.value-phrase{
      font-size:clamp(22px,2.4vw,32px);
      font-weight:700;letter-spacing:-.02em;
      color:#28282D;line-height:1.45;
      margin-bottom:16px;
      position:relative;
      display:inline-block;
    }
.value-phrase::after{
      content:'';
      position:absolute;
      left:0;bottom:-4px;
      width:0;height:2px;
      background:#28282D;
      transition:width .7s cubic-bezier(.16,1,.3,1);
    }
.value-phrase.underline-active::after{
      width:100%;
    }
.value-desc{
      font-size:16px;line-height:1.85;color:#767680;
    }
.representative{
      padding:100px 80px;
      background:#F5F5F3;
    }
.representative-head{
      max-width:1200px;margin:0 auto 64px;
    }
.representative-inner{
      max-width:1200px;margin:0 auto;
      display:grid;
      grid-template-columns:340px 1fr;
      gap:80px;
      align-items:start;
    }
.rep-photo{
      position:sticky;
      top:100px;
    }
.rep-photo-wrapper{
      position:relative;
      padding-right:16px;
      padding-bottom:16px;
      overflow:visible;
    }
.rep-photo-wrapper::after{
      content:'';
      position:absolute;
      right:0;bottom:0;
      width:calc(100% - 16px);
      height:calc(100% - 16px);
      background:#00B4C8;
      z-index:0;
      border-radius:2px;
    }
.rep-photo-frame{
      width:100%;
      aspect-ratio:3/4;
      background:#E8E8E8;
      overflow:hidden;
      position:relative;
      z-index:1;
      box-shadow:0 8px 32px rgba(0,0,0,.12);
    }
.rep-photo-frame img{
      width:100%;height:100%;object-fit:cover;
      object-position:55% 0%;
    }
.rep-photo-placeholder{
      width:100%;height:100%;
      display:flex;flex-direction:column;align-items:center;justify-content:center;
      gap:12px;
      color:#9B9BA0;
    }
.rep-photo-placeholder svg{opacity:.4}
.rep-photo-placeholder span{font-size:11px;letter-spacing:.1em;opacity:.6}
.rep-name-block{
      margin-top:24px;
    }
.rep-name-en{
      font-size:11px;letter-spacing:.2em;color:#9B9BA0;
      text-transform:uppercase;margin-bottom:6px;
    }
.rep-name-ja{
      font-size:22px;font-weight:700;letter-spacing:.04em;color:#28282D;
    }
.rep-title{
      font-size:12px;color:#767680;letter-spacing:.06em;margin-top:4px;
    }
.rep-body{}
.rep-eyebrow{
      font-size:11px;letter-spacing:.2em;color:#9B9BA0;
      text-transform:uppercase;margin-bottom:16px;
    }
.rep-catch{
      font-size:clamp(28px,2.8vw,40px);
      font-weight:700;letter-spacing:-.03em;
      color:#28282D;line-height:1.3;
      margin-bottom:48px;
      padding-bottom:48px;
      border-bottom:1px solid #E8E8E8;
    }
.rep-career{
      margin-bottom:48px;
    }
.rep-career-label{
      font-size:13px;letter-spacing:.2em;color:#4A4A52;
      text-transform:uppercase;margin-bottom:20px;font-weight:600;
    }
.rep-career-list{
      display:flex;flex-direction:column;gap:0;
    }
.rep-career-item{
      display:grid;
      grid-template-columns:90px 1fr;
      gap:0;
      padding:16px 0;
      border-bottom:1px solid #E8E8E8;
    }
.rep-career-item:first-child{border-top:1px solid #E8E8E8}
.rep-career-year{
      font-size:14px;color:#4A4A52;letter-spacing:.04em;padding-top:2px;font-weight:600;
    }
.rep-career-year.is-period{
      font-size:14px;color:#4A4A52;letter-spacing:.04em;font-weight:600;
    }
.rep-career-year.is-current{
      font-size:14px;color:#00B4C8;font-weight:700;letter-spacing:.04em;
      position:relative;
    }
.rep-career-year.is-current::before{
      content:'';
      display:inline-block;
      width:6px;height:6px;
      background:#00B4C8;
      border-radius:50%;
      margin-right:6px;
      vertical-align:middle;
      position:relative;top:-1px;
    }
.rep-career-text{
      font-size:16px;color:#28282D;line-height:1.7;
    }
.rep-message-label{
      font-size:13px;letter-spacing:.2em;color:#4A4A52;
      text-transform:uppercase;margin-bottom:20px;font-weight:600;
    }
.rep-message{
      font-size:16px;line-height:2;color:#4A4A52;
    }
.rep-message p+p{margin-top:1.6em}
.overview{
      padding:100px 80px;
      background:#F5F5F3;
    }
.overview-inner{
      max-width:1200px;margin:0 auto;
    }
.overview-head{margin-bottom:64px}
.overview-table{
      width:100%;border-collapse:collapse;
      background:#fff;
    }
.overview-table tr{border-bottom:1px solid #E8E8E8}
.overview-table tr:first-child{border-top:1px solid #E8E8E8}
.overview-table th{
      width:220px;
      padding:24px 32px;
      font-size:13px;font-weight:500;letter-spacing:.04em;
      color:#28282D;
      text-align:left;vertical-align:top;
      background:#fff;
    }
.overview-table td{
      padding:24px 32px;
      font-size:16px;line-height:1.8;color:#4A4A52;
      vertical-align:top;
    }
.overview-table td a{color:#28282D;text-decoration:underline;text-underline-offset:3px}
.overview-table td a:hover{opacity:.6}
.overview-table .td-services{display:flex;flex-direction:column;gap:4px}
.overview-sns{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.overview-sns-link{
      display:inline-flex;align-items:center;gap:6px;
      padding:6px 14px;border-radius:4px;
      border:1px solid #D0D0D0;
      font-size:12px;color:#28282D;
      text-decoration:none;
      transition:all .2s;
    }
.overview-sns-link svg{width:16px;height:16px;flex-shrink:0;color:#28282D}
.overview-sns-link:hover{background:#28282D;color:#fff;border-color:#28282D}
.overview-sns-link:hover svg{color:#fff}
.overview-sns-ig:hover{background:#E1306C;border-color:#E1306C}
.overview-sns-tt:hover{background:linear-gradient(135deg,#69C9D0 0%,#EE1D52 100%);border-color:transparent}
.overview-sns-x:hover{background:#000;border-color:#000}
.access{
      padding:100px 80px;
      background:#fff;
    }
.access-inner{
      max-width:1200px;margin:0 auto;
    }
.access-head{margin-bottom:64px}
.access-body{
      display:grid;grid-template-columns:1fr 400px;gap:64px;align-items:start;
    }
.access-map{
      aspect-ratio:16/9;
      background:#F0F0F0;
      overflow:hidden;
    }
.access-map iframe{width:100%;height:100%;border:0;display:block}
.access-info{}
.access-address{
      font-size:16px;line-height:1.9;color:#4A4A52;
      margin-bottom:32px;
      padding-bottom:32px;
      border-bottom:1px solid #E8E8E8;
    }
.access-address strong{display:block;font-size:13px;font-weight:500;color:#28282D;letter-spacing:.04em;margin-bottom:8px}
.access-route{}
.access-route-item{
      margin-bottom:28px;
      padding-bottom:28px;
      border-bottom:1px solid #E8E8E8;
    }
.access-route-item:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}
.access-route-label{
      font-size:12px;font-weight:600;letter-spacing:.1em;
      color:#28282D;margin-bottom:10px;
      display:flex;align-items:center;gap:8px;
    }
.access-route-label::before{
      content:'';display:block;width:20px;height:1px;background:#28282D;
    }
.access-route-text{
      font-size:16px;line-height:1.8;color:#4A4A52;
    }
.cta-section{
      padding:72px 80px;
      background:#111111;
      text-align:center;
    }
.cta-section-eyebrow{
      font-size:11px;letter-spacing:.2em;color:rgba(255,255,255,.92);
      text-transform:uppercase;margin-bottom:20px;
      display:flex;align-items:center;justify-content:center;gap:12px;
    }
.cta-section-eyebrow::before,.cta-section-eyebrow::after{
      content:'';display:block;width:24px;height:1px;background:rgba(255,255,255,.6);
    }
.cta-section-title{
      font-size:clamp(26px,3vw,42px);
      font-weight:700;letter-spacing:-.03em;
      color:#fff;line-height:1.3;margin-bottom:20px;
    }
.cta-section-sub{
      font-size:16px;color:rgba(255,255,255,.92);line-height:1.8;
      margin-bottom:48px;text-align:center;
    }
.cta-section-btns{
      display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;
    }
.cta-btn-primary{
      display:inline-flex;align-items:center;justify-content:center;
      height:56px;padding:0 40px;
      background:#fff;color:#28282D;
      font-size:14px;font-weight:600;letter-spacing:.06em;
      border:1px solid #fff;
      transition:background .2s,color .2s;
    }
.cta-btn-primary:hover{background:transparent;color:#fff}
.cta-btn-tel{
      display:inline-flex;align-items:center;gap:8px;
      height:56px;padding:0 32px;
      border:1px solid rgba(255,255,255,.35);
      color:#fff;
      font-size:14px;font-weight:500;letter-spacing:.04em;
      transition:border-color .2s,background .2s;
    }
.cta-btn-tel:hover{border-color:#fff;background:rgba(255,255,255,.08)}
.cta-btn-tel-note{font-size:11px;color:rgba(255,255,255,.92);margin-top:12px;letter-spacing:.04em}

.hd-nav>a,.footer-nav-group a{position:relative;text-decoration:none}
.hd-nav>a::before,.footer-nav-group a::before{
      content:'';position:absolute;bottom:-1px;left:0;
      width:0;height:1px;background:currentColor;
      transition:width .3s cubic-bezier(.25,.46,.45,.94);
    }
.hd-nav>a:hover::before,.footer-nav-group a:hover::before{width:100%}
.page-subtitle{font-size:16px;color:#4A4A50;line-height:1.85;max-width:600px;}
.contact-wrap{max-width:800px;margin:0 auto;padding:64px 80px 120px}

/* ============================================================
   サンクスページ
   ============================================================ */
.thanks-wrap{max-width:800px;margin:0 auto;padding:64px 80px 120px}
.thanks-inner{}
.thanks-text{
  font-size:16px;line-height:1.85;color:#4A4A52;
  margin-bottom:48px;
}
.thanks-tel-box{
  display:flex;flex-direction:column;gap:8px;
  padding:36px 40px;background:#F7F7F7;border:1px solid #E8E8E8;
  margin-bottom:48px;
}
.thanks-tel-label{
  font-size:14px;letter-spacing:.04em;color:#767680;font-weight:500;
}
.thanks-btn-wrap{
  text-align:center;
}
.thanks-btn-wrap .btn-primary{
  background:#28282D;color:#fff;border-color:#28282D;
  display:inline-flex;align-items:center;justify-content:center;
  height:56px;padding:0 48px;
  font-size:14px;letter-spacing:.06em;font-weight:700;
  text-decoration:none;
  transition:background .2s,color .2s,border-color .2s;
}
.thanks-btn-wrap .btn-primary:hover{
  background:#fff;color:#28282D;border-color:#28282D;
}
.contact-intro{margin-bottom:56px}
.contact-intro-text{font-size:16px;line-height:1.85;color:#4A4A52;margin-bottom:24px}
.contact-tel-box{
      display:flex;align-items:center;gap:32px;
      padding:36px 40px;background:#F7F7F7;border:1px solid #E8E8E8;
      flex-wrap:wrap;
    }
.contact-tel-label{font-size:clamp(22px,2.4vw,32px);font-weight:700;letter-spacing:-.02em;color:#28282D;margin-bottom:8px;}
.contact-tel-num{
      font-size:clamp(36px,4.2vw,60px);font-weight:900;letter-spacing:-.04em;color:#28282D;
      text-decoration:none;transition:opacity .2s;display:block;margin-bottom:4px;
    }
.contact-tel-num:hover{opacity:.6}
.contact-tel-hours{font-size:16px;color:#28282D;margin-top:6px}
.contact-form-section{margin-bottom:0}
.contact-form-title{
      font-size:18px;font-weight:500;letter-spacing:-.02em;color:#28282D;
      margin-bottom:32px;padding-bottom:16px;border-bottom:1px solid #E8E8E8;
    }
.form-check-group{margin-bottom:40px}
.form-checks-group-label{
      font-size:13px;letter-spacing:.08em;color:#767680;font-weight:500;
      text-transform:uppercase;margin-bottom:8px;margin-top:16px;
    }
.form-checks-group-label:first-child{margin-top:0}
.form-check-label{
      font-size:14px;letter-spacing:.02em;color:#28282D;font-weight:600;
      margin-bottom:16px;display:block;
    }
.form-check-required{
      display:inline-block;font-size:12px;letter-spacing:.04em;
      color:#fff;background:#D94F4F;padding:2px 8px;margin-left:8px;
      vertical-align:middle;font-weight:600;
    }
.form-check-optional{
      display:inline-block;font-size:10px;letter-spacing:.06em;
      color:#767680;border:1px solid #D8D8DC;padding:2px 7px;margin-left:8px;
      vertical-align:middle;
    }
.form-checks{display:flex;flex-wrap:wrap;gap:10px}
.form-check-item{
      display:flex;align-items:center;gap:8px;
      padding:10px 16px;border:1px solid #E8E8E8;cursor:pointer;
      transition:border-color .2s,background .2s;font-size:16px;color:#28282D;
      user-select:none;
    }
.form-check-item:hover{border-color:#28282D}
.form-check-item input[type="checkbox"]{
      width:16px;height:16px;accent-color:#28282D;cursor:pointer;flex-shrink:0;
    }
.form-check-item.checked{background:#28282D;color:#fff;border-color:#28282D}
.form-check-item.checked input[type="checkbox"]{accent-color:#fff}
.form-fields{display:flex;flex-direction:column;gap:28px}
.form-field{}
.form-field-label{
      display:flex;align-items:center;gap:0;
      font-size:14px;color:#28282D;font-weight:500;margin-bottom:10px;letter-spacing:.02em;
    }
.form-field input[type="text"],
    .form-field input[type="email"],
    .form-field input[type="tel"],
    .form-field textarea{
      width:100%;
      padding:14px 16px;
      border:1px solid #D8D8DC;
      font-size:16px;color:#28282D;
      font-family:inherit;
      background:#fff;
      transition:border-color .2s;
      border-radius:0;
      -webkit-appearance:none;
      appearance:none;
      box-sizing:border-box;
    }
/* CF7のwpcf7-form-control-wrapを100%幅に */
.form-field .wpcf7-form-control-wrap{display:block;width:100%}
.form-field input:focus,
    .form-field textarea:focus{
      outline:none;border-color:#28282D;
    }
.form-field textarea{resize:vertical;min-height:140px;line-height:1.7}
.form-field input::placeholder,
    .form-field textarea::placeholder{color:#B0B0B5;font-size:14px}
.form-submit{margin-top:40px;text-align:center}
.form-submit-btn{
      display:inline-flex;align-items:center;justify-content:center;gap:10px;
      width:100%;max-width:400px;height:60px;
      background:#28282D;color:#fff;
      font-size:15px;letter-spacing:.1em;font-weight:600;
      border:none;cursor:pointer;
      transition:background .2s,color .2s;
      font-family:inherit;
    }
.form-submit-btn:hover{background:#fff;color:#28282D;border:1px solid #28282D}
.form-submit-btn svg{transition:transform .2s}
.form-submit-btn:hover svg{transform:translateX(4px)}
.form-note{font-size:12px;color:#767680;margin-top:16px;line-height:1.7;text-align:left}
.form-note a{color:#28282D;text-decoration:underline;text-underline-offset:3px}
.form-note a:hover{opacity:.6}
.seo-banner-icon svg{width:20px;height:20px}
.sp-swipe-hint{
      display:none;
      font-size:14px;color:#5A5A60;
      text-align:center;
      padding:20px 0;
      letter-spacing:.08em;
      font-weight:600;
    }
.swipe-hint-plan{
      display:none;
    }
@media(max-width:768px){
  .sp-swipe-hint{display:block!important}
}
.sp-swipe-hint::before{
      content:'\2190  ';
    }
.sp-swipe-hint::after{
      content:' \2192';
    }
.sp-scroll-track{
      display:none;
    }
.kv-h1-accent{
      display:inline-block;
      color:#fff;
    }
.results-eyebrow-sub{
      display:none;
    }
.results-body{
      display:none;
    }
.results-gallery{
      display:grid;
      grid-template-columns:repeat(3,1fr);
      gap:32px;
    }
.result-card.visible{opacity:1;transform:translateY(0);}
.result-card:hover{box-shadow:0 8px 32px rgba(0,0,0,.1);}
.result-card-title{
      padding:20px 24px 16px;
      font-size:clamp(16px,1.8vw,22px);
      font-weight:700;
      color:#28282D;
      line-height:1.3;
      border-bottom:1px solid #E8E8E8;
    }
.result-card-title strong{
      font-size:clamp(20px,2.2vw,28px);
      font-weight:900;
      color:#28282D;
    }
.result-img-wrap{
      position:relative;
      width:100%;aspect-ratio:4/3;
      overflow:hidden;
      background:#E8EEF8;
    }
.result-placeholder{
      width:100%;height:100%;
      display:flex;flex-direction:column;
      align-items:center;justify-content:center;
      gap:16px;
      background:linear-gradient(135deg,#F0F0F0 0%,#E4E4E4 100%);
      position:relative;
      overflow:hidden;
    }
.result-placeholder::before{
      content:'';
      position:absolute;inset:0;
      background:repeating-linear-gradient(
        45deg,
        transparent 0px,
        transparent 8px,
        rgba(255,255,255,.3) 9px
      );
    }
.mock-graph{
      width:70%;max-width:200px;
      display:flex;align-items:flex-end;gap:5px;
      height:90px;
      position:relative;z-index:1;
    }
.mock-bar{
      flex:1;
      background:linear-gradient(to top,rgba(40,40,45,.35),rgba(40,40,45,.75));
      border-radius:3px 3px 0 0;
    }
.mock-line{
      position:absolute;bottom:0;left:0;right:0;
      height:2px;background:rgba(40,40,45,.2);
    }
.placeholder-label{
      font-size:11px;letter-spacing:.1em;color:rgba(40,40,45,.5);
      text-transform:uppercase;font-weight:700;
      position:relative;z-index:1;
    }
.result-img-badge{display:none;}
.result-body{
      padding:16px 24px 0;
      display:flex;flex-direction:column;
      gap:0;
    }
.result-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px;}
.result-tag{
      display:inline-flex;align-items:center;
      padding:3px 12px;
      border-radius:100px;
      font-size:12px;font-weight:700;
      letter-spacing:.04em;
    }
.result-tag.industry{
      background:#F0F0F0;
      color:#28282D;
      border:1px solid #D8D8D8;
    }
.result-tag.period{
      background:#F0F0F0;
      color:#666;
      border:1px solid #D8D8D8;
    }
.result-comment{
      font-size:16px;line-height:1.7;color:#444;font-weight:500;
      margin-bottom:0;
    }
.result-metric{display:none;}
.result-arrow{
      display:flex;justify-content:center;
      padding:12px 0 4px;
    }
.result-arrow-icon{
      width:0;height:0;
      border-left:18px solid transparent;
      border-right:18px solid transparent;
      border-top:22px solid #28282D;
      filter:drop-shadow(0 2px 4px rgba(40,40,45,.25));
    }
.result-big-num-wrap{
      padding:8px 24px 28px;
      text-align:center;
    }
.result-big-num{
      font-size:clamp(52px,7vw,88px);
      font-weight:900;line-height:1;
      letter-spacing:-.04em;
      color:#28282D;
      display:block;
      text-shadow:none;
    }
.result-big-num-label{
      font-size:clamp(16px,1.8vw,22px);
      font-weight:900;
      color:#28282D;
      letter-spacing:.04em;
      display:block;
      margin-top:2px;
    }
.case-head .sec-h2{color:#ffffff;}
.case-head .sec-eyebrow{color:#ffffff;}
.case-head .sec-eyebrow::before{background:rgba(255,255,255,.7) !important;}
.case-head .view-all{color:#ffffff;border-bottom-color:#ffffff;}
.case-card:hover{background:#F8F8F8;}
.case-grid-row2{
      border-top:1px solid #E0E0E0;
      display:grid;grid-template-columns:repeat(3,1fr);
      gap:0;
    }
.voice-card:hover .voice-more{color:#28282D;}
.plan-seika-box{
      background:#111113;
      padding:40px 48px;
      margin-bottom:48px;
      display:flex;align-items:flex-start;gap:32px;
    }
.plan-seika-icon{
      width:56px;height:56px;flex-shrink:0;
      border:1px solid rgba(255,255,255,.2);
      border-radius:50%;
      display:flex;align-items:center;justify-content:center;
    }
.plan-seika-body{}
.plan-seika-label{font-size:11px;letter-spacing:.2em;color:rgba(255,255,255,.45);font-weight:700;text-transform:uppercase;margin-bottom:8px;display:block;}
.plan-seika-title{font-size:clamp(18px,2vw,24px);font-weight:700;color:#fff;letter-spacing:-.02em;margin-bottom:12px;}
.plan-seika-text{font-size:16px;line-height:1.8;color:rgba(255,255,255,.75);}
.plan-horizontal{
      display:grid;
      grid-template-columns:1fr auto 1fr;
      align-items:stretch;
      background:#fff;
    }
.plan-col{
      padding:56px 48px 64px;
      display:flex;flex-direction:column;
    }
.plan-col-left{

    }
.plan-col-right{
      
    }
.plan-plus{
      display:flex;align-items:center;justify-content:center;
      font-size:40px;font-weight:200;color:#C0C0C8;
      padding:0 8px;

    }
.plan-col-label{
      font-size:11px;letter-spacing:.22em;color:#9B9BA0;
      font-weight:700;text-transform:uppercase;
      margin-bottom:8px;display:block;
    }
.plan-col-ja{
      font-size:clamp(22px,2.4vw,30px);
      font-weight:700;letter-spacing:-.03em;color:#28282D;
      margin-bottom:20px;line-height:1.2;
    }
.plan-col-price{
      display:flex;align-items:baseline;gap:4px;
      margin-bottom:8px;
    }
.plan-col-price-val{
      font-size:clamp(40px,4vw,56px);
      font-weight:700;letter-spacing:-.04em;color:#28282D;
      line-height:1;
    }
.plan-col-price-unit{
      font-size:18px;font-weight:500;color:#28282D;
    }
.plan-col-price-unit small{
      font-size:12px;font-weight:400;color:#9B9BA0;
    }
.plan-col-note{
      font-size:13px;color:#767680;line-height:1.6;
      margin-bottom:32px;
    }
.plan-col-divider{
      height:1px;background:#E8E8E8;
      margin-bottom:28px;
    }
.plan-col-features{
      display:flex;flex-direction:column;gap:14px;
      flex:1;margin-bottom:40px;
      list-style:none;
    }
.plan-col-features li{
      display:flex;align-items:flex-start;gap:10px;
      font-size:16px;color:#3D3D42;line-height:1.6;
    }
.plan-col-features li::before{
      content:'';
      display:block;width:16px;height:16px;
      border:1px solid #28282D;border-radius:50%;
      flex-shrink:0;margin-top:2px;
      background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='8' viewBox='0 0 10 8'%3E%3Cpath d='M1 4l3 3 5-6' stroke='%2328282D' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/10px no-repeat;
    }
.btn-plan-h{
      display:flex;align-items:center;justify-content:center;
      height:52px;
      background:#28282D;color:#fff;
      font-size:14px;font-weight:700;letter-spacing:.04em;
      border:1px solid #28282D;
      transition:background .2s,color .2s;
      margin-top:auto;
    }
.btn-plan-h:hover{background:#fff;color:#28282D;}
.mid-cta{
      background:#28282D;
      padding:72px 80px;
    }
.mid-cta-inner{
      max-width:1100px;margin:0 auto;
      display:flex;align-items:center;justify-content:space-between;
      gap:40px;flex-wrap:wrap;
    }
.mid-cta-text{flex:1;}
.mid-cta-label{
      font-size:11px;letter-spacing:.22em;
      color:#ffffff;margin-bottom:12px;
      font-weight:700;display:block;
      text-transform:uppercase;
    }
.mid-cta-title{
      font-size:clamp(22px,3vw,36px);
      font-weight:700;line-height:1.3;
      letter-spacing:-.03em;color:#ffffff;
    }
.mid-cta-body{
      font-size:16px;line-height:1.8;
      color:#ffffff;margin-top:12px;text-align:center;
    }
.mid-cta-actions{display:flex;flex-direction:column;gap:12px;align-items:flex-end;flex-shrink:0;}
.btn-mid-cta{
      display:inline-flex;align-items:center;justify-content:center;
      height:56px;padding:0 44px;
      background:#fff;color:#28282D;
      font-size:14px;font-weight:700;letter-spacing:.06em;
      transition:opacity .2s;white-space:nowrap;
    }
.btn-mid-cta:hover{opacity:.8;}
.mid-cta-tel{
      font-size:15px;color:#ffffff;
      text-align:right;letter-spacing:.04em;
    }
.mid-cta-tel a{color:#ffffff;font-weight:600;}
.hd-nav-item>a,.hd-nav-item>span{display:flex;align-items:center;gap:4px;padding:0 16px;height:72px;font-size:13px;letter-spacing:.04em;color:#28282D;cursor:pointer;white-space:nowrap;transition:color .2s;}
.hd-nav-item>a:hover,.hd-nav-item>span:hover{color:#767680;}
.hd-nav-item>a::after,.hd-nav-item>span::after{content:'↓';font-size:9px;opacity:.5;}
.hd-nav-item>a.no-arrow::after,.hd-nav-item>span.no-arrow::after{display:none;}
.hd-mega a{display:block;font-size:13px;color:#4A4A50;padding:5px 0;transition:color .2s;}
.hd-mega a:hover{color:#28282D;}
.hd-drawer-link.no-arrow{justify-content:flex-start;}
.hd-btn-saicatsu{display:flex;align-items:center;justify-content:center;gap:6px;height:52px;padding:0 20px;border:1.5px solid #D8D8DC;font-size:13px;color:#28282D;font-weight:500;letter-spacing:.02em;transition:border-color .2s;}
.hd-btn-saicatsu:hover{border-color:#28282D;}
.article-header-inner{max-width:800px;margin:0 auto;}
.article-date{font-size:14px;color:#767680;letter-spacing:.05em;}
.article-cat{display:inline-block;font-size:12px;letter-spacing:.08em;color:#767680;border:1px solid #D8D8DC;padding:3px 10px;}
.article-sec{padding:80px 80px 120px;}
.article-body{max-width:800px;margin:0 auto;}
.article-body p{font-size:16px;line-height:1.9;color:#28282D;margin-bottom:24px;}
.article-body h2{font-size:22px;font-weight:700;letter-spacing:-.02em;color:#28282D;margin:48px 0 20px;padding-bottom:12px;border-bottom:2px solid #28282D;}
.article-body h3{font-size:18px;font-weight:700;color:#28282D;margin:36px 0 16px;}
.article-body ul,.article-body ol{margin:0 0 24px 24px;}
.article-body li{font-size:16px;line-height:1.9;color:#28282D;margin-bottom:8px;}
.article-body strong{font-weight:700;}
.article-body .note{background:#F5F5F3;border-left:3px solid #D8D8DC;padding:20px 24px;font-size:16px;line-height:1.8;color:#4A4A50;margin:32px 0;}
.article-nav{max-width:800px;margin:0 auto;padding:48px 0 0;border-top:1px solid #E8E8E8;display:flex;align-items:center;justify-content:space-between;gap:16px;}
.article-nav-btn{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:#767680;padding:12px 0;transition:color .2s;}
.article-nav-btn:hover{color:#28282D;}
.article-nav-back{display:inline-flex;align-items:center;justify-content:center;height:48px;padding:0 32px;border:1.5px solid #D8D8DC;font-size:14px;color:#28282D;font-weight:500;letter-spacing:.04em;transition:border-color .2s,background .2s;}
.article-nav-back:hover{border-color:#28282D;background:#F8F8F8;}
.cta-btns{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;}
.btn-cta-tel{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:56px;padding:0 32px;border:1.5px solid rgba(255,255,255,.4);color:#fff;font-size:15px;font-weight:500;letter-spacing:.04em;transition:border-color .2s;}
.btn-cta-tel:hover{border-color:#fff;}
.footer-sns-ig:hover svg rect,.footer-sns-ig:hover svg circle{stroke:#fff;}
.footer-sns-tt:hover svg path{stroke:#fff;}
.footer-sns-x:hover svg path{stroke:#fff;}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}}
.news-list-sec{max-width:900px;margin:0 auto;padding:60px 80px 120px;}
.news-item-left{
      display:flex;
      flex-direction:column;
      gap:6px;
    }
.news-cat{
      display:inline-block;
      font-size:11px;
      padding:3px 10px;
      border:1px solid #D8D8DC;
      border-radius:2px;
      color:#28282D;
      background:#F7F7F7;
      letter-spacing:.06em;
      white-space:nowrap;
      width:fit-content;
    }
.news-arrow{
      display:flex;
      align-items:center;
      justify-content:center;
      font-size:16px;
      color:#767680;
      transition:transform .2s,color .2s;
    }
.news-item:hover .news-arrow{transform:translateX(4px);color:#28282D;}
.page-btn{
      display:inline-flex;align-items:center;justify-content:center;
      min-width:40px;height:40px;padding:0 8px;
      border:1px solid #E8E8E8;
      background:#fff;color:#28282D;
      font-size:16px;cursor:pointer;
      transition:background .2s,color .2s,border-color .2s;
    }
.page-btn:hover{background:#28282D;color:#fff;border-color:#28282D;}
.page-btn.active{background:#28282D;color:#fff;border-color:#28282D;font-weight:700;}
.page-btn.disabled{opacity:.35;cursor:default;pointer-events:none;}
.page-btn.prev,.page-btn.next{padding:0 16px;font-size:13px;letter-spacing:.04em;}
.footer-sns-ig:hover svg rect,.footer-sns-ig:hover svg circle,.footer-sns-ig:hover svg path{stroke:#fff;}
.page-updated{font-size:14px;color:#767680;letter-spacing:.04em;margin-top:0;}
.privacy-wrap{max-width:760px;margin:0 auto;padding:64px 80px 120px}
.privacy-intro{font-size:16px;line-height:1.85;color:#4A4A52;margin-bottom:56px}
.privacy-section{margin-bottom:48px}
.privacy-section h2{
      font-size:18px;font-weight:500;letter-spacing:-.02em;color:#28282D;
      margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #E8E8E8;
    }
.privacy-section p{font-size:16px;line-height:1.85;color:#4A4A52;margin-bottom:12px}
.privacy-section p:last-child{margin-bottom:0}
.privacy-section ul{padding-left:1.4em;font-size:16px;line-height:1.85;color:#4A4A52;margin-bottom:12px}
.privacy-section ul li{margin-bottom:6px}
.privacy-section a{color:#28282D;text-decoration:underline;text-underline-offset:3px}
.privacy-section a:hover{opacity:.6}
.privacy-table{width:100%;border-collapse:collapse;font-size:16px;color:#4A4A52;margin-bottom:12px}
.privacy-table th{
      text-align:left;font-weight:500;color:#28282D;
      padding:12px 16px;background:#F7F7F7;
      border:1px solid #E8E8E8;width:180px;vertical-align:top;
    }
.privacy-table td{padding:12px 16px;border:1px solid #E8E8E8;vertical-align:top;line-height:1.7}
@media(max-width:768px){
  .privacy-wrap{padding:40px 16px 80px;}
  .privacy-table,.privacy-table tbody,.privacy-table tr{display:block;width:100%;}
  .privacy-table th{display:block;width:100%;border-bottom:none;}
  .privacy-table td{display:block;width:100%;border-top:none;}
}
.kv-metric-card{
      background:rgba(255,255,255,.06);
      border:1px solid rgba(255,255,255,.15);
      padding:48px 40px;
      position:relative;
    }
.kv-metric-card::before{
      content:'SELF-PROVEN RESULT';
      position:absolute;top:-1px;left:0;right:0;
      font-size:10px;letter-spacing:.2em;font-weight:700;
      color:#28282D;background:#ffffff;
      padding:6px 16px;
      text-align:center;
    }
.kv-metric-label{
      font-size:11px;letter-spacing:.18em;color:rgba(255,255,255,.6);
      font-weight:700;text-transform:uppercase;
      margin-bottom:16px;display:block;
      margin-top:8px;
    }
.kv-metric-num{
      font-size:clamp(64px,8vw,96px);
      font-weight:700;line-height:1;
      letter-spacing:-.04em;color:#ffffff;
      margin-bottom:4px;
    }
.kv-metric-unit{
      font-size:clamp(18px,2vw,24px);
      font-weight:400;color:#ffffff;
      letter-spacing:-.02em;
    }
.kv-metric-desc{
      font-size:13px;color:rgba(255,255,255,.7);
      line-height:1.7;margin-top:16px;
      border-top:1px solid rgba(255,255,255,.12);
      padding-top:16px;
    }
.kv-metric-note{
      font-size:11px;color:rgba(255,255,255,.45);
      margin-top:12px;line-height:1.6;
    }
.stats-sec{
      background:#111113;
      padding:100px 80px;
    }
.stats-inner{max-width:1280px;margin:0 auto;}
.stats-head{
      margin-bottom:64px;
    }
.stats-eyebrow{
      font-size:12px;letter-spacing:.18em;color:#ffffff;
      font-weight:700;text-transform:uppercase;
      margin-bottom:20px;display:flex;align-items:center;gap:16px;
    }
.stats-eyebrow::before{content:'';display:block;width:32px;height:1px;background:rgba(255,255,255,.4);}
.stats-h2{
      font-size:clamp(36px,4.2vw,60px);
      font-weight:700;line-height:1.3;
      letter-spacing:-.03em;color:#ffffff;
    }
.stats-body{
      font-size:16px;line-height:1.85;color:rgba(255,255,255,.85);
      max-width:600px;margin-top:16px;
    }
.result-img-wrap img{
      width:100%;height:100%;object-fit:cover;
      transition:transform .5s ease;
      display:block;
    }
.result-card:hover .result-img-wrap img{
      transform:scale(1.04);
    }
.sc-explain{
      display:flex;align-items:flex-start;gap:14px;
      background:rgba(255,255,255,.06);
      border:1px solid rgba(255,255,255,.15);
      border-radius:8px;
      padding:16px 20px;
      margin-top:24px;
      max-width:680px;
    }
.sc-explain-icon{flex-shrink:0;margin-top:2px;}
.sc-explain-text{
      font-size:16px;line-height:1.8;
      color:rgba(255,255,255,.85);
    }
.sc-explain-text strong{
      display:block;margin-bottom:4px;
      font-size:16px;font-weight:700;
      color:#ffffff;
      letter-spacing:.02em;
    }
.result-note{
      margin-top:32px;
      font-size:16px;color:rgba(255,255,255,.65);
      line-height:1.7;
      text-align:center;
    }
/* ============================================================
   results-gallery-full フルワイドグリッド（voice-grid同構造）
   SEOページの実績グラフカード
============================================================ */
.results-gallery-full{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid rgba(255,255,255,.12);
}
.result-card-full{
  overflow:hidden;
  transition:background .2s;
  display:flex;
  flex-direction:column;
  border-right:1px solid rgba(255,255,255,.12);
}
.result-card-full:last-child{border-right:none;}
.result-card-full:hover{background:rgba(255,255,255,.04);}
.result-img-wrap-full{
  aspect-ratio:4/3;
  overflow:hidden;
  background:rgba(255,255,255,.06);
  position:relative;
}
.result-img-wrap-full .result-placeholder{
  width:100%;height:100%;
  background:linear-gradient(135deg,rgba(255,255,255,.07) 0%,rgba(255,255,255,.03) 100%);
}
.result-img-wrap-full .mock-bar{
  background:linear-gradient(to top,rgba(255,255,255,.25),rgba(255,255,255,.6));
}
.result-img-wrap-full .mock-line{
  background:rgba(255,255,255,.2);
}
.result-img-wrap-full .placeholder-label{
  color:rgba(255,255,255,.5);
}
.result-body-full{
  padding:28px 36px 36px;
  border-top:1px solid rgba(255,255,255,.12);
  display:flex;
  flex-direction:column;
  gap:12px;
}
.result-body-full .result-tag.industry{
  background:rgba(255,255,255,.1);
  color:rgba(255,255,255,.9);
  border:1px solid rgba(255,255,255,.2);
}
.result-body-full .result-tag.period{
  background:rgba(255,255,255,.06);
  color:rgba(255,255,255,.6);
  border:1px solid rgba(255,255,255,.15);
}
.result-comment-full{
  font-size:16px;
  line-height:1.8;
  color:rgba(255,255,255,.85);
  font-weight:400;
}
.plan-card.is-featured{
      background:#ffffff;
    }
.plan-card.is-featured:hover{background:#F8F8F8;}
.plan-card:not(.is-featured):hover{background:#F8F8F8;}
.plan-badge{
      position:absolute;top:0;left:50%;transform:translateX(-50%);
      background:#ffffff;color:#28282D;
      font-size:10px;letter-spacing:.18em;font-weight:700;
      padding:5px 16px;
      white-space:nowrap;
    }
.plan-card.is-featured .plan-badge{
      background:#ffffff;color:#28282D;
    }
.plan-card.is-featured .plan-type{color:#9B9BA0;}
.plan-card.is-featured .plan-name{color:#28282D;}
.plan-card.is-featured .plan-tagline{color:#767680;}
.plan-card.is-featured .plan-price{color:#28282D;}
.plan-card.is-featured .plan-price-note{color:#9B9BA0;}
.plan-card.is-featured .plan-divider{background:#E8E8E8;}
.plan-card.is-featured .plan-feature{color:#3D3D42;}
.plan-card.is-featured .plan-feature::before{
      border-color:#28282D;
      background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='8' viewBox='0 0 10 8'%3E%3Cpath d='M1 4l3 3 5-6' stroke='%2328282D' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/10px no-repeat;
    }
.plan-card.is-featured .btn-plan{
      background:#28282D;color:#ffffff;border-color:#28282D;
    }
.plan-card.is-featured .btn-plan:hover{background:#fff;color:#28282D;border-color:#28282D;}
.case-tags-sec{
      margin-bottom:40px;
    }
.case-tags-label{
      font-size:11px;letter-spacing:.18em;color:#ffffff;
      font-weight:700;text-transform:uppercase;
      margin-bottom:16px;display:block;
    }
.case-tags{
      display:flex;flex-wrap:wrap;gap:12px 16px;
    }
.case-tag{
      display:inline-flex;align-items:center;
      padding:10px 20px;
      border:1px solid rgba(255,255,255,.3);
      font-size:20px;font-weight:700;color:#ffffff;
      letter-spacing:.02em;
      transition:background .2s,border-color .2s,color .2s;
      cursor:default;
    }
.case-tag:hover{background:#28282D;border-color:#28282D;color:#fff;}
.case-tag.lg{font-size:20px;font-weight:700;padding:10px 20px;}
.case-tag.sm{font-size:20px;font-weight:700;padding:10px 20px;}
.case-body{
      font-size:14px;line-height:1.85;
      color:#5A5A60;margin-bottom:32px;
    }
.case-result{
      border-top:1px solid #E8E8E8;
      padding-top:32px;
      margin-top:auto;
    }
.case-result-label{
      font-size:14px;letter-spacing:.22em;
      color:#767680;margin-bottom:8px;
      font-weight:700;
      text-transform:uppercase;
    }
.case-result-num{
      font-size:clamp(72px,9vw,120px);
      font-weight:700;line-height:.9;
      letter-spacing:-.04em;color:#28282D;
      margin-bottom:12px;
      display:block;
    }
.case-result-num sup{font-size:.38em;vertical-align:super;font-weight:700;letter-spacing:-.02em;}
.case-result-desc{font-size:12px;color:#767680;margin-bottom:0;}
.ai-banner{
      background:linear-gradient(135deg,#0f0f1a 0%,#1a1a3e 50%,#0d1b2a 100%);
      padding:44px 80px;
      position:relative;
      overflow:hidden;
    }
.ai-banner::before{
      content:'';
      position:absolute;top:-40px;right:80px;
      width:280px;height:280px;
      background:radial-gradient(circle,rgba(99,102,241,.18) 0%,transparent 70%);
      pointer-events:none;
    }
.ai-banner::after{
      content:'';
      position:absolute;bottom:-60px;left:40%;
      width:200px;height:200px;
      background:radial-gradient(circle,rgba(139,92,246,.12) 0%,transparent 70%);
      pointer-events:none;
    }
.ai-banner-inner{
      max-width:1100px;margin:0 auto;
      display:flex;align-items:center;justify-content:space-between;
      gap:32px;position:relative;z-index:1;
    }
.ai-banner-left{
      display:flex;align-items:center;gap:28px;
    }
.ai-banner-icon{
      width:48px;height:48px;flex-shrink:0;
      border:1px solid rgba(255,255,255,.15);
      border-radius:50%;
      display:flex;align-items:center;justify-content:center;
    }
.ai-banner-icon svg{width:22px;height:22px;}
.ai-banner-label{
      font-size:10px;letter-spacing:.2em;font-weight:700;
      color:rgba(255,255,255,.45);text-transform:uppercase;
      margin-bottom:6px;display:block;
    }
.ai-banner-text{
      font-size:18px;font-weight:700;color:#ffffff;
      letter-spacing:-.02em;line-height:1.4;
    }
.ai-banner-sub{
      font-size:16px;color:#ffffff;
      margin-top:4px;letter-spacing:.01em;
    }
.ai-banner-btn{
      display:inline-flex;align-items:center;gap:10px;
      font-size:16px;font-weight:700;color:#111113;
      background:#ffffff;
      padding:14px 28px;
      white-space:nowrap;
      text-decoration:none;
      transition:opacity .2s;
      flex-shrink:0;
      letter-spacing:.02em;
    }
.ai-banner-btn:hover{opacity:.85;}
.ai-banner-arrow{
      display:inline-block;width:18px;height:1px;
      background:#111113;position:relative;
      vertical-align:middle;
    }
.ai-banner-arrow::after{
      content:'';position:absolute;right:0;top:-3px;
      width:6px;height:6px;
      border-top:1px solid #111113;
      border-right:1px solid #111113;
      transform:rotate(45deg);
    }
.hd-drawer-sns-ig:hover svg rect,.hd-drawer-sns-ig:hover svg circle,.hd-drawer-sns-ig:hover svg path{stroke:#fff}
.hd-drawer-sns-ig:hover svg circle:last-child{fill:#fff;stroke:none}
.hd-drawer-sns-tt:hover svg path{stroke:#fff}
.hd-drawer-sns-x:hover svg path{stroke:#fff}

.kv-h1-l1,.kv-h1-l2{display:inline}
.kv-badge-link{
      transition:border-color .2s,color .2s,background .2s;
      cursor:pointer;
    }
.kv-badge-link:hover{
      border-color:rgba(236,72,153,.8);
      color:#fff;
      background:rgba(236,72,153,.15);
    }
.sns-axis-sec{
      background:#fff;
      border-top:1px solid #E8E8E8;
      padding:80px 80px;
    }
.sns-axis-inner{max-width:1100px;margin:0 auto}
.sns-axis-head{
      text-align:center;
      margin-bottom:64px;
    }
.sns-axis-head .sec-eyebrow{justify-content:center;display:block;text-align:center}
.sns-axis-h2-l1,.sns-axis-h2-l2{display:inline}
.sns-axis-lead{
      font-size:16px;line-height:1.9;color:#5A5A60;
      max-width:640px;margin:0 auto;text-align:center;
    }
.sns-axis-grid{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:0;
      border:1px solid #E0E0E0;
    }
.sns-axis-card{
      padding:48px 40px 56px;
      border-right:1px solid #E0E0E0;
      display:flex;flex-direction:column;
      background:#fff;
      transition:background .2s;
    }
.sns-axis-card:last-child{border-right:none}
.sns-axis-card:hover{background:#F8F8F8}
.sns-axis-icon{
      width:48px;height:48px;
      border:1px solid #E8E8E8;
      display:flex;align-items:center;justify-content:center;
      margin-bottom:24px;
    }
.sns-axis-type{
      font-size:11px;letter-spacing:.22em;color:#9B9BA0;
      margin-bottom:12px;font-weight:700;text-transform:uppercase;
    }
.sns-axis-title{
      font-size:clamp(20px,2.2vw,26px);
      font-weight:700;line-height:1.3;
      letter-spacing:-.03em;color:#28282D;
      margin-bottom:12px;
    }
.sns-axis-desc{
      font-size:16px;line-height:1.8;color:#5A5A60;
      margin-bottom:28px;flex:1;
    }
.sns-axis-anchor{
      display:inline-flex;align-items:center;justify-content:center;gap:8px;
      font-size:14px;font-weight:700;color:#fff;
      letter-spacing:.06em;
      background:#28282D;
      border:1.5px solid #28282D;
      padding:14px 28px;
      margin-top:8px;
      transition:background .2s,color .2s;
    }
.sns-axis-anchor::after{content:'↓';font-size:12px;}
.sns-axis-anchor:hover{background:#fff;color:#28282D;}
.sns-account-sec{
      background:#F7F7F5;
      padding:100px 80px;
      border-top:1px solid #E8E8E8;
    }
.sns-account-inner{max-width:1100px;margin:0 auto}
.sns-account-head{margin-bottom:64px}
.sns-account-tag{
      display:inline-flex;align-items:center;
      height:auto;padding:8px 20px;
      background:#28282D;
      font-size:clamp(36px,4.2vw,60px);letter-spacing:-.04em;color:#fff;
      font-weight:900;text-transform:none;
      margin-bottom:20px;
    }
.sns-platform-row{
      display:flex;flex-wrap:wrap;gap:12px;
      margin-bottom:48px;
    }
.sns-platform-badge{
      display:inline-flex;align-items:center;gap:8px;
      height:36px;padding:0 16px;
      border:1px solid #E0E0E0;
      background:#fff;
      font-size:13px;font-weight:600;color:#28282D;
      letter-spacing:.02em;
    }
.sns-platform-badge svg{flex-shrink:0}
.sns-platform-badge-link{
      transition:border-color .2s,color .2s,background .2s;
      cursor:pointer;
    }
.sns-platform-badge-link:hover{
      border-color:#28282D;
      background:#28282D;
      color:#fff;
    }
.sns-platform-badge-link:hover svg{stroke:#fff;fill:none}
.sns-graph-grid{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:24px;
      margin-bottom:64px;
    }
.sns-graph-card{
      background:#fff;
      border:1px solid #E8E8E8;
      padding:32px 32px 24px;
    }
.sns-graph-label{
      font-size:11px;letter-spacing:.18em;color:#9B9BA0;
      font-weight:700;text-transform:uppercase;margin-bottom:8px;
    }
.sns-graph-title{
      font-size:clamp(20px,2.2vw,26px);
      font-weight:900;color:#28282D;margin-bottom:4px;
    }
.sns-graph-sub{
      font-size:12px;color:#9B9BA0;margin-bottom:20px;
    }
.sns-graph-canvas{height:200px;position:relative}
.sns-work-grid{
      display:grid;
      grid-template-columns:repeat(3,1fr);
      gap:0;
      border:1px solid #E0E0E0;
    }
.sns-work-card{
      padding:32px 28px 36px;
      border-right:1px solid #E0E0E0;
      background:#fff;
    }
.sns-work-card:last-child{border-right:none}
.sns-work-num{
      font-size:11px;letter-spacing:.18em;color:#9B9BA0;
      font-weight:700;margin-bottom:16px;
    }
.sns-work-title{
      font-size:clamp(20px,2.2vw,26px);
      font-weight:900;color:#28282D;
      margin-bottom:10px;line-height:1.4;
    }
.sns-work-desc{
      font-size:15px;line-height:1.8;color:#5A5A60;
    }
.sns-ads-sec{
      background:#ffffff;
      padding:100px 80px;
      border-top:1px solid rgba(0,0,0,.08);
    }
.sns-ads-inner{max-width:1100px;margin:0 auto}
.sns-ads-head{margin-bottom:64px}
.sns-ads-tag{
      display:inline-flex;align-items:center;
      height:auto;padding:8px 20px;
      background:#28282D;
      font-size:clamp(36px,4.2vw,60px);letter-spacing:-.04em;color:#fff;
      font-weight:900;text-transform:none;
      margin-bottom:20px;
    }
.sns-ads-eyebrow{
      display:block;font-size:11px;letter-spacing:.22em;
      color:#28282D;font-weight:700;text-transform:uppercase;
      margin-bottom:16px;
    }
.sns-ads-h2{
      font-size:clamp(36px,4.2vw,60px);
      font-weight:900;line-height:1.2;
      letter-spacing:-.04em;color:#28282D;
      margin-bottom:20px;
    }
.sns-ads-body{
      font-size:16px;line-height:1.9;
      color:rgba(40,40,45,.7);max-width:600px;
    }
.sns-ads-graph-grid{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:24px;
      margin-bottom:64px;
    }
.sns-ads-graph-card{
      background:#f5f5f7;
      border:1px solid rgba(0,0,0,.08);
      padding:32px 32px 24px;
    }
.sns-ads-graph-label{
      font-size:11px;letter-spacing:.18em;color:rgba(40,40,45,.4);
      font-weight:700;text-transform:uppercase;margin-bottom:8px;
    }
.sns-ads-graph-title{
      font-size:clamp(20px,2.2vw,26px);
      font-weight:900;color:#28282D;margin-bottom:4px;
    }
.sns-ads-graph-sub{
      font-size:12px;color:rgba(40,40,45,.4);margin-bottom:20px;
    }
.sns-ads-graph-canvas{height:200px;position:relative}
.sns-ads-work-grid{
      display:grid;
      grid-template-columns:repeat(3,1fr);
      gap:0;
      border:1px solid rgba(0,0,0,.1);
    }
.sns-ads-work-card{
      padding:28px 24px 32px;
      border-right:1px solid rgba(0,0,0,.1);
      background:#f5f5f7;
    }
.sns-ads-work-card:last-child{border-right:none}
.sns-ads-work-num{
      font-size:11px;letter-spacing:.18em;color:rgba(40,40,45,.3);
      font-weight:700;margin-bottom:12px;
    }
.sns-ads-work-title{
      font-size:clamp(20px,2.2vw,26px);
      font-weight:900;color:#28282D;
      margin-bottom:8px;line-height:1.4;
    }
.sns-ads-work-desc{
      font-size:15px;line-height:1.8;color:rgba(40,40,45,.6);
    }
.plan-redirect-box{
      border:1px solid #E0E0E0;
      background:#fff;
      padding:48px 40px;
      display:flex;flex-direction:column;
      align-items:center;gap:24px;
      text-align:center;
    }
.plan-redirect-icon{
      width:40px;height:40px;color:#9B9BA0;
    }
.plan-redirect-icon svg{width:100%;height:100%;}
.plan-redirect-text{
      font-size:clamp(20px,2.2vw,26px);line-height:1.9;color:#3A3A40;
      font-weight:500;
    }
.plan-redirect-links{
      display:flex;flex-wrap:wrap;
      gap:12px;justify-content:center;
    }
.plan-redirect-link{
      display:inline-flex;align-items:center;
      height:36px;padding:0 20px;
      border:1px solid #D0D0D8;
      font-size:13px;font-weight:600;
      color:#28282D;letter-spacing:.04em;
      transition:border-color .2s,background .2s,color .2s;
    }
.plan-redirect-link:hover{
      border-color:#010101;
      background:rgba(0,0,0,.06);
      color:#010101;
    }
.plan-fee-row:last-child{border-bottom:none}
.plan-fee-row span{
      padding:12px 16px;
      color:#28282D;
    }
.plan-fee-row span:first-child{border-right:1px solid #E8E8E8;color:#5A5A60}
.plan-fee-header span{font-size:11px;letter-spacing:.08em;color:#9B9BA0;font-weight:700}
.faq-item:first-child{border-top:1px solid #E8E8E8}
.faq-item.open .faq-a-inner{padding-bottom:24px}
.challenge-card:hover .challenge-card-title::after{width:100%}
.challenge-tag:hover{background:#28282D;color:#fff}
.platform-sec{
      background:#F7F7F5;
      padding:100px 80px;
      border-top:1px solid #E8E8E8;
    }
.platform-inner{max-width:1200px;margin:0 auto}
.platform-head{
      text-align:center;
      margin-bottom:64px;
    }
.platform-head .sec-eyebrow{justify-content:center;display:block;text-align:center}
.platform-head .sec-h2{text-align:center}
.platform-head .sec-body{text-align:center;max-width:600px;margin:0 auto}
.platform-grid{
      display:grid;
      grid-template-columns:repeat(3,1fr);
      gap:1px;
      background:#E0E0E0;
      border:1px solid #E0E0E0;
    }
.platform-card{
      display:flex;
      flex-direction:column;
      padding:40px 32px;
      background:#fff;
      position:relative;
      overflow:hidden;
      transition:background .25s;
      text-decoration:none;
      color:#28282D;
    }
.platform-card::before{
      content:'';
      position:absolute;
      top:0;left:0;
      width:4px;height:100%;
      background:var(--platform-color,#28282D);
      transform:scaleY(0);
      transform-origin:top;
      transition:transform .3s cubic-bezier(.16,1,.3,1);
    }
.platform-card:hover::before{transform:scaleY(1)}
.platform-card:hover{background:#FAFAFA}
.platform-card-icon{
      width:52px;height:52px;
      display:flex;align-items:center;justify-content:center;
      background:#F3F4F6;
      margin-bottom:20px;
      color:#28282D;
      transition:background .25s,color .25s;
    }
.platform-card:hover .platform-card-icon{
      background:var(--platform-color,#28282D);
      color:#fff;
    }
.platform-card-body{flex:1}
.platform-card-name{
      font-size:clamp(20px,2.2vw,26px);font-weight:700;
      letter-spacing:-.02em;color:#28282D;
      margin-bottom:10px;
    }
.platform-card-desc{
      font-size:13px;line-height:1.8;color:#5A5A60;
      margin-bottom:16px;
    }
.platform-card-tags{
      display:flex;flex-wrap:wrap;gap:6px;
    }
.platform-tag{
      display:inline-flex;align-items:center;
      height:24px;padding:0 10px;
      background:#F3F4F6;
      font-size:11px;color:#767680;
      letter-spacing:.02em;
    }
.platform-card-arrow{
      display:block;
      font-size:16px;color:#9B9BA0;
      margin-top:20px;
      transition:color .2s,transform .2s;
    }
.platform-card:hover .platform-card-arrow{
      color:var(--platform-color,#28282D);
      transform:translateX(4px);
    }
.cta-sec .btn-cta{
      background:#28282D;color:#fff;
      border-color:#28282D;
    }
.cta-sec .btn-cta:hover{background:transparent;color:#28282D}
.area-group:last-of-type{margin-bottom:0}
.area-group-label.easy{color:#28282D}
.area-group-label.adjust{color:#28282D}
.area-group-label.online{color:#28282D}
.hd-btn-saicatsu:hover svg path{stroke:#fff}

.kv-eyebrow svg{flex-shrink:0;}
.kv-service-label{
      display:block;
      font-size:clamp(17px,1.8vw,20px);
      font-weight:600;
      color:#EC4899;
      letter-spacing:.04em;
      margin-bottom:28px;
    }
.kv-right.fu.on{transform:translateY(-50%)}
.case-note{
      display:inline-flex;align-items:flex-start;gap:10px;
      background:#F5F5F3;
      border-left:3px solid #EC4899;
      padding:12px 16px;
      font-size:13px;color:#4A4A50;line-height:1.7;
      margin-top:20px;
    }
.case-note::before{content:"\26A0";color:#EC4899;font-size:14px;flex-shrink:0;margin-top:1px}
.case-swiper-wrap{
      position:relative;
      padding:0 40px;
    }
.case-swiper{
      overflow:visible;
    }
.case-swiper .swiper-wrapper{
      align-items:stretch;
    }
.case-swiper .swiper-slide{
      height:auto;
      width:380px;
    }
.case-screenshot{
      width:100%;
      aspect-ratio:9/6.5;
      overflow:hidden;
      background:#F0F0F0;
      margin-bottom:0;
      position:relative;
      flex-shrink:0;
    }
.case-screenshot img{
      width:100%;height:100%;object-fit:cover;display:block;
    }
.case-screenshot-placeholder{
      width:100%;height:100%;
      display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
      color:#ABABAB;
    }
.case-screenshot-placeholder svg{opacity:.4}
.case-screenshot-placeholder span{font-size:11px;letter-spacing:.06em;color:#ABABAB}
.case-card-body{
      padding:48px;
      display:flex;flex-direction:column;flex:1;
    }
.case-card:hover .case-card-body{background:#F7F7F5}
.case-overview{font-size:16px;line-height:1.8;color:#4A4A50;margin-bottom:32px;flex:1}
.case-results{display:flex;flex-direction:column;gap:16px;margin-top:auto}
.case-result-item{border-top:1px solid #E8E8E8;padding-top:16px}
.case-result-num span{font-size:.45em;font-weight:700;vertical-align:super}
.case-swiper-nav{
      display:flex;align-items:center;justify-content:center;gap:16px;
      margin-top:48px;
    }
.case-swiper-btn{
      width:48px;height:48px;
      border:1.5px solid #28282D;
      background:#fff;
      display:flex;align-items:center;justify-content:center;
      cursor:pointer;
      transition:background .2s,color .2s;
      flex-shrink:0;
    }
.case-swiper-btn:hover{background:#28282D;color:#fff}
.case-swiper-btn:hover svg path{stroke:#fff}
.case-swiper-btn svg path{stroke:#28282D;transition:stroke .2s}
.case-swiper-pagination{
      display:flex;align-items:center;gap:8px;
    }
.case-swiper-pagination .swiper-pagination-bullet{
      width:6px;height:6px;background:#C8C8D0;border-radius:50%;opacity:1;
      transition:background .2s,width .2s;
    }
.case-swiper-pagination .swiper-pagination-bullet-active{
      background:#EC4899;width:20px;border-radius:3px;
    }
.what-head{text-align:center;margin-bottom:72px}
.what-card{
      background:#fff;
      padding:48px 40px;
    }
.what-card-tag{
      display:inline-flex;align-items:center;gap:8px;
      padding:6px 16px;
      background:#28282D;color:#fff;
      font-size:11px;letter-spacing:.12em;font-weight:700;
      margin-bottom:28px;
    }
.what-card-tag.ads{background:#EC4899}
.what-card-h3{font-size:clamp(20px,2.5vw,28px);font-weight:700;line-height:1.3;margin-bottom:16px}
.what-card-desc{font-size:16px;line-height:1.9;color:#4A4A50;margin-bottom:32px}
.what-card-desc-lead{
      display:block;
      font-size:clamp(14px,1.2vw,15px);
      font-weight:700;
      color:#28282D;
      line-height:1.7;
      margin-bottom:12px;
      padding:14px 18px;
      background:#F7F7F5;
      border-left:3px solid #EC4899;
    }
.case-result-banner{
      background:#FAFAFA;
      padding:80px 0;
      overflow:hidden;
      position:relative;
      border-bottom:1px solid #D8D8D8;
    }
.case-result-banner::before{
      content:'';
      position:absolute;left:0;top:0;bottom:0;width:4px;
      background:linear-gradient(180deg,#EC4899,#8B5CF6);
    }
.case-result-banner-inner{
      max-width:1200px;margin:0 auto;padding:0 48px;
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:64px;
      align-items:center;
    }
.crb-industries{
      opacity:0;transform:translateX(30px);
      transition:opacity .8s ease .5s, transform .8s ease .5s;
    }
.crb-industries.visible{opacity:1;transform:translateX(0)}
.crb-industries-label{
      font-size:11px;font-weight:700;letter-spacing:.18em;
      color:#888;margin-bottom:16px;
      display:flex;align-items:center;gap:8px;
    }
.crb-industries-label::before{content:'';width:20px;height:1px;background:#ccc;}
.crb-tag-list{
      display:flex;flex-wrap:wrap;gap:8px;
    }
.crb-tag{
      display:inline-block;
      padding:7px 14px;
      border:1px solid #D8D8D8;
      border-radius:2px;
      font-size:13px;font-weight:500;
      color:#444;
      background:#fff;
      line-height:1.4;
      transition:border-color .2s, color .2s, background .2s;
    }
.crb-tag:hover{
      border-color:#EC4899;
      color:#EC4899;
      background:#FFF0F6;
    }
.crb-tag.crb-tag-more{
      border-style:dashed;
      color:#888;
      background:transparent;
    }
.crb-metrics{display:flex;flex-direction:column;gap:32px}
.crb-metric-item{
      display:flex;align-items:baseline;gap:16px;
      opacity:0;transform:translateX(-40px);
      transition:opacity .7s ease, transform .7s ease;
    }
.crb-metric-item.visible{opacity:1;transform:translateX(0)}
.crb-metric-item:nth-child(2){transition-delay:.15s}
.crb-metric-item:nth-child(3){transition-delay:.3s}
.crb-metric-wrap{}
.crb-metric-numrow{display:flex;align-items:baseline;gap:4px}
.crb-metric-num{
      font-family:'Montserrat',sans-serif;
      font-size:clamp(48px,6vw,80px);font-weight:900;
      color:#28282D;line-height:1;
      position:relative;
    }
.crb-metric-num::after{
      content:'';
      position:absolute;bottom:-4px;left:0;right:0;height:3px;
      background:linear-gradient(90deg,#EC4899,#8B5CF6);
      transform:scaleX(0);transform-origin:left;
      transition:transform .5s ease .4s;
    }
.crb-metric-item.visible .crb-metric-num::after{transform:scaleX(1)}
.crb-metric-unit{
      font-family:'Montserrat',sans-serif;
      font-size:clamp(20px,2.5vw,32px);font-weight:700;color:#28282D;
    }
.crb-metric-label{
      font-size:14px;color:#28282D;font-weight:600;letter-spacing:.03em;margin-top:8px;
    }
.crb-metric-note{
      font-size:13px;color:#666;margin-top:3px;
    }
.crb-copy{
      opacity:0;transform:translateX(30px);
      transition:opacity .8s ease .3s, transform .8s ease .3s;
    }
.crb-copy.visible{opacity:1;transform:translateX(0)}
.crb-eyebrow{
      font-family:'Montserrat',sans-serif;
      font-size:10px;font-weight:700;letter-spacing:.2em;
      color:#EC4899;margin-bottom:20px;
      display:flex;align-items:center;gap:8px;
    }
.crb-eyebrow::before{content:'';width:24px;height:1px;background:#EC4899}
.crb-headline{
      font-size:clamp(28px,3.5vw,48px);font-weight:900;line-height:1.25;
      margin-bottom:24px;color:#28282D;
    }
.crb-headline em{
      font-style:normal;
      background:linear-gradient(135deg,#EC4899,#8B5CF6);
      -webkit-background-clip:text;-webkit-text-fill-color:transparent;
      background-clip:text;
    }
.crb-body{
      font-size:16px;color:#555;line-height:1.8;margin-bottom:32px;
      white-space:nowrap;
    }
.crb-cta{
      display:inline-flex;align-items:center;gap:10px;
      background:linear-gradient(135deg,#EC4899,#8B5CF6);
      color:#fff;font-size:16px;font-weight:700;
      padding:16px 32px;border-radius:2px;
      text-decoration:none;
      transition:opacity .2s,transform .2s;
    }
.crb-cta:hover{opacity:.85;transform:translateY(-1px)}
.what-card-features{display:flex;flex-direction:column;gap:10px}
.what-card-feature{
      display:flex;align-items:flex-start;gap:10px;
      font-size:13px;color:#28282D;line-height:1.6;
    }
.what-card-feature::before{
      content:'';display:block;flex-shrink:0;
      width:6px;height:6px;border-radius:50%;
      background:#EC4899;margin-top:6px;
    }
.cta-mid-sec{
      padding:80px 40px;
      background:#28282D;
    }
.cta-mid-inner{
      max-width:800px;margin:0 auto;
      text-align:center;
    }
.cta-mid-eyebrow{display:block;font-size:11px;letter-spacing:.16em;color:#EC4899;font-weight:700;text-transform:uppercase;margin-bottom:20px}
.cta-mid-h2{font-size:clamp(24px,3vw,36px);font-weight:700;color:#fff;line-height:1.3;margin-bottom:16px}
.cta-mid-body{font-size:16px;color:rgba(255,255,255,.65);line-height:1.8;margin-bottom:36px;text-align:center}
.cta-mid-actions{display:flex;align-items:center;justify-content:center;gap:24px;flex-wrap:wrap}
.cta-mid-tel-wrap{display:flex;flex-direction:column;gap:4px;align-items:center}
.cta-mid-tel-label{font-size:11px;letter-spacing:.08em;color:rgba(255,255,255,.5)}
.cta-mid-tel{font-size:22px;font-weight:700;color:#fff;letter-spacing:.04em}
.plan-ad-fee-table{
      width:100%;border:1px solid #E8E8E8;
      margin-bottom:8px;
    }
.plan-ad-fee-row{
      display:flex;align-items:center;
      border-bottom:1px solid #E8E8E8;
    }
.plan-ad-fee-row:last-child{border-bottom:none}
.plan-ad-fee-range{
      flex:0 0 45%;padding:12px 16px;
      border-right:1px solid #E8E8E8;
      font-size:16px;color:#4A4A50;line-height:1.4;
    }
.plan-ad-fee-price{
      flex:1;padding:12px 16px;
      font-size:clamp(18px,2vw,24px);font-weight:700;
      color:#28282D;letter-spacing:-.01em;
    }
.plan-ad-fee-price span{font-size:.55em;font-weight:400;color:#9B9BA0;vertical-align:middle}
.plan-ad-fee-percent{
      color:#000000;
      font-size:clamp(16px,1.8vw,22px);
    }
.plan-tabs{
      display:flex;gap:0;
      margin-bottom:48px;
      border-bottom:2px solid #E8E8E8;
    }
.plan-tab-btn{
      flex:1;
      padding:18px 24px;
      font-size:15px;font-weight:700;letter-spacing:.02em;
      color:#9B9BA0;
      background:transparent;
      border:none;cursor:pointer;
      position:relative;
      transition:color .2s;
      text-align:center;
    }
.plan-tab-btn::after{
      content:'';
      position:absolute;bottom:-2px;left:0;right:0;
      height:2px;
      background:#EC4899;
      transform:scaleX(0);
      transition:transform .25s;
    }
.plan-tab-btn.is-active{color:#28282D}
.plan-tab-btn.is-active::after{transform:scaleX(1)}
.plan-tab-panel{display:none}
.plan-tab-panel.is-active{display:block}
.plan-card-recommended{
      position:absolute;top:0;right:0;
      background:#EC4899;color:#fff;
      font-size:10px;letter-spacing:.12em;font-weight:700;
      padding:6px 16px;
    }
.plan-price-block{margin-bottom:32px;padding-bottom:32px;border-bottom:1px solid #E8E8E8}
.plan-price-label{font-size:11px;letter-spacing:.1em;color:#9B9BA0;font-weight:700;margin-bottom:8px}
.plan-price span{font-size:.38em;font-weight:400;color:#9B9BA0;vertical-align:middle;letter-spacing:0}
.plan-init-card{
      background:#F7F7F5;
      border:1px solid #E8E8E8;
      padding:36px 40px;
      margin-bottom:2px;
    }
.plan-init-title{font-size:14px;font-weight:700;letter-spacing:.04em;margin-bottom:16px;color:#28282D}
.plan-init-row{
      display:flex;align-items:center;gap:24px;
      flex-wrap:wrap;
    }
.plan-init-item{display:flex;flex-direction:column;gap:4px}
.plan-init-label{font-size:11px;letter-spacing:.08em;color:#9B9BA0;font-weight:700}
.plan-init-price{font-size:clamp(20px,2.5vw,28px);font-weight:700;color:#28282D;letter-spacing:-.01em}
.plan-init-price span{font-size:.5em;font-weight:400;color:#9B9BA0;vertical-align:middle}
.plan-init-sep{width:1px;height:40px;background:#E8E8E8;flex-shrink:0}
.plan-option-card{
      background:#fff;
      border:1px solid #E8E8E8;
      padding:36px 40px;
      margin-bottom:40px;
    }
.plan-option-title{font-size:14px;font-weight:700;letter-spacing:.04em;margin-bottom:20px;color:#28282D}
.plan-option-table{width:100%;border-collapse:collapse;font-size:13px}
.plan-option-table th,.plan-option-table td{
      padding:12px 16px;
      border:1px solid #E8E8E8;
      text-align:left;
      line-height:1.5;
    }
.plan-option-table th{background:#F7F7F5;font-size:11px;letter-spacing:.08em;color:#9B9BA0;font-weight:700}
.plan-option-table td:last-child{font-weight:700;color:#28282D}
.plan-category-label{
      display:flex;align-items:baseline;gap:20px;
      padding:40px 0 28px;
      border-top:2px solid #28282D;
      margin-bottom:24px;
    }
.plan-category-eyebrow{
      font-size:clamp(40px,5vw,64px);
      font-weight:700;letter-spacing:-.04em;
      color:#E8E8E8;
      line-height:1;flex-shrink:0;
    }
.plan-category-h3{
      font-size:clamp(20px,2.5vw,28px);
      font-weight:700;letter-spacing:-.02em;
      color:#28282D;line-height:1.2;
      flex-shrink:0;
    }
.plan-category-desc{
      font-size:16px;color:#4A4A50;line-height:1.7;
      flex:1;
    }
.official-account-sec{
      padding:80px 0;
      background:#fff;
      border-top:1px solid #E8E8E8;
    }
.official-account-inner{
      max-width:1200px;margin:0 auto;padding:0 48px;
      display:grid;grid-template-columns:3fr 2fr;gap:64px;align-items:center;
    }
.official-account-head .sec-eyebrow{margin-bottom:16px}
.official-account-h2{
      font-size:clamp(22px,2.5vw,32px);
      font-weight:700;letter-spacing:-.01em;
      color:#1A1A1E;line-height:1.3;
      margin-bottom:20px;
    }
.official-account-body{
      font-size:16px;line-height:1.8;color:#3D3D42;
    }
.official-account-card{
      display:flex;flex-direction:column;gap:20px;
      padding:36px;
      background:#F8F8F7;
      border:1px solid #E8E8E8;
      text-decoration:none;
      transition:box-shadow .2s,transform .2s;
    }
.official-account-card:hover{
      box-shadow:0 8px 32px rgba(0,0,0,.08);
      transform:translateY(-2px);
    }
.official-account-icon--ig{
      width:56px;height:56px;
      background:linear-gradient(135deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888);
      display:flex;align-items:center;justify-content:center;
      flex-shrink:0;
    }
.official-account-name{
      font-size:20px;font-weight:700;color:#1A1A1E;letter-spacing:.02em;
    }
.official-account-desc{
      font-size:13px;color:#767680;letter-spacing:.06em;font-weight:600;
      text-transform:uppercase;margin-top:4px;
    }
.official-account-note{
      font-size:16px;line-height:1.8;color:#3D3D42;margin-top:8px;
    }
.official-account-arrow{
      font-size:13px;font-weight:700;color:#EC4899;letter-spacing:.06em;
    }
.challenge-head .sec-eyebrow{color:#767680}
.challenge-head .sec-h2{color:#28282D}
.challenge-head .sec-body{color:#4A4A50}
.footer-sns-link:hover svg rect,.footer-sns-link:hover svg circle,.footer-sns-link:hover svg path{stroke:#fff}
.footer-nav a{font-size:13px;color:#4A4A50;transition:color .2s}
.footer-nav a:hover{color:#28282D}
.ig-kv-h1-l1,.ig-kv-h1-l2{display:inline}
.ig-kv-h1-br-pc{display:block}
@media(max-width:640px){
      
      .case-result-banner{padding:48px 0}
      .case-result-banner-inner{
        grid-template-columns:1fr;
        gap:32px;
        padding:0 20px;
      }
      .crb-metrics{
        display:grid;
        grid-template-columns:repeat(3,1fr);
        gap:0;
        border-top:1px solid #E8E8E5;
        border-bottom:1px solid #E8E8E5;
        padding:20px 0;
      }
      .crb-metric-item{
        padding:0 12px;
        border-right:1px solid #E8E8E5;
        transform:none;
        opacity:1;
      }
      .crb-metric-item:first-child{padding-left:0}
      .crb-metric-item:last-child{border-right:none;padding-right:0}
      .crb-metric-num{font-size:clamp(28px,7vw,36px)}
      .crb-metric-unit{font-size:clamp(14px,3.5vw,18px)}
      .crb-metric-label{font-size:13px;font-weight:600;color:#28282D;margin-top:6px}
      .crb-metric-note{font-size:12px;color:#666;display:block}
      .crb-copy{transform:none;opacity:1}
      .crb-industries{transform:none;opacity:1}
      .crb-tag{font-size:16px;padding:8px 14px;}
      .crb-headline{font-size:clamp(24px,6vw,32px)}
      .crb-body{font-size:16px;margin-bottom:24px;white-space:normal;}
      .crb-cta{width:100%;justify-content:center;padding:16px 24px;display:flex}
      .kv-h1{font-size:clamp(32px,9vw,52px);white-space:normal;}
      .kv-actions{flex-direction:column;align-items:flex-start;gap:16px}
      .case-swiper .swiper-slide{width:280px}
      .challenge-grid{grid-template-columns:1fr}
      .cta-actions{flex-direction:column;align-items:center}
      .cta-mid-actions{flex-direction:column;align-items:center}
      .plan-init-row{flex-direction:column;gap:16px}
      .plan-init-sep{display:none}
      .faq-q{padding:20px 16px}
      .faq-a-inner{padding:0 16px 20px}
    }
.plan-grid.plan-grid-3{grid-template-columns:repeat(3,1fr)}
@media(max-width:360px){
      .kv-inner{padding:60px 16px 60px}
      .kv-h1{font-size:clamp(24px,6.5vw,36px)}
    }
button{cursor:pointer;font-family:inherit;background:none;border:none}
.sp-fixed-cta-btn{flex:1;display:flex;align-items:center;justify-content:center;height:48px;background:#41C9B4;color:#fff;font-size:13px;font-weight:700;letter-spacing:.04em}
.breadcrumb-sp a:hover{color:#28282D}
.our-note-sec{background:#F7F7F5;padding:120px 40px;border-top:1px solid #E8E8E8}
.our-note-inner{max-width:1100px;margin:0 auto}
.our-note-head{text-align:center;margin-bottom:64px}
.our-note-head-sub{font-size:16px;color:#4A4A50;line-height:1.8;margin-top:16px}
.our-note-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:#E8E8E8;margin-bottom:48px}
.our-note-stat{background:#fff;padding:40px 32px;text-align:center}
.our-note-stat-num{font-family:'Montserrat',sans-serif;font-size:clamp(36px,4vw,56px);font-weight:900;color:#41C9B4;line-height:1;margin-bottom:8px}
.our-note-stat-label{font-size:13px;color:#4A4A50;line-height:1.6}
.our-note-articles{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:#E8E8E8;margin-bottom:40px}
.our-note-article{background:#fff;padding:28px 24px;transition:background .2s}
.our-note-article:hover{background:#F0FBF9}
.our-note-article-link{display:block;color:inherit}
.our-note-article-tag{font-size:10px;letter-spacing:.14em;color:#41C9B4;font-weight:700;margin-bottom:10px;text-transform:uppercase}
.our-note-article-title{font-size:16px;font-weight:600;line-height:1.6;color:#28282D;margin-bottom:12px}
.our-note-article-likes{display:flex;align-items:center;gap:6px;font-size:13px;color:#9B9BA0}
.our-note-article-likes-icon{color:#E74C3C}
.our-note-account-info{display:flex;align-items:center;justify-content:space-between;gap:32px;background:#F7F7F7;border:1px solid #E8E8E8;padding:28px 32px;margin-top:32px}
.our-note-account-desc{flex:1;min-width:0}
.our-note-account-desc-title{font-size:12px;font-weight:700;letter-spacing:.12em;color:#9B9BA0;margin-bottom:8px;font-family:'Montserrat',sans-serif}
.our-note-account-desc-text{font-size:16px;line-height:1.8;color:#4A4A50}
.our-note-account-link{display:inline-flex;align-items:center;gap:10px;padding:16px 28px;background:#28282D;color:#fff;font-size:14px;font-weight:600;letter-spacing:.04em;transition:background .2s;white-space:nowrap;flex-shrink:0}
.our-note-account-link:hover{background:#000}
.what-card-tag.green{background:#41C9B4}
.official-account-icon--tt{
      width:56px;height:56px;
      background:#010101;
      display:flex;align-items:center;justify-content:center;
      flex-shrink:0;
    }
.myth-sec{background:#0D0D0D;padding:120px 40px}
.myth-inner{max-width:1100px;margin:0 auto}
.myth-head{text-align:center;margin-bottom:72px}
.myth-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:#333}
.myth-card{background:#1A1A1A;padding:40px 32px}
.myth-card-num{font-family:'Montserrat',sans-serif;font-size:48px;font-weight:900;color:#b30000;line-height:1;margin-bottom:20px}
.myth-card-title{font-size:18px;font-weight:700;color:#fff;line-height:1.4;margin-bottom:16px}
.myth-card-title em{font-style:normal;color:#1D9BF0}
.myth-card-desc{font-size:16px;line-height:1.85;color:#fff}
.plan-grid-3{grid-template-columns:repeat(3,1fr)}
.hd-drawer-link[data-drawer-toggle]::after{
      content:'';
      width:8px;height:8px;
      border-right:1.5px solid #28282D;
      border-bottom:1.5px solid #28282D;
      transform:rotate(45deg);
      transition:transform .2s;
    }
.hd-drawer-link[data-drawer-toggle].open::after{transform:rotate(-135deg)}
.why-sec{
      background:#0D0D0D;
      padding:120px 40px;
    }
.why-inner{max-width:1100px;margin:0 auto}
.why-head{text-align:center;margin-bottom:72px}
.why-head .sec-eyebrow{color:#FF0000}
.why-head .sec-h2{color:#fff}
.why-head .sec-body{color:rgba(255,255,255,.6)}
.why-grid{
      display:grid;
      grid-template-columns:repeat(3,1fr);
      gap:2px;
      background:#333;
    }
.why-card{
      background:#1A1A1A;
      padding:40px 32px;
    }
.why-card-num{
      font-family:'Montserrat',sans-serif;
      font-size:48px;font-weight:900;
      color:rgba(255,0,0,.15);
      line-height:1;
      margin-bottom:20px;
    }
.why-card-title{
      font-size:18px;font-weight:700;
      color:#fff;
      line-height:1.4;
      margin-bottom:16px;
    }
.why-card-title em{
      font-style:normal;
      color:#FF0000;
    }
.why-card-desc{
      font-size:16px;line-height:1.85;
      color:rgba(255,255,255,.6);
    }
.kv-question{
      font-size:clamp(13px,1.4vw,16px);
      letter-spacing:.12em;
      color:#ffffff;
      margin-bottom:20px;
      font-weight:400;
    }
.problem-resolve{
      margin-top:0;
      padding:64px 80px;
      background:#28282D;
      text-align:center;
    }
.problem-resolve-main{
      font-size:clamp(22px,3vw,34px);
      font-weight:800;
      letter-spacing:-.02em;
      line-height:1.4;
      color:#fff;
      margin-bottom:16px;
    }
.problem-resolve-sub{
      font-size:16px;
      color:#ffffff;
      letter-spacing:.04em;
      line-height:1.7;
    }
.funnel-sec{
      background:#F7F7F4;
      padding:120px 80px;
      border-top:1px solid #E8E8E8;
    }
.funnel-inner{max-width:1200px;margin:0 auto;}
.funnel-head{margin-bottom:0;text-align:left;}
.funnel-head .sec-eyebrow{color:#28282D;border-left-color:#28282D;}
.funnel-head .sec-h2{
      color:#28282D;
      font-size:clamp(40px,6vw,80px);
      letter-spacing:-.04em;
      line-height:1.1;
      margin-top:16px;
    }
.funnel-head .sec-body{color:#6B6B70;max-width:600px;margin:24px 0 0;font-size:16px;}
.funnel-head-note{
      font-size:clamp(14px,1.6vw,18px);color:#28282D;
      margin-top:32px;letter-spacing:-.02em;
      font-weight:700;
      display:block;
      line-height:1.4;
    }
.funnel-layout{
      display:grid;
      grid-template-columns:320px 1fr;
      gap:0 64px;
      align-items:start;
      margin-top:80px;
    }
.funnel-visual{
      position:sticky;
      top:120px;
      padding-right:0;
    }
.funnel-visual-title{
      font-size:10px;letter-spacing:.18em;
      color:#9B9BA0;font-weight:700;
      text-transform:uppercase;
      margin-bottom:20px;
      display:block;
    }
.funnel-legend{display:none;}
.funnel-shape{
      display:flex;
      flex-direction:column;
      gap:4px;
      overflow:hidden;
    }
.funnel-bar{
      height:88px;
      display:flex;
      align-items:center;
      justify-content:center;
      padding:0;
      font-size:13px;
      font-weight:700;
      letter-spacing:.08em;
      color:#ffffff;
      background:#28282D;
      cursor:pointer;
      transition:background .25s ease, box-shadow .2s ease;
      position:relative;
    }
.funnel-bar:nth-child(1){clip-path:polygon(0 0,100% 0,94% 100%,6% 100%);}
.funnel-bar:nth-child(2){clip-path:polygon(6% 0,94% 0,88% 100%,12% 100%);}
.funnel-bar:nth-child(3){clip-path:polygon(12% 0,88% 0,82% 100%,18% 100%);}
.funnel-bar:nth-child(4){clip-path:polygon(18% 0,82% 0,76% 100%,24% 100%);}
.funnel-bar:nth-child(5){clip-path:polygon(24% 0,76% 0,50% 100%,50% 100%);}
.funnel-bar.is-problem{background:#28282D;}
.funnel-bar.is-success{background:#28282D;color:#ffffff;}
.funnel-bar.is-active{
      background:#ffffff !important;
      color:#28282D !important;
      box-shadow:0 0 0 2px #28282D inset;
      z-index:1;
    }
.funnel-bar.is-active .funnel-bar-label{
      color:#28282D;
    }
.funnel-bar-label{
      font-size:clamp(18px,2vw,26px);letter-spacing:.06em;
      white-space:nowrap;
      text-align:center;
      font-weight:700;
      transition:color .2s;
    }
.funnel-click-hint{
      margin-top:16px;
      font-size:11px;letter-spacing:.08em;
      color:#9B9BA0;font-weight:700;
      text-transform:uppercase;
      display:flex;align-items:center;gap:6px;
    }
.funnel-click-hint::before{
      content:'';
      display:inline-block;
      width:16px;height:1px;
      background:#9B9BA0;
    }
.funnel-cards-wrap{
      position:relative;
    }
.funnel-scroll-hint{display:none;}
.funnel-nav{display:none;}
.funnel-dots{display:none;}
.funnel-diagram{
      display:flex;
      flex-direction:column;
      gap:0;
      overflow:visible;
    }
.funnel-stage{
      position:relative;
      display:block;
      padding:44px 48px;
      border-bottom:1px solid rgba(40,40,45,.12);
      background:transparent;
      cursor:default;
      opacity:0;transform:translateY(16px);
      transition:opacity .5s ease,transform .5s ease,background .3s ease,padding .3s ease;
      overflow:hidden;
    }
.funnel-stage:first-child{
      border-top:1px solid rgba(40,40,45,.12);
    }
.funnel-stage.stage-visible{opacity:1;transform:translateY(0);}
.funnel-stage.is-active-card{
      background:#28282D;
      border-color:transparent;
      border-radius:0;
    }
.funnel-stage.is-active-card + .funnel-stage{
      border-top:none;
    }
.funnel-stage::before{display:none;}
.funnel-stage-num{
      position:absolute;
      top:32px;
      right:40px;
      font-size:clamp(56px,6vw,88px);
      letter-spacing:-.04em;
      color:rgba(40,40,45,.07);
      font-weight:700;
      line-height:1;
      transition:color .3s;
      pointer-events:none;
      user-select:none;
    }
.funnel-stage.is-active-card .funnel-stage-num{
      color:rgba(255,255,255,.1);
    }
.funnel-stage-body{
      display:flex;
      flex-direction:column;
      gap:0;
      position:relative;
      z-index:1;
    }
.funnel-stage-label{
      display:block;
      font-size:10px;letter-spacing:.18em;
      color:#9B9BA0;
      font-weight:700;
      text-transform:uppercase;
      margin-bottom:12px;
      transition:color .3s;
    }
.funnel-stage.is-active-card .funnel-stage-label{color:rgba(255,255,255,.45);}
.funnel-stage-head{display:block;}
.funnel-stage-title{
      font-size:clamp(22px,2.4vw,32px);
      font-weight:700;color:#28282D;
      line-height:1.3;letter-spacing:-.03em;
      transition:color .3s;
    }
.funnel-stage.is-active-card .funnel-stage-title{color:#ffffff;}
.funnel-stage-detail{
      margin-top:14px;
      opacity:1;
    }
.funnel-stage-desc{
      font-size:16px;line-height:1.8;
      color:#6B6B70;
      transition:color .3s;
    }
.funnel-stage.is-active-card .funnel-stage-desc{color:rgba(255,255,255,.7);}
.funnel-stage-tag{
      display:inline-flex;align-items:center;gap:5px;
      padding:5px 12px;
      background:rgba(40,40,45,.06);
      border:1px solid rgba(40,40,45,.2);
      font-size:11px;color:#28282D;
      font-weight:700;letter-spacing:.06em;
      width:fit-content;
      margin-top:16px;
      transition:background .3s,border-color .3s,color .3s;
    }
.funnel-stage.is-active-card .funnel-stage-tag{
      background:rgba(255,255,255,.1);
      border-color:rgba(255,255,255,.3);
      color:#ffffff;
    }
.funnel-stage-services{
      display:flex;flex-wrap:wrap;gap:5px;
      margin-top:14px;
    }
.funnel-stage-service-tag{
      font-size:11px;padding:4px 10px;
      border:1px solid rgba(40,40,45,.2);
      color:#9B9BA0;
      letter-spacing:.03em;
      transition:border-color .2s,color .2s,background .2s;
      display:inline-block;
    }
.funnel-stage.is-active-card .funnel-stage-service-tag{
      border-color:rgba(255,255,255,.25);
      color:rgba(255,255,255,.6);
    }
a.funnel-stage-service-tag:hover{
      border-color:#28282D;
      color:#28282D;
    }
.funnel-stage.is-active-card a.funnel-stage-service-tag:hover{
      border-color:#ffffff;
      color:#ffffff;
    }
.funnel-stage-arrow{display:none;}
.solution-sec{
      background:#fff;
      padding:100px 80px;
      border-top:1px solid #E8E8E8;
    }
.solution-inner{max-width:1100px;margin:0 auto;}
.solution-head{margin-bottom:72px;}
.solution-head .sec-h2{color:#28282D;}
.solution-head .sec-body{max-width:600px;margin-top:16px;}
.solution-head-reason{
      display:block;
      margin-top:28px;
      padding:20px 24px;
      background:#F7F7F5;
      max-width:none;
    }
.solution-head-reason-q{
      font-size:24px;
      font-weight:900;
      color:#28282D;
      line-height:1.2;
      margin-bottom:12px;
      letter-spacing:.02em;
    }
.solution-head-reason-body{
      font-size:17px;
      font-weight:400;
      color:#28282D;
      line-height:1.75;
      letter-spacing:.01em;
      white-space:nowrap;
    }
.solution-items{display:flex;flex-direction:column;gap:0;}
.solution-item{
      display:grid;
      grid-template-columns:200px 1fr;
      gap:0;
      border-top:1px solid #E8E8E8;
      align-items:start;
      padding:56px 0;
    }
.solution-item:last-child{border-bottom:1px solid #E8E8E8;}
.solution-item-num{
      font-size:clamp(80px,10vw,140px);
      font-weight:800;
      line-height:1;
      letter-spacing:-.05em;
      color:rgba(40,40,45,.07);
      font-variant-numeric:tabular-nums;
      user-select:none;
      padding-top:4px;
    }
.solution-item-body{
      padding:0 0 0 40px;
      border-left:1px solid #E8E8E8;
    }
.solution-item-step{
      font-size:11px;letter-spacing:.22em;
      color:rgba(40,40,45,.4);
      font-weight:700;display:block;
      margin-bottom:14px;
      text-transform:uppercase;
    }
.solution-item-title{
      font-size:clamp(20px,2.4vw,30px);
      font-weight:700;line-height:1.25;
      letter-spacing:-.03em;color:#28282D;
      margin-bottom:16px;
    }
.solution-item-desc{
      font-size:16px;line-height:1.9;
      color:#5A5A60;
      max-width:560px;
    }
.solution-item-tag{
      display:inline-flex;align-items:center;
      margin-top:20px;
      font-size:12px;letter-spacing:.1em;
      color:rgba(40,40,45,.4);
      font-weight:600;
      gap:6px;
    }
.solution-item-tag::before{
      content:'';
      display:block;width:20px;height:1px;
      background:rgba(40,40,45,.25);
    }
.case-head-links{
      display:flex;flex-direction:column;align-items:flex-end;gap:10px;
    }
.authority-sec{
      background:#1A1A1E;
      border-top:none;
    }
.authority-inner{
      display:grid;grid-template-columns:1fr 1fr;
    }
.authority-left{
      padding:100px 80px;
      border-right:1px solid rgba(255,255,255,.1);
    }
.authority-right{
      padding:100px 80px;
    }
.authority-eyebrow{font-size:11px;letter-spacing:.22em;color:#ffffff;margin-bottom:20px;display:block;text-transform:uppercase;font-weight:600;}
.authority-eyebrow::before{content:'';display:block;width:24px;height:1px;background:rgba(255,255,255,.6);margin-bottom:12px;}
.authority-h2{
      font-size:clamp(28px,3.5vw,48px);
      font-weight:700;line-height:1.3;
      letter-spacing:-.03em;color:#ffffff;
      margin-bottom:24px;
    }
.authority-body{
      font-size:16px;line-height:1.9;
      color:#ffffff;margin-bottom:48px;
    }
.authority-stats-other{display:flex;gap:56px;flex-wrap:wrap;}
.authority-stat-other{}
.authority-stat-n{
      font-size:clamp(56px,7vw,96px);
      font-weight:700;line-height:1;
      letter-spacing:-.04em;color:#ffffff;
      margin-bottom:8px;
    }
.authority-stat-n sup{font-size:.35em;vertical-align:super;font-weight:700;color:#ffffff;}
.authority-stat-l{font-size:13px;color:#ffffff;letter-spacing:.04em;}
.authority-tags-label{font-size:11px;letter-spacing:.22em;color:#ffffff;margin-bottom:20px;display:block;text-transform:uppercase;font-weight:600;}
.authority-tags{display:flex;flex-wrap:wrap;gap:8px;}
.authority-tag{
      display:inline-flex;align-items:center;
      padding:6px 14px;
      border:1px solid rgba(255,255,255,.4);
      font-size:15px;color:#ffffff;
      letter-spacing:.04em;
      transition:border-color .2s,color .2s,background .2s;
    }
.authority-tag:hover{border-color:rgba(255,255,255,.8);color:#fff;background:rgba(255,255,255,.08);}
.authority-tag.lg{font-size:16px;padding:8px 18px;}
.authority-tag.sm{font-size:14px;padding:5px 12px;}
.problem-swipe-hint,
    .solution-swipe-hint,
    .case-swipe-hint{
      display:none;
    }
.page-btn:hover,.page-btn.active{background:#28282D;color:#fff;border-color:#28282D;}
.page-btn.prev-btn,.page-btn.next-btn{width:auto;padding:0 16px;font-size:13px;letter-spacing:.04em;}
.page-btn:disabled{opacity:.35;cursor:not-allowed;pointer-events:none;}
.voice-list-sec{padding:80px 80px 120px;}
.voice-list-inner{max-width:1200px;margin:0 auto;}
.voice-card-link{display:block;color:inherit;text-decoration:none;}
.voice-card-img-wrap{position:relative;overflow:hidden;height:300px;}
.voice-card-img-wrap img{width:100%;height:100%;object-fit:cover;object-position:center top;transition:transform .5s cubic-bezier(.16,1,.3,1);}
.voice-card:hover .voice-card-img-wrap img{transform:scale(1.05);}
.voice-card-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.55) 0%,transparent 60%);opacity:0;transition:opacity .3s;}
.voice-card:hover .voice-card-overlay{opacity:1;}
.voice-card-hover-quote{position:absolute;bottom:16px;left:16px;right:16px;font-size:13px;color:#fff;line-height:1.6;font-style:italic;opacity:0;transform:translateY(6px);transition:opacity .3s .05s,transform .3s .05s;}
.voice-card:hover .voice-card-hover-quote{opacity:1;transform:translateY(0);}
.voice-card-body{padding:24px 28px 28px;}
.voice-card-meta-top{display:flex;align-items:center;gap:8px;margin-bottom:14px;flex-wrap:wrap;}
.voice-card-num{font-size:11px;letter-spacing:.14em;color:#BBBBC0;font-weight:700;}
.voice-card-tag{display:inline-flex;align-items:center;padding:3px 10px;font-size:11px;letter-spacing:.06em;font-weight:600;border-radius:2px;}
.voice-card-tag.tag-seo{background:#E6F4EA;color:#1E7E34;}
.voice-card-tag.tag-listing{background:#FFF3E0;color:#E65100;}
.voice-card-tag.tag-sns{background:#FCE4EC;color:#C62828;}
.voice-card-tag.tag-web{background:#E3F2FD;color:#1565C0;}
.voice-card-tag.tag-marketing{background:#EDE7F6;color:#4527A0;}
.voice-card-tag.tag-meo{background:#E0F7FA;color:#00695C;}
.voice-card-tag.tag-default{background:#F5F5F5;color:#555;}
.voice-card-title{font-size:clamp(15px,1.4vw,18px);font-weight:700;line-height:1.55;color:#28282D;letter-spacing:-.02em;margin-bottom:16px;}
.voice-card-info{display:flex;gap:16px;flex-wrap:wrap;}
.voice-card-info-item{display:flex;align-items:center;gap:6px;}
.voice-card-info-label{font-size:11px;letter-spacing:.1em;color:#BBBBC0;font-weight:700;white-space:nowrap;}
.voice-card-info-val{font-size:12px;color:#4A4A50;letter-spacing:.02em;}
.voice-card-read{display:inline-flex;align-items:center;gap:8px;margin-top:16px;font-size:11px;font-weight:700;color:#28282D;letter-spacing:.1em;text-transform:uppercase;}
.voice-card-read svg{transition:transform .2s;}
.voice-card:hover .voice-card-read svg{transform:translateX(4px);}
.voice-card-img-placeholder{width:100%;height:300px;display:flex;align-items:center;justify-content:center;background:#EDEDEE;}
.voice-card-sp-quote{display:none;}
.client-info{display:flex;align-items:flex-start;gap:80px;max-width:1100px;margin:0 auto;padding:64px 80px 80px;}
.client-info-main{flex:1;}
.client-meta{display:flex;gap:0;margin-bottom:32px;border:1px solid #E8E8E8;}
.client-meta-item{display:flex;align-items:center;padding:14px 24px;border-right:1px solid #E8E8E8;gap:16px;}
.client-meta-item:last-child{border-right:none;}
.client-meta-label{font-size:11px;letter-spacing:.12em;color:#767680;font-weight:700;white-space:nowrap;background:#F7F7F5;padding:4px 10px;}
.client-meta-val{font-size:14px;color:#28282D;letter-spacing:.02em;}
.client-title{font-size:clamp(22px,3vw,36px);font-weight:700;line-height:1.5;letter-spacing:-.02em;color:#28282D;margin-bottom:32px;}
.client-service{display:block;margin-bottom:16px;flex-wrap:wrap;}
.client-service-label{font-size:11px;letter-spacing:.12em;color:#767680;font-weight:700;background:#F7F7F5;padding:4px 10px;white-space:nowrap;}
.client-service-tag{display:inline-flex;align-items:center;padding:6px 16px;border:1px solid #D8D8DC;font-size:13px;color:#28282D;letter-spacing:.04em;}
.client-url{display:block;}
.client-url-label{font-size:11px;letter-spacing:.12em;color:#767680;font-weight:700;background:#F7F7F5;padding:4px 10px;white-space:nowrap;}
.client-url-link{font-size:13px;color:#28282D;letter-spacing:.02em;text-decoration:underline;text-underline-offset:3px;transition:opacity .2s;}
.client-url-link:hover{opacity:.6;}
.client-img{width:360px;flex-shrink:0;aspect-ratio:4/3;background:#EDEDEE;overflow:hidden;display:flex;align-items:center;justify-content:center;}
.client-img img{width:100%;height:100%;object-fit:cover;}
.interview-sec{padding:0 80px 120px;}
.interview-inner{max-width:1100px;margin:0 auto;}
.interview-item{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;padding:80px 0;border-top:1px solid #E8E8E8;}
.interview-item:nth-child(even) .interview-body{order:2;}
.interview-item:nth-child(even) .interview-img{order:1;}
.interview-num{font-size:11px;letter-spacing:.18em;color:#BBBBC0;font-weight:700;margin-bottom:20px;display:block;}
.interview-num::after{content:'';flex:1;height:1px;background:#E8E8E8;}
.interview-q{font-size:clamp(16px,1.8vw,20px);font-weight:600;line-height:1.6;color:#28282D;letter-spacing:-.01em;margin-bottom:28px;position:relative;padding-left:24px;}
.interview-q::before{content:'Q.';position:absolute;left:0;top:0;font-size:13px;font-weight:700;color:#BBBBC0;letter-spacing:.04em;}
.interview-a{font-size:15px;line-height:2;color:#4A4A50;letter-spacing:.02em;}
.interview-img{aspect-ratio:4/3;background:#EDEDEE;overflow:hidden;display:flex;align-items:center;justify-content:center;}
.interview-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s cubic-bezier(.16,1,.3,1);}
.back-sec{padding:0 80px 80px;}
.back-inner{max-width:1100px;margin:0 auto;padding-top:64px;border-top:1px solid #E8E8E8;display:flex;align-items:center;justify-content:center;}
.back-link{display:inline-flex;align-items:center;gap:12px;font-size:13px;font-weight:700;color:#28282D;letter-spacing:.08em;text-transform:uppercase;border:1px solid #D8D8DC;padding:16px 40px;transition:background .2s,border-color .2s,color .2s;}
.back-link:hover{background:#28282D;color:#fff;border-color:#28282D;}
.back-link svg{transition:transform .2s;}
.back-link:hover svg{transform:translateX(-4px);}
.kv-badge em{
      font-style:normal;
      color:#fff;
      font-weight:700;
    }
.kv-h1-line2{
      display:block;
      font-size:clamp(28px,4vw,56px);
      font-weight:700;
      letter-spacing:-.03em;
      color:rgba(255,255,255,.75);
      margin-top:8px;
      white-space:nowrap;
    }
.why-card:last-child{border-right:none;}
.why-card:hover{background:#F8F8F7;}
.why-card-icon{
      width:40px;height:40px;
      border:1px solid #28282D;
      border-radius:50%;
      display:flex;align-items:center;justify-content:center;
      margin-bottom:20px;
      flex-shrink:0;
    }
.works-card{
      background:#fff;
      border:1px solid #E0E0E0;
      display:flex;flex-direction:column;
      transition:transform .25s,box-shadow .25s;
      overflow:hidden;
    }
.works-card:last-child{border:1px solid #E0E0E0;}
.works-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px rgba(0,0,0,.1);}
.works-card-img-wrap{
      width:100%;
      aspect-ratio:16/9;
      height:220px;
      background:#EDEDEE;
      overflow:hidden;
      position:relative;
    }
.works-card-img-placeholder{
      width:100%;height:100%;
      display:flex;flex-direction:column;align-items:center;justify-content:center;
      gap:12px;
      background:linear-gradient(135deg, #1A1A1E 0%, #28282D 50%, #3A3A42 100%);
    }
.works-card-img-label{
      font-size:11px;letter-spacing:.2em;color:rgba(255,255,255,.4);
      font-weight:600;text-transform:uppercase;
    }
.works-card-body{
      padding:28px 28px 32px;
      flex:1;display:flex;flex-direction:column;
    }
.works-card-industry{
      font-size:11px;letter-spacing:.2em;color:#767680;
      font-weight:700;text-transform:uppercase;
      margin-bottom:12px;
    }
.works-card-title{
      font-size:clamp(16px,1.8vw,20px);
      font-weight:700;letter-spacing:-.02em;
      color:#28282D;line-height:1.4;
      margin-bottom:12px;
    }
.works-card-result{
      display:inline-flex;align-items:center;gap:8px;
      font-size:13px;color:#28282D;
      font-weight:600;
      margin-top:auto;
      padding-top:16px;
      border-top:1px solid #E8E8E8;
    }
.works-card-result-num{
      font-size:clamp(22px,2.5vw,30px);
      font-weight:700;letter-spacing:-.04em;
      color:#28282D;
    }
.plan-phase{
      display:flex;align-items:center;gap:16px;
      margin-bottom:20px;
    }
.plan-phase-num{
      display:inline-flex;align-items:center;justify-content:center;
      width:32px;height:32px;border:1px solid #28282D;
      font-size:11px;font-weight:700;letter-spacing:.06em;color:#28282D;flex-shrink:0;
    }
.plan-phase-label{
      font-size:12px;letter-spacing:.14em;color:#767680;font-weight:700;text-transform:uppercase;
    }
.plan-phase-line{flex:1;height:1px;background:#E8E8E8;}
.plan-group{margin-bottom:48px;}
.plan-group:last-child{margin-bottom:0;}
.plan-icon{display:block;margin-bottom:20px;color:#9B9BA0;transition:color .2s;}
.plan-card:hover .plan-icon{color:#28282D;}
.footer-nav-group a:last-child{border-bottom:none;}
.page-hero-stats{display:flex;align-items:center;gap:48px;margin-top:56px;padding-top:40px;border-top:1px solid #E8E8E8;flex-wrap:wrap;}
.page-hero-stat-num{font-size:clamp(28px,3.5vw,44px);font-weight:700;letter-spacing:-.04em;color:#28282D;line-height:1;margin-bottom:8px;}
.page-hero-stat-label{font-size:12px;letter-spacing:.06em;color:#767680;}
.works-list-sec{padding:80px 80px 120px;}
.works-list-inner{max-width:1100px;margin:0 auto;}
.works-card::after{content:'';position:absolute;inset:0;box-shadow:0 4px 20px rgba(0,0,0,.08);opacity:0;transition:opacity .2s;pointer-events:none;}
.works-card:hover::after{opacity:1;}
.works-card-link{display:contents;}
.works-card-img-wrap img{width:100%;height:100%;object-fit:cover;transition:transform .4s cubic-bezier(.16,1,.3,1);will-change:transform;}
.works-card:hover .works-card-img-wrap img{transform:scale(1.03);}
.works-card-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px;}
.works-card-tag{display:inline-flex;align-items:center;padding:3px 10px;border:1px solid #D8D8DC;font-size:11px;letter-spacing:.08em;color:#767680;}
.works-card-meta{display:flex;align-items:center;justify-content:space-between;margin-top:auto;}
.works-card-co{font-size:13px;font-weight:600;color:#28282D;letter-spacing:.02em;line-height:1.4;}
.works-card-arrow{width:28px;height:28px;border:1px solid #D8D8DC;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .2s,border-color .2s;}
.works-card:hover .works-card-arrow{background:#28282D;border-color:#28282D;}
.works-card:hover .works-card-arrow svg path{stroke:#fff;}
.featured-head{margin-bottom:48px;}
.featured-card-img-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;}
.featured-card-tags{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px;}
.featured-card-tag{display:inline-flex;align-items:center;padding:4px 12px;border:1px solid #D8D8DC;font-size:11px;letter-spacing:.1em;color:#767680;}
.featured-card-desc{font-size:16px;line-height:1.9;color:#4A4A50;margin-bottom:32px;}
.featured-card-results{display:flex;gap:32px;padding:24px 0;border-top:1px solid #E8E8E8;flex-wrap:wrap;margin-bottom:32px;}
.featured-result-num{font-size:clamp(24px,2.8vw,36px);font-weight:700;letter-spacing:-.04em;color:#28282D;line-height:1;margin-bottom:6px;}
.featured-result-label{font-size:12px;color:#767680;letter-spacing:.04em;}
.featured-card-link{display:inline-flex;align-items:center;gap:12px;font-size:14px;font-weight:700;color:#28282D;letter-spacing:.04em;border-bottom:1px solid #28282D;padding-bottom:4px;align-self:flex-start;transition:opacity .2s;}
.featured-card-link:hover{opacity:.6;}
.works-hero{background:#111111;padding:160px 80px 100px;position:relative;overflow:hidden;}
.works-hero::before{
      content:'';position:absolute;top:0;left:0;right:0;bottom:0;
      background:radial-gradient(ellipse 80% 60% at 70% 50%,rgba(255,255,255,.03) 0%,transparent 70%);
      pointer-events:none;
    }
.works-hero-inner{max-width:1200px;margin:0 auto;position:relative;z-index:1;}
.works-hero-eyebrow{
      font-size:11px;letter-spacing:.28em;color:rgba(255,255,255,.4);
      font-weight:700;text-transform:uppercase;margin-bottom:32px;display:block;
    }
.works-hero-category{
      display:inline-block;font-size:11px;letter-spacing:.18em;font-weight:700;
      color:#111111;background:#fff;padding:5px 16px;margin-bottom:32px;text-transform:uppercase;
    }
.works-hero-client{
      font-size:clamp(40px,7vw,100px);font-weight:700;line-height:1.05;
      letter-spacing:-.04em;color:#fff;margin-bottom:24px;
    }
.works-hero-client em{font-style:normal;color:rgba(255,255,255,.35);}
.works-hero-sub{
      font-size:clamp(14px,1.4vw,18px);color:rgba(255,255,255,.5);
      letter-spacing:.06em;margin-top:16px;
    }
.works-hero-divider{
      width:60px;height:1px;background:rgba(255,255,255,.2);margin:40px 0;
    }
.works-hero-meta{display:flex;gap:48px;flex-wrap:wrap;}
.works-hero-meta-item{display:flex;flex-direction:column;gap:6px;}
.works-hero-meta-label{font-size:10px;letter-spacing:.2em;color:rgba(255,255,255,.3);font-weight:700;text-transform:uppercase;}
.works-hero-meta-val{font-size:14px;color:rgba(255,255,255,.8);letter-spacing:.04em;}
.results-label{font-size:11px;letter-spacing:.28em;color:rgba(255,255,255,.3);font-weight:700;text-transform:uppercase;margin-bottom:48px;display:block;}
.result-item{padding:56px 48px;border-right:1px solid rgba(255,255,255,.1);position:relative;}
.result-item:last-child{border-right:none;}
.result-num{
      font-size:clamp(56px,8vw,100px);font-weight:700;line-height:1;
      letter-spacing:-.04em;color:#fff;display:flex;align-items:flex-end;gap:4px;
    }
.result-num-unit{font-size:clamp(24px,3vw,40px);font-weight:700;color:rgba(255,255,255,.6);margin-bottom:8px;}
.result-num-prefix{font-size:clamp(20px,2.5vw,32px);font-weight:700;color:rgba(255,255,255,.6);margin-bottom:8px;}
.result-desc{font-size:12px;color:rgba(255,255,255,.3);letter-spacing:.04em;margin-top:8px;line-height:1.7;}
.mockup-sec{background:#fff;padding:0;}
.mockup-full{width:100%;overflow:hidden;}
.mockup-full-inner{max-width:1400px;margin:0 auto;padding:80px 80px;display:grid;grid-template-columns:3fr 1.4fr;gap:32px;align-items:end;}
.mockup-pc-wrap{position:relative;}
.mockup-pc{background:#EDEDEE;aspect-ratio:1000/591;display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:0 40px 80px rgba(0,0,0,.12);}
.mockup-sp-wrap{position:relative;}
.mockup-sp{background:#EDEDEE;aspect-ratio:321/520;display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:0 24px 48px rgba(0,0,0,.1);}
.mockup-pc img,.mockup-sp img{width:100%;height:100%;object-fit:cover;}
.mockup-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#C0C0C0;width:100%;height:100%;}
.mockup-placeholder-label{font-size:11px;letter-spacing:.12em;color:#C0C0C0;font-weight:600;}
.mockup-caption{padding:24px 80px 80px;max-width:1400px;margin:0 auto;display:flex;align-items:center;gap:24px;}
.mockup-caption-url{font-size:13px;color:#767680;letter-spacing:.04em;}
.mockup-caption-url a{color:#28282D;text-decoration:underline;text-underline-offset:3px;transition:opacity .2s;}
.mockup-caption-url a:hover{opacity:.6;}
.point-sec{padding:0;}
.point-block{padding:80px 0;}
.point-block:nth-child(odd){background:#F7F7F5;}
.point-block:nth-child(even){background:#fff;}
.point-block-inner{max-width:1200px;margin:0 auto;width:100%;padding:0 80px;display:grid;grid-template-columns:1fr 2fr;gap:80px;align-items:start;box-sizing:border-box;}
.point-left{}
.point-badge-wrap{display:flex;flex-direction:column;gap:16px;}
.point-badge{font-size:10px;letter-spacing:.22em;font-weight:700;color:#fff;background:#28282D;padding:5px 14px;text-transform:uppercase;display:inline-block;width:fit-content;}
.point-num{font-size:clamp(48px,6vw,80px);font-weight:700;line-height:1;letter-spacing:-.04em;color:#E8E8E8;}
.point-right{}
.point-head{font-size:clamp(18px,2vw,26px);font-weight:700;line-height:1.5;color:#28282D;letter-spacing:-.01em;margin-bottom:24px;}
.point-body{font-size:15px;line-height:2;color:#4A4A50;letter-spacing:.02em;}
.back-link:hover svg path{stroke:#fff;}

/* ================================================================
   下層ページ KV（キービジュアル）専用スタイル
   TOPページの .kv とは内部構造が異なるため、別途定義する
   ================================================================ */

/* ----------------------------------------------------------------
   .kv-splash（背景スプラッシュ画像）
   下層ページでは position:absolute で右側に配置される
   ---------------------------------------------------------------- */
.kv-splash {
  position: absolute;
  right: -40px;
  top: 50%;
  transform: translateY(-50%);
  width: 520px;
  height: 520px;
  object-fit: contain;
  opacity: .85;
  pointer-events: none;
  z-index: 0;
  animation: splashFloat 6s ease-in-out infinite;
}

/* ----------------------------------------------------------------
   .kv-right（スプラッシュ画像のラッパー）
   listing/index.html 等で使用
   ---------------------------------------------------------------- */
.kv-right {
  display: block;
  position: absolute;
  top: 50%;
  right: -60px;
  transform: translateY(-50%);
  width: 520px;
  height: 520px;
  pointer-events: none;
  z-index: 0;
}

/* ----------------------------------------------------------------
   .kv-inner（下層ページ用グリッドレイアウト）
   ---------------------------------------------------------------- */
.kv-inner {
  max-width: 1200px;
  width: 100%;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  align-items: center;
  position: relative;
  z-index: 1;
}

/* ----------------------------------------------------------------
   .kv-left（左カラム：テキストエリア）
   ---------------------------------------------------------------- */
.kv-left {
  position: relative;
  z-index: 1;
}

/* ----------------------------------------------------------------
   .kv-badge（下層ページ版：枠線スタイル）
   ---------------------------------------------------------------- */
.kv-badge {
  display: inline-flex;
  align-items: center;
  padding: 6px 14px;
  border: 1px solid rgba(255,255,255,.3);
  font-size: 12px;
  color: #28282D;
  letter-spacing: .04em;
  background: #ffffff;
}

/* ----------------------------------------------------------------
   .kv-actions（CTAボタン群）
   ---------------------------------------------------------------- */
.kv-actions {
  display: flex;
  align-items: center;
  gap: 40px;
  flex-wrap: wrap;
}

/* ----------------------------------------------------------------
   .kv-tel-wrap / .kv-tel-label / .kv-tel（電話番号エリア）
   ---------------------------------------------------------------- */
.kv-tel-label {
  font-size: 11px;
  letter-spacing: .18em;
  color: rgba(255,255,255,.6);
  margin-bottom: 6px;
  text-transform: uppercase;
  font-weight: 600;
}

.kv-tel {
  font-size: 24px;
  font-weight: 400;
  letter-spacing: -.02em;
  color: #fff;
}

/* ----------------------------------------------------------------
   レスポンシブ：タブレット（768px以下）
   ---------------------------------------------------------------- */
@media (max-width: 768px) {
  .kv-splash {
    width: 200px;
    height: 200px;
    right: -20px;
    opacity: .2;
  }

  .kv-right {
    display: none;
  }

  .kv-inner {
    padding: 0;
    gap: 32px;
  }

  .kv-actions {
    flex-direction: column;
    align-items: stretch;
    gap: 16px;
    width: 100%;
  }

  .kv-tel-wrap {
    text-align: center;
  }
}

/* ----------------------------------------------------------------
   レスポンシブ：スマートフォン（480px以下）
   ---------------------------------------------------------------- */
@media (max-width: 480px) {
  .kv-splash {
    width: 260px;
    height: 260px;
    right: -30px;
    top: auto;
    bottom: -20px;
    transform: none;
    opacity: .28;
    animation: none;
  }

  .kv-right {
    display: none;
  }

  .kv-badge {
    font-size: 11px;
    padding: 5px 10px;
  }
}

/* ========================================
   Sub-page Specific Headings, Colors & Cards (Final)
   ======================================== */

/* 1. KVエリア：視認性の完全確保 - TOPページ .kv-h1 と完全同値 */
.kv-left .kv-h1 {
  font-size: clamp(56px, 8vw, 120px) !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: -0.04em !important;
  color: #ffffff !important;
}
.kv-left .kv-sub {
  color: rgba(255, 255, 255, 0.9) !important;
  font-weight: 500;
}
.kv-h1-accent {
  display: block;
  font-size: 16px;
  letter-spacing: .2em;
  font-weight: 700;
  color: #ffffff !important;
  margin-bottom: 12px;
  text-transform: uppercase;
}

/* 2. セクション見出し： 全ページ統一基準（sec-title-lg基準・最大インパクト） */
.results-h2,
.sec-h2,
.sec-title-lg,
.flow-item-title,
.point-h2 {
  font-size: var(--sec-h2-size, clamp(36px, 4.2vw, 60px)) !important;
  font-weight: var(--sec-h2-weight, 900) !important;
  line-height: var(--sec-h2-line-height, 1.2) !important;
  letter-spacing: var(--sec-h2-letter-spacing, -0.04em) !important;
  color: #28282D;
}

/* 3. 導入実績カード (.result-card) の強化 */
.result-big-num {
  font-weight: 900 !important;
  letter-spacing: -.05em;
  line-height: 1;
}
.result-unit {
  font-weight: 700;
  font-size: 0.5em;
  margin-left: 4px;
}

/* 4. 暗い背景セクションでの文字色強制（.results-sec 等） */
.results-sec .results-h2,
.results-sec .sec-eyebrow,
.cta .cta-h2,
.cta .cta-body {
  color: #ffffff !important;
}

/* 5. 課題・解決カード (.case-card / .problem-item) */
.case-title {
  font-size: clamp(20px,2.4vw,30px) !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  letter-spacing: -.03em !important;
  margin-bottom: 1rem;
}
.problem-title {
  font-size: clamp(20px,2.4vw,30px) !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  letter-spacing: -.03em !important;
  margin-bottom: 1rem;
}

/* ================================================================
   下層ページ KV（キービジュアル）専用スタイル
   TOPページの .kv とは内部構造が異なるため、別途定義する
   ================================================================ */

/* .kv-splash（背景スプラッシュ画像）
   下層ページでは position:absolute で右側に配置される */
.kv-splash {
  position: absolute;
  right: -40px;
  top: 50%;
  transform: translateY(-50%);
  width: 520px;
  height: 520px;
  object-fit: contain;
  opacity: .85;
  pointer-events: none;
  z-index: 0;
  animation: splashFloat 6s ease-in-out infinite;
}

/* .kv-right（スプラッシュ画像のラッパー）
   listing/index.html 等で使用 */
.kv-right {
  display: block;
  position: absolute;
  top: 50%;
  right: -60px;
  transform: translateY(-50%);
  width: 520px;
  height: 520px;
  pointer-events: none;
  z-index: 0;
}

/* .kv-inner（下層ページ用グリッドレイアウト） */
.kv-inner {
  max-width: 1200px;
  width: 100%;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  align-items: center;
  position: relative;
  z-index: 1;
}

/* .kv-left（左カラム：テキストエリア） */
.kv-left {
  position: relative;
  z-index: 1;
}

/* .kv-badge（下層ページ版：枠線スタイル） */
.kv-badge {
  display: inline-flex;
  align-items: center;
  padding: 6px 14px;
  border: 1px solid rgba(255,255,255,.3);
  font-size: 12px;
  color: #28282D;
  letter-spacing: .04em;
  background: #ffffff;
}

/* .kv-actions（CTAボタン群） */
.kv-actions {
  display: flex;
  align-items: center;
  gap: 40px;
  flex-wrap: wrap;
}

/* .kv-tel-label / .kv-tel（電話番号エリア） */
.kv-tel-label {
  font-size: 11px;
  letter-spacing: .18em;
  color: rgba(255,255,255,.6);
  margin-bottom: 6px;
  text-transform: uppercase;
  font-weight: 600;
}
.kv-tel {
  font-size: 24px;
  font-weight: 400;
  letter-spacing: -.02em;
  color: #fff;
}

/* レスポンシブ：タブレット（768px以下） */
@media (max-width: 768px) {
  .kv-splash {
    width: 200px;
    height: 200px;
    right: -20px;
    opacity: .2;
  }
  .kv-right {
    display: none;
  }
  .kv-inner {
    padding: 0;
    gap: 32px;
  }
  .kv-actions {
    flex-direction: column;
    align-items: stretch;
    gap: 16px;
    width: 100%;
  }
  .kv-tel-wrap {
    text-align: center;
  }
}

/* レスポンシブ：スマートフォン（480px以下） */
@media (max-width: 480px) {
  .kv-splash {
    width: 260px;
    height: 260px;
    right: -30px;
    top: auto;
    bottom: -20px;
    transform: none;
    opacity: .28;
    animation: none;
  }
  .kv-right {
    display: none;
  }
  .kv-badge {
    font-size: 11px;
    padding: 5px 10px;
  }
}

/* ========================================
   GLOBAL OVERRIDE: Sub-page Recovery (Final)
   ======================================== */

/* 1. KV（ヒーローエリア）の視認性完全復元 - TOPページ .kv-h1 と完全同値 */
.kv-left .kv-h1 {
  font-size: clamp(56px, 8vw, 120px) !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: -0.04em !important;
  color: #ffffff !important;
}
.kv-left .kv-sub {
  color: #28282D;
  font-weight: 500;
}
.kv-h1-accent {
  display: block;
  font-size: 16px;
  letter-spacing: .2em;
  font-weight: 700;
  color: #ffffff !important;
}

/* 2. 暗い背景セクションのテキスト色強制 */
.results-h2, .cta-h2, .point-h2 {
  color: #ffffff !important;
  font-weight: 900 !important;
}
.results-sec .sec-eyebrow, .cta .cta-body {
  color: #ffffff !important;
}

/* 3. カード類（実績・プラン・ポイント）の復元 */
.result-card, .point-card, .case-card {
  background: #ffffff !important;
  color: #28282D !important;
  border: 1px solid #E8E8E8;
}
.plan-col {
  background: #ffffff !important;
  color: #28282D !important;
  border: none !important;
}
.result-big-num {
  font-weight: 900 !important;
  color: #28282D !important;
}
.case-title, .plan-name {
  font-weight: 900 !important;
  color: #28282D !important;
}

/* 4. 外部リンクアイコン等の微調整 */
.hd-btn-external svg {
  stroke: currentColor;
}

/* ========================================
   FINAL REFINED DESIGN
   (master_index_marked.html <style> complete)
   ======================================== */

    *,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
    html{font-size:16px;scroll-behavior:smooth}
    body{
      font-family:'Noto Sans JP','Yu Gothic','游ゴシック',YuGothic,'Hiragino Kaku Gothic ProN','ヒラギノ角ゴ ProN W3','Meiryo','メイリオ',sans-serif;
      font-weight:400;
      color:#28282D;
      background:#fff;
      overflow-x:hidden;
      -webkit-font-smoothing:antialiased;
    }
    img{max-width:100%;height:auto;display:block}
    a{color:inherit;text-decoration:none}
    ul,ol{list-style:none}

    /* HEADER */
    .hd{
      position:fixed;top:0;left:0;right:0;
      height:72px;
      background:#fff;
      display:flex;align-items:center;justify-content:space-between;
      padding:0 48px;
      z-index:100;
      border-bottom:1px solid #E8E8E8;
    }
    .hd-logo img{height:34px;width:auto}
    .hd-nav{display:flex;align-items:center;gap:32px}
    .hd-nav a{font-size:13px;letter-spacing:0.04em;color:#28282D;transition:opacity .2s;padding:14px 0}
    .hd-nav a:hover{opacity:.5}
    .hd-btn{
      display:inline-flex;align-items:center;justify-content:center;
      height:48px;padding:0 28px;
      background:#28282D;color:#fff;
      font-size:13px;letter-spacing:0.08em;font-weight:600;
      border:1px solid #28282D;
      transition:background .2s,color .2s;
    }
    .hd-btn:hover{background:#fff;color:#28282D}
    /* サイカツ.R 別サイトボタン */
    .hd-btn-external{
      display:inline-flex;align-items:center;justify-content:center;gap:6px;
      height:48px;padding:0 20px;
      background:#fff;color:#28282D;
      font-size:12px;letter-spacing:0.04em;font-weight:600;
      border:1.5px solid #28282D;
      transition:background .2s,color .2s;
      white-space:nowrap;
      line-height:1.3;
    }
    .hd-btn-external:hover{background:#28282D;color:#fff}
    .hd-btn-external svg{flex-shrink:0;transition:transform .2s}
    .hd-btn-external:hover svg{transform:translate(2px,-2px)}
    .hd-btns{display:flex;align-items:center;gap:10px}

    /* DROPDOWN MENU */
    .hd-nav-item{position:relative}
    .hd-nav-item>a{display:flex;align-items:center;gap:4px;cursor:pointer;padding:14px 0}
    .hd-nav-item>a::after{
      content:'';
      display:inline-block;
      width:6px;height:6px;
      border-right:1px solid #28282D;
      border-bottom:1px solid #28282D;
      transform:rotate(45deg) translateY(-2px);
      transition:transform .2s;
    }
    .hd-nav-item.open>a::after{transform:rotate(-135deg) translateY(-2px)}
    .hd-dropdown{
      position:absolute;top:calc(100% + 12px);left:50%;
      transform:translateX(-50%) translateY(-8px);
      background:#fff;
      border:1px solid #E8E8E8;
      min-width:200px;
      opacity:0;visibility:hidden;
      transition:opacity .22s,transform .22s,visibility .22s;
      z-index:200;
      box-shadow:0 8px 32px rgba(0,0,0,.08);
    }
    /* ドロップダウンとナビアイテムの間に透明ブリッジを設けてカーソルが外れにくくする */
    .hd-dropdown::before{
      content:'';
      position:absolute;top:-14px;left:0;right:0;
      height:14px;
    }
    .hd-nav-item.open .hd-dropdown{
      opacity:1;visibility:visible;
      transform:translateX(-50%) translateY(0);
    }
    .hd-dropdown a{
      display:block;
      padding:12px 20px;
      font-size:13px;
      color:#28282D;
      border-bottom:1px solid #F0F0F0;
      transition:background .15s;
      white-space:nowrap;
    }
    .hd-dropdown a:last-child{border-bottom:none}
    .hd-dropdown a:hover{background:#F7F7F7;opacity:1}
    .hd-dropdown-sub{
      border-bottom:1px solid #F0F0F0;
    }
    .hd-dropdown-sub-label{
      font-size:11px;letter-spacing:.1em;
      color:#555558;padding:10px 20px 4px;
      text-transform:uppercase;display:block;
    }
    .hd-dropdown-sub a{
      padding:9px 20px 9px 28px;
      font-size:12px;
      border-bottom:none;
    }
    .hd-dropdown-sub:last-child{border-bottom:none}

    /* MEGA MENU for サービス — Plan D カード型 */
    .hd-mega-wrap{
      position:fixed;top:72px;left:0;right:0;
      background:#F5F5F5;
      border-top:1px solid #E8E8E8;
      border-bottom:1px solid #E0E0E0;
      box-shadow:0 12px 40px rgba(0,0,0,.08);
      opacity:0;visibility:hidden;
      transition:opacity .22s,transform .22s,visibility .22s;
      transform:translateY(-8px);
      z-index:200;
      padding:20px 0 24px;
    }
    .hd-nav-item.open .hd-mega-wrap{
      opacity:1;visibility:visible;
      transform:translateY(0);
    }
    .hd-mega{
      display:grid;
      grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
      max-width:1200px;
      margin:0 auto;
      width:100%;
      gap:12px;
      padding:0 24px;
    }
    .hd-mega::before{
      content:'';
      position:absolute;top:-14px;left:0;right:0;
      height:14px;
    }
    .hd-mega-col{
      background:#fff;
      border:1px solid #E8E8E8;
      padding:18px 20px 14px;
    }
    .hd-mega-col-label{
      white-space:normal;
      color:#1A1A1E;
      display:flex;
      flex-direction:column;
      gap:2px;
      padding-bottom:10px;
      margin-bottom:10px;
      border-bottom:2px solid #1A1A1E;
      line-height:1.4;
      text-align:center;
    }
    .col-label-main{
      font-size:13px;
      font-weight:700;
      letter-spacing:.06em;
      display:block;
    }
    .col-label-sub{
      font-size:10.5px;
      font-weight:400;
      letter-spacing:.02em;
      opacity:.75;
      display:block;
    }
    .hd-mega-col a{
      display:flex;
      align-items:center;
      gap:6px;
      padding:12px 0;
      font-size:16px;
      color:#28282D;
      border-bottom:1px solid #F0F0F0;
      transition:color .15s;
      white-space:nowrap;
    }
    .hd-mega-col-label-link{
      color:#28282D !important;
      text-decoration:none;
      transition:opacity .2s !important;
      border-bottom:2px solid #1A1A1E !important;
      padding-bottom:10px !important;
    }
    .hd-mega-col-label-link:hover{
      opacity:.6;
    }
    .hd-mega-col a:last-child{border-bottom:none}
    .hd-mega-col a::before{
      content:'';
      width:4px;height:4px;
      border-radius:50%;
      background:#1A1A1E;
      flex-shrink:0;
      opacity:.25;
      transition:opacity .15s;
    }
    .hd-mega-col a:hover{color:#000;background:none}
    .hd-mega-col a:hover::before{opacity:1}

    /* HAMBURGER */
    .hd-hamburger{
      display:none;
      flex-direction:column;justify-content:center;align-items:center;
      width:44px;height:44px;
      cursor:pointer;
      gap:6px;
      background:none;border:none;padding:0;
    }
    .hd-hamburger span{
      display:block;width:24px;height:1px;
      background:#28282D;
      transition:transform .3s,opacity .3s;
    }
    .hd-hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
    .hd-hamburger.open span:nth-child(2){opacity:0}
    .hd-hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

    /* MOBILE DRAWER */
    .hd-drawer-item{
      border-bottom:1px solid #F0F0F0;
    }
    .hd-drawer-link{
      display:flex;align-items:center;justify-content:space-between;
      padding:18px 24px;
      font-size:16px;
      color:#28282D;
      cursor:pointer;
    }
    .hd-drawer-link::after{
      content:'';
      display:block;width:8px;height:8px;
      border-right:1px solid #28282D;
      border-bottom:1px solid #28282D;
      transform:rotate(45deg);
      transition:transform .2s;
      flex-shrink:0;
    }
    .hd-drawer-link.no-arrow::after{display:none}
    .hd-drawer-link.open::after{transform:rotate(-135deg)}
    .hd-drawer-sub{
      display:none;
      background:#F7F7F7;
      padding:8px 0;
    }
    .hd-drawer-sub.open{display:block}
    .hd-drawer-sub a{
      display:block;
      padding:13px 24px 13px 36px;
      font-size:13px;
      color:#28282D;
      border-bottom:1px solid #EFEFEF;
    }
    .hd-drawer-sub a:last-child{border-bottom:none}
    .hd-drawer-sub-label{
      font-size:11px;letter-spacing:.1em;
      color:#555558;padding:12px 24px 4px 36px;
      text-transform:uppercase;
    }
    .hd-drawer-cta{
      padding:24px;
      display:flex;flex-direction:column;gap:12px;
    }
    .hd-drawer-cta .hd-btn{
      display:flex;width:100%;justify-content:center;
      height:52px;font-size:16px;
    }
    .hd-drawer-cta .hd-btn-saicatsu{
      display:flex;width:100%;justify-content:center;align-items:center;gap:6px;
      height:52px;font-size:13px;
      background:#fff;color:#28282D;
      border:1.5px solid #28282D;
      text-decoration:none;font-weight:500;
      transition:background .2s,color .2s;
      letter-spacing:.04em;
    }
    .hd-drawer-cta .hd-btn-saicatsu:hover{background:#28282D;color:#fff}
    .hd-drawer-cta .hd-btn-saicatsu:hover svg path{stroke:#fff}
    .hd-drawer-sns{
      padding:20px 24px 32px;
      border-top:1px solid #F0F0F0;
      display:flex;flex-direction:column;align-items:center;gap:14px;
    }
    .hd-drawer-sns-label{
      font-size:10px;letter-spacing:.18em;color:#555558;font-weight:600;
    }
    .hd-drawer-sns-links{
      display:flex;align-items:center;justify-content:center;gap:12px;
    }
    .hd-drawer-sns-link{
      display:flex;align-items:center;justify-content:center;
      width:44px;height:44px;
      border:1px solid #D8D8DC;
      border-radius:50%;
      text-decoration:none;
      transition:background .2s,border-color .2s;
    }
    .hd-drawer-sns-ig:hover{background:#E1306C;border-color:#E1306C}
    .hd-drawer-sns-tt:hover{background:linear-gradient(135deg,#69C9D0 0%,#EE1D52 100%);border-color:transparent}
    .hd-drawer-sns-x:hover{background:#000;border-color:#000}

    /* KV */
    .kv{
      min-height:100vh;
      display:flex;align-items:center;
      padding:var(--kv-padding-v) 80px;
      background:#fff;
    }
    .kv-wrap{max-width:1100px;width:100%}
    .kv-eyebrow{
      font-size:11px;letter-spacing:.22em;font-weight:700;
      color:#555558;margin-bottom:48px;
      display:flex;align-items:center;gap:16px;
    }
    .kv-eyebrow::before{content:'';display:block;width:32px;height:1px;background:#9B9BA0}
    .kv-h1{
      font-size:clamp(56px,8vw,120px);
      font-weight:700;
      line-height:1.2;
      letter-spacing:-0.04em;
      color:#28282D;
      margin-bottom:48px;
    }
    .kv-body{
      font-size:16px;line-height:1.85;
      color:#333336;
      max-width:520px;
      margin-bottom:64px;
    }
    .kv-stats{
      display:flex;gap:0;
      max-width:960px;
      margin:72px auto 0;
      border-top:1px solid #E0E0E4;
      padding-top:56px;
    }
    .kv-stat{
      flex:1;
      background:transparent;
      border-radius:0;
      padding:0 56px;
      border-right:1px solid #E0E0E4;
    }
    .kv-stat:first-child{padding-left:0}
    .kv-stat:last-child{border-right:none;padding-right:0}
    .kv-stat-icon{display:none}
    .kv-stat-n{
      font-size:clamp(44px,5vw,68px);
      font-weight:700;letter-spacing:-0.04em;
      line-height:1;color:#28282D;
    }
    .kv-stat-n sup{font-size:.38em;letter-spacing:0;vertical-align:super;font-weight:500}
    .kv-stat-l{font-size:14px;font-weight:500;color:#28282D;margin-top:8px;letter-spacing:.04em}
    .kv-stat-note{display:block;font-size:11px;color:#555558;letter-spacing:.04em;margin-top:3px}


    .voice-link,.work-link{
      display:block;text-decoration:none;color:inherit;
    }
    .voice-more,.work-more{
      font-size:12px;color:#28282D;letter-spacing:.06em;
      margin-top:12px;font-weight:500;
    }
    .voice-card:hover .voice-more,
    .work-card:hover .work-more{
      text-decoration:underline;
    }
    /* NOTICE BAR */
    .notice-bar{
      display:flex;
      align-items:center;
      border-bottom:1px solid #E8E8E8;
      background:#fff;
    }
    .notice-bar-label{
      flex-shrink:0;
      font-size:12px;
      font-weight:700;
      letter-spacing:.12em;
      color:#28282D;
      padding:14px 24px;
      border-right:1px solid #E8E8E8;
      text-transform:uppercase;
    }
    .notice-bar-item{
      flex:1;
      display:flex;
      align-items:center;
      gap:20px;
      padding:14px 24px;
      text-decoration:none;
      color:#28282D;
      font-size:13px;
      transition:opacity .2s;
      min-width:0;
    }
    .notice-bar-item:hover{opacity:.6}
    .notice-bar-date{
      flex-shrink:0;
      font-size:12px;
      color:#555558;
      letter-spacing:.05em;
    }
    .notice-bar-title{
      flex:1;
      white-space:nowrap;
      overflow:hidden;
      text-overflow:ellipsis;
    }
    .notice-bar-all{
      flex-shrink:0;
      font-size:12px;
      letter-spacing:.1em;
      color:#555558;
      text-decoration:none;
      padding:14px 24px;
      border-left:1px solid #E8E8E8;
      white-space:nowrap;
      transition:color .2s;
    }
    .notice-bar-all:hover{color:#28282D}
    .notice-bar-arrow{display:inline-block;margin-left:6px;font-size:10px}

    /* SECTION COMMON */
    .sec-head{
      display:flex;align-items:flex-start;gap:72px;
      padding:120px 80px 80px;
      border-top:1px solid #E8E8E8;
    }

    .sec-head-body{padding-top:4px}
    .sec-eyebrow{font-size:12px;letter-spacing:.15em;color:#555558;margin-bottom:20px}
    .sec-h2{
      font-size:var(--sec-h2-size,clamp(36px,4.2vw,60px));
      font-weight:var(--sec-h2-weight,900);
      line-height:var(--sec-h2-line-height,1.2);
      letter-spacing:var(--sec-h2-letter-spacing,-.04em);
      color:var(--sec-h2-color,#28282D);
      margin-bottom:var(--sec-h2-mb,20px);
    }
    .sec-body{font-size:16px;line-height:1.85;color:#333336;max-width:460px}

    /* CHALLENGE */
    .challenge-sec{padding-top:0}
    .challenge-head{
      position:relative;
      padding:24px 80px 20px;
      display:grid;
      grid-template-columns:2fr 3fr;
      align-items:center;
      gap:0;
      overflow:hidden;
    }
    .challenge-watermark{display:none}
    .challenge-head-left{position:relative;z-index:1;padding-right:48px;border-right:1px solid #E0E0E4}
    .challenge-head-right{position:relative;z-index:1;padding-left:48px}
    .challenge-head-right .sec-body{max-width:none;font-size:16px;color:#333336;line-height:1.8}
    .challenge-grid{
      display:grid;
      grid-template-columns:repeat(2,1fr);
      align-items:stretch;
    }
    .challenge-card--overall{
      grid-column:1/-1;
      border-right:none;
      border-bottom:1px solid #E0E0E4;
      background:#fff;
      display:grid!important;
      grid-template-columns:3fr 2fr;
      gap:0;
      padding:0;
      flex-direction:unset;
    }
    .challenge-card--overall .challenge-card-left{
      padding:56px 48px 56px 40px;
      border-right:1px solid #E0E0E4;
      display:flex;flex-direction:column;
      justify-content:center;
    }
    .challenge-card--overall .challenge-card-right{
      padding:56px 40px 56px 48px;
      display:flex;flex-direction:column;
      justify-content:center;
      align-self:stretch;
    }
    .challenge-card--overall .challenge-card-right .challenge-tags-label{
      margin-top:0!important;
      padding-top:0!important;
    }
    .challenge-card--overall .challenge-card-title{
      font-size:clamp(24px,3vw,36px);
    }
    .challenge-overall{
      grid-column:1/-1;
      border-bottom:1px solid rgba(255,255,255,.12);
      background:#28282D;
    }
    .challenge-overall-top{
      display:grid;
      grid-template-columns:auto 1fr;
      gap:48px;
      padding:56px 72px 48px;
      border-bottom:1px solid rgba(255,255,255,.12);
      align-items:start;
    }
    .challenge-overall-heading{
      display:flex;flex-direction:column;gap:16px;
      min-width:220px;
    }
    .challenge-overall-steps{
      display:grid;
      grid-template-columns:repeat(3,1fr);
      border-left:1px solid rgba(255,255,255,.12);
    }
    .challenge-overall-step{
      padding:24px 28px;
      border-right:1px solid rgba(255,255,255,.12);
    }
    .challenge-overall-step-num{
      font-size:13px;letter-spacing:.12em;
      color:#fff;font-weight:700;
      margin-bottom:14px;
    }
    .challenge-overall-step-text{
      font-size:16px;color:#fff;line-height:1.7;
    }
    .challenge-overall-bottom{
      display:grid;
      grid-template-columns:1fr auto;
      align-items:center;
      gap:48px;
      padding:36px 72px;
    }
    .challenge-overall-tag{
      font-size:13px;letter-spacing:.15em;
      color:rgba(255,255,255,.92);margin-bottom:16px;
    }
    .challenge-overall-title{
      font-size:clamp(28px,3.5vw,48px);
      font-weight:400;line-height:1.3;
      letter-spacing:-.03em;color:#fff;
    }
    .challenge-overall-sub{
      font-size:16px;color:#fff;
      line-height:1.7;font-weight:500;
    }
    .challenge-overall-desc{
      font-size:16px;line-height:1.85;
      color:rgba(255,255,255,.92);
      margin-bottom:36px;max-width:380px;
    }
    .btn-more-inv{
      display:inline-flex;align-items:center;justify-content:center;
      width:180px;height:48px;
      border:none;
      font-size:13px;letter-spacing:.08em;font-weight:600;
      color:#28282D;background:#fff;
      transition:background .2s,color .2s,opacity .2s;
    }
    .btn-more-inv:hover{background:#E8E8E8;opacity:1}
    .challenge-card{
      padding:36px 32px;
      border-right:1px solid #E8E8E8;
      display:flex;flex-direction:column;
      transition:background .2s;
    }
    .challenge-card:last-child{border-right:none}
    .challenge-card:hover{background:#F8F8F8}
    .challenge-card-num{
      display:block;
      margin-bottom:24px;
    }
    .challenge-card-num-n{
      font-size:18px;letter-spacing:.08em;color:#555558;font-weight:700;
    }
    .challenge-card-tag{
      font-size:12px;letter-spacing:.12em;
      color:#28282D;
      border:1px solid #E8E8E8;
      padding:3px 10px;
    }
    /* カテゴリチップ */
    .challenge-cat-chip{
      display:inline-block;
      width:fit-content;
      font-size:14px;letter-spacing:.08em;font-weight:700;
      color:#fff;
      background:#28282D;
      padding:5px 14px;
      border-radius:2px;
      margin-bottom:14px;
      align-self:flex-start;
      line-height:1.4;
    }
    .challenge-card-title{
      font-size:clamp(22px,2.4vw,32px);
      font-weight:700;line-height:1.35;
      letter-spacing:-.02em;color:#28282D;
      margin-bottom:16px;
      position:relative;
      display:inline-block;
      white-space:nowrap;
    }
    .challenge-card-title::after{
      content:'';
      position:absolute;
      bottom:-4px;left:0;
      width:0;height:2px;
      background:#28282D;
      transition:width .6s cubic-bezier(.4,0,.2,1);
      transition-delay:.5s;
    }
    .challenge-card.fu.on .challenge-card-title::after{
      width:100%;
    }
    .challenge-card-desc{
      font-size:16px;line-height:1.85;
      color:#333336;margin-bottom:0;
    }
    .challenge-tags-label{
      font-size:14px;letter-spacing:.08em;
      color:#333336;font-weight:600;
      text-transform:uppercase;
      margin-top:24px;
      padding-top:0;
      margin-bottom:10px;
      display:flex;align-items:center;gap:8px;
    }
    .challenge-tags-label::before{
      content:'';
      display:inline-block;
      width:1px;height:14px;
      background:#4A4A50;
      flex-shrink:0;
    }
    .challenge-tags-wrap{
      display:flex;flex-direction:row;flex-wrap:wrap;gap:0;
      margin-bottom:0;
    }
    .challenge-tag{
      font-size:clamp(13px,1.2vw,16px);letter-spacing:-.01em;
      font-weight:400;
      color:#28282D;
      background:transparent;
      padding:11px 12px;
      text-decoration:none;
      border-bottom:1px solid #E8E8E8;
      transition:background .18s,color .18s;
      display:flex;align-items:center;justify-content:space-between;
      gap:8px;
      border-radius:4px;
      width:50%;
      box-sizing:border-box;
    }
    .challenge-tag:nth-child(even){border-left:1px solid #E8E8E8}
    .challenge-tag:last-child{border-bottom:none}
    .challenge-tag:nth-last-child(2):nth-child(odd){border-bottom:none}
    .challenge-tag::after{
      content:'→';
      font-size:16px;
      color:#A0A0A8;
      font-weight:400;
      transition:color .18s,transform .18s;
      flex-shrink:0;
    }
    a.challenge-tag:hover{
      background:#F5F5F5;
      color:#000;
    }
    a.challenge-tag:hover::after{
      color:#28282D;
      transform:translateX(3px);
    }
    .challenge-link{
      font-size:12px;letter-spacing:.1em;
      color:#28282D;
      border-bottom:1px solid #28282D;
      padding-bottom:2px;
      display:inline-block;
      width:fit-content;
      transition:opacity .2s;
    }
    .challenge-link:hover{opacity:.5}

    /* VOICE */
    .voice-sec{background:#F7F7F7}
    .voice-head{
      padding:120px 80px 72px;
      
      display:flex;align-items:flex-end;justify-content:space-between;
    }
    .voice-grid{
      display:grid;grid-template-columns:repeat(3,1fr);
      
    }
    .voice-card{border-right:1px solid #E8E8E8;overflow:hidden;transition:background .2s}
    .voice-card:last-child{border-right:none}
    .voice-card:hover{background:#EFEFEF}
    .voice-link{
      display:block;
    }
    .voice-avatar{
      aspect-ratio:3/2;
      overflow:hidden;background:#E8E8E8;
    }
    .voice-avatar img{width:100%;height:100%;object-fit:cover;object-position:center top;transition:transform .5s ease}
    .voice-card:hover .voice-avatar img{transform:scale(1.04)}
    .voice-body{
      padding:28px 36px 36px;
      border-top:1px solid #E8E8E8;
    }
    .voice-quote{font-size:16px;line-height:1.9;color:#28282D;margin-bottom:24px}
    .voice-meta{border-top:1px solid #E8E8E8;padding-top:16px}
    .voice-co{font-size:12px;letter-spacing:.06em;color:#333336;margin-bottom:4px}
    .voice-name{font-size:16px;font-weight:500;color:#28282D}

    /* WORKS */
    .works-head{
      padding:120px 80px 72px;
      border-top:1px solid #E8E8E8;
      display:flex;align-items:flex-end;justify-content:space-between;
    }
    .works-grid{
      display:grid;grid-template-columns:repeat(3,1fr);
      gap:28px 20px;
    }
    .work-card{border:1px solid #E8E8E8;overflow:hidden}
    .work-card:last-child{border:1px solid #E8E8E8;}
    .work-thumb{aspect-ratio:16/10;overflow:hidden;background:#F3F4F6}
    .work-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
    .work-card:hover .work-thumb img{transform:scale(1.04)}
    .work-info{padding:28px 36px 36px;border-top:1px solid #E8E8E8}
    .work-cat{font-size:12px;letter-spacing:.1em;color:#333336;margin-bottom:10px}
    .work-title{font-size:17px;font-weight:500;letter-spacing:-.01em;color:#28282D;margin-bottom:6px}
    .work-result{font-size:14px;color:#3D3D42;font-weight:500}
    /* ABOUT */
    .about-inner{
      display:grid;grid-template-columns:1fr 1fr;
      min-height:640px;
      border-top:1px solid #E8E8E8;
    }
    .about-text{
      padding:120px 80px;
      display:flex;flex-direction:column;justify-content:center;
    }
    .about-eyebrow{font-size:12px;letter-spacing:.15em;color:#555558;margin-bottom:28px}
    .about-h2{
      font-size:var(--sec-h2-size);
      font-weight:var(--sec-h2-weight);line-height:var(--sec-h2-line-height);
      letter-spacing:var(--sec-h2-letter-spacing);color:#28282D;
      margin-bottom:24px;
    }
    .about-body{font-size:16px;line-height:1.9;color:#333336;margin-bottom:48px;max-width:400px}
    .about-stats{
      display:grid;grid-template-columns:repeat(3,1fr);
      border-top:1px solid #E8E8E8;padding-top:32px;gap:0;
    }
    .about-stat{padding-right:28px;border-right:1px solid #E8E8E8;margin-right:28px}
    .about-stat:last-child{border-right:none;margin-right:0;padding-right:0}
    .about-stat-n{
      font-size:clamp(28px,3vw,40px);
      font-weight:400;letter-spacing:-.04em;
      line-height:1;color:#28282D;
    }
    .about-stat-n sup{font-size:.45em;letter-spacing:0;vertical-align:super}
    .about-stat-l{font-size:14px;color:#333336;margin-top:8px;letter-spacing:.06em}
    .about-visual{
      background:#F7F7F7;
      display:flex;align-items:flex-start;justify-content:flex-start;
    }
    .about-mission{text-align:left;padding:120px 80px}
    .about-mission-label{font-size:12px;letter-spacing:.15em;color:#555558;margin-bottom:20px}
    .about-mission-text{
      font-size:var(--sec-h2-size);
      font-weight:var(--sec-h2-weight);line-height:var(--sec-h2-line-height);
      letter-spacing:var(--sec-h2-letter-spacing);color:#28282D;
    }

    /* SNS BAR */
    .sns-bar{
      border-top:1px solid #E8E8E8;
      border-bottom:1px solid #E8E8E8;
      padding:40px 80px;
      display:flex;align-items:center;justify-content:space-between;
      gap:32px;
    }
    .sns-bar-left{
      display:flex;flex-direction:column;gap:6px;
    }
    .sns-bar-label{
      font-size:11px;letter-spacing:.16em;color:#555558;font-weight:600;
    }
    .sns-bar-title{
      font-size:clamp(15px,1.5vw,18px);
      font-weight:500;letter-spacing:-.01em;color:#28282D;
      line-height:1.4;
    }
    .sns-bar-links{
      display:flex;align-items:center;gap:16px;
    }
    .sns-bar-link{
      display:flex;align-items:center;gap:10px;
      padding:14px 28px;
      border:1px solid #E8E8E8;
      color:#28282D;
      font-size:13px;letter-spacing:.04em;
      text-decoration:none;
      transition:background .2s,border-color .2s;
      white-space:nowrap;
    }
    .sns-bar-link:hover{background:#28282D;color:#fff;border-color:#28282D}
    .sns-bar-link:hover svg path,.sns-bar-link:hover svg rect,.sns-bar-link:hover svg circle,.sns-bar-link:hover svg polygon{stroke:#fff;fill:none}
    .sns-bar-link svg{width:16px;height:16px;flex-shrink:0}

    /* フッターSNSアイコン */
    .footer-sns{
      display:flex;align-items:center;gap:16px;
      margin-top:20px;
    }
    .footer-sns-link{
      display:flex;align-items:center;justify-content:center;
      width:36px;height:36px;
      border:1px solid #E8E8E8;
      color:#28282D;
      text-decoration:none;
      transition:background .2s,border-color .2s;
    }
    .footer-sns-link:hover{background:#28282D;border-color:#28282D}
    .footer-sns-link:hover svg path,.footer-sns-link:hover svg rect,.footer-sns-link:hover svg circle,.footer-sns-link:hover svg polygon{stroke:#fff;fill:none}
    .footer-sns-ig:hover{background:#E1306C;border-color:#E1306C}
    .footer-sns-tt:hover{background:linear-gradient(135deg,#69C9D0 0%,#EE1D52 100%);border-color:transparent}
    .footer-sns-x:hover{background:#000;border-color:#000}

    /* ABOUT SNS */
    .about-sns{
      margin-top:28px;
      text-align:left;
    }
    .about-sns-label{
      font-size:10px;letter-spacing:.18em;color:#555558;font-weight:600;
      margin-bottom:14px;
    }
    .about-sns-links{
      display:flex;align-items:center;justify-content:flex-start;gap:12px;
    }
    .about-sns-link{
      display:flex;align-items:center;justify-content:center;
      width:64px;height:64px;
      border:1px solid #D8D8DC;
      color:#28282D;
      text-decoration:none;
      transition:background .2s,border-color .2s,color .2s;
    }
    .about-sns-link:hover{border-color:transparent}
    .about-sns-ig:hover{background:#E1306C;color:#fff}
    .about-sns-tt:hover{background:linear-gradient(135deg,#69C9D0 0%,#EE1D52 100%);border-color:transparent;color:#fff}
    .about-sns-x:hover{background:#000;color:#fff}

    /* NEWS */
    .news-sec{}
    .news-sec.column-sec{background:#FFFFFF}
    .news-head{
      padding:80px 80px 52px;
      display:flex;align-items:flex-end;justify-content:space-between;
    }
    .news-h2{
      font-size:clamp(40px,5.5vw,72px);
      font-weight:700;letter-spacing:-.04em;color:#28282D;
    }
    .news-list{}
    .news-item{
      display:grid;grid-template-columns:160px 1fr;
      align-items:baseline;
      padding:24px 80px;
      border-top:1px solid #E8E8E8;
      color:#28282D;
      transition:background .15s;
    }
    .news-item:hover{background:#F8F8F8}
    .news-date{font-size:12px;color:#555558;letter-spacing:.05em}
    .news-title{font-size:16px;line-height:1.6;color:#28282D}

    /* VIEW ALL */
    .view-all{
      display:inline-flex;align-items:center;gap:8px;
      font-size:12px;letter-spacing:.1em;color:#28282D;
      border-bottom:1px solid #28282D;padding-bottom:2px;
      transition:opacity .2s;
    }
    .view-all:hover{opacity:.5}

    /* SECTION TITLE */
    .sec-title-lg{
      font-size:var(--sec-h2-size,clamp(36px,4.2vw,60px));
      font-weight:var(--sec-h2-weight,900);
      line-height:var(--sec-h2-line-height,1.2);
      letter-spacing:var(--sec-h2-letter-spacing,-.04em);
      color:var(--sec-h2-color,#28282D);
      margin-bottom:var(--sec-h2-mb,20px);
    }
    /* ナビリンク下線アニメーション */
    .hd-nav>a,
    .footer-nav-group a{
      position:relative;
      text-decoration:none;
    }
    .hd-nav>a::before,
    .footer-nav-group a::before{
      content:'';
      position:absolute;
      bottom:-1px;left:0;
      width:0;height:1px;
      background:currentColor;
      transition:width .3s cubic-bezier(.25,.46,.45,.94);
    }
    .hd-nav>a:hover::before,
    .footer-nav-group a:hover::before{
      width:100%;
    }

    /* FOOTER */
    .footer{padding:80px 80px 48px;border-top:1px solid #E8E8E8}
    .footer-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:64px}
    .footer-logo img{height:30px;width:auto}
    .footer-nav{display:grid;grid-template-columns:repeat(3,1fr);gap:48px}
    /* フッター視認性設計原則
       第1階層（ナビリンク）: #28282D
       第2階層（本文情報）:   #4A4A52
       第3階層（ラベル・補足）: #767680
       ※ #B0B0B5以下はフッター内使用禁止 */
    .footer-nav-title{font-size:12px;letter-spacing:.12em;color:#555558;margin-bottom:14px}
    .footer-nav-group a{display:block;font-size:14px;color:#28282D;margin-bottom:10px;letter-spacing:.01em;transition:opacity .2s}
    .footer-nav-group a:hover{opacity:.5}
    .footer-bottom{
      display:flex;justify-content:flex-end;align-items:center;
      padding-top:24px;border-top:1px solid #E8E8E8;
    }
    .footer-copy{font-size:12px;color:#555558;letter-spacing:.05em}
    .footer-logo-wrap{display:flex;flex-direction:column;gap:0}
    .footer-logo-addr{font-size:12px;color:#4A4A52;line-height:1.9;font-style:normal;margin-top:20px}
    .footer-logo-addr a{color:#4A4A52;text-decoration:none}
    .footer-logo-addr a:hover{opacity:.6}
    .footer-sns-block{margin-top:28px}
    .footer-sns-label{font-size:10px;letter-spacing:.14em;color:#555558;font-weight:500;margin-bottom:12px}
    .footer-sns{display:flex;align-items:center;gap:16px;margin-top:0}
    .footer-logo-related{display:block;margin-top:24px;padding-top:20px;border-top:1px solid #E8E8E8}
    .footer-related-label{display:block;font-size:10px;letter-spacing:.14em;color:#555558;font-weight:500;white-space:nowrap}
    .footer-related-link{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:#4A4A52;text-decoration:none;letter-spacing:.04em;transition:opacity .2s}
    .footer-related-link:hover{opacity:.5}
    /* footer-bottom mobile override removed */
    .footer-bottom-right{display:flex;align-items:center;gap:24px}
    .footer-privacy{font-size:12px;color:#4A4A52;text-decoration:none;letter-spacing:.04em}
    .footer-privacy:hover{opacity:.6}

    /* SERVICE OPTIONS */
    .service-opt-sec{border-top:1px solid #E8E8E8}
    .service-opt-inner{
      display:grid;grid-template-columns:1fr 1fr;
      min-height:480px;
    }
    .service-opt-left{
      padding:80px;
      border-right:1px solid #E8E8E8;
      display:flex;flex-direction:column;justify-content:space-between;
    }
    .service-opt-eyebrow{font-size:12px;letter-spacing:.15em;color:#555558;margin-bottom:24px}
    .service-opt-h2{
      font-size:var(--sec-h2-size);
      font-weight:var(--sec-h2-weight);letter-spacing:var(--sec-h2-letter-spacing);
      line-height:var(--sec-h2-line-height);color:#28282D;
      margin-bottom:32px;
    }
    .service-opt-desc{font-size:16px;line-height:1.8;color:#3D3D42;max-width:440px}
    .service-opt-right{
      display:grid;grid-template-columns:1fr 1fr;
      border-top:none;
      background:#F7F7F7;
    }
    .service-opt-card{
      padding:48px 40px;
      border-right:1px solid #E8E8E8;
      border-bottom:1px solid #E8E8E8;
      display:flex;flex-direction:column;gap:16px;
      transition:background .25s;
    }
    .service-opt-card:nth-child(2n){border-right:none}
    .service-opt-card:nth-child(3),.service-opt-card:nth-child(4){border-bottom:none}
    .service-opt-card:hover{background:#F8F8F7}
    .service-opt-num{font-size:12px;letter-spacing:.1em;color:#B0B0B5}
    .service-opt-name{
      font-size:clamp(16px,1.8vw,22px);
      font-weight:700;letter-spacing:-.02em;color:#28282D;
      line-height:1.3;
    }
    .service-opt-link{
      margin-top:auto;font-size:12px;color:#28282D;
      letter-spacing:.04em;text-decoration:none;
      display:inline-flex;align-items:center;gap:6px;
    }
    .service-opt-link:hover{opacity:.5}
    .btn-cta-primary{
      display:inline-flex;align-items:center;justify-content:center;
      padding:0 40px;
      height:56px;
      background:#28282D;color:#fff;
      font-size:15px;font-weight:600;letter-spacing:.06em;
      text-decoration:none;
      border:2px solid #28282D;
      transition:background .2s,color .2s;
      align-self:flex-start;
      margin-top:40px;
    }
    .btn-cta-primary:hover{background:transparent;color:#28282D}

    /* AREA */
    .area-sec{}
    .area-inner{
      display:grid;grid-template-columns:1fr 1fr;
      min-height:400px;
    }
    .area-left{
      padding:80px;
      border-right:1px solid #E8E8E8;
      display:flex;flex-direction:column;justify-content:center;
    }
    .area-eyebrow{font-size:12px;letter-spacing:.15em;color:#555558;margin-bottom:24px}
    .area-h2{
      font-size:var(--sec-h2-size);
      font-weight:var(--sec-h2-weight);letter-spacing:var(--sec-h2-letter-spacing);
      line-height:var(--sec-h2-line-height);color:#28282D;
      margin-bottom:24px;
    }
    .area-desc{font-size:16px;line-height:1.8;color:#3D3D42;max-width:400px}
    .area-right{
      padding:80px;
      background:#EDEDEE;
      display:flex;flex-direction:column;justify-content:center;
    }
    .area-tags{
      display:flex;flex-wrap:wrap;gap:12px;
      margin-bottom:40px;
    }
    .area-tag{
      display:inline-flex;align-items:center;gap:8px;
      padding:10px 20px;
      border:1px solid #C0C0C0;
      font-size:16px;color:#28282D;
      letter-spacing:.02em;
      transition:background .2s,border-color .2s;
    }
    .area-tag:hover{background:#F3F4F6;border-color:#C0C0C0}
    .area-tag-main{
      background:#28282D;color:#fff;border-color:#28282D;
    }
    .area-tag-main:hover{background:#444;border-color:#444}
    .area-tag-dot{
      width:6px;height:6px;border-radius:50%;
      background:currentColor;opacity:.5;
    }
    .area-note{font-size:14px;color:#555558;line-height:1.7}
    .area-group{margin-bottom:32px}
    .area-group:last-child{margin-bottom:0}
    .area-group-label{
      font-size:12px;letter-spacing:.12em;color:#555558;
      margin-bottom:12px;display:flex;align-items:center;gap:8px;
    }
    .area-group-label::before{
      content:'';display:inline-block;
      width:8px;height:8px;border-radius:50%;
    }
    .area-group-label.easy::before{background:#28282D}
    .area-group-label.adjust::before{background:#B0B0B5}
    .area-group-label.online::before{background:#D8D8DB;border:1px solid #B0B0B5}
    .area-group .area-tags{margin-bottom:0}

    /* FAQ */
    .faq-sec{}
    .faq-head{
      padding:80px 80px 52px;
      display:flex;align-items:flex-end;justify-content:space-between;
    }
    .faq-h2{
      font-size:clamp(40px,5.5vw,72px);
      font-weight:700;letter-spacing:-.04em;color:#28282D;
    }
    .faq-list{}
    .faq-item{
      border-bottom:1px solid #E8E8E8;
      overflow:hidden;
    }
    .faq-q{
      display:flex;align-items:flex-start;gap:24px;
      padding:32px 80px;
      cursor:pointer;
      list-style:none;
      transition:background .2s;
    }
    .faq-q:hover{background:#F8F8F7}
    .faq-q-mark{
      font-size:13px;letter-spacing:.06em;color:#555558;
      font-weight:700;flex-shrink:0;margin-top:2px;
    }
    .faq-q-text{
      font-size:clamp(15px,1.6vw,18px);
      font-weight:700;color:#28282D;
      letter-spacing:-.01em;line-height:1.5;
      flex:1;
    }
    .faq-q-icon{
      flex-shrink:0;width:20px;height:20px;
      position:relative;margin-top:2px;
    }
    .faq-q-icon::before,.faq-q-icon::after{
      content:'';position:absolute;
      background:#28282D;border-radius:1px;
    }
    .faq-q-icon::before{width:20px;height:1px;top:50%;left:0;transform:translateY(-50%)}
    .faq-q-icon::after{width:1px;height:20px;top:0;left:50%;transform:translateX(-50%);transition:transform .3s,opacity .3s}
    .faq-item.open .faq-q-icon::after{transform:translateX(-50%) rotate(90deg);opacity:0}
    .faq-a{
      max-height:0;overflow:hidden;
      transition:max-height .4s cubic-bezier(.16,1,.3,1);
    }
    .faq-item.open .faq-a{max-height:300px}
    .faq-a-inner{
      display:flex;gap:24px;
      padding:0 80px 32px;
    }
    .faq-a-mark{
      font-size:13px;letter-spacing:.06em;color:#28282D;
      font-weight:700;flex-shrink:0;margin-top:2px;
    }
    .faq-a-text{
      font-size:16px;color:#3D3D42;line-height:1.8;
      letter-spacing:.01em;
    }

    /* FADE */
    .fu{opacity:0;transform:translateY(24px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}
    .fu.on{opacity:1;transform:translateY(0)}

    /* RESPONSIVE */
    @media(max-width:900px){
      .hd{padding:0 20px;height:60px}.hd-logo img{height:28px}.hd-nav{display:none}
      .hd-hamburger{display:flex}
      .hd-drawer{display:block}
      .hd-btns{display:none}
      main{padding-top:60px}
      .kv{padding:8px 24px 32px;min-height:auto;align-items:flex-start}
      .kv-eyebrow{margin-bottom:20px}
      .kv-h1{margin-bottom:16px}
      .kv-body{margin-bottom:24px}
      .kv-stats{display:flex;flex-direction:row;gap:0;margin-top:24px;max-width:100%;border-top:1px solid #E0E0E4;padding-top:20px}
      .kv-stat{flex:1;padding:0 16px;border-right:1px solid #E0E0E4;border-bottom:none;background:transparent;border-radius:0;text-align:center;display:flex;flex-direction:column;align-items:center}
      .kv-stat:first-child{padding-left:0;text-align:center;align-items:center}
      .kv-stat:last-child{border-right:none;padding-right:0;text-align:center;align-items:center}
      .kv-stat-n{font-size:clamp(28px,7vw,40px)}
      .kv-stat-l{font-size:14px;margin-top:6px}
      .kv-stat-icon{display:none}
      .sec-head{padding:80px 24px 48px;flex-direction:column;gap:24px}


      .challenge-head{padding:40px 24px 20px;grid-template-columns:1fr;gap:12px}
      .challenge-head-left{padding-right:0;border-right:none;text-align:center}
      .challenge-head-right{padding-left:0;text-align:center}
      .challenge-head-right .sec-body{font-size:16px}
      #challenge-h2-top{white-space:normal!important;font-size:var(--sec-h2-size-sp,clamp(28px,7.5vw,44px))!important}
      .challenge-overall-top{grid-template-columns:1fr;padding:48px 24px 32px;gap:32px}
      .challenge-overall-steps{grid-template-columns:1fr;border-left:none}
      .challenge-overall-step{border-right:none;border-bottom:1px solid #E8E8E8}
      .challenge-overall-bottom{grid-template-columns:1fr;padding:32px 24px;gap:24px}
      .challenge-grid{grid-template-columns:repeat(2,1fr)}
      .challenge-card--overall{grid-column:1/-1;border-right:none;grid-template-columns:1fr!important}
      .challenge-card--overall .challenge-card-left{border-right:none;border-bottom:1px solid #E0E0E4;padding:40px 24px}
      .challenge-card--overall .challenge-card-right{padding:32px 24px 40px;align-self:auto}
      .challenge-card{border-bottom:1px solid #E8E8E8}
      .challenge-card:nth-child(even){border-right:none}
      .challenge-card:nth-last-child(-n+2):not(:nth-child(even) ~ *){border-bottom:none}
      .voice-head,.works-head{padding:80px 24px 48px;flex-direction:column;gap:20px;align-items:flex-start}
      .voice-grid{grid-template-columns:1fr;gap:16px;}
      .voice-card{border:1px solid #E8E8E8;}
      .works-grid{grid-template-columns:1fr;gap:16px;}
      .work-card{border:1px solid #E8E8E8;}
      .about-inner{grid-template-columns:1fr}
      .about-text{padding:80px 24px}
      .about-visual{min-height:280px}
      .news-head{padding:60px 24px 36px;flex-direction:column;gap:20px;align-items:flex-start}
      .news-item{grid-template-columns:1fr;padding:20px 24px;gap:6px}
      .footer{padding:60px 24px 40px}
      .footer-top{flex-direction:column;gap:40px}
      .footer-nav{grid-template-columns:1fr 1fr;gap:28px}
      .footer-bottom{flex-direction:column;gap:12px;align-items:flex-start}
      .service-opt-inner{grid-template-columns:1fr}
      .service-opt-left{padding:60px 24px 40px;border-right:none;border-bottom:1px solid #E8E8E8}
      .service-opt-right{grid-template-columns:1fr}
      .service-opt-card{border-right:none;padding:32px 24px}
      .service-opt-card:nth-child(3){border-bottom:1px solid #E8E8E8}
      .service-opt-name{font-size:18px}
      .area-inner{grid-template-columns:1fr}
      .area-left{padding:60px 24px 40px;border-right:none;border-bottom:1px solid #E8E8E8}
      .area-right{padding:40px 24px 60px}
      .faq-head{padding:60px 24px 36px;flex-direction:column;gap:20px;align-items:flex-start}
      .faq-q{padding:24px}
      .faq-a-inner{padding:0 24px 24px}
      .sns-bar{flex-direction:column;align-items:flex-start;padding:40px 24px;gap:24px}
      .sns-bar-links{flex-wrap:wrap;gap:12px}
      .sns-bar-link{padding:12px 20px;font-size:12px}
    }

    /* FIXED MOBILE CTA */
    .sp-fixed-cta{
      display:none;
      position:fixed;
      bottom:0;left:0;right:0;
      background:#28282D;
      padding:12px 16px;
      padding-bottom:calc(12px + env(safe-area-inset-bottom));
      z-index:90;
      box-shadow:0 -2px 12px rgba(0,0,0,.15);
      transform:translateY(100%);
      transition:transform .3s ease,opacity .3s ease;
      opacity:0;
    }
    .sp-fixed-cta.visible{
      transform:translateY(0);
      opacity:1;
    }
    .sp-fixed-cta-inner{
      display:flex;
      align-items:center;
      gap:10px;
    }
    .sp-fixed-cta-consult{
      flex:1;
      display:flex;align-items:center;justify-content:center;
      height:48px;
      background:#fff;
      color:#28282D;
      font-size:16px;
      font-weight:600;
      text-decoration:none;
      border-radius:4px;
      letter-spacing:.02em;
    }
    .sp-fixed-cta-tel{
      display:flex;align-items:center;justify-content:center;gap:6px;
      height:48px;
      padding:0 16px;
      border:1.5px solid rgba(255,255,255,.4);
      border-radius:4px;
      color:#fff;
      text-decoration:none;
      white-space:nowrap;
    }
    .sp-fixed-cta-tel-icon{
      flex-shrink:0;
    }
    .sp-fixed-cta-tel-num{
      font-size:13px;
      font-weight:500;
      letter-spacing:.03em;
    }
    @media(min-width:769px){
      .sp-fixed-cta{display:none!important}
    }
    @media(max-width:768px){
      .sp-fixed-cta{display:block}
      body{padding-bottom:80px}
      /* [1] 課題カード：スマホで1カラム・自然な高さ・余白縮小 */
      .challenge-grid{grid-template-columns:1fr}
      .challenge-card{border-right:none;border-bottom:1px solid #E8E8E8;padding:36px 24px;min-height:auto}
      .challenge-card:last-child{border-bottom:none}
      /* [2] KVキャッチコピー：2〜3行に収まるフォントサイズ */
      .kv-h1{font-size:clamp(32px,9.5vw,56px);margin-bottom:24px;line-height:1.1}
      .kv-body{font-size:16px;margin-bottom:36px}
      /* [3] お知らせバー：タイトル途切れ解消・折り返しレイアウト */
      .notice-bar{flex-wrap:wrap}
      .notice-bar-label{order:1;padding:12px 16px;font-size:11px}
      .notice-bar-item{order:2;flex:1 1 100%;padding:10px 16px;gap:12px}
      .notice-bar-title{white-space:normal;overflow:visible;text-overflow:clip;font-size:13px}
      .notice-bar-all{order:3;border-left:none;border-top:1px solid #E8E8E8;padding:10px 16px;width:100%;text-align:right}
      /* [4] CTAセクション：フォントサイズ・ボタン縦並び */
      /* [5] challenge-split-tags: SP 2列表示 */
      .challenge-split-tags{flex-direction:row;flex-wrap:wrap}
      .challenge-split-tags .challenge-tag{width:50%;box-sizing:border-box}
      /* [6] challenge-tags-wrap: SP 2列表示維持 */
      .challenge-tags-wrap .challenge-tag{width:50%;font-size:13px;padding:10px 10px}
    }
    /* ===== CTA SECTION (UNIFIED) ===== */
    .cta-sec{
      background:#000000;
      padding:140px 80px;
    }
    .cta-wrap{max-width:860px;margin:0 auto;text-align:center;}
    .cta-eyebrow{
      font-size:11px;letter-spacing:.22em;
      color:#ffffff;
      margin-bottom:32px;display:block;
      text-transform:uppercase;font-weight:500;
      font-style:normal;
    }
    .cta-h2{
      font-size:clamp(28px,4vw,48px);
      font-weight:700;line-height:1.3;
      letter-spacing:-.03em;color:#ffffff;
      margin-bottom:20px;
      font-style:normal;
    }
    .cta-h2-main{
      display:inline-block;
      position:relative;
      padding-bottom:10px;
      font-style:normal;
    }
    .cta-h2-main::after{
      content:'';
      position:absolute;
      bottom:0;left:0;
      width:0;height:1px;
      background:#ffffff;
      transition:width 1s cubic-bezier(.4,0,.2,1) .5s;
    }
    .cta-h2.on .cta-h2-main::after{
      width:100%;
    }
    .cta-sub{
      font-size:16px;line-height:1.8;
      color:#DDDDDD;
      margin-bottom:56px;
      font-style:normal;
    }
    .cta-actions{
      display:flex;align-items:center;justify-content:center;
      gap:40px;flex-wrap:wrap;
    }
    .btn-cta{
      display:inline-flex;align-items:center;justify-content:center;
      height:60px;padding:0 52px;
      background:#ffffff;color:#000000;
      font-size:16px;font-weight:700;letter-spacing:.06em;
      border:1px solid #ffffff;
      transition:background .25s,color .25s;
      font-style:normal;
      cursor:pointer;
    }
    .btn-cta:hover{background:transparent;color:#ffffff;}
    .cta-tel-label{
      font-size:12px;letter-spacing:.1em;
      color:#ffffff;
      margin-bottom:4px;
      font-style:normal;
    }
    .cta-tel{
      font-size:24px;font-weight:400;
      letter-spacing:-.02em;color:#ffffff;
      font-style:normal;
    }
    @media(max-width:768px){
      .cta-sec{padding:100px 24px;}
      .cta-h2{font-size:clamp(24px,7vw,36px);}
      .cta-actions{flex-direction:column;gap:24px;}
      .btn-cta{width:100%;max-width:360px;}
    }
    /* ===== END CTA SECTION ===== */

  
/* ===== WALL SECTION (strategy page) ===== */
/* ===== WALL SECTION (strategy page) - 2カラム構造 ===== */
.wall-sec{
  border-top:1px solid #E8E8E8;
  background:#28282D;
}
/* 左右2カラムコンテナ */
.wall-split{
  display:grid;
  grid-template-columns:1fr 1.8fr;
  align-items:flex-start;
  min-height:480px;
  gap:0 80px;
}
/* 左：黒背景見出しエリア */
.wall-split-left{
  padding:40px 0 80px 80px;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  gap:24px;
  background:#28282D;
  position:sticky;
  top:72px;
  align-self:flex-start;
}
.wall-split-left .sec-eyebrow{
  color:#ffffff;
}
.wall-split-left .sec-eyebrow::before{
  background:rgba(255,255,255,.4);
}
.wall-split-left .sec-h2{
  color:#fff;
  font-size:clamp(28px,3.2vw,48px);
  line-height:1.25;
}
.wall-split-body{
  font-size:16px;
  color:#fff;
  line-height:1.85;
}
/* 右：カードグリッドエリア */
.wall-split-right{
  background:#F7F7F4;
  padding:0;
}
/* カードグリッド */
.wall-grid{
  display:grid;
  grid-template-columns:1fr;
  border-left:1px solid #E8E8E8;
  gap:0;
}
.wall-card{
  padding:48px 44px;
  border-right:1px solid #E8E8E8;
  border-bottom:1px solid #E8E8E8;
  display:flex;
  flex-direction:column;
  background:#fff;
  transition:background .2s;
}
.wall-card:hover{background:#F8F8F8;}
.wall-card--full{grid-column:1/-1;}
/* カード内要素 */
/* ヘッダー：01 | 戦略・全体 */
.wall-card-header{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:20px;
}
.wall-card-header-num{
  font-size:clamp(13px,1.2vw,16px);
  font-weight:400;
  color:#AAAAAA;
  letter-spacing:.08em;
  line-height:1;
}
.wall-card-header-sep{
  font-size:14px;
  color:#DDDDDD;
  font-weight:300;
  line-height:1;
}
.wall-card-header-cat{
  font-size:clamp(18px,2vw,26px);
  font-weight:700;
  color:#1a1a1a;
  letter-spacing:-.01em;
  line-height:1.3;
}
/* 旧クラス（互換性維持） */
.wall-card-num{display:none;}
.wall-card-num-n{
  font-size:14px;
  letter-spacing:.12em;
  color:#A0A0A8;
  font-weight:600;
}
.wall-card-title{
  font-size:clamp(18px,2vw,24px);
  font-weight:700;
  line-height:1.35;
  letter-spacing:-.02em;
  color:#28282D;
  margin-bottom:28px;
}
/* 01タイトル: 同サイズ・極太 */
.wall-card-title--hero{
  font-size:clamp(20px,2vw,26px);
  font-weight:900;
  letter-spacing:-.03em;
  line-height:1.35;
  color:#28282D;
  margin-bottom:28px;
}
/* 旧クラス（互換性維持） */
.wall-card-category{
  font-size:11px;
  letter-spacing:.14em;
  color:#A0A0A8;
  font-weight:600;
  margin-bottom:24px;
  text-transform:uppercase;
  display:none;
}
/* 悩み（Feeling）: 16px ノーマル */
.wall-card-feeling{
  font-size:16px;
  line-height:1.85;
  color:#000000;
  font-weight:400;
  font-style:normal;
  margin-bottom:0;
  padding-bottom:28px;
  border-bottom:1px solid #E8E8E8;
}
/* あなたの壁はこれ！：12px グレー 大文字（ラベル） */
.wall-wall-label{
  font-size:14px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:#000000;
  margin-top:32px;
  margin-bottom:10px;
  display:block;
  line-height:1.4;
}
/* 壁の解説文（Body）：16〜18px Normal #333 */
.wall-wall-body-strong{
  font-size:17px;
  font-weight:400;
  line-height:1.85;
  letter-spacing:.01em;
  color:#333333;
  margin-bottom:0;
}
.wall-wall-body{
  font-size:clamp(15px,1.4vw,17px);
  font-weight:400;
  line-height:1.9;
  letter-spacing:.01em;
  color:#555555;
  margin-bottom:32px;
}
/* 推奨施策ラベル: 14px Bold グレー */
.wall-tags-label{
  font-size:14px;
  font-weight:700;
  color:#000000;
  letter-spacing:.06em;
  text-transform:none;
  margin-top:32px;
  margin-bottom:10px;
  display:block;
}
.wall-tags-wrap{display:flex;flex-wrap:wrap;gap:8px;}
.wall-tag{
  font-size:14px;
  letter-spacing:.02em;
  color:#000000;
  background:#f0f0f0;
  padding:4px 12px;
  border-radius:4px;
  border:none;
  text-decoration:none;
  font-weight:500;
  transition:background .15s,color .15s;
  cursor:default;
  display:inline-block;
}
a.wall-tag{
  cursor:pointer;
}
a.wall-tag:hover{background:#28282D;color:#fff;}
/* レスポンシブ */
@media(max-width:1100px){
  .wall-split{grid-template-columns:1fr 1.6fr;}
  .wall-split-left{padding:64px 40px 64px 48px;}
}
@media(max-width:900px){
  .wall-split{
    grid-template-columns:1fr;
    align-items:stretch;
  }
  .wall-split-left{
    padding:64px 24px 56px;
    position:static;
  }
  .wall-split-left .sec-h2{font-size:clamp(28px,7vw,40px);}
  .wall-grid{grid-template-columns:1fr;border-left:none;}
  .wall-card--full{grid-column:1;}
  .wall-card{padding:32px 24px;}
  .wall-card-title{font-size:clamp(18px,5vw,22px);}
}
/* ===== END WALL SECTION ===== */


/* ================================================================
   SP最適化 — 全ページ共通 (@media max-width:768px 内のみ)
   PC版デザインは一切変更しない。このブロック以外は触らない。
   ================================================================ */
@media(max-width:768px){

  /* ---- ページヒーロー（下層ページ共通KV） ---- */
  .page-hero{
    padding:80px 20px 56px;
  }
  .page-hero-h1{
    font-size:clamp(28px,8vw,44px);
    white-space:normal;
    word-break:break-word;
  }
  .page-hero-stats{
    gap:24px;
    margin-top:36px;
    padding-top:28px;
  }

  /* ---- フィルターバー ---- */
  .filter-sec{
    padding:12px 16px;
    top:60px;
  }
  .filter-inner{
    gap:6px;
    overflow-x:auto;
    flex-wrap:nowrap;
    -webkit-overflow-scrolling:touch;
  }
  .filter-inner::-webkit-scrollbar{display:none}

  /* ---- パンくずSP表示切替 ---- */
  .breadcrumb{display:none}
  .breadcrumb-sp{display:block}

  /* ---- コラム詳細SPパンくず（フッター直前） ---- */
  .breadcrumb-sp-footer{
    display:block;
    background:#F5F5F3;
    padding:12px 20px;
    border-top:1px solid #E8E8E8;
  }
  .breadcrumb-sp-footer ol{
    display:flex;
    align-items:center;
    gap:6px;
    flex-wrap:wrap;
    list-style:none;
    margin:0;
    padding:0;
  }
  .breadcrumb-sp-footer li{
    font-size:12px;
    color:#767680;
    display:flex;
    align-items:center;
    gap:6px;
  }
  .breadcrumb-sp-footer li::after{
    content:'/';
    color:#C0C0C0;
  }
  .breadcrumb-sp-footer li:last-child::after{
    display:none;
  }
  .breadcrumb-sp-footer a{
    color:#767680;
  }

  /* ---- コラム詳細ページレイアウト ---- */
  .article-wrap{
    padding-top:60px;
  }
  .article-header{
    padding:32px 20px 24px;
  }
  .article-eyecatch{
    padding:0 20px;
  }
  .article-body-wrap{
    padding:32px 20px 48px;
  }
  .article-title{
    font-size:clamp(20px,5.5vw,28px);
  }
  .article-meta{
    gap:12px;
  }
  .toc-sp{
    margin-bottom:32px;
  }
  .supervisor-box{
    flex-direction:column;
    gap:16px;
    padding:20px;
    margin:40px 0 0;
  }

  /* ---- 関連バナー ---- */
  .related-banner{
    padding:32px 20px;
  }
  .related-banner-inner{
    flex-direction:column;
    gap:20px;
  }
  .related-banner-left{
    flex-direction:column;
    align-items:flex-start;
    gap:12px;
  }
  .related-banner-btn{
    width:100%;
    justify-content:center;
    padding:14px 20px;
  }

  /* ---- 関連サービス ---- */
  .related-service-sec{
    padding:40px 20px;
  }
  .related-service-btn{
    width:100%;
    justify-content:center;
  }

  /* ---- 関連記事グリッド ---- */
  .related-sec{
    padding:48px 20px;
  }
  .related-grid{
    grid-template-columns:1fr;
    gap:16px;
  }

  /* ---- 会社概要テーブル ---- */
  .overview{
    padding:56px 20px;
  }
  .overview-table th{
    width:100px;
    padding:16px 12px;
    font-size:12px;
  }
  .overview-table td{
    padding:16px 12px;
    font-size:14px;
  }

  /* ---- アクセス ---- */
  .access{
    padding:56px 20px;
  }
  .access-body{
    grid-template-columns:1fr;
    gap:32px;
  }

  /* ---- CTAセクション（下層ページ用） ---- */
  .cta-section{
    padding:48px 20px;
  }
  .cta-section-title{
    font-size:clamp(22px,6.5vw,34px);
  }
  .cta-section-sub{
    font-size:14px;
  }
  .cta-section-actions{
    flex-direction:column;
    align-items:center;
    gap:16px;
  }
  .cta-section-btn{
    width:100%;
    max-width:320px;
    justify-content:center;
  }

  /* ---- ABOUT ミッション ---- */
  .about-mission{
    padding:56px 20px;
  }

  /* ---- v2系セクション（下層ページ） ---- */
  .v2-works-sec{
    padding:56px 20px;
  }
  .v2-works-head{
    margin-bottom:32px;
  }
  .v2-works-grid{
    grid-template-columns:1fr;
  }
  .v2-works-card{
    padding:32px 20px 40px;
    border-right:none;
    border-bottom:1px solid #E0E0E0;
  }
  .v2-works-card:last-child{
    border-bottom:none;
  }

  .v2-prob-sec{
    padding:56px 20px 0;
  }
  .v2-prob-head{
    margin-bottom:32px;
  }
  .v2-prob-grid{
    grid-template-columns:1fr;
  }
  .v2-prob-card{
    padding:20px 20px;
    border-right:none;
    border-bottom:1px solid #E0E0E0;
    flex-direction:row;
    align-items:center;
    gap:16px;
  }
  .v2-prob-card:last-child{
    border-bottom:none;
  }
  .v2-prob-sum{
    padding:40px 20px;
  }

  /* ---- v2 CTA ---- */
  .v2-cta-sec{
    padding:48px 20px;
  }
  .v2-cta-box{
    padding:28px 20px;
    width:100%;
    box-sizing:border-box;
  }
  .v2-cta-btns{
    flex-direction:column;
    align-items:center;
    gap:12px;
  }
  .v2-cta-btn-web,
  .v2-cta-btn-tel{
    width:100%;
    max-width:320px;
    justify-content:center;
  }

  /* ---- ソリューションセクション ---- */
  .solution-sec{
    padding:56px 20px;
  }
  .solution-head{
    margin-bottom:32px;
  }
  .solution-head-reason{
    padding:16px;
  }
  .solution-head-reason-q{
    font-size:18px;
  }

  /* ---- ファネルセクション ---- */
  .funnel-sec{
    padding:56px 20px;
  }
  .funnel-head .sec-h2{
    font-size:clamp(28px,8vw,44px);
  }
  .funnel-layout{
    grid-template-columns:1fr;
    gap:32px;
    margin-top:40px;
  }
  .funnel-visual{
    position:static;
    padding-right:0;
  }
  .funnel-shape{
    max-width:280px;
    margin:0 auto;
  }
  .funnel-bar{
    height:56px;
  }
  .funnel-stage{
    padding:28px 20px;
  }
  .funnel-stage-num{
    font-size:clamp(40px,10vw,64px);
    top:20px;
    right:20px;
  }
  .funnel-stage-title{
    font-size:clamp(18px,5vw,24px);
  }

  /* ---- ミスセクション（WEB広告ページ等） ---- */
  .myth-sec{
    padding:56px 20px;
  }
  .myth-head{
    margin-bottom:40px;
  }
  .myth-grid{
    grid-template-columns:1fr;
    gap:2px;
  }
  .myth-card{
    padding:28px 20px;
  }
  .myth-card-num{
    font-size:36px;
  }

  /* ---- WHYセクション ---- */
  .why-sec{
    padding:56px 20px;
  }
  .why-head{
    margin-bottom:40px;
  }
  .why-grid{
    grid-template-columns:1fr;
    gap:2px;
  }
  .why-card{
    padding:28px 20px;
  }
  .why-card-num{
    font-size:36px;
  }

  /* ---- 課題解決バナー ---- */
  .problem-resolve{
    padding:40px 20px;
  }
  .problem-resolve-main{
    font-size:clamp(18px,5.5vw,26px);
  }

  /* ---- インタビューセクション ---- */
  .interview-sec{
    padding:0 20px 64px;
  }
  .interview-item{
    grid-template-columns:1fr;
    gap:32px;
    padding:40px 0;
  }
  .interview-item:nth-child(even) .interview-body{order:1;}
  .interview-item:nth-child(even) .interview-img{order:2;}
  .interview-q{
    font-size:16px;
  }

  /* ---- 戻るリンク ---- */
  .back-sec{
    padding:0 20px 48px;
  }

  /* ---- 実績一覧ページ ---- */
  .works-list-sec{
    padding:48px 20px 64px;
  }
  .works-grid{
    grid-template-columns:1fr;
  }
  .work-card{
    border-right:none;
    border-bottom:1px solid #E8E8E8;
  }
  .work-card:last-child{
    border-bottom:none;
  }

  /* ---- wall-card-header 数字サイズ ---- */
  .wall-card-header-num{
    font-size:13px;
  }
  .wall-card-header-cat{
    font-size:clamp(16px,4.5vw,22px);
  }

  /* ---- kv-h1-line2（サブタイトル行） ---- */
  .kv-h1-line2{
    font-size:clamp(20px,5.5vw,32px);
    white-space:normal;
    word-break:break-word;
  }

  /* ---- SEOバナー ---- */
  .seo-banner{
    padding:24px 20px;
  }
  .seo-banner-inner{
    flex-direction:column;
    gap:16px;
  }
  .seo-banner-btn{
    width:100%;
    justify-content:center;
  }

  /* ---- ブログセクション ---- */
  .blog-sec{
    padding:56px 20px;
  }
  .blog-grid{
    grid-template-columns:1fr;
  }
  .blog-card{
    border-right:none;
    border-bottom:1px solid #E0E0E0;
    padding:28px 20px 32px;
  }
  .blog-card:last-child{
    border-bottom:none;
  }

  /* ---- 実績カード（works-card） ---- */
  .works-card{
    border:1px solid #E0E0E0;
  }
  .works-card:last-child{
    border:1px solid #E0E0E0;
  }


  /* ---- SPドロワー 改善デザイン ---- */

  /* ドロワー全体背景 */
  .hd-drawer{
    background:#fff;
    padding-top: 0;
  }

  /* 各メニュー項目の区切り */
  .hd-drawer-item{
    border-bottom:1px solid #e8e8e8;
  }

  /* トップレベルリンク */
  .hd-drawer-link{
    font-size:15px;
    font-weight:600;
    color:#1a1a1e;
    padding:16px 20px;
    background:#fff;
  }

  /* アコーディオン矢印 */
  .hd-drawer-link::after{
    border-right:1.5px solid #1a1a1e;
    border-bottom:1.5px solid #1a1a1e;
  }

  /* サブメニュー背景 */
  .hd-drawer-sub{
    display:none;
    background:#fff;
    padding:4px 0 8px;
    border-top:1px solid #f0f0f0;
  }
  .hd-drawer-sub.open{
    display:block;
  }

  /* カテゴリー見出し：左ボーダー＋太字で階層を明示 */
  .hd-drawer-sub-label{
    display:block;
    font-size:11px;
    font-weight:700;
    color:#1a1a1e;
    letter-spacing:.1em;
    text-transform:uppercase;
    padding:16px 20px 6px 20px;
    margin-top:4px;
    border-left:3px solid #1a1a1e;
    margin-left:16px;
    margin-right:16px;
  }

  /* サブリンク：14px・インデント揃え */
  .hd-drawer-sub a{
    font-size:14px;
    font-weight:400;
    color:#444;
    padding:12px 20px 12px 36px;
    border-bottom:1px solid #f4f4f4;
  }
  .hd-drawer-sub a:last-child{
    border-bottom:none;
  }

  /* アコーディオンボタン（WEB広告等）*/
  .hd-drawer-accordion-btn{
    font-size:14px;
    color:#444;
    padding:12px 20px 12px 36px;
    border-bottom:1px solid #f4f4f4;
  }

  /* アコーディオンサブリンク */
  .hd-drawer-accordion-sub a{
    font-size:13px !important;
    padding-left:52px !important;
    color:#666 !important;
  }
  /* ================================================================
  /* sp-br: スマホのみ改行 */
  .sp-br{display:block}

     strategy ページ スマホ横はみ出し修正
     ================================================================ */
  /* wall-card-header: 数字＋カテゴリ名をスマホ適正サイズに */
  .wall-card-header-num{
    font-size:12px;
  }
  .wall-card-header-cat{
    font-size:clamp(16px,4.5vw,20px);
  }
  /* wall-wall-body: 解説文をスマホ適正サイズに・折り返し許可 */
  .wall-wall-body{
    font-size:15px;
    white-space:normal;
    word-break:break-word;
    line-height:1.9;
  }
  /* solution-sec: パディング縮小 */
  .solution-sec{
    padding:56px 20px;
  }
  /* solution-item: 2カラム→1カラム */
  .solution-item{
    grid-template-columns:1fr;
    padding:40px 0;
    gap:16px;
  }
  .solution-item-num{
    font-size:clamp(48px,12vw,72px);
    padding-top:0;
  }
  .solution-item-body{
    padding:0;
    border-left:none;
    border-top:1px solid #E8E8E8;
    padding-top:20px;
  }
  .solution-item-title{
    font-size:clamp(18px,5vw,24px);
  }
  /* authority-sec: 2カラム→1カラム */
  .authority-inner{
    grid-template-columns:1fr;
  }
  .authority-left{
    padding:56px 20px 40px;
    border-right:none;
    border-bottom:1px solid rgba(255,255,255,.1);
  }
  .authority-right{
    padding:40px 20px 56px;
  }
  .authority-stat-n{
    font-size:clamp(48px,12vw,72px);
  }
  /* ============================================================
     KV テキスト 白色・フォントサイズ 共通ルール (2026-05-09)
     黒背景KVを持つ全ページ共通：kv-h1 / kv-sub / kv-body を
     必ず #ffffff・最低14px に統一
  ============================================================ */
  .kv .kv-h1{
    color:#ffffff;
  }
  .kv .kv-sub{
    color:#ffffff;
    font-size:clamp(14px,4vw,16px);
  }
  .kv .kv-body{
    color:#ffffff;
    font-size:14px;
  }
  .kv .kv-question{
    color:rgba(255,255,255,.85);
    font-size:14px;
  }

  /* TOPページKVのみ：白背景のためテキストは黒に戻す */
  body.page-top .kv .kv-h1,
  body.page-top .kv .kv-eyebrow,
  body.page-top .kv .kv-body {
    color: #28282D !important;
  }

  /* ============================================================
     全ページ共通 スマホ横はみ出し修正 (2026-05-09)
     対象: challenge / flow / plan / case / faq / stats / problem
           sec-head / news / badge / how / sns-ads / sns-axis
           platform / targeting / v2-feat / v2-sol / v2-flow
           v2-price / voice-list / columns / area-inner
  ============================================================ */

  /* --- sec-head（共通見出し） --- */
  .sec-head{
    padding:56px 20px 40px;
    flex-direction:column;
    gap:20px;
  }

  /* --- challenge 系 --- */
  .challenge-head{
    padding:56px 20px 32px;
    flex-direction:column;
    gap:16px;
  }
  .challenge-split{
    grid-template-columns:1fr;
    min-height:auto;
  }
  .challenge-split-left{
    padding:56px 20px 48px;
    gap:16px;
  }
  .challenge-split-right{
    clip-path:none;
    padding:48px 20px 56px;
    gap:16px;
  }
  .challenge-split-voice{
    font-size:clamp(26px,7vw,40px);
  }
  .challenge-overall-top{
    grid-template-columns:1fr;
    padding:40px 20px 28px;
    gap:24px;
  }
  .challenge-overall-heading{
    min-width:0;
  }
  .challenge-overall-steps{
    grid-template-columns:1fr;
    border-left:none;
  }
  .challenge-overall-step{
    border-right:none;
    border-bottom:1px solid rgba(255,255,255,.12);
  }
  .challenge-overall-bottom{
    grid-template-columns:1fr;
    padding:28px 20px;
    gap:20px;
  }
  .challenge-card-title{
    white-space:normal;
    word-break:break-word;
    font-size:clamp(18px,5vw,26px);
  }
  .challenge-watermark{
    display:none;
  }
  .challenge-grid{
    grid-template-columns:1fr;
  }
  .challenge-card:nth-child(-n+2){
    border-bottom:none;
  }
  .challenge-card:nth-child(even){
    border-right:none;
  }
  .challenge-card{
    border-right:none;
    border-bottom:1px solid #E8E8E8;
  }

  /* --- flow 系 --- */
  .flow-sec{
    padding:56px 20px;
  }

  /* --- plan 系 --- */
  .plan-sec{
    padding:56px 20px;
  }
  .plan-grid{
    grid-template-columns:1fr;
  }

  /* --- case 系 --- */
  .case-sec{
    padding:56px 20px;
  }

  /* --- stats 系 --- */
  .stats-sec{
    padding:56px 20px;
  }

  /* --- problem 系 --- */
  .problem-sec{
    padding:56px 20px;
  }

  /* --- faq 系 --- */
  .faq-head{
    padding:56px 20px 32px;
    flex-direction:column;
    gap:16px;
    align-items:flex-start;
  }
  .faq-q{
    padding:20px 20px;
  }
  .faq-a-inner{
    padding:0 20px 24px;
  }

  /* --- news 系 --- */
  .news-head{
    padding:56px 20px 32px;
    flex-direction:column;
    gap:16px;
    align-items:flex-start;
  }
  .news-item{
    grid-template-columns:1fr;
    padding:18px 20px;
    gap:4px;
  }

  /* --- badge 系 --- */
  .badge-sec{
    padding:48px 20px;
  }

  /* --- how 系 --- */
  .how-sec{
    padding:56px 20px;
  }
  .how-step{
    grid-template-columns:1fr;
    gap:16px;
    padding:40px 0;
  }
  .how-step-num{
    font-size:clamp(48px,12vw,80px);
  }
  .how-step-body{
    padding:0;
    border-left:none;
    border-top:1px solid rgba(255,255,255,.08);
    padding-top:20px;
  }

  /* --- sns-account 系 --- */
  .sns-account-sec{
    padding:56px 20px;
  }
  .sns-account-tag{
    font-size:clamp(24px,6.5vw,36px);
  }
  .sns-graph-grid{
    grid-template-columns:1fr;
  }
  .sns-work-grid{
    grid-template-columns:1fr;
    border:none;
  }
  .sns-work-card{
    border-right:none;
    border-bottom:1px solid #E0E0E0;
    padding:24px 20px 28px;
  }
  .sns-work-card:last-child{
    border-bottom:none;
  }

  /* --- sns-ads 系 --- */
  .sns-ads-sec{
    padding:56px 20px;
  }
  .sns-ads-tag{
    font-size:clamp(24px,6.5vw,36px);
  }
  .sns-ads-graph-grid{
    grid-template-columns:1fr;
  }
  .sns-ads-work-grid{
    grid-template-columns:1fr;
    border:none;
  }
  .sns-ads-work-card{
    border-right:none;
    border-bottom:1px solid rgba(0,0,0,.1);
  }
  .sns-ads-work-card:last-child{
    border-bottom:none;
  }

  /* --- sns-axis 系 --- */
  .sns-axis-sec{
    padding:56px 20px;
  }
  .sns-axis-grid{
    grid-template-columns:1fr;
  }

  /* --- platform 系 --- */
  .platform-sec{
    padding:56px 20px;
  }
  .platform-grid{
    grid-template-columns:1fr;
    gap:1px;
  }

  /* --- targeting 系 --- */
  .targeting-sec{
    padding:56px 20px;
  }
  .targeting-grid{
    grid-template-columns:1fr;
  }

  /* --- v2-sol 系 --- */
  .v2-sol-sec{
    padding:56px 20px 40px;
  }
  .v2-sol-top{
    grid-template-columns:1fr;
    gap:32px;
    margin-bottom:40px;
  }
  .v2-svc-grid{
    grid-template-columns:1fr;
  }
  .v2-svc-card:nth-child(3){
    border-right:none;
  }
  .v2-svc-card{
    border-right:none;
    border-bottom:1px solid #E0E0E0;
  }

  /* --- v2-feat 系 --- */
  .v2-feat-sec{
    padding:56px 20px;
  }
  .v2-feat-in{
    grid-template-columns:1fr;
    gap:32px;
  }
  .v2-feat-grid{
    grid-template-columns:1fr;
  }
  .v2-feat-item{
    border-right:none;
  }
  .v2-feat-item:nth-child(3),
  .v2-feat-item:nth-child(4){
    border-bottom:1px solid #E0E0E0;
  }
  .v2-feat-item:last-child{
    border-bottom:none;
  }

  /* --- v2-flow 系 --- */
  .v2-flow-sec{
    padding:56px 20px;
  }
  .v2-flow-item{
    grid-template-columns:1fr;
    gap:16px;
    padding:40px 0;
  }
  .v2-flow-body{
    padding:0;
    border-left:none;
    border-top:1px solid #E8E8E8;
    padding-top:20px;
  }

  /* --- v2-price 系 --- */
  .v2-price-sec{
    padding:56px 20px;
  }
  .v2-price-in{
    grid-template-columns:1fr;
    gap:0;
  }
  .v2-price-l{
    padding-right:0;
    border-right:none;
    border-bottom:1px solid #E0E0E0;
    padding-bottom:40px;
    margin-bottom:40px;
  }
  .v2-price-pts{
    padding-left:0;
  }

  /* --- v2-faq 系 --- */
  .v2-faq-head{
    padding:56px 20px 32px;
    flex-direction:column;
    gap:16px;
    align-items:flex-start;
  }
  .v2-faq-q{
    padding:20px 20px;
  }
  .v2-faq-a-inner{
    padding:0 20px 24px;
  }

  /* --- v2-cases 系 --- */
  .v2-cases-sec{
    padding:56px 20px 0;
  }
  .v2-cases-list>div{
    grid-template-columns:1fr;
  }
  .v2-case-q{
    padding:32px 20px;
    border-right:none;
    border-bottom:1px solid #E0E0E0;
  }
  .v2-case-a{
    padding:32px 20px;
  }
  .v2-cases-sum{
    padding:40px 20px;
  }

  /* --- v2-cta 系 --- */
  .v2-cta-sec{
    padding:48px 20px;
  }

  /* --- voice-list 系 --- */
  .voice-list-sec{
    padding:56px 20px 80px;
  }

  /* --- columns 系 --- */
  .columns-sec{
    padding:48px 20px 80px;
  }
  .columns-grid{
    grid-template-columns:1fr;
  }

  /* --- area-inner 2カラム --- */
  .area-inner{
    grid-template-columns:1fr;
  }

  /* --- about-text --- */
  .about-text{
    padding:56px 20px;
  }

  /* --- kv-h1-line2 nowrap 解除 --- */
  .kv-h1-line2{
    white-space:normal;
    word-break:break-word;
  }

  /* --- page-header --- */
  .page-header{
    padding:100px 20px 60px;
  }
  .page-title{
    font-size:clamp(32px,8.5vw,56px);
  }
  .contact-wrap{
    padding:40px 16px 80px;
  }
  .thanks-wrap{
    padding:40px 16px 80px;
  }
  .thanks-tel-box{
    padding:24px 20px;
  }
  /* --- what-sec / what-inner / what-grid SP対応 --- */
  .what-sec{
    padding:80px 0 !important;
  }
  .what-inner{
    padding:0 16px !important;
  }
  .what-grid{
    grid-template-columns:1fr;
    gap:40px;
  }
  /* --- official-account SP対応 --- */
  .official-account-sec{
    padding:60px 0;
  }
  .official-account-inner{
    grid-template-columns:1fr;
    gap:32px;
    padding:0 16px;
  }
  .official-account-card{
    padding:24px;
  }
  /* --- note: our-note-sec / inner / stats SP対応 --- */
  .our-note-sec{
    padding:80px 0 !important;
  }
  .our-note-inner{
    padding:0 16px !important;
  }
  .our-note-stats{
    grid-template-columns:repeat(2,1fr);
  }
  .our-note-stat{
    padding:24px 16px;
  }
  /* --- note: our-note-articles 1カラム化 --- */
  .our-note-articles{
    grid-template-columns:1fr;
  }
  /* --- note: our-note-account-info 縦並び --- */
  .our-note-account-info{
    flex-direction:column;
    align-items:flex-start;
  }

  /* --- interview 系 --- */
  .interview-sec{
    padding:0 20px 80px;
  }
  .interview-item{
    grid-template-columns:1fr;
    gap:32px;
    padding:48px 0;
  }
  .interview-item:nth-child(even) .interview-body{
    order:unset;
  }
  .interview-item:nth-child(even) .interview-img{
    order:unset;
  }

  /* --- back-sec --- */
  .back-sec{
    padding:0 20px 60px;
  }

  /* --- client-info --- */
  .client-info{
    flex-direction:column;
    gap:32px;
    padding:48px 20px 60px;
  }
  .client-img{
    width:100%;
  }
  .client-meta{
    flex-direction:column;
    gap:0;
  }
  .client-meta-item{
    border-right:none;
    border-bottom:1px solid #E8E8E8;
  }
  .client-meta-item:last-child{
    border-bottom:none;
  }
  /* ============================================================
     SEOページ固有 スマホ修正 (2026-05-09)
     対象: results-gallery / result-body / sc-explain
           stats-inner / stats-head / stats-h2
           ai-banner / ai-banner-inner / ai-banner-left
           voice-head / voice-grid / voice-card
  ============================================================ */
  /* --- stats-sec --- */
  .stats-inner{
    padding:0 20px;
  }
  .stats-head{
    margin-bottom:40px;
  }
  .stats-h2{
    font-size:clamp(28px,7.5vw,44px);
  }
  /* --- results-gallery --- */
  .results-gallery{
    grid-template-columns:1fr;
    gap:24px;
  }
  .result-body{
    padding:16px 16px 0;
  }
  /* --- results-gallery-full (フルワイドグリッド) --- */
  .results-gallery-full{
    grid-template-columns:1fr;
    padding:0;
    gap:0;
  }
  .result-card-full{
    border-right:none;
    border-bottom:3px solid rgba(255,255,255,.25);
    padding-bottom:0;
  }
  .result-card-full:last-child{
    border-bottom:none;
  }
  .result-body-full{
    padding:20px 20px 28px;
  }
  .result-comment-full{
    font-size:14px;
  }
  /* --- sc-explain --- */
  .sc-explain{
    max-width:100%;
    flex-direction:column;
    gap:10px;
  }
  /* --- ai-banner --- */
  .ai-banner{
    padding:40px 20px;
  }
  .ai-banner-inner{
    flex-direction:column;
    align-items:flex-start;
    gap:24px;
  }
  .ai-banner-left{
    flex-direction:column;
    gap:16px;
  }
  .ai-banner-btn{
    width:100%;
    justify-content:center;
  }
  /* --- voice-head / voice-grid / voice-card --- */
  .voice-head{
    padding:56px 20px 32px;
    flex-direction:column;
    gap:16px;
    align-items:flex-start;
  }
  .voice-grid{
    grid-template-columns:1fr;
  }
  .voice-card{
    border-right:none;
    border-bottom:1px solid #E8E8E8;
  }
  .voice-card:last-child{
    border-bottom:none;
  }

  /* ================================================================
     MEOページ固有 スマホ修正 (2026-05-09)
  ================================================================ */
  /* --- plan-horizontal（料金プラン 2カラム）--- */
  .plan-horizontal{
    grid-template-columns:1fr;
  }
  .plan-plus{
    display:flex;
    align-items:center;
    justify-content:center;
    padding:16px 0;
    font-size:32px;
  }
  .plan-col{
    padding:40px 20px 48px;
  }
  .plan-col-price-val{
    font-size:clamp(36px,9vw,52px);
  }
  .plan-col-ja{
    font-size:clamp(20px,5.5vw,28px);
  }
  .plan-col-features li{
    font-size:15px;
  }
  /* --- case-tags-sec（業種タグ一覧） --- */
  .case-tags-sec{
    margin-bottom:32px;
  }
  .case-tag{
    font-size:14px;
    padding:8px 14px;
  }
  .case-tag.lg{
    font-size:14px;
    padding:8px 14px;
  }
  .case-tag.sm{
    font-size:14px;
    padding:8px 14px;
  }
  /* --- result-img-wrap / result-card-title --- */
  .result-img-wrap{
    aspect-ratio:16/9;
  }
  .result-card-title{
    padding:16px 16px 12px;
    font-size:15px;
  }
  .result-card-title strong{
    font-size:18px;
  }
}
/* ================================================================
   END SP最適化化
   ================================================================ */

/* ================================================================
   新ドロワーメニュー v2 — デフォルト6項目＋アコーディオン展開
   ================================================================ */

/* ドロワー本体（上部パディングをリセット：ヘッダー行で代替） */
.hd-drawer {
  padding: 0 0 80px;
  display: flex;
  flex-direction: column;
}

/* ロゴ＋閉じるボタン行 */
.hd-drawer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 20px;
  height: 60px;
  border-bottom: 1px solid #EBEBEB;
  flex-shrink: 0;
}
.hd-drawer-logo img {
  display: block;
  height: 30px;
  width: auto;
}
.hd-drawer-close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: none;
  border: none;
  cursor: pointer;
  color: #28282D;
  padding: 0;
  margin-right: -8px;
}

/* メインナビ */
.hd-drawer-nav {
  display: flex;
  flex-direction: column;
  flex: 1;
  overflow-y: auto;
}

/* 各メインアイテム（ボタン＆リンク共通） */
.hd-drawer-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 14px 24px;
  min-height: 52px;
  font-size: 15px;
  font-weight: 500;
  color: #28282D;
  text-decoration: none;
  background: none;
  border: none;
  border-bottom: 1px solid #EBEBEB;
  cursor: pointer;
  text-align: left;
  letter-spacing: .02em;
  box-sizing: border-box;
  transition: background .15s;
  font-family: inherit;
}
.hd-drawer-item:active {
  background: #F7F7F7;
}

/* ▼アイコン（アコーディオン項目のみ） */
.hd-drawer-chevron {
  flex-shrink: 0;
  color: #9B9BA0;
  transition: transform .25s ease;
}
.hd-drawer-item--accordion.open .hd-drawer-chevron {
  transform: rotate(-180deg);
}

/* サブメニュー（アコーディオン展開部分） */
.hd-drawer-sub {
  display: none;
  flex-direction: column;
  background: #F8F8F8;
  border-bottom: 1px solid #EBEBEB;
}
.hd-drawer-sub.open {
  display: flex;
}

/* グループ見出し（「戦略・全体」「集客」等） */
.hd-drawer-group-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
  color: #555558;
  padding: 7px 24px;
  margin-top: 8px;
  background: #EBEBEB;
  border-top: 1px solid #E0E0E0;
  border-bottom: 1px solid #E0E0E0;
}
.hd-drawer-group-label:first-child {
  margin-top: 0;
  border-top: none;
}

/* サブメニュー内の各リンク項目 */
.hd-drawer-link-item {
  display: flex;
  align-items: center;
  padding: 9px 24px 9px 36px;
  font-size: 14px;
  color: #28282D;
  text-decoration: none;
  border-bottom: 1px solid #EFEFEF;
  transition: background .15s, color .15s;
  line-height: 1.5;
}
.hd-drawer-link-item:last-child {
  border-bottom: none;
  padding-bottom: 12px;
}
.hd-drawer-link-item::before {
  content: "–";
  margin-right: 10px;
  color: #B8B8C0;
  font-size: 12px;
  flex-shrink: 0;
  line-height: 1;
}
.hd-drawer-link-item:active {
  background: #EFEFEF;
  color: #000;
}

/* CTAエリア */
.hd-drawer-cta {
  padding: 20px 24px 32px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  border-top: 1px solid #EBEBEB;
  flex-shrink: 0;
}
.hd-drawer-cta .hd-btn {
  display: flex;
  width: 100%;
  justify-content: center;
  height: 52px;
  font-size: 15px;
}
/* 外部リンクCTAボタン（サイカツ.R） */
.hd-drawer-cta-external {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  height: 52px;
  font-size: 13px;
  font-weight: 500;
  color: #28282D;
  background: #fff;
  border: 1.5px solid #28282D;
  text-decoration: none;
  letter-spacing: .04em;
  transition: background .2s, color .2s;
  box-sizing: border-box;
  text-align: center;
  line-height: 1.4;
  padding: 0 16px;
}
.hd-drawer-cta-external:hover {
  background: #28282D;
  color: #fff;
}
.hd-drawer-cta-external:hover svg path {
  stroke: #fff;
}
.hd-drawer-cta-external svg {
  flex-shrink: 0;
}
/* ================================================================
   END 新ドロワーメニュー v2
   ================================================================ */

/* ============================================================
   SC SLIDER — SEOページ グラフスライダー
   左2/3: グラフ画像、右1/3: 業種・施策説明
============================================================ */
.sc-slider-wrap{
  position:relative;
  overflow:hidden;
  border-top:1px solid rgba(255,255,255,.12);
}
.sc-slider{
  display:flex;
  transition:transform .45s cubic-bezier(.4,0,.2,1);
  cursor:grab;
  user-select:none;
}
.sc-slider:active{cursor:grabbing;}
.sc-slide{
  min-width:100%;
  display:grid;
  grid-template-columns:2fr 1fr;
}
.sc-slide-img{
  background:#0a0a0a;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  min-height:360px;
}
.sc-slide-img img{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  display:block;
}
.sc-slide-img--mock{
  background:rgba(255,255,255,.04);
  flex-direction:column;
  gap:16px;
  padding:40px;
  position:relative;
}
.mock-graph-lg{
  display:flex;
  align-items:flex-end;
  gap:6px;
  width:100%;
  height:200px;
  position:relative;
}
.mock-graph-lg .mock-bar{
  flex:1;
  background:linear-gradient(to top,rgba(255,255,255,.2),rgba(255,255,255,.55));
  border-radius:2px 2px 0 0;
  transition:height .6s ease;
}
.mock-graph-lg .mock-line{
  position:absolute;
  bottom:0;left:0;right:0;
  height:1px;
  background:rgba(255,255,255,.15);
}
.sc-mock-label{
  font-size:12px;
  color:rgba(255,255,255,.4);
  letter-spacing:.06em;
  margin-top:12px;
}
.sc-slide-body{
  padding:48px 40px;
  border-left:1px solid rgba(255,255,255,.12);
  display:flex;
  flex-direction:column;
  gap:20px;
  justify-content:center;
}
.sc-slide-num{
  font-size:11px;
  letter-spacing:.2em;
  color:rgba(255,255,255,.3);
  font-weight:700;
}
.sc-slide-tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.sc-slide-title{
  font-size:clamp(18px,2vw,26px);
  font-weight:700;
  line-height:1.4;
  letter-spacing:-.02em;
  color:#ffffff;
}
.sc-slide-list{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding-left:0;
  list-style:none;
}
.sc-slide-list li{
  font-size:14px;
  color:rgba(255,255,255,.75);
  line-height:1.7;
  padding-left:16px;
  position:relative;
}
.sc-slide-list li::before{
  content:'';
  position:absolute;
  left:0;top:.65em;
  width:6px;height:1px;
  background:rgba(255,255,255,.5);
}
.sc-slide-result{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding-top:16px;
  border-top:1px solid rgba(255,255,255,.12);
}
.sc-slide-result-label{
  font-size:10px;
  letter-spacing:.2em;
  color:rgba(255,255,255,.4);
  font-weight:700;
}
.sc-slide-result-val{
  font-size:15px;
  color:rgba(255,255,255,.85);
  line-height:1.6;
}
.sc-slide-result-val strong{
  color:#ffffff;
  font-weight:700;
}
.sc-slider-nav{
  display:flex;
  justify-content:center;
  gap:10px;
  padding:20px 0 28px;
}
.sc-dot{
  width:8px;height:8px;
  border-radius:50%;
  background:rgba(255,255,255,.25);
  border:none;
  cursor:pointer;
  transition:background .2s,transform .2s;
  padding:0;
}
.sc-dot.active{
  background:#ffffff;
  transform:scale(1.3);
}
@media(max-width:768px){
  .sc-slide{
    grid-template-columns:1fr;
  }
  .sc-slide-img{
    min-height:220px;
  }
  .sc-slide-body{
    padding:28px 20px 32px;
    border-left:none;
    border-top:1px solid rgba(255,255,255,.12);
    gap:14px;
  }
  .sc-slide-title{
    font-size:clamp(17px,5vw,22px);
  }
  .sc-slide-list li{
    font-size:14px;
  }
}
/* ===== END SC SLIDER ===== */
.sc-slide-desc{
  font-size:14px;
  color:#ffffff;
  line-height:1.85;
}

/* SC SLIDER — 矢印ボタン */
.sc-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:10;
  width:56px;height:56px;
  border-radius:50%;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.25);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;
  transition:background .2s,transform .2s;
  backdrop-filter:blur(4px);
}
.sc-arrow:hover{
  background:rgba(255,255,255,.25);
  transform:translateY(-50%) scale(1.08);
}
.sc-arrow--prev{left:20px;}
.sc-arrow--next{right:20px;}
@media(max-width:768px){
  .sc-arrow{
    width:44px;height:44px;
    top:auto;
    bottom:72px;
    transform:none;
  }
  .sc-arrow:hover{transform:scale(1.08);}
  .sc-arrow--prev{left:16px;bottom:72px;}
  .sc-arrow--next{right:16px;bottom:72px;}
}
/* ===== END SC ARROW ===== */

/* SC SLIDER — ナビゲーション再定義（矢印をドット左右に配置） */
.sc-slider-nav{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  padding:20px 0 28px;
}
.sc-dots{
  display:flex;
  align-items:center;
  gap:10px;
}
.sc-arrow{
  position:static;
  top:auto;
  transform:none;
  width:44px;height:44px;
  border-radius:50%;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.25);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;
  transition:background .2s,transform .2s;
  flex-shrink:0;
}
.sc-arrow:hover{
  background:rgba(255,255,255,.28);
  transform:scale(1.1);
}
.sc-arrow--prev,.sc-arrow--next{
  left:auto;right:auto;bottom:auto;
}
@media(max-width:768px){
  .sc-arrow{
    width:40px;height:40px;
    bottom:auto;
  }
  .sc-arrow--prev,.sc-arrow--next{
    left:auto;right:auto;bottom:auto;
  }
}
/* ===== END SC NAV OVERRIDE ===== */

/* stats-note */
.stats-note{
  font-size:13px;
  color:#ffffff;
  line-height:1.7;
  margin-top:8px;
}



/* ===== OWN RESULT SEC (SEO page) ===== */
.own-result-sec {
  background: #28282D;
  overflow: hidden;
}
.own-result-head {
  max-width: 1160px;
  margin: 0 auto;
  padding: 80px 0 48px;
}
.own-result-head .sec-eyebrow {
  color: #ffffff;
}
.own-result-head .sec-eyebrow::before {
  background: rgba(255,255,255,.7) !important;
}
.own-result-head .sec-h2 {
  color: #ffffff;
}
.own-result-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  max-width: 1160px;
  margin: 0 auto;
  gap: 0;
  align-items: stretch;
}
.own-result-img-col {
  overflow: hidden;
  position: relative;
  padding-bottom: 64px;
}
.own-result-img {
  width: 100%;
  height: auto;
  display: block;
}
.own-result-img-caption {
  font-size: 14px;
  color: #ffffff;
  margin-top: 10px;
  line-height: 1.6;
}
.own-result-body-col {
  padding: 72px 64px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 24px;
}
.own-result-h3 {
  font-size: clamp(20px, 2vw, 28px);
  font-weight: 800;
  line-height: 1.5;
  letter-spacing: -.02em;
  color: #ffffff;
  margin: 0;
}
.own-result-h3 em {
  font-style: normal;
  color: #ffffff;
  text-decoration: none;
}
.own-result-body {
  font-size: 15px;
  line-height: 1.9;
  color: #ffffff;
}
.own-result-body strong {
  font-weight: 700;
}
.own-result-kw-label {
  font-size: 14px;
  font-weight: 600;
  color: #ffffff;
  line-height: 1.7;
}
.own-result-kw-box {
  background: rgba(79,195,176,.1);
  border: 1px solid rgba(79,195,176,.3);
  border-radius: 6px;
  padding: 20px 24px;
}
.own-result-kw-title {
  font-size: 11px;
  font-weight: 700;
  color: #4FC3B0;
  letter-spacing: .1em;
  margin-bottom: 10px;
}
.own-result-kw-list {
  font-size: 14px;
  line-height: 2.2;
  color: #ffffff;
}
.own-result-kw-list a {
  color: #ffffff;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color .2s;
}
.own-result-kw-list a:hover { color: #4FC3B0; }

@media (max-width: 768px) {
  .own-result-head {
    padding: 56px 20px 32px 20px;
  }
  .own-result-inner {
    grid-template-columns: 1fr;
  }
  .own-result-img-col {
    min-height: 260px;
  }
  .own-result-body-col {
    padding: 40px 20px 48px;
    gap: 18px;
  }
  .own-result-h3 { font-size: 19px; }
  .own-result-body { font-size: 14px; }
  .own-result-kw-label { font-size: 14px; }
  .own-result-kw-list { font-size: 14px; }
}
/* ===== END OWN RESULT SEC ===== */

/* ===== OWN RESULT TAG (case-tagデザイン流用) ===== */
.own-result-kw-box {
  background: transparent;
  border: none;
  padding: 0;
}
.own-result-kw-title {
  font-size: 11px;
  font-weight: 700;
  color: #ffffff;
  letter-spacing: .18em;
  text-transform: uppercase;
  margin-bottom: 16px;
  display: block;
}
.own-result-kw-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 14px;
}
.own-result-tag {
  display: inline-flex;
  align-items: center;
  padding: 8px 16px;
  border: 1px solid rgba(255,255,255,.3);
  font-size: 15px;
  font-weight: 700;
  color: #ffffff;
  letter-spacing: .02em;
  text-decoration: none;
  transition: background .2s, border-color .2s, color .2s;
}
.own-result-tag:hover {
  background: rgba(255,255,255,.15);
  border-color: rgba(255,255,255,.6);
  color: #ffffff;
}
@media (max-width: 768px) {
  .own-result-tag { font-size: 14px; padding: 7px 13px; }
}
/* ===== END OWN RESULT TAG ===== */

/* ============================================================
   PAGE: /company/ - スマホ対応 (page-company.css より統合)
   ============================================================ */
@media(max-width:768px){
  .mission{padding:60px 20px;}
  .mission-inner{grid-template-columns:1fr;gap:40px;}
  .mission-body{font-size:15px;}
  .vision{padding:60px 20px;}
  .vision-statement{font-size:clamp(18px,5vw,26px);padding-left:20px;}
  .value{padding:60px 20px;}
  .value-list{grid-template-columns:1fr;border-left:none;}
  .value-item{padding:24px 0;border-right:none;}
  .representative{padding:60px 20px;}
  .representative-inner{grid-template-columns:1fr;gap:40px;}
  .rep-photo{position:static;max-width:280px;margin:0 auto;}
  .rep-photo-wrapper{padding-right:12px;padding-bottom:12px;}
  .rep-career-year{min-width:80px;font-size:12px;}
  .rep-career-text{font-size:14px;}
}

/* ============================================================
   PAGE: /voice/ - スマホ対応 (page-voice.css より統合)
   ============================================================ */
@media(max-width:900px){
  .voice-list-sec{padding:40px 16px 80px;}
  .voice-grid{grid-template-columns:1fr;gap:16px;}
  .voice-card{
    border-radius:0;
    border-left:3px solid #28282D;
    transition:box-shadow .25s,transform .25s;
  }
  .voice-card-link{display:flex;flex-direction:column;}
  .voice-card-img-wrap{height:200px;flex-shrink:0;}
  .voice-card-img{order:-1;}
  .voice-card-img-placeholder{min-height:200px;}
  .voice-card-overlay{display:none;}
  .voice-card-hover-quote{display:none;}
  .voice-card-body{padding:16px 16px 20px;}
  .voice-card-meta-top{gap:6px;margin-bottom:10px;}
  .voice-card-num{font-size:11px;}
  .voice-card-tag{font-size:11px;padding:3px 8px;}
  .voice-card-title{
    font-size:15px;
    line-height:1.65;
    margin-bottom:12px;
    letter-spacing:-.01em;
  }
  .voice-card-title-quote{
    display:block;
    font-size:14px;
    font-weight:700;
    color:#28282D;
    background:linear-gradient(transparent 60%,rgba(40,40,45,.1) 60%);
    padding:0 2px;
    margin-bottom:4px;
    line-height:1.7;
  }
  .voice-card-sp-quote{
    display:block;
    font-size:13px;
    color:#4A4A50;
    line-height:1.7;
    font-style:italic;
    padding:10px 12px;
    margin:0 0 12px;
    background:#F7F7F5;
    border-left:2px solid #BBBBC0;
    position:relative;
  }
  .voice-card-sp-quote::before{
    content:'\201C';
    font-size:20px;
    color:#BBBBC0;
    line-height:1;
    display:block;
    margin-bottom:2px;
  }
  .voice-card-info{gap:8px;}
  .voice-card-info-label{font-size:11px;}
  .voice-card-info-val{font-size:13px;}
  .voice-card-read{font-size:12px;margin-top:12px;}
  .voice-card:nth-child(1){transition-delay:0s;}
  .voice-card:nth-child(2){transition-delay:.06s;}
  .voice-card:nth-child(3){transition-delay:.12s;}
  .voice-card:nth-child(4){transition-delay:.18s;}
  .voice-card:nth-child(5){transition-delay:.24s;}
  .voice-card:nth-child(6){transition-delay:.30s;}
}
@media(max-width:480px){
  .voice-card-img-wrap{height:180px;}
  .voice-card-img-placeholder{min-height:180px;}
}

/* PAGE: /works/ - 固有スタイル (page-works.css より統合) */
.result-block{padding:56px 0;border-top:1px solid #E8E8E8;}
.result-block:first-of-type{border-top:none;padding-top:0;}
.result-block-header{margin-bottom:40px;}
.result-tag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:5px 14px;border:1px solid currentColor;margin-bottom:18px;}
.result-tag--seo{color:#00B4B4;border-color:#00B4B4;}
.result-tag--meo{color:#28282D;border-color:#28282D;}
.result-tag--ads{color:#767680;border-color:#767680;}
.result-block-title{font-size:clamp(20px,2.5vw,32px);font-weight:700;letter-spacing:-.03em;color:#28282D;margin-bottom:14px;line-height:1.3;}
.result-block-desc{font-size:14px;line-height:1.85;color:#4A4A50;max-width:680px;}
.result-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:#E8E8E8;}
.result-card{background:#fff;padding:40px 40px 36px;}
.result-card-kw{font-size:11px;letter-spacing:.12em;color:#767680;font-weight:700;text-transform:uppercase;margin-bottom:8px;}
.result-card-kw-text{font-size:14px;color:#28282D;margin-bottom:32px;line-height:1.6;font-weight:500;}
.result-card-metrics{display:flex;gap:32px;flex-wrap:wrap;margin-bottom:32px;padding-bottom:32px;border-bottom:1px solid #E8E8E8;}
.result-metric-accent{color:#00B4B4;}
.result-metric-label{font-size:12px;color:#767680;letter-spacing:.02em;}
.result-card-bar-label{font-size:11px;letter-spacing:.06em;color:#767680;margin-bottom:14px;}
.result-bar-chart{display:flex;flex-direction:column;gap:10px;}
.result-bar-row{display:flex;align-items:center;gap:12px;}
.result-bar-period{font-size:12px;color:#767680;width:56px;flex-shrink:0;}
.result-bar-track{flex:1;height:4px;background:#F0F0F0;position:relative;}
.result-bar-fill{height:100%;background:#28282D;transition:width .8s cubic-bezier(.16,1,.3,1);}
.result-bar-fill--peak{background:#00B4B4;}
.result-bar-val{font-size:12px;font-weight:700;color:#28282D;width:28px;text-align:right;flex-shrink:0;}
.result-card-dl{display:flex;flex-direction:column;gap:0;}
.result-dl-row{display:flex;gap:16px;padding:12px 0;border-bottom:1px solid #F0F0F0;}
.result-dl-row:last-child{border-bottom:none;padding-bottom:0;}
.result-dl-row dt{font-size:12px;font-weight:700;color:#767680;letter-spacing:.06em;white-space:nowrap;padding-top:2px;}
.result-dl-row dd{font-size:13px;color:#28282D;line-height:1.7;}
@media(max-width:900px){
  .page-hero-desc br{display:none;}
  .result-block{padding:40px 0;}
  .result-cards{grid-template-columns:1fr;gap:1px;}
  .result-card{padding:28px 20px 24px;}
  .result-card-metrics{gap:20px;}
  .result-metric-num{font-size:clamp(20px,6vw,28px);}
  .result-dl-row{flex-direction:column;gap:4px;}
  .result-dl-row dt{white-space:normal;}
}

/* PAGE: /strategy/ - 固有スタイル (page-strategy.css より統合) */

/* ===== KV: WEB戦略設計 ===== */
.kv-right { display: none !important; }
.kv-splash { display: none !important; }
.kv {
  min-height: auto !important;
  padding: var(--kv-padding-v, 72px) 80px !important;
}
@media (min-width: 769px) {
  .kv .kv-inner {
    grid-template-columns: 1fr !important;
    max-width: 1400px !important;
  }
  .kv .kv-h1 {
    font-size: clamp(56px, 8vw, 120px) !important;
    line-height: 1.2 !important;
    letter-spacing: -0.04em !important;
    margin-bottom: 32px !important;
  }
  .kv .kv-eyebrow {
    font-size: clamp(22px, 2.4vw, 32px) !important;
    font-weight: 700 !important;
    letter-spacing: .15em !important;
    color: rgba(255,255,255,.85) !important;
    margin-bottom: 24px !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
  }
  .kv .kv-eyebrow::before {
    content: '' !important;
    display: inline-block !important;
    width: 32px !important;
    height: 2px !important;
    background: rgba(255,255,255,.7) !important;
    flex-shrink: 0 !important;
  }
  .kv .kv-sub {
    font-size: clamp(16px, 1.6vw, 20px) !important;
    color: #ffffff !important;
    margin-bottom: 12px !important;
    font-weight: 400 !important;
  }
  .kv .kv-body {
    font-size: clamp(14px, 1.3vw, 16px) !important;
    color: rgba(255,255,255,.75) !important;
    line-height: 1.9 !important;
    margin-bottom: 40px !important;
    font-weight: 400 !important;
  }
}
@media (max-width: 768px) {
  .solution-head-reason-body { white-space: normal; }
  .kv {
    padding: var(--kv-padding-v-sp, 56px) 24px !important;
    min-height: auto !important;
  }
  .kv .kv-h1 {
    font-size: clamp(32px, 8vw, 48px) !important;
    color: #ffffff !important;
  }
  .kv .kv-eyebrow {
    color: rgba(255,255,255,.85) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: .15em !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
  }
  .kv .kv-eyebrow::before {
    content: '' !important;
    display: inline-block !important;
    width: 24px !important;
    height: 2px !important;
    background: rgba(255,255,255,.7) !important;
    flex-shrink: 0 !important;
  }
  .kv .kv-sub {
    color: #ffffff !important;
    font-size: 15px !important;
    font-weight: 400 !important;
  }
  .kv .kv-body {
    color: #ffffff !important;
    font-size: 14px !important;
    line-height: 1.9 !important;
    font-weight: 400 !important;
  }
  .kv-question {
    color: rgba(255,255,255,.65) !important;
    font-size: 14px !important;
  }
}
/* ===== KV em: 強調ワード（白・装飾なし） ===== */
.kv .kv-h1 em {
  font-style: normal !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  background: none !important;
  -webkit-background-clip: unset !important;
  background-clip: unset !important;
  font-weight: 900 !important;
  border-bottom: none !important;
  text-decoration: none !important;
  padding-bottom: 0 !important;
}
/* ===== KV question（サブキャッチ） ===== */
.kv-question {
  font-size: clamp(14px, 1.4vw, 18px) !important;
  color: rgba(255,255,255,.65) !important;
  font-weight: 400 !important;
  margin-bottom: 16px !important;
  letter-spacing: .05em !important;
}
  
/* TOPページKVのみ：page-strategyの!importantを上書き */
body.page-top .kv .kv-h1 { color: #28282D !important; }
body.page-top .kv .kv-eyebrow { color: #767680 !important; }
body.page-top .kv .kv-body { color: #4A4A50 !important; }
/* ===== strategy: case-grid SP スワイプ仕様 ===== */
@media (max-width: 767px) {
  .page-strategy .case-inner {
    padding: 0 !important;
    overflow-x: clip;
  }
  .page-strategy .case-grid {
    display: flex !important;
    flex-direction: row !important;
    overflow-x: auto !important;
    scroll-snap-type: x mandatory !important;
    -webkit-overflow-scrolling: touch !important;
    gap: 16px !important;
    padding: 0 16px 16px !important;
    grid-template-columns: unset !important;
  }
  .page-strategy .case-grid::-webkit-scrollbar {
    display: none;
  }
  .page-strategy .case-grid .case-card {
    flex: 0 0 80vw !important;
    max-width: 320px !important;
    scroll-snap-align: start !important;
  }
}
/* PAGE: /seo/ - 固有スタイル (page-seo.css より統合) */

/* ===== KV SERVICE LABEL ===== */
.kv-service-label {
  display: inline-flex;
  align-items: center;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 900;
  font-size: clamp(13px, 1.1vw, 14px);
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #fff;
  border-left: 3px solid rgba(255,255,255,.9);
  padding: 4px 0 4px 14px;
  margin-bottom: 22px;
  position: relative;
  z-index: 2;
}
/* ===== KV SPLASH: REMOVED ===== */
.kv-right { display: none !important; }
.kv-splash { display: none !important; }
/* ===== KV PADDING: 上下余白削減 ===== */
.kv {
  min-height: auto !important;
  padding: var(--kv-padding-v, 72px) 80px !important;
}
/* ===== KV INNER: full-width text layout (2-line H1) ===== */
@media (min-width: 769px) {
  .kv .kv-inner {
    grid-template-columns: 1fr !important;
    max-width: 1400px !important;
  }
  .kv .kv-h1 {
    font-size: clamp(40px, 6vw, 88px) !important;
    line-height: 1.2 !important;
    letter-spacing: -0.04em !important;
    margin-bottom: 32px !important;
  }
  /* メインラベル：「SEO対策」極太大型 */
  .kv .kv-eyebrow {
    font-size: clamp(28px, 4vw, 56px) !important;
    font-weight: 900 !important;
    letter-spacing: -0.02em !important;
    color: #ffffff !important;
    margin-bottom: 20px !important;
    gap: 20px !important;
  }
  .kv .kv-eyebrow::before {
    display: none !important;
  }
  .kv .kv-sub {
    margin-bottom: 0 !important;
  }
}
@media (max-width: 768px) {
  .kv {
    padding: var(--kv-padding-v-sp, 56px) 24px !important;
    min-height: auto !important;
  }
  .kv .kv-h1 {
    color: #ffffff !important;
  }
  .kv .kv-eyebrow {
    color: rgba(255,255,255,.85) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: .15em !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
  }
  .kv .kv-eyebrow::before {
    content: '' !important;
    display: inline-block !important;
    width: 24px !important;
    height: 2px !important;
    background: rgba(255,255,255,.7) !important;
    flex-shrink: 0 !important;
  }
  .kv .kv-sub {
    color: #ffffff !important;
    font-size: 15px !important;
    font-weight: 400 !important;
  }
  .kv .kv-body {
    color: #ffffff !important;
    font-size: 14px !important;
    line-height: 1.9 !important;
    font-weight: 400 !important;
  }
  .kv-question {
    color: rgba(255,255,255,.65) !important;
    font-size: 14px !important;
  }
}
  
/* PAGE: /meo/ - 固有スタイル (page-meo.css より統合) */

/* ===== KV SERVICE LABEL ===== */
.kv-service-label {
  display: inline-flex;
  align-items: center;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 900;
  font-size: clamp(13px, 1.1vw, 14px);
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #fff;
  border-left: 3px solid rgba(255,255,255,.9);
  padding: 4px 0 4px 14px;
  margin-bottom: 22px;
  position: relative;
  z-index: 2;
}
/* ===== KV SPLASH: REMOVED ===== */
.kv-right { display: none !important; }
.kv-splash { display: none !important; }
/* ===== KV PADDING: 上下余白削減 ===== */
.kv {
  min-height: auto !important;
  padding: var(--kv-padding-v, 72px) 80px !important;
}
/* ===== KV INNER: full-width text layout (2-line H1) ===== */
@media (min-width: 769px) {
  .kv .kv-inner {
    grid-template-columns: 1fr !important;
    max-width: 1400px !important;
  }
  .kv .kv-h1 {
    font-size: clamp(40px, 6vw, 88px) !important;
    line-height: 1.2 !important;
    letter-spacing: -0.04em !important;
    margin-bottom: 32px !important;
  }
  /* メインラベル：「MEO対策」極太大型 */
  .kv .kv-eyebrow {
    font-size: clamp(28px, 4vw, 56px) !important;
    font-weight: 900 !important;
    letter-spacing: -0.02em !important;
    color: #ffffff !important;
    margin-bottom: 20px !important;
    gap: 20px !important;
  }
  .kv .kv-eyebrow::before {
    display: none !important;
  }
  .kv .kv-sub {
    margin-bottom: 0 !important;
  }
}
@media (max-width: 768px) {
  .kv {
    padding: var(--kv-padding-v-sp, 56px) 24px !important;
    min-height: auto !important;
  }
  .kv .kv-h1 {
    color: #ffffff !important;
  }
  .kv .kv-eyebrow {
    color: rgba(255,255,255,.85) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: .15em !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
  }
  .kv .kv-eyebrow::before {
    content: '' !important;
    display: inline-block !important;
    width: 24px !important;
    height: 2px !important;
    background: rgba(255,255,255,.7) !important;
    flex-shrink: 0 !important;
  }
  .kv .kv-sub {
    color: #ffffff !important;
    font-size: 15px !important;
    font-weight: 400 !important;
  }
  .kv .kv-body {
    color: #ffffff !important;
    font-size: 14px !important;
    line-height: 1.9 !important;
    font-weight: 400 !important;
  }
  .kv-question {
    color: rgba(255,255,255,.65) !important;
    font-size: 14px !important;
  }
}
  
/* PAGE: /listing/ - 固有スタイル (page-listing.css より統合) */

/* ===== KV SERVICE LABEL ===== */
.kv-service-label {
  display: inline-flex;
  align-items: center;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 900;
  font-size: clamp(13px, 1.1vw, 14px);
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #fff;
  border-left: 3px solid rgba(255,255,255,.9);
  padding: 4px 0 4px 14px;
  margin-bottom: 22px;
  position: relative;
  z-index: 2;
}
/* ===== KV SPLASH: REMOVED ===== */
.kv-right { display: none !important; }
.kv-splash { display: none !important; }
/* ===== KV PADDING: 上下余白削減 ===== */
.kv {
  min-height: auto !important;
  padding: var(--kv-padding-v, 72px) 80px !important;
}
/* ===== KV INNER: full-width text layout (2-line H1) ===== */
@media (min-width: 769px) {
  .kv .kv-inner {
    grid-template-columns: 1fr !important;
    max-width: 1400px !important;
  }
  .kv .kv-h1 {
    font-size: clamp(40px, 6vw, 88px) !important;
    line-height: 1.2 !important;
    letter-spacing: -0.04em !important;
    margin-bottom: 32px !important;
  }
  /* メインラベル：「リスティング広告」極太大型 */
  .kv .kv-eyebrow {
    font-size: clamp(28px, 4vw, 56px) !important;
    font-weight: 900 !important;
    letter-spacing: -0.02em !important;
    color: #ffffff !important;
    margin-bottom: 20px !important;
    gap: 20px !important;
  }
  .kv .kv-eyebrow::before {
    display: none !important;
  }
  .kv .kv-sub {
    margin-bottom: 0 !important;
  }
}
@media (max-width: 768px) {
  .kv {
    padding: var(--kv-padding-v-sp, 56px) 24px !important;
    min-height: auto !important;
  }
  .kv .kv-h1 {
    color: #ffffff !important;
  }
  .kv .kv-eyebrow {
    color: rgba(255,255,255,.85) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: .15em !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
  }
  .kv .kv-eyebrow::before {
    content: '' !important;
    display: inline-block !important;
    width: 24px !important;
    height: 2px !important;
    background: rgba(255,255,255,.7) !important;
    flex-shrink: 0 !important;
  }
  .kv .kv-sub {
    color: #ffffff !important;
    font-size: 15px !important;
    font-weight: 400 !important;
  }
  .kv .kv-body {
    color: #ffffff !important;
    font-size: 14px !important;
    line-height: 1.9 !important;
    font-weight: 400 !important;
  }
  .kv-question {
    color: rgba(255,255,255,.65) !important;
    font-size: 14px !important;
  }
}
/* ===== TARGETING-CARD: 角丸なし・黒テキスト・黒アイコン ===== */
.targeting-card {
  border-radius: 0 !important;
}
.targeting-card.is-geo {
  border-color: #E8E8E8 !important;
  background: #fff !important;
}
.targeting-card-num {
  color: #28282D !important;
}
.targeting-card-icon {
  background: rgba(0,0,0,.06) !important;
  border-radius: 0 !important;
}
.targeting-card-icon svg {
  stroke: #28282D !important;
}
.targeting-card-tag {
  color: #28282D !important;
  background: #EBEBEB !important;
  border-radius: 0 !important;
}
.targeting-card.is-geo .targeting-card-tag {
  color: #28282D !important;
  background: #EBEBEB !important;
}
.targeting-card:hover {
  box-shadow: none !important;
  transform: none !important;
}
  
/* PAGE: /display/ - 固有スタイル (page-display.css より統合) */

/* ===== KV SERVICE LABEL ===== */
.kv-service-label {
  display: inline-flex;
  align-items: center;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 900;
  font-size: clamp(13px, 1.1vw, 14px);
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #fff;
  border-left: 3px solid rgba(255,255,255,.9);
  padding: 4px 0 4px 14px;
  margin-bottom: 22px;
  position: relative;
  z-index: 2;
}
/* ===== KV SPLASH: REMOVED ===== */
.kv-right { display: none !important; }
.kv-splash { display: none !important; }
/* ===== KV PADDING: 上下余白削減 ===== */
.kv {
  min-height: auto !important;
  padding: var(--kv-padding-v, 72px) 80px !important;
}
/* ===== KV INNER: full-width text layout (2-line H1) ===== */
@media (min-width: 769px) {
  .kv .kv-inner {
    grid-template-columns: 1fr !important;
    max-width: 1400px !important;
  }
  .kv .kv-h1 {
    font-size: clamp(40px, 6vw, 88px) !important;
    line-height: 1.2 !important;
    letter-spacing: -0.04em !important;
    margin-bottom: 32px !important;
  }
  /* メインラベル：「ディスプレイ広告」極太大型 */
  .kv .kv-eyebrow {
    font-size: clamp(28px, 4vw, 56px) !important;
    font-weight: 900 !important;
    letter-spacing: -0.02em !important;
    color: #ffffff !important;
    margin-bottom: 20px !important;
    gap: 20px !important;
  }
  .kv .kv-eyebrow::before {
    display: none !important;
  }
  .kv .kv-sub {
    margin-bottom: 0 !important;
  }
}
@media (max-width: 768px) {
  .kv {
    padding: var(--kv-padding-v-sp, 56px) 24px !important;
    min-height: auto !important;
  }
  .kv .kv-h1 {
    color: #ffffff !important;
  }
  .kv .kv-eyebrow {
    color: rgba(255,255,255,.85) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: .15em !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
  }
  .kv .kv-eyebrow::before {
    content: '' !important;
    display: inline-block !important;
    width: 24px !important;
    height: 2px !important;
    background: rgba(255,255,255,.7) !important;
    flex-shrink: 0 !important;
  }
  .kv .kv-sub {
    color: #ffffff !important;
    font-size: 15px !important;
    font-weight: 400 !important;
  }
  .kv .kv-body {
    color: #ffffff !important;
    font-size: 14px !important;
    line-height: 1.9 !important;
    font-weight: 400 !important;
  }
  .kv-question {
    color: rgba(255,255,255,.65) !important;
    font-size: 14px !important;
  }
}
/* ===== RESULTS-SEC: 白背景なので見出しを黒文字に強制 ===== */
.results-sec .results-h2 {
  color: #28282D !important;
}
/* ===== TARGETING-CARD: 角丸なし・黒テキスト・黒アイコン ===== */
.targeting-card {
  border-radius: 0 !important;
}
.targeting-card.is-geo {
  border-color: #E8E8E8 !important;
  background: #fff !important;
}
.targeting-card-num {
  color: #28282D !important;
}
.targeting-card-icon {
  background: rgba(0,0,0,.06) !important;
  border-radius: 0 !important;
}
.targeting-card-icon svg {
  stroke: #28282D !important;
}
.targeting-card-tag {
  color: #28282D !important;
  background: #EBEBEB !important;
  border-radius: 0 !important;
}
.targeting-card.is-geo .targeting-card-tag {
  color: #28282D !important;
  background: #EBEBEB !important;
}
.targeting-card:hover {
  box-shadow: none !important;
  transform: none !important;
}
/* ===== RESULT-CARD: 数字・テキストを黒色に、下余白削減 ===== */
.result-metric-num {
  color: #28282D !important;
}
.result-metric-unit {
  color: #28282D !important;
}
.result-card {
  padding: 32px 40px 32px !important;
}
.result-chart-wrap {
  margin-top: 16px !important;
  height: 120px !important;
}
  
/* PAGE: /ai-seo/ - 固有スタイル (page-ai-seo.css より統合) */

/* ===== KV SPLASH: REMOVED ===== */
.kv-right { display: none !important; }
.kv-splash { display: none !important; }
/* ===== KV ACTIONS: 非表示 ===== */
.kv-actions { display: none !important; }
/* ===== KV PADDING: 上下余白削減 ===== */
.kv {
  min-height: auto !important;
  padding: var(--kv-padding-v, 72px) 80px !important;
}
/* ===== KV INNER: full-width text layout ===== */
@media (min-width: 769px) {
  .kv .kv-inner {
    grid-template-columns: 1fr !important;
    max-width: 1400px !important;
  }
  .kv .kv-h1 {
    font-size: clamp(40px, 6vw, 88px) !important;
    line-height: 1.2 !important;
    letter-spacing: -0.04em !important;
    margin-bottom: 32px !important;
  }
  .kv .kv-eyebrow {
    font-size: clamp(28px, 4vw, 56px) !important;
    font-weight: 900 !important;
    letter-spacing: -0.02em !important;
    color: #ffffff !important;
    margin-bottom: 20px !important;
    gap: 20px !important;
  }
  .kv .kv-eyebrow::before {
    display: none !important;
  }
  .kv .kv-sub {
    margin-bottom: 0 !important;
  }
}
@media (max-width: 768px) {
  .kv {
    padding: var(--kv-padding-v-sp, 56px) 24px !important;
    min-height: auto !important;
  }
  .kv .kv-h1 {
    color: #ffffff !important;
  }
  .kv .kv-eyebrow {
    color: rgba(255,255,255,.85) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: .15em !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
  }
  .kv .kv-eyebrow::before {
    content: '' !important;
    display: inline-block !important;
    width: 24px !important;
    height: 2px !important;
    background: rgba(255,255,255,.7) !important;
    flex-shrink: 0 !important;
  }
  .kv .kv-sub {
    color: #ffffff !important;
    font-size: 15px !important;
    font-weight: 400 !important;
  }
  .kv .kv-body {
    color: #ffffff !important;
    font-size: 14px !important;
    line-height: 1.9 !important;
    font-weight: 400 !important;
  }
  .kv-question {
    color: rgba(255,255,255,.65) !important;
    font-size: 14px !important;
  }
}
/* ===== SECTION INNER: 余白統一 ===== */
.what-inner,
.problem-inner,
.how-inner,
.plan-inner,
.faq-head,
.faq-list,
.challenge-head,
.challenge-grid,
.area-inner,
.blog-inner {
  padding-left: 80px !important;
  padding-right: 80px !important;
  box-sizing: border-box !important;
}
/* ===== SECTION INNER: max-widthを解除してFAQと左端を揃える ===== */
.what-inner,
.problem-inner,
.how-inner,
.plan-inner {
  max-width: none !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
@media (max-width: 768px) {
  .what-inner,
  .problem-inner,
  .how-inner,
  .plan-inner,
  .faq-head,
  .faq-list,
  .challenge-head,
  .area-inner,
  .blog-inner {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
  /* challenge-gridはSPで縦積み・横幅いっぱいのためpadding不要 */
  .challenge-grid {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}
/* ===== FONT SIZE: 最低14px保証 ===== */
body {
  font-size: 14px;
}
/* ===== WHAT-AXIS: 守り×攻め 2軸カード ===== */
.what-axis-wrap {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-top: 32px;
  flex-wrap: wrap;
}
.what-axis-card {
  flex: 1;
  min-width: 180px;
  background: #f8f8f8;
  border: 1.5px solid #e0e0e0;
  border-radius: 4px;
  padding: 20px 20px 18px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.what-axis-icon {
  font-size: 22px;
  line-height: 1;
}
.what-axis-label {
  font-size: 15px;
  font-weight: 900;
  color: #000000;
  letter-spacing: .02em;
}
.what-axis-desc {
  font-size: 13px;
  line-height: 1.7;
  color: #444444;
  margin: 0;
}
.what-axis-divider {
  font-size: 22px;
  font-weight: 900;
  color: #999999;
  flex-shrink: 0;
}
/* ===== HOW-AXIS: problem-cardデザイン横並び ===== */
.how-axis-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border: 1px solid #e0e0e0;
  background: #fff;
  margin-top: 24px;
  margin-bottom: 48px;
}
.how-axis-item {
  padding: 40px 32px 48px;
  border-right: 1px solid #e0e0e0;
}
.how-axis-item:last-child {
  border-right: none;
}
.how-axis-num {
  display: block;
  font-size: 11px;
  letter-spacing: .18em;
  color: #c0c0c5;
  font-weight: 700;
  margin-bottom: 20px;
}
.how-axis-title {
  font-size: clamp(18px, 2vw, 26px);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -.03em;
  color: #28282d;
  margin-bottom: 12px;
}
.how-axis-desc {
  font-size: 15px;
  line-height: 1.8;
  color: #767680;
  margin: 0;
}
@media (max-width: 768px) {
  .what-axis-wrap {
    flex-direction: column;
    gap: 12px;
  }
  .what-axis-divider {
    transform: rotate(90deg);
  }
  .what-axis-card {
    width: 100%;
  }
  .how-axis-list {
    grid-template-columns: 1fr;
  }
  .how-axis-item {
    padding: 24px 20px;
    border-right: none;
    border-bottom: 1px solid #e0e0e0;
  }
  .how-axis-item:last-child {
    border-bottom: none;
  }
}
  /* ---- problem-evidence ---- */
  .problem-evidence {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
    padding: 48px 80px 64px;
  }
  .problem-evidence-item {
    display: flex;
    flex-direction: column;
  }
  .problem-evidence-label {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #666;
    margin-bottom: 12px;
  }
  .problem-evidence-item img {
    width: 100%;
    border: 1px solid #e5e5e5;
    border-radius: 8px;
  }
  @media (max-width: 767px) {
    .problem-evidence {
      grid-template-columns: 1fr;
      padding: 32px 20px 48px;
      gap: 24px;
    }
  }
  /* ---- problem-evidence-catch ---- */
  .problem-evidence-catch {
    font-size: var(--sec-h2-size, clamp(36px, 4.2vw, 60px));
    font-weight: 900;
    letter-spacing: -.04em;
    color: #28282d;
    text-align: center;
    padding: 100px 80px;
    margin: 0;
    line-height: 1.3;
  }
  @media (max-width: 767px) {
    .problem-evidence-catch {
      padding: 56px 20px;
      font-size: var(--sec-h2-size-sp, clamp(28px, 7.5vw, 44px));
      white-space: normal;
    }
  }
  /* ---- how-catch ---- */
  .how-catch {
    font-size: clamp(28px, 3.5vw, 48px);
    font-weight: 700;
    letter-spacing: -.03em;
    color: #fff;
    text-align: center;
    margin: 80px 0 0;
    line-height: 1.3;
  }
  @media (max-width: 767px) {
    .how-catch {
      font-size: clamp(22px, 6vw, 36px);
      margin: 56px 0 0;
    }
  }
  /* ---- how-sec padding-bottom上書き ---- */
  .how-sec { padding-bottom: 20px !important; }
  /* ---- how-step-num: 白に上書き ---- */
  .how-step-num { color: #fff !important; }
  /* ---- related-two ---- */
  .related-two-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    max-width: 1100px;
    margin: 0 auto;
  }
  .related-two-card {
    display: block;
    border: 1px solid rgba(255,255,255,.18);
    padding: 32px;
    text-decoration: none;
    transition: background .2s, border-color .2s;
  }
  .related-two-card:hover {
    background: rgba(255,255,255,.06);
    border-color: rgba(255,255,255,.4);
  }
  .related-two-icon {
    width: 40px;
    height: 40px;
    margin-bottom: 16px;
  }
  .related-two-icon svg {
    width: 40px;
    height: 40px;
    stroke: rgba(255,255,255,.7);
  }
  .related-two-title {
    font-size: clamp(22px, 2.4vw, 32px);
    font-weight: 900;
    color: #ffffff;
    line-height: 1.4;
    margin-bottom: 10px;
  }
  .related-two-sub {
    font-size: 16px;
    color: #ffffff;
    line-height: 1.7;
    margin-bottom: 20px;
  }
  .related-two-btn {
    display: inline-block;
    font-size: 13px;
    font-weight: 700;
    color: #ffffff;
    border-bottom: 1px solid rgba(255,255,255,.4);
    padding-bottom: 2px;
    letter-spacing: .04em;
  }
  @media (max-width: 767px) {
    .related-two { padding: 32px 20px !important; }
    .related-two-grid { grid-template-columns: 1fr; gap: 16px; }
  }
  
/* PAGE: /ai-automation/ - 固有スタイル (page-ai-automation.css より統合) */

/* ===== KV: ai-seo準拠 ===== */
.kv-right { display: none !important; }
.kv-splash { display: none !important; }
.kv-actions { display: none !important; }
.kv {
  min-height: auto !important;
  padding: var(--kv-padding-v, 72px) 80px !important;
}
@media (min-width: 769px) {
  .kv .kv-inner {
    grid-template-columns: 1fr !important;
    max-width: 1400px !important;
  }
  .kv .kv-h1 {
    font-size: clamp(40px, 6vw, 88px) !important;
    line-height: 1.2 !important;
    letter-spacing: -0.04em !important;
    margin-bottom: 32px !important;
  }
  .kv .kv-eyebrow {
    font-size: clamp(28px, 4vw, 56px) !important;
    font-weight: 900 !important;
    letter-spacing: -0.02em !important;
    color: #ffffff !important;
    margin-bottom: 20px !important;
    gap: 20px !important;
  }
  .kv .kv-eyebrow::before {
    display: none !important;
  }
  .kv .kv-sub {
    margin-bottom: 0 !important;
  }
}
@media (max-width: 768px) {
  .kv {
    padding: var(--kv-padding-v-sp, 56px) 24px !important;
    min-height: auto !important;
  }
  .kv .kv-h1 {
    color: #ffffff !important;
  }
  .kv .kv-eyebrow {
    color: rgba(255,255,255,.85) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: .15em !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
  }
  .kv .kv-eyebrow::before {
    content: '' !important;
    display: inline-block !important;
    width: 24px !important;
    height: 2px !important;
    background: rgba(255,255,255,.7) !important;
    flex-shrink: 0 !important;
  }
  .kv .kv-sub {
    color: #ffffff !important;
    font-size: 15px !important;
    font-weight: 400 !important;
  }
  .kv .kv-body {
    color: #ffffff !important;
    font-size: 14px !important;
    line-height: 1.9 !important;
    font-weight: 400 !important;
  }
  .kv-question {
    color: rgba(255,255,255,.65) !important;
    font-size: 14px !important;
  }
}
/* ===== FONT SIZE: 最低14px保証 ===== */
body {
  font-size: 14px;
}
/* ===== SECTION: 左右paddingをセクションレベルから削除しinnerで管理 ===== */
.v2-works-sec,
.v2-prob-sec,
.v2-sol-sec,
.v2-feat-sec,
.v2-cases-sec,
.v2-flow-sec,
.v2-price-sec {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
/* ===== SECTION INNER: 余白統一 ===== */
.v2-works-inner,
.v2-prob-inner,
.v2-sol-inner,
.v2-feat-inner,
.v2-cases-inner,
.v2-flow-inner,
.v2-price-inner,
.faq-head,
.faq-list,
.blog-inner {
  max-width: none !important;
  padding-left: 80px !important;
  padding-right: 80px !important;
  box-sizing: border-box !important;
}
@media (max-width: 768px) {
  .v2-works-inner,
  .v2-prob-inner,
  .v2-sol-inner,
  .v2-feat-inner,
  .v2-cases-inner,
  .v2-flow-inner,
  .v2-price-inner,
  .faq-head,
  .faq-list,
  .blog-inner {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

}
/* ===== V2-FEAT-TTL: v2-svc-nameと同じフォントサイズ ===== */
.v2-feat-ttl {
  font-size: clamp(20px, 2.4vw, 30px) !important;
  line-height: 1.25 !important;
  letter-spacing: -.03em !important;
}
/* ===== V2-FEAT-IN FULL: 左寄せ1列レイアウト ===== */
.v2-feat-in--full {
  display: block !important;
}
.v2-feat-in--full .v2-feat-r {
  width: 100%;
}
/* ===== V2-SVC-NAME: v2-prob-txtと同じフォントサイズ ===== */
.v2-svc-name {
  font-size: clamp(20px, 2.4vw, 30px) !important;
  line-height: 1.25 !important;
  letter-spacing: -.03em !important;
}
/* ===== V2-PROB-TXT: problem-titleと同じフォントサイズ ===== */
.v2-prob-txt {
  font-size: clamp(20px, 2.4vw, 30px) !important;
  line-height: 1.25 !important;
  letter-spacing: -.03em !important;
}
/* ===== V2-SOL-EYEBROW ===== */
..v2-sol-eyebrow{display:block;margin-bottom:16px;}
    .v2-price-h3{font-size:clamp(36px,4.2vw,60px)!important;}: 16px;
}
/* ===== V2-SOL-SUB-HEAD: 「この様なことをご支援できます。」見出し ===== */
.v2-sol-sub-desc {
  display: block;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0;
  color: #4A4A50;
  line-height: 1.85;
  margin-top: 12px;
}
.v2-sol-sub-head {
  font-size: var(--sec-h2-size, clamp(36px, 4.2vw, 60px));
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: -.04em;
  color: #28282D;
  margin: 64px 0 48px;
}
@media (max-width: 768px) {
  .v2-sol-sub-head {
    font-size: var(--sec-h2-size-sp, clamp(28px, 7.5vw, 44px));
    margin: 40px 0 32px;
  }
}
/* ===== V2-PROB-SUM: sec-h2と同じフォントサイズ ===== */
.v2-prob-sum p {
  font-size: var(--sec-h2-size, clamp(36px, 4.2vw, 60px)) !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
  letter-spacing: -.04em !important;
}
@media (max-width: 768px) {
  .v2-prob-sum p {
    font-size: var(--sec-h2-size-sp, clamp(28px, 7.5vw, 44px)) !important;
  }
}
/* ===== RELATED-TWO: 2列カード ===== */
.related-two-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  max-width: 1100px;
  margin: 0 auto;
}
.related-two-card {
  display: block;
  border: 1px solid rgba(255,255,255,.18);
  padding: 32px;
  text-decoration: none;
  transition: background .2s, border-color .2s;
}
.related-two-card:hover {
  background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.4);
}
.related-two-icon {
  width: 40px;
  height: 40px;
  margin-bottom: 16px;
}
.related-two-icon svg {
  width: 40px;
  height: 40px;
  stroke: rgba(255,255,255,.7);
}
.related-two-title {
  font-size: clamp(22px, 2.4vw, 32px);
  font-weight: 900;
  color: #ffffff;
  line-height: 1.4;
  margin-bottom: 10px;
}
.related-two-sub {
  font-size: 16px;
  color: #ffffff;
  line-height: 1.7;
  margin-bottom: 20px;
}
.related-two-btn {
  display: inline-block;
  font-size: 13px;
  font-weight: 700;
  color: #ffffff;
  border-bottom: 1px solid rgba(255,255,255,.4);
  padding-bottom: 2px;
  letter-spacing: .04em;
}
@media (max-width: 767px) {
  .related-two { padding: 32px 20px !important; }
  .related-two-grid { grid-template-columns: 1fr; gap: 16px; }
  .related-two-card { flex-direction: column !important; align-items: flex-start !important; gap: 20px !important; padding: 24px 20px !important; }
  .related-two-card > div:first-child { flex-direction: column !important; align-items: flex-start !important; }
  .related-two-btn { flex-shrink: unset !important; }
}
  
/* PAGE: /webdesign/ - 固有スタイル (page-website.css より統合) */

/* ===== KV SERVICE LABEL ===== */
.kv-service-label {
  display: inline-flex;
  align-items: center;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 900;
  font-size: clamp(13px, 1.1vw, 14px);
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #fff;
  border-left: 3px solid rgba(255,255,255,.9);
  padding: 4px 0 4px 14px;
  margin-bottom: 22px;
  position: relative;
  z-index: 2;
}
/* ===== KV SPLASH: REMOVED ===== */
.kv-right { display: none !important; }
.kv-splash { display: none !important; }
/* ===== KV PADDING: 上下余白削減 ===== */
.kv {
  min-height: auto !important;
  padding: var(--kv-padding-v, 72px) 80px !important;
}
/* ===== KV INNER: full-width text layout (2-line H1) ===== */
@media (min-width: 769px) {
  .kv .kv-inner {
    grid-template-columns: 1fr !important;
    max-width: 1400px !important;
  }
  .kv .kv-h1 {
    font-size: clamp(40px, 6vw, 88px) !important;
    line-height: 1.2 !important;
    letter-spacing: -0.04em !important;
    margin-bottom: 32px !important;
  }
  /* メインラベル：「ホームページ制作」極太大型 */
  .kv .kv-eyebrow {
    font-size: clamp(28px, 4vw, 56px) !important;
    font-weight: 900 !important;
    letter-spacing: -0.02em !important;
    color: #ffffff !important;
    margin-bottom: 20px !important;
    gap: 20px !important;
  }
  .kv .kv-eyebrow::before {
    display: none !important;
  }
  .kv .kv-sub {
    margin-bottom: 0 !important;
  }
}
@media (max-width: 768px) {
  .kv {
    padding: var(--kv-padding-v-sp, 56px) 24px !important;
    min-height: auto !important;
  }
  .kv .kv-h1 {
    color: #ffffff !important;
  }
  .kv .kv-eyebrow {
    color: rgba(255,255,255,.85) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: .15em !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
  }
  .kv .kv-eyebrow::before {
    content: '' !important;
    display: inline-block !important;
    width: 24px !important;
    height: 2px !important;
    background: rgba(255,255,255,.7) !important;
    flex-shrink: 0 !important;
  }
  .kv .kv-sub {
    color: #ffffff !important;
    font-size: 15px !important;
    font-weight: 400 !important;
  }
  .kv .kv-body {
    color: #ffffff !important;
    font-size: 14px !important;
    line-height: 1.9 !important;
    font-weight: 400 !important;
  }
  .kv-question {
    color: rgba(255,255,255,.65) !important;
    font-size: 14px !important;
  }
}
/* ===== CTA BODY WIDTH ===== */
.cta .cta-body {
  max-width: 600px !important;
}
/* ===== WHY-WORKS-SLIDER ===== */
.why-works-slider {
  grid-column: 2 / 4;
  background: #F0F0EE;
  overflow: hidden;
  position: relative;
  min-height: 260px;
}
.why-works-slider .swiper {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
}
.why-works-slide {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  height: 100%;
  position: relative;
  overflow: hidden;
}
.why-works-slide-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  position: absolute;
  top: 0; left: 0;
  background: #D8D8D6;
}
.why-works-slide-placeholder {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0; left: 0;
  background: linear-gradient(135deg, #E0E0DE 0%, #C8C8C6 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 8px;
}
.why-works-slide-placeholder-icon {
  width: 40px;
  height: 40px;
  opacity: .25;
}
.why-works-slide-label {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 12px 16px;
  background: rgba(0,0,0,.45);
  backdrop-filter: blur(4px);
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .02em;
  line-height: 1.4;
}
.why-works-slide-label small {
  display: block;
  font-size: 11px;
  font-weight: 400;
  opacity: .75;
  letter-spacing: .08em;
  margin-bottom: 2px;
}
.why-works-slider .swiper-pagination {
  bottom: 12px;
}
.why-works-slider .swiper-pagination-bullet {
  background: rgba(255,255,255,.6);
  opacity: 1;
}
.why-works-slider .swiper-pagination-bullet-active {
  background: #fff;
}
@media (max-width: 768px) {
  .why-works-slider {
    grid-column: 1 / -1;
    min-height: 220px;
  }
}
/* ===== WHY-SEC: 見出し・本文 左寄せ ===== */
.why-head {
  text-align: left !important;
}
/* ===== WHY-SEC: 白黒反転 ===== */
.why-sec {
  background: #fff !important;
}
.why-head .sec-eyebrow {
  color: #767680 !important;
}
.why-head .sec-h2 {
  color: #1A1A1A !important;
}
.why-head .sec-body {
  color: rgba(0,0,0,.6) !important;
}
.why-grid {
  background: #e5e5e5 !important;
}
.why-card {
  background: #fff !important;
}
.why-card:hover {
  background: #F8F8F7 !important;
}
.why-card-num {
  font-size: clamp(80px, 10vw, 140px) !important;
  font-weight: 800 !important;
  letter-spacing: -0.05em !important;
  color: rgba(40,40,45,.07) !important;
  line-height: 1 !important;
  margin-bottom: 20px !important;
}
.why-card-title {
  font-size: clamp(20px, 2.4vw, 30px) !important;
  font-weight: 700 !important;
  letter-spacing: -0.03em !important;
  line-height: 1.25 !important;
  color: #1A1A1A !important;
}
.why-card-title em {
  color: #E02020 !important;
}
.why-card-desc {
  color: rgba(0,0,0,.6) !important;
}
  /* CTA button: デフォルト透明・白文字、ホバー時白背景・黒文字 */
  .cta-btn-primary{
    background:transparent;
    color:#fff;
    border:1px solid #fff;
  }
  .cta-btn-primary:hover{
    background:#fff;
    color:#28282D;
  }
/* ===== 見出し左端位置をworks-head/voice-headに統一（左端80px） ===== */
/* why-sec: padding 40px → 0 に変更し、innerに80pxを持たせる */
.why-sec {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.why-inner {
  max-width: none !important;
  margin: 0 !important;
  padding-left: 80px !important;
  padding-right: 80px !important;
}
/* plan-sec: innerに80pxを持たせる */
.plan-sec {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.plan-inner {
  max-width: none !important;
  margin: 0 !important;
  padding-left: 80px !important;
  padding-right: 80px !important;
}
/* SP: 20px に統一 */
@media (max-width: 767px) {
  .why-inner {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
  .plan-inner {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
}
  
/* PAGE: /meo/ - 固有スタイル (page-meo.css より統合) */

/* ===== KV SERVICE LABEL ===== */
.kv-service-label {
  display: inline-flex;
  align-items: center;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 900;
  font-size: clamp(13px, 1.1vw, 14px);
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #fff;
  border-left: 3px solid rgba(255,255,255,.9);
  padding: 4px 0 4px 14px;
  margin-bottom: 22px;
  position: relative;
  z-index: 2;
}
/* ===== KV SPLASH: REMOVED ===== */
.kv-right { display: none !important; }
.kv-splash { display: none !important; }
/* ===== KV PADDING: 上下余白削減 ===== */
.kv {
  min-height: auto !important;
  padding: var(--kv-padding-v, 72px) 80px !important;
}
/* ===== KV INNER: full-width text layout (2-line H1) ===== */
@media (min-width: 769px) {
  .kv .kv-inner {
    grid-template-columns: 1fr !important;
    max-width: 1400px !important;
  }
  .kv .kv-h1 {
    font-size: clamp(40px, 6vw, 88px) !important;
    line-height: 1.2 !important;
    letter-spacing: -0.04em !important;
    margin-bottom: 32px !important;
  }
  /* メインラベル：「MEO対策」極太大型 */
  .kv .kv-eyebrow {
    font-size: clamp(28px, 4vw, 56px) !important;
    font-weight: 900 !important;
    letter-spacing: -0.02em !important;
    color: #ffffff !important;
    margin-bottom: 20px !important;
    gap: 20px !important;
  }
  .kv .kv-eyebrow::before {
    display: none !important;
  }
  .kv .kv-sub {
    margin-bottom: 0 !important;
  }
}
@media (max-width: 768px) {
  .kv {
    padding: var(--kv-padding-v-sp, 56px) 24px !important;
    min-height: auto !important;
  }
  .kv .kv-h1 {
    color: #ffffff !important;
  }
  .kv .kv-eyebrow {
    color: rgba(255,255,255,.85) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: .15em !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
  }
  .kv .kv-eyebrow::before {
    content: '' !important;
    display: inline-block !important;
    width: 24px !important;
    height: 2px !important;
    background: rgba(255,255,255,.7) !important;
    flex-shrink: 0 !important;
  }
  .kv .kv-sub {
    color: #ffffff !important;
    font-size: 15px !important;
    font-weight: 400 !important;
  }
  .kv .kv-body {
    color: #ffffff !important;
    font-size: 14px !important;
    line-height: 1.9 !important;
    font-weight: 400 !important;
  }
  .kv-question {
    color: rgba(255,255,255,.65) !important;
    font-size: 14px !important;
  }
}
  
/* PAGE: /listing/ - 固有スタイル (page-listing.css より統合) */

/* ===== KV SERVICE LABEL ===== */
.kv-service-label {
  display: inline-flex;
  align-items: center;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 900;
  font-size: clamp(13px, 1.1vw, 14px);
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #fff;
  border-left: 3px solid rgba(255,255,255,.9);
  padding: 4px 0 4px 14px;
  margin-bottom: 22px;
  position: relative;
  z-index: 2;
}
/* ===== KV SPLASH: REMOVED ===== */
.kv-right { display: none !important; }
.kv-splash { display: none !important; }
/* ===== KV PADDING: 上下余白削減 ===== */
.kv {
  min-height: auto !important;
  padding: var(--kv-padding-v, 72px) 80px !important;
}
/* ===== KV INNER: full-width text layout (2-line H1) ===== */
@media (min-width: 769px) {
  .kv .kv-inner {
    grid-template-columns: 1fr !important;
    max-width: 1400px !important;
  }
  .kv .kv-h1 {
    font-size: clamp(40px, 6vw, 88px) !important;
    line-height: 1.2 !important;
    letter-spacing: -0.04em !important;
    margin-bottom: 32px !important;
  }
  /* メインラベル：「リスティング広告」極太大型 */
  .kv .kv-eyebrow {
    font-size: clamp(28px, 4vw, 56px) !important;
    font-weight: 900 !important;
    letter-spacing: -0.02em !important;
    color: #ffffff !important;
    margin-bottom: 20px !important;
    gap: 20px !important;
  }
  .kv .kv-eyebrow::before {
    display: none !important;
  }
  .kv .kv-sub {
    margin-bottom: 0 !important;
  }
}
@media (max-width: 768px) {
  .kv {
    padding: var(--kv-padding-v-sp, 56px) 24px !important;
    min-height: auto !important;
  }
  .kv .kv-h1 {
    color: #ffffff !important;
  }
  .kv .kv-eyebrow {
    color: rgba(255,255,255,.85) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: .15em !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
  }
  .kv .kv-eyebrow::before {
    content: '' !important;
    display: inline-block !important;
    width: 24px !important;
    height: 2px !important;
    background: rgba(255,255,255,.7) !important;
    flex-shrink: 0 !important;
  }
  .kv .kv-sub {
    color: #ffffff !important;
    font-size: 15px !important;
    font-weight: 400 !important;
  }
  .kv .kv-body {
    color: #ffffff !important;
    font-size: 14px !important;
    line-height: 1.9 !important;
    font-weight: 400 !important;
  }
  .kv-question {
    color: rgba(255,255,255,.65) !important;
    font-size: 14px !important;
  }
}
/* ===== TARGETING-CARD: 角丸なし・黒テキスト・黒アイコン ===== */
.targeting-card {
  border-radius: 0 !important;
}
.targeting-card.is-geo {
  border-color: #E8E8E8 !important;
  background: #fff !important;
}
.targeting-card-num {
  color: #28282D !important;
}
.targeting-card-icon {
  background: rgba(0,0,0,.06) !important;
  border-radius: 0 !important;
}
.targeting-card-icon svg {
  stroke: #28282D !important;
}
.targeting-card-tag {
  color: #28282D !important;
  background: #EBEBEB !important;
  border-radius: 0 !important;
}
.targeting-card.is-geo .targeting-card-tag {
  color: #28282D !important;
  background: #EBEBEB !important;
}
.targeting-card:hover {
  box-shadow: none !important;
  transform: none !important;
}
  
/* PAGE: /display/ - 固有スタイル (page-display.css より統合) */

/* ===== KV SERVICE LABEL ===== */
.kv-service-label {
  display: inline-flex;
  align-items: center;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 900;
  font-size: clamp(13px, 1.1vw, 14px);
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #fff;
  border-left: 3px solid rgba(255,255,255,.9);
  padding: 4px 0 4px 14px;
  margin-bottom: 22px;
  position: relative;
  z-index: 2;
}
/* ===== KV SPLASH: REMOVED ===== */
.kv-right { display: none !important; }
.kv-splash { display: none !important; }
/* ===== KV PADDING: 上下余白削減 ===== */
.kv {
  min-height: auto !important;
  padding: var(--kv-padding-v, 72px) 80px !important;
}
/* ===== KV INNER: full-width text layout (2-line H1) ===== */
@media (min-width: 769px) {
  .kv .kv-inner {
    grid-template-columns: 1fr !important;
    max-width: 1400px !important;
  }
  .kv .kv-h1 {
    font-size: clamp(40px, 6vw, 88px) !important;
    line-height: 1.2 !important;
    letter-spacing: -0.04em !important;
    margin-bottom: 32px !important;
  }
  /* メインラベル：「ディスプレイ広告」極太大型 */
  .kv .kv-eyebrow {
    font-size: clamp(28px, 4vw, 56px) !important;
    font-weight: 900 !important;
    letter-spacing: -0.02em !important;
    color: #ffffff !important;
    margin-bottom: 20px !important;
    gap: 20px !important;
  }
  .kv .kv-eyebrow::before {
    display: none !important;
  }
  .kv .kv-sub {
    margin-bottom: 0 !important;
  }
}
@media (max-width: 768px) {
  .kv {
    padding: var(--kv-padding-v-sp, 56px) 24px !important;
    min-height: auto !important;
  }
  .kv .kv-h1 {
    color: #ffffff !important;
  }
  .kv .kv-eyebrow {
    color: rgba(255,255,255,.85) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: .15em !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
  }
  .kv .kv-eyebrow::before {
    content: '' !important;
    display: inline-block !important;
    width: 24px !important;
    height: 2px !important;
    background: rgba(255,255,255,.7) !important;
    flex-shrink: 0 !important;
  }
  .kv .kv-sub {
    color: #ffffff !important;
    font-size: 15px !important;
    font-weight: 400 !important;
  }
  .kv .kv-body {
    color: #ffffff !important;
    font-size: 14px !important;
    line-height: 1.9 !important;
    font-weight: 400 !important;
  }
  .kv-question {
    color: rgba(255,255,255,.65) !important;
    font-size: 14px !important;
  }
}
/* ===== RESULTS-SEC: 白背景なので見出しを黒文字に強制 ===== */
.results-sec .results-h2 {
  color: #28282D !important;
}
/* ===== TARGETING-CARD: 角丸なし・黒テキスト・黒アイコン ===== */
.targeting-card {
  border-radius: 0 !important;
}
.targeting-card.is-geo {
  border-color: #E8E8E8 !important;
  background: #fff !important;
}
.targeting-card-num {
  color: #28282D !important;
}
.targeting-card-icon {
  background: rgba(0,0,0,.06) !important;
  border-radius: 0 !important;
}
.targeting-card-icon svg {
  stroke: #28282D !important;
}
.targeting-card-tag {
  color: #28282D !important;
  background: #EBEBEB !important;
  border-radius: 0 !important;
}
.targeting-card.is-geo .targeting-card-tag {
  color: #28282D !important;
  background: #EBEBEB !important;
}
.targeting-card:hover {
  box-shadow: none !important;
  transform: none !important;
}
/* ===== RESULT-CARD: 数字・テキストを黒色に、下余白削減 ===== */
.result-metric-num {
  color: #28282D !important;
}
.result-metric-unit {
  color: #28282D !important;
}
.result-card {
  padding: 32px 40px 32px !important;
}
.result-chart-wrap {
  margin-top: 16px !important;
  height: 120px !important;
}
  
/* PAGE: /ai-seo/ - 固有スタイル (page-ai-seo.css より統合) */

/* ===== KV SPLASH: REMOVED ===== */
.kv-right { display: none !important; }
.kv-splash { display: none !important; }
/* ===== KV ACTIONS: 非表示 ===== */
.kv-actions { display: none !important; }
/* ===== KV PADDING: 上下余白削減 ===== */
.kv {
  min-height: auto !important;
  padding: var(--kv-padding-v, 72px) 80px !important;
}
/* ===== KV INNER: full-width text layout ===== */
@media (min-width: 769px) {
  .kv .kv-inner {
    grid-template-columns: 1fr !important;
    max-width: 1400px !important;
  }
  .kv .kv-h1 {
    font-size: clamp(40px, 6vw, 88px) !important;
    line-height: 1.2 !important;
    letter-spacing: -0.04em !important;
    margin-bottom: 32px !important;
  }
  .kv .kv-eyebrow {
    font-size: clamp(28px, 4vw, 56px) !important;
    font-weight: 900 !important;
    letter-spacing: -0.02em !important;
    color: #ffffff !important;
    margin-bottom: 20px !important;
    gap: 20px !important;
  }
  .kv .kv-eyebrow::before {
    display: none !important;
  }
  .kv .kv-sub {
    margin-bottom: 0 !important;
  }
}
@media (max-width: 768px) {
  .kv {
    padding: var(--kv-padding-v-sp, 56px) 24px !important;
    min-height: auto !important;
  }
  .kv .kv-h1 {
    color: #ffffff !important;
  }
  .kv .kv-eyebrow {
    color: rgba(255,255,255,.85) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: .15em !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
  }
  .kv .kv-eyebrow::before {
    content: '' !important;
    display: inline-block !important;
    width: 24px !important;
    height: 2px !important;
    background: rgba(255,255,255,.7) !important;
    flex-shrink: 0 !important;
  }
  .kv .kv-sub {
    color: #ffffff !important;
    font-size: 15px !important;
    font-weight: 400 !important;
  }
  .kv .kv-body {
    color: #ffffff !important;
    font-size: 14px !important;
    line-height: 1.9 !important;
    font-weight: 400 !important;
  }
  .kv-question {
    color: rgba(255,255,255,.65) !important;
    font-size: 14px !important;
  }
}
/* ===== SECTION INNER: 余白統一 ===== */
.what-inner,
.problem-inner,
.how-inner,
.plan-inner,
.faq-head,
.faq-list,
.challenge-head,
.challenge-grid,
.area-inner,
.blog-inner {
  padding-left: 80px !important;
  padding-right: 80px !important;
  box-sizing: border-box !important;
}
/* ===== SECTION INNER: max-widthを解除してFAQと左端を揃える ===== */
.what-inner,
.problem-inner,
.how-inner,
.plan-inner {
  max-width: none !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
@media (max-width: 768px) {
  .what-inner,
  .problem-inner,
  .how-inner,
  .plan-inner,
  .faq-head,
  .faq-list,
  .challenge-head,
  .area-inner,
  .blog-inner {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
  /* challenge-gridはSPで縦積み・横幅いっぱいのためpadding不要 */
  .challenge-grid {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}
/* ===== FONT SIZE: 最低14px保証 ===== */
body {
  font-size: 14px;
}
/* ===== WHAT-AXIS: 守り×攻め 2軸カード ===== */
.what-axis-wrap {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-top: 32px;
  flex-wrap: wrap;
}
.what-axis-card {
  flex: 1;
  min-width: 180px;
  background: #f8f8f8;
  border: 1.5px solid #e0e0e0;
  border-radius: 4px;
  padding: 20px 20px 18px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.what-axis-icon {
  font-size: 22px;
  line-height: 1;
}
.what-axis-label {
  font-size: 15px;
  font-weight: 900;
  color: #000000;
  letter-spacing: .02em;
}
.what-axis-desc {
  font-size: 13px;
  line-height: 1.7;
  color: #444444;
  margin: 0;
}
.what-axis-divider {
  font-size: 22px;
  font-weight: 900;
  color: #999999;
  flex-shrink: 0;
}
/* ===== HOW-AXIS: problem-cardデザイン横並び ===== */
.how-axis-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border: 1px solid #e0e0e0;
  background: #fff;
  margin-top: 24px;
  margin-bottom: 48px;
}
.how-axis-item {
  padding: 40px 32px 48px;
  border-right: 1px solid #e0e0e0;
}
.how-axis-item:last-child {
  border-right: none;
}
.how-axis-num {
  display: block;
  font-size: 11px;
  letter-spacing: .18em;
  color: #c0c0c5;
  font-weight: 700;
  margin-bottom: 20px;
}
.how-axis-title {
  font-size: clamp(18px, 2vw, 26px);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -.03em;
  color: #28282d;
  margin-bottom: 12px;
}
.how-axis-desc {
  font-size: 15px;
  line-height: 1.8;
  color: #767680;
  margin: 0;
}
@media (max-width: 768px) {
  .what-axis-wrap {
    flex-direction: column;
    gap: 12px;
  }
  .what-axis-divider {
    transform: rotate(90deg);
  }
  .what-axis-card {
    width: 100%;
  }
  .how-axis-list {
    grid-template-columns: 1fr;
  }
  .how-axis-item {
    padding: 24px 20px;
    border-right: none;
    border-bottom: 1px solid #e0e0e0;
  }
  .how-axis-item:last-child {
    border-bottom: none;
  }
}
  /* ---- problem-evidence ---- */
  .problem-evidence {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
    padding: 48px 80px 64px;
  }
  .problem-evidence-item {
    display: flex;
    flex-direction: column;
  }
  .problem-evidence-label {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #666;
    margin-bottom: 12px;
  }
  .problem-evidence-item img {
    width: 100%;
    border: 1px solid #e5e5e5;
    border-radius: 8px;
  }
  @media (max-width: 767px) {
    .problem-evidence {
      grid-template-columns: 1fr;
      padding: 32px 20px 48px;
      gap: 24px;
    }
  }
  /* ---- problem-evidence-catch ---- */
  .problem-evidence-catch {
    font-size: var(--sec-h2-size, clamp(36px, 4.2vw, 60px));
    font-weight: 900;
    letter-spacing: -.04em;
    color: #28282d;
    text-align: center;
    padding: 100px 80px;
    margin: 0;
    line-height: 1.3;
  }
  @media (max-width: 767px) {
    .problem-evidence-catch {
      padding: 56px 20px;
      font-size: var(--sec-h2-size-sp, clamp(28px, 7.5vw, 44px));
      white-space: normal;
    }
  }
  /* ---- how-catch ---- */
  .how-catch {
    font-size: clamp(28px, 3.5vw, 48px);
    font-weight: 700;
    letter-spacing: -.03em;
    color: #fff;
    text-align: center;
    margin: 80px 0 0;
    line-height: 1.3;
  }
  @media (max-width: 767px) {
    .how-catch {
      font-size: clamp(22px, 6vw, 36px);
      margin: 56px 0 0;
    }
  }
  /* ---- how-sec padding-bottom上書き ---- */
  .how-sec { padding-bottom: 20px !important; }
  /* ---- how-step-num: 白に上書き ---- */
  .how-step-num { color: #fff !important; }
  /* ---- related-two ---- */
  .related-two-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    max-width: 1100px;
    margin: 0 auto;
  }
  .related-two-card {
    display: block;
    border: 1px solid rgba(255,255,255,.18);
    padding: 32px;
    text-decoration: none;
    transition: background .2s, border-color .2s;
  }
  .related-two-card:hover {
    background: rgba(255,255,255,.06);
    border-color: rgba(255,255,255,.4);
  }
  .related-two-icon {
    width: 40px;
    height: 40px;
    margin-bottom: 16px;
  }
  .related-two-icon svg {
    width: 40px;
    height: 40px;
    stroke: rgba(255,255,255,.7);
  }
  .related-two-title {
    font-size: clamp(22px, 2.4vw, 32px);
    font-weight: 900;
    color: #ffffff;
    line-height: 1.4;
    margin-bottom: 10px;
  }
  .related-two-sub {
    font-size: 16px;
    color: #ffffff;
    line-height: 1.7;
    margin-bottom: 20px;
  }
  .related-two-btn {
    display: inline-block;
    font-size: 13px;
    font-weight: 700;
    color: #ffffff;
    border-bottom: 1px solid rgba(255,255,255,.4);
    padding-bottom: 2px;
    letter-spacing: .04em;
  }
  @media (max-width: 767px) {
    .related-two { padding: 32px 20px !important; }
    .related-two-grid { grid-template-columns: 1fr; gap: 16px; }
  }
  
/* PAGE: /ai-automation/ - 固有スタイル (page-ai-automation.css より統合) */

/* ===== KV: ai-seo準拠 ===== */
.kv-right { display: none !important; }
.kv-splash { display: none !important; }
.kv-actions { display: none !important; }
.kv {
  min-height: auto !important;
  padding: var(--kv-padding-v, 72px) 80px !important;
}
@media (min-width: 769px) {
  .kv .kv-inner {
    grid-template-columns: 1fr !important;
    max-width: 1400px !important;
  }
  .kv .kv-h1 {
    font-size: clamp(40px, 6vw, 88px) !important;
    line-height: 1.2 !important;
    letter-spacing: -0.04em !important;
    margin-bottom: 32px !important;
  }
  .kv .kv-eyebrow {
    font-size: clamp(28px, 4vw, 56px) !important;
    font-weight: 900 !important;
    letter-spacing: -0.02em !important;
    color: #ffffff !important;
    margin-bottom: 20px !important;
    gap: 20px !important;
  }
  .kv .kv-eyebrow::before {
    display: none !important;
  }
  .kv .kv-sub {
    margin-bottom: 0 !important;
  }
}
@media (max-width: 768px) {
  .kv {
    padding: var(--kv-padding-v-sp, 56px) 24px !important;
    min-height: auto !important;
  }
  .kv .kv-h1 {
    color: #ffffff !important;
  }
  .kv .kv-eyebrow {
    color: rgba(255,255,255,.85) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: .15em !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
  }
  .kv .kv-eyebrow::before {
    content: '' !important;
    display: inline-block !important;
    width: 24px !important;
    height: 2px !important;
    background: rgba(255,255,255,.7) !important;
    flex-shrink: 0 !important;
  }
  .kv .kv-sub {
    color: #ffffff !important;
    font-size: 15px !important;
    font-weight: 400 !important;
  }
  .kv .kv-body {
    color: #ffffff !important;
    font-size: 14px !important;
    line-height: 1.9 !important;
    font-weight: 400 !important;
  }
  .kv-question {
    color: rgba(255,255,255,.65) !important;
    font-size: 14px !important;
  }
}
/* ===== FONT SIZE: 最低14px保証 ===== */
body {
  font-size: 14px;
}
/* ===== SECTION: 左右paddingをセクションレベルから削除しinnerで管理 ===== */
.v2-works-sec,
.v2-prob-sec,
.v2-sol-sec,
.v2-feat-sec,
.v2-cases-sec,
.v2-flow-sec,
.v2-price-sec {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
/* ===== SECTION INNER: 余白統一 ===== */
.v2-works-inner,
.v2-prob-inner,
.v2-sol-inner,
.v2-feat-inner,
.v2-cases-inner,
.v2-flow-inner,
.v2-price-inner,
.faq-head,
.faq-list,
.blog-inner {
  max-width: none !important;
  padding-left: 80px !important;
  padding-right: 80px !important;
  box-sizing: border-box !important;
}
@media (max-width: 768px) {
  .v2-works-inner,
  .v2-prob-inner,
  .v2-sol-inner,
  .v2-feat-inner,
  .v2-cases-inner,
  .v2-flow-inner,
  .v2-price-inner,
  .faq-head,
  .faq-list,
  .blog-inner {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

}
/* ===== V2-FEAT-TTL: v2-svc-nameと同じフォントサイズ ===== */
.v2-feat-ttl {
  font-size: clamp(20px, 2.4vw, 30px) !important;
  line-height: 1.25 !important;
  letter-spacing: -.03em !important;
}
/* ===== V2-FEAT-IN FULL: 左寄せ1列レイアウト ===== */
.v2-feat-in--full {
  display: block !important;
}
.v2-feat-in--full .v2-feat-r {
  width: 100%;
}
/* ===== V2-SVC-NAME: v2-prob-txtと同じフォントサイズ ===== */
.v2-svc-name {
  font-size: clamp(20px, 2.4vw, 30px) !important;
  line-height: 1.25 !important;
  letter-spacing: -.03em !important;
}
/* ===== V2-PROB-TXT: problem-titleと同じフォントサイズ ===== */
.v2-prob-txt {
  font-size: clamp(20px, 2.4vw, 30px) !important;
  line-height: 1.25 !important;
  letter-spacing: -.03em !important;
}
/* ===== V2-SOL-EYEBROW ===== */
..v2-sol-eyebrow{display:block;margin-bottom:16px;}
    .v2-price-h3{font-size:clamp(36px,4.2vw,60px)!important;}: 16px;
}
/* ===== V2-SOL-SUB-HEAD: 「この様なことをご支援できます。」見出し ===== */
.v2-sol-sub-desc {
  display: block;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0;
  color: #4A4A50;
  line-height: 1.85;
  margin-top: 12px;
}
.v2-sol-sub-head {
  font-size: var(--sec-h2-size, clamp(36px, 4.2vw, 60px));
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: -.04em;
  color: #28282D;
  margin: 64px 0 48px;
}
@media (max-width: 768px) {
  .v2-sol-sub-head {
    font-size: var(--sec-h2-size-sp, clamp(28px, 7.5vw, 44px));
    margin: 40px 0 32px;
  }
}
/* ===== V2-PROB-SUM: sec-h2と同じフォントサイズ ===== */
.v2-prob-sum p {
  font-size: var(--sec-h2-size, clamp(36px, 4.2vw, 60px)) !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
  letter-spacing: -.04em !important;
}
@media (max-width: 768px) {
  .v2-prob-sum p {
    font-size: var(--sec-h2-size-sp, clamp(28px, 7.5vw, 44px)) !important;
  }
}
/* ===== RELATED-TWO: 2列カード ===== */
.related-two-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  max-width: 1100px;
  margin: 0 auto;
}
.related-two-card {
  display: block;
  border: 1px solid rgba(255,255,255,.18);
  padding: 32px;
  text-decoration: none;
  transition: background .2s, border-color .2s;
}
.related-two-card:hover {
  background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.4);
}
.related-two-icon {
  width: 40px;
  height: 40px;
  margin-bottom: 16px;
}
.related-two-icon svg {
  width: 40px;
  height: 40px;
  stroke: rgba(255,255,255,.7);
}
.related-two-title {
  font-size: clamp(22px, 2.4vw, 32px);
  font-weight: 900;
  color: #ffffff;
  line-height: 1.4;
  margin-bottom: 10px;
}
.related-two-sub {
  font-size: 16px;
  color: #ffffff;
  line-height: 1.7;
  margin-bottom: 20px;
}
.related-two-btn {
  display: inline-block;
  font-size: 13px;
  font-weight: 700;
  color: #ffffff;
  border-bottom: 1px solid rgba(255,255,255,.4);
  padding-bottom: 2px;
  letter-spacing: .04em;
}
@media (max-width: 767px) {
  .related-two { padding: 32px 20px !important; }
  .related-two-grid { grid-template-columns: 1fr; gap: 16px; }
  .related-two-card { flex-direction: column !important; align-items: flex-start !important; gap: 20px !important; padding: 24px 20px !important; }
  .related-two-card > div:first-child { flex-direction: column !important; align-items: flex-start !important; }
  .related-two-btn { flex-shrink: unset !important; }
}
  
/* PAGE: /webdesign/ - 固有スタイル (page-website.css より統合) */

/* ===== KV SERVICE LABEL ===== */
.kv-service-label {
  display: inline-flex;
  align-items: center;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 900;
  font-size: clamp(13px, 1.1vw, 14px);
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #fff;
  border-left: 3px solid rgba(255,255,255,.9);
  padding: 4px 0 4px 14px;
  margin-bottom: 22px;
  position: relative;
  z-index: 2;
}
/* ===== KV SPLASH: REMOVED ===== */
.kv-right { display: none !important; }
.kv-splash { display: none !important; }
/* ===== KV PADDING: 上下余白削減 ===== */
.kv {
  min-height: auto !important;
  padding: var(--kv-padding-v, 72px) 80px !important;
}
/* ===== KV INNER: full-width text layout (2-line H1) ===== */
@media (min-width: 769px) {
  .kv .kv-inner {
    grid-template-columns: 1fr !important;
    max-width: 1400px !important;
  }
  .kv .kv-h1 {
    font-size: clamp(40px, 6vw, 88px) !important;
    line-height: 1.2 !important;
    letter-spacing: -0.04em !important;
    margin-bottom: 32px !important;
  }
  /* メインラベル：「ホームページ制作」極太大型 */
  .kv .kv-eyebrow {
    font-size: clamp(28px, 4vw, 56px) !important;
    font-weight: 900 !important;
    letter-spacing: -0.02em !important;
    color: #ffffff !important;
    margin-bottom: 20px !important;
    gap: 20px !important;
  }
  .kv .kv-eyebrow::before {
    display: none !important;
  }
  .kv .kv-sub {
    margin-bottom: 0 !important;
  }
}
@media (max-width: 768px) {
  .kv {
    padding: var(--kv-padding-v-sp, 56px) 24px !important;
    min-height: auto !important;
  }
  .kv .kv-h1 {
    color: #ffffff !important;
  }
  .kv .kv-eyebrow {
    color: rgba(255,255,255,.85) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: .15em !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
  }
  .kv .kv-eyebrow::before {
    content: '' !important;
    display: inline-block !important;
    width: 24px !important;
    height: 2px !important;
    background: rgba(255,255,255,.7) !important;
    flex-shrink: 0 !important;
  }
  .kv .kv-sub {
    color: #ffffff !important;
    font-size: 15px !important;
    font-weight: 400 !important;
  }
  .kv .kv-body {
    color: #ffffff !important;
    font-size: 14px !important;
    line-height: 1.9 !important;
    font-weight: 400 !important;
  }
  .kv-question {
    color: rgba(255,255,255,.65) !important;
    font-size: 14px !important;
  }
}
/* ===== CTA BODY WIDTH ===== */
.cta .cta-body {
  max-width: 600px !important;
}
/* ===== WHY-WORKS-SLIDER ===== */
.why-works-slider {
  grid-column: 2 / 4;
  background: #F0F0EE;
  overflow: hidden;
  position: relative;
  min-height: 260px;
}
.why-works-slider .swiper {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
}
.why-works-slide {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  height: 100%;
  position: relative;
  overflow: hidden;
}
.why-works-slide-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  position: absolute;
  top: 0; left: 0;
  background: #D8D8D6;
}
.why-works-slide-placeholder {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0; left: 0;
  background: linear-gradient(135deg, #E0E0DE 0%, #C8C8C6 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 8px;
}
.why-works-slide-placeholder-icon {
  width: 40px;
  height: 40px;
  opacity: .25;
}
.why-works-slide-label {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 12px 16px;
  background: rgba(0,0,0,.45);
  backdrop-filter: blur(4px);
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .02em;
  line-height: 1.4;
}
.why-works-slide-label small {
  display: block;
  font-size: 11px;
  font-weight: 400;
  opacity: .75;
  letter-spacing: .08em;
  margin-bottom: 2px;
}
.why-works-slider .swiper-pagination {
  bottom: 12px;
}
.why-works-slider .swiper-pagination-bullet {
  background: rgba(255,255,255,.6);
  opacity: 1;
}
.why-works-slider .swiper-pagination-bullet-active {
  background: #fff;
}
@media (max-width: 768px) {
  .why-works-slider {
    grid-column: 1 / -1;
    min-height: 220px;
  }
}
/* ===== WHY-SEC: 見出し・本文 左寄せ ===== */
.why-head {
  text-align: left !important;
}
/* ===== WHY-SEC: 白黒反転 ===== */
.why-sec {
  background: #fff !important;
}
.why-head .sec-eyebrow {
  color: #767680 !important;
}
.why-head .sec-h2 {
  color: #1A1A1A !important;
}
.why-head .sec-body {
  color: rgba(0,0,0,.6) !important;
}
.why-grid {
  background: #e5e5e5 !important;
}
.why-card {
  background: #fff !important;
}
.why-card:hover {
  background: #F8F8F7 !important;
}
.why-card-num {
  font-size: clamp(80px, 10vw, 140px) !important;
  font-weight: 800 !important;
  letter-spacing: -0.05em !important;
  color: rgba(40,40,45,.07) !important;
  line-height: 1 !important;
  margin-bottom: 20px !important;
}
.why-card-title {
  font-size: clamp(20px, 2.4vw, 30px) !important;
  font-weight: 700 !important;
  letter-spacing: -0.03em !important;
  line-height: 1.25 !important;
  color: #1A1A1A !important;
}
.why-card-title em {
  color: #E02020 !important;
}
.why-card-desc {
  color: rgba(0,0,0,.6) !important;
}
  /* CTA button: デフォルト透明・白文字、ホバー時白背景・黒文字 */
  .cta-btn-primary{
    background:transparent;
    color:#fff;
    border:1px solid #fff;
  }
  .cta-btn-primary:hover{
    background:#fff;
    color:#28282D;
  }
/* ===== 見出し左端位置をworks-head/voice-headに統一（左端80px） ===== */
/* why-sec: padding 40px → 0 に変更し、innerに80pxを持たせる */
.why-sec {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.why-inner {
  max-width: none !important;
  margin: 0 !important;
  padding-left: 80px !important;
  padding-right: 80px !important;
}
/* plan-sec: innerに80pxを持たせる */
.plan-sec {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.plan-inner {
  max-width: none !important;
  margin: 0 !important;
  padding-left: 80px !important;
  padding-right: 80px !important;
}
/* SP: 20px に統一 */
@media (max-width: 767px) {
  .why-inner {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
  .plan-inner {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
}
  
/* PAGE: /sns/ - 固有スタイル (page-sns.css より統合) */

/* ===== KV SERVICE LABEL ===== */
.kv-service-label {
  display: inline-flex;
  align-items: center;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 900;
  font-size: clamp(13px, 1.1vw, 14px);
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #fff;
  border-left: 3px solid rgba(255,255,255,.9);
  padding: 4px 0 4px 14px;
  margin-bottom: 22px;
  position: relative;
  z-index: 2;
}
/* ===== KV SPLASH: REMOVED ===== */
.kv-right { display: none !important; }
.kv-splash { display: none !important; }
/* ===== KV PADDING: 上下余白削減 ===== */
.kv {
  min-height: auto !important;
  padding: var(--kv-padding-v, 72px) 80px !important;
}
/* ===== KV INNER: full-width text layout (2-line H1) ===== */
@media (min-width: 769px) {
  .kv .kv-inner {
    grid-template-columns: 1fr !important;
    max-width: 1400px !important;
  }
  .kv .kv-h1 {
    font-size: clamp(40px, 6vw, 88px) !important;
    line-height: 1.2 !important;
    letter-spacing: -0.04em !important;
    margin-bottom: 32px !important;
  }
  /* メインラベル：「SNSマーケティング」極太大型 */
  .kv .kv-eyebrow {
    font-size: clamp(28px, 4vw, 56px) !important;
    font-weight: 900 !important;
    letter-spacing: -0.02em !important;
    color: #ffffff !important;
    margin-bottom: 20px !important;
    gap: 20px !important;
  }
  .kv .kv-eyebrow::before {
    display: none !important;
  }
  .kv .kv-sub {
    margin-bottom: 0 !important;
  }
}
@media (max-width: 768px) {
  .kv {
    padding: var(--kv-padding-v-sp, 56px) 24px !important;
    min-height: auto !important;
  }
  .kv .kv-h1 {
    color: #ffffff !important;
  }
  .kv .kv-eyebrow {
    color: rgba(255,255,255,.85) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: .15em !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
  }
  .kv .kv-eyebrow::before {
    content: '' !important;
    display: inline-block !important;
    width: 24px !important;
    height: 2px !important;
    background: rgba(255,255,255,.7) !important;
    flex-shrink: 0 !important;
  }
  .kv .kv-sub {
    color: #ffffff !important;
    font-size: 15px !important;
    font-weight: 400 !important;
  }
  .kv .kv-body {
    color: #ffffff !important;
    font-size: 14px !important;
    line-height: 1.9 !important;
    font-weight: 400 !important;
  }
  .kv-question {
    color: rgba(255,255,255,.65) !important;
    font-size: 14px !important;
  }
}
/* ===== sns-axis-head: 左寄せに上書き ===== */
.sns-axis-head {
  text-align: left !important;
}
.sns-axis-head .sec-eyebrow {
  justify-content: flex-start !important;
  text-align: left !important;
}
.sns-axis-lead {
  margin: 0 !important;
  text-align: left !important;
}
/* ===== platform-head: 左寄せに上書き ===== */
.platform-head {
  text-align: left !important;
}
.platform-head .sec-eyebrow {
  justify-content: flex-start !important;
  text-align: left !important;
}
.platform-head .sec-h2 {
  text-align: left !important;
}
.platform-head .sec-body {
  text-align: left !important;
  margin: 0 !important;
}
  
/* PAGE: /sns/instagram/ - 固有スタイル (page-sns-instagram.css より統合) */

/* ===== KV SERVICE LABEL ===== */
.kv-service-label {
  display: inline-flex;
  align-items: center;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 900;
  font-size: clamp(13px, 1.1vw, 14px);
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #fff;
  border-left: 3px solid rgba(255,255,255,.9);
  padding: 4px 0 4px 14px;
  margin-bottom: 22px;
  position: relative;
  z-index: 2;
}
/* ===== KV SPLASH: REMOVED ===== */
.kv-right { display: none !important; }
.kv-splash { display: none !important; }
/* ===== KV PADDING: 上下余白削減 ===== */
.kv {
  min-height: auto !important;
  padding: var(--kv-padding-v, 72px) 80px !important;
}
/* ===== KV INNER: full-width text layout (2-line H1) ===== */
@media (min-width: 769px) {
  .kv .kv-inner {
    grid-template-columns: 1fr !important;
    max-width: 1400px !important;
  }
  .kv .kv-h1 {
    font-size: clamp(40px, 6vw, 88px) !important;
    line-height: 1.2 !important;
    letter-spacing: -0.04em !important;
    margin-bottom: 32px !important;
  }
  .kv .kv-eyebrow {
    font-size: clamp(28px, 4vw, 56px) !important;
    font-weight: 900 !important;
    letter-spacing: -0.02em !important;
    color: #ffffff !important;
    margin-bottom: 20px !important;
    gap: 20px !important;
  }
  .kv .kv-eyebrow::before {
    display: none !important;
  }
  .kv .kv-sub {
    margin-bottom: 0 !important;
  }
}
@media (max-width: 768px) {
  .kv {
    padding: var(--kv-padding-v-sp, 56px) 24px !important;
    min-height: auto !important;
  }
  .kv .kv-h1 {
    color: #ffffff !important;
  }
  .kv .kv-eyebrow {
    color: rgba(255,255,255,.85) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: .15em !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
  }
  .kv .kv-eyebrow::before {
    content: '' !important;
    display: inline-block !important;
    width: 24px !important;
    height: 2px !important;
    background: rgba(255,255,255,.7) !important;
    flex-shrink: 0 !important;
  }
  .kv .kv-sub {
    color: #ffffff !important;
    font-size: 15px !important;
    font-weight: 400 !important;
  }
  .kv .kv-body {
    color: #ffffff !important;
    font-size: 14px !important;
    line-height: 1.9 !important;
    font-weight: 400 !important;
  }
  .kv-question {
    color: rgba(255,255,255,.65) !important;
    font-size: 14px !important;
  }
}
/* ===== KV ACTIONS: 非表示 ===== */
.kv-actions { display: none !important; }
.kv-service-label { display: none !important; }
/* ===== crb-tag: ホバー無効化 ===== */
.crb-tag:hover {
  border-color: #D8D8D8 !important;
  color: #444 !important;
  background: #fff !important;
}
/* ===== official-account-h2: 共通h2サイズに統一 ===== */
.official-account-h2 {
  font-size: clamp(36px, 4.2vw, 60px) !important;
}
/* ===== official-account-card: ホバー無効化 ===== */
.official-account-card:hover {
  box-shadow: none !important;
  transform: none !important;
}
/* ===== what-head: 左寄せ ===== */
.what-head {
  text-align: left !important;
}
/* ===== what-sec: セクション全体 ===== */
.what-sec {
  padding-top: 150px !important;
  padding-bottom: 150px !important;
  background: #ffffff !important;
}
/* ===== what-strategy-block: 戦略上段エリア ===== */
.what-strategy-block {
  background: #f8f8f8;
  padding: 72px 40px;
  margin-bottom: 0;
  text-align: center;
}
.what-strategy-inner {
  max-width: 680px;
  margin: 0 auto;
}
/* 月桂樹バッジ */
.what-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  border: 1.5px solid #000000;
  border-radius: 2px;
  padding: 8px 20px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #000000;
  margin-bottom: 48px;
}
.what-badge-icon {
  display: inline-block;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}
/* 2行ヘッドライン */
.what-strategy-headline {
  font-size: clamp(22px, 4vw, 30px);
  font-weight: 900;
  color: #000000;
  line-height: 1.0;
  margin: 0 0 48px;
  letter-spacing: -0.02em;
  text-align: center;
}
.what-strategy-headline .hl-line1 {
  display: block;
  font-size: clamp(28px, 5vw, 40px);
  margin-bottom: 20px;
}
.what-strategy-headline .hl-line2 {
  display: block;
  font-size: clamp(16px, 2.8vw, 22px);
  font-weight: 700;
  color: #444444;
  letter-spacing: .01em;
}
/* 本文 */
.what-strategy-body {
  font-size: 15px;
  line-height: 1.85;
  color: #333333;
  margin: 0 0 48px;
  text-align: left;
}
/* ボタン */
.what-strategy-btn {
  display: inline-block;
  padding: 16px 40px;
  background: #000000;
  color: #ffffff;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .06em;
  text-decoration: none;
  border: 2px solid #000000;
  transition: background .2s, color .2s;
}
.what-strategy-btn:hover {
  background: #ffffff;
  color: #000000;
}
/* ===== what-flow-bridge: 静止ブロックアロー ===== */
.what-flow-bridge {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  padding: 80px 0 0;
  margin-bottom: 100px;
  text-align: center;
}
/* ボディ（黒い長方形） */
.what-block-arrow {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: clamp(320px, 70%, 600px);
  min-height: 80px;
  background: #000000;
  padding: 24px 48px;
  margin-bottom: -1px;
  flex-shrink: 0;
}
/* ボディ内テキスト */
.what-block-arrow-text {
  display: block !important;
  font-size: clamp(16px, 2.4vw, 20px);
  font-weight: 900;
  color: #ffffff;
  letter-spacing: .04em;
  line-height: 1.3;
  white-space: nowrap;
}
/* 三角形ヘッド */
.what-block-arrow-tip {
  display: block !important;
  width: clamp(320px, 70%, 600px);
  height: 44px;
  background: #000000;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  flex-shrink: 0;
}
/* SVG矢印・宣言テキストは非表示 */
.what-vector-arrow, .what-vector-label { display: none; }
.what-flow-arrow, .what-flow-label { display: none; }
/* what-card: 背景・ボーダー・シャドウ復旧 */
.what-card {
  background: #f8f8f8 !important;
  border: 1px solid #eeeeee !important;
  box-shadow: none !important;
}
@media (max-width: 768px) {
  .what-sec {
    padding-top: 80px !important;
    padding-bottom: 80px !important;
  }
  .what-strategy-headline .hl-line1 {
    font-size: clamp(22px, 7vw, 32px);
  }
  .what-strategy-headline .hl-line2 {
    font-size: clamp(14px, 4vw, 18px);
  }
  .what-strategy-body {
    font-size: 14px;
  }
  .what-flow-arrow {
    height: 90px;
    width: 7px;
  }
  .what-flow-label {
    font-size: 17px;
    margin-top: 32px;
  }
}
/* ===== case-note: 背景・ボーダー無効化 ===== */
.case-note {
  background: none !important;
  border: none !important;
  padding: 0 !important;
  margin-top: 0 !important;
}
.case-note::before {
  display: none !important;
}
/* ===== case-grid: 3枚固定グリッド ===== */
.case-grid-wrap {
  padding: 0 80px 0;
  overflow-x: auto;
}
.case-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(280px, 1fr));
  gap: 24px;
  align-items: stretch;
}
.case-grid .case-card {
  display: flex;
  flex-direction: column;
  padding: 48px !important;
  overflow: hidden;
}
.case-grid .case-card-body {
  display: flex;
  flex-direction: column;
  flex: 1;
}
.case-grid .case-card-result {
  margin-top: auto;
}
/* SP: スワイプ仕様 */
@media (max-width: 767px) {
  .case-grid-wrap {
    padding: 0;
    overflow-x: clip;
  }
  .case-grid {
    display: flex;
    flex-direction: row;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    gap: 16px;
    padding: 0 16px 16px;
    grid-template-columns: unset;
  }
  .case-grid::-webkit-scrollbar {
    display: none;
  }
  .case-grid .case-card {
    flex: 0 0 80vw;
    max-width: 320px;
    scroll-snap-align: start;
  }
}
  .case-sec .sp-swipe-hint { color: #ffffff; }

  /* case-sec 白黒反転 */
  .case-sec { background: #ffffff !important; }
  .case-head .sec-eyebrow { color: #767680 !important; }
  .case-head .sec-eyebrow::before { background: #767680 !important; }
  .case-head .sec-h2 { color: #28282D !important; }
  .case-head .view-all { color: #28282D !important; border-bottom-color: #28282D !important; }
  .case-sec .sp-swipe-hint { color: #767680 !important; }
  /* 業種タグ・カード内テキスト */
  .case-sec .case-tags-label { color: #767680 !important; }
  .case-sec .case-tag { color: #28282D !important; border-color: rgba(40,40,45,.25) !important; background: transparent !important; }
  .case-sec .case-tag:hover { background: #28282D !important; color: #fff !important; border-color: #28282D !important; }
  .case-sec .case-card { background: #F7F7F8 !important; }
  .case-sec .case-industry { color: #767680 !important; }
  .case-sec .case-title { color: #28282D !important; }
  .case-sec .case-body { color: #5A5A60 !important; }
  .case-sec .case-result-label { color: #767680 !important; }
  .case-sec .case-result-num { color: #28282D !important; }
  .case-sec .case-result-desc { color: #767680 !important; }
  
/* PAGE: /sns/tiktok/ - 固有スタイル (page-sns-tiktok.css より統合) */

/* ===== KV SERVICE LABEL ===== */
.kv-service-label {
  display: inline-flex;
  align-items: center;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 900;
  font-size: clamp(13px, 1.1vw, 14px);
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #fff;
  border-left: 3px solid rgba(255,255,255,.9);
  padding: 4px 0 4px 14px;
  margin-bottom: 22px;
  position: relative;
  z-index: 2;
}
/* ===== KV SPLASH: REMOVED ===== */
.kv-right { display: none !important; }
.kv-splash { display: none !important; }
/* ===== KV PADDING: 上下余白削減 ===== */
.kv {
  min-height: auto !important;
  padding: var(--kv-padding-v, 72px) 80px !important;
}
/* ===== KV INNER: full-width text layout (2-line H1) ===== */
@media (min-width: 769px) {
  .kv .kv-inner {
    grid-template-columns: 1fr !important;
    max-width: 1400px !important;
  }
  .kv .kv-h1 {
    font-size: clamp(40px, 6vw, 88px) !important;
    line-height: 1.2 !important;
    letter-spacing: -0.04em !important;
    margin-bottom: 32px !important;
  }
  .kv .kv-eyebrow {
    font-size: clamp(28px, 4vw, 56px) !important;
    font-weight: 900 !important;
    letter-spacing: -0.02em !important;
    color: #ffffff !important;
    margin-bottom: 20px !important;
    gap: 20px !important;
  }
  .kv .kv-eyebrow::before {
    display: none !important;
  }
  .kv .kv-sub {
    margin-bottom: 0 !important;
  }
}
@media (max-width: 768px) {
  .kv {
    padding: var(--kv-padding-v-sp, 56px) 24px !important;
    min-height: auto !important;
  }
  .kv .kv-h1 {
    color: #ffffff !important;
  }
  .kv .kv-eyebrow {
    color: rgba(255,255,255,.85) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: .15em !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
  }
  .kv .kv-eyebrow::before {
    content: '' !important;
    display: inline-block !important;
    width: 24px !important;
    height: 2px !important;
    background: rgba(255,255,255,.7) !important;
    flex-shrink: 0 !important;
  }
  .kv .kv-sub {
    color: #ffffff !important;
    font-size: 15px !important;
    font-weight: 400 !important;
  }
  .kv .kv-body {
    color: #ffffff !important;
    font-size: 14px !important;
    line-height: 1.9 !important;
    font-weight: 400 !important;
  }
}
/* ===== KV ACTIONS: 非表示 ===== */
.kv-actions { display: none !important; }
.kv-service-label { display: none !important; }
/* ===== crb-tag: ホバー無効化 ===== */
.crb-tag:hover {
  border-color: #D8D8D8 !important;
  color: #444 !important;
  background: #fff !important;
}
/* ===== official-account-h2: 共通h2サイズに統一 ===== */
.official-account-h2 {
  font-size: clamp(36px, 4.2vw, 60px) !important;
}
/* ===== official-account-card: ホバー無効化 ===== */
.official-account-card:hover {
  box-shadow: none !important;
  transform: none !important;
}
/* ===== what-head: 左寄せ ===== */
.what-head {
  text-align: left !important;
}
/* ===== what-sec: セクション全体 ===== */
.what-sec {
  padding-top: 150px !important;
  padding-bottom: 150px !important;
  background: #ffffff !important;
}
/* ===== what-strategy-block: 戦略上段エリア ===== */
.what-strategy-block {
  background: #f8f8f8;
  padding: 72px 40px;
  margin-bottom: 0;
  text-align: center;
}
.what-strategy-inner {
  max-width: 680px;
  margin: 0 auto;
}
/* 月桂樹バッジ */
.what-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  border: 1.5px solid #000000;
  border-radius: 2px;
  padding: 8px 20px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #000000;
  margin-bottom: 48px;
}
.what-badge-icon {
  display: inline-block;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}
/* 2行ヘッドライン */
.what-strategy-headline {
  font-size: clamp(22px, 4vw, 30px);
  font-weight: 900;
  color: #000000;
  line-height: 1.0;
  margin: 0 0 48px;
  letter-spacing: -0.02em;
  text-align: center;
}
.what-strategy-headline .hl-line1 {
  display: block;
  font-size: clamp(28px, 5vw, 40px);
  margin-bottom: 20px;
}
.what-strategy-headline .hl-line2 {
  display: block;
  font-size: clamp(16px, 2.8vw, 22px);
  font-weight: 700;
  color: #444444;
  letter-spacing: .01em;
}
/* 本文 */
.what-strategy-body {
  font-size: 15px;
  line-height: 1.85;
  color: #333333;
  margin: 0 0 48px;
  text-align: left;
}
/* ボタン */
.what-strategy-btn {
  display: inline-block;
  padding: 16px 40px;
  background: #000000;
  color: #ffffff;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .06em;
  text-decoration: none;
  border: 2px solid #000000;
  transition: background .2s, color .2s;
}
.what-strategy-btn:hover {
  background: #ffffff;
  color: #000000;
}
/* ===== what-flow-bridge: 静止ブロックアロー ===== */
.what-flow-bridge {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  padding: 80px 0 0;
  margin-bottom: 100px;
  text-align: center;
}
/* ボディ（黒い長方形） */
.what-block-arrow {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: clamp(320px, 70%, 600px);
  min-height: 80px;
  background: #000000;
  padding: 24px 48px;
  margin-bottom: -1px;
  flex-shrink: 0;
}
/* ボディ内テキスト */
.what-block-arrow-text {
  display: block !important;
  font-size: clamp(16px, 2.4vw, 20px);
  font-weight: 900;
  color: #ffffff;
  letter-spacing: .04em;
  line-height: 1.3;
  white-space: nowrap;
}
/* 三角形ヘッド */
.what-block-arrow-tip {
  display: block !important;
  width: clamp(320px, 70%, 600px);
  height: 44px;
  background: #000000;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  flex-shrink: 0;
}
/* SVG矢印・宣言テキストは非表示 */
.what-vector-arrow, .what-vector-label { display: none; }
.what-flow-arrow, .what-flow-label { display: none; }
/* what-card: 背景・ボーダー・シャドウ復旧 */
.what-card {
  background: #f8f8f8 !important;
  border: 1px solid #eeeeee !important;
  box-shadow: none !important;
}
@media (max-width: 768px) {
  .what-sec {
    padding-top: 80px !important;
    padding-bottom: 80px !important;
  }
  .what-strategy-headline .hl-line1 {
    font-size: clamp(22px, 7vw, 32px);
  }
  .what-strategy-headline .hl-line2 {
    font-size: clamp(14px, 4vw, 18px);
  }
  .what-strategy-body {
    font-size: 14px;
  }
  .what-flow-arrow {
    height: 90px;
    width: 7px;
  }
  .what-flow-label {
    font-size: 17px;
    margin-top: 32px;
  }
}
/* ===== case-note: 背景・ボーダー無効化 ===== */
.case-note {
  background: none !important;
  border: none !important;
  padding: 0 !important;
  margin-top: 0 !important;
}
.case-note::before {
  display: none !important;
}
/* ===== case-grid: 3枚固定グリッド ===== */
.case-grid-wrap {
  padding: 0 80px 0;
}
.case-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  align-items: stretch;
}
.case-grid .case-card {
  display: flex;
  flex-direction: column;
}
.case-grid .case-card .case-card-body {
  padding: 48px;
}
.case-grid .case-industry {
  font-size: clamp(18px, 1.6vw, 24px);
  letter-spacing: -.01em;
  color: #28282D;
  font-weight: 700;
  margin-bottom: 16px;
  text-transform: none;
}
.case-grid .case-results {
  margin-top: auto;
}
.case-grid .case-card-body {
  display: flex;
  flex-direction: column;
  flex: 1;
}
.case-grid .case-card-result {
  margin-top: auto;
}
/* SP: スワイプ仕様 */
@media (max-width: 767px) {
  .case-grid-wrap {
    padding: 0;
    overflow-x: clip;
  }
  .case-grid {
    display: flex;
    flex-direction: row;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    gap: 16px;
    padding: 0 16px 16px;
    grid-template-columns: unset;
  }
  .case-grid::-webkit-scrollbar {
    display: none;
  }
  .case-grid .case-card {
    flex: 0 0 80vw;
    max-width: 320px;
    scroll-snap-align: start;
  }
}
  /* ===== TikTokカラーオーバーライド: #EC4899 → TikTok gradient(#EE1D52→#69C9D0) / solid #010101 ===== */
  /* kv-service-label: グラデ不可 → #010101 */
  .kv-service-label { color: #010101 !important; }
  /* case-note: グラデ不可 → #010101 */
  .case-note { border-left-color: #010101 !important; }
  .case-note::before { color: #010101 !important; }
  /* what-card-tag.ads: グラデ背景 */
  .what-card-tag.ads { background: linear-gradient(135deg, #EE1D52, #69C9D0) !important; color: #fff !important; }
  /* what-card-desc-lead: グラデ不可 → #010101 */
  .what-card-desc-lead { border-left-color: #010101 !important; }
  /* what-card-feature bullet: グラデ不可 → #010101 */
  .what-card-feature::before { background: #010101 !important; }
  /* case-result-banner 左ライン: グラデ */
  .case-result-banner::before { background: linear-gradient(180deg, #EE1D52, #69C9D0) !important; }
  /* crb-tag hover: グラデ不可 → #010101 */
  .crb-tag:hover { border-color: #010101 !important; color: #010101 !important; background: #F5F5F5 !important; }
  /* crb-metric-num 下線: グラデ */
  .crb-metric-num::after { background: linear-gradient(90deg, #EE1D52, #69C9D0) !important; }
  /* crb-eyebrow: グラデ不可 → #010101 */
  .crb-eyebrow { color: #010101 !important; }
  .crb-eyebrow::before { background: #010101 !important; }
  /* crb-headline em: グラデ文字 */
  .crb-headline em { background: linear-gradient(135deg, #EE1D52, #69C9D0) !important; -webkit-background-clip: text !important; -webkit-text-fill-color: transparent !important; background-clip: text !important; }
  /* crb-cta: グラデ背景 */
  .crb-cta { background: linear-gradient(135deg, #EE1D52, #69C9D0) !important; }
  /* plan-tab-btn active underline: グラデ */
  .plan-tab-btn::after { background: linear-gradient(90deg, #EE1D52, #69C9D0) !important; }
  /* plan-card-recommended: グラデ背景 */
  .plan-card-recommended { background: linear-gradient(135deg, #EE1D52, #69C9D0) !important; color: #fff !important; }
  /* plan-redirect-link hover: グラデ不可 → #010101 */
  .plan-redirect-link:hover { border-color: #010101 !important; background: rgba(1,1,1,.04) !important; color: #010101 !important; }
  /* official-account-arrow: グラデ不可 → #010101 */
  .official-account-arrow { color: #010101 !important; }
  /* cta-mid-eyebrow: グラデ不可 → #010101 */
  .cta-mid-eyebrow { color: #010101 !important; }
  /* swiper pagination active: グラデ不可 → #010101 */
  .case-swiper-pagination .swiper-pagination-bullet-active { background: #010101 !important; }
  .swiper-pagination-bullet-active { background: #010101 !important; }
  /* challenge-tags-label 縦線: グラデ不可 → #010101 */
  .challenge-tags-label::before { background: linear-gradient(180deg, #EE1D52, #69C9D0) !important; }
  .case-sec .sp-swipe-hint { color: #ffffff; }
  
/* PAGE: /sns/x/ - 固有スタイル (page-sns-x.css より統合) */

/* ===== KV SERVICE LABEL ===== */
.kv-service-label {
  display: inline-flex;
  align-items: center;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 900;
  font-size: clamp(13px, 1.1vw, 14px);
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #fff;
  border-left: 3px solid rgba(255,255,255,.9);
  padding: 4px 0 4px 14px;
  margin-bottom: 22px;
  position: relative;
  z-index: 2;
}
/* ===== KV SPLASH: REMOVED ===== */
.kv-right { display: none !important; }
.kv-splash { display: none !important; }
/* ===== KV PADDING: 上下余白削減 ===== */
.kv {
  min-height: auto !important;
  padding: var(--kv-padding-v, 72px) 80px !important;
}
/* ===== KV INNER: full-width text layout (2-line H1) ===== */
@media (min-width: 769px) {
  .kv .kv-inner {
    grid-template-columns: 1fr !important;
    max-width: 1400px !important;
  }
  .kv .kv-h1 {
    font-size: clamp(40px, 6vw, 88px) !important;
    line-height: 1.2 !important;
    letter-spacing: -0.04em !important;
    margin-bottom: 32px !important;
  }
  .kv .kv-eyebrow {
    font-size: clamp(28px, 4vw, 56px) !important;
    font-weight: 900 !important;
    letter-spacing: -0.02em !important;
    color: #ffffff !important;
    margin-bottom: 20px !important;
    gap: 20px !important;
  }
  .kv .kv-eyebrow::before {
    display: none !important;
  }
  .kv .kv-sub {
    margin-bottom: 0 !important;
  }
}
@media (max-width: 768px) {
  .kv {
    padding: var(--kv-padding-v-sp, 56px) 24px !important;
    min-height: auto !important;
  }
  .kv .kv-h1 {
    color: #ffffff !important;
  }
  .kv .kv-eyebrow {
    color: rgba(255,255,255,.85) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: .15em !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
  }
  .kv .kv-eyebrow::before {
    content: '' !important;
    display: inline-block !important;
    width: 24px !important;
    height: 2px !important;
    background: rgba(255,255,255,.7) !important;
    flex-shrink: 0 !important;
  }
  .kv .kv-sub {
    color: #ffffff !important;
    font-size: 15px !important;
    font-weight: 400 !important;
  }
  .kv .kv-body {
    color: #ffffff !important;
    font-size: 14px !important;
    line-height: 1.9 !important;
    font-weight: 400 !important;
  }
}
/* ===== KV ACTIONS: 非表示 ===== */
.kv-actions { display: none !important; }
.kv-service-label { display: none !important; }
/* ===== crb-tag: ホバー無効化 ===== */
.crb-tag:hover {
  border-color: #D8D8D8 !important;
  color: #444 !important;
  background: #fff !important;
}

/* ===== myth-sec 白黒反転 ===== */
.myth-sec {
  background: #fff !important;
}
.myth-head {
  text-align: left !important;
}
.myth-head .sec-body {
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.myth-card {
  background: #ffffff !important;
}
.myth-card-title {
  color: #1a1a1a !important;
}
.myth-card-desc {
  color: #333 !important;
}
.myth-card-num {
  color: #1a1a1a !important;
}
.myth-card-title em {
  color: #1a1a1a !important;
}
.myth-card-title {
  font-size: clamp(20px, 2.5vw, 28px) !important;
}
.myth-sec .sec-h2 {
  color: #1a1a1a !important;
}
.myth-sec .sec-eyebrow {
  color: #888 !important;
}
.myth-sec .sec-body {
  color: #444 !important;
}
/* ===== 見出し左端統一（voice-head基準: 80px） ===== */
.myth-sec,
.what-sec,
.plan-sec,
.faq-sec,
.blog-sec,
.area-sec {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.myth-inner,
.what-inner,
.plan-inner,
.faq-head,
.blog-inner,
.area-inner {
  padding-left: 80px !important;
  padding-right: 80px !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
@media (max-width: 768px) {
  .myth-inner,
  .what-inner,
  .plan-inner,
  .faq-head,
  .blog-inner,
  .area-inner {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
}

/* ===== what-card-tag.ads 背景を黒に ===== */
.what-card-tag.ads {
  background: #000000 !important;
}

/* ===== plan-tab アンダーラインを黒に ===== */
.plan-tab-btn::after {
  background: #000000 !important;
}

/* ===== what-head 左寄せ ===== */
.what-head {
  text-align: left !important;
}
.what-head .sec-body {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* ===== what-card アクセントカラー（黒） ===== */
.what-card-desc-lead {
  border-left-color: #000000 !important;
}
.what-card-feature::before {
  background: #000000 !important;
}

/* ===== what-strategy-block: 戦略上段エリア ===== */
.what-strategy-block {
  background: #f8f8f8;
  padding: 72px 40px;
  margin-bottom: 0;
  text-align: center;
}
.what-strategy-inner {
  max-width: 680px;
  margin: 0 auto;
}
/* 月桂樹バッジ */
.what-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  border: 1.5px solid #000000;
  border-radius: 2px;
  padding: 8px 20px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #000000;
  margin-bottom: 48px;
}
.what-badge-icon {
  display: inline-block;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}
/* 2行ヘッドライン */
.what-strategy-headline {
  font-size: clamp(22px, 4vw, 30px);
  font-weight: 900;
  color: #000000;
  line-height: 1.0;
  margin: 0 0 48px;
  letter-spacing: -0.02em;
  text-align: center;
}
.what-strategy-headline .hl-line1 {
  display: block;
  font-size: clamp(28px, 5vw, 40px);
  margin-bottom: 20px;
}
.what-strategy-headline .hl-line2 {
  display: block;
  font-size: clamp(16px, 2.8vw, 22px);
  font-weight: 700;
  color: #444444;
  letter-spacing: .01em;
}
/* 本文 */
.what-strategy-body {
  font-size: 15px;
  line-height: 1.85;
  color: #333333;
  margin: 0 0 48px;
  text-align: left;
}
/* ボタン */
.what-strategy-btn {
  display: inline-block;
  padding: 16px 40px;
  background: #000000;
  color: #ffffff;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .06em;
  text-decoration: none;
  border: 2px solid #000000;
  transition: background .2s, color .2s;
}
.what-strategy-btn:hover {
  background: #ffffff;
  color: #000000;
}
/* ===== what-flow-bridge: 静止ブロックアロー ===== */
.what-flow-bridge {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  padding: 80px 0 0;
  margin-bottom: 100px;
  text-align: center;
}
/* ボディ（黒い長方形） */
.what-block-arrow {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: clamp(320px, 70%, 600px);
  min-height: 80px;
  background: #000000;
  padding: 24px 48px;
  margin-bottom: -1px;
  flex-shrink: 0;
}
/* ボディ内テキスト */
.what-block-arrow-text {
  display: block !important;
  font-size: clamp(16px, 2.4vw, 20px);
  font-weight: 900;
  color: #ffffff;
  letter-spacing: .04em;
  line-height: 1.3;
  white-space: nowrap;
}
/* 三角形ヘッド */
.what-block-arrow-tip {
  display: block !important;
  width: clamp(320px, 70%, 600px);
  height: 44px;
  background: #000000;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  flex-shrink: 0;
}
@media (max-width: 768px) {
  .what-strategy-block { padding: 56px 24px; }
  .what-strategy-headline .hl-line1 { font-size: clamp(22px, 7vw, 32px); }
  .what-strategy-headline .hl-line2 { font-size: clamp(14px, 4vw, 18px); }
  .what-flow-bridge { padding: 56px 0 0; margin-bottom: 64px; }
  .what-block-arrow-text { white-space: normal; }
}
  
/* PAGE: /sns/youtube/ - 固有スタイル (page-sns-youtube.css より統合) */

/* ===== KV SERVICE LABEL ===== */
.kv-service-label {
  display: inline-flex;
  align-items: center;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 900;
  font-size: clamp(13px, 1.1vw, 14px);
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #fff;
  border-left: 3px solid rgba(255,255,255,.9);
  padding: 4px 0 4px 14px;
  margin-bottom: 22px;
  position: relative;
  z-index: 2;
}
/* ===== KV SPLASH: REMOVED ===== */
.kv-right { display: none !important; }
.kv-splash { display: none !important; }
/* ===== KV PADDING: 上下余白削減 ===== */
.kv {
  min-height: auto !important;
  padding: var(--kv-padding-v, 72px) 80px !important;
}
/* ===== KV INNER: full-width text layout (2-line H1) ===== */
@media (min-width: 769px) {
  .kv .kv-inner {
    grid-template-columns: 1fr !important;
    max-width: 1400px !important;
  }
  .kv .kv-h1 {
    font-size: clamp(40px, 6vw, 88px) !important;
    line-height: 1.2 !important;
    letter-spacing: -0.04em !important;
    margin-bottom: 32px !important;
  }
  .kv .kv-eyebrow {
    font-size: clamp(28px, 4vw, 56px) !important;
    font-weight: 900 !important;
    letter-spacing: -0.02em !important;
    color: #ffffff !important;
    margin-bottom: 20px !important;
    gap: 20px !important;
  }
  .kv .kv-eyebrow::before {
    display: none !important;
  }
  .kv .kv-sub {
    margin-bottom: 0 !important;
  }
}
@media (max-width: 768px) {
  .kv {
    padding: var(--kv-padding-v-sp, 56px) 24px !important;
    min-height: auto !important;
  }
}
/* ===== KV ACTIONS: 非表示 ===== */
.kv-actions { display: none !important; }
.kv-service-label { display: none !important; }
/* ===== crb-tag: ホバー無効化 ===== */
.crb-tag:hover {
  border-color: #D8D8D8 !important;
  color: #444 !important;
  background: #fff !important;
}
/* ===== 見出し左端統一（voice-head基準: 80px） ===== */
.what-sec,
.plan-sec,
.faq-sec,
.blog-sec,
.area-sec {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.what-inner,
.plan-inner,
.faq-head,
.blog-inner,
.area-inner {
  padding-left: 80px !important;
  padding-right: 80px !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
@media (max-width: 768px) {
  .what-inner,
  .plan-inner,
  .faq-head,
  .blog-inner,
  .area-inner {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
}
/* ===== what-card-tag.ads 背景を黒に ===== */
.what-card-tag.ads {
  background: #000000 !important;
}
/* ===== plan-tab アンダーラインを黒に ===== */
.plan-tab-btn::after {
  background: #000000 !important;
}
/* ===== what-head 左寄せ ===== */
.what-head {
  text-align: left !important;
}
.what-head .sec-body {
  margin-left: 0 !important;
  margin-right: 0 !important;
}
/* ===== what-card アクセントカラー（黒） ===== */
.what-card-desc-lead {
  border-left-color: #000000 !important;
}
.what-card-feature::before {
  background: #000000 !important;
}
/* ===== what-strategy-block: 戦略上段エリア ===== */
.what-strategy-block {
  background: #f8f8f8;
  padding: 72px 40px;
  margin-bottom: 0;
  text-align: center;
}
.what-strategy-inner {
  max-width: 680px;
  margin: 0 auto;
}
/* 月桂樹バッジ */
.what-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  border: 1.5px solid #000000;
  border-radius: 2px;
  padding: 8px 20px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #000000;
  margin-bottom: 48px;
}
.what-badge-icon {
  display: inline-block;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}
/* 2行ヘッドライン */
.what-strategy-headline {
  font-size: clamp(22px, 4vw, 30px);
  font-weight: 900;
  color: #000000;
  line-height: 1.0;
  margin: 0 0 48px;
  letter-spacing: -0.02em;
  text-align: center;
}
.what-strategy-headline .hl-line1 {
  display: block;
  font-size: clamp(28px, 5vw, 40px);
  margin-bottom: 20px;
}
.what-strategy-headline .hl-line2 {
  display: block;
  font-size: clamp(16px, 2.8vw, 22px);
  font-weight: 700;
  color: #444444;
  letter-spacing: .01em;
}
/* 本文 */
.what-strategy-body {
  font-size: 15px;
  line-height: 1.85;
  color: #333333;
  margin: 0 0 48px;
  text-align: left;
}
/* ボタン */
.what-strategy-btn {
  display: inline-block;
  padding: 16px 40px;
  background: #000000;
  color: #ffffff;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .06em;
  text-decoration: none;
  border: 2px solid #000000;
  transition: background .2s, color .2s;
}
.what-strategy-btn:hover {
  background: #ffffff;
  color: #000000;
}
/* ===== what-flow-bridge: 静止ブロックアロー ===== */
.what-flow-bridge {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  padding: 80px 0 0;
  margin-bottom: 100px;
  text-align: center;
}
/* ボディ（黒い長方形） */
.what-block-arrow {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: clamp(320px, 70%, 600px);
  min-height: 80px;
  background: #000000;
  padding: 24px 48px;
  margin-bottom: -1px;
  flex-shrink: 0;
}
/* ボディ内テキスト */
.what-block-arrow-text {
  display: block !important;
  font-size: clamp(16px, 2.4vw, 20px);
  font-weight: 900;
  color: #ffffff;
  letter-spacing: .04em;
  line-height: 1.3;
  white-space: nowrap;
}
/* 三角形ヘッド */
.what-block-arrow-tip {
  display: block !important;
  width: clamp(320px, 70%, 600px);
  height: 44px;
  background: #000000;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  flex-shrink: 0;
}
@media (max-width: 768px) {
  .what-strategy-block { padding: 56px 24px; }
  .what-strategy-headline .hl-line1 { font-size: clamp(22px, 7vw, 32px); }
  .what-strategy-headline .hl-line2 { font-size: clamp(14px, 4vw, 18px); }
  .what-flow-bridge { padding: 56px 0 0; margin-bottom: 64px; }
  .what-block-arrow-text { white-space: normal; }
}
  
/* PAGE: /sns/line/ - 固有スタイル (page-sns-line.css より統合) */

/* ===== KV SERVICE LABEL ===== */
.kv-service-label {
  display: inline-flex;
  align-items: center;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 900;
  font-size: clamp(13px, 1.1vw, 14px);
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #fff;
  border-left: 3px solid rgba(255,255,255,.9);
  padding: 4px 0 4px 14px;
  margin-bottom: 22px;
  position: relative;
  z-index: 2;
}
/* ===== KV SPLASH: REMOVED ===== */
.kv-right { display: none !important; }
.kv-splash { display: none !important; }
/* ===== KV PADDING: 上下余白削減 ===== */
.kv {
  min-height: auto !important;
  padding: var(--kv-padding-v, 72px) 80px !important;
}
/* ===== KV INNER: full-width text layout (2-line H1) ===== */
@media (min-width: 769px) {
  .kv .kv-inner {
    grid-template-columns: 1fr !important;
    max-width: 1400px !important;
  }
  .kv .kv-h1 {
    font-size: clamp(40px, 6vw, 88px) !important;
    line-height: 1.2 !important;
    letter-spacing: -0.04em !important;
    margin-bottom: 32px !important;
  }
  .kv .kv-eyebrow {
    font-size: clamp(28px, 4vw, 56px) !important;
    font-weight: 900 !important;
    letter-spacing: -0.02em !important;
    color: #ffffff !important;
    margin-bottom: 20px !important;
    gap: 20px !important;
  }
  .kv .kv-eyebrow::before {
    display: none !important;
  }
  .kv .kv-sub {
    margin-bottom: 0 !important;
  }
}
@media (max-width: 768px) {
  .kv {
    padding: var(--kv-padding-v-sp, 56px) 24px !important;
    min-height: auto !important;
  }
  .kv .kv-h1 {
    color: #ffffff !important;
  }
  .kv .kv-eyebrow {
    color: rgba(255,255,255,.85) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: .15em !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
  }
  .kv .kv-eyebrow::before {
    content: '' !important;
    display: inline-block !important;
    width: 24px !important;
    height: 2px !important;
    background: rgba(255,255,255,.7) !important;
    flex-shrink: 0 !important;
  }
  .kv .kv-sub {
    color: #ffffff !important;
    font-size: 15px !important;
    font-weight: 400 !important;
  }
  .kv .kv-body {
    color: #ffffff !important;
    font-size: 14px !important;
    line-height: 1.9 !important;
    font-weight: 400 !important;
  }
  .kv-question {
    color: rgba(255,255,255,.65) !important;
    font-size: 14px !important;
  }
}
  
/* PAGE: /sns/note/ - 固有スタイル (page-sns-note.css より統合) */

/* ===== KV SERVICE LABEL ===== */
.kv-service-label {
  display: inline-flex;
  align-items: center;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 900;
  font-size: clamp(13px, 1.1vw, 14px);
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #fff;
  border-left: 3px solid rgba(255,255,255,.9);
  padding: 4px 0 4px 14px;
  margin-bottom: 22px;
  position: relative;
  z-index: 2;
}
/* ===== KV SPLASH: REMOVED ===== */
.kv-right { display: none !important; }
.kv-splash { display: none !important; }
/* ===== KV PADDING: 上下余白削減 ===== */
.kv {
  min-height: auto !important;
  padding: var(--kv-padding-v, 72px) 80px !important;
}
/* ===== KV INNER: full-width text layout (2-line H1) ===== */
@media (min-width: 769px) {
  .kv .kv-inner {
    grid-template-columns: 1fr !important;
    max-width: 1400px !important;
  }
  .kv .kv-h1 {
    font-size: clamp(40px, 6vw, 88px) !important;
    line-height: 1.2 !important;
    letter-spacing: -0.04em !important;
    margin-bottom: 32px !important;
  }
  .kv .kv-eyebrow {
    font-size: clamp(28px, 4vw, 56px) !important;
    font-weight: 900 !important;
    letter-spacing: -0.02em !important;
    color: #ffffff !important;
    margin-bottom: 20px !important;
    gap: 20px !important;
  }
  .kv .kv-eyebrow::before {
    display: none !important;
  }
  .kv .kv-sub {
    margin-bottom: 0 !important;
  }
}
@media (max-width: 768px) {
  .kv {
    padding: var(--kv-padding-v-sp, 56px) 24px !important;
    min-height: auto !important;
  }
  .kv .kv-h1 {
    color: #ffffff !important;
  }
  .kv .kv-eyebrow {
    color: rgba(255,255,255,.85) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: .15em !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
  }
  .kv .kv-eyebrow::before {
    content: '' !important;
    display: inline-block !important;
    width: 24px !important;
    height: 2px !important;
    background: rgba(255,255,255,.7) !important;
    flex-shrink: 0 !important;
  }
  .kv .kv-sub {
    color: #ffffff !important;
    font-size: 15px !important;
    font-weight: 400 !important;
  }
  .kv .kv-body {
    color: #ffffff !important;
    font-size: 14px !important;
    line-height: 1.9 !important;
    font-weight: 400 !important;
  }
}
/* ===== KV ACTIONS: 非表示 ===== */
.kv-actions { display: none !important; }
.kv-service-label { display: none !important; }
/* ===== crb-tag: ホバー無効化 ===== */
.crb-tag:hover {
  border-color: #D8D8D8 !important;
  color: #444 !important;
  background: #fff !important;
}
/* ===== official-account-h2: 共通h2サイズに統一 ===== */
.official-account-h2 {
  font-size: clamp(36px, 4.2vw, 60px) !important;
}
/* ===== official-account-card: ホバー無効化 ===== */
.official-account-card:hover {
  box-shadow: none !important;
  transform: none !important;
}
/* ===== what-head: 左寄せ ===== */
.what-head {
  text-align: left !important;
}
/* ===== what-sec: セクション全体 ===== */
.what-sec {
  padding-top: 150px !important;
  padding-bottom: 150px !important;
  background: #ffffff !important;
}
/* ===== what-strategy-block: 戦略上段エリア ===== */
.what-strategy-block {
  background: #f8f8f8;
  padding: 72px 40px;
  margin-bottom: 0;
  text-align: center;
}
.what-strategy-inner {
  max-width: 680px;
  margin: 0 auto;
}
/* 月桂樹バッジ */
.what-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  border: 1.5px solid #000000;
  border-radius: 2px;
  padding: 8px 20px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #000000;
  margin-bottom: 48px;
}
.what-badge-icon {
  display: inline-block;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}
/* 2行ヘッドライン */
.what-strategy-headline {
  font-size: clamp(22px, 4vw, 30px);
  font-weight: 900;
  color: #000000;
  line-height: 1.0;
  margin: 0 0 48px;
  letter-spacing: -0.02em;
  text-align: center;
}
.what-strategy-headline .hl-line1 {
  display: block;
  font-size: clamp(28px, 5vw, 40px);
  margin-bottom: 20px;
}
.what-strategy-headline .hl-line2 {
  display: block;
  font-size: clamp(16px, 2.8vw, 22px);
  font-weight: 700;
  color: #444444;
  letter-spacing: .01em;
}
/* 本文 */
.what-strategy-body {
  font-size: 15px;
  line-height: 1.85;
  color: #333333;
  margin: 0 0 48px;
  text-align: left;
}
/* ボタン */
.what-strategy-btn {
  display: inline-block;
  padding: 16px 40px;
  background: #000000;
  color: #ffffff;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .06em;
  text-decoration: none;
  border: 2px solid #000000;
  transition: background .2s, color .2s;
}
.what-strategy-btn:hover {
  background: #ffffff;
  color: #000000;
}
/* ===== what-flow-bridge: 静止ブロックアロー ===== */
.what-flow-bridge {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  padding: 80px 0 0;
  margin-bottom: 100px;
  text-align: center;
}
/* ボディ（黒い長方形） */
.what-block-arrow {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: clamp(320px, 70%, 600px);
  min-height: 80px;
  background: #000000;
  padding: 24px 48px;
  margin-bottom: -1px;
  flex-shrink: 0;
}
/* ボディ内テキスト */
.what-block-arrow-text {
  display: block !important;
  font-size: clamp(16px, 2.4vw, 20px);
  font-weight: 900;
  color: #ffffff;
  letter-spacing: .04em;
  line-height: 1.3;
  white-space: nowrap;
}
/* 三角形ヘッド */
.what-block-arrow-tip {
  display: block !important;
  width: clamp(320px, 70%, 600px);
  height: 44px;
  background: #000000;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  flex-shrink: 0;
}
/* SVG矢印・宣言テキストは非表示 */
.what-vector-arrow, .what-vector-label { display: none; }
.what-flow-arrow, .what-flow-label { display: none; }
/* what-card: 背景・ボーダー・シャドウ復旧 */
.what-card {
  background: #f8f8f8 !important;
  border: 1px solid #eeeeee !important;
  box-shadow: none !important;
}
@media (max-width: 768px) {
  .what-sec {
    padding-top: 80px !important;
    padding-bottom: 80px !important;
  }
  .what-strategy-headline .hl-line1 {
    font-size: clamp(22px, 7vw, 32px);
  }
  .what-strategy-headline .hl-line2 {
    font-size: clamp(14px, 4vw, 18px);
  }
  .what-strategy-body {
    font-size: 14px;
  }
  .what-flow-arrow {
    height: 90px;
    width: 7px;
  }
  .what-flow-label {
    font-size: 17px;
    margin-top: 32px;
  }
}
/* ===== case-note: 背景・ボーダー無効化 ===== */
.case-note {
  background: none !important;
  border: none !important;
  padding: 0 !important;
  margin-top: 0 !important;
}
.case-note::before {
  display: none !important;
}
/* ===== case-grid: 3枚固定グリッド ===== */
.case-grid-wrap {
  padding: 0 80px 0;
}
.case-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  align-items: stretch;
}
.case-grid .case-card {
  display: flex;
  flex-direction: column;
}
.case-grid .case-card-body {
  display: flex;
  flex-direction: column;
  flex: 1;
}
.case-grid .case-card-result {
  margin-top: auto;
}
/* SP: 1列 */
@media (max-width: 767px) {
  .case-grid-wrap {
    padding: 0 16px 0;
  }
  .case-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}
/* ===== our-note-head: 左寄せ ===== */
.our-note-head {
  text-align: left !important;
}
/* ===== our-note-stat-num: 黒文字 ===== */
.our-note-stat-num {
  color: #000000 !important;
}
/* ===== what-strategy-block: 戦略上段エリア ===== */
.what-strategy-block {
  background: #f8f8f8;
  padding: 72px 40px;
  margin-bottom: 0;
  text-align: center;
}
.what-strategy-inner {
  max-width: 680px;
  margin: 0 auto;
}
.what-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  border: 1.5px solid #000000;
  border-radius: 2px;
  padding: 8px 20px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #000000;
  margin-bottom: 48px;
}
.what-badge-icon {
  display: inline-block;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}
.what-strategy-headline {
  font-size: clamp(22px, 4vw, 30px);
  font-weight: 900;
  color: #000000;
  line-height: 1.0;
  margin: 0 0 48px;
  letter-spacing: -0.02em;
  text-align: center;
}
.what-strategy-headline .hl-line1 {
  display: block;
  font-size: clamp(28px, 5vw, 40px);
  margin-bottom: 20px;
}
.what-strategy-headline .hl-line2 {
  display: block;
  font-size: clamp(16px, 2.8vw, 22px);
  font-weight: 700;
  color: #444444;
  letter-spacing: .01em;
}
.what-strategy-body {
  font-size: 15px;
  line-height: 1.85;
  color: #333333;
  margin: 0 0 48px;
  text-align: left;
}
.what-strategy-btn {
  display: inline-block;
  padding: 16px 40px;
  background: #000000;
  color: #ffffff;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .06em;
  text-decoration: none;
  border: 2px solid #000000;
  transition: background .2s, color .2s;
}
.what-strategy-btn:hover {
  background: #ffffff;
  color: #000000;
}
/* ===== what-flow-bridge: 静止ブロックアロー ===== */
.what-flow-bridge {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  padding: 80px 0 0;
  margin-bottom: 100px;
  text-align: center;
}
.what-block-arrow {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: clamp(320px, 70%, 600px);
  min-height: 80px;
  background: #000000;
  padding: 24px 48px;
  margin-bottom: -1px;
  flex-shrink: 0;
}
.what-block-arrow-text {
  display: block !important;
  font-size: clamp(16px, 2.4vw, 20px);
  font-weight: 900;
  color: #ffffff;
  letter-spacing: .04em;
  line-height: 1.3;
  white-space: nowrap;
}
.what-block-arrow-tip {
  display: block !important;
  width: clamp(320px, 70%, 600px);
  height: 44px;
  background: #000000;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  flex-shrink: 0;
}
@media (max-width: 768px) {
  .what-strategy-block { padding: 56px 24px; }
  .what-strategy-headline .hl-line1 { font-size: clamp(22px, 7vw, 32px); }
  .what-strategy-headline .hl-line2 { font-size: clamp(14px, 4vw, 18px); }
  .what-flow-bridge { padding: 56px 0 0; margin-bottom: 64px; }
  .what-block-arrow-text { white-space: normal; }
}
/* ===== noteカラー上書き: 縦線・箇箇箇点 ===== */
.what-card-desc-lead {
  border-left-color: #41C9B4 !important;
}
.what-card-feature::before {
  background: #41C9B4 !important;
}
/* ===== 全大見出し左端位置をvoice-head（80px）に統一 ===== */
/* our-note-sec: padding:40px → 0、innerにpadding:0 80px */
.our-note-sec {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.our-note-inner {
  max-width: none !important;
  margin: 0 !important;
  padding: 0 80px !important;
}
/* what-sec: innerにpadding:0 80px、max-width解除 */
.what-sec {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.what-inner {
  max-width: none !important;
  margin: 0 !important;
  padding: 0 80px !important;
}
/* plan-sec: innerにpadding:0 80px、max-width解除 */
.plan-sec {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.plan-inner {
  max-width: none !important;
  margin: 0 !important;
  padding: 0 80px !important;
}
@media (max-width: 768px) {
  .our-note-inner { padding: 0 20px !important; }
  .what-inner { padding: 0 20px !important; }
  .plan-inner { padding: 0 20px !important; }
}
  
/* PAGE: /voice/iwazawa/ - 固有スタイル (page-voice-iwazawa.css より統合) */

    /* ===== 詳細ページ専用スタイル ===== */

    /* パンくずリスト SP */
    .breadcrumb-sp{display:none;background:#F5F5F3;padding:10px 20px;border-top:1px solid #E8E8E8;}
    .breadcrumb-sp ol{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
    .breadcrumb-sp li{font-size:12px;color:#767680;display:flex;align-items:center;gap:8px;}
    .breadcrumb-sp li::after{content:'/';color:#C0C0C0;}
    .breadcrumb-sp li:last-child::after{display:none}
    .breadcrumb-sp a{color:#767680;}

    /* ページヒーロー */
    .page-hero{padding:140px 80px 64px;background:#fff;border-bottom:1px solid #E8E8E8;}
    .page-hero-inner{max-width:1100px;margin:0 auto;}
    .page-hero-eyebrow{font-size:11px;letter-spacing:.22em;color:#767680;font-weight:700;text-transform:uppercase;margin-bottom:16px;display:block;}
    #voice-title{font-size:clamp(36px,4.2vw,60px);font-weight:900;line-height:1.2;letter-spacing:-.04em;color:#28282D;}

    /* クライアント情報 */
    .client-info{display:flex;align-items:flex-start;gap:80px;max-width:1100px;margin:0 auto;padding:64px 80px 80px;}
    .client-info-main{flex:1;}
    .client-meta{display:flex;gap:0;margin-bottom:32px;border:1px solid #E8E8E8;}
    .client-meta-item{display:flex;align-items:center;padding:14px 24px;border-right:1px solid #E8E8E8;gap:16px;}
    .client-meta-item:last-child{border-right:none;}
    .client-meta-label{font-size:11px;letter-spacing:.12em;color:#767680;font-weight:700;white-space:nowrap;background:#F7F7F5;padding:4px 10px;}
    .client-meta-val{font-size:14px;color:#28282D;letter-spacing:.02em;}
    .client-service{display:block;margin-bottom:16px;}
    .client-service-label{font-size:11px;letter-spacing:.12em;color:#767680;font-weight:700;background:#F7F7F5;padding:4px 10px;white-space:nowrap;}
    .client-service-tag{display:inline-flex;align-items:center;padding:6px 16px;border:1px solid #D8D8DC;font-size:13px;color:#28282D;letter-spacing:.04em;margin-top:8px;}
    .client-url{display:block;margin-top:16px;}
    .client-url-label{font-size:11px;letter-spacing:.12em;color:#767680;font-weight:700;background:#F7F7F5;padding:4px 10px;white-space:nowrap;}
    .client-url-link{font-size:13px;color:#28282D;text-decoration:underline;text-underline-offset:3px;transition:opacity .2s;}
    .client-url-link:hover{opacity:.6;}
    .client-img{width:360px;flex-shrink:0;aspect-ratio:4/3;background:#EDEDEE;overflow:hidden;display:flex;align-items:center;justify-content:center;}
    .client-img img{width:100%;height:100%;object-fit:cover;}

    /* インタビューセクション */
    .interview-sec{padding:0 80px 120px;}
    .interview-inner{max-width:1100px;margin:0 auto;}
    .interview-item{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;padding:80px 0;border-top:1px solid #E8E8E8;}
    .interview-item:nth-child(even) .interview-body{order:2;}
    .interview-item:nth-child(even) .interview-img{order:1;}
    .interview-num{font-size:11px;letter-spacing:.18em;color:#BBBBC0;font-weight:700;margin-bottom:20px;display:block;}
    .interview-q{font-size:clamp(20px,2.4vw,30px);font-weight:700;line-height:1.25;letter-spacing:-.03em;color:#28282D;margin-bottom:28px;position:relative;padding-left:24px;}
    .interview-q::before{content:'Q.';position:absolute;left:0;top:0;font-size:13px;font-weight:700;color:#BBBBC0;letter-spacing:.04em;}
    .interview-a{font-size:15px;line-height:2;color:#4A4A50;letter-spacing:.02em;}
    .interview-img{aspect-ratio:4/3;background:#EDEDEE;overflow:hidden;display:flex;align-items:center;justify-content:center;}
    .interview-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s cubic-bezier(.16,1,.3,1);}

    /* 一覧へ戻るリンク */
    .back-sec{padding:0 80px 80px;}
    .back-inner{max-width:1100px;margin:0 auto;padding-top:64px;border-top:1px solid #E8E8E8;display:flex;align-items:center;justify-content:center;}
    .back-link{display:inline-flex;align-items:center;gap:12px;font-size:13px;font-weight:700;color:#28282D;letter-spacing:.08em;text-transform:uppercase;border:1px solid #D8D8DC;padding:16px 40px;transition:background .2s,border-color .2s,color .2s;}
    .back-link:hover{background:#28282D;color:#fff;border-color:#28282D;}
    .back-link svg{transition:transform .2s;}
    .back-link:hover svg{transform:translateX(-4px);}

    /* CTA */
    .cta-sec{background:#111111;padding:120px 80px;position:relative;overflow:hidden;}
    .cta-sec::before{content:'';position:absolute;top:-40px;right:80px;width:400px;height:400px;background:radial-gradient(circle,rgba(99,102,241,.15) 0%,transparent 70%);pointer-events:none;}
    .cta-wrap{max-width:800px;margin:0 auto;text-align:center;position:relative;z-index:1;}
    .cta-eyebrow{font-size:11px;letter-spacing:.22em;color:rgba(255,255,255,.5);margin-bottom:24px;display:block;text-transform:uppercase;font-weight:600;}
    .cta-h2-line{display:block}
    .cta-h2{font-size:clamp(28px,4vw,52px);font-weight:700;line-height:1.3;letter-spacing:-.04em;color:#fff;margin-bottom:24px;}
    .cta-body{font-size:14px;line-height:1.9;color:#ffffff;margin-bottom:56px;}
    .cta-actions{display:flex;align-items:center;justify-content:center;gap:40px;flex-wrap:wrap;}
    .btn-cta{display:inline-flex;align-items:center;justify-content:center;height:60px;padding:0 52px;background:#fff;color:#28282D;font-size:15px;font-weight:700;letter-spacing:.06em;transition:opacity .2s;}
    .btn-cta:hover{opacity:.85;}

    /* SP固定CTA */

    /* フェードイン */
    .fu{opacity:0;transform:translateY(24px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);}
    .fu.on{opacity:1;transform:translateY(0);}

    /* ===== レスポンシブ ===== */
    @media(max-width:900px){
      .breadcrumb{display:none}
      .breadcrumb-sp{display:block}
      .page-hero{padding:100px 20px 48px;}
      #voice-title{font-size:clamp(28px,7.5vw,44px) !important;line-height:1.2 !important;letter-spacing:-.04em !important;word-break:auto-phrase;overflow-wrap:break-word;}
      #voice-title br{display:none;}
      .client-info{flex-direction:column;gap:24px;padding:32px 20px 40px;}
      .client-img{width:100%;aspect-ratio:16/9;}
      .client-meta{flex-direction:column;}
      .client-meta-item{border-right:none;border-bottom:1px solid #E8E8E8;padding:12px 16px;}
      .client-meta-item:last-child{border-bottom:none;}
      .client-service{margin-bottom:12px;}
      .interview-sec{padding:0 20px 72px;}
      .interview-item{grid-template-columns:1fr;gap:24px;padding:40px 0;}
      .interview-item:nth-child(even) .interview-body{order:1;}
      .interview-item:nth-child(even) .interview-img{order:2;}
      .interview-num{font-size:10px;letter-spacing:.2em;margin-bottom:14px;}
      .interview-q{font-size:clamp(18px,5vw,24px);line-height:1.3;padding-left:28px;margin-bottom:20px;}
      .interview-q::before{top:2px;font-size:12px;}
      .interview-a{font-size:14px;line-height:1.95;}
      .interview-img{aspect-ratio:16/9;}
      .back-sec{padding:0 20px 56px;}
      .back-inner{justify-content:center;}
      .back-link{width:100%;max-width:360px;justify-content:center;min-height:52px;font-size:13px;}
      .cta-sec{padding:72px 20px;}
      .cta-h2{font-size:clamp(22px,6vw,36px) !important;}
      .cta-h2-line{display:block;}
      .cta-body br{display:none;}
      .cta-body{font-size:14px;margin-bottom:40px;}
      .cta-actions{flex-direction:column;align-items:center;gap:16px;}
      .btn-cta{width:100%;max-width:360px;height:56px;font-size:15px;}
    }
    @media(max-width:768px){
    }
    @media(max-width:480px){
      #voice-title{font-size:clamp(24px,7vw,36px) !important;letter-spacing:-.04em !important;}
      .interview-q{font-size:clamp(16px,4.5vw,20px);}
    }
  
/* PAGE: /works/sanplaza/ - 固有スタイル (page-works-sanplaza.css より統合) */

    /* ===== WORKS DETAIL PAGE — INLINE CSS ===== */
    /* ヒーロー（黒背景・ダイナミック） */
    .works-hero{background:#111111;padding:160px 80px 100px;position:relative;overflow:hidden;}
    /* works-hero::before: radial-gradient削除済（ノイズゼロ） */
    .works-hero-inner{max-width:1200px;margin:0 auto;position:relative;z-index:1;}
    .works-hero-eyebrow{
      font-size:11px;letter-spacing:.28em;color:#ffffff;
      font-weight:700;text-transform:uppercase;margin-bottom:32px;display:block;
    }
    .works-hero-category{
      display:inline-block;font-size:11px;letter-spacing:.18em;font-weight:700;
      color:#111111;background:#fff;padding:5px 16px;margin-bottom:32px;text-transform:uppercase;
    }
    .works-hero-client{
      font-size:var(--kv-h1-size);font-weight:var(--kv-h1-weight);line-height:1.05;
      letter-spacing:var(--kv-h1-letter-spacing);color:#fff;margin-bottom:24px;
    }
    .works-hero-client em{font-style:normal;color:#ffffff;}
    .works-hero-divider{
      width:60px;height:1px;background:rgba(255,255,255,.2);margin:40px 0;
    }
    .works-hero-meta{display:flex;gap:48px;flex-wrap:wrap;}
    .works-hero-meta-item{display:flex;flex-direction:column;gap:6px;}
    .works-hero-meta-label{font-size:10px;letter-spacing:.2em;color:#ffffff;font-weight:700;text-transform:uppercase;}
    .works-hero-meta-val{font-size:14px;color:#ffffff;letter-spacing:.04em;}

    /* ===== ① WP: Custom Fields → プロジェクトメタ ===== */
    .project-meta-sec{background:#F7F7F5;padding:64px 80px;border-bottom:1px solid #E8E8E8;}
    .project-meta-inner{max-width:1200px;margin:0 auto;}
    .project-meta-label{font-size:10px;letter-spacing:.22em;font-weight:700;color:#767680;text-transform:uppercase;margin-bottom:32px;display:block;}
    .project-meta-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;}
    .project-meta-item{display:flex;flex-direction:column;gap:10px;}
    .project-meta-icon{width:36px;height:36px;background:#28282D;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
    .project-meta-key{font-size:10px;letter-spacing:.18em;font-weight:700;color:#767680;text-transform:uppercase;}
    .project-meta-val{font-size:15px;font-weight:600;color:#28282D;line-height:1.5;}

    /* ===== 数字でわかる結果 ===== */
    .results-sec{background:#111111;border-top:1px solid rgba(255,255,255,.08);padding:80px 80px 100px;}
    .results-inner{max-width:1200px;margin:0 auto;}
    .results-label{font-size:11px;letter-spacing:.28em;color:#ffffff;font-weight:700;text-transform:uppercase;margin-bottom:48px;display:block;}
    .results-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid rgba(255,255,255,.1);}
    .result-item{padding:56px 48px;border-right:1px solid rgba(255,255,255,.1);position:relative;}
    .result-item:last-child{border-right:none;}
    .result-num{
      font-size:clamp(56px,8vw,100px);font-weight:700;line-height:1;
      letter-spacing:-.04em;color:#fff;display:flex;align-items:flex-end;gap:4px;
    }
    .result-num-unit{font-size:clamp(24px,3vw,40px);font-weight:700;color:#ffffff;margin-bottom:8px;}
    .result-num-prefix{font-size:clamp(20px,2.5vw,32px);font-weight:700;color:#ffffff;margin-bottom:8px;}
    .result-title{font-size:14px;color:#ffffff;letter-spacing:.08em;margin-top:20px;font-weight:500;}
    .result-desc{font-size:12px;color:#ffffff;letter-spacing:.04em;margin-top:8px;line-height:1.7;}

    /* ===== ③ WP: Gallery → モックアップ（全幅・迫力サイズ） ===== */
    .mockup-sec{background:#fff;padding:0;}
    .mockup-full-inner{max-width:1400px;margin:0 auto;padding:80px 80px;display:grid;grid-template-columns:3fr 1.4fr;gap:32px;align-items:end;}
    .mockup-pc-wrap{position:relative;}
    .mockup-pc{background:#EDEDEE;aspect-ratio:1000/591;display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:0 40px 80px rgba(0,0,0,.12);}
    .mockup-sp-wrap{position:relative;}
    .mockup-sp{background:#EDEDEE;aspect-ratio:321/520;display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:0 24px 48px rgba(0,0,0,.1);}
    .mockup-pc img,.mockup-sp img{width:100%;height:100%;object-fit:cover;}
    .mockup-caption{padding:24px 80px 80px;max-width:1400px;margin:0 auto;display:flex;align-items:center;gap:24px;}
    .mockup-caption-url{font-size:13px;color:#767680;letter-spacing:.04em;}
    .mockup-caption-url a{color:#28282D;text-decoration:underline;text-underline-offset:3px;transition:opacity .2s;}
    .mockup-caption-url a:hover{opacity:.6;}

    /* ===== ② WP: Block Editor → 課題・施策・結果（制作ポイント） ===== */
    .point-sec{padding:0;}
    .point-block{padding:80px 0;}
    .point-block:nth-child(odd){background:#F7F7F5;}
    .point-block:nth-child(even){background:#fff;}
    .point-block-inner{max-width:1200px;margin:0 auto;width:100%;padding:0 80px;display:grid;grid-template-columns:1fr 2fr;gap:80px;align-items:start;box-sizing:border-box;}
    .point-badge-wrap{display:flex;flex-direction:column;gap:16px;}
    .point-badge{font-size:10px;letter-spacing:.22em;font-weight:700;color:#fff;background:#28282D;padding:5px 14px;text-transform:uppercase;display:inline-block;width:fit-content;}
    .point-num{font-size:clamp(48px,6vw,80px);font-weight:700;line-height:1;letter-spacing:-.04em;color:#E8E8E8;}
    .point-head{font-size:clamp(18px,2vw,26px);font-weight:700;line-height:1.5;color:#28282D;letter-spacing:-.01em;margin-bottom:24px;}
    .point-body{font-size:15px;line-height:2;color:#4A4A50;letter-spacing:.02em;}

    /* ===== 一覧へ戻る ===== */
    .back-sec{padding:80px;background:#fff;border-top:1px solid #E8E8E8;}
    .back-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:center;}
    .back-link{display:inline-flex;align-items:center;gap:12px;font-size:13px;font-weight:700;color:#28282D;letter-spacing:.08em;text-transform:uppercase;border:1px solid #D8D8DC;padding:16px 40px;transition:background .2s,border-color .2s,color .2s;}
    .back-link:hover{background:#28282D;color:#fff;border-color:#28282D;}
    .back-link svg{transition:transform .2s;}
    .back-link:hover svg path{stroke:#fff;}
    .back-link:hover svg{transform:translateX(-4px);}

    /* ===== CTA ===== */
    .cta-sec{background:#111111;padding:120px 80px;position:relative;overflow:hidden;}
    /* 青いもや削除済み: cta-sec::before は display:none */
    .cta-sec::before{display:none;}
    .cta-wrap{max-width:800px;margin:0 auto;text-align:center;position:relative;z-index:1;}
    .cta-eyebrow{font-size:11px;letter-spacing:.22em;color:#ffffff;margin-bottom:24px;display:block;text-transform:uppercase;font-weight:600;}
    .cta-h2-line{display:block}
    .cta-h2{font-size:clamp(28px,4vw,52px);font-weight:700;line-height:1.3;letter-spacing:-.04em;color:#fff;margin-bottom:24px;}
    .cta-body{font-size:14px;line-height:1.9;color:#ffffff;margin-bottom:56px;}
    .cta-actions{display:flex;align-items:center;justify-content:center;gap:40px;flex-wrap:wrap;}
    .btn-cta{display:inline-flex;align-items:center;justify-content:center;height:60px;padding:0 52px;background:#fff;color:#28282D;font-size:15px;font-weight:700;letter-spacing:.06em;transition:opacity .2s;}
    .btn-cta:hover{opacity:.85;}

    /* ===== FADE UP ===== */
    .fu{opacity:0;transform:translateY(24px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);}
    .fu.on{opacity:1;transform:translateY(0);}


    /* ===== FIXED MOBILE CTA ===== */

    /* ===== RESPONSIVE ===== */
    @media(max-width:900px){
      .breadcrumb{display:none;}
      .breadcrumb-sp{display:block;}
      .works-hero{padding:100px 20px 64px;}
      .works-hero-client{font-size:clamp(30px,8vw,100px);}
      .works-hero-client br{display:none;}
      .works-hero-meta{gap:20px;flex-wrap:wrap;}
      .works-hero-meta-item{min-width:calc(50% - 10px);}
      /* プロジェクトメタ */
      .project-meta-sec{padding:48px 20px;}
      .project-meta-grid{grid-template-columns:1fr 1fr;gap:24px;}
      /* 数値セクション */
      .results-sec{padding:56px 20px 64px;}
      .result-item{padding:36px 20px;}
      .result-item{border-right:none;border-bottom:1px solid rgba(255,255,255,.1);}
      .result-item:last-child{border-bottom:none;}
      /* モックアップ */
      .mockup-full-inner{padding:32px 20px;grid-template-columns:1fr;gap:12px;}
      .mockup-sp{aspect-ratio:16/9;max-height:220px;}
      .mockup-caption{padding:16px 20px 40px;}
      /* ポイントブロック */
      .point-block{padding:48px 0;}
      .point-block-inner{grid-template-columns:1fr;gap:20px;padding:0 20px;}
      .point-num{font-size:clamp(40px,10vw,60px);}
      .point-head{font-size:clamp(17px,4.5vw,26px);margin-bottom:16px;}
      .point-body{font-size:14px;line-height:1.85;}
      /* 戻るリンク */
      .back-sec{padding:48px 20px;}
      .back-link{width:100%;justify-content:center;min-height:52px;padding:0 24px;}
      /* CTA */
      .cta-sec{padding:72px 20px;}
      .cta-h2{font-size:clamp(24px,6.5vw,52px);}
      .cta-body br{display:none;}
      .cta-actions{flex-direction:column;align-items:center;gap:16px;}
      .btn-cta{width:100%;max-width:360px;min-height:56px;}
      /* SP固定CTA */
    }
    @media(max-width:480px){
      .works-hero-client{font-size:clamp(26px,7.5vw,100px);}
      .works-hero-meta-item{min-width:100%;}
      .results-grid{grid-template-columns:1fr;}
      .result-num{font-size:clamp(36px,10vw,56px);}
      .point-head{font-size:clamp(16px,4.5vw,22px);}
      .project-meta-grid{grid-template-columns:1fr;}
    }
  
@media (max-width: 768px) {
  .kv .kv-h1 {
    color: #ffffff !important;
  }
  .kv .kv-eyebrow {
    color: #ffffff !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: .15em !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
  }
  .kv .kv-eyebrow::before {
    content: '' !important;
    display: inline-block !important;
    width: 24px !important;
    height: 2px !important;
    background: #ffffff !important;
    flex-shrink: 0 !important;
  }
  .kv .kv-sub {
    color: #ffffff !important;
    font-size: 15px !important;
    font-weight: 400 !important;
  }
  .kv .kv-body {
    color: #ffffff !important;
    font-size: 14px !important;
    line-height: 1.9 !important;
    font-weight: 400 !important;
  }
  .kv-question {
    color: #ffffff !important;
    font-size: 14px !important;
  }
}

/* PAGE: /columns/ - 固有スタイル (page-columns.css より統合) */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
    html{font-size:16px;scroll-behavior:smooth}
    body{
      font-family:'Yu Gothic','游ゴシック',YuGothic,'Hiragino Kaku Gothic ProN','ヒラギノ角ゴ ProN W3','Meiryo','メイリオ',sans-serif;
      font-weight:400;color:#28282D;background:#fff;
      overflow-x:hidden;-webkit-font-smoothing:antialiased;font-size:14px;
    }
    img{max-width:100%;height:auto;display:block}
    a{color:inherit;text-decoration:none}
    ul,ol{list-style:none}

    /* ===== HEADER ===== */
    .hd{position:fixed;top:0;left:0;right:0;height:72px;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 48px;z-index:100;border-bottom:1px solid #E8E8E8;}
    .hd-logo img{height:34px;width:auto}
    .hd-nav{display:flex;align-items:center;gap:32px}
    .hd-nav a{font-size:13px;letter-spacing:0.04em;color:#28282D;transition:opacity .2s;padding:14px 0}
    .hd-nav a:hover{opacity:.5}
    .hd-btn{display:inline-flex;align-items:center;justify-content:center;height:48px;padding:0 28px;background:#28282D;color:#fff;font-size:13px;letter-spacing:0.08em;font-weight:600;border:1px solid #28282D;transition:background .2s,color .2s;}
    .hd-btn:hover{background:#fff;color:#28282D}
    .hd-btn-external{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:48px;padding:0 20px;background:#fff;color:#28282D;font-size:12px;letter-spacing:0.04em;font-weight:600;border:1.5px solid #28282D;transition:background .2s,color .2s;white-space:nowrap;line-height:1.3;}
    .hd-btn-external:hover{background:#28282D;color:#fff}
    .hd-btn-external svg{flex-shrink:0;transition:transform .2s}
    .hd-btn-external:hover svg{transform:translate(2px,-2px)}
    .hd-btns{display:flex;align-items:center;gap:10px}
    .hd-nav-item{position:relative}
    .hd-nav-item>a{display:flex;align-items:center;gap:4px;cursor:pointer;padding:14px 0}
    .hd-nav-item>a::after{content:'';display:inline-block;width:6px;height:6px;border-right:1px solid #28282D;border-bottom:1px solid #28282D;transform:rotate(45deg) translateY(-2px);transition:transform .2s;}
    .hd-nav-item.open>a::after{transform:rotate(-135deg) translateY(-2px)}
    .hd-mega-wrap{position:fixed;top:72px;left:0;right:0;background:#F5F5F5;border-top:1px solid #E8E8E8;border-bottom:1px solid #E0E0E0;box-shadow:0 12px 40px rgba(0,0,0,.08);opacity:0;visibility:hidden;transition:opacity .22s,transform .22s,visibility .22s;transform:translateY(-8px);z-index:200;padding:20px 0 24px;}
    .hd-mega-wrap::before{content:'';position:absolute;top:-14px;left:0;right:0;height:14px;}
    .hd-nav-item.open .hd-mega-wrap{opacity:1;visibility:visible;transform:translateY(0);}
    .hd-mega{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));max-width:1200px;margin:0 auto;width:100%;gap:12px;padding:0 24px;}
    .hd-mega-col{background:#fff;border:1px solid #E8E8E8;padding:18px 20px 14px;}
    .hd-mega-col-label{font-size:13px;letter-spacing:.04em;white-space:nowrap;font-weight:700;color:#1A1A1E;display:block;padding-bottom:10px;margin-bottom:10px;border-bottom:2px solid #1A1A1E;overflow:hidden;text-overflow:ellipsis;}
    .hd-mega-col a{display:flex;align-items:center;gap:6px;padding:12px 0;font-size:14px;color:#28282D;border-bottom:1px solid #F0F0F0;transition:color .15s;white-space:nowrap;}
    .hd-mega-col a:last-child{border-bottom:none}
    .hd-mega-col a::before{content:'';width:4px;height:4px;border-radius:50%;background:#1A1A1E;flex-shrink:0;opacity:.25;transition:opacity .15s;}
    .hd-mega-col a:hover{color:#000;background:none}
    .hd-mega-col a:hover::before{opacity:1}
    .hd-dropdown{position:absolute;top:calc(100% + 12px);left:50%;transform:translateX(-50%) translateY(-8px);background:#fff;border:1px solid #E8E8E8;min-width:200px;opacity:0;visibility:hidden;transition:opacity .22s,transform .22s,visibility .22s;z-index:200;box-shadow:0 8px 32px rgba(0,0,0,.08);}
    .hd-dropdown::before{content:'';position:absolute;top:-14px;left:0;right:0;height:14px;}
    .hd-nav-item.open .hd-dropdown{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
    .hd-dropdown a{display:block;padding:12px 20px;font-size:13px;color:#28282D;border-bottom:1px solid #F0F0F0;transition:background .15s;white-space:nowrap;}
    .hd-dropdown a:last-child{border-bottom:none}
    .hd-dropdown a:hover{background:#F7F7F7;opacity:1}
    .hd-hamburger{display:none;flex-direction:column;justify-content:center;align-items:center;width:44px;height:44px;cursor:pointer;gap:6px;background:none;border:none;padding:0;}
    .hd-hamburger span{display:block;width:24px;height:1px;background:#28282D;transition:transform .3s,opacity .3s;}
    .hd-hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
    .hd-hamburger.open span:nth-child(2){opacity:0}
    .hd-hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
    .hd-drawer{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:#fff;overflow-y:auto;z-index:200;padding:0 0 80px;transform:translateX(100%);transition:transform .3s cubic-bezier(.16,1,.3,1);}
    .hd-drawer.open{transform:translateX(0)}
    .hd-drawer-item{border-bottom:1px solid #F0F0F0;}
    .hd-drawer-link{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;font-size:15px;color:#28282D;cursor:pointer;}
    .hd-drawer-link::after{content:'';display:block;width:8px;height:8px;border-right:1px solid #28282D;border-bottom:1px solid #28282D;transform:rotate(45deg);transition:transform .2s;flex-shrink:0;}
    .hd-drawer-link.no-arrow::after{display:none}
    .hd-drawer-link.open::after{transform:rotate(-135deg)}
    .hd-drawer-sub{display:none;background:#F7F7F7;padding:8px 0;}
    .hd-drawer-sub.open{display:block}
    .hd-drawer-sub a{display:block;padding:13px 24px 13px 36px;font-size:13px;color:#28282D;border-bottom:1px solid #EFEFEF;}
    .hd-drawer-sub a:last-child{border-bottom:none}
    .hd-drawer-sub-label{font-size:12px;letter-spacing:.1em;color:#767680;padding:12px 24px 4px 36px;text-transform:uppercase;}
    .hd-drawer-cta{padding:24px;display:flex;flex-direction:column;gap:12px;}
    .hd-drawer-cta .hd-btn{display:flex;width:100%;justify-content:center;height:52px;font-size:14px;}
    .hd-drawer-cta .hd-btn-saicatsu{display:flex;width:100%;justify-content:center;align-items:center;gap:6px;height:52px;font-size:13px;background:#fff;color:#28282D;border:1.5px solid #28282D;text-decoration:none;font-weight:500;transition:background .2s,color .2s;letter-spacing:.04em;}
    .hd-drawer-sns{padding:20px 24px 32px;border-top:1px solid #F0F0F0;display:flex;flex-direction:column;align-items:center;gap:14px;}
    .hd-drawer-sns-label{font-size:12px;letter-spacing:.18em;color:#767680;font-weight:600;}
    .hd-drawer-sns-links{display:flex;align-items:center;justify-content:center;gap:12px;}
    .hd-drawer-sns-link{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid #D8D8DC;border-radius:50%;text-decoration:none;transition:background .2s,border-color .2s;}

    /* ===== BREADCRUMB ===== */
    .breadcrumb{background:#F5F5F3;padding:10px 80px;border-bottom:1px solid #E8E8E8;}
    .breadcrumb ol{display:flex;align-items:center;gap:8px;max-width:1100px;margin:0 auto;}
    .breadcrumb li{font-size:12px;color:#767680;display:flex;align-items:center;gap:8px;}
    .breadcrumb a{color:#767680;transition:color .2s;}
    .breadcrumb a:hover{color:#28282D;}
    .breadcrumb-sp{display:none;background:#F5F5F3;padding:10px 20px;border-top:1px solid #E8E8E8;}
    .breadcrumb-sp ol{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
    .breadcrumb-sp li{font-size:12px;color:#767680;display:flex;align-items:center;gap:8px;}
    .breadcrumb-sp a{color:#767680;}

    /* ===== PAGE HERO ===== */
    .page-hero{padding:160px 80px 100px;background:#fff;border-bottom:1px solid #E8E8E8;}
    .page-hero-inner{max-width:1100px;margin:0 auto;}
    .page-hero-eyebrow{font-size:11px;letter-spacing:.22em;color:#767680;font-weight:700;text-transform:uppercase;margin-bottom:24px;display:block;}
    .page-hero-h1{font-size:clamp(56px,8vw,120px);font-weight:700;line-height:1.2;letter-spacing:-.04em;color:#28282D;margin-bottom:24px;}
    .page-hero-desc{font-size:16px;line-height:1.85;color:#4A4A50;max-width:600px;}


    /* ===== CATEGORY FILTER ===== */
    .filter-sec{background:#F7F7F5;padding:16px 80px;border-bottom:1px solid #E8E8E8;position:sticky;top:72px;z-index:50;}
    .filter-inner{max-width:1100px;margin:0 auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap;width:100%;}
    .filter-inner::-webkit-scrollbar{display:none}
    .filter-label{font-size:12px;letter-spacing:.1em;color:#767680;font-weight:600;white-space:nowrap;margin-right:4px;flex-shrink:0;}
    .filter-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border:1px solid #D8D8DC;font-size:13px;color:#28282D;background:#fff;cursor:pointer;transition:background .2s,border-color .2s,color .2s;letter-spacing:.02em;white-space:nowrap;flex-shrink:0;font-family:inherit;}
    .filter-btn:hover,.filter-btn.active{background:#28282D;color:#fff;border-color:#28282D;}
    .filter-btn-count{font-size:11px;opacity:.6;font-weight:600;}

    /* ===== FEATURED ARTICLE ===== */
    .featured-sec{padding:80px 80px 0;background:#fff;}
    .featured-inner{max-width:1100px;margin:0 auto;}
    .featured-eyebrow{font-size:11px;letter-spacing:.22em;color:#767680;font-weight:700;text-transform:uppercase;display:block;margin-bottom:12px;}
    .featured-h2{font-size:clamp(18px,2vw,22px);font-weight:700;letter-spacing:-.02em;color:#28282D;margin-bottom:32px;}
    .featured-card{display:grid;grid-template-columns:1.2fr 1fr;border:1px solid #E0E0E0;background:#fff;overflow:hidden;text-decoration:none;color:inherit;transition:box-shadow .25s,transform .25s;}
    .featured-card:hover{box-shadow:0 12px 48px rgba(0,0,0,.1);transform:translateY(-2px);}
    .featured-card-img{background:#EDEDEE;min-height:380px;position:relative;overflow:hidden;}
    .featured-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.16,1,.3,1);}
    .featured-card:hover .featured-card-img img{transform:scale(1.04);}
    .featured-card-body{padding:56px 48px;display:flex;flex-direction:column;justify-content:center;}
    .featured-card-cat{display:inline-flex;align-items:center;padding:4px 12px;font-size:11px;letter-spacing:.1em;font-weight:700;margin-bottom:20px;align-self:flex-start;}
    .featured-card-title{font-size:clamp(18px,2vw,24px);font-weight:700;color:#28282D;line-height:1.5;letter-spacing:-.02em;margin-bottom:16px;}
    .featured-card-date{font-size:12px;color:#9A9AA0;letter-spacing:.06em;margin-bottom:28px;}
    .featured-card-link-text{display:inline-flex;align-items:center;gap:10px;font-size:13px;font-weight:700;color:#28282D;letter-spacing:.06em;border-bottom:1px solid #28282D;padding-bottom:4px;align-self:flex-start;transition:opacity .2s;}
    .featured-card:hover .featured-card-link-text{opacity:.6;}
    .featured-new-badge{display:inline-flex;align-items:center;padding:3px 10px;background:#28282D;color:#fff;font-size:10px;letter-spacing:.12em;font-weight:700;margin-bottom:12px;align-self:flex-start;}

    /* ===== COLUMNS GRID ===== */
    .columns-sec{padding:64px 80px 120px;}
    .columns-inner{max-width:1100px;margin:0 auto;}
    .columns-sec-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:40px;flex-wrap:wrap;gap:12px;}
    .columns-sec-title{font-size:clamp(16px,1.8vw,20px);font-weight:700;color:#28282D;letter-spacing:-.02em;}
    .columns-count{font-size:13px;color:#9A9AA0;letter-spacing:.04em;}
    .columns-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}

    /* ===== ARTICLE CARD ===== */
    .col-card{border:1px solid #E8E8E8;display:flex;flex-direction:column;overflow:hidden;transition:box-shadow .2s,transform .2s;background:#fff;}
    .col-card:hover{box-shadow:0 6px 28px rgba(0,0,0,.08);transform:translateY(-2px);}
    .col-card-link{display:contents;}
    .col-card-img{width:100%;aspect-ratio:576/356;background:#EDEDEE;overflow:hidden;position:relative;}
    .col-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s cubic-bezier(.16,1,.3,1);}
    .col-card:hover .col-card-img img{transform:scale(1.04);}
    .col-card-img-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#F0F0F0;}
    .col-card-body{padding:20px 22px 22px;flex:1;display:flex;flex-direction:column;}
    .col-card-meta{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap;}
    .col-card-cat{display:inline-flex;align-items:center;padding:3px 10px;font-size:11px;letter-spacing:.08em;font-weight:700;}
    .col-card-date{font-size:11px;color:#9A9AA0;letter-spacing:.04em;}
    .col-card-title{font-size:14px;font-weight:700;color:#28282D;line-height:1.6;letter-spacing:-.01em;flex:1;}
    .col-card-footer{display:flex;align-items:center;justify-content:flex-end;margin-top:16px;}
    .col-card-arrow{width:28px;height:28px;border:1px solid #D8D8DC;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .2s,border-color .2s;}
    .col-card:hover .col-card-arrow{background:#28282D;border-color:#28282D;}
    .col-card:hover .col-card-arrow svg path{stroke:#fff;}

    /* ===== CATEGORY COLORS（全サービス対応版） ===== */
    /* 戦略系 */
    .cat-strategy{background:#EEF0FF;color:#3730A3;}   /* WEB戦略設計: 紺・インディゴ */
    /* 制作系 */
    .cat-web{background:#F0F0F0;color:#4A4A50;}         /* サイト制作・分析改善: グレー */
    /* SEO/MEO系 */
    .cat-seo{background:#EBF4FF;color:#1A6FBF;}         /* SEO対策: 青 */
    .cat-meo{background:#E8F8F0;color:#1A8A4A;}         /* MEO対策: 緑 */
    .cat-ai{background:#E6F7FA;color:#0E7490;}          /* AI検索対策: シアン */
    /* SNS系 */
    .cat-instagram{background:#FFF0F5;color:#C0306A;}   /* Instagram: ピンク */
    .cat-tiktok{background:#E8F8F8;color:#006B6B;}      /* TikTok: ティール */
    .cat-x{background:#F2F2F2;color:#3A3A3A;}           /* X(旧Twitter): グレー */
    .cat-youtube{background:#FFF0F0;color:#C0201A;}     /* YouTube: 赤 */
    .cat-note{background:#F5FAE8;color:#4A7A10;}        /* note: 黄緑 */
    .cat-line{background:#E8F8E8;color:#0A8A3A;}        /* LINE: 緑 */
    .cat-sns{background:#F5EEFF;color:#7A30C0;}         /* SNS集客(汎用): 紫 */
    /* 広告系 */
    .cat-listing{background:#FFF4E8;color:#C06A10;}     /* リスティング広告: 橙 */
    .cat-display{background:#FFF8E8;color:#A06010;}     /* ディスプレイ広告: 黄橙 */
    /* その他 */
    .cat-marketing{background:#FFFBE8;color:#8A7010;}   /* ウェブマーケティング: 黄 */

    /* ===== CTA BANNER (mid-list) ===== */
    .col-cta-banner{grid-column:1/-1;background:#111111;padding:40px 48px;display:flex;align-items:center;justify-content:space-between;gap:32px;text-decoration:none;color:inherit;transition:opacity .2s;position:relative;overflow:hidden;}
    .col-cta-banner::before{content:'';position:absolute;top:-60px;right:60px;width:300px;height:300px;background:radial-gradient(circle,rgba(99,102,241,.18) 0%,transparent 70%);pointer-events:none;}
    .col-cta-banner:hover{opacity:.9;}
    .col-cta-banner-text{position:relative;z-index:1;}
    .col-cta-banner-eyebrow{font-size:10px;letter-spacing:.22em;color:#ffffff;font-weight:700;text-transform:uppercase;margin-bottom:10px;display:block;}
    .col-cta-banner-title{font-size:clamp(16px,2vw,22px);font-weight:700;color:#fff;line-height:1.4;letter-spacing:-.02em;}
    .col-cta-banner-btn{display:inline-flex;align-items:center;justify-content:center;height:52px;padding:0 36px;background:#fff;color:#28282D;font-size:14px;font-weight:700;letter-spacing:.04em;white-space:nowrap;flex-shrink:0;position:relative;z-index:1;transition:background .2s,color .2s;}
    .col-cta-banner:hover .col-cta-banner-btn{background:#F0F0F0;}

    /* ===== PAGINATION ===== */
    .pagination{display:flex;align-items:center;justify-content:center;gap:4px;margin-top:56px;}
    .pag-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1.5px solid #D8D8DC;font-size:14px;color:#28282D;background:#fff;cursor:pointer;transition:background .2s,border-color .2s,color .2s;font-family:inherit;font-weight:500;flex-shrink:0;}
    .pag-btn:hover{border-color:#28282D;}
    .pag-btn.active{background:#28282D;color:#fff;border-color:#28282D;font-weight:700;}
    .pag-btn:disabled{opacity:.35;cursor:not-allowed;pointer-events:none;}
    .pag-btn.pag-prev,.pag-btn.pag-next{width:auto;padding:0 16px;gap:6px;font-size:13px;letter-spacing:.04em;}
    .pag-ellipsis{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;font-size:14px;color:#9A9AA0;pointer-events:none;}

    /* ===== CTA ===== */
    .cta-sec{background:#111111;padding:120px 80px;position:relative;overflow:hidden;}
    .cta-sec::before{content:'';position:absolute;top:-40px;right:80px;width:400px;height:400px;background:radial-gradient(circle,rgba(99,102,241,.15) 0%,transparent 70%);pointer-events:none;}
    .cta-wrap{max-width:800px;margin:0 auto;text-align:center;position:relative;z-index:1;}
    .cta-eyebrow{font-size:11px;letter-spacing:.22em;color:#ffffff;margin-bottom:24px;display:block;text-transform:uppercase;font-weight:600;}
    .cta-h2{font-size:clamp(28px,4vw,52px);font-weight:700;line-height:1.3;letter-spacing:-.04em;color:#fff;margin-bottom:24px;}
    .cta-h2-line{display:block;}
    .cta-body{font-size:14px;line-height:1.9;color:#ffffff;margin-bottom:56px;}
    .cta-actions{display:flex;align-items:center;justify-content:center;gap:40px;flex-wrap:wrap;}
    .btn-cta{display:inline-flex;align-items:center;justify-content:center;height:60px;padding:0 52px;background:#fff;color:#28282D;font-size:15px;font-weight:700;letter-spacing:.06em;transition:opacity .2s;}
    .btn-cta:hover{opacity:.85;}

    /* ===== FOOTER ===== */
    .footer{background:#F7F7F5;padding:80px 80px 48px;border-top:1px solid #E8E8E8;}
    .footer-top{display:flex;gap:80px;margin-bottom:60px;}
    .footer-nav{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;flex:1;}
    .footer-nav-title{font-size:13px;font-weight:700;color:#28282D;margin-bottom:16px;letter-spacing:.04em;}
    .footer-nav-group a{display:block;font-size:13px;color:#767680;padding:6px 0;letter-spacing:.02em;transition:color .2s;}
    .footer-nav-group a:hover{color:#28282D;}
    .footer-bottom{border-top:1px solid #E8E8E8;padding-top:24px;display:flex;align-items:center;justify-content:space-between;}
    .footer-copy{font-size:12px;color:#BBBBC0;letter-spacing:.04em;}
    .footer-logo img{height:28px;width:auto;}
    .footer-logo-wrap{display:flex;flex-direction:column;gap:0;}
    .footer-logo-addr{font-size:12px;color:#4A4A52;line-height:1.9;font-style:normal;margin-top:20px;}
    .footer-logo-addr a{color:#4A4A52;text-decoration:none;}
    .footer-logo-addr a:hover{opacity:.6;}
    .footer-sns-block{margin-top:28px;}
    .footer-sns-label{font-size:12px;letter-spacing:.14em;color:#767680;font-weight:500;margin-bottom:12px;}
    .footer-sns{display:flex;align-items:center;gap:16px;}
    .footer-logo-related{display:block;margin-top:24px;padding-top:20px;border-top:1px solid #E8E8E8;}
    .footer-related-label{font-size:12px;letter-spacing:.14em;color:#767680;font-weight:500;white-space:nowrap;}
    .footer-related-link{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:#4A4A52;text-decoration:none;letter-spacing:.04em;transition:opacity .2s;}
    .footer-related-link:hover{opacity:.5;}
    .footer-bottom-right{display:flex;align-items:center;gap:24px;}
    .footer-privacy{font-size:12px;color:#4A4A52;text-decoration:none;letter-spacing:.04em;}
    .footer-privacy:hover{opacity:.6;}

    /* ===== FADE UP ===== */
    .fu{opacity:0;transform:translateY(24px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);}
    .fu.on{opacity:1;transform:translateY(0);}
/* ===== FIXED MOBILE CTA ===== */

    /* ===== RESPONSIVE ===== */
    @media(max-width:900px){
      .hd{padding:0 20px}.hd-nav{display:none}.hd-hamburger{display:flex}.hd-drawer{display:block}.hd-btns{display:none}
      .breadcrumb{display:none;}
      .breadcrumb-sp{display:block;}

      /* ===== KV見出し SP最適化 ===== */
      .page-hero{padding:100px 20px 56px;}
      .page-hero-h1{font-size:clamp(32px,8vw,52px) !important;letter-spacing:-.03em !important;line-height:1.25 !important;}
      .page-hero-desc{font-size:14px;line-height:1.85;}
      .page-hero-desc br{display:none;}

      /* ===== フィルター：横スクロール対応 ===== */
      .filter-sec{
        padding:10px 0;
        position:sticky;
        top:72px;
      }
      .filter-inner{
        gap:6px;
        flex-wrap:nowrap;
        overflow-x:auto;
        -webkit-overflow-scrolling:touch;
        scrollbar-width:none;
        padding:4px 20px;
        max-width:100%;
        align-items:center;
      }
      .filter-inner::-webkit-scrollbar{display:none}
      .filter-label{display:none;}
      .filter-btn{
        font-size:12px;
        padding:7px 14px;
        flex-shrink:0;
        min-height:36px;
      }

      /* ===== フィーチャード記事 ===== */
      .featured-sec{padding:40px 20px 0;}
      .featured-card{grid-template-columns:1fr;}
      .featured-card-img{min-height:200px;}
      .featured-card-body{padding:24px 20px 28px;}
      .featured-card-title{font-size:17px;line-height:1.55;}
      .featured-card-link-text{font-size:12px;}

      /* ===== カードグリッド ===== */
      .columns-sec{padding:36px 16px 80px;}
      .columns-grid{grid-template-columns:1fr;gap:12px;}
      .col-card-body{padding:16px 16px 18px;}
      .col-card-title{font-size:14px;line-height:1.65;}
      .col-card-meta{margin-bottom:10px;}
      .col-card-cat{font-size:11px;padding:3px 9px;}
      .col-card-date{font-size:11px;}
      .col-card-footer{margin-top:12px;}

      /* ===== CTAバナー ===== */
      .col-cta-banner{
        grid-column:1/-1;
        padding:24px 20px;
        flex-direction:column;
        align-items:flex-start;
        gap:16px;
      }
      .col-cta-banner-title{font-size:15px;line-height:1.5;}
      .col-cta-banner-btn{
        width:100%;
        max-width:360px;
        height:48px;
        font-size:13px;
      }

      /* ===== ページネーション ===== */
      .pagination{gap:3px;flex-wrap:wrap;margin-top:40px;}
      .pag-btn{width:40px;height:40px;font-size:13px;}
      .pag-btn.pag-prev,.pag-btn.pag-next{padding:0 12px;font-size:12px;}

      /* ===== CTA ===== */
      .cta-sec{padding:72px 20px;}
      .cta-h2{font-size:clamp(22px,6vw,36px) !important;}
      .cta-h2-line{display:block;}
      .cta-body br{display:none;}
      .cta-body{font-size:14px;margin-bottom:40px;}
      .cta-actions{flex-direction:column;align-items:center;gap:16px;}
      .btn-cta{width:100%;max-width:360px;height:56px;font-size:15px;}

      /* ===== フッター ===== */
      .footer{padding:56px 20px 40px;}
      .footer-top{flex-direction:column;gap:36px;}
      .footer-nav{grid-template-columns:1fr 1fr;gap:24px;}
      .footer-bottom{flex-direction:column;gap:12px;align-items:flex-start;}
    }
    @media(min-width:601px) and (max-width:900px){
      .columns-grid{grid-template-columns:repeat(2,1fr);}
      .col-cta-banner{grid-column:1/-1;}
    }
    @media(max-width:480px){
      .page-hero-h1{font-size:clamp(28px,8vw,40px) !important;}
      .columns-grid{grid-template-columns:1fr;}
    }
    @media(max-width:768px){
    }
  
@media (max-width: 768px) {
  .kv .kv-h1 {
    color: #ffffff !important;
  }
  .kv .kv-eyebrow {
    color: rgba(255,255,255,.85) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: .15em !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
  }
  .kv .kv-eyebrow::before {
    content: '' !important;
    display: inline-block !important;
    width: 24px !important;
    height: 2px !important;
    background: rgba(255,255,255,.7) !important;
    flex-shrink: 0 !important;
  }
  .kv .kv-sub {
    color: #ffffff !important;
    font-size: 15px !important;
    font-weight: 400 !important;
  }
  .kv .kv-body {
    color: #ffffff !important;
    font-size: 14px !important;
    line-height: 1.9 !important;
    font-weight: 400 !important;
  }
  .kv-question {
    color: rgba(255,255,255,.65) !important;
    font-size: 14px !important;
  }
}

/* ============================================================
   TOPページ KV テキスト色 最終確定 (2026-05-15)
   白背景のため黒テキストに戻す - 全ての!importantを上書き
   ============================================================ */
body.page-top .kv .kv-h1 { color: #28282D !important; }
body.page-top .kv .kv-eyebrow { color: #767680 !important; font-size: 11px !important; letter-spacing: .22em !important; font-weight: 700 !important; }
body.page-top .kv .kv-body { color: #4A4A50 !important; }
body.page-top .kv .kv-stat-n { color: #28282D !important; }
body.page-top .kv .kv-stat-l { color: #4A4A50 !important; }
@media(max-width:767px){
  body.page-top .kv .kv-h1 { color: #28282D !important; }
  body.page-top .kv .kv-eyebrow { color: #767680 !important; font-size: 11px !important; letter-spacing: .22em !important; font-weight: 700 !important; }
  body.page-top .kv .kv-body { color: #4A4A50 !important; }
}

/* ============================================================
   Contact Form 7 スタイル
   ============================================================ */

/* フォーム全体のラッパー */
.wpcf7-form{display:block}

/* CF7のinput/textarea をテーマのform-fieldスタイルに合わせる */
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form textarea{
  width:100%;
  padding:14px 16px;
  border:1px solid #D8D8DC;
  font-size:16px;color:#28282D;
  font-family:inherit;
  background:#fff;
  transition:border-color .2s;
  border-radius:0;
  -webkit-appearance:none;
  appearance:none;
  box-sizing:border-box;
}
.wpcf7-form input[type="text"]:focus,
.wpcf7-form input[type="email"]:focus,
.wpcf7-form input[type="tel"]:focus,
.wpcf7-form textarea:focus{
  outline:none;border-color:#28282D;
}
.wpcf7-form textarea{resize:vertical;min-height:140px;line-height:1.7}
.wpcf7-form input::placeholder,
.wpcf7-form textarea::placeholder{color:#B0B0B5;font-size:14px}

/* CF7のform-control-wrap（inputを包むspan）をブロック表示に */
.wpcf7-form-control-wrap{display:block;width:100%}

/* CF7のチェックボックスリスト */
.wpcf7-list-item{
  display:inline-flex;align-items:center;gap:10px;
  padding:10px 18px;border:1px solid #E8E8E8;cursor:pointer;
  transition:border-color .2s,background .2s;font-size:16px;color:#28282D;
  user-select:none;margin:0;
}
.wpcf7-list-item:hover{border-color:#28282D}
.wpcf7-list-item input[type="checkbox"]{
  width:16px;height:16px;accent-color:#28282D;cursor:pointer;flex-shrink:0;
  margin-right:4px;
}
.wpcf7-list-item-label{
  font-size:16px;color:#28282D;cursor:pointer;
}

/* CF7のチェックボックスグループ（.wpcf7-checkbox）をflex表示 */
.wpcf7-checkbox{display:flex;flex-wrap:wrap;gap:10px}

/* CF7の送信ボタン */
.wpcf7-form input[type="submit"],
.wpcf7-submit{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  width:100%;max-width:400px;height:60px;
  background:#28282D;color:#fff;
  font-size:15px;letter-spacing:.1em;font-weight:600;
  border:none;cursor:pointer;
  transition:background .2s,color .2s;
  font-family:inherit;
  -webkit-appearance:none;
  appearance:none;
  border-radius:0;
}
.wpcf7-form input[type="submit"]:hover,
.wpcf7-submit:hover{background:#fff;color:#28282D;border:1px solid #28282D}

/* CF7のバリデーションエラーメッセージ */
.wpcf7-not-valid-tip{
  display:block;font-size:12px;color:#D94F4F;margin-top:6px;
}
.wpcf7-not-valid{border-color:#D94F4F !important}

/* CF7の送信結果メッセージ（初期は非表示、送信後に表示） */
.wpcf7-response-output{
  display:none;
  margin-top:16px;padding:12px 16px;font-size:14px;
  border:1px solid #D8D8DC;
}
.wpcf7-response-output:not(:empty){
  display:block;
}
.wpcf7-mail-sent-ok{
  border-color:#4CAF50;color:#2E7D32;background:#F1F8F1;
}
.wpcf7-mail-sent-ng,
.wpcf7-aborted{
  border-color:#D94F4F;color:#D94F4F;background:#FFF5F5;
}
.wpcf7-spam-blocked{
  border-color:#FF9800;color:#E65100;background:#FFF8F0;
}

/* CF7のスピナー（送信前は非表示、送信中のみ表示） */
.wpcf7-spinner{
  display:none;
  width:24px;height:24px;
  border:2px solid #E8E8E8;border-top-color:#28282D;
  border-radius:50%;animation:wpcf7-spin .8s linear infinite;
  margin-left:8px;vertical-align:middle;
}
.wpcf7-spinner.wpcf7-display-none{
  display:none !important;
}
/* CF7が送信中に付与するクラスでスピナーを表示 */
.wpcf7-form.submitting .wpcf7-spinner{
  display:inline-block;
}
@keyframes wpcf7-spin{to{transform:rotate(360deg)}}

/* form-submitラッパー内でCF7ボタンを中央揃え */
.form-submit .wpcf7-form-control-wrap{display:inline-block;width:auto}
.form-submit .wpcf7-submit{width:100%;max-width:400px}

/* CF7のhiddenフィールドを非表示 */
.wpcf7-hidden{display:none !important}
/* [hidden]タグのwrapも非表示 */
.wpcf7-form-control-wrap[data-name="_wpcf7_locale"],
.wpcf7-form span[data-name="_wpcf7_locale"],
.wpcf7-form .wpcf7-form-control-wrap:has(input[name="_wpcf7_locale"]){
  display:none !important;
}

/* スマホ対応 */
@media(max-width:768px){
  .wpcf7-checkbox{gap:8px}
  .wpcf7-list-item{padding:8px 12px;font-size:14px}
  .wpcf7-form input[type="text"],
  .wpcf7-form input[type="email"],
  .wpcf7-form input[type="tel"],
  .wpcf7-form textarea{font-size:16px}
}

/* ==========================================================================
   Article Supervisor (監修者欄)
   ========================================================================== */
.article-supervisor {
  margin-top: 60px;
  padding: 32px;
  background-color: #f9f9f9;
  border-radius: 8px;
  border: 1px solid #e5e5e5;
}

.supervisor-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 1px solid #e5e5e5;
  color: #28282D;
  font-weight: 700;
  font-size: 1.125rem;
}

.supervisor-header svg {
  color: #00A3A3; /* セルフアチーブのブランドカラーに近い色 */
}

.supervisor-body {
  display: flex;
  gap: 24px;
  align-items: flex-start;
}

.supervisor-image {
  flex-shrink: 0;
  width: 120px;
  height: 120px;
  border-radius: 4px; /* 四角（角丸） */
  overflow: hidden;
}

.supervisor-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.supervisor-info {
  flex-grow: 1;
}

.supervisor-title {
  font-size: 0.875rem;
  color: #666;
  margin-bottom: 4px;
}

.supervisor-name {
  font-size: 1.25rem;
  font-weight: 700;
  color: #28282D;
  margin-bottom: 12px;
}

.supervisor-profile {
  font-size: 0.9375rem;
  line-height: 1.8;
  color: #444;
}

@media screen and (max-width: 767px) {
  .article-supervisor {
    padding: 24px 20px;
    margin-top: 48px;
  }
  
  .supervisor-body {
    flex-direction: column;
    gap: 20px;
  }
  
  .supervisor-image {
    width: 100px;
    height: 100px;
  }
}

/* ===== instagram: case-grid タブレット〜SP スワイプ仕様 ===== */
@media (max-width: 1024px) {
  .page-instagram .case-grid-wrap {
    padding: 0 !important;
    overflow-x: clip !important;
  }
  .page-instagram .case-note-wrap {
    padding: 0 20px 20px !important;
  }
  .page-instagram .case-grid {
    display: flex !important;
    flex-direction: row !important;
    overflow-x: auto !important;
    scroll-snap-type: x mandatory !important;
    -webkit-overflow-scrolling: touch !important;
    gap: 16px !important;
    padding: 0 20px 16px !important;
    grid-template-columns: unset !important;
  }
  .page-instagram .case-grid::-webkit-scrollbar {
    display: none;
  }
  .page-instagram .case-grid .case-card {
    flex: 0 0 80vw !important;
    max-width: 340px !important;
    scroll-snap-align: start !important;
    min-width: 280px !important;
  }
}
@media (min-width: 1025px) {
  .page-instagram .case-grid-wrap {
    padding: 0 80px !important;
    overflow-x: visible !important;
  }
  .page-instagram .case-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0 !important;
  }
  /* カード内を横並び（画像左・テキスト右）に変更 */
  .page-instagram .case-card {
    flex-direction: row !important;
    padding: 0 !important;
    border-right: none !important;
    border-bottom: 1px solid #E0E0E0 !important;
  }
  .page-instagram .case-card:last-child {
    border-bottom: none !important;
  }
  .page-instagram .case-screenshot {
    width: 320px !important;
    min-width: 320px !important;
    max-width: 320px !important;
    height: auto !important;
    flex-shrink: 0 !important;
    aspect-ratio: 9 / 6.5 !important;
    align-self: center !important;
    overflow: hidden !important;
  }
  .page-instagram .case-screenshot img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center top !important;
  }
  .page-instagram .case-card-body {
    padding: 40px 56px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    gap: 24px !important;
  }
}

/* ===== instagram: sp-swipe-hint タブレット（769px〜1024px）でも表示 ===== */
@media (min-width: 769px) and (max-width: 1024px) {
  .page-instagram .case-sec .sp-swipe-hint {
    display: block !important;
    color: #767680 !important;
  }
}

/* ===== TikTok: case-grid スワイプ（1024px以下）＆ 横並びレイアウト（1025px以上） ===== */
@media (max-width: 1024px) {
  .page-tiktok .case-grid-wrap {
    padding: 0 !important;
    overflow-x: clip !important;
  }
  .page-tiktok .case-note-wrap {
    padding: 0 20px 20px !important;
  }
  .page-tiktok .case-grid {
    display: flex !important;
    flex-direction: row !important;
    overflow-x: auto !important;
    scroll-snap-type: x mandatory !important;
    -webkit-overflow-scrolling: touch !important;
    gap: 16px !important;
    padding: 0 20px 16px !important;
    grid-template-columns: unset !important;
  }
  .page-tiktok .case-grid::-webkit-scrollbar {
    display: none;
  }
  .page-tiktok .case-grid .case-card {
    flex: 0 0 80vw !important;
    max-width: 340px !important;
    scroll-snap-align: start !important;
    min-width: 280px !important;
  }
}
@media (min-width: 1025px) {
  .page-tiktok .case-grid-wrap {
    padding: 0 80px !important;
    overflow-x: visible !important;
  }
  .page-tiktok .case-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0 !important;
  }
  /* 画像なし・テキストのみ横並びレイアウト */
  .page-tiktok .case-card {
    flex-direction: row !important;
    padding: 0 !important;
    border-right: none !important;
    border-bottom: 1px solid #E0E0E0 !important;
  }
  .page-tiktok .case-card:last-child {
    border-bottom: none !important;
  }
  .page-tiktok .case-card-body {
    padding: 40px 56px !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start !important;
    gap: 48px !important;
    width: 100% !important;
  }
  .page-tiktok .case-card-body .case-industry {
    min-width: 200px !important;
    max-width: 200px !important;
    flex-shrink: 0 !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    padding-top: 4px !important;
  }
  .page-tiktok .case-card-body .case-overview {
    flex: 1 !important;
  }
  .page-tiktok .case-card-body .case-results {
    min-width: 200px !important;
    max-width: 220px !important;
    flex-shrink: 0 !important;
  }
}
/* ===== TikTok: sp-swipe-hint タブレット（769px〜1024px）でも表示 ===== */
@media (min-width: 769px) and (max-width: 1024px) {
  .page-tiktok .case-sec .sp-swipe-hint {
    display: block !important;
    color: #767680 !important;
  }
}

/* ===== instagram: SP（767px以下）カード内余白・テキスト間隔改善 ===== */
@media (max-width: 767px) {
  .page-instagram .case-card-body {
    padding: 20px 20px 24px !important;
  }
  .page-instagram .case-overview {
    margin-bottom: 16px !important;
    flex: unset !important;
  }
  .page-instagram .case-results {
    margin-top: 0 !important;
  }
  .page-instagram .case-screenshot {
    margin-bottom: 0 !important;
  }
  .page-instagram .case-grid .case-card {
    flex: 0 0 85vw !important;
    max-width: 300px !important;
  }
}

/* ===== TOPページ KV H1 font-size 強制確定 ===== */
body.page-top .kv-h1,
body.page-top .kv-h1.fu {
  font-size: clamp(56px, 8vw, 120px) !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: -0.04em !important;
}
