/* =========================================================
   Contact CTA — C案（comp .cta / 墨ベタ背景）。.c-cv-area は計測フック維持
========================================================= */
.c-cv-area{ background:var(--ink); color:var(--base); padding:var(--section-gap) 0; text-align:center; }
.c-cv-area .label{ color:var(--accent-on-dark); }   /* 墨背景：濃色ブロンズだと不可読のためライトブロンズ */
.c-cv-area h2{ font-family:var(--serif); font-weight:500; font-size:clamp(22px,3vw,32px); letter-spacing:.1em; margin:14px 0 30px; line-height:1.7; }
.cta-row{ display:flex; gap:18px; justify-content:center; flex-wrap:wrap; margin-bottom:30px; }
.btn-ghost{
  display:inline-flex; align-items:center; gap:10px;
  border:1px solid color-mix(in srgb, var(--base) 50%, transparent);
  color:var(--base); font-family:var(--sans); font-size:14px; letter-spacing:.06em; padding:18px 40px;
  transition:background .3s;
}
.btn-ghost:hover{ background:color-mix(in srgb, var(--base) 10%, transparent); color:var(--base); text-decoration:none; }
.cta-tel{ display:inline-block; font-family:var(--en); font-size:30px; letter-spacing:.04em; color:var(--base); font-variant-numeric:lining-nums tabular-nums; }
.cta-tel:hover{ text-decoration:none; color:var(--base); }
.cta-tel small{ display:block; font-family:var(--sans); font-size:11px; color:color-mix(in srgb, var(--base) 60%, transparent); letter-spacing:.1em; margin-top:4px; }

/* =========================================================
   Contact Modal — C案（配色のみ刷新／フォーム処理・属性・font-size:16px は不変）
========================================================= */
body.is-modal-open{ overflow:hidden; }
.contact-modal{ position:fixed; inset:0; display:grid; place-items:center; z-index:var(--z-modal); }
.contact-modal[hidden]{ display:none; }
.contact-modal__overlay{ position:absolute; inset:0; background:color-mix(in srgb, var(--ink) 60%, transparent); backdrop-filter:blur(4px); }
.contact-modal__content{
  position:relative; z-index:1; width:min(640px,92vw); max-height:90vh; overflow:auto; overscroll-behavior:contain;
  background:var(--base); border:1px solid var(--line); padding:2rem 1.5rem 1.75rem; display:grid; gap:1rem;
}
.contact-modal__close{
  position:absolute; top:12px; right:12px; width:44px; height:44px; border:1px solid var(--line);
  background:var(--base); color:var(--ink); font-size:1.6rem; line-height:1; cursor:pointer;
}
.contact-modal__close:hover{ background:var(--base-2); }
.contact-modal__close:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }
.contact-modal__eyebrow{ font-family:var(--en); color:var(--accent); letter-spacing:.18em; font-size:.9rem; }
.contact-modal__eyebrow::before{ content:"( "; }
.contact-modal__eyebrow::after{ content:" )"; }
.contact-modal__title{ font-family:var(--serif); font-weight:500; font-size:1.5rem; letter-spacing:.06em; color:var(--ink); }
.contact-modal__lead{ color:var(--ink); line-height:1.85; font-size:var(--ts-lead); }
.contact-modal__form{ display:grid; gap:1rem; }
.contact-modal__field{ display:grid; gap:.38rem; }
.contact-modal__label{ font-weight:700; font-size:.9rem; color:var(--ink); display:flex; align-items:center; gap:.5rem; }
.contact-modal__required{ display:inline-flex; align-items:center; justify-content:center; padding:.1rem .45rem; background:color-mix(in srgb, var(--accent) 16%, transparent); color:var(--accent); font-size:.78rem; }
.contact-modal__optional{ display:inline-flex; align-items:center; justify-content:center; padding:.1rem .45rem; border:1px solid var(--line); color:var(--ink-soft); font-size:.78rem; font-weight:500; }
.contact-modal input,
.contact-modal textarea,
.contact-modal select{
  width:100%; border:1px solid var(--line); padding:.85rem 1rem; font-size:1rem;
  background:var(--base); color:var(--ink); transition:border-color .2s, box-shadow .2s;
}
.contact-modal input:focus,
.contact-modal textarea:focus,
.contact-modal select:focus{
  outline:none; border-color:var(--sky); box-shadow:0 0 0 3px color-mix(in srgb, var(--sky) 20%, transparent);
}
.contact-modal select{ appearance:none; -webkit-appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2323211E' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 1rem center; background-size:12px 8px; padding-right:2.5rem; }
.contact-modal textarea{ resize:vertical; min-height:140px; }
.contact-modal input:hover,
.contact-modal textarea:hover,
.contact-modal select:hover{ border-color:color-mix(in srgb, var(--sky) 45%, var(--line)); }
.contact-modal .is-invalid{ border-color:#c7352d !important; box-shadow:0 0 0 3px rgba(199,53,45,0.16); }
.contact-modal .is-dirty:invalid{ border-color:#c7352d; }
.contact-modal__hint{ display:block; font-size:var(--ts-meta); line-height:1.6; color:var(--ink-soft); }
.contact-modal__error{ display:none; font-size:var(--ts-meta); line-height:1.55; color:#b3261e; font-weight:600; }
.contact-modal__error:not(:empty){ display:block; }
.contact-modal__privacy-box{ display:grid; gap:.5rem; }
.contact-modal__privacy-heading{ font-weight:700; font-size:.95rem; color:var(--ink); margin:0; }
.contact-modal__privacy-note{ font-size:.82rem; color:var(--ink-soft); margin:0; }
.contact-modal__privacy-scroll{
  max-height:160px; overflow-y:auto; overscroll-behavior:contain; padding:1rem; border:1px solid var(--line);
  background:var(--base-2); font-size:.82rem; color:var(--ink-soft); line-height:1.7;
}
.contact-modal__privacy-scroll h4{ font-size:.85rem; font-weight:700; color:var(--ink); margin:.8rem 0 .3rem; }
.contact-modal__privacy-scroll h4:first-of-type{ margin-top:0; }
.contact-modal__privacy-scroll p{ margin:0 0 .4rem; }
.contact-modal__privacy-scroll ul{ margin:.2rem 0 .4rem; padding-left:1.2rem; }
.contact-modal__privacy-scroll li{ margin-bottom:.2rem; }
.contact-modal__agree{ display:flex; align-items:center; gap:.6rem; font-size:.9rem; font-weight:600; color:var(--ink); cursor:pointer; padding:.15rem 0; }
.contact-modal__agree input[type="checkbox"]{ width:18px; height:18px; accent-color:var(--sky); cursor:pointer; }
.contact-modal__actions{ display:flex; justify-content:flex-end; }
.contact-modal__submit{
  min-height:48px; background:var(--sky); color:var(--base); border:1px solid var(--sky); padding:.9rem 1.8rem;
  font-family:var(--sans); font-weight:700; letter-spacing:.04em; cursor:pointer; transition:background .15s ease, box-shadow .15s ease, transform .15s ease;
}
.contact-modal__submit:hover{ background:var(--sky-deep); box-shadow:0 10px 24px rgba(12,36,64,.14); transform:translateY(-1px); }
.contact-modal__submit:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; }
.contact-modal__submit:disabled{ opacity:.65; cursor:not-allowed; box-shadow:none; transform:none; }
.contact-modal__submit-loading{ display:inline-flex; align-items:center; gap:.5rem; }
.contact-modal__submit-loading[hidden]{ display:none; }
@keyframes contact-spin{ to{ transform:rotate(360deg); } }
.contact-modal__spinner{ animation:contact-spin .8s linear infinite; }

@media (max-width:599px){
  .contact-modal input,
  .contact-modal textarea,
  .contact-modal select{ font-size:16px; }
  .contact-modal__actions{ justify-content:stretch; }
  .contact-modal__submit{ width:100%; }
}
@media (min-width:720px){
  .contact-modal__content{ padding:2.2rem 2rem; }
  .contact-modal__title{ font-size:1.7rem; }
}
@media (prefers-reduced-motion:reduce){
  .contact-modal__submit{ transition:none; }
  .contact-modal__submit:hover{ transform:none; }
}

/* =========================================================
   Completion（contact-complete.html） — C案
========================================================= */
.contact-complete{ min-height:100vh; display:grid; place-items:center; padding:2.5rem 1rem; background:var(--base-2); }
.contact-complete__card{
  background:var(--base); border:1px solid var(--line); padding:2.4rem 2rem; max-width:720px; width:100%;
  display:grid; gap:1rem; text-align:center;
}
.contact-complete__eyebrow{ font-family:var(--en); color:var(--accent); letter-spacing:.18em; }
.contact-complete__title{ font-family:var(--serif); font-weight:500; font-size:1.7rem; letter-spacing:.06em; color:var(--ink); }
.contact-complete__text{ color:var(--ink); line-height:1.85; font-size:var(--ts-lead); }
.contact-complete__actions{ display:flex; flex-direction:column; gap:.75rem; justify-content:center; }
.contact-complete__button{
  display:inline-flex; justify-content:center; align-items:center; padding:.9rem 1.4rem;
  background:var(--sky); color:var(--base); border:1px solid var(--sky); font-weight:700; text-decoration:none;
}
.contact-complete__button:hover{ background:var(--sky-deep); color:var(--base); text-decoration:none; }
.contact-complete__button--outline{ background:transparent; color:var(--sky); border:1px solid var(--sky); }
.contact-complete__button--outline:hover{ background:var(--sky); color:var(--base); }
@media (min-width:720px){
  .contact-complete__actions{ flex-direction:row; }
  .contact-complete__title{ font-size:2rem; }
}
