@charset "UTF-8";
/* ==========================================================================
   contact.css  … お問い合わせフォーム(contact.php) / 送信完了(thanks.html) 共通
   ※ Live Sass Compiler で assets/css/contact.css に出力される
========================================================================== */
:root {
  --ink: #1c1c1c;
  --accent: #e50019;
  --line: #d5d5d5;
  --bg: #f0f0f0;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  color: var(--ink);
  background: var(--bg);
  font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  line-height: 1.8;
  -webkit-font-smoothing: antialiased;
}

/* --------------------------------------------------------------------------
   共通ロゴ
-------------------------------------------------------------------------- */
.logo {
  display: block;
  width: 100%;
  max-width: 100px;
  height: auto;
  margin: 0 auto 20px;
}

/* --------------------------------------------------------------------------
   表示切替ユーティリティ … 境界 769px（_mixin.scss の pc / sp と統一）
     .pc-only … PC表示のみ（768px以下では非表示）
     .sp-only … スマホ表示のみ（769px以上では非表示）
-------------------------------------------------------------------------- */
@media (max-width: 768px) {
  .pc-only {
    display: none !important;
  }
}

@media (min-width: 769px) {
  .sp-only {
    display: none !important;
  }
}

/* ==========================================================================
   お問い合わせフォーム（contact.php）
========================================================================== */
.wrap {
  max-width: 800px;
  margin: 0 auto;
  padding: 80px 20px;
}

.head {
  text-align: center;
  margin-bottom: 48px;
}
@media (max-width: 768px) {
  .head {
    margin-bottom: 30px;
  }
}
.head h1 {
  font-size: 24px;
  letter-spacing: 0.08em;
  margin: 0 0 8px;
  margin-bottom: 36px;
}
@media (max-width: 768px) {
  .head h1 {
    font-size: 20px;
  }
}
.head p {
  font-size: 14px;
  color: #666;
  margin: 0 -20px;
}
@media (max-width: 768px) {
  .head p {
    margin: 0;
    text-align: left;
  }
}

.form {
  background: #fff;
  padding: 32px 28px;
  border-radius: 4px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05);
}
@media (max-width: 768px) {
  .form {
    padding: 24px 16px;
  }
}

.field {
  margin-bottom: 26px;
}
.field > label.q,
.field .q {
  display: block;
  font-size: 14px;
  font-weight: bold;
  margin-bottom: 10px;
}

.req {
  display: inline-block;
  font-size: 11px;
  color: #fff;
  background: var(--accent);
  padding: 1px 8px;
  border-radius: 2px;
  margin-left: 8px;
  vertical-align: 2px;
}

.opt {
  display: inline-block;
  font-size: 11px;
  color: #888;
  background: #eee;
  padding: 1px 8px;
  border-radius: 2px;
  margin-left: 8px;
  vertical-align: 2px;
}

input[type=text],
input[type=tel],
input[type=email],
textarea {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 3px;
  font-size: 16px;
  font-family: inherit;
  background: #fff;
}
@media (max-width: 768px) {
  input[type=text],
  input[type=tel],
  input[type=email],
  textarea {
    padding: 8px 12px;
  }
}

textarea {
  min-height: 120px;
  resize: vertical;
}

input:focus,
textarea:focus {
  outline: none;
  border-color: var(--accent);
}

.note {
  font-size: 12px;
  color: #777;
  margin: -2px 0 12px;
}

.subfield {
  margin-top: 12px;
}

/* 都道府県などのセレクト（テキスト入力と揃える） */
select {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 3px;
  font-size: 16px;
  font-family: inherit;
  color: var(--ink);
  background: #fff;
}
@media (max-width: 768px) {
  select {
    padding: 8px 12px;
  }
}
select:focus {
  outline: none;
  border-color: var(--accent);
}

/* お名前・フリガナの2カラム */
.grid-2 {
  display: flex;
  gap: 12px;
}
@media (max-width: 768px) {
  .grid-2 {
    gap: 8px;
  }
}
.grid-2 > input[type=text] {
  flex: 1;
  width: auto;
  min-width: 0;
}

/* 住所の縦積み */
.stack > * + * {
  margin-top: 12px;
}

.zip {
  max-width: 220px;
}

.pref {
  max-width: 320px;
}

/* 利用規約リンク（別枠表示） */
.terms {
  margin: 4px 0 20px;
  padding: 16px 18px;
  background: #f7f7f7;
  border: 1px solid var(--line);
  border-radius: 4px;
}
.terms .terms-lead {
  font-size: 13px;
  margin: 0 0 10px;
}
.terms .terms-links {
  list-style: none;
  margin: 0;
  padding: 0;
}
.terms .terms-links li + li {
  margin-top: 6px;
}
.terms .terms-links a {
  color: var(--accent);
  font-size: 14px;
  font-weight: bold;
  text-decoration: underline;
}

/* 選択肢：ネイティブ input を隠し、label のチップで選択状態を表現 */
.choice {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
@media (max-width: 768px) {
  .choice {
    gap: 8px;
  }
}
.choice label {
  cursor: pointer;
}
.choice input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.choice .chip {
  display: inline-block;
  padding: 9px 16px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  font-size: 14px;
  line-height: 1.4;
  color: var(--ink);
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  transition: border-color 0.15s, background 0.15s, color 0.15s;
}
@media (max-width: 768px) {
  .choice .chip {
    padding: 6px 12px;
  }
}
.choice label:hover .chip {
  border-color: #999;
}
.choice input:checked + .chip {
  border-color: var(--accent);
  background: var(--accent);
  color: #fff;
}
.choice input:focus-visible + .chip {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

/* プライバシーポリシー：□＋赤チェック（背景は変えない） */
.pp {
  text-align: center;
  font-size: 13px;
  margin: 8px 0 24px;
}
.pp label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
}
.pp a {
  color: var(--accent);
  text-decoration: underline;
}
.pp input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.pp .box {
  position: relative;
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  padding: 0;
  border: 1px solid var(--ink);
  border-radius: 3px;
  background: #fff;
}
.pp .box::after {
  content: "";
  position: absolute;
  left: 6px;
  top: 2px;
  width: 5px;
  height: 10px;
  border: solid var(--accent);
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
  opacity: 0;
}
.pp input:checked + .box::after {
  opacity: 1;
}
.pp input:focus-visible + .box {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.submit {
  display: block;
  width: 100%;
  max-width: 320px;
  margin: 0 auto;
  padding: 16px;
  font-size: 16px;
  letter-spacing: 0.1em;
  color: #fff;
  background: var(--ink);
  border: none;
  border-radius: 3px;
  cursor: pointer;
  transition: background 0.2s;
}
.submit:hover {
  background: var(--accent);
}

/* ==========================================================================
   送信完了（thanks.html）
========================================================================== */
.box {
  max-width: 640px;
  margin: 0 auto;
  padding: 80px 20px;
  text-align: center;
  line-height: 1.9;
}
.box .logo {
  margin: 0 auto 24px;
}
.box h1 {
  font-size: 22px;
  letter-spacing: 0.08em;
  margin: 0 0 24px;
}
@media (max-width: 768px) {
  .box h1 {
    font-size: 20px;
  }
}
.box p {
  font-size: 15px;
  color: #444;
  margin: 0 0 12px;
}
.home {
  display: inline-block;
  margin-top: 32px;
  padding: 14px 32px;
  font-size: 14px;
  letter-spacing: 0.1em;
  color: #fff;
  background: var(--ink);
  text-decoration: none;
  border-radius: 3px;
  transition: background 0.2s;
}
.home:hover {
  background: var(--accent);
}/*# sourceMappingURL=contact.css.map */