/* ===== RESET ===== */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
:root{
  --bg:#0E192F!important;--white:#FFF!important;--blue:#00B4FF!important;--orange:#FF5000!important;--navy:#0E192F!important;--yellow:#FFF000!important;
  --grad-blue:linear-gradient(270deg,#0586D7 0%,#33B1FF 100%)!important;
  --grad-red:linear-gradient(90deg,#FF5000 0%,#E64900 100%)!important;
  --grad-bg:linear-gradient(180deg,#0E192F 0%,#00B4FF 100%)!important;
  --ff:'Noto Sans JP',sans-serif!important;--fe:'Roboto',sans-serif!important;
}
html{scroll-behavior:smooth;overflow-x:hidden;max-width:100vw;}
body{
  font-family:var(--ff)!important;background:var(--bg)!important;color:var(--white)!important;
  overflow-x:hidden!important;line-height:1.5!important;
  max-width:100vw!important;width:100%!important;
  position:relative!important;
}

/* ===== Responsive utilities ===== */
.sp-only{display:none;}
@media(max-width:768px){
  .pc-only{display:none;}
  .sp-only{display:inline;}
  br.sp-only{display:inline;}
}
a{text-decoration:none;color:inherit;transition:opacity .3s;}a:hover{opacity:.8;}
img{max-width:100%;height:auto;display:block;}
ul{list-style:none;}

/* ===== HEADER ===== */
.header{position:fixed;top:0;left:0;width:100%;height:96px;background:rgba(255,255,255,.98);box-shadow:0 2px 6px rgba(0,0,0,.08);z-index:1000;}
.header-inner{
  max-width:1920px;margin:0 auto;padding:12px 32px;height:100%;
  display:flex;justify-content:space-between;align-items:flex-end;gap:40px;
}
/* Left: logo + nav bottom aligned */
.header-left{display:flex;align-items:flex-end;gap:48px;flex:1;height:100%;}
.header-logo{flex-shrink:0;display:flex;align-items:flex-end;height:100%;}
.header-logo img{width:220px;height:auto;display:block;}
.header-nav{padding-bottom:0;}
.header-nav ul{display:flex;gap:28px;}
.header-nav a{font-size:12.6px;font-weight:500;color:var(--navy);white-space:nowrap;}
.icon-plus{font-size:10px;margin-left:2px;vertical-align:middle;color:var(--blue);}
/* ===== SERVICE DROPDOWN ===== */
.nav-item-service{position:static}
.service-dropdown{
  display:none;
  position:fixed;top:96px;left:0;width:100%;
  background:#fff;box-shadow:0 8px 24px rgba(0,0,0,.10);
  z-index:999;
}
.nav-item-service.is-open .service-dropdown{display:block;}
.service-dropdown-inner{max-width:1200px;margin:0 auto;padding:28px 20px 36px;}
.service-dropdown-header{text-align:center;margin-bottom:18px;}
.service-dropdown-en{font-family:var(--fe);font-size:16px;color:#cecece;letter-spacing:.06em;margin-bottom:2px;}
.service-dropdown-ja{font-size:24px;font-weight:500;color:var(--navy);}
.service-dropdown-line{border:none;border-top:1px solid #e0e0e0;margin-bottom:24px;}
.service-dropdown-links{display:flex;justify-content:center;align-items:flex-start;gap:80px;}
.service-dropdown-links .service-dropdown-link{
  display:flex;align-items:center;gap:8px;
  font-size:14.4px;font-weight:500;color:var(--navy);
  white-space:nowrap;letter-spacing:.04em;
}
.service-dropdown-link:hover{opacity:.7;}
.service-dropdown-link--disabled{cursor:default;opacity:.5;}
.service-dropdown-link--disabled:hover{opacity:.5;}
/* 親項目（ECコンサル）：アイコン無し */
.service-dropdown-link--parent{opacity:1 !important;}
/* サブカテゴリリスト */
.service-dropdown-link-group{display:flex;flex-direction:column;gap:12px;}
.service-dropdown-sublinks{
  list-style:none;margin:0;padding:0 0 0 8px;
  display:flex;flex-direction:column;gap:10px;
}
.service-dropdown-sublink{
  display:flex;align-items:center;gap:8px;
  font-size:13px;font-weight:500;color:var(--navy);
  text-decoration:none;letter-spacing:.04em;
  transition:opacity .2s;
}
.service-dropdown-sublink:hover{opacity:.7;}
.service-dropdown-sublink-dot{
  display:inline-block;width:6px;height:6px;
  border-radius:50%;background:#00B4FF;
  flex-shrink:0;
}
.service-ext-icon{flex-shrink:0;margin-left:2px;}
/* Right: phone on top, CTAs below - column with matching widths */
.header-right{display:flex;flex-direction:column;gap:6px;flex-shrink:0;align-items:stretch;}
.header-phone{
  display:flex;align-items:center;gap:6px;width:100%;
}
.phone-icon{flex-shrink:0;}
.phone-number{
  font-family:var(--fe);font-weight:700;font-size:24px;color:var(--blue);
  line-height:1;letter-spacing:.02em;
}
.phone-hours-txt{font-size:9px;font-weight:400;color:var(--navy);opacity:.6;line-height:1.3;margin-left:6px}
.header-cta{display:flex;gap:6px;width:100%;}
.btn-cta-sm{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:10px 24px;border-radius:100px;font-size:12px;font-weight:600;color:var(--white);
  white-space:nowrap;flex:1;
}
.btn-blue{background:var(--blue);}
.btn-orange{background:var(--orange);}
.btn-cta-sm svg{flex-shrink:0;width:13px;height:auto;}

/* ===== HERO ===== */
.section-hero{position:relative;width:100%;height:0;padding-bottom:56.25%;/* 1080/1920 */overflow:hidden;margin: -10em 0 0 0;}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.hero-deco-sp{display:none;}
.hero-content{position:absolute;top:0;left:0;width:100%;height:100%;z-index:2;}
.hero-text{
  position:absolute;
  left:2.86%;/* 55/1920 */
  top:16.67%;/* 180/1080 */
  font-weight:700;font-size:clamp(40px,7.29vw,140px);line-height:1.1;color:var(--white);
}
.hero-subtext{
  position:absolute;
  left:3.39%;/* 65/1920 */
  top:47.96%;/* 518/1080 */
  font-weight:500;font-size:clamp(16px,2.08vw,40px);line-height:1.3;letter-spacing:.04em;color:var(--white);
}
.hero-badge{
  position:absolute;
  left:3.39%;
  top:60.49%;/* 653/1080 */
  width:43.68%;/* 839/1920 */
}
.hero-badge img{width:100%;height:auto;}

.hero-buttons{
  position:absolute;
  left:3.39%;/* 65/1920 */
  top:76.2%;/* 823/1080 */
  display:flex;gap:1.4vw;
}
.btn-hero{
  display:flex;align-items:center;gap:12px;
  width:clamp(200px,21.25vw,408px);height:clamp(52px,5.42vw,104px);
  border-radius:10px;padding:0 clamp(16px,2.08vw,40px);color:var(--white);
  transition:transform .3s;
}
.btn-hero:hover{transform:translateY(-2px);opacity:1;}
.btn-hero-blue{background:var(--grad-blue);}
.btn-hero-red{background:var(--grad-red);}
.btn-hero-icon{flex-shrink:0;}
.btn-hero-icon svg{width:clamp(20px,2.2vw,42px);height:auto;}
.btn-hero-labels{display:flex;flex-direction:column;gap:2px;min-width:0;}
.btn-hero-sub{font-size:clamp(9px,.73vw,14px);font-weight:500;}
.btn-hero-main{font-size:clamp(12px,1.25vw,24px);font-weight:700;}
.btn-hero-arrow{margin-left:auto;font-size:clamp(14px,1.25vw,24px);}

/* Logo strip */
.hero-logos{
  position:absolute;bottom:0;left:0;width:100%;
  height:7.41%;/* 80/1080 */
  background:rgba(14,25,47,.85);z-index:3;overflow:hidden;
}
.hero-logos-track{display:flex;gap:3px;height:100%;align-items:center;animation:marquee 40s linear infinite;width:max-content;}
.hero-logos-track img{height:100%;width:212px;object-fit:contain;flex-shrink:0;background:#fff;}
@keyframes marquee{0%{transform:translateX(0);}100%{transform:translateX(-50%);}}

/* ===== SHARED SECTION STYLES ===== */
/* 1200px content / 1920px page = 360px auto-margin each side at full width */
.section-inner{max-width:1200px;margin:0 auto;padding:0 24px;}
.section-inner--wide{max-width:1200px;margin:0 auto;padding:0 24px;}
.section-header-block{text-align:center;margin-bottom:32px;position:relative;}
.section-title-en{
  font-family:var(--fe)!important;font-weight:800!important;font-size:clamp(60px,8.33vw,160px)!important;
  line-height:1.17!important;letter-spacing:.04em!important;color:var(--white)!important;
}
.section-title-en--sm{font-size:clamp(50px,6.25vw,120px)!important;}
.section-label{
  font-size:clamp(14px,1.25vw,24px)!important;font-weight:400!important;letter-spacing:.1em!important;
  color:var(--blue);display:block;position:relative;z-index:1;
}
.section-desc{
  font-size:clamp(14px,1.25vw,24px);font-weight:400;line-height:1.5;letter-spacing:.04em;
  text-align:center;margin-bottom:56px;
}

/* ===== SERVICE ===== */
.section-service{padding:120px 0 80px;}
.section-service .section-title-en{opacity:1;}
.service-pdca{
  background:rgba(255,255,255,.08);border-radius:6px;
  padding:70px 40px;text-align:center;margin-bottom:64px;
  overflow:hidden;
}
.pdca-title{font-size:clamp(16px,1.67vw,32px);font-weight:700;line-height:1.4;letter-spacing:.04em;margin-bottom:40px;}
.pdca-desc{font-size:16px;line-height:1.6;margin-bottom:40px;margin-top:40px;opacity:.9;}
.pdca-cards{display:flex;align-items:center;justify-content:center;gap:12px;}
.pdca-card{
  width:238px;height:252px;border-radius:6px;
  padding:31px 24px 24px;text-align:left;position:relative;overflow:hidden;
  opacity:0;transform:translateX(-32px);transition:opacity 0.5s ease, transform 0.5s ease;
}
.pdca-card.is-visible{opacity:1;transform:translateX(0);}
.pdca-arrow{opacity:0;transition:opacity 0.3s ease;}
.pdca-arrow.is-visible{opacity:1;}
.pdca-card--analysis{background:linear-gradient(133deg,rgba(67,124,252,1) 7%,rgba(46,94,243,1) 100%);}
.pdca-card--proposal{background:linear-gradient(133deg,rgba(47,90,242,1) 7%,rgba(74,60,237,1) 100%);}
.pdca-card--execution{background:linear-gradient(133deg,rgba(85,70,228,1) 7%,rgba(232,116,53,1) 100%);}
.pdca-card--check{background:linear-gradient(133deg,rgba(240,113,18,1) 7%,rgba(231,96,10,1) 100%);}
.pdca-card-icon{height:58px;width:auto;margin-bottom:16px;}
.pdca-card-title{display:flex;align-items:baseline;gap:12px;margin-bottom:12px;}
.pdca-ja{font-size:32px;font-weight:700;line-height:1.45;}
.pdca-en{font-family:var(--fe);font-size:14px;font-weight:500;color:#CECECE;}
.pdca-line{border:none;border-top:1px solid var(--white);margin-bottom:16px;opacity:.4;}
.pdca-list{font-size:16px;font-weight:400;line-height:1.2;list-style:none;}
.pdca-list li{margin-bottom:4px;}
.pdca-arrow{flex-shrink:0;display:flex;align-items:center;}
.pdca-arrow img{width:16px;height:40px;}

.service-card{
  display:flex;background:rgba(255,255,255,.08);border-radius:6px;
  overflow:hidden;margin-bottom:48px;position:relative;
}
.service-card-img{width:460px;flex-shrink:0;position:relative;}
.service-card-img img{width:100%;height:100%;object-fit:cover;}
.service-card-body{
  padding:48px 48px 48px 56px;
  display:flex;flex-direction:column;flex:1;gap:24px;
}
.service-card-title{font-size:clamp(22px,2.5vw,40px);font-weight:700;line-height:1.3;}
.service-summary-list{display:flex;flex-direction:column;gap:1px;}
.service-summary-item{
  display:flex;align-items:center;height:60px;position:relative;
  padding:0 20px 0 56px;
}
.service-summary-item::before{
  content:'';position:absolute;left:0;top:8px;right:0;height:44px;
  border-radius:4px;
  backdrop-filter:blur(60px);-webkit-backdrop-filter:blur(60px);
  background:rgba(255,255,255,.04);
}
.summary-border-svg{
  position:absolute;left:0;top:8px;width:100%;height:44px;
  pointer-events:none;overflow:visible;
}
.summary-check{position:absolute;left:20px;width:22px;height:22px;z-index:1;}
.service-summary-item span{position:relative;z-index:1;font-size:clamp(14px,1.25vw,18px);font-weight:500;letter-spacing:.04em;}
.service-card-text{font-size:15px;font-weight:400;line-height:1.8;letter-spacing:.04em;opacity:.85;}
.service-ec-channels{display:flex;flex-direction:column;gap:12px;}
.ec-channels-label{font-size:16px;font-weight:500;line-height:1.2;}
/* Card 1 用：個別カード化（CSSスプライト・3×2 グリッド・クリッカブル） */
.ec-channel-cards{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  max-width:600px;
}
/* Card 2 用：従来通り 1枚画像で表示 */
.ec-channel-logos img{max-width:100%;width:auto;display:block;}
.ec-channel-card{
  position:relative;display:block;
  /* SVG 560×141, 3×2グリッド → 各セル 186.67×70.5 = aspect 2.65/1 */
  aspect-ratio:2.65/1;
  background-image:url(../images/ecmall-logos.svg);
  background-size:300% 200%;
  background-repeat:no-repeat;
  border-radius:6px;
  transition:transform .25s ease, filter .25s ease;
}
.ec-channel-card--rakuten{background-position:0% 0%;}
.ec-channel-card--amazon{background-position:50% 0%;}
.ec-channel-card--yahoo{background-position:100% 0%;}
.ec-channel-card--qoo10{background-position:0% 100%;}
.ec-channel-card--tiktok{background-position:50% 100%;}
.ec-channel-card--ownec{background-position:100% 100%;pointer-events:none;}
a.ec-channel-card{cursor:pointer;}
/* ホバー時：カードごとふわっと浮く */
a.ec-channel-card:hover{
  transform:translateY(-4px);
  filter:drop-shadow(0 6px 12px rgba(0,0,0,.18));
  opacity:1;
}
/* Service card CTA button */
.service-card-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  width:280px;max-width:100%;height:56px;
  align-self:flex-start;margin-top:8px;
  background:#fff;color:var(--navy);border-radius:100px;
  font-size:16px;font-weight:500;
  transition:transform .3s, background .3s, color .3s;
}
.service-card-btn:hover{
  transform:translateY(-2px);opacity:1;
  background:var(--grad-blue);color:#fff;
}
.service-card-btn:hover span{color:#fff;}
.service-card-btn span{color:var(--blue);font-size:18px;}

/* ===== BTN OUTLINE WHITE ===== */
.btn-outline-white{
  display:flex;align-items:center;justify-content:center;gap:10px;
  width:400px;height:64px;max-width:100%;
  background:var(--white);color:var(--navy);border-radius:100px;
  font-size:18px;font-weight:500;margin:0 auto;transition:transform .3s;
}
.btn-outline-white:hover{transform:translateY(-2px);opacity:1;background:var(--grad-blue);color:var(--white);}
.btn-outline-white:hover span{color:var(--white);}
.btn-outline-white span{color:var(--blue);font-size:20px;}

/* ===== DIAGNOSIS ===== */
.section-diagnosis{position:relative;padding:200px 0 120px;overflow:hidden;}
.diagnosis-bg{position:absolute;inset:0;background:var(--grad-bg);}
@keyframes watermark-scroll{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}
.diagnosis-watermark{
  position:absolute;top:88px;left:0;
  display:flex;white-space:nowrap;
  opacity:.05;z-index:1;pointer-events:none;
  animation:watermark-scroll 16s linear infinite;
}
.diagnosis-watermark-text{
  flex-shrink:0;
  font-family:var(--fe);font-weight:800;font-size:clamp(80px,12.14vw,233px);
  line-height:1.17;letter-spacing:.04em;color:var(--white);
  padding-right:80px;
}
.diagnosis-inner{position:relative;z-index:2;text-align:center;max-width:1200px;margin:0 auto;padding:0 24px;}
.diagnosis-title{font-size:clamp(32px,5.21vw,100px);font-weight:700;line-height:1.3;margin-bottom:32px;}
.diagnosis-desc{font-size:clamp(14px,1.25vw,24px);line-height:1.5;letter-spacing:.04em;margin-bottom:56px;}
.diagnosis-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.diagnosis-card{
  background:var(--white);border:1px solid var(--blue);border-radius:10px;
  box-shadow:0 6px 5px rgba(0,0,0,.16);
  padding:26px 24px 30px;text-align:left;color:var(--navy);
  display:flex;flex-direction:column;align-items:flex-start;
}
.diagnosis-card--primary{
  background:linear-gradient(135deg,#FC4234 0%,#A033FF 97%);
  border-color:transparent;color:var(--white);
}
.diagnosis-card-icon{margin-bottom:16px;width:68px;height:68px;object-fit:contain;}
.diagnosis-card h3{font-size:24px;font-weight:700;letter-spacing:.04em;margin-bottom:12px;}
.diagnosis-card p{font-size:14px;font-weight:300;line-height:1.5;letter-spacing:.04em;}
.diagnosis-card--primary p{color:rgba(255,255,255,.9);}
.card-tel{display:block;font-family:var(--fe);font-weight:500;font-size:28px;color:var(--orange);margin-top:8px;}
.card-hours{display:block;font-size:13px;font-weight:300;margin-top:4px;color:rgba(14,25,47,.6);}

/* ===== WHY US ===== */
.section-why-us{padding:120px 0 80px;}
.section-why-us .section-title-en{opacity:1;font-size:clamp(36px,5.2vw,100px)!important;}
.why-us-desc{text-align:center;margin-bottom:56px;}
.why-us-desc-bold{
  font-size:clamp(14px,1.25vw,24px);font-weight:500;line-height:1.5;
  letter-spacing:.04em;margin-bottom:24px;
}
.why-us-desc-normal{
  font-size:clamp(14px,1.25vw,24px);font-weight:400;line-height:1.5;
  letter-spacing:.04em;opacity:.8;
}
.why-cards{
  display:grid;grid-template-columns:repeat(3,1fr);gap:32px;
  max-width:1200px;margin:0 auto;
}
.why-cards--bottom{
  grid-template-columns:repeat(2,1fr);
  max-width:800px;margin-top:32px;
}
.why-card{width:100%}
.why-card-inner{
  background:rgba(255,255,255,.07);
  border-radius:8px;padding:36px 28px 40px;height:100%;
  text-align:center;position:relative;
}
.why-card-border-svg{
  position:absolute;left:0;top:0;width:100%;height:100%;
  pointer-events:none;overflow:visible;
}
.why-card-icon{
  display:block;width:80px;height:64px;margin:0 auto 24px;
  object-fit:contain;
  filter:drop-shadow(0 0 8px rgba(0,180,255,.8));
}
.why-card-inner p{
  font-size:15px;font-weight:400;
  line-height:1.7;letter-spacing:.04em;
  text-align:center;
}

/* ===== ACHIEVEMENT ===== */
.section-achievement{padding:80px 0 120px;}
.section-achievement .section-title-en{opacity:1;}
.achievement-stats{display:flex;align-items:center;justify-content:center;gap:48px;margin-bottom:56px;}
.achievement-stat{text-align:center;flex-shrink:0;white-space:nowrap;}
.stat-label{display:block;font-size:clamp(14px,1.25vw,24px);font-weight:400;letter-spacing:.1em;margin-bottom:4px;}
.stat-number{
  font-family:var(--fe);font-weight:700;font-size:clamp(60px,7.81vw,150px);line-height:1.17;
  text-shadow:0 0 12px rgba(0,211,242,1);
}
.stat-number small{
  font-family:var(--ff);font-weight:500;font-size:clamp(24px,3.13vw,60px);
  letter-spacing:.04em;text-shadow:0 0 12px rgba(0,211,242,1);
}
.stat-divider{width:2px;height:200px;background:rgba(255,255,255,.3);flex-shrink:0;}
.ach-subtitle{font-size:clamp(28px,3.13vw,60px);font-weight:700;letter-spacing:.04em;text-align:center;margin-bottom:12px;}
.ach-text{font-size:clamp(14px,1.25vw,24px);font-weight:400;letter-spacing:.1em;text-align:center;margin-bottom:48px;}

.ach-thumbs{
  display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:56px;
}
.ach-thumb{
  aspect-ratio:285/320;border-radius:6px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  background-size:cover;background-position:center;position:relative;overflow:hidden;
}
.ach-thumb::before{
  content:'';position:absolute;inset:0;background:rgba(0,0,0,.55);z-index:0;
}
.thumb-lbl{font-size:clamp(12px,1.04vw,20px);font-weight:500;letter-spacing:.04em;margin-bottom:8px;position:relative;z-index:1;}
.thumb-val{font-family:var(--fe);font-weight:700;font-size:clamp(22px,2.6vw,50px);line-height:1.17;color:var(--yellow);position:relative;z-index:1;white-space:nowrap;}
.thumb-tags{display:flex;gap:6px;margin-top:10px;position:relative;z-index:1;flex-wrap:wrap;justify-content:center;}
.thumb-tag{font-size:clamp(10px,0.75vw,13px);font-weight:700;padding:3px 8px;border-radius:3px;color:#fff;letter-spacing:.03em;}
.thumb-tag--rakuten{background:#bf0000;}
.thumb-tag--amazon{background:#131921;color:#FF9900;}
.thumb-tag--jisya{background:#1a5fd9;}
.thumb-tag--yahoo{background:#FF6600;}
.thumb-tag--cat{background:#fff;color:#0e1e3d;}

.ach-cases{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:56px;}
.ach-case{
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);
  border-radius:8px;overflow:hidden;
  display:flex;flex-direction:column;padding:28px 28px 0;text-align:center;
}
.case-label{font-family:var(--fe);font-weight:700;font-size:20px;color:var(--blue);letter-spacing:.04em;line-height:1;margin-bottom:8px;display:block;text-align:center;}
.case-sub{font-size:14px;font-weight:400;letter-spacing:.04em;display:block;margin-bottom:4px;opacity:.9;}
.case-main{
  display:block;font-size:36px;font-weight:700;letter-spacing:.04em;line-height:1.4;
  color:var(--white);
  background:var(--orange);
  padding:4px 12px;
}
.case-main-wrap{display:inline-flex;flex-direction:column;gap:8px;margin-bottom:12px;}
.case-desc{font-size:13px;font-weight:300;letter-spacing:.04em;text-align:center;margin-bottom:12px;opacity:.8;}
.case-graph{margin:auto -32px 0;/* push to bottom */}
.case-graph img{width:100%;display:block;}

/* ===== INTERVIEW ===== */
.section-interview{padding:80px 0 120px;}
.section-interview .section-title-en{opacity:1;}
.interview-slider{position:relative;margin-bottom:48px;overflow:visible;}
.section-interview .section-inner{overflow:visible;}
.interview-track{overflow:hidden;width:100%;}
.interview-cards-wrap{display:flex;transition:transform 0.4s ease;}
.interview-card{
  display:flex;border:1px solid rgba(255,255,255,.2);border-radius:6px;overflow:hidden;
  height:540px;background:var(--white);flex-shrink:0;width:100%;
}
.interview-img{width:512px;flex-shrink:0;}
.interview-img img{width:100%;height:100%;object-fit:cover;}
.interview-body{padding:54px 48px;color:var(--navy);flex:1;overflow-y:auto;}
.interview-head{margin-bottom:24px;}
.interview-logo{width:175px;margin-bottom:12px;}
.interview-head h3{font-size:32px;font-weight:500;letter-spacing:.04em;color:var(--navy);margin-bottom:8px;}
.interview-tag{
  display:inline-block;border:1px solid var(--blue);border-radius:100px;
  padding:1px 10px;font-size:10px;font-weight:500;color:var(--blue);
}
.interview-highlight{font-size:18px;font-weight:500;line-height:1.5;letter-spacing:.04em;color:var(--navy);margin-bottom:16px;}
.interview-detail{font-size:16px;font-weight:300;line-height:1.5;letter-spacing:.04em;color:var(--navy);white-space:pre-line;}
.slider-btn{
  position:absolute;top:50%;transform:translateY(-50%);width:68px;height:68px;
  border:none;background:transparent;cursor:pointer;
  display:flex;align-items:center;justify-content:center;border-radius:50%;
  z-index:5;
}
.slider-btn:hover{background:rgba(0,180,255,.15);}
.slider-btn img{width:68px;height:68px;}
.slider-prev{left:-34px;}
.slider-next{right:-34px;}
.interview-read-btn{position:absolute;bottom:0;right:0;width:103px;height:103px;}
.interview-read-btn img{width:100%;height:100%;}

/* ===== CONTENTS ===== */
.section-contents{padding:80px 0 120px;}
.section-contents .section-title-en{opacity:1;}
.contents-block{
  position:relative;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);
  border-radius:8px;padding:48px 80px 64px;margin-bottom:40px;
}
.contents-cat-title{font-size:clamp(28px,3.13vw,60px);font-weight:500;line-height:1.45;margin-bottom:28px;}
.contents-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;margin-bottom:36px;}
.contents-item{cursor:pointer;transition:transform .3s;}
.contents-item:hover{transform:translateY(-4px);}
.contents-thumb{border-radius:4px;overflow:hidden;aspect-ratio:16/9;margin-bottom:10px;}
.contents-thumb img{width:100%;height:100%;object-fit:cover;}
.contents-thumb--doc{background:#E7F2F8;}
.contents-meta{display:flex;gap:8px;align-items:center;margin-bottom:6px;}
.tag{display:inline-block;border:1px solid var(--blue);border-radius:100px;padding:1px 10px;font-size:10px;font-weight:500;color:var(--blue);}
.tag::before{content:'#';}
.date{font-family:var(--fe);font-size:14px;font-weight:500;color:#CECECE;}
.contents-item p{font-size:14px;line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.btn-gradient{
  display:flex;align-items:center;justify-content:center;gap:8px;
  width:394px;height:58px;max-width:100%;background:var(--grad-blue);
  border-radius:100px;font-size:18px;color:var(--white);margin:0 auto;
  border:2px solid transparent;transition:background 0.3s, color 0.3s, border-color 0.3s;
}
.btn-gradient:hover{
  background:var(--white);
  color:var(--blue);
  border-color:var(--blue);
  opacity:1;
}
.btn-gradient span{font-size:20px;}

/* ===== COMPANY ===== */
.section-company{position:relative;padding:80px 0 120px;}
.section-company .section-title-en{opacity:1;}
.section-company .section-inner{position:relative;z-index:1;max-width:1400px;}
.company-card{
  background:rgba(255,255,255,.10);
  border-radius:6px;
  padding:56px 64px 64px;
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  box-shadow:0 0 4px rgba(255,255,255,.30);
}
.company-headline{
  font-size:clamp(28px,3.5vw,48px);font-weight:500;line-height:1.45;
  text-align:center;margin:0 0 48px;color:#fff;letter-spacing:.04em;
}
.company-row{
  display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;
}
.company-img{width:100%;flex-shrink:0;}
.company-img img{width:100%;height:auto;display:block;}
.company-text{display:flex;flex-direction:column;gap:8px;}
.company-text p{font-size:18px;line-height:2;margin:0;color:#fff;font-weight:300;letter-spacing:.04em;}
.company-text .btn-outline-white{margin:32px auto 0;}

/* ===== NEWS ===== */
.section-news{padding:200px 0 120px;}
.section-news .section-title-en{opacity:1;position:relative;z-index:1;}
.section-news .section-header-block{margin-bottom:-80px;position:relative;z-index:2;}
.news-box{
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);
  border-radius:8px;padding:140px 80px 64px;position:relative;z-index:0;
}
.news-list{margin-bottom:40px;display:flex;flex-direction:column;gap:12px;}
.news-item{
  display:flex;align-items:center;gap:20px;padding:16px 24px;
  background:var(--white);border-radius:4px;color:var(--navy);
}
.news-item:hover{opacity:.85;}
.news-item::after{
  content:'>';margin-left:auto;font-size:16px;color:rgba(14,25,47,.35);flex-shrink:0;
}
.news-item time{font-family:var(--fe);font-size:14px;font-weight:500;color:rgba(14,25,47,.5);flex-shrink:0;}
.news-item>span:last-of-type{font-size:15px;font-weight:400;color:var(--navy);flex:1;min-width:0;}
.news-tag{font-size:11px;padding:4px 12px;border-radius:3px;flex-shrink:0;font-weight:500;white-space:nowrap;}
.news-tag--info{background:var(--blue);color:var(--white);}
.news-tag--seminar{background:#7B61FF;color:var(--white);}
.news-tag--press{background:#00C896;color:var(--white);}

/* ===== CONTACT ===== */
.section-contact{padding:280px 0 120px;background:var(--grad-bg);position:relative;overflow:hidden;}
.section-contact::before{
  content:'';position:absolute;top:14px;left:0;width:100%;height:calc(100% - 14px);
  background:url(../images/contact-deco.png) center/cover no-repeat;
  mix-blend-mode:screen;opacity:.5;pointer-events:none;
}
.contact-inner{text-align:center;max-width:1200px;margin:0 auto;padding:0 24px;position:relative;z-index:1;}
.contact-inner h2{font-size:clamp(28px,3.33vw,64px);font-weight:700;line-height:1.4;margin-bottom:32px;}
.contact-inner>p{font-size:clamp(14px,1.25vw,24px);line-height:1.5;letter-spacing:.04em;margin-bottom:48px;}
.contact-btns{display:flex;gap:32px;justify-content:center;flex-wrap:wrap;}

/* ===== FOOTER ===== */
.footer{background:var(--bg);padding:120px 0 80px;}
.footer-inner{max-width:1200px;margin:0 auto;padding:0 24px;text-align:center;}
.footer-logo{width:416px;margin:0 auto 36px;opacity:.8;}
.footer-tagline{font-size:14px;font-weight:500;opacity:.8;margin-bottom:36px;}
.footer-hr{border:none;height:1px;background:#585858;margin-bottom:36px;}
.footer-nav{display:flex;justify-content:space-between;gap:48px;margin-bottom:56px;text-align:left;}
.footer-nav h4{font-size:16px;font-weight:700;margin-bottom:14px;}
.footer-nav li{margin-bottom:8px;}
.footer-nav li a::before,
.footer-nav-parent-label::before{content:'> ';opacity:.5;}
.footer-nav-parent-label{font-size:14px;opacity:.7;display:inline-block;}
.footer-nav a{font-size:14px;opacity:.7;}
.footer-nav a:hover{opacity:1;}
.footer-nav-company{flex-shrink:0;}
.footer-nav-company h4{font-size:18px;font-weight:700;margin-bottom:16px;}
.footer-nav-company p{font-size:13px;opacity:.6;line-height:1.8;}
/* フッター：サブカテゴリリスト（コンサル下の4ロゴ）*/
.footer-nav .footer-sublinks{
  list-style:none;margin:8px 0 4px;padding:0 0 0 12px;
  display:flex;flex-direction:column;gap:6px;
}
.footer-nav .footer-sublinks li{margin:0;}
.footer-nav .footer-sublinks a{
  display:inline-flex;align-items:center;gap:8px;
  font-size:13px;
}
/* サブリンクの '> ' プレフィックスを抑止し、代わりにシアン丸ドット */
.footer-nav .footer-sublinks a::before{content:none;}
.footer-sublink-dot{
  display:inline-block;width:5px;height:5px;
  background:#00B4FF;border-radius:50%;
  flex-shrink:0;
}
.footer-copy{font-size:10px;font-weight:500;opacity:.5;}

/* ===== RESPONSIVE ===== */
@media(max-width:1440px){
  .header-inner{padding:0 40px;}
  .service-card-img{width:400px;}
  .contents-block{padding:48px 60px 64px;}
}
@media(max-width:1280px){
  .service-card-img{width:360px;}
  .service-card-body{padding:40px 36px 40px 48px;}
  .ach-cases{grid-template-columns:repeat(3,1fr);}
}
@media(max-width:1200px){
  .header-inner{padding:0 24px;}
  .header-nav ul{gap:16px;}
  .header-phone .phone-number{font-size:22px;}
  .service-card{flex-direction:column;}
  .service-card-img{width:100%;height:280px;}
  .service-card-body{padding:32px 28px;max-width:100%;}
  .service-card-btn{
    width:250px;height:40px;
    padding:8px 40px;
    align-self:center;
    font-size:14px;letter-spacing:.04em;
  }
  .service-card-btn span{font-size:14px;}
  .section-company{padding:56px 0 56px;}
  .section-contact{padding:80px 0 60px;}
  .section-company .section-inner{padding:0 16px;max-width:100%;width:100%;box-sizing:border-box;}
  .company-card{
    padding:24px 16px 28px;
    width:100%;max-width:100%;box-sizing:border-box;
    overflow:hidden;
  }
  .company-headline{font-size:22px;margin:0 0 28px;}
  .company-row{grid-template-columns:1fr;gap:24px;width:100%;}
  .company-img{width:100%;max-width:380px;margin:0 auto;}
  .company-img img{width:100%;height:auto;display:block;}
  .company-text{min-width:0;width:100%;}
  .company-text p{font-size:14px;line-height:1.8;word-break:break-word;}
  .company-text .btn-outline-white{margin-top:20px;width:100%;max-width:340px;}
  .ach-cases{grid-template-columns:1fr 1fr;}
  .interview-card{flex-direction:column;height:auto;}
  .interview-img{width:100%;height:280px;}
  .slider-btn{width:44px;height:44px;background:rgba(255,255,255,.88);box-shadow:0 2px 8px rgba(0,0,0,.15);}
  .slider-btn img{width:44px;height:44px;}
  .slider-prev{left:8px;}
  .slider-next{right:8px;}
  .contents-block{padding:40px 40px 56px;}
  .pdca-card{width:200px;height:220px;}
}
/* ===== Hamburger Button ===== */
.hamburger-btn{
  display:none;flex-direction:column;align-items:center;gap:5px;
  width:44px;padding:0;background:none;border:none;cursor:pointer;flex-shrink:0;
}
.hamburger-icon{
  display:flex;flex-direction:column;justify-content:center;align-items:center;
  width:24px;height:18px;gap:4px;
}
.hamburger-icon span{
  display:block;width:24px;height:2px;background:#195daa;border-radius:1px;
  transition:transform 0.3s,opacity 0.3s;
}
.hamburger-label{
  font-family:var(--fe);font-weight:500;font-size:9px;
  letter-spacing:.04em;color:#195daa;line-height:1;
}

/* ===== SP Menu Overlay ===== */
.sp-menu{
  position:fixed;top:0;right:0;width:100%;height:100%;background:#fff;z-index:9999;
  transform:translateX(100%);transition:transform 0.35s cubic-bezier(.4,0,.2,1);
  display:flex;flex-direction:column;overflow:hidden;
}
.sp-menu.is-open{transform:translateX(0);}
.sp-menu-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 24px;flex-shrink:0;
  box-shadow:0 1px 1.5px rgba(0,0,0,.15);
}
.sp-menu-logo img{height:34px;width:auto;display:block;}
.sp-menu-close{
  display:flex;flex-direction:column;align-items:center;gap:5px;
  background:none;border:none;cursor:pointer;padding:0;
}
.sp-menu-close svg{display:block;}
.sp-menu-close span{
  font-family:var(--fe);font-weight:500;font-size:9px;
  letter-spacing:.04em;color:#195daa;line-height:1;
}

/* Body */
.sp-menu-body{
  flex:1;overflow-y:auto;
  padding:32px 24px 24px;
}

/* SERVICE section */
.sp-service-section{margin-bottom:24px;}
.sp-section-en{
  font-family:var(--fe);font-weight:500;font-size:12px;
  letter-spacing:.04em;color:#cecece;margin-bottom:4px;
}
.sp-section-ja{
  font-size:20px;font-weight:500;letter-spacing:.04em;
  color:#0e192f;margin-bottom:24px;
}
.sp-service-list{
  list-style:none;padding:0;margin:0;
  display:flex;flex-direction:column;gap:24px;
}
.sp-service-item{
  display:flex;align-items:center;gap:16px;
  font-size:16px;font-weight:500;letter-spacing:.04em;
  color:#001432;text-decoration:none;
}
.sp-service-arrow{
  width:18px;height:18px;flex-shrink:0;display:inline-flex;
}
.sp-service-arrow svg{width:100%;height:100%;display:block;}
/* SPメニュー：サブカテゴリリスト */
.sp-service-item-group{display:flex;flex-direction:column;gap:14px;list-style:none;}
.sp-service-item--parent{cursor:default;font-weight:700;}
.sp-service-sublinks{
  list-style:none;margin:0;padding:0 0 0 8px;
  display:flex;flex-direction:column;gap:12px;
}
.sp-service-sublink{
  display:flex;align-items:center;gap:10px;
  font-size:14px;font-weight:500;color:#001432;
  text-decoration:none;letter-spacing:.04em;
  transition:opacity .2s;
}
.sp-service-sublink:hover{opacity:.7}
.sp-service-sublink-dot{
  display:inline-block;width:6px;height:6px;
  border-radius:50%;background:#00B4FF;
  flex-shrink:0;
}

/* Divider */
.sp-menu-divider{
  border:none;border-top:1px solid #cecece;
  margin:24px 0;
}

/* Nav list */
.sp-nav-list{
  list-style:none;padding:0;margin:0;
  display:flex;flex-direction:column;gap:24px;
}
.sp-nav-list a{
  display:flex;align-items:center;gap:8px;
  font-size:16px;font-weight:500;letter-spacing:.04em;
  color:#001432;text-decoration:none;
}
.sp-nav-list a::before{
  content:'';display:inline-block;flex-shrink:0;
  width:8px;height:1px;background:#001432;
}

/* Footer CTA */
.sp-menu-footer{
  display:flex;flex-direction:row;gap:8px;
  padding:12px 16px 16px;flex-shrink:0;
}
.sp-cta-btn{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:12px 8px;border-radius:10px;
  color:#fff;text-decoration:none;cursor:pointer;text-align:center;
  min-height:120px;
}
.sp-cta-btn--blue{background:linear-gradient(270deg,#0586d7 0%,#33b1ff 100%);}
.sp-cta-btn--orange{background:linear-gradient(90deg,#ff5000 0%,#e64900 100%);}
.sp-cta-btn:hover{opacity:.9;}
.sp-cta-btn-icon{
  display:flex;align-items:center;justify-content:center;
  height:28px;margin-bottom:8px;
}
.sp-cta-btn-icon svg{display:block;}
.sp-cta-btn-sub{
  font-size:12px;font-weight:500;letter-spacing:.04em;
  line-height:1.3;
}
.sp-cta-btn-main{
  font-size:18px;font-weight:700;letter-spacing:.04em;
  line-height:1.3;
}
.sp-cta-btn-arrow{
  margin-top:6px;display:inline-flex;
}
.sp-cta-btn-arrow svg{display:block;}

body.sp-menu-lock{overflow:hidden;}

@media(max-width:1024px){
  .hamburger-btn{display:flex;}
  .header-nav{display:none;}
  .header-phone{display:none;}
  .header-cta{display:none;}
  .header{height:64px;}
  .header-inner{align-items:center;padding:0 20px;}
  .header-logo{align-items:center;}
  .header-logo img{width:160px;}
  .header-left{align-items:center;}
  .service-dropdown{top:64px;}
  .pdca-cards{gap:8px;flex-wrap:wrap;justify-content:center;}
  .pdca-card{width:170px;height:200px;}
  .pdca-arrow{display:none;}
  .ach-thumbs{grid-template-columns:repeat(2,1fr);}
  .ach-cases{grid-template-columns:1fr;}
  .contents-grid{grid-template-columns:repeat(2,1fr);}
  .contents-block{padding:32px 32px 48px;}
  .news-box{padding:32px 24px 40px;}
  .diagnosis-cards{grid-template-columns:repeat(2,1fr);}
  .footer-nav{flex-wrap:wrap;gap:40px 60px;}
  .stat-divider{width:80px;height:2px;}
  .achievement-stats{gap:20px;flex-wrap:wrap;}
  /* SP: contact ボタンは Hero と同様に2つ横並びの正方形カード型 */
  .contact-btns{
    flex-direction:row;align-items:stretch;
    justify-content:center;gap:10px;flex-wrap:nowrap;
    padding:0 16px;
  }
  .contact-btns .btn-hero{
    flex:1;max-width:164px;width:auto;
    flex-direction:column;
    height:112px;padding:14px 8px 22px;
    align-items:center;justify-content:flex-start;
    gap:6px;position:relative;
  }
  .contact-btns .btn-hero-icon{margin:0;}
  .contact-btns .btn-hero-icon svg{width:28px;height:auto;}
  .contact-btns .btn-hero-labels{
    align-items:center;text-align:center;gap:2px;width:100%;
    display:flex;flex-direction:column;
  }
  .contact-btns .btn-hero-sub{font-size:12px;font-weight:500;letter-spacing:.04em;}
  .contact-btns .btn-hero-main{font-size:18px;font-weight:700;letter-spacing:.04em;}
  .contact-btns .btn-hero-arrow{
    position:absolute;
    bottom:4px;left:50%;
    transform:translateX(-50%) rotate(90deg);
    font-size:16px;line-height:1;
  }
  .why-cards{gap:20px;}
  .why-cards--bottom{max-width:100%;}
}
@media(max-width:768px){
  /* ===== SP HERO（Figma 692:29543 準拠、ヘッダー除く 722px） ===== */
  .section-hero{
    position:relative;width:100%;height:auto;
    min-height:786px;
    padding-bottom:0;background:#0e192f;overflow:hidden;
    display:flex;flex-direction:column;margin: -5em 0 0 0;
  }
  /* SP用ヒーロー画像は上部496pxに配置 */
  .hero-bg-wrap{
    position:absolute !important;
    top:0;left:0;width:100%;height:496px;
    z-index:0;display:block;line-height:0;
    pointer-events:none;
  }
  .hero-bg{
    position:absolute !important;
    inset:0 !important;
    width:100%;height:100%;
    object-fit:cover;object-position:center top;
    transform:translate(20px,80px);
  }
  /* 画像下端でダークネイビーへフェード（境界をなじませる） */
  .section-hero::after{
    content:'';position:absolute;
    top:320px;left:0;
    width:100%;height:220px;
    background:linear-gradient(180deg,
      rgba(14,25,47,0) 0%,
      rgba(14,25,47,.5) 40%,
      #0e192f 95%);
    z-index:1;pointer-events:none;
  }
  .hero-content{
    position:relative !important;
    z-index:2;
    top:auto !important;left:auto !important;
    width:100%;height:auto;flex:1;
    padding:80px 22px 32px;
    box-sizing:border-box;
    display:flex;flex-direction:column;
  }
  .hero-text{
    position:static !important;
    top:auto !important;left:auto !important;
    display:block;width:100%;max-width:100%;
    box-sizing:border-box;margin:0;
    font-size:clamp(48px,17.6vw,66px);font-weight:700;line-height:1.12;
    letter-spacing:.04em;color:#fff;
    text-align:left;
    text-shadow:2px 3px 4px rgba(14,25,47,.5);
    overflow-wrap:break-word;
  }
  .hero-text .sp-only{display:block;}
  .hero-subtext{
    position:static !important;
    top:auto !important;left:auto !important;
    display:block;width:100%;
    margin-top:auto;text-align:left;
    font-size:24px;font-weight:500;line-height:1.5;
    letter-spacing:.04em;color:#fff;
  }
  /* SP用 ウェーブベクター（PC: page-bg-img と同じ素材を Hero 内に配置） */
  .hero-deco-sp{
    display:block;
    position:absolute;
    left:0;top:0;
    width:auto;height:100%;
    z-index:1;
    pointer-events:none;
    opacity:.35;
    mix-blend-mode:screen;
  }
  .hero-deco-sp img{
    width:auto;height:100%;display:block;
    max-width:none;
  }
  .hero-badge{
    position:static !important;
    top:auto !important;left:auto !important;
    display:block;
    width:100%;max-width:300px;
    margin:20px auto 0;
  }
  .hero-buttons{
    position:static !important;
    top:auto !important;left:auto !important;bottom:auto !important;
    display:flex;flex-direction:row;gap:10px;
    margin:20px auto 0;width:100%;max-width:340px;
  }
  .btn-hero{
    flex:1;width:auto;height:112px;
    flex-direction:column;align-items:center;justify-content:center;
    padding:14px 8px;gap:4px;
    text-align:center;
    border-radius:10px;
  }
  .btn-hero-icon{
    display:flex;align-items:center;justify-content:center;
    height:28px;margin-bottom:8px;
  }
  .btn-hero-icon svg{width:auto;height:28px;}
  .btn-hero-labels{
    display:flex;flex-direction:column;align-items:center;gap:2px;
    margin-left:0;
  }
  .btn-hero-sub{font-size:12px;font-weight:500;line-height:1.3;letter-spacing:.04em;}
  .btn-hero-main{font-size:18px;font-weight:700;line-height:1.3;letter-spacing:.04em;}
  .btn-hero-arrow{
    display:flex;align-items:center;justify-content:center;
    margin:6px auto 0;font-size:14px;line-height:1;
    transform:rotate(90deg);
  }
  .hero-logos{display:none;}

  /* ===== SP SECTION TITLE ===== */
  .section-title-en{font-size:53px!important;line-height:1.17!important;letter-spacing:.04em!important;}
  .section-label{font-size:12px!important;letter-spacing:.1em!important;}
  .why-cards{grid-template-columns:1fr 1fr;gap:16px;}
  .why-cards--bottom{grid-template-columns:1fr 1fr;max-width:100%;margin-top:16px;}
  .ach-thumbs{grid-template-columns:repeat(2,1fr);gap:12px;}
  .contents-grid{grid-template-columns:1fr 1fr;}
  .service-pdca{padding:32px 16px;}
  /* diagnosis-cta SP（Figma 695:30837 準拠）*/
  .section-diagnosis{padding:120px 0 60px;}
  .diagnosis-inner{padding:0 16px;}
  .diagnosis-title{font-size:32px;line-height:1.3;margin-bottom:24px;letter-spacing:.04em;}
  .diagnosis-desc{font-size:16px;line-height:1.3;margin-bottom:32px;font-weight:400;letter-spacing:.04em;}
  .diagnosis-cards{
    grid-template-columns:1fr 1fr;
    grid-auto-rows:1fr;
    gap:16px;max-width:380px;margin:0 auto;
  }
  .diagnosis-card{
    padding:16px;border-radius:10px;gap:8px;
    min-height:206px;
  }
  .diagnosis-card-icon{width:36px;height:36px;margin-bottom:0;}
  .diagnosis-card h3{font-size:20px;letter-spacing:.04em;margin-bottom:0;line-height:1.3;}
  .diagnosis-card p{font-size:14px;line-height:1.3;letter-spacing:.04em;}
  .card-tel{font-size:20px;font-weight:500;margin-top:auto;color:#FF5000;}
  .card-hours{font-size:10px;margin-top:4px;}
  .section-service{padding:80px 0 60px;}
  .section-why-us{padding:80px 0 60px;}
  .section-achievement{padding:60px 0 80px;}
  .section-interview{padding:60px 0 80px;}
  .section-contents{padding:60px 0 80px;}
  /* NEWS：PC のオーバーラップ装飾を解除（負margin で見出しが隠れていた問題対応）*/
  .section-news{padding:60px 0 80px;}
  .section-news .section-header-block{margin-bottom:24px;}
  .news-box{padding:28px 16px 36px;}
  .contents-block{padding:28px 20px 40px;}
  /* フッターナビ：縦列・表示順 = 会社情報 → サービス → サポート → 企業情報 */
  .footer-nav{flex-direction:column;flex-wrap:nowrap;gap:32px;}
  .footer-nav-company{order:0}
  .footer-nav > div:nth-of-type(2){order:1;}  /* サービス */
  .footer-nav > div:nth-of-type(3){order:3;}  /* 企業情報 → 最後 */
  .footer-nav > div:nth-of-type(4){order:2;}  /* サポート → 2番目 */
}
@media(max-width:600px){
  .ach-cases{grid-template-columns:1fr;}
  .why-cards{grid-template-columns:1fr;}
  .why-cards--bottom{grid-template-columns:1fr;}
}
@media(max-width:480px){
  .contents-grid{grid-template-columns:1fr;}
  .ach-thumbs{grid-template-columns:1fr 1fr;}
  /* diagnosis-cards は 2x2 維持（Figma SP 準拠） */
  .diagnosis-cards{grid-template-columns:1fr 1fr;gap:14px;}
  .achievement-stats{flex-direction:column;gap:16px;}
  .stat-divider{width:120px;height:2px;}
}

/* ===== OUR SUPPORT ===== */
.section-oursupport{padding:80px 0 120px;}
.section-oursupport .section-title-en{opacity:1;}
.support-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:12px;
}
.support-card{
  background:rgba(255,255,255,.10);
  padding:24px;
  display:flex;flex-direction:column;align-items:center;gap:24px;
  position:relative;min-height:360px;
}
.support-card-title{
  font-size:clamp(16px,1.25vw,24px);font-weight:500;letter-spacing:.04em;line-height:1.5;
  color:var(--blue);text-align:center;
  min-height:72px;display:flex;align-items:center;justify-content:center;
}
.support-card-icon{
  display:flex;align-items:center;justify-content:center;
  width:104px;height:104px;
  filter:drop-shadow(0 0 12px #00d3f2);
}
.support-card-icon img{
  width:100%;height:100%;object-fit:contain;
}
.support-card-text{
  font-size:clamp(13px,0.9vw,16px);font-weight:400;line-height:1.5;letter-spacing:.04em;
  color:var(--white);text-align:center;
}
a.support-card{
  text-decoration:none;color:inherit;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}
a.support-card:hover{
  transform:translateY(-2px);
  background:rgba(255,255,255,.16);
  box-shadow:0 6px 20px rgba(0,180,255,.25);
}
a.support-card:hover::after{
  opacity:1;
  transform:translate(-2px,-2px);
}
.support-card--linked::after{
  content:'';position:absolute;bottom:6px;right:6px;
  width:0;height:0;
  border-style:solid;border-width:0 0 12px 12px;
  border-color:transparent transparent var(--blue) transparent;
  opacity:.85;
  transition:transform .2s ease, opacity .2s ease;
}

/* ===== FLOW ===== */
.section-flow{padding:80px 0 120px}
.section-flow .section-title-en{opacity:1;}
.flow-list{
  list-style:none;position:relative;max-width:1000px;margin:0 auto;
  padding-left:84px;
}
.flow-list::before{
  content:'';position:absolute;left:24px;top:24px;bottom:24px;
  width:2px;background:linear-gradient(180deg,rgba(0,180,255,.6),rgba(0,180,255,.2));
}
.flow-list::after{
  content:'';position:absolute;
  left:16px;top:24px;bottom:24px;
  width:18px;pointer-events:none;
  background:radial-gradient(ellipse 7px 32px at 50% 50%,
    rgba(220,248,255,1) 0%,
    rgba(0,180,255,.6) 35%,
    rgba(0,180,255,.18) 65%,
    transparent 100%) no-repeat;
  background-size:100% 80px;
  background-position:0 -80px;
  animation:flow-neon-stream 4s linear infinite;
}
@keyframes flow-neon-stream{
  0%{background-position:0 -80px}
  100%{background-position:0 calc(100% + 80px);}
}
.flow-item{position:relative;margin-bottom:24px;}
.flow-num{
  position:absolute;left:-84px;top:14px;
  width:48px;height:48px;border-radius:50%;
  background:var(--blue);color:var(--white);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--fe);font-weight:700;font-size:22px;
  box-shadow:0 0 16px rgba(0,180,255,.6);
}
.flow-card{
  background:rgba(255,255,255,.05);border:1px solid rgba(0,180,255,.18);
  border-radius:6px;padding:24px 28px 24px;
  position:relative;
}
.flow-card-border-svg{
  position:absolute;left:0;top:0;width:100%;height:100%;
  pointer-events:none;overflow:visible;
}
@media(prefers-reduced-motion:reduce){
  .flow-list::after{animation:none;}
}
.flow-card-title{
  font-size:20px;font-weight:700;color:var(--blue);
  letter-spacing:.04em;margin-bottom:8px;
}
.flow-card-text{
  font-size:14px;font-weight:300;line-height:1.7;letter-spacing:.04em;
  margin-bottom:0;
}
.flow-card-text + .flow-sub{margin-top:16px;}
.flow-sub{margin-top:14px;}
.flow-sub + .flow-sub{margin-top:10px;}
.flow-sub-head{
  background:var(--grad-blue);color:var(--white);
  padding:6px 16px;font-size:13px;font-weight:700;letter-spacing:.04em;
  border-radius:3px 3px 0 0;
}
.flow-sub-list{
  display:flex;flex-wrap:wrap;gap:0 24px;
  list-style:none;background:rgba(255,255,255,.04);
  padding:10px 16px;border-radius:0 0 3px 3px;
}
.flow-sub-list li{
  font-size:12px;font-weight:400;letter-spacing:.04em;
  padding:4px 0;color:rgba(255,255,255,.9);
  position:relative;padding-left:18px;
}
.flow-sub-list li::before{
  content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:12px;height:12px;border-radius:50%;
  background:radial-gradient(circle, var(--blue) 30%, transparent 35%);
  border:1px solid var(--blue);
}

/* ===== FAQ ===== */
.section-faq{padding:80px 0 120px;}
.section-faq .section-title-en{opacity:1;}
.faq-list{
  list-style:none;max-width:1200px;margin:0 auto;
  border-top:1px solid rgba(255,255,255,.15);
}
.faq-item{border-bottom:1px solid rgba(255,255,255,.15);}
.faq-q{
  width:100%;display:flex;align-items:flex-start;gap:16px;
  padding:24px 8px;background:none;border:none;cursor:pointer;
  color:var(--white);text-align:left;
}
.faq-badge{
  flex-shrink:0;width:32px;height:32px;border-radius:50%;
  background:var(--blue);color:var(--white);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--fe);font-weight:700;font-size:14px;
}
.faq-q-text{
  flex:1;font-size:16px;font-weight:500;line-height:1.5;
  letter-spacing:.04em;color:var(--white);
}
.faq-toggle{
  flex-shrink:0;font-size:20px;color:var(--white);
  width:24px;text-align:center;transition:transform .3s;
  font-weight:300;
}
.faq-item.is-open .faq-toggle{transform:rotate(45deg);}
.faq-a{
  display:none;padding:0 8px 24px 56px;
}
.faq-item.is-open .faq-a{display:block;}
.faq-a p{
  font-size:14px;font-weight:300;line-height:1.7;letter-spacing:.04em;
  color:rgba(255,255,255,.85);
}

/* ===== RESPONSIVE: OUR SUPPORT / FLOW / FAQ ===== */
@media(max-width:1024px){
  .support-grid{grid-template-columns:repeat(3,1fr);}
  .flow-list{padding-left:64px;}
  .flow-num{left:-64px;width:40px;height:40px;font-size:18px;}
  .flow-list::before{left:20px;}
  .flow-list::after{left:12px;}
}
@media(max-width:768px){
  .section-oursupport{padding:60px 0 80px;}
  .section-flow{padding:60px 0 80px;}
  .section-faq{padding:60px 0 80px;}
  .support-grid{grid-template-columns:repeat(2,1fr);gap:10px;}
  .flow-card{padding:20px 18px;}
  .flow-card-title{font-size:17px;}
  .faq-q{padding:18px 4px;gap:12px;}
  .faq-badge{width:28px;height:28px;font-size:13px;}
  .faq-q-text{font-size:14px;}
  .faq-a{padding:0 4px 20px 44px;}
}
@media(max-width:480px){
  .support-grid{grid-template-columns:1fr 1fr;gap:8px;}
  .support-card{padding:14px 12px 16px;min-height:0;}
  .support-card-title{font-size:13px;}
}

/* ===== 下層ページ開発用プレースホルダ（実装完了後に削除する） ===== */
.placeholder{
  min-height:240px;display:flex;align-items:center;justify-content:center;
  background:repeating-linear-gradient(45deg,rgba(255,255,255,.04) 0 16px,rgba(255,255,255,.08) 16px 32px);
  border-top:1px dashed rgba(255,255,255,.25);border-bottom:1px dashed rgba(255,255,255,.25);
}
.placeholder .placeholder-msg{
  font-size:18px;font-weight:700;color:#FFD400;letter-spacing:.04em;
  background:rgba(0,0,0,.55);padding:16px 24px;border-radius:6px;
  border:1px solid rgba(255,212,0,.5);
}

/* =====================================================================
   service/index.html 専用スタイル
   (HERO / SOLUTION-AWARDS / PAIN / SERVICE cycle画像 / ACHIEVEMENT)
   ===================================================================== */

/* ===== HERO (service-overview) ===== */
.section-hero-sv{
  position:relative;width:100%;background:#0E192F;
  /*padding-top:96px;*/overflow:hidden;
}
.hero-sv-bg{position:absolute;inset:0;width:100%;height:100%;z-index:0;}
.hero-sv-bg-img{
  position:absolute;top:0;right:0;width:78%;height:100%;
  object-fit:cover;object-position:right center;opacity:.9;
}
.hero-sv-overlay{
  position:absolute;inset:0;
  background:linear-gradient(90deg,#0E192F 0%,#0E192F 22%,rgba(14,25,47,.7) 50%,rgba(14,25,47,.1) 100%);
}
.hero-sv-inner{
  position:relative;z-index:1;
  /*max-width:1400px;*/margin:0 auto;padding:48px 64px 64px;
  min-height:calc(892px - 130px - 96px);
}
.hero-sv-breadcrumb{
  display:flex;align-items:center;gap:8px;
  font-size:14px;font-weight:300;color:#fff;letter-spacing:.04em;
  margin-bottom:96px;
}
.hero-sv-breadcrumb a{color:#fff;text-decoration:none;}
.hero-sv-breadcrumb a:hover{opacity:.7;}
.hero-sv-bc-sep{display:inline-block;color:#fff;opacity:.7;}
.hero-sv-copy{color:#fff;margin-bottom:48px;text-shadow:0 4px 4px rgba(0,0,0,.25);}
.hero-sv-subtext{
  font-size:clamp(20px,2.5vw,48px);font-weight:500;line-height:1.3;
  letter-spacing:.04em;margin-bottom:8px;
}
.hero-sv-text{
  font-size:clamp(28px,3.33vw,64px);font-weight:700;line-height:1.4;
  letter-spacing:.04em;
}
.hero-sv-buttons{display:flex;gap:24px;flex-wrap:wrap;}
.hero-sv-btn{
  display:flex;align-items:center;gap:18px;
  width:408px;max-width:100%;height:104px;padding:0 28px;
  border-radius:10px;color:#fff;text-decoration:none;
  box-shadow:0 4px 12px rgba(0,0,0,.25);
  transition:transform .25s,box-shadow .25s;
}
.hero-sv-btn:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(0,0,0,.35);}
.hero-sv-btn--blue{background:linear-gradient(270deg,#0586D7 0%,#33B1FF 100%);}
.hero-sv-btn--orange{background:linear-gradient(90deg,#FF5000 0%,#E64900 100%);}
.hero-sv-btn-icon{flex-shrink:0;}
.hero-sv-btn-labels{display:flex;flex-direction:column;flex:1;gap:4px;}
.hero-sv-btn-sub{font-size:14px;font-weight:500;line-height:1.2;letter-spacing:.04em;}
.hero-sv-btn-main{font-size:22px;font-weight:700;line-height:1.2;letter-spacing:.04em;}
.hero-sv-btn-arrow{font-size:24px;line-height:1;flex-shrink:0;}
.hero-sv-logos{
  position:relative;z-index:1;
  background:rgba(25,93,170,.8);
  padding:18px 0;
  overflow:hidden;
}
.hero-sv-logos-grid{
  max-width:1920px;margin:0 auto;padding:0 64px;
  display:grid;grid-template-columns:repeat(6,1fr);gap:20px;
}
.hero-sv-logo-cell{
  background:#fff;border-radius:6px;
  height:94px;display:flex;align-items:center;justify-content:center;
  padding:0 16px;
}
.hero-sv-logo-cell--clone{display:none;}
.hero-sv-logo{
  max-width:100%;max-height:60%;
  width:auto;height:auto;
  object-fit:contain;
}

@media(max-width:1024px){
  .hero-sv-inner{padding:40px 32px 56px;min-height:auto;}
  .hero-sv-breadcrumb{margin-bottom:48px;}
  .hero-sv-logos-grid{grid-template-columns:repeat(3,1fr);padding:0 32px;}
}
@media(max-width:768px){
  /* ===== SP HERO (service-overview)（Figma 684:27383 準拠 687px） ===== */
  .section-hero-sv{
    position:relative;
    padding-top:0;
    min-height:687px;
    overflow:hidden;
  }
  /* SP: 画像を全体カバー + 中央寄せ（Figma 仕様）*/
  .hero-sv-bg-img{
    position:absolute;
    width:100%;height:100%;
    object-fit:cover;object-position:center center;
    opacity:.9;
  }
  .hero-sv-overlay{
    background:linear-gradient(180deg,rgba(14,25,47,.3) 0%,rgba(14,25,47,.5) 50%,rgba(14,25,47,.85) 100%);
  }
  .hero-sv-inner{
    position:static;
    padding:0;
    min-height:687px;
    max-width:none;
  }
  /* パンくず top:80, left:16 */
  .hero-sv-breadcrumb{
    position:absolute;
    top:80px;left:16px;
    margin:0;
    font-size:10px;font-weight:300;letter-spacing:.04em;
    z-index:2;
  }
  .hero-sv-breadcrumb,
  .hero-sv-breadcrumb a{font-size:10px;}
  /* ヒーロー本文 top:245 */
  .hero-sv-copy{
    position:absolute;
    top:245px;left:16px;right:16px;
    margin:0;
    z-index:2;
    text-shadow:0 4px 4px rgba(0,0,0,.25);
  }
  .hero-sv-subtext{
    font-size:18px;font-weight:500;line-height:1.3;
    margin-bottom:8px;
  }
  .hero-sv-text{
    font-size:32px;font-weight:700;line-height:1.3;
    letter-spacing:.04em;
  }
  /* CTAボタン2つ横並び top:464（トップ/サービス詳細と統一 .btn-hero 使用）*/
  .hero-sv-buttons{
    position:absolute;
    top:464px;left:18px;right:18px;
    display:flex;flex-direction:row;gap:10px;
    justify-content:center;
    z-index:2;
  }
  .hero-sv-buttons .btn-hero{
    flex:1;max-width:164px;width:auto;
    flex-direction:column;
    height:112px;padding:14px 8px 22px;
    align-items:center;justify-content:flex-start;
    gap:6px;position:relative;
  }
  .hero-sv-buttons .btn-hero-icon{margin:0;}
  .hero-sv-buttons .btn-hero-icon svg{width:28px;height:auto;}
  .hero-sv-buttons .btn-hero-labels{
    align-items:center;text-align:center;gap:2px;width:100%;
    display:flex;flex-direction:column;
  }
  .hero-sv-buttons .btn-hero-sub{font-size:12px;font-weight:500;letter-spacing:.04em;}
  .hero-sv-buttons .btn-hero-main{font-size:18px;font-weight:700;letter-spacing:.04em;}
  .hero-sv-buttons .btn-hero-arrow{
    position:absolute;
    bottom:4px;left:50%;
    transform:translateX(-50%) rotate(90deg);
    font-size:16px;line-height:1;
  }
  /* ロゴエリア top:592, 3×2 グリッド（マーキー解除） */
  .hero-sv-logos{
    position:absolute;
    top:592px;left:0;right:0;
    padding:0;
    background:rgba(25,93,170,.8);
    z-index:2;
  }
  .hero-sv-logos-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:8px;
    padding:8px 22px;margin:0;
    width:auto;max-width:none;
    animation:none;
  }
  .hero-sv-logo-cell{
    flex:none;
    width:auto;height:35px;
    margin:0;padding:0 8px;
    background:#fff;border-radius:4px;
  }
  /* クローン非表示（マーキー不要） */
  .hero-sv-logo-cell--clone{display:none;}
}
@media(prefers-reduced-motion:reduce){
  .hero-sv-logos-grid{animation:none;}
}

/* ===== SOLUTION AWARDS ===== */
.section-solution-awards{
  background:#0E192F;padding:80px 0;
}
.solution-awards-grid{
  display:grid;grid-template-columns:1fr auto;gap:48px;align-items:center;
}
.solution-awards-headline{
  font-size:clamp(22px,2vw,36px);font-weight:700;line-height:1.4;
  letter-spacing:.04em;color:#fff;margin-bottom:16px;
  white-space:nowrap;
}
@media(max-width:1024px){
  .solution-awards-headline{white-space:normal;}
}
.solution-awards-survey{
  font-size:11px;font-weight:500;color:rgba(255,255,255,.7);
  letter-spacing:.04em;
}
.solution-awards-emblems{
  display:flex;gap:8px;flex-shrink:0;
}
.solution-awards-emblems img{
  width:170px;height:auto;display:block;
  filter:drop-shadow(0 3px 3px rgba(0,0,0,.8));
}
@media(max-width:1024px){
  .solution-awards-grid{grid-template-columns:1fr;text-align:center;}
  .solution-awards-emblems{justify-content:center;margin:0 auto;flex-wrap:wrap;}
  .solution-awards-emblems img{width:140px;}
}
@media(max-width:768px){
  .section-solution-awards{padding:48px 0;}
  .solution-awards-emblems img{width:100px;}
}

/* ===== PAIN ===== */
.section-pain{
  background:#0E192F;padding:120px 0;position:relative;
}
.pain-header{position:relative;text-align:center;margin-bottom:24px}
.pain-title-en{
  font-family:'Roboto',sans-serif;font-weight:800;
  font-size:clamp(48px,10vw,160px);line-height:1;letter-spacing:.04em;
  color:#fff;white-space:nowrap;
  text-shadow:0 0 24px rgba(0,180,255,.15);
}
.pain-title-ja{
  font-size:clamp(16px,1.67vw,24px);font-weight:400;letter-spacing:.1em;
  color:#00B4FF;margin-bottom:8px;
}
.pain-lead{
  font-size:clamp(16px,1.67vw,24px);font-weight:400;line-height:1.5;
  letter-spacing:.04em;color:#fff;text-align:center;margin-bottom:64px;
}
.pain-cards{display:flex;flex-direction:column;gap:64px;max-width:1200px;margin:0 auto;}
.pain-card{
  background:rgba(255,255,255,.1);border:1px solid #00B4FF;border-radius:6px;
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  box-shadow:0 0 4px rgba(255,255,255,.3);
  overflow:hidden;
}
.pain-card-top{
  position:relative;
  background:linear-gradient(270deg,#0586D7 0%,#33B1FF 100%);
  padding:32px 48px;min-height:153px;
}
.pain-card-head{
  display:flex;align-items:center;gap:22px;margin-bottom:16px;
}
.pain-card-check{
  position:relative;flex-shrink:0;
  width:32px;height:32px;
}
.pain-card-check img{position:absolute;top:0;left:0;width:32px;height:32px;}
.pain-card-checkmark{width:22px !important;height:22px !important;left:5px !important;top:5px !important;}
.pain-card-title{
  font-size:clamp(22px,2.22vw,32px);font-weight:700;line-height:1.4;
  letter-spacing:.04em;color:#fff;margin:0;
}
.pain-card-quote{
  font-size:18px;font-weight:400;line-height:1.5;
  letter-spacing:.04em;color:#fff;padding-left:0;
}
.pain-card-body{padding:40px 48px 40px;}
.pain-card-solution{
  font-size:clamp(22px,2.22vw,32px);font-weight:700;line-height:1.5;
  letter-spacing:.04em;color:#00B4FF;margin-bottom:16px;
}
.pain-card-text{
  font-size:18px;font-weight:400;line-height:1.5;
  letter-spacing:.04em;color:#fff;
}

@media(max-width:768px){
  .section-pain{padding:80px 0;}
  .pain-cards{gap:40px;}
  .pain-card-top{padding:24px 20px;}
  .pain-card-head{gap:12px;margin-bottom:12px;}
  .pain-card-check{width:28px;height:28px;}
  .pain-card-check img{width:28px;height:28px;}
  .pain-card-checkmark{width:20px !important;height:20px !important;left:4px !important;top:4px !important;}
  .pain-card-title{font-size:20px;}
  .pain-card-quote{font-size:14px;}
  .pain-card-body{padding:24px 20px;}
  .pain-card-solution{font-size:20px;}
  .pain-card-text{font-size:14px;}
}

/* ===== SERVICE: サイクル画像 ===== */
.service-cycle-wrap{
  display:flex;justify-content:center;margin:40px 0 64px;
}
.service-cycle-img{
  width:100%;max-width:640px;height:auto;display:block;
}
@media(max-width:768px){
  .service-cycle-wrap{margin:24px 0 40px;}
}

/* ===== ACHIEVEMENT (service-overview版) ===== */
.section-achievement--sv .ach-stats-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:0;
  max-width:1200px;margin:0 auto 64px;
  border:1px solid rgba(255,255,255,.15);border-radius:8px;overflow:hidden;
  background:rgba(255,255,255,.03);
}
.section-achievement--sv .ach-stat-card{
  padding:40px;border-right:1px solid rgba(255,255,255,.15);
  border-bottom:1px solid rgba(255,255,255,.15);
  text-align:center;
}
.section-achievement--sv .ach-stat-card:nth-child(2n){border-right:none;}
.section-achievement--sv .ach-stat-card:nth-last-child(-n+2){border-bottom:none;}
.ach-stat-title{
  font-size:clamp(18px,1.67vw,32px);font-weight:700;line-height:1.4;
  letter-spacing:.04em;color:#fff;margin-bottom:24px;
}
.ach-stat-body{
  position:relative;width:320px;max-width:100%;
  margin:0 auto;aspect-ratio:1;
}
.ach-stat-graph{width:100%;height:100%;object-fit:contain;display:block;}
.ach-stat-values{
  position:absolute;left:50%;bottom:0;transform:translateX(-50%);
  display:flex;align-items:flex-end;justify-content:center;gap:24px;
  color:#fff;line-height:1;
}
.ach-stat-values--single{
  bottom:0;left:50%;transform:translateX(-50%);
  align-items:flex-end;
}
.ach-stat-values--single .ach-stat-avg{
  font-size:20px;font-weight:400;line-height:1.1;
  align-self:flex-end;padding-bottom:18px;
}
.ach-stat-values--single .ach-stat-num{
  font-family:'Roboto',sans-serif;font-weight:700;
  font-size:clamp(64px,7vw,117px);line-height:1;letter-spacing:.02em;
}
.ach-stat-values--single .ach-stat-unit{
  font-size:clamp(20px,2.5vw,36px);font-weight:700;
  align-self:flex-end;padding-bottom:18px;
}
.ach-stat-values--double{
  width:100%;justify-content:space-around;
}
.ach-stat-value-block{
  display:flex;flex-direction:column;align-items:center;gap:8px;
}
.ach-stat-value-block .ach-stat-sublabel{
  font-size:14px;font-weight:400;color:#fff;letter-spacing:.04em;
}
.ach-stat-value-block .ach-stat-num{
  font-family:'Roboto',sans-serif;font-weight:700;
  font-size:clamp(40px,5vw,90px);line-height:1;letter-spacing:.02em;color:#fff;
}

.section-achievement--sv .ach-shop-logos{
  display:grid;grid-template-columns:repeat(6,1fr);gap:8px;
  max-width:1200px;margin:0 auto 64px;
}
.section-achievement--sv .ach-shop-logo{
  background:#fff;border-radius:4px;
  height:73px;display:flex;align-items:center;justify-content:center;
  padding:8px 12px;
}
.section-achievement--sv .ach-shop-logo img{
  max-width:100%;max-height:100%;object-fit:contain;display:block;
}
@media(max-width:1024px){
  .section-achievement--sv .ach-stats-grid{grid-template-columns:1fr;}
  .section-achievement--sv .ach-stat-card{border-right:none;}
  .section-achievement--sv .ach-stat-card:nth-last-child(-n+2){border-bottom:1px solid rgba(255,255,255,.15);}
  .section-achievement--sv .ach-stat-card:last-child{border-bottom:none;}
  .section-achievement--sv .ach-shop-logos{grid-template-columns:repeat(4,1fr);}
}
@media(max-width:768px){
  .section-achievement--sv .ach-stat-card{padding:32px 20px;}
  .section-achievement--sv .ach-shop-logos{grid-template-columns:repeat(3,1fr);gap:6px;}
  .section-achievement--sv .ach-shop-logo{height:56px;padding:6px 8px;}
}
@media(max-width:480px){
  .section-achievement--sv .ach-shop-logos{grid-template-columns:repeat(2,1fr);}
}

/* ===== SP: PDCAセクション 縦並びレイアウト ===== */
@media(max-width:768px){
  .service-pdca{padding:40px 16px;}
  .pdca-title{
    font-size:20px;line-height:1.4;letter-spacing:.04em;
    margin-bottom:32px;
  }
  .pdca-desc{
    font-size:15px;line-height:1.7;letter-spacing:.04em;
    margin-top:32px;margin-bottom:32px;
  }
  .pdca-cards{
    flex-direction:column;flex-wrap:nowrap;
    align-items:center;gap:12px;
  }
  .pdca-card{
    width:100%;max-width:311px;height:auto;
    padding:18px 20px;text-align:left;
    display:grid;
    grid-template-columns:auto auto 1fr;
    grid-template-rows:auto auto;
    column-gap:24px;row-gap:5px;
    align-items:center;
    transform:translateY(-16px);
  }
  .pdca-card.is-visible{transform:translateY(0)}
  .pdca-card-icon{
    grid-row:1/3;grid-column:1;
    width:80px;height:52px;margin:0;
    object-fit:contain;
    align-self:center;
  }
  .pdca-line{
    grid-row:1/3;grid-column:2;
    width:1px;height:120px;
    background:rgba(255,255,255,.4);
    border:none;margin:0;opacity:1;
    align-self:center;
  }
  .pdca-card-title{
    grid-row:1;grid-column:3;
    margin:0;align-self:end;
  }
  .pdca-ja{font-size:32px;line-height:1.1;}
  .pdca-en{font-size:14px;line-height:1.1;}
  .pdca-list{
    grid-row:2;grid-column:3;
    font-size:16px;line-height:1.4;
    align-self:start;
  }
  .pdca-list li{margin-bottom:5px;}
  .pdca-arrow{
    display:flex;
    width:40px;height:16px;
    align-items:center;justify-content:center;
    align-self:center;margin:0;
  }
  .pdca-arrow img{
    width:16px;height:40px;
    transform:rotate(90deg);
  }
  .btn-outline-white{
    height:40px;
    padding:8px 40px;
    font-size:14px;letter-spacing:.04em;
  }
  .btn-outline-white span{font-size:14px;}
  .service-pdca .btn-outline-white{margin-top:8px;}
  .btn-gradient{
    height:40px;
    padding:8px 40px;
    font-size:14px;letter-spacing:.04em;
  }
  .btn-gradient span{font-size:14px;}

  /* SP: インタビューカードを縦コンパクトに（詳細文は非表示） */
  .interview-detail{display:none;}
  .interview-img{height:220px;}
  .interview-body{padding:24px 20px;}
  .interview-head{margin-bottom:12px;}
  .interview-head h3{font-size:20px;margin-bottom:6px;}
  .interview-logo{width:130px;margin-bottom:8px;}
  .interview-highlight{font-size:15px;line-height:1.5;margin-bottom:0;}
  .interview-read-btn{width:60px;height:60px;}
}

/* ===== ページ共通：固定背景 ===== */
div.service-page,
div.service-detail-page,
body.top-page{background:transparent;}
.page-bg{
  position:fixed;inset:0;
  z-index:-1;pointer-events:none;
  background-color:#0E192F;
  background-repeat:no-repeat;
  background-attachment:fixed;
  overflow:hidden;
}
div.service-page .page-bg,
div.service-detail-page .page-bg{
  background-image:url(../images/service_bg@2x.png);
  background-size:cover;
  background-position:center center;
}
/* トップページ：top-bg-left を左右両端に配置（右は水平反転） */
.page-bg-img{
  position:absolute;top:0;height:100%;width:auto;
  pointer-events:none;user-select:none;
  max-width:none;
}
.page-bg-img--left{left:0;}
.page-bg-img--right{right:0;transform:scaleX(-1);}
@media(max-width:768px){
  .page-bg-img--right{display:none;}
}
body.top-page .page-bg::after{
  content:'';position:absolute;inset:0;
  background:rgba(14,25,47,.75);
  pointer-events:none;
}

/* 全セクション共通：固定背景の上にやや薄めのネイビー半透明レイヤーを乗せる */
div.service-page .section-hero-sv,
div.service-page .section-solution-awards,
div.service-page .section-pain,
div.service-page .section-service,
div.service-page .section-oursupport,
div.service-page .section-why-us,
div.service-page .section-achievement,
div.service-page .section-interview,
div.service-page .section-flow,
div.service-page .section-faq,
div.service-page .section-company,
div.service-page .footer{
  background:rgba(14,25,47,.6);
}
/* サービス詳細ページ：固定背景の上に半透明レイヤー（独自bg保持セクションは除外） */
div.service-detail-page .section-problems,
div.service-detail-page .section-strengths,
div.service-detail-page .section-member,
div.service-detail-page .section-achievement--sd,
div.service-detail-page .section-serviceareas,
div.service-detail-page .section-oursupport,
div.service-detail-page .section-howto-choose,
div.service-detail-page .section-difference,
div.service-detail-page .section-flow,
div.service-detail-page .section-faq,
div.service-detail-page .section-contents,
div.service-detail-page .section-company,
div.service-detail-page .footer{
  background:rgba(14,25,47,.6);
}

/* ============================================================
   ===== SERVICE DETAIL PAGES（楽天/Amazon/Yahoo/Qoo10）  =====
   ============================================================ */

/* ===== HERO (service-detail) — Figma 1920×892 デザイン準拠 (892/1920 = 46.46%) ===== */
.section-hero-sd{
  position:relative;width:100%;
  height:0;margin:-6em 0 0 0;padding-bottom:46.46%;
  background:#0E192F center/cover no-repeat;
  overflow:hidden;
}
.section-hero-sd--rakuten{
  background-image:url(../images/service-detail/rakuten/service_detailmv_rakuten_bg.png);
}
.section-hero-sd--amazon{
  background-color:#0E192F;
}
.section-hero-sd--yahoo{
  background-image:url(../images/service-detail/yahoo/service_detailmv_yahoo_bg.jpg);
}
/* Yahoo は main コピーが3行構成 → Amazonと同様 title 位置を下方向に微調整 */
.section-hero-sd--yahoo .hero-sd-title{top:45%;}
.section-hero-sd--qoo10{
  background-image:url(../images/service-detail/qoo10/service_detailmv_qoo10_bg.jpg);
}
/* Qoo10 は main コピーが3行構成 → title 位置を下方向に微調整 */
.section-hero-sd--qoo10 .hero-sd-title{top:45%;}
/* Amazon は main コピーが3行構成のため、パンくず・タグとの間隔を取り title 位置を微調整 */
.section-hero-sd--amazon .hero-sd-title{top:45%;}
/* Amazon は bg画像なし → ウェーブ(.hero-sd-deco)を主役に、dot(.hero-sd-bg-deco)はその背面でトーン抑え */
.section-hero-sd--amazon .hero-sd-bg-deco{mix-blend-mode:screen;opacity:.12;}
/* Amazon mv-deco（オレンジウェーブ）：Figma位置（left:882, top:0, w:1284, h:812 of 1920×892） + rotate(180) */
.section-hero-sd--amazon .hero-sd-deco{
  left:45.94%;top:0;right:auto;
  width:66.88%;height:91.03%;
  transform:rotate(180deg);
  mix-blend-mode:screen;opacity:1;
}
/* dot波模様：Image 2 の位置（旧mv-deco＝網の位置に配置） */
.hero-sd-bg-deco{
  position:absolute;
  left:40.26%;top:0;
  width:75.42%;height:100.73%;
  z-index:0;
  pointer-events:none;
  mix-blend-mode:overlay;
}
.hero-sd-bg-deco img{
  width:100%;height:100%;
  object-fit:cover;object-position:center;
  display:block;
}
/* 網（ワイヤーフレーム）：Image 1 の位置（旧mv-deco-02＝ドットの位置に配置） */
.hero-sd-deco{
  position:absolute;
  left:31.04%;top:-40.36%;
  width:63.23%;height:140.36%;
  z-index:1;
  pointer-events:none;
  mix-blend-mode:soft-light;
}
.hero-sd-deco img{
  width:100%;height:100%;
  object-fit:cover;object-position:center;
  display:block;
}
.hero-sd-pc{
  position:absolute;
  top:22%;right:2%;
  width:50%;
  z-index:2;
  pointer-events:none;
}
.hero-sd-pc img{width:100%;height:auto;display:block;filter:drop-shadow(0 12px 30px rgba(0,0,0,.4));}
.hero-sd-inner{
  position:absolute;top:0;left:0;width:100%;height:100%;z-index:3;
  padding:0;
}
.hero-sd-breadcrumb{
  position:absolute;top:18%;left:2.86%;
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  font-size:clamp(11px,.94vw,18px);color:rgba(255,255,255,.85);
  margin:0;
}
.hero-sd-breadcrumb a{color:rgba(255,255,255,.85);text-decoration:none;}
.hero-sd-breadcrumb a:hover{color:#fff;opacity:1;}
.hero-sd-bc-sep{opacity:.5;}
.hero-sd-title{
  position:absolute;top:38.1%;left:2.86%;
  transform:translateY(-50%);
  color:#fff;margin:0;font-weight:700;letter-spacing:.04em;
}
.hero-sd-title-sub{
  display:block;
  font-size:clamp(18px,1.88vw,36px);
  font-weight:500;line-height:1.4;margin-bottom:12px;
  color:rgba(255,255,255,.95);
}
.hero-sd-title-main{
  display:block;
  font-size:clamp(32px,3.75vw,72px);
  font-weight:700;line-height:1.2;letter-spacing:.04em;
  text-shadow:2px 3px 4px rgba(14,25,47,.5);
}
.hero-sd-tags{
  position:absolute;top:67%;left:3.39%;
  display:flex;gap:8px;flex-wrap:wrap;margin:0;
}
.hero-sd-tag{
  display:inline-flex;align-items:center;justify-content:center;
  padding:4px 16px;border:1px solid rgba(255,255,255,.7);border-radius:4px;
  font-size:clamp(11px,.83vw,16px);font-weight:500;color:#fff;letter-spacing:.04em;
  background:rgba(0,0,0,.15);
}
.hero-sd-buttons{
  position:absolute;top:76.2%;left:3.39%;
  display:flex;gap:1.4vw;margin:0;
}
.hero-sd-buttons .btn-hero{
  display:flex;align-items:center;gap:12px;
  width:clamp(200px,21.25vw,408px);height:clamp(52px,5.42vw,104px);
  border-radius:10px;padding:0 clamp(16px,2.08vw,40px);color:#fff;
  transition:transform .3s;
}
.hero-sd-buttons .btn-hero:hover{transform:translateY(-2px);opacity:1;}
.hero-sd-buttons .btn-hero-icon svg{width:clamp(20px,2.2vw,42px);height:auto;}
.hero-sd-buttons .btn-hero-labels{display:flex;flex-direction:column;gap:2px;min-width:0;}
.hero-sd-buttons .btn-hero-sub{font-size:clamp(9px,.73vw,14px);font-weight:500;}
.hero-sd-buttons .btn-hero-main{font-size:clamp(12px,1.25vw,24px);font-weight:700;}
.hero-sd-buttons .btn-hero-arrow{margin-left:auto;font-size:clamp(14px,1.25vw,24px);}
/* ロゴ帯はトップページの .hero-logos と同一デザインのため、ベーススタイルをそのまま流用 */
.section-hero-sd .hero-logos{height:7.41%;}

/* ===== PROBLEMS ===== */
.section-problems{padding:120px 0}
.problems-headline{
  font-size:clamp(31px,4.2vw,76px);font-weight:700;line-height:1.5;
  letter-spacing:.04em;text-align:center;
  color:#fff;
  max-width:1100px;margin:0 auto 56px;
}
.problem-cards{
  display:flex;flex-wrap:wrap;justify-content:center;gap:24px;
  max-width:1500px;margin:0 auto;
}
.problem-card{
  flex:0 0 calc((100% - 48px) / 3);
  max-width:calc((100% - 48px) / 3);
  aspect-ratio:1/1;
  background:rgba(255,255,255,.06);border-radius:8px;
  padding:36px 24px;text-align:center;position:relative;
  display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:16px;
}
.problem-card-border-svg{
  position:absolute;left:0;top:0;width:100%;height:100%;
  pointer-events:none;overflow:visible;
}
.problem-card-text{
  font-size:clamp(21px,1.5vw,27px);font-weight:500;line-height:1.55;color:#fff;
  margin:0;
}
.problem-card-icon{
  width:clamp(158px,11.7vw,210px);height:clamp(158px,11.7vw,210px);
  display:flex;align-items:center;justify-content:center;
  margin-bottom:4px;
}
.problem-card-icon img{width:100%;height:100%;object-fit:contain;}

/* ===== STRENGTHS ===== */
.section-strengths{padding:120px 0;}
.section-strengths .section-inner{max-width:1500px;}
.section-strengths .section-title-en{opacity:1;white-space:nowrap;}
.strengths-list{
  list-style:none;display:flex;flex-direction:column;gap:32px;
  max-width:1500px;margin:0 auto;
}
.strength-item{
  background:rgba(255,255,255,.05);border:1px solid rgba(0,180,255,.2);border-radius:8px;
  padding:40px;display:grid;grid-template-columns:1fr 400px;gap:40px;align-items:center;
}
.strength-body{display:flex;flex-direction:column;gap:16px}
.strength-head{
  display:flex;align-items:center;gap:24px;
}
.strength-num{
  font-family:var(--fe);font-weight:700;font-size:clamp(40px,3vw,56px);
  color:#fff;
  line-height:1;letter-spacing:.04em;
  text-shadow:
    0 0 6px rgba(0,180,255,1),
    0 0 14px rgba(0,180,255,.85),
    0 0 28px rgba(0,180,255,.6),
    0 0 48px rgba(0,180,255,.4);
}
.strength-title{font-size:clamp(20px,1.5vw,26px);font-weight:700;line-height:1.5;color:#fff;}
.strength-text{font-size:15px;font-weight:400;line-height:1.7;color:rgba(255,255,255,.88);}
.strength-img{border-radius:6px;overflow:hidden;}
.strength-img img{width:100%;height:100%;object-fit:cover;display:block;}
.strength-tags{
  list-style:none;padding:0;margin:8px 0 0;
  display:flex;gap:8px;flex-wrap:wrap;
}
.strength-tags li{
  padding:6px 18px;border:1px solid rgba(255,255,255,.4);border-radius:100px;
  font-size:14px;color:#fff;letter-spacing:.04em;
  background:rgba(255,255,255,.05);
}

/* Item 02 special layout */
.strength-item--with-product{
  display:flex;flex-direction:column;gap:32px;
  padding:40px;
}
.strength-row{
  display:grid;grid-template-columns:1fr 400px;gap:40px;align-items:center;
}
.strength-product{
  position:relative;
  background:rgba(0,180,255,.05);
  border:2px solid #00B4FF;border-radius:8px;
  padding:32px;margin:0;
}
.strength-product-badge{
  position:absolute;top:-13px;left:24px;
  display:inline-block;padding:4px 16px;
  background:#0E192F;border:1px solid #00B4FF;border-radius:4px;
  font-size:13px;font-weight:700;color:#00B4FF;letter-spacing:.04em;
}
.strength-product-title{
  font-size:clamp(17px,1.2vw,22px);font-weight:700;color:#fff;
  letter-spacing:.04em;margin-bottom:20px;line-height:1.5;
}
.strength-product-content{
  display:grid;grid-template-columns:1fr 320px;gap:32px;align-items:center;
}
.strength-product-text{
  font-size:14px;font-weight:400;line-height:1.8;color:rgba(255,255,255,.92);
  margin:0;
}
.strength-product-text strong{color:#00B4FF;font-weight:700;}
.strength-product-img img{width:100%;height:auto;display:block;}

/* ===== MEMBER ===== */
.section-member{padding:120px 0;}
.section-member .section-inner{max-width:1500px;}
.section-member .section-title-en{opacity:1;white-space:nowrap;}
.member-cards{
  display:grid;grid-template-columns:repeat(3,1fr);gap:32px;
  max-width:1500px;margin:0 auto 56px;
}
.member-card{display:flex;flex-direction:column;gap:12px;}
.member-photo{aspect-ratio:5/4;background:rgba(255,255,255,.05);overflow:hidden;border-radius:4px;}
.member-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.member-role{
  font-size:12px;font-weight:500;color:#00B4FF;
  letter-spacing:.08em;margin-top:8px;
}
.member-name{
  font-size:20px;font-weight:700;color:#fff;line-height:1.4;
  display:flex;flex-direction:column;gap:4px;
  margin:0;
  border-bottom:1px solid rgba(255,255,255,.25);
  padding-bottom:12px;width:100%;
}
.member-name-row{
  display:flex;align-items:flex-end;justify-content:space-between;gap:12px;
  border-bottom:1px solid rgba(255,255,255,.25);
  padding-bottom:12px;
}
.member-name-row .member-name{
  border-bottom:none;padding-bottom:0;
}
.member-sns{
  display:inline-flex;align-items:center;justify-content:center;
  width:32px;height:32px;flex-shrink:0;
  color:#fff;text-decoration:none;
  transition:opacity .3s,transform .3s;
}
.member-sns:hover{opacity:.7;transform:translateY(-2px);}
.member-sns svg{width:18px;height:18px;display:block;}
.member-name-en{
  font-family:var(--fe);font-weight:500;font-size:12px;
  color:rgba(255,255,255,.6);letter-spacing:.06em;
}
.member-desc{
  font-size:14px;font-weight:400;line-height:1.7;
  color:rgba(255,255,255,.85);
  margin:0;
}
.member-desc-extra{
  margin-top:12px;
}
.member-desc-extra[hidden]{display:none;}
.member-desc-extra p{
  font-size:14px;font-weight:400;line-height:1.7;
  color:rgba(255,255,255,.85);
  margin:0;
}
.member-desc-extra p + p{margin-top:12px;}
.member-toggle{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  align-self:center;margin-top:auto;
  padding:10px 28px;
  border:1px solid rgba(255,255,255,.5);border-radius:100px;
  background:transparent;color:#fff;
  font-family:inherit;font-size:14px;letter-spacing:.04em;
  cursor:pointer;
  transition:background .3s,opacity .3s,transform .3s;
}
.member-toggle:hover{background:rgba(255,255,255,.08);transform:translateY(-2px);}
.member-toggle-icon{font-size:18px;line-height:1;font-weight:300;}

/* ===== ACHIEVEMENT (service-detail版) ===== */
.section-achievement--sd{padding:120px 0;}
.section-achievement--sd .section-title-en{opacity:1;}
.achievement-cases{
  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
  max-width:1200px;margin:0 auto 56px;
}
.achievement-case{
  display:flex;flex-direction:column;gap:16px;
  background:rgba(255,255,255,.05);border-radius:8px;overflow:hidden;
  text-decoration:none;transition:transform .3s;
}
.achievement-case:hover{transform:translateY(-4px);opacity:1;}
.achievement-case-img{aspect-ratio:16/10;overflow:hidden;background:rgba(255,255,255,.05);}
.achievement-case-img img{width:100%;height:100%;object-fit:cover;display:block;}
.achievement-case-body{padding:0 20px 24px;display:flex;flex-direction:column;gap:8px;}
.achievement-case-tags{display:flex;gap:6px;flex-wrap:wrap;}
.achievement-case-body h3{
  font-size:15px;font-weight:700;line-height:1.5;color:#fff;
  letter-spacing:.04em;
}

/* ===== SERVICE AREAS ===== */
.section-serviceareas{padding:120px 0;}
.section-serviceareas .section-inner{max-width:1500px;}
.section-serviceareas .section-title-en{opacity:1;}
.serviceareas-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:40px;
  max-width:1500px;margin:0 auto;
  position:relative;
}
.servicearea-card{
  background:rgba(255,255,255,.06);border:1px solid rgba(0,180,255,.2);border-radius:8px;
  display:flex;flex-direction:column;
  position:relative;
  opacity:0;transform:translateY(20px);
  transition:opacity .7s cubic-bezier(.22,.61,.36,1),transform .7s cubic-bezier(.22,.61,.36,1);
}
.servicearea-card.is-visible{opacity:1;transform:translateY(0);}
/* カード間の矢印（最後以外） */
.servicearea-card:not(:last-child)::after{
  content:'';position:absolute;
  right:-32px;top:50%;
  transform:translateY(-50%);
  width:0;height:0;
  border-top:14px solid transparent;
  border-bottom:14px solid transparent;
  border-left:18px solid #00B4FF;
  z-index:3;
  filter:drop-shadow(0 0 6px rgba(0,180,255,.5));
}
.servicearea-card-title{
  background:#00B4FF;color:#fff;
  padding:14px 16px;text-align:center;
  font-size:16px;font-weight:700;letter-spacing:.04em;
  border-radius:8px 8px 0 0;
  margin:-1px -1px 0;
}
.servicearea-card-icon{
  display:flex;align-items:center;justify-content:center;
  width:104px;height:104px;
  margin:32px auto 32px;
}
.servicearea-card-icon img{width:100%;height:100%;object-fit:contain;}
.servicearea-card-list{
  list-style:none;padding:0 0 24px;
  display:flex;flex-direction:column;gap:10px;
  align-self:center;
}
.servicearea-card-list li{
  font-size:14px;font-weight:500;color:#fff;
  padding-left:16px;position:relative;
}
.servicearea-card-list li::before{
  content:'';position:absolute;left:0;top:8px;
  width:6px;height:6px;background:#00B4FF;border-radius:50%;
}

/* ===== HOW TO CHOOSE ===== */
.section-howto-choose{padding:120px 0 0;position:relative;}
.section-howto-choose .section-inner{max-width:1500px;}
.section-howto-choose .section-title-en{opacity:1;white-space:nowrap;}
.choose-cards{
  display:flex;flex-direction:column;gap:56px;
  max-width:1267px;margin:0 auto;
  padding-bottom:96px;
}
/* カード+画像の横並びラッパー */
.choose-card-item{
  display:flex;align-items:flex-start;
  width:100%;max-width:1267px;
  position:relative;
}
.choose-card-img{
  width:207px;flex-shrink:0;
  padding:21px 0;
  position:relative;z-index:2;
  margin-right:-140px;
}
.choose-card-img img{
  width:100%;height:auto;display:block;
  object-fit:contain;
}
/* 画像→カード（奇数：画像左）の通常パターン */
.choose-card{
  width:1200px;flex-shrink:0;
  background:rgba(255,255,255,.10);
  border-radius:6px;
  padding:48px 48px 48px 200px;
  position:relative;z-index:1;
  display:flex;flex-direction:column;gap:16px;
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  box-shadow:0 0 0 1px rgba(255,255,255,.30);
}
/* カード→画像（偶数：画像右）のパターン */
.choose-card-item:nth-child(even) .choose-card-img{
  margin-right:0;margin-left:-140px;
  order:2;
}
.choose-card-item:nth-child(even) .choose-card{
  padding:48px 200px 48px 48px;
}
.choose-card-title{
  font-size:32px;font-weight:700;color:#00B4FF;
  letter-spacing:.04em;line-height:1.5;
  margin:0;
}
.choose-card-text{
  font-size:16px;font-weight:300;line-height:1.5;
  color:#fff;letter-spacing:.04em;
  margin:0;
}
.choose-card-note{
  position:relative;margin-top:20px;
  background:#fff;color:#0E192F;
  padding:40px;border-radius:6px;
  font-size:16px;font-weight:300;line-height:1.5;letter-spacing:.04em;
  opacity:0;transform:translateY(18px);
  transition:opacity .8s cubic-bezier(.22,.61,.36,1),transform .8s cubic-bezier(.22,.61,.36,1);
  will-change:opacity,transform;
}
.choose-card-note.is-visible{opacity:1;transform:translateY(0);}
.choose-card-note::before{
  content:'';position:absolute;
  top:-12px;left:25.5%;
  width:24px;height:13px;
  background:#fff;
  clip-path:polygon(50% 0,0 100%,100% 100%);
}
/* 下部CTAバー：フル幅・濃ブルー */
.howto-bottom-cta{
  display:flex;align-items:center;justify-content:center;gap:64px;flex-wrap:wrap;
  background:#195DAA;
  padding:32px 24px;
  width:100%;
}
.howto-bottom-cta-text{
  font-size:32px;font-weight:700;color:#fff;letter-spacing:.04em;line-height:1.5;
}
.howto-bottom-cta-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:12px;
  width:400px;height:64px;
  background:#fff;color:#0E192F;border-radius:100px;
  font-size:18px;font-weight:500;letter-spacing:.04em;text-decoration:none;
  transition:transform .3s;
}
.howto-bottom-cta-btn:hover{transform:translateY(-2px);opacity:1;}
.howto-bottom-cta-btn span{color:#00B4FF;font-size:18px;font-weight:700;}

/* ===== DIFFERENCE ===== */
.section-difference{padding:120px 0;}
.section-difference .section-title-en{opacity:1}
.section-difference .section-inner{max-width:1267px;}
.diff-cards{
  display:flex;flex-direction:column;gap:56px;
  max-width:1200px;margin:0 auto;
}
.diff-card{
  background:rgba(255,255,255,.10);border:1px solid #00B4FF;border-radius:6px;
  width:100%;overflow:hidden;
  display:flex;flex-direction:column;
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
}
.diff-card-header{
  background:linear-gradient(to left,#0586D7,#33B1FF);
  padding:18px 72px;
}
.diff-card-title{
  font-size:32px;font-weight:700;color:#fff;letter-spacing:.04em;
  line-height:1.5;margin:0;
}
.diff-card-body{
  padding:40px 72px;
  display:flex;flex-direction:column;gap:32px;
}
.diff-card-text{
  font-size:18px;line-height:1.5;color:#fff;letter-spacing:.04em;
  margin:0;
}
.diff-card-text u{text-decoration:underline;text-underline-offset:3px;}
.diff-features-list{
  list-style:none;margin:0;padding:32px 40px;
  border:1px solid #fff;border-radius:0;
  display:flex;flex-direction:column;gap:16px;
}
.diff-features-list li{
  display:flex;align-items:flex-start;gap:16px;
  font-size:18px;line-height:1.5;color:#fff;letter-spacing:.04em;
}
.diff-features-bullet{
  color:#00B4FF;font-size:10px;line-height:1.7;
  flex-shrink:0;width:10px;
}

/* ===== Comparison Table ===== */
.diff-table-wrap{overflow-x:auto;margin:0;width:100%;}
.diff-table{
  width:100%;border-collapse:collapse;table-layout:auto;
}
.diff-table thead th{
  background:#195DAA;color:#fff;
  padding:16px 24px;font-size:16px;font-weight:400;line-height:1.5;
  text-align:center;letter-spacing:.04em;
  border-left:1px solid #fff;
}
.diff-table thead th:first-child{border-left:none;width:240px;}
.diff-table tbody th{
  background:#195DAA;color:#fff;
  padding:16px 24px;font-size:16px;font-weight:400;line-height:1.5;
  text-align:center;letter-spacing:.04em;width:240px;
  border-top:1px solid #fff;
}
.diff-table tbody td{
  background:#fff;color:#0E192F;
  padding:16px 24px;font-size:16px;font-weight:400;line-height:1.5;
  letter-spacing:.04em;
  border-top:1px solid #195DAA;
}
.diff-table tbody td + td{border-left:1px solid #195DAA;}

/* ===== CTA AREA ===== */
.section-cta-area{padding:80px 0 120px}
.cta-area-inner{
  max-width:900px;margin:0 auto;padding:48px;
  background:rgba(14,25,47,.85);border:1px solid rgba(0,180,255,.3);border-radius:8px;
  text-align:center;
}
.cta-area-title{
  font-size:clamp(20px,2vw,28px);font-weight:700;color:#fff;
  letter-spacing:.04em;margin-bottom:8px;
}
.cta-area-text{
  font-size:14px;color:rgba(255,255,255,.85);margin-bottom:32px;
}
.cta-area-btns{
  display:flex;gap:16px;justify-content:center;flex-wrap:wrap;
}

/* ===== Service Detail Pages: SP対応 ===== */
@media(max-width:1024px){
  .problem-card{flex:0 0 calc((100% - 24px) / 2);max-width:calc((100% - 24px) / 2);}
  .section-strengths .section-title-en{white-space:normal;}
  .strength-item{grid-template-columns:1fr;padding:32px;}
  .strength-row{grid-template-columns:1fr;gap:24px;}
  .strength-product-content{grid-template-columns:1fr;gap:20px;}
  .strength-img{order:-1;max-height:280px;}
  .section-member .section-title-en{white-space:normal;}
  .member-cards{grid-template-columns:repeat(2,1fr);gap:24px;}
  .achievement-cases{grid-template-columns:repeat(2,1fr);}
  .serviceareas-grid{grid-template-columns:repeat(2,1fr);gap:24px;}
  .servicearea-card:nth-child(2)::after{display:none;}
  .servicearea-card:not(:last-child)::after{
    right:-20px;
    border-left-width:12px;
    border-top-width:10px;border-bottom-width:10px;
  }
}
@media(max-width:768px){
  /* SP Hero（Figma 700:32129 準拠） */
  .section-hero-sd{
    position:relative;
    height:auto;padding:0;padding-bottom:0;
    background-color:#0E192F;
    min-height:880px;
    overflow:hidden;
  }
  /* SPでもデコ/PCモック表示 */
  .hero-sd-bg-deco,
  .hero-sd-deco,
  .hero-sd-pc{display:block}
  /* SP用デコ配置（PCルール上書き） */
  .hero-sd-bg-deco{
    position:absolute;
    top:-68px;left:-258px;right:auto;
    width:698px;height:720px;
    z-index:0;mix-blend-mode:overlay;
  }
  .hero-sd-bg-deco img{
    width:100%;height:100%;object-fit:cover;object-position:center;
  }
  .hero-sd-deco{
    position:absolute;
    top:292px;left:-145px;right:auto;
    width:721px;height:448px;
    z-index:0;mix-blend-mode:soft-light;
  }
  .hero-sd-deco img{
    width:100%;height:100%;object-fit:cover;object-position:center;
  }
  /* PC+phoneモック中央配置 */
  .hero-sd-pc{
    position:absolute;
    top:340px;left:50%;right:auto;
    transform:translateX(-50%);
    width:108%;max-width:none;
    z-index:1;
  }
  .hero-sd-pc img{width:100%;height:auto;display:block;filter:drop-shadow(0 8px 18px rgba(0,0,0,.4));}

  /* Inner はセクション全体を覆う（inset:0）— bottom:N で section 内に正確に配置 */
  /* padding-top:88px = 固定ヘッダー(64px) + 余白(24px) */
  .hero-sd-inner{
    position:absolute;inset:0;
    z-index:3;
    height:auto;
    padding:88px 16px 0;
    display:block;
  }
  .hero-sd-breadcrumb,
  .hero-sd-title,
  .hero-sd-tags{
    position:static;top:auto;left:auto;transform:none;
  }
  .hero-sd-breadcrumb{
    margin:0 0 32px;font-size:11px;line-height:1.3;letter-spacing:.04em;
    color:rgba(255,255,255,.95);
  }
  .hero-sd-breadcrumb a,
  .hero-sd-breadcrumb span{font-size:11px;color:rgba(255,255,255,.95);}
  .hero-sd-title{margin:0 0 12px;display:block;text-shadow:0 4px 2px rgba(0,0,0,.25);}
  .hero-sd-title-sub{
    display:block;font-size:18px;font-weight:500;line-height:1.3;
    margin-bottom:8px;letter-spacing:.04em;
  }
  .hero-sd-title-main{
    display:block;font-size:32px;font-weight:700;line-height:1.3;
    letter-spacing:.04em;
  }
  .hero-sd-tags{margin:0;gap:6px;justify-content:flex-start;flex-wrap:wrap;display:flex;}
  .hero-sd-tag{font-size:10px;padding:5px 16px;line-height:1.3;border-width:1px;}

  /* ボタン2つ横並び（PC モックの下まで下げる）*/
  .hero-sd-buttons{
    position:absolute;
    left:0;right:0;bottom:72px;
    display:flex;flex-direction:row;gap:10px;
    justify-content:center;
    padding:0 16px;
    z-index:4;
  }
  .hero-sd-buttons .btn-hero{
    flex:1;max-width:164px;width:auto;
    flex-direction:column;
    height:112px;padding:14px 8px 22px;
    align-items:center;justify-content:flex-start;
    gap:6px;
    position:relative;
  }
  .hero-sd-buttons .btn-hero-icon{margin:0;}
  .hero-sd-buttons .btn-hero-icon svg{width:28px;height:auto;}
  .hero-sd-buttons .btn-hero-labels{
    align-items:center;text-align:center;gap:2px;width:100%;
    display:flex;flex-direction:column;
  }
  .hero-sd-buttons .btn-hero-sub{font-size:12px;font-weight:500;letter-spacing:.04em;}
  .hero-sd-buttons .btn-hero-main{font-size:18px;font-weight:700;letter-spacing:.04em;}
  .hero-sd-buttons .btn-hero-arrow{
    position:absolute;
    bottom:4px;left:50%;
    transform:translateX(-50%) rotate(90deg);
    font-size:16px;line-height:1;
  }

  /* 下端ロゴ：display:none を上書き、ループスクロール維持 */
  .section-hero-sd .hero-logos{
    display:block !important;
    position:absolute;
    left:0;right:0;bottom:0;
    height:48px;
    z-index:3;
    overflow:hidden;
  }
  .section-hero-sd .hero-logos-track{
    display:flex;gap:3px;height:100%;align-items:center;
    animation:marquee 40s linear infinite;width:max-content;
  }
  .section-hero-sd .hero-logos-track img{
    height:100%;width:140px;object-fit:contain;
    flex-shrink:0;background:#fff;
  }

  /* ===== Amazon SP（Figma 700:33078 準拠）===== */
  /* PC側のtitle:absolute上書きを解除 */
  .section-hero-sd--amazon .hero-sd-title{
    position:static !important;top:auto;left:auto;transform:none;
  }
  /* dot素材は非表示（FigmaのAmazon SPには無い）*/
  .section-hero-sd--amazon .hero-sd-bg-deco{display:none;}
  /* ウェーブ（mv-deco）：Figma SP 位置 left:-94, top:275, w:784, h:496, rotate(180) */
  .section-hero-sd--amazon .hero-sd-deco{
    top:275px;left:-94px;right:auto;
    width:784px;height:496px;
    transform:rotate(180deg);
    mix-blend-mode:screen;opacity:1;
  }
  /* Amazon SP は main コピーが4行のためタグ行が下方向にずれる → PCモックも下に */
  .section-hero-sd--amazon .hero-sd-pc{top:400px;}
  /* Yahoo SP も main コピーが4行のため Amazon と同じ位置に */
  .section-hero-sd--yahoo .hero-sd-pc{top:400px;}
  /* Qoo10 SP は main コピーが3行構成のため Amazon/Yahoo より少し上 */
  .section-hero-sd--qoo10 .hero-sd-pc{top:370px;}

  .section-problems,
  .section-strengths,
  .section-member,
  .section-achievement--sd,
  .section-serviceareas,
  .section-howto-choose,
  .section-difference{padding:64px 0;}
  .problems-headline{font-size:28px;margin-bottom:32px;}
  .problem-cards{gap:12px;max-width:100%;}
  .problem-card{flex:0 0 calc((100% - 12px) / 2);max-width:calc((100% - 12px) / 2);padding:20px 12px;}
  .problem-card-icon{width:120px;height:120px;}
  .problem-card-text{font-size:19px;line-height:1.5;}
  .strength-item{padding:24px;gap:20px;}
  .strength-item--with-product{padding:24px;gap:20px;}
  .strength-title{font-size:18px;}
  .strength-text{font-size:14px;}
  .strength-product{padding:20px;}
  .strength-product-title{font-size:16px;}
  .strength-product-text{font-size:13px;}
  .strength-tags li{font-size:12px;padding:4px 14px;}
  .member-cards{grid-template-columns:1fr;gap:32px;}
  .achievement-cases{grid-template-columns:1fr;gap:20px;}
  .serviceareas-grid{grid-template-columns:1fr;gap:24px;}
  .servicearea-card:not(:last-child)::after{display:none;}
  .section-howto-choose{padding:64px 0 0;}
  .section-howto-choose .section-title-en{white-space:normal;}
  .choose-cards{gap:32px;padding-bottom:48px;}
  .choose-card-item,
  .choose-card-item:nth-child(even){
    display:block;flex-direction:initial;
    width:100%;max-width:none;
  }
  .choose-card-img,
  .choose-card-item:nth-child(even) .choose-card-img{display:none;}
  .choose-card,
  .choose-card-item:nth-child(even) .choose-card{
    width:100%;padding:24px 20px;
  }
  .choose-card-title{
    font-size:20px;line-height:1.4;
    padding-right:0;
  }
  .choose-card-text{font-size:14px;line-height:1.7;}
  .choose-card-note{padding:24px 18px;font-size:14px;line-height:1.7;margin-top:16px;}
  .choose-card-note::before{left:auto;right:14%;width:18px;height:10px;top:-9px;}
  .section-difference{padding:64px 0;}
  .diff-cards{gap:32px;}
  .diff-card-header{padding:14px 20px;}
  .diff-card-title{font-size:18px;line-height:1.4;}
  .diff-card-body{padding:24px 20px;gap:20px;}
  .diff-card-text{font-size:14px;line-height:1.7;}
  .diff-features-list{padding:20px 18px;gap:12px;}
  .diff-features-list li{font-size:14px;line-height:1.6;gap:10px;}
  .diff-features-bullet{font-size:9px;line-height:1.8;width:9px;}
  .diff-table thead th,
  .diff-table tbody th,
  .diff-table tbody td{font-size:12px;padding:10px 8px;}
  .diff-table thead th:first-child,
  .diff-table tbody th{width:90px;}
  .howto-bottom-cta{flex-direction:column;padding:24px 16px;gap:16px;}
  .howto-bottom-cta-text{font-size:18px;text-align:center;line-height:1.5;}
  .howto-bottom-cta-btn{width:100%;max-width:340px;height:56px;font-size:15px;}
  .cta-area-inner{padding:32px 24px;}
}

