/*
Theme Name: 石田雅樹行政書士事務所 オリジナルテーマ
Theme URI: https://office-ishida.com/
Author: office-ishida
Description: 石田雅樹行政書士事務所様のために作成した専用テーマです。賢威に依存しない独立したテーマです。
Version: 1.0.0
Requires PHP: 7.4
Text Domain: ishida-gyoseishoshi
*/

@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@500;700&family=Noto+Sans+JP:wght@400;500;700&display=swap');

:root{
  --isd-navy:#0b2a4a;
  --isd-navy-dark:#04182b;
  --isd-navy-mid:#123a5e;
  --isd-blue:#0090fb;
  --isd-text:#3a4250;
  --isd-muted:#6b7a90;
  --isd-border:#dbe4ef;
  --isd-bg-alt:#eef3f9;
  --isd-bg-page:#f7f9fc;
}

*{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
body{
  margin:0;
  font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  color:var(--isd-text);
  background:#fff;
  line-height:1.8;
}
img{ max-width:100%; height:auto; }
a{ color:var(--isd-blue); }
.isd-skip-link{ position:absolute; left:-9999px; top:0; background:#fff; padding:10px 16px; z-index:1000; }
.isd-skip-link:focus{ left:8px; top:8px; }

/* ---------- 共通 ---------- */
.isd-serif{ font-family:"Noto Serif JP","Hiragino Mincho ProN",serif; }
.isd-section{ padding:64px 20px; }
.isd-section-alt{ background:var(--isd-bg-alt); }
.isd-container{ max-width:1100px; margin:0 auto; }
.isd-eyebrow{ font-size:12px; letter-spacing:.15em; color:var(--isd-blue); font-weight:700; text-align:center; margin-bottom:8px; }
.isd-heading{ font-family:"Noto Serif JP",serif; font-size:26px; font-weight:700; color:var(--isd-navy); text-align:center; margin:0 0 40px; }
.isd-lead{ font-size:14px; line-height:2; color:var(--isd-text); }

/* ---------- ボタン ---------- */
.isd-btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:15px 32px; font-size:15px; font-weight:700; letter-spacing:.04em; text-decoration:none !important; border-radius:2px; cursor:pointer; border:none; }
.isd-btn-primary{ background:var(--isd-blue); color:#fff !important; }
.isd-btn-outline{ background:transparent; color:#fff !important; border:1px solid rgba(255,255,255,.6); }
.isd-btn-navy{ background:var(--isd-navy); color:#fff !important; }
.isd-btn-row{ display:flex; gap:14px; flex-wrap:wrap; justify-content:center; margin-top:16px; }

/* ---------- サイトヘッダー ---------- */
.isd-site-header{ border-bottom:1px solid var(--isd-border); background:#fff; position:relative; z-index:50; }
.isd-header-inner{ max-width:1200px; margin:0 auto; padding:14px 20px; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.isd-logo{ display:flex; align-items:center; gap:12px; text-decoration:none !important; flex-shrink:0; }
.isd-logo img{ display:block; max-height:52px; width:auto; }
.isd-logo-text{ font-family:"Noto Serif JP",serif; font-weight:700; color:var(--isd-navy); font-size:16px; line-height:1.4; }
.isd-header-right{ display:flex; align-items:center; gap:22px; flex-wrap:wrap; }
.isd-nav ul{ list-style:none; display:flex; gap:26px; margin:0; padding:0; flex-wrap:wrap; }
.isd-nav a{ color:var(--isd-text); text-decoration:none; font-size:14px; font-weight:500; }
.isd-nav a:hover{ color:var(--isd-blue); }
.isd-header-tel{ font-family:"Noto Serif JP",serif; font-weight:700; color:var(--isd-navy); font-size:19px; text-decoration:none !important; white-space:nowrap; }
.isd-header-tel-label{ font-size:10.5px; color:var(--isd-muted); font-weight:500; display:block; font-family:"Noto Sans JP",sans-serif; }
.isd-header-cta{ padding:12px 22px; font-size:13.5px; }
.isd-menu-toggle{ display:none; }

@media (max-width:900px){
  .isd-nav{ display:none; }
  .isd-menu-toggle{ display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border:1px solid var(--isd-border); background:#fff; cursor:pointer; }
  .isd-header-inner.isd-nav-open .isd-nav{ display:block; width:100%; order:10; }
  .isd-header-inner.isd-nav-open .isd-nav ul{ flex-direction:column; gap:0; border-top:1px solid var(--isd-border); margin-top:12px; }
  .isd-header-inner.isd-nav-open .isd-nav a{ display:block; padding:12px 0; border-bottom:1px solid var(--isd-border); }
}

/* ---------- ヒーロー ---------- */
.isd-hero{ background:linear-gradient(135deg,var(--isd-navy-dark) 0%,var(--isd-navy) 55%,var(--isd-navy-mid) 100%); padding:72px 20px; text-align:center; }
.isd-hero-badge{ display:inline-block; padding:6px 16px; border:1px solid rgba(255,255,255,.35); border-radius:2px; font-size:12px; letter-spacing:.08em; color:#e7ebf2; margin-bottom:20px; }
.isd-hero-title{ font-family:"Noto Serif JP",serif; font-size:clamp(24px,4vw,38px); font-weight:700; line-height:1.6; color:#fff; margin:0 0 20px; }
.isd-hero-sub{ font-size:14.5px; line-height:2; color:#c6cede; max-width:600px; margin:0 auto; }

/* ---------- ページタイトルバナー（下層ページ用） ---------- */
.isd-page-banner{ background:linear-gradient(135deg,var(--isd-navy-dark) 0%,var(--isd-navy) 60%,var(--isd-navy-mid) 100%); padding:44px 20px; text-align:center; }
.isd-page-banner-title{ font-family:"Noto Serif JP",serif; font-size:26px; font-weight:700; color:#fff; margin:0; }

/* ---------- 統計バー ---------- */
.isd-stats{ display:grid; grid-template-columns:repeat(4,1fr); background:var(--isd-navy); }
.isd-stat{ padding:24px 12px; text-align:center; border-right:1px solid rgba(255,255,255,.12); }
.isd-stat:last-child{ border-right:none; }
.isd-stat-num{ font-family:"Noto Serif JP",serif; font-size:20px; font-weight:700; color:#fff; }
.isd-stat-label{ font-size:11.5px; color:#aab3c4; margin-top:4px; }

/* ---------- グリッド／カード ---------- */
.isd-grid-2{ display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
.isd-grid-4{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.isd-card{ background:#fff; border:1px solid var(--isd-border); padding:32px; }
.isd-card-icon{ width:48px; height:48px; border-radius:50%; background:#eef1f6; display:flex; align-items:center; justify-content:center; margin-bottom:14px; }
.isd-card-title{ font-family:"Noto Serif JP",serif; font-size:17px; font-weight:700; color:var(--isd-navy); margin:0 0 10px; }
.isd-card-text{ font-size:13.5px; line-height:1.9; color:var(--isd-text); }
.isd-tag-row{ display:flex; gap:8px; flex-wrap:wrap; margin-top:12px; }
.isd-tag{ font-size:11.5px; padding:5px 12px; background:#f2f4f7; color:#3a4250; }
.isd-card-link{ font-size:13px; font-weight:700; color:var(--isd-blue); margin-top:10px; display:inline-block; }

/* ---------- 3つの約束 ---------- */
.isd-promise-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; text-align:center; }
.isd-promise-num{ font-family:"Noto Serif JP",serif; font-size:30px; font-weight:700; color:var(--isd-blue); }
.isd-promise-title{ font-size:15px; font-weight:700; color:var(--isd-navy); margin:8px 0; }
.isd-promise-text{ font-size:12.5px; line-height:1.9; color:var(--isd-text); }

/* ---------- 料金カード（プレビュー） ---------- */
.isd-price-card{ background:#fff; border:1px solid var(--isd-border); padding:24px; }
.isd-price-label{ font-size:12.5px; font-weight:700; color:var(--isd-muted); }
.isd-price-num{ font-family:"Noto Serif JP",serif; font-size:22px; font-weight:700; color:var(--isd-navy); margin:8px 0; }
.isd-price-note{ font-size:11px; color:var(--isd-muted); line-height:1.6; }

/* ---------- 料金表（詳細ページ） ---------- */
.isd-price-block{ margin-bottom:48px; }
.isd-price-block-title{ display:flex; align-items:center; gap:12px; font-family:"Noto Serif JP",serif; font-size:19px; font-weight:700; color:var(--isd-navy); margin-bottom:16px; }
.isd-price-block-title::before{ content:""; width:5px; height:22px; background:var(--isd-blue); display:inline-block; }
.isd-table{ width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--isd-border); font-size:13px; }
.isd-table th{ background:var(--isd-navy); color:#fff; font-size:11.5px; font-weight:700; letter-spacing:.03em; padding:12px 14px; text-align:left; }
.isd-table th.isd-num{ text-align:right; }
.isd-table td{ padding:13px 14px; border-bottom:1px solid #eef1f6; color:var(--isd-text); }
.isd-table tr:last-child td{ border-bottom:none; }
.isd-table td.isd-num{ text-align:right; }
.isd-table td.isd-total{ text-align:right; font-weight:700; color:var(--isd-navy); }
.isd-table td.isd-note{ color:var(--isd-muted); font-size:12px; }

/* ---------- 流れ（ステップ） ---------- */
.isd-flow-section{ background:var(--isd-navy); padding:64px 20px; }
.isd-flow{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:24px; max-width:1000px; margin:0 auto; }
.isd-flow-step{ flex:1 1 140px; text-align:center; }
.isd-flow-circle{ width:38px; height:38px; border-radius:50%; background:#2b3a58; border:1px solid rgba(255,255,255,.25); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:14px; margin:0 auto 12px; }
.isd-flow-step.isd-flow-active .isd-flow-circle{ background:var(--isd-blue); border-color:var(--isd-blue); }
.isd-flow-title{ font-size:13.5px; font-weight:700; color:#fff; }
.isd-flow-text{ font-size:11px; color:#aab3c4; margin-top:6px; line-height:1.6; }

/* ---------- FAQ ---------- */
.isd-faq-item{ background:#fff; border:1px solid var(--isd-border); padding:22px 26px; display:flex; gap:16px; margin-bottom:14px; }
.isd-faq-q{ font-family:"Noto Serif JP",serif; font-size:17px; font-weight:700; color:var(--isd-blue); flex-shrink:0; }
.isd-faq-title{ font-size:14px; font-weight:700; color:var(--isd-navy); margin:0 0 6px; }
.isd-faq-text{ font-size:12.5px; line-height:1.9; color:var(--isd-text); }

/* ---------- プロフィール ---------- */
.isd-profile-wrap{ display:flex; gap:40px; align-items:flex-start; flex-wrap:wrap; }
.isd-profile-photo{ width:220px; height:270px; background:#dde6f0; border:1px solid #cdd9e6; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:8px; flex-shrink:0; color:var(--isd-muted); font-size:11px; overflow:hidden; }
.isd-profile-photo img{ width:100%; height:100%; object-fit:cover; }
.isd-profile-card{ flex:1; min-width:260px; background:#fff; border:1px solid var(--isd-border); padding:32px; }
.isd-profile-row{ display:flex; gap:14px; font-size:13px; color:var(--isd-text); margin-bottom:12px; }
.isd-profile-label{ width:90px; color:var(--isd-muted); flex-shrink:0; }

/* ---------- 事務所情報 ---------- */
.isd-info-card{ background:#fff; border:1px solid var(--isd-border); padding:28px 32px; }
.isd-info-row{ display:flex; gap:12px; font-size:13px; color:var(--isd-text); margin-bottom:14px; }
.isd-info-row:last-child{ margin-bottom:0; }
.isd-note-box{ background:var(--isd-bg-alt); border:1px solid var(--isd-border); padding:18px 20px; font-size:12.5px; line-height:1.9; color:var(--isd-text); margin-top:20px; }

/* ---------- リンクカード（keni-linkcard 互換） ---------- */
.isd-linkcard{ display:flex; align-items:center; gap:14px; background:#fff; border:1px solid var(--isd-border); border-left:4px solid var(--isd-blue); padding:16px 20px; text-decoration:none !important; margin:14px 0; transition:box-shadow .15s ease; }
.isd-linkcard:hover{ box-shadow:0 2px 10px rgba(11,42,74,.12); }
.isd-linkcard-icon{ flex-shrink:0; width:34px; height:34px; border-radius:50%; background:var(--isd-bg-alt); display:flex; align-items:center; justify-content:center; color:var(--isd-blue); font-weight:700; }
.isd-linkcard-title{ font-size:14px; font-weight:700; color:var(--isd-navy); }
.isd-linkcard-url{ font-size:11px; color:var(--isd-muted); margin-top:2px; }

/* ---------- 汎用ページ本文（未デザインページ用の最低限のスタイル） ---------- */
.isd-generic-content{ max-width:820px; margin:0 auto; padding:56px 20px; font-size:15px; line-height:2; }
.isd-generic-content h1{ font-family:"Noto Serif JP",serif; font-size:26px; color:var(--isd-navy); margin-bottom:24px; }
.isd-generic-content h2{ font-family:"Noto Serif JP",serif; font-size:20px; color:var(--isd-navy); margin-top:40px; border-bottom:2px solid var(--isd-border); padding-bottom:10px; }
.isd-generic-content h3{ font-size:16px; color:var(--isd-navy); margin-top:28px; }
.isd-generic-content table{ width:100%; border-collapse:collapse; margin:20px 0; }
.isd-generic-content table th, .isd-generic-content table td{ border:1px solid var(--isd-border); padding:10px 12px; font-size:13.5px; }
.isd-generic-content table th{ background:var(--isd-bg-alt); }
.isd-generic-content img{ display:block; margin:20px auto; }
.isd-generic-content .isd-page-title{ font-family:"Noto Serif JP",serif; font-size:24px; color:var(--isd-navy); margin-bottom:24px; }

/* ---------- フッター ---------- */
.isd-site-footer{ background:var(--isd-navy-dark); color:#c6cede; padding:56px 20px 24px; }
.isd-footer-inner{ max-width:1100px; margin:0 auto; display:flex; justify-content:space-between; gap:40px; flex-wrap:wrap; }
.isd-footer-brand{ font-family:"Noto Serif JP",serif; color:#fff; font-weight:700; font-size:16px; margin-bottom:12px; }
.isd-footer-col{ font-size:12.5px; line-height:2; min-width:200px; }
.isd-footer-col a{ color:#c6cede; text-decoration:none; }
.isd-footer-col a:hover{ color:#fff; }
.isd-footer-bottom{ text-align:center; font-size:11px; color:#7a869c; margin-top:40px; padding-top:20px; border-top:1px solid rgba(255,255,255,.08); }

/* ---------- レスポンシブ（スマホ対応） ---------- */
@media (max-width:820px){
  .isd-grid-4{ grid-template-columns:repeat(2,1fr); }
  .isd-stats{ grid-template-columns:repeat(2,1fr); }
  .isd-stat:nth-child(2){ border-right:none; }
  .isd-promise-grid{ grid-template-columns:1fr; }
  .isd-flow{ justify-content:flex-start; }
}
@media (max-width:640px){
  .isd-grid-2, .isd-grid-4{ grid-template-columns:1fr; }
  .isd-section{ padding:44px 16px; }
  .isd-hero{ padding:52px 16px; }
  .isd-profile-wrap{ flex-direction:column; align-items:center; }
  .isd-profile-photo{ width:180px; height:220px; }
  .isd-table{ font-size:12px; }
  .isd-table th, .isd-table td{ padding:10px 8px; }
  .isd-btn{ width:100%; }
}
