/* ========================================
   Responsive
   ======================================== */
@media (max-width: 900px) {
  .container, .container--wide, .container--narrow { padding: 0 24px; }
  .header-inner { height: 60px; padding: 0 20px; }
  .hero { margin-top: 60px; height: calc(100dvh - 60px); max-height: 640px; }
  .hero-content { padding: 0 24px 56px; }

  .header-toggle { display: flex; }
  .header-nav {
    display: none; position: fixed; top: 60px; left: 0; right: 0; bottom: 0;
    flex-direction: column; justify-content: space-between;
    background: var(--cream);
    padding: 0; overflow-y: auto; z-index: 200;
  }
  .header-nav.is-open { display: flex; }

  /* 上段：メニューリンク */
  .header-nav__links {
    display: flex; flex-direction: column; gap: 0;
    padding: 24px 20px;
  }
  .header-nav__links a {
    display: block; padding: 16px 0; font-size: .9rem;
    border-bottom: 1px solid var(--border);
  }
  .header-nav__links a::after { display: none; }
  .header-contact--pc { display: none; }

  /* 下段：会社情報＋お問い合わせ */
  .header-nav__footer {
    display: block;
    padding: 28px 20px 40px;
    border-top: 1px solid var(--border);
    background: var(--gray);
    text-align: center;
  }
  .header-nav__company {
    font-family: var(--font-serif);
    font-size: .95rem; font-weight: 600;
    margin-bottom: 8px;
  }
  .header-nav__address {
    font-size: .75rem; line-height: 2;
    color: var(--text-sub); margin-bottom: 20px;
  }
  .header-nav__cta {
    display: block; width: 100%;
    font-size: .8125rem; font-weight: 700;
    letter-spacing: .06em; padding: 14px;
    background: var(--green); color: var(--white);
    border-radius: 100px; text-align: center;
    transition: background .3s var(--ease);
  }
  .header-nav__cta:hover { background: var(--green-dark); }
	
	
/*コンタクトフォーム*/
	/*メールフォーム*/
.wpcf7 .cf{
    padding: 20px 0;
}
.wpcf7 .cf .title{
    display: inline-block;
	width: 100%;
    padding: 0 0 15px 0;
    position: static;
}
.wpcf7 .cf p,
.wpcf7 .cf .ken{
    display: block;
    width: 100%;
    margin: 0;
}
.wpcf7 .address p:nth-of-type(2){
    padding: 0;
    margin-left: 0;
}
.wpcf7 select{
    min-width: 100%; 
}
.cf .title .hissu {
	position: static;
	display: inline-block;
    transform: translateY(0) translateX(0);
    margin: 0 10px 0 0;
}
span.wpcf7-list-item {
  margin: 0!important;
}    
.cf .area,
.cf .time{
    display: block;
}
.cf .area1,
.cf .area2,
.cf .area3{
	display: inline-block;
}
.cf .area2,
.cf .area3{
    padding: 10px 0 0 0;
}
.cf .area input[type="text"] {
	width: 100%;
	min-width: 170px;
}
.address p:last-of-type{
	line-height: 1.3!important;
}
.wpcf7 input#addr{
	margin: 0 0 5px;
}
.wpcf7 .address p:nth-of-type(2) input {
  width: 100% !important;
}
.wpcf7 .wpcf7-submit, .wpcf7 .wpcf7-previous { 
	margin:30px auto 0; 
	font-size: 18px;
}
.mailform-wrap .btn input[type="submit"] {
	margin: 0 auto 2.083333333333333vw;
  border-radius: 4px;
}



  .message { padding: 72px 0 64px; }
  .sec { padding: 80px 0; }
  .sec-title { font-size: 1.2rem; }
  .cards3 { grid-template-columns: 1fr; gap: 16px; }
  .split { grid-template-columns: 1fr; min-height: auto; }
  .split--reverse .split-img { order: 0; }
  .split--reverse .split-body { order: 0; }
  .split-body { padding: 44px 24px; }
  .split-img { min-height: 260px; }
  .flow-steps { grid-template-columns: 1fr; gap: 32px; }
  .flow-steps::before { display: none; }
  .property-block { grid-template-columns: 1fr; }
  .property-img { min-height: 260px; }
  .property-body { padding: 36px 24px; }
  .problem-grid { grid-template-columns: 1fr; }
  .solution-grid { grid-template-columns: 1fr; }
  .flow-bar { grid-template-columns: 1fr 1fr; }
  .flow-bar__item::after { display: none; }
  .company-grid { grid-template-columns: 1fr; gap: 44px; }
  .contact-tabs { grid-template-columns: 1fr; }
  .choice-grid { grid-template-columns: 1fr; }
  .footer-body { grid-template-columns: 1fr; gap: 28px; padding-left: 24px; padding-right: 24px; }
  .page-header { padding: 72px 0 48px; }
}

@media (max-width: 480px) {
  .hero-catch { font-size: 1.5rem; }
  .message-catch { font-size: 1.1rem; }
  .sec { padding: 64px 0; }
  .sec-title { font-size: 1.1rem; }
  .flow-bar { grid-template-columns: 1fr; }
  .flow-bar__item { border-right: none; border-bottom: 1px solid var(--border); }
  .flow-bar__item:last-child { border-bottom: none; }
}
