@charset "utf-8";
/*
Theme Name: CoreBase
Description: ブロックベースLP用テーマ（ACFカスタムブロック対応）
Author: HOSOKAWA Kizuki
Version: 1.0
*/

/*----------------------------------------
  基本リセット
----------------------------------------*/
html, body {
    margin: 0;
    padding: 0;
    width: 100%;
    min-height: 100%;
    font-size: 16px; /* 基準16px */
    line-height: 1.75; /* 行間28px前後（16*1.75 ≒ 28） */
    font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
    color: #333;
    background-color: #fff;
}

*, *::before, *::after {
    box-sizing: border-box;
}

/*----------------------------------------
  コンテナ（最大1200px）
----------------------------------------*/
.container {
    max-width: 1242px; /* 8の倍数 */
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 16px; /* 8の倍数 */
    padding-right: 16px;
}

/*----------------------------------------
  ブロックの基本構造
----------------------------------------*/
/* 通常ブロック */
.block-normal {
    padding-top: 64px;  /* 8の倍数 */
    padding-bottom: 64px;
    background-color: #fff;
}

/* 全幅ブロック（背景は全幅、内容はコンテナ内） */
.block-full {
    width: 100%;
    padding-top: 64px;
    padding-bottom: 64px;
}

.block-full.has-bg {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

/*----------------------------------------
  標準ブロック基本スタイル
----------------------------------------*/
p {
    margin: 0 0 16px 0; /* 8の倍数 */
}

h1, h2, h3, h4, h5, h6 {
    margin-top: 0;
    margin-bottom: 24px; /* 8の倍数 */
    font-weight: 700;
    line-height: 1.25; /* 見出し行間 */
}

h1 { font-size: 48px; }  /* 16*3=48 */
h2 { font-size: 32px; }  /* 16*2=32 */
h3 { font-size: 24px; }  /* 16*1.5=24 */
h4 { font-size: 20px; }  /* 16*1.25=20 */
h5, h6 { font-size: 16px; }

ul, ol {
    margin: 0 0 16px 32px; /* 8の倍数 */
    padding: 0;
}

a {
    color: #0073aa;
    text-decoration: none;
    transition: 0.2s;
}
a:hover {
    color: #005177;
    text-decoration: underline;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

.wp-block-image img {
    display: block;
    width: 100%;
    height: auto;
}

/* 標準ブロックの alignwide / alignfull */
.alignwide {
    max-width: 1400px; /* 8の倍数近似 */
    margin-left: auto;
    margin-right: auto;
}

.alignfull {
    width: 100%;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}

/* 汎用ユーティリティ */
.text-center { text-align: center; }
.mt-0 { margin-top: 0!important; }
.mb-0 { margin-bottom: 0!important; }
.mt-32 { margin-top: 32px; }
.mb-32 { margin-bottom: 32px; }
.mt-64 { margin-top: 64px; }
.mb-64 { margin-bottom: 64px; }

/* レスポンシブ */
@media (max-width: 768px) {
    img.alignleft {
        width: calc(50% - 16px);
        float: left;
        margin: 0 16px 16px 0;
    }
    img.alignright {
        width: calc(50% - 16px);
        float: right;
        margin: 0 0 16px 16px;
	}
}


/* =====================================
   Contact Form 7 — 全体デザイン調整（強制反映版）
   ===================================== */

/* フォーム全体 */
.wpcf7 form {
  max-width: 600px !important;
  margin: 0 auto !important;
  padding: 20px !important;
  background: #f7f7f7 !important;
  border-radius: 8px !important;
}

/* ラベル */
.wpcf7 form label {
  display: block !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  margin-bottom: 6px !important;
  color: #333 !important;
}

/* テキスト系フィールド */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 textarea {
  width: 100% !important;
  padding: 10px !important;
  border: 1px solid #ccc !important;
  border-radius: 5px !important;
  font-size: 14px !important;
  background: #fff !important;
  box-sizing: border-box !important;
  transition: border-color 0.2s !important;
}

/* フォーカス時 */
.wpcf7 input[type="text"]:focus,
.wpcf7 input[type="email"]:focus,
.wpcf7 input[type="tel"]:focus,
.wpcf7 textarea:focus {
  border-color: #24678F !important;
  outline: none !important;
}

/* 送信ボタン */
.wpcf7 input[type="submit"] {
  display: block !important;
  width: 100% !important;
  padding: 12px !important;
  background: #24678F !important;
  color: #fff !important;
  border: none !important;
  border-radius: 6px !important;
  font-size: 15px !important;
  cursor: pointer !important;
  transition: background 0.25s !important;
}

/* ホバー時 */
.wpcf7 input[type="submit"]:hover {
  background: #1d5678 !important;
}

/* メッセージ（成功） */
.wpcf7-mail-sent-ok {
  border: 2px solid #24678F !important;
  padding: 10px !important;
  background: #e8f3fa !important;
  color: #24678F !important;
  border-radius: 5px !important;
}

/* メッセージ（エラー） */
.wpcf7-mail-sent-ng,
.wpcf7-validation-errors,
.wpcf7-acceptance-missing {
  border: 2px solid #ff6161 !important;
  padding: 10px !important;
  background: #ffecec !important;
  color: #c60000 !important;
  border-radius: 5px !important;
}

/* エラーテキスト */
.wpcf7-not-valid-tip {
  color: #d60000 !important;
  font-size: 13px !important;
  margin-top: 3px !important;
}

/* 必須マーク */
.wpcf7 form .required {
  color: #c60000 !important;
}


