/* ============================================================
   PROOF. Services Page
   ============================================================ */

/* Plans Section */
.svc-plans { padding: var(--section-py) var(--pad-x); border-bottom: var(--border); background: #f4f4f0; color: var(--c-manifesto-text); }
.svc-plans .section-label { color: #444; }
.svc-plans .section-label::before { background: #0a0a0a; }
.svc-plans .section-head h2 { color: var(--c-manifesto-text); }
.svc-plans .section-head p { color: var(--c-manifesto-mute); }

.svc-plans-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: var(--sp-16); }
@media (max-width: 719px) { .svc-plans-grid { grid-template-columns: 1fr; } }

.svc-plan-card { background: #fff; border: 1px solid var(--c-manifesto-line); padding: 48px 40px; display: flex; flex-direction: column; gap: var(--sp-5); transition: border-color var(--ease); }
.svc-plan-card:hover { border-color: #0a0a0a; }
.svc-plan-card--coming { opacity: 0.6; background: #f0f0ec; }
.svc-plan-card--coming:hover { border-color: var(--c-manifesto-line); }
@media (max-width: 719px) { .svc-plan-card { padding: var(--sp-8) var(--sp-6); } }

.svc-plan-card-top { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-4); flex-wrap: wrap; }
.svc-plan-label { font-family: var(--font-mono); font-size: var(--text-xs); color: #444; letter-spacing: var(--tracking-widest); text-transform: uppercase; font-weight: var(--weight-bold); }
.svc-plan-badge { font-family: var(--font-mono); font-size: var(--text-2xs); letter-spacing: var(--tracking-wide); text-transform: uppercase; font-weight: var(--weight-bold); padding: 3px 10px; }
.svc-plan-badge--monitor { background: #0a0a0a; color: #e8ff00; }
.svc-plan-badge--soon { border: 1px solid #aaa; color: #888; }

.svc-plan-name { font-weight: var(--weight-heavy); font-size: clamp(22px, 3vw, 28px); letter-spacing: -0.02em; line-height: 1.2; color: var(--c-manifesto-text); }
.svc-plan-en { font-family: var(--font-mono); font-size: var(--text-xs); color: #888; letter-spacing: var(--tracking-wide); text-transform: uppercase; margin-top: calc(-1 * var(--sp-3)); }

.svc-plan-price-block { border-top: 1px solid var(--c-manifesto-line); padding-top: var(--sp-5); display: flex; flex-direction: column; gap: var(--sp-2); }
.svc-plan-price-main { font-family: var(--font-display); font-size: clamp(28px, 4vw, 40px); letter-spacing: -0.03em; color: var(--c-manifesto-text); line-height: 1; }
.svc-plan-price-note { font-family: var(--font-mono); font-size: var(--text-xs); color: #666; line-height: 1.6; }
.svc-plan-price-note strong { color: #333; font-weight: var(--weight-bold); }

.svc-plan-includes { list-style: none; flex: 1; display: flex; flex-direction: column; gap: var(--sp-2); }
.svc-plan-includes li { font-size: var(--text-sm); color: var(--c-manifesto-mute); padding-left: var(--sp-5); position: relative; line-height: 1.6; }
.svc-plan-includes li::before { content: '—'; position: absolute; left: 0; color: #0a0a0a; }

.svc-plan-addon { border-top: 1px solid var(--c-manifesto-line); padding-top: var(--sp-4); margin-top: var(--sp-4); }
.svc-plan-addon-label { font-family: var(--font-mono); font-size: var(--text-2xs); letter-spacing: var(--tracking-wider); color: #888; font-weight: 700; margin-bottom: var(--sp-2); }
.svc-plan-addon ul { list-style: none; padding: 0; margin: 0; }
.svc-plan-addon li { font-family: var(--font-mono); font-size: var(--text-2xs); color: #555; line-height: 2; letter-spacing: 0.02em; padding-left: var(--sp-4); position: relative; }
.svc-plan-addon li::before { content: '+'; position: absolute; left: 0; color: #0a0a0a; font-weight: 700; }

.svc-plan-target { font-family: var(--font-mono); font-size: var(--text-xs); color: #555; letter-spacing: var(--tracking-wide); border-top: 1px solid var(--c-manifesto-line); padding-top: var(--sp-4); }
.svc-plan-note { font-family: var(--font-mono); font-size: var(--text-2xs); color: #888; line-height: 1.8; letter-spacing: 0.02em; }
.svc-plan-cta { margin-top: var(--sp-3); display: block; text-align: center; }
.svc-plan-cta.btn-primary { background: #0a0a0a; color: #f4f4f0; border-color: #0a0a0a; }
.svc-plan-cta.btn-primary:hover { background: transparent; color: #0a0a0a; }
.svc-plan-cta--disabled { cursor: default; pointer-events: none; color: #aaa; border-color: #ddd; }

.svc-plans-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: var(--sp-16); }
@media (max-width: 719px) { .svc-plans-grid { grid-template-columns: 1fr; } }
.svc-plans-grid--single { grid-template-columns: 1fr; }
@media (max-width: 719px) {
  .svc-plans-grid--single { grid-template-columns: 1fr; }
  [style*="grid-template-columns:repeat(2,1fr)"] { grid-template-columns: 1fr !important; }
  [style*="grid-template-columns:repeat(3,1fr)"] { grid-template-columns: 1fr !important; }
}

/* Options Section */
.svc-options { padding: var(--section-py) var(--pad-x); border-bottom: var(--border); background: var(--c-bg); }
.svc-options .section-inner { max-width: var(--max-w); margin: 0 auto; }

.svc-options-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  margin-top: var(--sp-16);
}
@media (max-width: 719px) { .svc-options-grid { grid-template-columns: 1fr; } }

.svc-option-card {
  border: var(--border);
  padding: 32px 28px;
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
  background: var(--c-surface-1);
  transition: border-color var(--ease);
}
.svc-option-card:hover { border-color: var(--c-accent); }

.svc-option-tag {
  font-family: var(--font-mono);
  font-size: var(--text-2xs);
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  font-weight: var(--weight-bold);
  color: var(--c-accent);
}
.svc-option-card h4 {
  font-weight: var(--weight-heavy);
  font-size: clamp(16px, 2vw, 20px);
  letter-spacing: -0.01em;
  line-height: 1.3;
  color: var(--c-ink);
}
.svc-option-price {
  font-family: var(--font-display);
  font-size: clamp(22px, 3vw, 30px);
  letter-spacing: -0.02em;
  color: var(--c-ink);
  line-height: 1;
}
.svc-option-price span {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  color: var(--c-mute);
  font-weight: normal;
  letter-spacing: 0;
}
.svc-option-card p {
  font-size: var(--text-sm);
  color: var(--c-mute);
  line-height: var(--leading-relaxed);
  flex: 1;
}
.svc-option-note {
  font-family: var(--font-mono);
  font-size: var(--text-2xs);
  color: #666;
  letter-spacing: 0.02em;
  border-top: var(--border);
  padding-top: var(--sp-3);
  margin-top: var(--sp-1);
}

/* Combos */
.svc-combos { margin-top: var(--sp-20); }
.svc-combos-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: var(--sp-6);
}
@media (max-width: 899px) { .svc-combos-grid { grid-template-columns: 1fr; max-width: 480px; } }

.svc-combo-card {
  background: #f4f4f0;
  border: 1px solid var(--c-manifesto-line);
  padding: 28px 24px;
  display: flex;
  flex-direction: column;
  gap: var(--sp-4);
  color: var(--c-manifesto-text);
}
.svc-combo-name {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  font-weight: var(--weight-bold);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: #333;
}
.svc-combo-card ul {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  flex: 1;
}
.svc-combo-card li {
  font-size: var(--text-sm);
  color: var(--c-manifesto-mute);
  display: flex;
  justify-content: space-between;
  gap: var(--sp-4);
  line-height: 1.6;
}
.svc-combo-card li span {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  color: #333;
  font-weight: var(--weight-bold);
  white-space: nowrap;
}
.svc-combo-total {
  font-family: var(--font-display);
  font-size: clamp(20px, 3vw, 26px);
  letter-spacing: -0.02em;
  color: var(--c-manifesto-text);
  border-top: 1px solid var(--c-manifesto-line);
  padding-top: var(--sp-4);
  line-height: 1;
}

/* Motion Section */
.svc-motion { padding: var(--section-py) var(--pad-x); border-bottom: var(--border); }
.svc-motion .section-inner { max-width: var(--max-w); margin: 0 auto; }
.svc-motion-inner { display: grid; grid-template-columns: 2fr 1fr; gap: var(--sp-16); align-items: center; }
@media (max-width: 719px) { .svc-motion-inner { grid-template-columns: 1fr; } }
.svc-motion-text h2 { font-family: var(--font-display); font-size: clamp(40px, 7vw, 72px); letter-spacing: var(--tracking-tight); line-height: 1.05; margin-bottom: var(--sp-5); }
.svc-motion-text h2 .dot { color: var(--c-accent); }
.svc-motion-text p { font-size: var(--text-base); color: var(--c-mute); line-height: var(--leading-relaxed); max-width: 52ch; }
.svc-motion-price { border: var(--border-accent); padding: var(--sp-8); background: radial-gradient(ellipse at 30% 30%, rgba(232,255,0,0.05), transparent 70%); }
.svc-motion-price-num { font-family: var(--font-display); font-size: clamp(28px, 4vw, 40px); color: var(--c-accent); letter-spacing: var(--tracking-tight); line-height: 1; margin-bottom: var(--sp-3); }
.svc-motion-price-label { font-family: var(--font-mono); font-size: var(--text-xs); color: var(--c-mute); letter-spacing: var(--tracking-wider); text-transform: uppercase; line-height: 1.8; }



.service-overview { padding: var(--section-py) var(--pad-x); border-bottom: var(--border); }
.service-overview-grid { display: grid; grid-template-columns: 1fr; gap: var(--gap-xl); align-items: start; }
@media (min-width: 720px) { .service-overview-grid { grid-template-columns: 1fr 1fr; } }

.service-cat-card { border: var(--border); padding: var(--sp-8); background: var(--c-surface-1); transition: all var(--ease); }
.service-cat-card:hover { border-color: var(--c-accent); background: #0f0f0a; }
.service-cat-card .num { font-family: var(--font-mono); font-size: var(--text-xs); color: var(--c-accent); letter-spacing: var(--tracking-wider); font-weight: var(--weight-bold); margin-bottom: var(--sp-4); }
.service-cat-card h3 { font-family: var(--font-display); font-size: clamp(36px,5vw,48px); letter-spacing: var(--tracking-tight); line-height: 1.1; margin-bottom: var(--sp-6); }
.service-cat-card h3 .dot { color: var(--c-accent); }
.service-cat-card p { font-size: var(--text-sm); color: var(--c-mute); line-height: var(--leading-relaxed); margin-bottom: var(--sp-6); }
.service-cat-card .tags { display: flex; gap: var(--sp-2); flex-wrap: wrap; margin-bottom: var(--sp-6); }
.service-cat-card .price { font-family: var(--font-mono); font-size: var(--text-sm); color: var(--c-accent); font-weight: var(--weight-bold); border-top: var(--border); padding-top: var(--sp-4); }

/* Photo Menu */
.photo-menu { padding: var(--section-py) var(--pad-x); border-bottom: var(--border); }
.menu-block { margin-bottom: var(--sp-16); }
.menu-block:last-child { margin-bottom: 0; }
.menu-block-head { display: flex; justify-content: space-between; align-items: flex-end; border-bottom: var(--border); padding-bottom: var(--sp-4); margin-bottom: var(--sp-6); flex-wrap: wrap; gap: var(--sp-4); }
.menu-block-title { font-weight: var(--weight-heavy); font-size: var(--text-xl); letter-spacing: var(--tracking-snug); display: flex; align-items: baseline; gap: var(--sp-4); }
.menu-block-title .letter { font-family: var(--font-display); font-size: clamp(28px,4vw,36px); color: var(--c-accent); letter-spacing: var(--tracking-tight); }
.menu-block-en { font-family: var(--font-mono); font-size: var(--text-2xs); color: var(--c-mute); letter-spacing: var(--tracking-wide); text-transform: uppercase; }
.menu-list { display: grid; gap: var(--grid-gap); background: var(--c-line); border: var(--border); }
.menu-row { display: flex; flex-direction: column; gap: var(--sp-2); padding: var(--sp-5); background: var(--c-bg); transition: background var(--ease); }
.menu-row:hover { background: #0f0f0f; }
@media (min-width: 720px) { .menu-row { display: grid; grid-template-columns: 1fr 2fr auto; gap: var(--sp-6); align-items: center; padding: var(--sp-6) var(--sp-8); } }
.menu-row-name { font-weight: var(--weight-heavy); font-size: var(--text-md); letter-spacing: -0.01em; }
.menu-row-name span { display: block; font-family: var(--font-mono); font-size: var(--text-2xs); color: var(--c-mute); letter-spacing: var(--tracking-wide); text-transform: uppercase; font-weight: var(--weight-normal); margin-top: var(--sp-1); }
.menu-row-desc { font-size: var(--text-sm); color: var(--c-mute); line-height: var(--leading-relaxed); }
.menu-row-price { font-family: var(--font-mono); font-size: var(--text-base); color: var(--c-accent); font-weight: var(--weight-bold); white-space: nowrap; }
.menu-row-price small { display: block; font-size: var(--text-2xs); color: var(--c-mute); font-weight: var(--weight-normal); letter-spacing: var(--tracking-wide); margin-top: var(--sp-1); }

/* Video */
.video-section { padding: var(--section-py) var(--pad-x); background: var(--glow-left); border-bottom: var(--border); }
.video-head { margin-bottom: var(--sp-16); }
.video-head h2 { font-family: var(--font-display); font-size: clamp(48px,8vw,96px); letter-spacing: var(--tracking-tight); line-height: 1.05; margin-bottom: var(--sp-6); }
.video-head h2 .dot { color: var(--c-accent); }
.video-head p { font-size: var(--text-base); line-height: var(--leading-relaxed); color: var(--c-mute); max-width: 60ch; }
.video-quote { display: flex; flex-direction: column; gap: var(--sp-6); border: var(--border-accent); padding: var(--sp-8); background: radial-gradient(ellipse at 30% 30%,rgba(232,255,0,0.05),transparent 70%); }
@media (min-width: 720px) { .video-quote { display: grid; grid-template-columns: 2fr 1fr; gap: var(--sp-8); align-items: center; padding: var(--sp-12); } }
.video-quote-text { font-size: var(--text-base); color: var(--c-ink); line-height: var(--leading-relaxed); }
.video-quote-text b { color: var(--c-accent); font-weight: var(--weight-heavy); }
.video-quote-price { border-top: var(--border); padding-top: var(--sp-6); }
@media (min-width: 720px) { .video-quote-price { text-align: right; border-left: var(--border); border-top: none; padding-left: var(--sp-8); padding-top: 0; } }
.video-quote-price .main { font-family: var(--font-display); font-size: clamp(28px,4vw,42px); color: var(--c-accent); letter-spacing: var(--tracking-tight); line-height: 1; }
.video-quote-price .sub { font-family: var(--font-mono); font-size: var(--text-xs); color: var(--c-mute); letter-spacing: var(--tracking-wider); text-transform: uppercase; margin-top: var(--sp-2); line-height: 1.8; }

/* FAQ セクション — 他セクションと統一した余白 */
.faq-section {
  padding: var(--section-py) var(--pad-x); /* ← 修正: 統一余白 */
  border-bottom: var(--border);
}
.faq-section .section-inner { max-width: var(--max-w); margin: 0 auto; }

/* Contact */
.contact-grid { display: grid; grid-template-columns: 1fr; gap: var(--sp-12); padding: var(--sp-20) var(--pad-x); max-width: var(--max-w); margin: 0 auto; }
@media (min-width: 960px) { .contact-grid { grid-template-columns: 1.2fr 1fr; gap: var(--sp-20); } }
.contact-form { display: flex; flex-direction: column; gap: var(--sp-10); }
.form-row { display: grid; grid-template-columns: 1fr; gap: var(--sp-10); }
@media (min-width: 560px) { .form-row { grid-template-columns: 1fr 1fr; } }
.form-field { display: flex; flex-direction: column; gap: var(--sp-2); }
.form-field label { font-family: var(--font-mono); font-size: var(--text-2xs); color: var(--c-mute); letter-spacing: var(--tracking-wider); text-transform: uppercase; font-weight: var(--weight-bold); }
.form-field label span { color: var(--c-accent); }
.form-field input, .form-field select, .form-field textarea { font-family: var(--font-body); font-size: var(--text-base); background: transparent; border: var(--border2); color: var(--c-ink); padding: var(--sp-3) var(--sp-4); outline: none; transition: border-color var(--ease); width: 100%; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { border-color: var(--c-accent); }
.form-field textarea { min-height: 140px; resize: vertical; }
.form-field select option { background: var(--c-bg); }
.form-submit { font-family: var(--font-mono); font-size: var(--text-sm); letter-spacing: var(--tracking-wide); text-transform: uppercase; background: var(--c-accent); color: var(--c-bg); padding: var(--sp-5) var(--sp-8); font-weight: var(--weight-bold); border: 1px solid var(--c-accent); cursor: pointer; transition: all var(--ease); width: 100%; display: flex; align-items: center; justify-content: center; gap: var(--sp-3); }
.form-submit:hover { background: transparent; color: var(--c-accent); }
.contact-info { display: flex; flex-direction: column; gap: var(--sp-8); }
.contact-info-block { border: var(--border); padding: var(--sp-8); background: var(--c-surface-1); }
.contact-info-block h3 { font-family: var(--font-mono); font-size: var(--text-2xs); color: var(--c-accent); letter-spacing: var(--tracking-wider); text-transform: uppercase; font-weight: var(--weight-bold); margin-bottom: var(--sp-4); }
.contact-info-block p { font-size: var(--text-base); color: var(--c-ink); line-height: var(--leading-relaxed); }
.contact-info-block .email { font-family: var(--font-mono); color: var(--c-accent); font-weight: var(--weight-bold); font-size: var(--text-sm); word-break: break-all; }

/* CF7 フォームレイアウト */
.wpcf7 .form-field {
  margin-bottom: var(--sp-10);
}
.wpcf7 .form-field:last-of-type {
  margin-bottom: 0;
}

/* CF7 送信ボタン — .btn-primary と統一 */
.wpcf7-submit {
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  font-weight: var(--weight-bold);
  background: var(--c-accent);
  color: var(--c-bg);
  border: 1px solid var(--c-accent);
  cursor: pointer;
  transition: all var(--ease);
  width: 100%;
  display: block;
  padding: var(--sp-5) var(--sp-8);
  appearance: none;
  -webkit-appearance: none;
  line-height: 1;
  text-align: center;
}
.wpcf7-submit:hover { background: transparent; color: var(--c-accent); }

/* CF7 バリデーション エラーアラート */
.wpcf7-response-output {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  padding: var(--sp-4) var(--sp-6);
  margin: var(--sp-4) 0 0;
  border: var(--border-accent);
  background: rgba(232, 255, 0, 0.04);
  color: var(--c-accent);
}

/* CF7 フィールドレベル エラー */
.wpcf7-not-valid-tip {
  font-family: var(--font-mono);
  font-size: var(--text-2xs);
  color: var(--c-accent);
  letter-spacing: var(--tracking-wide);
  margin-top: var(--sp-2);
  display: block;
}
.wpcf7-not-valid { border-color: var(--c-accent) !important; }

/* CF7 スピナー（送信中） */
.wpcf7-spinner {
  display: inline-block;
  vertical-align: middle;
  margin-left: var(--sp-3);
}
