@charset "UTF-8";
/* ============================================================
   CONTACT PAGE  CSS  （assets/css/contact.css）
   - 背景：高さ0の固定レール(.nc-contact__bg)に 100vh キャンバスをぶら下げ
     → セクション中ずっと画面固定、末尾でCTAへ流れる
   - 左カラムはフォーム末尾まで固定（sticky）
   ※ contact.js とセット（.nc-contact__bg を生成）
   ============================================================ */
#nc-contact-main{
  --nc-bg:#e9edf0;
  --nc-ink:#141414;--nc-muted:#6f6c66;
  --nc-field-bg:#ffffff;--nc-field-border:#cfccc4;
  --nc-btn:#141414;--nc-btn-ink:#ffffff;--nc-max:1180px;
  --nc-sticky-top:120px;
}
#nc-contact-main *{box-sizing:border-box;}

/* セクション */
.nc-contact{position:relative;background:var(--nc-bg);}
/* 高さ0の固定レール（全区間ピン留め） */
.nc-contact__bg{position:sticky;top:0;height:0;z-index:0;}
/* レールから 100vh のキャンバスをぶら下げる（画面いっぱい） */
.nc-contact .nc-canvas{position:absolute;top:0;left:0;width:100%;height:100vh;pointer-events:none;filter:blur(12px);}
/* 中身（負マージン不要） */
.nc-wrap{position:relative;z-index:2;max-width:var(--nc-max);margin:0 auto;padding:128px 32px 120px;}

.nc-grid{display:grid;grid-template-columns:0.82fr 1.18fr;gap:72px;align-items:start;}

/* 左カラム：フォーム末尾まで固定 */
.nc-left{position:sticky;top:var(--nc-sticky-top);align-self:start;}
.nc-left .nc-eyebrow{font-size:13px;font-weight:700;letter-spacing:.18em;color:var(--nc-muted);margin:0 0 14px;}
.nc-left .nc-title{font-size:clamp(36px,5vw,56px);font-weight:900;letter-spacing:.02em;line-height:1.18;margin:0 0 22px;color:var(--nc-ink);}
.nc-left .nc-lead{font-size:15px;color:#3a3a3a;margin:0 0 40px;}
.nc-contacts{list-style:none;margin:0;padding:0;display:grid;gap:18px;}
.nc-contacts li{display:flex;align-items:center;gap:14px;font-size:14px;color:var(--nc-ink);}
.nc-contacts svg{flex:none;width:20px;height:20px;stroke:var(--nc-ink);}
.nc-contacts a{color:var(--nc-ink);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;}
.nc-contacts a:hover{opacity:.6;}
.nc-contacts .addr{text-decoration:none;color:var(--nc-ink);}

/* フォーム */
.nc-form{display:grid;gap:54px;}
.nc-form .nc-fieldset{border:0;margin:0;padding:0;min-width:0;}
.nc-form label.lbl,.nc-form .nc-legend{display:block;font-size:13px;font-weight:500;color:#444;margin:0 0 9px;padding:0;}
.nc-row{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.nc-input,.nc-select,.nc-textarea{width:100%;font:inherit;font-size:15px;color:var(--nc-ink);background:var(--nc-field-bg);border:1px solid var(--nc-field-border);border-radius:0;padding:14px 16px;transition:border-color .2s,box-shadow .2s;}
.nc-textarea{min-height:150px;resize:vertical;}
.nc-input:focus,.nc-select:focus,.nc-textarea:focus{outline:none;border-color:var(--nc-ink);box-shadow:0 0 0 1px var(--nc-ink);}
.nc-input::placeholder,.nc-textarea::placeholder{color:#aaa;}
.nc-select{appearance:none;-webkit-appearance:none;cursor:pointer;color:#888;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23333' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:42px;}
.nc-select.filled{color:var(--nc-ink);}
.nc-radios{display:grid;grid-template-columns:1fr 1fr;gap:24px 28px;}
.nc-radio{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:14px;color:var(--nc-ink);}
.nc-radio input{appearance:none;-webkit-appearance:none;margin:0;width:18px;height:18px;border:1.5px solid #999;border-radius:50%;flex:none;position:relative;cursor:pointer;transition:border-color .15s;}
.nc-radio input:checked{border-color:var(--nc-ink);}
.nc-radio input:checked::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--nc-ink);}
.nc-agree{display:flex;align-items:center;gap:11px;cursor:pointer;font-size:14px;color:var(--nc-ink);}
.nc-agree input{appearance:none;-webkit-appearance:none;margin:0;width:18px;height:18px;border:1.5px solid #999;flex:none;position:relative;cursor:pointer;}
.nc-agree input:checked{background:var(--nc-ink);border-color:var(--nc-ink);}
.nc-agree input:checked::after{content:"";position:absolute;left:5px;top:1px;width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);}
.nc-agree a{color:var(--nc-ink);text-underline-offset:3px;}
.nc-submit{justify-self:start;border:none;background:var(--nc-btn);color:var(--nc-btn-ink);font:inherit;font-size:15px;letter-spacing:.08em;padding:15px 52px;cursor:pointer;transition:opacity .2s;}
.nc-submit:hover{opacity:.82;}
.nc-submit:disabled{opacity:.45;cursor:default;}
.nc-formmsg{margin:0;font-size:14px;min-height:1em;}
.nc-formmsg.ok{color:#1f7a4d;}
.nc-formmsg.err{color:#c0392b;}

/* 送信完了メッセージ */
.nc-contact__success{
  display:none;
  font-size:16px;
  color:var(--nc-ink);
  line-height:2;
  letter-spacing:.04em;
  padding:48px 0;
}

/* ===== フォント統一（サイト共通の変数に合わせる） ===== */
/* 本文・ラベル・ラジオ：游ゴシック */
#nc-contact-main{ font-family: var(--font-jp); }
.nc-input,.nc-select,.nc-textarea{ font-family: var(--font-jp); }

/* 見出し「お問い合わせ」：サイト見出しと同じ明朝に */
.nc-left .nc-title{ font-family: var(--font-jp-serif); font-weight: 500; }

/* メール・電話番号（英数字）：EB Garamond */
.nc-contacts a{ font-family: var(--font-en); letter-spacing: .04em; }

/* 左カラム：お知らせ（ラウンド枠） */
.nc-notice{
  margin-top:40px;
  border:1px solid #333;
  border-radius:14px;
  padding:24px 28px;
  background:transparent;
  box-shadow:0 1px 3px rgba(0,0,0,.04);
}
.nc-notice__title{
  margin:0 0 10px;
  font-size:13px;
  letter-spacing:.12em;
  color:var(--nc-muted);
}
.nc-notice__body{
  margin:0;
  font-size:13px;
  line-height:1.9;
  letter-spacing:.06em;
  color:var(--nc-ink);
}

/* レスポンシブ */
@media (max-width:860px){
  .nc-wrap{padding:96px 22px 90px;}
  .nc-grid{grid-template-columns:1fr;gap:48px;}
  .nc-left{position:static;}
  .nc-left .nc-title{font-size:34px;}
}
@media (max-width:480px){
  .nc-row{grid-template-columns:1fr;gap:24px;}
  .nc-radios{grid-template-columns:1fr;gap:13px;}
}