/*
Theme Name: Seishinkai LP
Theme URI: https://example.com
Author: Your Studio
Description: 政治家LP用のシンプルなカスタムテーマ。固定ページテンプレート「政治家LP」でメタボックスから内容を編集できます。プラグイン不使用。
Version: 1.0.0
Requires PHP: 7.4
Text Domain: seishinkai-lp
*/

:root{
  --blue:#132d6b;
  --blue-2:#1f4faa;
  --blue-light:#eef2fa;
  --yellow:#f6c500;
  --yellow-deep:#dba800;
  --ink:#242424;
  --gray-line:#d8d8d8;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{
  font-family:'Noto Sans JP', sans-serif;
  color:var(--ink);
  background:#fff;
  font-size:15.5px;
  line-height:1.8;
}
.wrap{max-width:760px;margin:0 auto;}
img{max-width:100%;display:block;}
a{color:inherit;}

/* ヘッダー */
.header{
  position:relative;
  background:var(--blue);
  overflow:hidden;
  padding-bottom:0;
}
.header-top{
  display:flex;justify-content:space-between;align-items:center;
  padding:14px 28px;
  background:#fff;
}
.party-badge{
  font-size:13px;font-weight:700;color:var(--blue);
}
.header-visual{
  position:relative;
  padding:40px 32px 0 0;
  display:flex;
  align-items:flex-end;
  gap:28px;
  min-height:280px;
}
.header-visual::before{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(115deg, var(--blue) 45%, var(--blue-2) 55%, var(--yellow-deep) 62%, var(--yellow) 100%);
}
.figure-illustration{
  position:relative;z-index:2;
  flex-shrink:0;
  aspect-ratio:175/220;
  height:clamp(220px, 26vw, 360px);
  width:auto;
  overflow:hidden;
}
.figure-illustration img{
  width:100%;height:100%;object-fit:cover;
  object-position:60% center;
}
.header-copy{
  position:relative;z-index:2;
  color:#fff;
  flex:1;
  min-width:0;
}
.catch{
  font-size:42px;font-weight:900;line-height:1.2;
  text-shadow:2px 2px 0 rgba(0,0,0,0.15);
  white-space:pre-line;
}
.catch small{
  display:inline-block;font-size:14px;background:#fff;color:var(--blue);
  padding:3px 12px;margin-top:8px;font-weight:700;transform:skewX(-8deg);
}
.header-sub{
  position:relative;z-index:2;
  padding:6px 32px 0;
  color:#fff;
  font-size:13px;
  line-height:1.7;
}
.header-name{
  position:relative;z-index:2;
  padding:8px 32px 0;
  color:#fff;
}
.header-name .name{
  font-size:44px;font-weight:900;letter-spacing:0.03em;
}
.header-name .yomi{font-size:14px;font-weight:500;margin-left:8px;}

/* プロフィール */
.profile{padding:48px 32px 16px;}
.sec-title{
  font-size:21px;font-weight:900;color:var(--blue);
  border-bottom:3px solid var(--blue);padding-bottom:8px;margin-bottom:20px;
  display:inline-block;
}
table.profile-table{width:100%;border-collapse:collapse;font-size:14px;}
table.profile-table th{
  background:var(--blue);color:#fff;font-weight:700;
  padding:10px 14px;width:110px;vertical-align:top;text-align:left;
  border:1px solid #fff;
}
table.profile-table td{
  padding:10px 16px;border:1px solid var(--gray-line);vertical-align:top;
}
.history-list{width:100%;}
.history-row{
  display:flex;flex-wrap:wrap;gap:4px 14px;
  padding:8px 4px;border-bottom:1px dashed var(--gray-line);
}
.history-row:last-child{border-bottom:none;}
.history-row .hy{flex:0 0 auto;white-space:nowrap;color:var(--blue-2);font-weight:700;}
.history-row .ht{flex:1 1 220px;min-width:0;}

/* 政策 */
.policy{padding:16px 0 40px;}
.policy-item{
  display:flex;align-items:stretch;
}
.policy-item:nth-child(odd){background:var(--blue-light);}
.policy-num{
  width:68px;flex-shrink:0;
  background:var(--yellow);color:var(--blue);font-weight:900;font-size:26px;
  display:flex;align-items:center;justify-content:center;
}
.policy-item:nth-child(even) .policy-num{background:var(--blue);color:#fff;}
.policy-text{
  padding:18px 28px;font-size:14.5px;font-weight:500;
}

/* SNS */
.sns{padding:44px 32px;text-align:center;}
.sns-row{display:flex;gap:20px;flex-wrap:wrap;}
.sns-card{
  flex:1 1 260px;
  border:1px solid var(--gray-line);border-radius:8px;padding:20px;margin-bottom:16px;
  text-align:left;
}
.sns-head{display:flex;align-items:center;gap:10px;margin-bottom:12px;}
.sns-avatar{width:38px;height:38px;border-radius:50%;background:var(--blue-light);border:1px solid var(--gray-line);}
.sns-name{font-size:14px;font-weight:700;}
.sns-stats{font-size:12px;color:#777;}
.sns-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;}
.sns-grid div{aspect-ratio:1;background:var(--blue-light);border:1px solid var(--gray-line);}
.link-btn{
  display:flex;align-items:center;justify-content:center;gap:8px;
  border:1px solid var(--gray-line);border-radius:6px;padding:12px;margin-bottom:10px;
  font-size:13.5px;font-weight:700;
}

/* 事務所 */
.office{padding:16px 32px 44px;text-align:center;}
.office-addr{font-size:13.5px;margin-bottom:14px;}
.map-box{
  max-width:480px;margin:0 auto;
  aspect-ratio:4/3;background:var(--blue-light);border:1px solid var(--gray-line);
  display:flex;align-items:center;justify-content:center;color:#888;font-size:12px;
  overflow:hidden;
}
.map-box iframe{width:100%;height:100%;border:0;}

/* ダウンロード */
.dl{padding:0 32px 44px;text-align:center;}
.dl .sec-title{display:block;}
.dl-btn{
  display:inline-block;background:var(--blue);color:#fff;font-weight:700;
  padding:15px 34px;border-radius:24px;font-size:14px;margin-top:16px;
}

/* フォーム */
.form-section{background:var(--blue-light);padding:44px 32px;}
.form-section .sec-title{display:block;text-align:center;border-bottom:none;color:var(--ink);}
.form-note{font-size:13px;color:#666;text-align:center;margin-bottom:24px;}
.req{background:var(--yellow);color:var(--blue);font-size:10.5px;font-weight:700;padding:1px 6px;border-radius:3px;margin-right:6px;}
.form-section form{max-width:520px;margin:0 auto;}
.field{margin-bottom:16px;}
.field label{display:block;font-size:13px;font-weight:700;margin-bottom:6px;}
.field input, .field textarea{
  width:100%;border:1px solid var(--gray-line);border-radius:4px;padding:11px 12px;font-size:14px;background:#fff;font-family:inherit;
}
.submit-btn{
  display:block;width:100%;background:var(--blue);color:#fff;font-weight:700;
  padding:14px;border-radius:24px;font-size:14.5px;border:none;margin-top:8px;cursor:pointer;
}
.form-success{
  background:#e5f3e6;border:1px solid #8fc492;color:#276b2c;padding:12px 14px;border-radius:4px;
  font-size:13px;margin-bottom:16px;max-width:520px;margin-left:auto;margin-right:auto;
}
.form-error{
  background:#fbe9e7;border:1px solid #e39a91;color:#a13328;padding:12px 14px;border-radius:4px;
  font-size:13px;margin-bottom:16px;max-width:520px;margin-left:auto;margin-right:auto;
}

footer.site-footer{
  text-align:center;padding:36px 20px;font-size:11.5px;color:#888;
}

/* レスポンシブ：狭い画面では余白を詰める */
@media (max-width:600px){
  .header-top{padding:12px 20px;}
  .profile, .sns, .office, .dl, .form-section{padding-left:20px;padding-right:20px;}
  .header-visual{padding-right:20px;padding-left:0;padding-top:28px;min-height:0;gap:16px;}
  .figure-illustration{height:clamp(150px, 46vw, 220px);}
  .header-sub, .header-name{padding-left:20px;padding-right:20px;}
  .header-sub{font-size:12px;}
  .catch{font-size:26px;line-height:1.3;}
  .catch small{font-size:12px;padding:2px 9px;margin-top:6px;}
  .header-name{padding-top:6px;}
  .header-name .name{font-size:28px;}
  .header-name .yomi{font-size:12px;}

  .profile{padding-top:36px;}
  .sec-title{font-size:18px;margin-bottom:14px;}

  /* プロフィール表：ラベルと値を横並びから縦積みに */
  table.profile-table, table.profile-table tbody{display:block;width:100%;}
  table.profile-table tr{display:block;margin-bottom:2px;}
  table.profile-table th, table.profile-table td{
    display:block;width:100%;
  }
  table.profile-table th{
    border:none;padding:8px 10px 4px;font-size:12px;
  }
  table.profile-table td{
    border-top:none;padding:0 10px 12px;
  }

  .policy-text{padding:14px 16px;font-size:13.5px;}
  .policy-num{width:52px;font-size:20px;}

  .sns-row{flex-direction:column;}
}

/* 管理画面：メディアアップロード用フィールド */
.lp-image-field .lp-image-preview{
  max-width:220px;margin-bottom:10px;border:1px solid #ddd;background:#f6f6f6;
}
.lp-image-field .lp-image-preview img{max-width:100%;display:block;}
.lp-image-field .lp-image-actions .button{margin-right:8px;}
