/* ============================================================
   Development Page - SWELL Native Custom CSS
   Scoped under .dev-page to avoid SWELL conflicts
   ============================================================ */

:root {
  --dev-dark: #000000;
  --dev-dark2: #141414;
  --dev-dark3: #1a1a1a;
  --dev-accent: #D4943D;
  --dev-text-light: #ffffff;
  --dev-text-muted: #cccccc;
  --dev-text-dark: #333333;
  --dev-text-gray: #666666;
  --dev-font-jp: 'Noto Sans JP', sans-serif;
  --dev-font-en: 'Poppins', 'Inter', sans-serif;
}

/* === Reset SWELL wrappers for full-width === */
body.page-id-10969 .l-mainContent__inner,
body.page-id-10969 .l-content.l-container,
body.page-id-10969 .l-mainContent { max-width: 100% !important; padding: 0 !important; }
body.page-id-10969 .post_content { max-width: 100% !important; padding: 0 !important; }
body.page-id-10969 .c-pageTitle,
body.page-id-10969 .p-breadcrumb { display: none !important; }
body.page-id-10969 article { max-width: 100% !important; }

/* === Base === */
.dev-page { font-family: var(--dev-font-jp); color: var(--dev-text-dark); line-height: 1.8; overflow-x: hidden; }
.dev-page * { box-sizing: border-box; }
.dev-page img { max-width: 100%; height: auto; display: block; }
.dev-page a { text-decoration: none; color: inherit; }

/* === Section Common === */
.dev-sec { width: 100vw; margin-left: calc(-50vw + 50%); padding: 80px 40px; position: relative; }
.dev-sec--dark { background: var(--dev-dark); color: var(--dev-text-light); }
.dev-sec--dark2 { background: var(--dev-dark2); color: var(--dev-text-light); }
.dev-sec--gray { background: #f5f5f5; }
.dev-inner { max-width: 1100px; margin: 0 auto; }

/* === Section Header === */
.dev-sec__label { font-family: var(--dev-font-en); font-size: 14px; font-weight: 600; letter-spacing: 3px; text-transform: uppercase; color: var(--dev-accent); margin-bottom: 12px; }
.dev-sec__title { font-size: 32px; font-weight: 700; line-height: 1.4; margin-bottom: 16px; }
.dev-sec__sub { font-size: 15px; color: var(--dev-text-muted); margin-bottom: 40px; }
.dev-sec--dark .dev-sec__sub,
.dev-sec--dark2 .dev-sec__sub { color: var(--dev-text-muted); }

/* === Buttons === */
.dev-btn { display: inline-flex; align-items: center; justify-content: center; padding: 16px 40px; border-radius: 50px; font-weight: 700; font-size: 15px; transition: opacity .3s; }
.dev-btn:hover { opacity: .85; }
.dev-btn--accent { background: var(--dev-accent); color: #fff; }
.dev-btn--outline { border: 2px solid var(--dev-accent); color: var(--dev-accent); background: transparent; }
.dev-btn--white { background: #fff; color: var(--dev-text-dark); }
.dev-btn-wrap { text-align: center; margin-top: 40px; }

/* ============================================================
   1. HERO
   ============================================================ */
.dev-hero { width: 100vw; margin-left: calc(-50vw + 50%); min-height: 90vh; display: flex; align-items: center; justify-content: center; text-align: center; color: #fff; position: relative; background: url('https://walker-s.co.jp/wp-content/uploads/2024/05/building-scaled.jpeg') center right / cover no-repeat; }
.dev-hero::before { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, #000 0%, rgba(0,0,0,.8) 100%); }
.dev-hero__inner { position: relative; z-index: 1; max-width: 900px; padding: 60px 20px; }
.dev-hero__heading { font-size: 48px; font-weight: 700; line-height: 1.4; margin-bottom: 40px; }
.dev-hero__heading .accent { color: var(--dev-accent); display: block; font-size: 64px; }
.dev-hero__desc { font-size: 16px; line-height: 2; color: var(--dev-text-muted); }
.dev-hero__subtitle { font-size: 20px; font-weight: 700; margin-top: 48px; color: #fff; }

/* ============================================================
   2. VIDEO
   ============================================================ */
.dev-video__wrap { max-width: 800px; margin: 0 auto 32px; aspect-ratio: 16/9; }
.dev-video__wrap iframe { width: 100%; height: 100%; border: 0; }

/* ============================================================
   3. PAIN POINTS
   ============================================================ */
.dev-pain__heading { font-size: 28px; font-weight: 700; text-align: center; margin-bottom: 40px; color: #fff; }
.dev-pain__heading strong { color: var(--dev-accent); }
.dev-pain__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; max-width: 900px; margin: 0 auto; }
.dev-pain__grid img { width: 100%; }

/* ============================================================
   4. THREE STRENGTHS
   ============================================================ */
.dev-strengths__lead { font-size: 32px; font-weight: 700; text-align: center; margin-bottom: 48px; color: #fff; }
.dev-strengths__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.dev-strength { text-align: center; }
.dev-strength__icon { width: 64px; height: 64px; margin: 0 auto 20px; }
.dev-strength__title { font-size: 18px; font-weight: 700; margin-bottom: 12px; color: #fff; }
.dev-strength__title .accent { color: var(--dev-accent); }
.dev-strength__desc { font-size: 14px; color: var(--dev-text-muted); line-height: 1.8; }

/* ============================================================
   5. REASON
   ============================================================ */
.dev-reason { margin-bottom: 64px; display: flex; align-items: center; gap: 48px; }
.dev-reason:nth-child(even) { flex-direction: row-reverse; }
.dev-reason__text { flex: 1; }
.dev-reason__num { font-family: var(--dev-font-en); font-size: 14px; font-weight: 600; color: var(--dev-accent); letter-spacing: 2px; margin-bottom: 8px; }
.dev-reason__title { font-size: 24px; font-weight: 700; line-height: 1.5; margin-bottom: 16px; }
.dev-reason__title .accent { color: var(--dev-accent); }
.dev-reason__desc { font-size: 15px; line-height: 1.8; color: var(--dev-text-muted); }
.dev-reason__img { flex: 1; }
.dev-reason__img img { border-radius: 8px; }
.dev-reason--text-only { display: block; }
.dev-reason--text-only .dev-reason__desc { max-width: 800px; }

/* ============================================================
   6. COMPANY
   ============================================================ */
.dev-company__logos { margin-top: 32px; }
.dev-company__logos img { width: 100%; }
.dev-company__note { font-size: 13px; color: var(--dev-text-gray); margin-top: 8px; text-align: right; }

/* ============================================================
   7. EXAMPLE / 8. VOICE
   ============================================================ */
.dev-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.dev-card { background: #fff; border-radius: 12px; overflow: hidden; box-shadow: 0 2px 12px rgba(0,0,0,.06); transition: transform .3s; }
.dev-card:hover { transform: translateY(-4px); }
.dev-card__img { aspect-ratio: 16/9; overflow: hidden; }
.dev-card__img img { width: 100%; height: 100%; object-fit: cover; }
.dev-card__body { padding: 20px; }
.dev-card__title { font-size: 14px; font-weight: 700; line-height: 1.6; margin-bottom: 8px; }
.dev-card__company { font-size: 13px; color: var(--dev-text-gray); }

/* ============================================================
   9. MEMBERS
   ============================================================ */
.dev-members { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.dev-member { text-align: center; }
.dev-member__name { font-size: 18px; font-weight: 700; margin-bottom: 4px; }
.dev-member__role { font-size: 13px; color: var(--dev-accent); font-weight: 600; margin-bottom: 12px; }
.dev-member__desc { font-size: 13px; color: var(--dev-text-muted); line-height: 1.7; text-align: left; }

/* ============================================================
   10. FLOW
   ============================================================ */
.dev-flow { max-width: 700px; margin: 0 auto; }
.dev-flow__item { display: flex; gap: 24px; position: relative; padding-bottom: 40px; }
.dev-flow__item:not(:last-child)::after { content: ''; position: absolute; left: 24px; top: 52px; width: 2px; height: calc(100% - 52px); background: var(--dev-accent); opacity: .3; }
.dev-flow__num { flex-shrink: 0; width: 48px; height: 48px; border-radius: 50%; background: var(--dev-accent); color: #fff; display: flex; align-items: center; justify-content: center; font-family: var(--dev-font-en); font-weight: 700; font-size: 14px; }
.dev-flow__content { flex: 1; padding-top: 4px; }
.dev-flow__title { font-size: 18px; font-weight: 700; margin-bottom: 8px; }
.dev-flow__desc { font-size: 14px; color: var(--dev-text-muted); }

/* ============================================================
   11. Q&A
   ============================================================ */
.dev-faq { max-width: 800px; margin: 0 auto; }
.dev-faq__item { border-bottom: 1px solid rgba(255,255,255,.15); }
.dev-faq__item summary { padding: 20px 0; font-size: 16px; font-weight: 700; cursor: pointer; list-style: none; display: flex; align-items: center; gap: 12px; }
.dev-faq__item summary::before { content: 'Q'; flex-shrink: 0; width: 32px; height: 32px; border-radius: 50%; background: var(--dev-accent); color: #fff; display: flex; align-items: center; justify-content: center; font-family: var(--dev-font-en); font-weight: 700; font-size: 14px; }
.dev-faq__item summary::after { content: '+'; margin-left: auto; font-size: 24px; color: var(--dev-text-muted); transition: transform .3s; }
.dev-faq__item[open] summary::after { transform: rotate(45deg); }
.dev-faq__answer { padding: 0 0 20px 44px; font-size: 15px; line-height: 1.8; color: var(--dev-text-muted); }

/* ============================================================
   12. MEDIA
   ============================================================ */
.dev-media-blocks { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.dev-media-block { background: #fff; border-radius: 12px; padding: 32px 24px; text-align: center; }
.dev-media-block__title { font-size: 18px; font-weight: 700; margin-bottom: 12px; color: var(--dev-text-dark); }
.dev-media-block__desc { font-size: 14px; color: var(--dev-text-gray); margin-bottom: 20px; line-height: 1.7; }
.dev-media-block__link { font-weight: 700; color: var(--dev-accent); }

/* ============================================================
   13. BOTTOM CTA
   ============================================================ */
.dev-cta-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.dev-cta-block { text-align: center; padding: 48px 24px; background: #fff; border-radius: 12px; }
.dev-cta-block__title { font-size: 22px; font-weight: 700; margin-bottom: 12px; }
.dev-cta-block__desc { font-size: 14px; color: var(--dev-text-gray); margin-bottom: 24px; line-height: 1.7; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1024px) {
  .dev-sec { padding: 60px 24px; }
  .dev-hero__heading { font-size: 36px; }
  .dev-hero__heading .accent { font-size: 48px; }
  .dev-reason { gap: 32px; }
  .dev-reason__title { font-size: 20px; }
}

@media (max-width: 768px) {
  .dev-sec { padding: 48px 16px; }
  .dev-hero { min-height: 70vh; }
  .dev-hero__heading { font-size: 28px; }
  .dev-hero__heading .accent { font-size: 36px; }
  .dev-hero__desc { font-size: 14px; }
  .dev-sec__title { font-size: 24px; }
  .dev-pain__grid { grid-template-columns: 1fr; max-width: 300px; }
  .dev-strengths__grid { grid-template-columns: 1fr; gap: 40px; }
  .dev-reason, .dev-reason:nth-child(even) { flex-direction: column; }
  .dev-cards { grid-template-columns: 1fr; }
  .dev-members { grid-template-columns: 1fr; }
  .dev-media-blocks { grid-template-columns: 1fr; }
  .dev-cta-grid { grid-template-columns: 1fr; }
  .dev-flow__item:not(:last-child)::after { left: 24px; }
}
