@charset "UTF-8";

@import url("https://fonts.googleapis.com/css2?family=Shippori+Mincho:wght@400;700&family=Unbounded:wght@700&family=Zen+Kaku+Gothic+New:wght@400;700&display=swap");

:root {
  --contact-navy: #232b56;
  --contact-gold: #c8b687;
  --contact-bg: #e6e7ec;
  --contact-serif: "Shippori Mincho", "Noto Serif JP", serif;
  --contact-sans: "Zen Kaku Gothic New", "Noto Sans JP", sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html, body { overflow-x: hidden; }
body { color: var(--contact-navy); font-family: var(--contact-sans); }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.fade-in { opacity: 0; transform: translateY(32px); transition: opacity .8s ease, transform .8s ease; }
.fade-in.is-visible { opacity: 1; transform: none; }

.contact-page-hero { position: relative; height: 353px; background: var(--contact-bg); }
.contact-page-hero__heading { position: absolute; top: 176px; left: max(40px, calc((100% - 1290px) / 2)); display: flex; align-items: flex-end; gap: 20px; }
.contact-page-hero__heading h1 { font-family: "Unbounded", var(--contact-sans); font-size: 40px; font-weight: 700; line-height: 1; letter-spacing: 3.2px; }
.contact-page-hero__heading p { color: var(--contact-gold); font-family: var(--contact-serif); font-size: 16px; font-weight: 700; }
.contact-page-hero__breadcrumb { position: absolute; top: 180px; right: max(40px, calc((100% - 1290px) / 2)); font-family: var(--contact-serif); font-size: 14px; line-height: 50px; }
.contact-page-hero__breadcrumb a { color: inherit; }

.contact-content { min-height: 2289px; padding-top: 31px; background: var(--contact-bg); }
.contact-lead { padding-top: 0; text-align: center; }
.contact-lead h2 { font-family: var(--contact-serif); font-size: 32px; font-weight: 700; line-height: 48px; }
.contact-lead p { margin-top: 29px; font-size: 16px; line-height: 1.8; }
.contact-lead strong { font-weight: 700; }

.contact-steps { position: relative; display: grid; width: 764px; grid-template-columns: repeat(3, 1fr); margin: 170px auto 0; padding: 0; list-style: none; }
.contact-steps::before, .contact-steps::after { position: absolute; top: 15px; height: 2px; content: ""; background-size: 100% 2px; }
.contact-steps::before { left: 174px; width: 147px; background-image: url("../image/contact/step-line-active.svg"); }
.contact-steps::after { right: 174px; width: 147px; background-image: url("../image/contact/step-line.svg"); }
.contact-steps--complete::after { background-image: url("../image/contact/step-line-active.svg"); }
.contact-steps li { z-index: 1; display: flex; align-items: center; justify-content: center; gap: 11px; font-size: 18px; }
.contact-steps__circle { position: relative; display: block; width: 26px; height: 26px; flex: 0 0 26px; }
.contact-steps__circle > img:first-child { width: 100%; height: 100%; }
.contact-steps__circle b { position: absolute; inset: 0; display: grid; font-family: "Unbounded", sans-serif; font-size: 14px; place-items: center; }
.contact-steps__check { position: absolute; top: 8px; left: 6px; width: 14px; height: 9px; }

.contact-form { width: min(1135px, calc(100% - 80px)); margin: 83px auto 0; color: #000; }
.contact-form__bg{ padding: 90px 132px 55px 92px;background-color: #fff; }
.contact-form fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.contact-form legend, .contact-form__field label { font-size: 16px; font-weight: 700; }
.contact-form__purpose { display: grid; grid-template-columns: 103px 1fr; }
.contact-form__purpose legend { float: left; width: 103px; padding-top: 5px; }
.contact-form__purpose > div { display: flex; flex-direction: column; gap: 11px; }
.contact-form label { cursor: pointer; }
/* radio html */
.contact-form input[type="radio"] { position: absolute; width: 1px; height: 1px; opacity: 0; }
.contact-form input[type="radio"] + span { position: relative; display: inline-flex; align-items: center; gap: 8px; font-size: 14px; }
.contact-form input[type="radio"] + span::before { width: 16px; height: 16px; flex: 0 0 16px; background: url("../image/contact/radio.svg") center / contain no-repeat; content: ""; }
.contact-form input[type="radio"]:checked + span::before { background-image: url("../image/contact/radio-checked.svg"); }
.contact-form input[type="radio"]:focus-visible + span { outline: 2px solid var(--contact-gold); outline-offset: 3px; }
/* radio html */
/* radio wp */
.contact-form__purpose .wpcf7-form-control-wrap legend { float: left; width: 103px; padding-top: 5px; }
.contact-form__purpose .wpcf7-form-control-wrap > .wpcf7-form-control { display: flex; flex-direction: column; gap: 11px; }
.contact-form .contact-form__purpose input[type="radio"] { position: absolute; width: 1px; height: 1px; opacity: 0; }
.contact-form .contact-form__purpose input[type="radio"] + span { position: relative; display: inline-flex; align-items: center; gap: 8px; font-size: 14px; }
.contact-form .contact-form__purpose input[type="radio"] + span::before { width: 16px; height: 16px; flex: 0 0 16px; background: url("../image/contact/radio.svg") center / contain no-repeat; content: ""; }
.contact-form .contact-form__purpose input[type="radio"]:checked + span::before { background-image: url("../image/contact/radio-checked.svg"); }
.contact-form .contact-form__purpose input[type="radio"]:focus-visible + span { outline: 2px solid var(--contact-gold); outline-offset: 3px; }
/* radio wp */
.contact-form__field { margin-top: 26px; }
.contact-form__purpose + .contact-form__field { margin-top: 55px; }
.contact-form__field label { display: block; margin-bottom: 6px; }
.contact-form__reply { display:grid; grid-template-columns:220px minmax(0,1fr); gap:30px; margin-top:26px!important; }
.contact-form__reply legend { padding-top:5px; }
.contact-form__reply-options .wpcf7-radio { display:flex; flex-direction:column; gap:11px; }
.contact-form__reply-options .wpcf7-list-item { margin:0; }
.contact-form__required { display:inline-block; margin-left:8px; color:#b42318; font-size:12px; }
.contact-form__reply-time { margin-top:26px; padding:28px 32px; border-radius:4px; background:var(--contact-bg); }
.contact-form__reply-time[hidden] { display:none!important; }
.contact-form__reply-time legend { margin-bottom:18px; }
.contact-form__reply-time-options .wpcf7-radio { display:flex; flex-wrap:wrap; gap:12px 24px; }
.contact-form__reply-time-options .wpcf7-list-item { margin:0; }
.contact-form input[type="text"], .contact-form input[type="tel"], .contact-form input[type="email"], .contact-form textarea { display: block; width: 100%; border: 1px solid #aeaeae; border-radius: 4px; background: #fff; color: #000; font: 14px var(--contact-sans); }
.contact-form input[type="text"], .contact-form input[type="tel"], .contact-form input[type="email"] { height: 42px; padding: 0 15px; }
.contact-form textarea { height: 116px; padding: 9px 15px; resize: vertical; }
.contact-form ::placeholder { color: #898989; opacity: 1; }
.contact-form input:focus, .contact-form textarea:focus { outline: 2px solid var(--contact-gold); outline-offset: 1px; }

.contact-survey { margin-top: 51px !important; padding: 39px 40px 41px !important; border-radius: 4px !important; background: var(--contact-bg); }
.contact-survey legend { transform: translateY(25px); font-size: 14px; }
.contact-survey legend::before { display: inline-block; width: 31px; height: 1px; margin-right: 10px; background: url("../image/contact/form-divider.svg") center / contain no-repeat; vertical-align: middle; content: ""; }
.contact-survey > p { margin-top: 49px; font-size: 14px; font-weight: 700; }
.contact-survey__choices { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 15px; }
.contact-survey__other { display: block; margin-top: 18px; }
.contact-survey__other input { height: 30px !important; border: 0 !important; }

.contact-form__submit { display: flex; width: 433px; height: 48px; align-items: center; justify-content: center; gap: 25px; margin: 110px auto 0; border: 0; border-radius: 4px; background: var(--contact-navy); color: #fff; cursor: pointer; transition: filter .3s ease; }
.contact-form__submit, .contact-form__submit span { font-family: "Unbounded", var(--contact-sans); font-size: 14px; font-weight: 700; letter-spacing: .4px; }
.contact-form__submit img { width: 28.4px; height: 19.46px; transition: transform .3s ease; }
.contact-form__submit:hover { filter: brightness(1.15); }
.contact-form__submit:hover img { transform: translateX(5px); }
.contact-form__privacy { display: block; width: max-content; margin: 28px auto 0; border-bottom: 1px solid var(--contact-navy); color: var(--contact-navy); font-size: 14px; font-weight: 700; }
.contact-form--cf7 .wpcf7-form { margin:0; }
.contact-form--cf7 .wpcf7-form-control-wrap { display:block; }
.contact-form--cf7 .wpcf7-radio .wpcf7-list-item { display:block; margin:0 0 11px; }
.contact-form--cf7 .contact-form__reply-options .wpcf7-list-item,.contact-form--cf7 .contact-form__reply-time-options .wpcf7-list-item { margin:0; }
.contact-form--cf7 .wpcf7-not-valid-tip { margin-top:6px; color:#b42318; font-size:13px; }
.contact-form--cf7 .wpcf7-response-output { margin:24px 0 0!important; padding:12px 16px!important; font-size:14px; }
.contact-form--cf7 input[type="submit"] { font-family:"Unbounded",var(--contact-sans); font-size:14px; font-weight:700; letter-spacing:.4px; }
.contact-form--cf7 .contact-form__acceptance { margin-top:55px; text-align:center; }
.contact-form--cf7 .contact-form__submit { margin-top:35px; }
.contact-form__notice { text-align:center; line-height:1.8; }
.contact-content--confirm { min-height:1650px; }
.contact-form--confirm { min-height:0; padding-bottom:90px; background:transparent; }
.contact-confirm__list,.contact-confirm-list { margin:0; }
.contact-confirm__row,.contact-confirm-list>div { display:grid; grid-template-columns:220px minmax(0,1fr); gap:30px; align-items:start; padding:25px 0; border-bottom:1px solid #d8d8d8; }
.contact-confirm__row:first-child,.contact-confirm-list>div:first-child { padding-top:0; }
.contact-confirm__row:last-child,.contact-confirm-list>div:last-child { padding-bottom:0; border-bottom:0; }
.contact-confirm__row dt,.contact-confirm-list dt { font-size:16px; font-weight:700; line-height:1.8; }
.contact-confirm__row dd,.contact-confirm-list dd { min-width:0; margin:0; font-size:14px; line-height:1.8; }
.contact-confirm__row dd .wpcf7-form-control-wrap { display:block; }
.contact-confirm__row dd input,.contact-confirm__row dd textarea { width:100%; height:auto; min-height:0; padding:0; border:0; background:transparent; color:inherit; font:inherit; line-height:inherit; pointer-events:none; }
.contact-confirm__buttons,.contact-confirm-actions { display:flex; justify-content:center; gap:24px; margin-top:80px; }
.contact-confirm__buttons .wpcf7-previous,.contact-confirm__buttons .wpcf7-submit,.contact-confirm-actions .wpcf7-previous,.contact-confirm-actions .wpcf7-submit { width:320px; height:48px; margin:0; border:1px solid var(--contact-navy); border-radius:4px; cursor:pointer; transition:filter .3s ease; }
.contact-confirm__buttons .wpcf7-previous,.contact-confirm-actions .wpcf7-previous { background:#fff; color:var(--contact-navy); font-size:14px; font-weight:700; }
.contact-confirm__buttons .wpcf7-submit,.contact-confirm-actions .wpcf7-submit { background-color:var(--contact-navy); color:#fff; }
.contact-confirm__buttons .wpcf7-previous:hover,.contact-confirm__buttons .wpcf7-submit:hover,.contact-confirm-actions .wpcf7-previous:hover,.contact-confirm-actions .wpcf7-submit:hover { filter:brightness(1.1); }
.contact-content--thanks { min-height:1100px; }
.contact-thanks { width:min(900px,calc(100% - 80px)); margin:90px auto 0; padding:80px; background:#fff; text-align:center; }
.contact-thanks p { line-height:2; }
.contact-thanks__button { margin-top:65px; text-decoration:none; }

.contact-content + .footer { background: #030c3d; }

.contact-form input.contact-form__submit--arrow {
  padding: 0 70px 0 30px;
  background-color: #232b56;
  background-image: url("../image/contact/submit-arrow.svg");
  background-repeat: no-repeat;
  background-position: right 24px center;
  background-size: 23px 12px;
  color: #fff;
  margin-bottom: 30px;
}

.contact-form__field > p > br{
  display: none;
}

.wpcf7-spinner{
  display: none;
}

.contact-survey .contact-survey__choices + p{
  margin-top: 14px;
}

@media (max-width: 767px) {
  body { font-size: 14px; }
  .contact-page-hero { height: 260px; }
  .contact-page-hero__heading { top: 118px; left: 24px; align-items: flex-start; flex-direction: column; gap: 10px; }
  .contact-page-hero__heading h1 { font-size: 27px; letter-spacing: 1.5px; }
  .contact-page-hero__heading p { font-size: 14px; }
  .contact-page-hero__breadcrumb { top: auto; right: 24px; bottom: 20px; font-size: 14px; line-height: 1.5; }
  .contact-content { min-height: 0; padding: 70px 0 90px; }
  .contact-lead { padding: 0 24px; }
  .contact-lead h2 { font-size: 21px; line-height: 1.65; }
  .contact-lead p { margin-top: 25px; font-size: 14px; line-height: 1.9; text-align: left; }
  .contact-lead p br { display: none; }
  .contact-steps { width: calc(100% - 48px); margin-top: 75px; }
  .contact-steps::before, .contact-steps::after { width: calc(20.333%); top: 12px; }
  .contact-steps::before { left: calc(16.666% + 23px); }
  .contact-steps::after { right: calc(16.666% + 23px); }
  .contact-steps li { flex-direction: column; gap: 7px; font-size: 14px; }
  .contact-form { width: calc(100% - 40px); min-height: 0; margin-top: 52px; padding: 38px 20px 45px; background: #fff; }
  .contact-form__purpose { display: block; }
  .contact-form__purpose legend { float: none; width: auto; padding: 0; }
  .contact-form__purpose > div { gap: 14px; margin-top: 20px; }
  .contact-form__purpose + .contact-form__field { margin-top: 42px; }
  .contact-form__field { margin-top: 24px; }
  .contact-form__reply { display:block; margin-top:24px!important; }
  .contact-form__reply legend { padding:0; }
  .contact-form__reply-options { margin-top:14px; }
  .contact-form__reply-time { margin-top:24px; padding:24px 18px; }
  .contact-form__reply-time legend { margin-bottom:14px; line-height:1.7; }
  .contact-form__reply-time-options .wpcf7-radio { flex-direction:column; gap:12px; }
  .contact-form legend, .contact-form__field > label { font-size: 14px; }
  .contact-form input[type="text"], .contact-form input[type="tel"], .contact-form input[type="email"], .contact-form textarea { font-size: 14px; }
  .contact-form textarea { min-height: 150px; }
  .contact-survey { margin-top: 42px !important; padding: 26px 18px 25px !important; }
  .contact-survey legend { width: 100%; transform: translateY(16px); line-height: 1.7; }
  .contact-survey legend::before { display: none; }
  .contact-survey > p { margin-top: 45px; line-height: 1.7; }
  .contact-survey__choices { gap: 12px 18px; }
  .contact-survey__other { margin-top: 22px; }
  .contact-form__submit { width: 100%; height: auto; min-height: 58px; gap: 10px; margin-top: 65px; padding: 10px 12px; }
  .contact-form__submit span { font-family: var(--contact-sans); font-size: 14px; line-height: 1.5; }
  .contact-form__submit img { width: 24px; height: 16px; flex: 0 0 24px; }
  .contact-form__privacy { margin-top: 25px; font-size: 14px; }
  .contact-content--confirm,.contact-content--thanks { min-height:0; }
  .contact-form--confirm { padding:0; background:transparent; }
  .contact-form--confirm .contact-form__bg { padding:38px 20px 45px; }
  .contact-form__bg{ padding: 0; }
  .contact-confirm__row,.contact-confirm-list>div { display:block; padding:20px 0; }
  .contact-confirm__row:first-child,.contact-confirm-list>div:first-child { padding-top:0; }
  .contact-confirm__row dt,.contact-confirm-list dt { font-size:14px; }
  .contact-confirm__row dd,.contact-confirm-list dd { margin-top:10px; font-size:14px; }
  .contact-confirm__buttons,.contact-confirm-actions { flex-direction:column-reverse; gap:14px; margin-top:50px; }
  .contact-confirm__buttons .wpcf7-previous,.contact-confirm__buttons .wpcf7-submit,.contact-confirm-actions .wpcf7-previous,.contact-confirm-actions .wpcf7-submit { width:100%; min-height:54px; }
  .contact-thanks { width:calc(100% - 40px); margin-top:52px; padding:50px 20px; }
  .contact-thanks p br { display:none; }
  .contact-thanks__button { display:flex; margin-top:45px; }
  .footer__brand p, .footer nav { font-size: 14px; }
  .contact-form input.contact-form__submit--arrow {background-image: none;}
}

@media (prefers-reduced-motion: reduce) { .fade-in, .contact-form__submit img { transition: none; } }
