/* HOME CONTACT専用。共通CSSと既存セクションは変更しない。 */
.contact-section {
  padding:100px 0;
  background:linear-gradient(110deg,#3038de 0%,#2868ed 55%,#278cf7 100%);
  color:#fff;
}
.contact-section .contact-section__inner {
  width:min(1200px,calc(100% - 96px));
  margin-inline:auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(300px,360px);
  align-items:center;
  gap:80px;
}
.contact-section .contact-section__label { margin:0 0 18px;color:#fff;font:600 11px/1.5 Arial,sans-serif;letter-spacing:.18em; }
.contact-section .contact-section__title { margin:0 0 22px;color:#fff;font-size:clamp(32px,3vw,44px);line-height:1.6;font-weight:700; }
.contact-section .contact-section__description { max-width:550px;margin:0;color:#fff;font-size:15px;line-height:2;overflow-wrap:anywhere;text-wrap:balance; }
.contact-section .contact-section__cta {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  width:100%;
  min-height:68px;
  padding:20px 28px;
  border:1px solid #ffffffb3;
  border-radius:4px;
  background:transparent;
  color:#fff;
  font-size:14px;
  line-height:1.7;
  font-weight:600;
  text-decoration:none;
  cursor:default;
  transition:background-color .2s ease;
}
.contact-section .contact-section__arrow { display:block;flex:none;width:20px;height:20px;transition:transform .2s ease; }
.contact-section .contact-section__cta:hover { background:#ffffff12; }
.contact-section .contact-section__cta:hover .contact-section__arrow { transform:translateX(3px); }
.contact-section .contact-section__cta:focus-visible { outline:3px solid #fff;outline-offset:5px; }
/* 補足文字の削除後もPCのCTA位置を維持する。 */
.contact-section .contact-section__action { padding-bottom:28px; }
@media(prefers-reduced-motion:no-preference) {
  .contact-section.contact-section--animated [data-contact-reveal] { transition:opacity .65s ease,translate .65s ease; }
  .contact-section.contact-section--pending [data-contact-reveal] { opacity:0;translate:0 10px; }
  .contact-section.contact-section--animated [data-contact-reveal="title"] { transition-delay:.12s; }
  .contact-section.contact-section--animated [data-contact-reveal="description"] { transition-delay:.24s; }
  .contact-section.contact-section--animated [data-contact-reveal="cta"] { transition-delay:.36s; }
}
@media(min-width:768px) and (max-width:1023px) {
  .contact-section { padding:80px 0; }
  .contact-section .contact-section__inner { width:calc(100% - 64px);grid-template-columns:minmax(0,1fr) 280px;gap:36px; }
}
@media(max-width:767px) {
  .contact-section { padding:72px 0; }
  .contact-section .contact-section__inner { width:calc(100% - 40px);grid-template-columns:1fr;gap:32px; }
  .contact-section .contact-section__action { padding-bottom:0; }
  .contact-section .contact-section__label { font-size:10px;margin-bottom:16px; }
  .contact-section .contact-section__title { font-size:30px;margin-bottom:20px; }
  .contact-section .contact-section__description { max-width:none;font-size:14px;line-height:1.95; }
  .contact-section .contact-section__cta { min-height:60px;padding:17px 22px;gap:16px; }
}
@media(max-width:359px) {
  .contact-section .contact-section__inner { width:calc(100% - 32px); }
  .contact-section .contact-section__cta { padding-inline:18px; }
}
@media(prefers-reduced-motion:reduce) {
  .contact-section [data-contact-reveal] { opacity:1;translate:none;transition:none; }
  .contact-section .contact-section__cta,
  .contact-section .contact-section__arrow { transition:none; }
  .contact-section .contact-section__cta:hover .contact-section__arrow { transform:none; }
}


/* CONTACTを元の説明文上へ配置。共通の見出し書体・サイズを維持。 */
.contact-section .contact-home-heading{position:static;margin:0 0 22px;z-index:auto}

.contact-section .contact-home-heading{color:#FFFFFF}

/* HOMEお問い合わせ説明文の色・サイズ。 */
.contact-section .contact-section__description{color:#FFFFFF!important;font-size:17px}
@media(max-width:767px){.contact-section .contact-section__description{font-size:16px}}

.contact-section .contact-section__cta{background:#FFFFFF;border-color:#FFFFFF;color:#3154E8}
.contact-section .contact-section__cta:hover{background:#f3f7fc}
