/* WEB代行ページ visual refinement layer — content and structure are unchanged. */
:root {
  --wp-navy: #07376f;
  --wp-deep: #032752;
  --wp-blue: #0962bd;
  --wp-sky: #eaf4fd;
  --wp-pale: #f5f8fc;
  --wp-orange: #f47a18;
  --wp-text: #172b40;
  --wp-muted: #64778c;
  --wp-line: #d8e4ef;
  --wp-shadow: 0 16px 45px rgba(5, 50, 96, .1);
}

#main { color: var(--wp-text); }
#main > section:not(.web-hero) { position: relative; }
#main > section:not(.web-hero) > .container { width: min(1120px, calc(100% - 48px)); }

/* Shared headings */
#main .section-title {
  color: var(--wp-navy);
  font-size: clamp(1.9rem, 3vw, 2.65rem);
  font-weight: 800;
  line-height: 1.4;
  letter-spacing: .025em;
  text-align: center;
  margin: 0;
}
#main .section-title-bar {
  width: 44px;
  height: 3px;
  margin: 18px auto 48px;
  border-radius: 999px;
  background: var(--wp-blue);
}

/* Hero */
#main .web-hero {
  color: #fff;
  background:
    radial-gradient(circle at 10% 15%, rgba(55, 141, 226, .22), transparent 32%),
    linear-gradient(118deg, var(--wp-deep) 0%, var(--wp-navy) 52%, #edf5fb 52%, #edf5fb 100%);
}
#main .web-hero-inner {
  min-height: 760px;
  align-items: center;
  gap: 72px;
  padding-top: 190px;
  padding-bottom: 72px;
}
#main .web-hero-content { position: relative; z-index: 2; }
#main .web-hero-eyebrow { color: #9acbfa; font-size: 12px; }
#main .web-hero-eyebrow::before {
  content: "";
  width: 28px;
  height: 1px;
  background: currentColor;
}
#main .web-hero-eyebrow span { color: rgba(255,255,255,.35); }
#main .web-hero-title {
  color: #fff;
  font-size: clamp(2.2rem, 3.8vw, 3.45rem);
  line-height: 1.35;
  letter-spacing: .02em;
  margin-bottom: 25px;
}
#main .web-hero-lead {
  color: rgba(255,255,255,.84);
  font-size: 15px;
  line-height: 2;
  max-width: 590px;
}
#main .web-hero-price {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 5px 20px;
  max-width: 500px;
  padding: 22px 25px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 8px;
  background: rgba(255,255,255,.09);
  box-shadow: none;
  backdrop-filter: blur(8px);
}
#main .web-hero-price-badge {
  grid-row: 1 / 3;
  align-self: center;
  color: #fff;
  background: var(--wp-orange);
  border-radius: 4px;
  margin: 0;
}
#main .web-hero-price-num,
#main .web-hero-price-unit { color: #fff; }
#main .web-hero-price-num { font-size: 42px; }
#main .web-hero-price-note {
  grid-column: 2;
  color: rgba(255,255,255,.65);
  margin: 0;
}
#main .web-hero-stats {
  max-width: 500px;
  border-top: 1px solid rgba(255,255,255,.16);
  padding-top: 23px;
}
#main .web-hero-stat { border-color: rgba(255,255,255,.2); }
#main .web-hero-stat-num { color: #fff; font-size: 29px; }
#main .web-hero-stat-num small { color: #a7d4ff; }
#main .web-hero-stat-label { color: rgba(255,255,255,.65); }
#main .web-hero-cta {
  min-height: 58px;
  padding: 15px 30px;
  border-radius: 6px;
  color: #fff;
  background: var(--wp-orange);
  box-shadow: 0 12px 28px rgba(244, 122, 24, .25);
}
#main .web-hero-cta:hover { color: #fff; background: #e96b0b; transform: translateY(-2px); }
#main .web-hero-visual { flex-basis: 480px; max-width: 480px; }
#main .web-hero-img-wrap {
  position: relative;
  border: 10px solid rgba(255,255,255,.9);
  border-radius: 10px;
  box-shadow: 0 30px 70px rgba(3, 39, 82, .25);
}
#main .web-hero-img-wrap::after {
  content: "230社以上の支援実績";
  position: absolute;
  right: -22px;
  bottom: 24px;
  padding: 13px 18px;
  color: var(--wp-navy);
  background: #fff;
  border-left: 4px solid var(--wp-orange);
  box-shadow: var(--wp-shadow);
  font-size: 13px;
  font-weight: 800;
}

/* Problems */
#main .web-problems { padding: 100px 0; background: #fff; }
#main .web-problem-cards { gap: 18px; }
#main .web-problem-card {
  min-height: 250px;
  padding: 34px 27px;
  border: 1px solid var(--wp-line);
  border-radius: 6px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(7,55,111,.045);
}
#main .web-problem-card::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 3px;
  background: var(--wp-blue);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .25s ease;
}
#main .web-problem-card:hover { transform: translateY(-5px); box-shadow: var(--wp-shadow); }
#main .web-problem-card:hover::after { transform: scaleX(1); }
#main .web-problem-num { color: var(--wp-blue); font-size: 13px; letter-spacing: .14em; }
#main .web-problem-title { color: var(--wp-navy); font-size: 1.12rem; }
#main .web-problem-text { color: var(--wp-muted); line-height: 1.9; }

/* Comparison */
#main .web-solution { padding: 100px 0; background: var(--wp-pale); }
#main .web-solution-lead { max-width: 820px; color: var(--wp-text); font-size: 1rem; }
#main .web-solution-compare { gap: 24px; max-width: 980px; margin-inline: auto; }
#main .web-solution-item { border-radius: 8px; padding: 38px 40px; }
#main .web-solution-item--bad { background: #fff; border: 1px solid var(--wp-line); }
#main .web-solution-item--good {
  position: relative;
  background: linear-gradient(145deg, var(--wp-navy), var(--wp-deep));
  box-shadow: 0 20px 45px rgba(3,39,82,.18);
}
#main .web-solution-item--good::before {
  content: "RECOMMENDED";
  position: absolute;
  top: 0;
  right: 24px;
  padding: 5px 14px;
  color: #fff;
  background: var(--wp-orange);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .1em;
}

/* Reasons */
#main .web-reasons { padding: 100px 0; background: #fff; }
#main .web-reason-cards { gap: 22px; }
#main .web-reason-card {
  min-height: 330px;
  padding: 38px 31px;
  border: 1px solid var(--wp-line);
  border-radius: 7px;
  background: linear-gradient(180deg, #fff 0%, #f9fbfd 100%);
}
#main .web-reason-card-icon {
  width: 52px;
  height: 52px;
  color: #fff;
  background: var(--wp-blue);
  border-radius: 50%;
  font-size: 13px;
}
#main .web-reason-card-title { color: var(--wp-navy); font-size: 1.2rem; line-height: 1.65; }
#main .web-reason-card-text { color: var(--wp-muted); line-height: 1.95; }

/* Lineup */
#main .web-lineup { padding: 100px 0; background: var(--wp-sky); }
#main .web-lineup-lead { color: var(--wp-muted); }
#main .web-lineup-grid { gap: 12px; }
#main .web-lineup-item {
  min-height: 170px;
  padding: 25px 18px;
  border: 1px solid rgba(9,98,189,.13);
  border-radius: 6px;
  background: rgba(255,255,255,.88);
}
#main .web-lineup-item:hover { border-color: var(--wp-blue); transform: translateY(-4px); }
#main .web-lineup-icon {
  width: 48px;
  height: 48px;
  margin-bottom: 14px;
  color: var(--wp-blue);
  background: #edf6ff;
  border-radius: 50%;
}
#main .web-lineup-item-title { color: var(--wp-navy); }

/* Detailed services */
#main .web-service-detail { padding: 105px 0; background: #fff; }
#main .web-service-detail-lead { color: var(--wp-muted); }
#main .web-service-detail-grid { gap: 18px; }
#main .web-service-detail-item {
  padding: 32px;
  border: 1px solid var(--wp-line);
  border-radius: 7px;
  background: #fff;
  box-shadow: 0 8px 25px rgba(7,55,111,.045);
}
#main .web-service-detail-item:hover { border-color: #a9c9e8; box-shadow: var(--wp-shadow); }
#main .web-service-detail-header { padding-bottom: 18px; border-bottom: 1px solid var(--wp-line); }
#main .web-service-detail-icon {
  width: 48px;
  height: 48px;
  color: #fff;
  background: var(--wp-blue);
  border-radius: 5px;
}
#main .web-service-detail-title { color: var(--wp-navy); font-size: 1.12rem; }
#main .web-service-detail-title .service-num { color: var(--wp-blue); }
#main .web-service-detail-desc { color: var(--wp-text); line-height: 1.9; }
#main .web-service-detail-item li { color: var(--wp-muted); }

/* AI */
#main .web-ai {
  padding: 100px 0;
  background:
    radial-gradient(circle at 85% 20%, rgba(72,148,225,.2), transparent 35%),
    linear-gradient(135deg, var(--wp-deep), var(--wp-navy));
}
#main .web-ai .section-title { color: #fff; }
#main .web-ai .section-title-bar { background: #7dbcf6; }
#main .web-ai-lead { color: rgba(255,255,255,.76); }
#main .web-ai-cards { gap: 16px; }
#main .web-ai-card {
  padding: 32px 28px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 7px;
  background: rgba(255,255,255,.075);
  box-shadow: none;
}
#main .web-ai-card:hover { background: rgba(255,255,255,.12); transform: translateY(-4px); }
#main .web-ai-card-title { color: #fff; }
#main .web-ai-card p { color: rgba(255,255,255,.72); }

/* Case studies */
#main .web-cases { padding: 105px 0; background: var(--wp-pale); }
#main .web-case-grid { gap: 22px; }
#main .web-case-card {
  overflow: hidden;
  border: 1px solid var(--wp-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(7,55,111,.06);
}
#main .web-case-card-header { padding: 22px 27px; background: var(--wp-navy); }
#main .web-case-company { color: #fff; }
#main .web-case-body { padding: 28px; }
#main .web-case-label { letter-spacing: .09em; }
#main .web-case-results {
  padding-top: 22px;
  border-top: 1px solid var(--wp-line);
  background: transparent;
}
#main .web-case-result { background: var(--wp-sky); border-radius: 5px; }
#main .web-case-result-num { color: var(--wp-blue); }

/* Pricing */
#main .web-pricing {
  padding: 105px 0;
  background: linear-gradient(135deg, var(--wp-deep), var(--wp-navy));
}
#main .web-pricing .section-title { color: #fff; }
#main .web-pricing .section-title-bar { background: #7dbcf6; }
#main .web-pricing-box {
  max-width: 850px;
  padding: 50px 58px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 28px 70px rgba(0,0,0,.2);
}
#main .web-pricing-label { color: var(--wp-blue); letter-spacing: .12em; }
#main .web-pricing-price { color: var(--wp-navy); }
#main .web-pricing-campaign {
  border: 1px solid #ffd5b3;
  border-radius: 6px;
  background: #fff5ec;
}
#main .web-pricing-campaign-title { color: var(--wp-orange); }
#main .web-pricing-campaign strong { color: var(--wp-orange); }

/* Flow */
#main .web-flow { padding: 105px 0; background: #fff; }
#main .web-flow-steps { gap: 13px; }
#main .web-flow-steps::before { background: #bdd7ef; }
#main .web-flow-step {
  min-height: 215px;
  padding: 29px 20px;
  border: 1px solid var(--wp-line);
  border-radius: 6px;
  background: #fff;
}
#main .web-flow-step-num {
  color: #fff;
  background: var(--wp-blue);
  box-shadow: 0 0 0 7px #fff;
}
#main .web-flow-step-title { color: var(--wp-navy); }

/* Final CTA */
#main .web-cta {
  padding: 95px 0;
  background:
    linear-gradient(rgba(3,39,82,.9), rgba(3,39,82,.94)),
    url("images/outsourcing-image.webp") center / cover no-repeat;
}
#main .web-cta-title { color: #fff; font-size: clamp(1.9rem, 3vw, 2.7rem); }
#main .web-cta-text { color: rgba(255,255,255,.76); }
#main .web-cta .btn-secondary {
  min-width: 300px;
  min-height: 60px;
  border: 0;
  border-radius: 6px;
  color: #fff;
  background: var(--wp-orange);
  box-shadow: 0 12px 28px rgba(244,122,24,.26);
}
#main .web-cta .btn-secondary:hover { background: #e96b0b; transform: translateY(-2px); }

@media (max-width: 1024px) {
  #main .web-hero { background: linear-gradient(145deg, var(--wp-deep), var(--wp-navy)); }
  #main .web-hero-inner { min-height: auto; gap: 42px; }
  #main .web-hero-visual { flex-basis: 40%; }
  #main .web-hero-img-wrap::after { right: 12px; }
}

@media (max-width: 768px) {
  #main > section:not(.web-hero) > .container { width: calc(100% - 32px); }
  #main .section-title { font-size: 1.75rem; }
  #main .section-title-bar { margin-bottom: 34px; }
  #main .web-hero-inner { padding: 108px 16px 55px; gap: 34px; }
  #main .web-hero-visual { width: 100%; max-width: none; }
  #main .web-hero-img-wrap { border-width: 6px; }
  #main .web-hero-price { grid-template-columns: 1fr; }
  #main .web-hero-price-badge { grid-row: auto; justify-self: start; }
  #main .web-hero-price-note { grid-column: auto; }
  #main .web-hero-cta { width: 100%; justify-content: center; }
  #main .web-problems,
  #main .web-solution,
  #main .web-reasons,
  #main .web-lineup,
  #main .web-service-detail,
  #main .web-ai,
  #main .web-cases,
  #main .web-pricing,
  #main .web-flow { padding: 70px 0; }
  #main .web-problem-card,
  #main .web-reason-card { min-height: auto; }
  #main .web-solution-item { padding: 30px 24px; }
  #main .web-pricing-box { padding: 38px 22px; }
  #main .web-flow-step { min-height: auto; }
}

@media (max-width: 480px) {
  #main .web-hero-title { font-size: 2rem; }
  #main .web-hero-lead { font-size: 14px; }
  #main .web-hero-stats { display: grid; grid-template-columns: repeat(3, 1fr); }
  #main .web-hero-stat { padding: 0 8px; margin: 0; text-align: center; }
  #main .web-hero-stat-num { font-size: 22px; }
  #main .web-hero-img-wrap::after { right: 8px; bottom: 12px; font-size: 11px; }
  #main .web-service-detail-item { padding: 25px 20px; }
  #main .web-cta .btn-secondary { min-width: 0; width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  #main .web-problem-card,
  #main .web-lineup-item,
  #main .web-ai-card,
  #main .web-hero-cta { transition: none; }
}
