/* ── CONTACT PAGE ── */
.contact-layout{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line-d);min-height:calc(100vh - 55vh - 44px)}
.contact-info{background:var(--light);color:var(--dark);padding:100px 56px;display:flex;flex-direction:column}
.contact-form-col{background:var(--dark);padding:100px 56px;border-left:1px solid var(--line-d)}
.contact-info-heading{font-family:'Noto Serif JP',serif;font-size:clamp(1.4rem,3vw,2.4rem);font-weight:300;line-height:1.35;margin-bottom:24px;color:var(--dark)}
.contact-info-body{font-size:.8rem;color:var(--mid-l);line-height:2.3;margin-bottom:48px}
.contact-info-list{display:flex;flex-direction:column;gap:0;margin-bottom:56px}
.contact-info-item{padding:20px 0;border-top:1px solid var(--line-l);display:grid;grid-template-columns:100px 1fr;gap:16px;align-items:flex-start}
.ci-label{font-size:.5rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mid-l);padding-top:2px}
.ci-value{font-size:.8rem;color:var(--dark);line-height:1.8}
.contact-flow{margin-top:auto;padding-top:48px;border-top:1px solid var(--line-l)}
.contact-flow-title{font-size:.52rem;letter-spacing:.25em;text-transform:uppercase;color:var(--mid-l);margin-bottom:20px}
.contact-flow-steps{display:flex;flex-direction:column;gap:0}
.contact-flow-step{display:flex;gap:16px;padding:14px 0;border-top:1px solid var(--line-l);align-items:flex-start}
.cfs-n{font-family:'Playfair Display',serif;font-style:italic;font-size:.75rem;color:var(--mid-l);flex-shrink:0;padding-top:2px}
.cfs-text{font-size:.75rem;color:rgba(12,11,9,.65);line-height:1.8}
.contact-form-heading{font-family:'Noto Serif JP',serif;font-size:1.1rem;font-weight:300;margin-bottom:40px;color:var(--light)}
.radio-group{display:flex;flex-direction:column;gap:0}
.radio-group .wpcf7-radio{display:flex;flex-direction:column}
.radio-group .wpcf7-list-item{margin:0;padding:12px 0;border-top:1px solid var(--line-d)}
.radio-group .wpcf7-list-item:last-child{border-bottom:1px solid var(--line-d)}
.radio-group .wpcf7-list-item label{display:flex;align-items:center;gap:12px;cursor:pointer;margin:0}
.radio-group input[type="radio"]{width:14px;height:14px;border:1px solid rgba(245,242,236,.3);border-radius:50%;background:none;-webkit-appearance:none;appearance:none;flex-shrink:0;cursor:pointer;transition:border-color .3s;margin:0}
.radio-group input[type="radio"]:checked{border-color:var(--light);background:var(--light);box-shadow:inset 0 0 0 3px var(--dark)}
.radio-group .wpcf7-list-item-label{font-size:.78rem;color:rgba(245,242,236,.7);line-height:1.6}
.check-item{display:flex;align-items:flex-start;gap:12px;padding:16px 0;border-top:1px solid var(--line-d);cursor:pointer}
.check-item br{display:none}
.check-item .wpcf7-form-control-wrap{flex-shrink:0;display:flex;margin-top:2px}
.check-item .wpcf7-list-item{margin:0;padding:0;display:flex}
.check-item input[type="checkbox"]{width:14px;height:14px;border:1px solid rgba(245,242,236,.3);background:none;-webkit-appearance:none;appearance:none;cursor:pointer;transition:all .3s;margin:0;flex-shrink:0}
.check-item input[type="checkbox"]:checked{background:var(--light) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath fill='none' stroke='%230c0b09' stroke-width='1.5' d='M4 7.5 L6 9.5 L10 4.5'/%3E%3C/svg%3E") no-repeat center;border-color:var(--light)}
.check-label{font-size:.72rem;color:rgba(245,242,236,.5);line-height:1.8}
.check-label a{color:rgba(245,242,236,.5);text-decoration:underline}
.form-success{display:none;margin-top:24px;padding:20px 24px;border:1px solid rgba(245,242,236,.2);font-size:.78rem;color:rgba(245,242,236,.7);line-height:1.9}
.form-note{font-size:.62rem;color:var(--mid-d);line-height:1.9;margin-top:16px}

/* CF7 Message Overrides */
.wpcf7 form .wpcf7-response-output {
  margin: 32px 0 0 0 !important;
  padding: 0 !important;
  border: none !important;
  font-family: 'Noto Sans JP', serif;
  font-size: .85rem;
  font-weight: 300;
  color: var(--light) !important;
  line-height: 1.8;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output {
  color: #e57373 !important;
}
span.wpcf7-not-valid-tip {
  font-family: 'Space Grotesk', sans-serif;
  font-size: .65rem;
  color: #e57373;
  margin-top: 8px;
  display: block;
}
.faq-list{display:flex;flex-direction:column}
.faq-item{border-top:1px solid var(--line-d);overflow:hidden}
.faq-q{padding:28px 0;display:flex;align-items:center;justify-content:space-between;cursor:pointer;font-family:'Noto Serif JP',serif;font-size:.95rem;font-weight:300;line-height:1.5;gap:24px}
.faq-q::after{content:'+';flex-shrink:0;font-family:'Playfair Display',serif;font-style:italic;font-size:1.2rem;color:var(--mid-d);transition:transform .3s}
.faq-item.open .faq-q::after{transform:rotate(45deg)}
.faq-a{font-size:.8rem;color:var(--mid-d);line-height:2.2;padding-bottom:28px;display:none}
.faq-item.open .faq-a{display:block}
@media(max-width:768px){
  .contact-layout{grid-template-columns:1fr}
  .contact-info{padding:72px 24px}
  .contact-form-col{padding:72px 24px;border-left:none;border-top:1px solid var(--line-d)}
  .contact-info-item{grid-template-columns:80px 1fr}
}