/* ============================================================
   Service LP - 2026-04-23 Renewal
   /ai-consulting/ と /automation/industry/* のデザイン言語を継承
   ============================================================ */
.svc-lp { font-family: 'Noto Sans JP','Hiragino Kaku Gothic ProN',-apple-system,sans-serif; color:#1E293B; line-height:1.8; font-feature-settings:"palt"; }
.svc-lp *, .svc-lp *::before, .svc-lp *::after { box-sizing:border-box; }
.svc-lp .wrap { max-width:1160px; margin:0 auto; padding:0 24px; }
.svc-lp .wrap-narrow { max-width:920px; margin:0 auto; padding:0 24px; }

/* HERO */
.svc-hero { position:relative; background:#0F172A; color:#fff; padding:120px 0 110px; overflow:hidden; }
.svc-hero::before { content:''; position:absolute; top:-200px; right:-200px; width:720px; height:720px; background:radial-gradient(circle,rgba(37,99,235,0.22) 0%,transparent 65%); border-radius:50%; pointer-events:none; }
.svc-hero::after { content:''; position:absolute; bottom:-260px; left:-180px; width:600px; height:600px; background:radial-gradient(circle,rgba(96,165,250,0.10) 0%,transparent 70%); border-radius:50%; pointer-events:none; }
.svc-hero__inner { position:relative; z-index:1; max-width:920px; }
.svc-hero__meta { display:inline-flex; align-items:center; gap:14px; margin-bottom:32px; font-family:'Inter',sans-serif; font-size:12px; font-weight:800; letter-spacing:0.28em; color:rgba(96,165,250,0.95); }
.svc-hero__meta-line { width:36px; height:1px; background:rgba(96,165,250,0.6); }
.svc-hero__quote { display:block; font-size:clamp(15px,1.7vw,18px); font-weight:600; color:rgba(255,255,255,0.78); margin-bottom:20px; line-height:1.85; letter-spacing:0.01em; }
.svc-hero__title { font-size:clamp(34px,5.4vw,60px); font-weight:900; line-height:1.22; letter-spacing:-0.03em; margin:0 0 28px; color:#fff; }
.svc-hero__title em { font-style:normal; color:#60A5FA; position:relative; }
.svc-hero__title em::after { content:''; position:absolute; left:0; right:0; bottom:-4px; height:8px; background:linear-gradient(90deg,transparent,rgba(96,165,250,0.5),transparent); filter:blur(8px); }
.svc-hero__lead { font-size:clamp(15.5px,1.8vw,18px); color:rgba(255,255,255,0.82); line-height:1.95; max-width:780px; margin:0 0 44px; font-weight:500; }
.svc-hero__lead strong { color:#fff; font-weight:800; }
.svc-hero__ctas { display:flex; flex-wrap:wrap; gap:16px; margin-bottom:56px; }
.svc-btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:18px 40px; font-size:15px; font-weight:800; border-radius:12px; text-decoration:none; transition:all .3s cubic-bezier(.4,0,.2,1); letter-spacing:0.02em; cursor:pointer; border:none; }
.svc-btn--primary { background:linear-gradient(135deg,#2563EB 0%,#1D4ED8 100%); color:#fff; box-shadow:0 12px 36px rgba(37,99,235,.4); animation:svcPulse 2.6s ease-in-out infinite; }
@keyframes svcPulse { 0%,100% { box-shadow:0 12px 36px rgba(37,99,235,.4); } 50% { box-shadow:0 18px 52px rgba(37,99,235,.6); } }
.svc-btn--primary:hover { transform:translateY(-3px) scale(1.02); animation:none; box-shadow:0 18px 52px rgba(37,99,235,.6); color:#fff; }
.svc-btn--line { background:transparent; color:#fff; border:1px solid rgba(255,255,255,0.32); }
.svc-btn--line:hover { background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.7); color:#fff; transform:translateY(-2px); }
.svc-btn__arrow { transition:transform .3s; }
.svc-btn:hover .svc-btn__arrow { transform:translateX(5px); }
.svc-hero__pillars { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; padding-top:36px; border-top:1px solid rgba(255,255,255,0.14); max-width:820px; }
.svc-hero__pillar { display:flex; align-items:center; gap:14px; }
.svc-hero__pillar-num { flex-shrink:0; width:36px; height:36px; background:rgba(96,165,250,0.15); color:#60A5FA; border-radius:8px; display:inline-flex; align-items:center; justify-content:center; font-family:'Inter',sans-serif; font-size:13px; font-weight:900; letter-spacing:0; border:1px solid rgba(96,165,250,0.25); }
.svc-hero__pillar-text { font-size:14px; color:rgba(255,255,255,0.88); font-weight:600; line-height:1.55; letter-spacing:-0.005em; }
@media (max-width:640px) { .svc-hero__pillars { grid-template-columns:1fr; gap:14px; } }

/* SECTION 共通 */
.svc-section { padding:96px 0; position:relative; }
.svc-section--soft { background:#FAFBFD; }
.svc-section--ink { background:#0F172A; color:#fff; }
.svc-section__head { max-width:820px; margin:0 auto 60px; text-align:center; }
.svc-kicker { display:inline-flex; align-items:center; gap:10px; font-family:'Inter',sans-serif; font-size:12px; font-weight:800; letter-spacing:0.28em; text-transform:uppercase; color:#2563EB; margin-bottom:20px; }
.svc-kicker::before { content:''; width:32px; height:1px; background:#2563EB; }
.svc-section--ink .svc-kicker { color:#60A5FA; }
.svc-section--ink .svc-kicker::before { background:#60A5FA; }
.svc-title { font-size:clamp(26px,3.6vw,42px); font-weight:900; line-height:1.3; color:#0F172A; letter-spacing:-0.025em; margin:0 0 22px; }
.svc-section--ink .svc-title { color:#fff; }
.svc-title em { font-style:normal; color:#2563EB; }
.svc-section--ink .svc-title em { color:#60A5FA; }
.svc-lead { font-size:16px; color:#64748B; line-height:1.95; max-width:760px; margin:0 auto; }
.svc-section--ink .svc-lead { color:rgba(255,255,255,0.78); }

/* WHY: 3理由カード */
.svc-why-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:24px; margin-top:48px; }
.svc-why-card { background:#fff; padding:40px 32px; border-radius:16px; border:1px solid #E2E8F0; box-shadow:0 2px 12px rgba(15,23,42,.04); transition:all .3s cubic-bezier(.4,0,.2,1); position:relative; overflow:hidden; }
.svc-why-card::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg,#2563EB,#60A5FA); transform:scaleX(0); transform-origin:left; transition:transform .4s cubic-bezier(.4,0,.2,1); }
.svc-why-card:hover { transform:translateY(-6px); box-shadow:0 12px 36px rgba(15,23,42,.10); border-color:rgba(37,99,235,.3); }
.svc-why-card:hover::before { transform:scaleX(1); }
.svc-why-card__num { font-family:'Inter',sans-serif; font-size:13px; font-weight:800; color:#2563EB; letter-spacing:0.18em; margin-bottom:14px; }
.svc-why-card__title { font-size:19px; font-weight:900; color:#0F172A; line-height:1.5; margin:0 0 14px; letter-spacing:-0.01em; }
.svc-why-card__desc { font-size:14.5px; color:#64748B; line-height:1.9; margin:0; }

/* FROM CONSULTING -> ADVISOR (3-step vertical flow) */
.svc-flow-2 { display:flex; flex-direction:column; gap:0; margin-top:48px; }
.svc-flow-2__step { display:grid; grid-template-columns:80px 1fr; gap:24px; padding:32px 36px; background:#fff; border:1px solid #E2E8F0; border-radius:18px; align-items:center; box-shadow:0 4px 16px rgba(15,23,42,.05); transition:all .3s; }
.svc-flow-2__step:hover { transform:translateY(-2px); box-shadow:0 12px 32px rgba(15,23,42,.10); border-color:rgba(37,99,235,.3); }
.svc-flow-2__step--featured { border:2px solid #2563EB; background:linear-gradient(180deg,#fff 0%,#F0F7FF 100%); box-shadow:0 12px 36px rgba(37,99,235,.18); position:relative; }
.svc-flow-2__step--featured::before { content:'最も多い流れ'; position:absolute; top:-12px; left:24px; background:linear-gradient(135deg,#2563EB,#1D4ED8); color:#fff; font-size:11px; font-weight:800; padding:5px 14px; border-radius:6px; letter-spacing:.1em; box-shadow:0 4px 12px rgba(37,99,235,.3); }
.svc-flow-2__num { font-family:'Inter',sans-serif; font-size:36px; font-weight:900; color:#2563EB; line-height:1; letter-spacing:-0.04em; text-align:center; }
.svc-flow-2__step--featured .svc-flow-2__num { color:#1D4ED8; }
.svc-flow-2__title { font-size:18px; font-weight:900; color:#0F172A; margin:0 0 10px; letter-spacing:-0.01em; line-height:1.4; }
.svc-flow-2__desc { font-size:14.5px; color:#475569; line-height:1.85; margin:0; }
.svc-flow-2__desc strong { color:#1D4ED8; font-weight:800; }
.svc-flow-2__arrow { text-align:center; font-size:24px; color:#94A3B8; padding:8px 0; font-weight:300; }
.svc-flow-2-note { text-align:center; font-size:13px; color:#94A3B8; margin-top:24px; }
@media (max-width:640px) {
  .svc-flow-2__step { grid-template-columns:1fr; gap:8px; padding:24px 22px; text-align:center; }
  .svc-flow-2__num { font-size:28px; }
}

/* COMPARE CARDS (リッチな2カード比較) */
.svc-cmp-cards { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:48px; }
.svc-cmp-card { background:#fff; border:1px solid #E2E8F0; border-radius:20px; padding:36px 32px; box-shadow:0 4px 16px rgba(15,23,42,.05); transition:all .3s; position:relative; }
.svc-cmp-card:hover { transform:translateY(-4px); box-shadow:0 12px 36px rgba(15,23,42,.10); }
.svc-cmp-card--featured { border:2px solid #2563EB; background:linear-gradient(180deg,#fff 0%,#F0F7FF 100%); box-shadow:0 14px 40px rgba(37,99,235,.18); }
.svc-cmp-card__badge { position:absolute; top:-12px; left:50%; transform:translateX(-50%); background:linear-gradient(135deg,#2563EB,#1D4ED8); color:#fff; font-size:11px; font-weight:800; padding:6px 16px; border-radius:100px; letter-spacing:.12em; box-shadow:0 6px 18px rgba(37,99,235,.4); white-space:nowrap; }
.svc-cmp-card__head { padding-bottom:24px; margin-bottom:24px; border-bottom:1px solid #E2E8F0; }
.svc-cmp-card__tag { display:inline-block; font-family:'Inter',sans-serif; font-size:11px; font-weight:800; color:#2563EB; letter-spacing:0.2em; margin-bottom:10px; }
.svc-cmp-card__title { font-size:22px; font-weight:900; color:#0F172A; margin:0 0 14px; letter-spacing:-0.01em; }
.svc-cmp-card__price { font-family:'Inter','Noto Sans JP',sans-serif; font-size:30px; font-weight:900; color:#0F172A; margin:0; line-height:1; letter-spacing:-0.02em; }
.svc-cmp-card__price span { font-size:13px; color:#64748B; font-weight:600; margin-left:4px; }
.svc-cmp-card__list { list-style:none; padding:0; margin:0 0 24px; display:flex; flex-direction:column; gap:14px; }
.svc-cmp-card__list li { font-size:14px; color:#1E293B; line-height:1.78; padding-left:18px; position:relative; }
.svc-cmp-card__list li::before { content:''; position:absolute; left:0; top:9px; width:6px; height:6px; background:#2563EB; border-radius:50%; }
.svc-cmp-card__list li strong { display:inline-block; min-width:64px; font-weight:800; color:#0F172A; }
.svc-cmp-card__verdict { padding:14px 18px; background:#FAFBFD; border-radius:10px; font-size:13.5px; font-weight:800; color:#475569; text-align:center; }
.svc-cmp-card--featured .svc-cmp-card__verdict { background:#fff; color:#1D4ED8; border:1px solid #DBEAFE; }
.svc-cmp-bottom { margin-top:36px; padding:24px 28px; background:#0F172A; color:#fff; border-radius:14px; text-align:center; }
.svc-cmp-bottom p { font-size:14.5px; line-height:1.85; margin:0; color:rgba(255,255,255,0.85); }
.svc-cmp-bottom strong { color:#60A5FA; font-weight:800; }
@media (max-width:900px) { .svc-cmp-cards { grid-template-columns:1fr; } }

/* PLAN GRID */
.svc-plans { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:48px; align-items:stretch; }
.svc-plan { background:#fff; border-radius:20px; border:1px solid #E2E8F0; padding:40px 32px; display:flex; flex-direction:column; box-shadow:0 2px 12px rgba(15,23,42,.04); transition:all .3s cubic-bezier(.4,0,.2,1); position:relative; }
.svc-plan:hover { transform:translateY(-6px); box-shadow:0 14px 40px rgba(15,23,42,.10); }
.svc-plan--featured { border:2px solid #2563EB; background:linear-gradient(180deg,#fff 0%,#F8FAFF 100%); box-shadow:0 14px 40px rgba(37,99,235,.18); transform:scale(1.02); }
.svc-plan--featured:hover { transform:scale(1.02) translateY(-6px); box-shadow:0 22px 56px rgba(37,99,235,.24); }
.svc-plan__badge { position:absolute; top:-14px; left:50%; transform:translateX(-50%); background:linear-gradient(135deg,#2563EB,#1D4ED8); color:#fff; font-size:11px; font-weight:800; padding:6px 18px; border-radius:100px; letter-spacing:0.12em; box-shadow:0 6px 20px rgba(37,99,235,.4); }
.svc-plan__tag { font-family:'Inter',sans-serif; font-size:12px; font-weight:800; color:#2563EB; letter-spacing:0.22em; margin-bottom:8px; }
.svc-plan__name { font-size:22px; font-weight:900; color:#0F172A; margin:0 0 10px; letter-spacing:-0.01em; }
.svc-plan__sub { font-size:13.5px; color:#64748B; margin:0 0 28px; line-height:1.7; }
.svc-plan__price { display:flex; align-items:baseline; gap:6px; padding-bottom:24px; margin-bottom:28px; border-bottom:1px solid #EEF2F7; }
.svc-plan__price-num { font-family:'Inter','Noto Sans JP',sans-serif; font-size:48px; font-weight:900; color:#0F172A; line-height:1; letter-spacing:-0.025em; }
.svc-plan__price-num small { font-size:.42em; color:#0F172A; font-weight:700; margin-left:2px; }
.svc-plan__price-unit { font-size:13px; color:#64748B; font-weight:600; }
.svc-plan__price-sm { font-size:32px; font-weight:900; color:#0F172A; line-height:1; }
.svc-plan__list { list-style:none; padding:0; margin:0 0 28px; flex:1; display:flex; flex-direction:column; gap:14px; }
.svc-plan__list li { font-size:14.5px; color:#1E293B; line-height:1.7; padding-left:28px; position:relative; }
.svc-plan__list li::before { content:''; position:absolute; left:0; top:7px; width:18px; height:18px; background:#EFF6FF url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563EB' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/12px no-repeat; border-radius:5px; }
.svc-plan__list li strong { font-weight:800; color:#2563EB; }
.svc-plan__suit { background:#FAFBFD; border-radius:12px; padding:18px 18px; margin-top:auto; }
.svc-plan--featured .svc-plan__suit { background:#fff; border:1px solid #DBEAFE; }
.svc-plan__suit-label { font-size:11px; font-weight:800; color:#2563EB; letter-spacing:0.12em; margin-bottom:8px; }
.svc-plan__suit p { font-size:13px; color:#475569; line-height:1.75; margin:0; }
.svc-plan__cta { display:block; text-align:center; padding:14px; margin-top:20px; background:#2563EB; color:#fff; font-weight:800; font-size:14px; border-radius:10px; text-decoration:none; transition:all .25s; letter-spacing:0.02em; }
.svc-plan__cta:hover { background:#1D4ED8; color:#fff; transform:translateY(-2px); }
.svc-plan--featured .svc-plan__cta { background:linear-gradient(135deg,#2563EB,#1D4ED8); box-shadow:0 8px 24px rgba(37,99,235,.3); }
.svc-plans-note { text-align:center; font-size:13.5px; color:#64748B; margin-top:32px; line-height:1.8; }

/* COVERAGE GRID */
.svc-cov { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:20px; margin-top:48px; }
.svc-cov__card { background:#fff; padding:32px 28px; border-radius:16px; border:1px solid #E2E8F0; box-shadow:0 2px 12px rgba(15,23,42,.04); transition:all .3s; }
.svc-cov__card:hover { transform:translateY(-4px); box-shadow:0 12px 36px rgba(15,23,42,.10); border-color:rgba(37,99,235,.25); }
.svc-cov__num { display:inline-block; font-family:'Inter',sans-serif; font-size:13px; font-weight:900; color:#2563EB; letter-spacing:0.18em; padding:6px 12px; background:#EFF6FF; border-radius:6px; margin-bottom:18px; }
.svc-cov__title { font-size:17px; font-weight:900; color:#0F172A; margin:0 0 14px; letter-spacing:-0.01em; }
.svc-cov__list { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:8px; }
.svc-cov__list li { font-size:13.5px; color:#475569; line-height:1.65; padding-left:18px; position:relative; }
.svc-cov__list li::before { content:''; position:absolute; left:0; top:9px; width:6px; height:6px; background:#2563EB; border-radius:50%; }

/* BEFORE / AFTER */
.svc-ba { display:flex; flex-direction:column; gap:16px; margin-top:48px; }
.svc-ba__row { display:grid; grid-template-columns:1fr 56px 1fr; gap:0; align-items:stretch; }
.svc-ba__side { padding:28px 32px; border-radius:14px; }
.svc-ba__before { background:#F1F5F9; color:#64748B; }
.svc-ba__after { background:linear-gradient(180deg,#fff 0%,#F0F7FF 100%); border:1px solid #DBEAFE; box-shadow:0 4px 16px rgba(37,99,235,.10); }
.svc-ba__label { display:inline-block; font-family:'Inter',sans-serif; font-size:11px; font-weight:800; padding:5px 12px; border-radius:4px; letter-spacing:0.18em; margin-bottom:12px; }
.svc-ba__before .svc-ba__label { background:#0F172A; color:#fff; opacity:.55; }
.svc-ba__after .svc-ba__label { background:#2563EB; color:#fff; }
.svc-ba__text { font-size:15px; line-height:1.75; margin:0; }
.svc-ba__after .svc-ba__text { color:#0F172A; font-weight:600; }
.svc-ba__arrow { display:flex; align-items:center; justify-content:center; color:#2563EB; font-size:24px; font-weight:300; }

/* FLOW (steps) */
.svc-flow { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:48px; }
.svc-flow__step { background:rgba(255,255,255,0.04); padding:32px 24px; border-radius:14px; border:1px solid rgba(255,255,255,0.10); position:relative; transition:all .3s; }
.svc-flow__step:hover { background:rgba(37,99,235,0.08); border-color:rgba(96,165,250,0.4); transform:translateY(-4px); }
.svc-flow__num { font-family:'Inter',sans-serif; font-size:13px; font-weight:800; color:#60A5FA; letter-spacing:0.18em; margin-bottom:14px; }
.svc-flow__title { font-size:17px; font-weight:900; color:#fff; margin:0 0 12px; letter-spacing:-0.01em; }
.svc-flow__desc { font-size:13.5px; color:rgba(255,255,255,0.72); line-height:1.85; margin:0; }
.svc-flow__step:not(:last-child)::after { content:'→'; position:absolute; right:-14px; top:50%; transform:translateY(-50%); color:#60A5FA; font-size:18px; z-index:2; }

/* FAQ */
.svc-faq { display:flex; flex-direction:column; gap:14px; margin-top:48px; }
.svc-faq__item { background:#fff; border:1px solid #E2E8F0; border-radius:14px; box-shadow:0 2px 12px rgba(15,23,42,.04); overflow:hidden; transition:all .25s; }
.svc-faq__item:hover { border-color:rgba(37,99,235,0.25); box-shadow:0 8px 28px rgba(15,23,42,.08); }
.svc-faq__item[open] { border-color:rgba(37,99,235,0.3); }
.svc-faq__q { display:flex; gap:14px; align-items:center; padding:22px 28px; cursor:pointer; font-size:15.5px; font-weight:800; color:#0F172A; line-height:1.55; letter-spacing:-0.005em; user-select:none; list-style:none; }
.svc-faq__q::-webkit-details-marker { display:none; }
.svc-faq__icon { flex-shrink:0; width:30px; height:30px; background:#2563EB; color:#fff; border-radius:8px; display:inline-flex; align-items:center; justify-content:center; font-family:'Inter',sans-serif; font-size:13px; font-weight:800; }
.svc-faq__q-text { flex:1; }
.svc-faq__toggle { color:#2563EB; font-size:22px; font-weight:300; transition:transform .3s; line-height:1; }
.svc-faq__item[open] .svc-faq__toggle { transform:rotate(45deg); }
.svc-faq__a { display:flex; gap:14px; padding:8px 28px 26px; font-size:14.5px; color:#475569; line-height:1.95; border-top:1px solid #F1F5F9; padding-top:20px; }
.svc-faq__a .svc-faq__icon { background:#F1F5F9; color:#64748B; }
.svc-faq__a-text { flex:1; padding-top:4px; }

/* FINAL CTA */
.svc-final { position:relative; background:linear-gradient(135deg,#0F172A 0%,#1E293B 100%); color:#fff; padding:110px 0 100px; overflow:hidden; }
.svc-final::before { content:''; position:absolute; top:-200px; right:-150px; width:600px; height:600px; background:radial-gradient(circle,rgba(37,99,235,0.20) 0%,transparent 65%); border-radius:50%; pointer-events:none; }
.svc-final__inner { position:relative; z-index:1; max-width:820px; margin:0 auto; text-align:center; padding:0 24px; }
.svc-final__title { font-size:clamp(26px,3.6vw,40px); font-weight:900; line-height:1.32; color:#fff; letter-spacing:-0.025em; margin:0 0 22px; }
.svc-final__title em { font-style:normal; color:#60A5FA; }
.svc-final__lead { font-size:16px; color:rgba(255,255,255,0.82); line-height:1.95; margin:0 0 40px; }
.svc-final__ctas { display:flex; flex-wrap:wrap; gap:16px; justify-content:center; margin-bottom:24px; }
.svc-final__note { font-size:13px; color:rgba(255,255,255,0.55); margin:0; line-height:1.8; }

/* MOBILE */
@media (max-width:900px) {
  .svc-plans, .svc-flow { grid-template-columns:1fr !important; }
  .svc-plan--featured { transform:none; }
  .svc-plan--featured:hover { transform:translateY(-6px); }
  .svc-flow__step:not(:last-child)::after { content:'↓'; right:50%; top:calc(100% + 4px); transform:translateX(50%); }
  .svc-ba__row { grid-template-columns:1fr; gap:12px; }
  .svc-ba__arrow { transform:rotate(90deg); padding:0; }
  .svc-cmp { font-size:12px; }
  .svc-cmp th, .svc-cmp td { padding:12px 8px; font-size:12px; }
}
@media (max-width:640px) {
  .svc-hero { padding:80px 0 70px; }
  .svc-section, .svc-final { padding:64px 0; }
  .svc-section__head { margin-bottom:40px; }
  .svc-hero__stats { grid-template-columns:1fr; gap:20px; }
  .svc-hero__ctas { flex-direction:column; align-items:stretch; }
  .svc-btn { width:100%; }
  .svc-faq__q, .svc-faq__a { padding-left:18px; padding-right:18px; }
  .svc-cmp-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .svc-cmp { min-width:560px; }
}

/* ============================================================
   ANIMATIONS（2026-04-23 追加）
   ・ヒーロー演出（順次フェードイン）
   ・スクロールフェードイン（scroll-timeline）
   ・ホバーエフェクト
   ・CTAボタンのパルス
   ============================================================ */
@keyframes svcFadeUp {
  from { opacity:0; transform:translateY(28px); }
  to   { opacity:1; transform:translateY(0); }
}
@keyframes svcFadeIn {
  from { opacity:0; }
  to   { opacity:1; }
}
@keyframes svcScaleIn {
  from { opacity:0; transform:scale(0.94); }
  to   { opacity:1; transform:scale(1); }
}
@keyframes svcSlideLeft {
  from { opacity:0; transform:translateX(-24px); }
  to   { opacity:1; transform:translateX(0); }
}
@keyframes svcHighlight {
  0%, 100% { box-shadow:0 0 0 0 rgba(37,99,235,0); }
  50% { box-shadow:0 0 0 6px rgba(37,99,235,0.12); }
}

/* HERO - 順次登場 */
.svc-hero__meta { animation:svcFadeIn 1s ease .1s both; }
.svc-hero__quote { animation:svcSlideLeft 1s cubic-bezier(.4,0,.2,1) .25s both; }
.svc-hero__title { animation:svcFadeUp 1s cubic-bezier(.4,0,.2,1) .4s both; }
.svc-hero__title em { position:relative; display:inline-block; }
.svc-hero__title em::before {
  content:''; position:absolute; left:0; right:100%; bottom:-2px; height:3px;
  background:#60A5FA; animation:svcHeroUnderline 1.4s cubic-bezier(.4,0,.2,1) 1s forwards;
}
@keyframes svcHeroUnderline { to { right:0; } }
.svc-hero__lead { animation:svcFadeUp 1s cubic-bezier(.4,0,.2,1) .55s both; }
.svc-hero__ctas { animation:svcFadeUp 1s cubic-bezier(.4,0,.2,1) .7s both; }
.svc-hero__pillars { animation:svcFadeUp 1s cubic-bezier(.4,0,.2,1) .85s both; }
.svc-hero__pillar { transition:transform .25s ease; }
.svc-hero__pillar:hover { transform:translateX(4px); }
.svc-hero__pillar:hover .svc-hero__pillar-num { background:rgba(96,165,250,0.28); border-color:rgba(96,165,250,0.5); }

/* セクション見出し・リード：scroll-triggered */
.svc-kicker, .svc-title, .svc-lead, .svc-section__head > * {
  animation:svcFadeUp .8s cubic-bezier(.4,0,.2,1) both;
  animation-timeline:view();
  animation-range:entry 0% entry 55%;
}

/* カード系：scroll-triggered ＋ stagger */
.svc-why-card, .svc-cmp-card, .svc-plan, .svc-cov__card, .svc-ba__row, .svc-flow__step, .svc-faq__item {
  animation:svcFadeUp .7s cubic-bezier(.4,0,.2,1) both;
  animation-timeline:view();
  animation-range:entry 0% entry 50%;
}
.svc-why-card:nth-child(2), .svc-cov__card:nth-child(2), .svc-flow__step:nth-child(2), .svc-ba__row:nth-child(2) { animation-delay:.08s; }
.svc-why-card:nth-child(3), .svc-cov__card:nth-child(3), .svc-flow__step:nth-child(3), .svc-ba__row:nth-child(3) { animation-delay:.16s; }
.svc-cov__card:nth-child(4), .svc-flow__step:nth-child(4), .svc-ba__row:nth-child(4) { animation-delay:.24s; }
.svc-cov__card:nth-child(5) { animation-delay:.32s; }
.svc-cov__card:nth-child(6) { animation-delay:.4s; }

/* @supports フォールバック（古ブラウザ用） */
@supports not (animation-timeline:view()) {
  .svc-kicker, .svc-title, .svc-lead, .svc-why-card, .svc-cmp-card, .svc-plan, .svc-cov__card, .svc-ba__row, .svc-flow__step, .svc-faq__item {
    animation:svcFadeIn .6s ease both;
    opacity:1;
  }
}

/* ホバー精細化 */
.svc-why-card, .svc-cmp-card, .svc-plan, .svc-cov__card, .svc-faq__item, .svc-flow__step {
  transition:transform .35s cubic-bezier(.4,0,.2,1), box-shadow .35s cubic-bezier(.4,0,.2,1), border-color .3s ease, background .3s ease;
}
.svc-cov__card:hover .svc-cov__num { background:#2563EB; color:#fff; transition:all .3s ease; }
.svc-ba__row:hover .svc-ba__after { background:linear-gradient(180deg,#fff 0%,#DBEAFE 100%); transition:background .3s ease; }
.svc-ba__row:hover .svc-ba__arrow { transform:translateX(4px); transition:transform .3s ease; }
.svc-ba__arrow { transition:transform .3s ease; }

/* Before/After カードにスライドイン */
.svc-ba__before { animation:svcSlideLeft .7s cubic-bezier(.4,0,.2,1) both; animation-timeline:view(); animation-range:entry 0% entry 50%; }
.svc-ba__after { animation:svcFadeUp .7s cubic-bezier(.4,0,.2,1) .1s both; animation-timeline:view(); animation-range:entry 0% entry 50%; }

/* FAQ展開アニメーション */
.svc-faq__item { overflow:hidden; }
.svc-faq__q { transition:background .25s ease, padding .25s ease; }
.svc-faq__item:hover .svc-faq__q { background:#FAFBFD; }
.svc-faq__item[open] .svc-faq__q { background:#FAFBFD; }
.svc-faq__a { animation:svcFadeIn .4s ease both; }
.svc-faq__item[open] .svc-faq__icon:first-of-type { animation:svcHighlight 1.2s ease 1; }

/* プランカード「最も選ばれる」バッジにパルス */
.svc-plan--featured { animation:svcFeaturedPulse 3.5s ease-in-out infinite; }
@keyframes svcFeaturedPulse {
  0%, 100% { box-shadow:0 14px 40px rgba(37,99,235,.18); }
  50% { box-shadow:0 18px 50px rgba(37,99,235,.30); }
}
.svc-plan__badge { animation:svcBadgeFloat 2.8s ease-in-out infinite; }
@keyframes svcBadgeFloat {
  0%, 100% { transform:translateX(-50%) translateY(0); }
  50% { transform:translateX(-50%) translateY(-3px); }
}

/* 数字カウント風のカラー変化 */
.svc-plan__price-num, .svc-cmp-card__price {
  transition:color .25s ease;
}
.svc-plan:hover .svc-plan__price-num, .svc-cmp-card:hover .svc-cmp-card__price { color:#2563EB; }

/* CTAボタン矢印のバウンス */
.svc-btn:hover .svc-btn__arrow { animation:svcArrowBounce .7s ease infinite; }
@keyframes svcArrowBounce {
  0%, 100% { transform:translateX(5px); }
  50% { transform:translateX(10px); }
}

/* FINAL CTA: タイトルにハイライトフェード */
.svc-final__title em { position:relative; display:inline-block; }
.svc-final__title em::after {
  content:''; position:absolute; left:0; right:0; bottom:-4px; height:3px;
  background:linear-gradient(90deg,transparent 0%,#60A5FA 50%,transparent 100%);
  animation:svcFinalShine 2.4s ease-in-out infinite;
}
@keyframes svcFinalShine {
  0%, 100% { opacity:.4; transform:scaleX(0.8); }
  50% { opacity:1; transform:scaleX(1.05); }
}

/* スクロール全体にスムース */
html:has(.svc-lp) { scroll-behavior:smooth; }

/* リダクション設定（モーション控えめ） */
@media (prefers-reduced-motion:reduce) {
  .svc-lp *, .svc-lp *::before, .svc-lp *::after {
    animation:none !important;
    transition:none !important;
  }
}

/* ============================================================
   DIRECT ANSWER BOX (AI Overviews/SGE向け)
   ============================================================ */
.svc-direct-answer { max-width:1160px; margin:24px auto 0; padding:0 24px; }
.svc-direct-answer__text { background:#F0F7FF; border-left:4px solid #2563EB; border-radius:0 14px 14px 0; padding:20px 28px; font-size:15.5px; line-height:1.9; color:#1E293B; margin:0; box-shadow:0 4px 16px rgba(37,99,235,.06); }
.svc-direct-answer__text strong { color:#1D4ED8; font-weight:800; }
.svc-da--inline { background:#F0F7FF; border-left:4px solid #2563EB; border-radius:0 10px 10px 0; padding:16px 22px; font-size:14.5px; line-height:1.9; color:#1E293B; margin:20px auto 0; max-width:820px; text-align:left; display:block; }
.svc-da--inline strong { color:#1D4ED8; font-weight:800; }

/* ============================================================
   COMPARE TABLE (LLM/SE向けマトリクス)
   ============================================================ */
.svc-cmp-table-wrap { margin:0 0 48px; overflow-x:auto; -webkit-overflow-scrolling:touch; }
.svc-cmp-table { width:100%; border-collapse:separate; border-spacing:0; background:#fff; border-radius:16px; overflow:hidden; box-shadow:0 8px 28px rgba(15,23,42,.06); border:1px solid #E2E8F0; }
.svc-cmp-table__caption { padding:18px 24px; background:#0F172A; color:#fff; font-size:13px; font-weight:800; letter-spacing:.06em; text-align:left; caption-side:top; }
.svc-cmp-table th, .svc-cmp-table td { padding:18px 20px; border-bottom:1px solid #EEF2F7; font-size:14px; line-height:1.75; text-align:left; vertical-align:top; }
.svc-cmp-table thead th { background:#FAFBFD; color:#0F172A; font-weight:900; font-size:13.5px; }
.svc-cmp-table thead th.is-featured { background:#2563EB; color:#fff; position:relative; }
.svc-cmp-table thead th.is-featured::before { content:'最適'; position:absolute; top:6px; right:10px; background:#FBBF24; color:#0F172A; font-size:10px; font-weight:900; padding:2px 8px; border-radius:4px; letter-spacing:.08em; }
.svc-cmp-table tbody th { background:#FAFBFD; color:#475569; font-weight:800; width:18%; }
.svc-cmp-table tbody td.is-featured { background:#F0F7FF; color:#1D4ED8; font-weight:700; }
.svc-cmp-table tr:last-child th, .svc-cmp-table tr:last-child td { border-bottom:none; }

/* ============================================================
   COMPARE CARD 追加ユーティリティ（inline-style撤去用）
   ============================================================ */
.svc-plan__cta--spaced { margin-top:18px; }
.svc-plan__cta--ink { background:#0F172A; }
.svc-plan__cta--ink:hover { background:#1E293B; }

/* ============================================================
   AUTHOR / 監修者カード（E-E-A-T可視化）
   ============================================================ */
.svc-author-section { padding:72px 0; }
.svc-author-card { background:#fff; border:1px solid #E2E8F0; border-radius:20px; padding:32px 36px; box-shadow:0 8px 28px rgba(15,23,42,.06); position:relative; }
.svc-author-card__badge { position:absolute; top:-12px; left:28px; background:#2563EB; color:#fff; font-family:'Inter',sans-serif; font-size:11px; font-weight:800; letter-spacing:.2em; padding:6px 14px; border-radius:6px; box-shadow:0 4px 12px rgba(37,99,235,.3); }
.svc-author-card__body { display:grid; grid-template-columns:80px 1fr; gap:24px; align-items:start; margin-top:8px; }
.svc-author-card__photo { width:80px; height:80px; background:linear-gradient(135deg,#2563EB 0%,#1D4ED8 100%); color:#fff; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:'Inter',sans-serif; font-size:26px; font-weight:900; letter-spacing:.02em; box-shadow:0 8px 20px rgba(37,99,235,.3); flex-shrink:0; }
.svc-author-card__info { flex:1; min-width:0; }
.svc-author-card__label { font-size:12px; font-weight:800; color:#2563EB; letter-spacing:.18em; margin:0 0 6px; text-transform:uppercase; font-family:'Inter',sans-serif; }
.svc-author-card__name { font-size:22px; font-weight:900; color:#0F172A; margin:0 0 14px; letter-spacing:-0.01em; }
.svc-author-card__kana { font-size:13px; font-weight:600; color:#64748B; margin-left:8px; letter-spacing:.02em; }
.svc-author-card__desc { font-size:14px; color:#475569; line-height:1.95; margin:0 0 16px; }
.svc-author-card__tags { list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:8px; }
.svc-author-card__tags li { font-size:12px; font-weight:700; color:#2563EB; background:#EFF6FF; border:1px solid #DBEAFE; padding:4px 12px; border-radius:100px; letter-spacing:.02em; }
@media (max-width:640px) {
  .svc-author-card { padding:28px 22px; }
  .svc-author-card__body { grid-template-columns:1fr; gap:18px; text-align:center; }
  .svc-author-card__photo { margin:0 auto; }
  .svc-author-card__tags { justify-content:center; }
}

/* ============================================================
   スクロール演出 強化（scroll-timeline + reveal パターン）
   ============================================================ */
.svc-lp .svc-reveal { opacity:0; transform:translateY(32px); transition:opacity .8s cubic-bezier(.4,0,.2,1), transform .8s cubic-bezier(.4,0,.2,1); }
.svc-lp .svc-reveal.is-visible { opacity:1; transform:translateY(0); }

/* scroll-timeline 対応ブラウザ用（最新Chrome/Edge） */
@supports (animation-timeline:view()) {
  .svc-section__head, .svc-why-card, .svc-cmp-card, .svc-plan, .svc-cov__card, .svc-ba__row, .svc-flow__step, .svc-faq__item, .svc-cmp-table, .svc-author-card {
    animation:svcFadeUp .8s cubic-bezier(.4,0,.2,1) both;
    animation-timeline:view();
    animation-range:entry 5% entry 60%;
  }
  .svc-section__head > .svc-kicker { animation-delay:0s; }
  .svc-section__head > .svc-title { animation-delay:.08s; }
  .svc-section__head > .svc-lead { animation-delay:.16s; }
  /* 子要素stagger */
  .svc-why-grid > *:nth-child(1), .svc-plans > *:nth-child(1), .svc-cov > *:nth-child(1), .svc-flow > *:nth-child(1), .svc-ba > *:nth-child(1), .svc-cmp-cards > *:nth-child(1) { animation-delay:0s !important; }
  .svc-why-grid > *:nth-child(2), .svc-plans > *:nth-child(2), .svc-cov > *:nth-child(2), .svc-flow > *:nth-child(2), .svc-ba > *:nth-child(2), .svc-cmp-cards > *:nth-child(2) { animation-delay:.08s !important; }
  .svc-why-grid > *:nth-child(3), .svc-plans > *:nth-child(3), .svc-cov > *:nth-child(3), .svc-flow > *:nth-child(3), .svc-ba > *:nth-child(3) { animation-delay:.16s !important; }
  .svc-cov > *:nth-child(4), .svc-flow > *:nth-child(4), .svc-ba > *:nth-child(4) { animation-delay:.24s !important; }
  .svc-cov > *:nth-child(5) { animation-delay:.32s !important; }
  .svc-cov > *:nth-child(6) { animation-delay:.4s !important; }
}

/* Direct Answer box フェード */
.svc-direct-answer { animation:svcFadeUp .8s cubic-bezier(.4,0,.2,1) .2s both; }