.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 :is(h3,h4){ font-size:.85rem; font-weight:700; color:var(--ink); margin:.8rem 0 .3rem; }
.contact-modal__privacy-scroll :is(h3,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; }
}

:root{--z-modal:1200;--ts-lead:1.125rem;--accent-on-dark:#b8965e}
[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
#siteHeader{display:block;width:100%;padding:var(--m) var(--gutter)}.hd{display:flex;gap:var(--m);align-items:center;justify-content:space-between}.hd .brand{flex-shrink:0}.hd .brand img{width:140px;height:auto;filter:brightness(0) invert(1)}.hd nav{font:13px var(--sans)}.hd nav ul{display:flex;gap:18px;list-style:none;margin:0;padding:0}.hd nav small{display:none}.hd-tel{font:20px var(--en);text-decoration:none}.hd-tel small{display:block;font:10px var(--sans);color:inherit}.hd-cta{font-size:11px;text-decoration:none;border:1px solid currentColor;border-radius:30px;padding:var(--s)}.m-nav-toggle{display:none}.m-nav{position:fixed;inset:0;z-index:1000;visibility:hidden;background:var(--base);color:var(--ink);padding:var(--l);overflow:auto;display:block}.m-nav.is-open{visibility:visible}.m-nav__list{list-style:none;padding:0;display:grid;gap:var(--m)}.m-nav small{font:11px var(--sans);margin-left:var(--s)}.m-nav__close{margin:var(--l) 0;padding:var(--s);font:inherit}.m-nav__tel{display:block}.m-nav__tel small{display:block}.c-fixed-cv{display:none}.l-footer{padding:var(--gap) var(--gutter);background:var(--sage-dark);color:var(--base)}.ft{display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--l)}.ft-brand img{height:auto}.ft-brand p,.copy{font-size:11px;margin-top:var(--m)}.ft-nav{display:block;font:13px var(--sans)}.ft-nav ul{padding:0;list-style:none;display:grid;gap:var(--s)}.ft-nav small{color:inherit;margin-left:var(--s)}.p-front-mv__cta-button{display:inline-flex;gap:var(--m);padding:var(--s) var(--m);border:1px solid currentColor;border-radius:30px;text-decoration:none}.contact-modal nav{display:block}.contact-modal__content{color:var(--ink)}
@media(max-width:1100px){.hd nav,.hd-tel{display:none}.hd{gap:var(--s)}.m-nav-toggle{display:block;background:transparent;border:1px solid currentColor;border-radius:20px;padding:var(--s);color:inherit;font:12px var(--sans)}}
@media(max-width:959px){.hd-cta{display:none}#siteHeader{padding:var(--m)}.m-nav a{display:block!important}.ft{grid-template-columns:1fr 1fr}.ft-brand{grid-column:1/-1}.ft-nav a{display:block!important}.c-fixed-cv{display:grid;grid-template-columns:1fr 1.5fr;position:fixed;bottom:0;left:0;right:0;z-index:30;background:var(--base);border-top:1px solid var(--line)}.c-fixed-cv a{padding:16px var(--s);text-align:center;font-size:12px;text-decoration:none}.c-fixed-cv .m-cv{background:var(--sage-dark);color:var(--base)}body{padding-bottom:60px}.draft-badge{bottom:65px}}
