.lead{color:var(--dim); font-size:15px; max-width:620px;}

.page-hero::after{content:""; position:absolute; top:-30%; right:-6%; width:520px; height:520px; border-radius:50%; background:radial-gradient(circle, rgba(108,47,133,.15), transparent 65%);}
.page-hero p{color:var(--dim); font-size:15px; max-width:650px;}

/* Contact section */
.contact{padding:25px 0 50px;}

.form-group{margin-bottom:26px;}
.form-group label{display:block; font-family:'Noto Sans JP', sans-serif; font-size:12.5px; color:var(--purple-deep); margin-bottom:10px; font-weight:600;}
.form-group label .req{color:var(--coral); margin-left:6px; font-size:11px;}
.form-group input[type="text"],
.form-group input[type="email"],
.form-group input[type="tel"],
.form-group select,
.form-group textarea{
  width:100%; border:1.5px solid var(--line-soft); border-radius:8px; padding:14px 16px;
  font-family:'Noto Sans JP', sans-serif; font-size:14.5px; color:var(--text); background:#fff;
  transition:.2s;
}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus{
  outline:none; border-color:var(--purple); box-shadow:0 0 0 3px rgba(108,47,133,.1);
}
.form-group textarea{resize:vertical; min-height:160px;}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:22px;}

.checkbox-row{display:flex; justify-content:center; align-items:flex-start; gap:12px; margin-bottom:32px; font-size:13.5px; color:var(--dim);}
.checkbox-row input{margin-top:3px; width:16px; height:16px; accent-color:var(--purple);}
.checkbox-row a{color:var(--purple); text-decoration:underline;}

.submit-btn{
  display:block; margin:0 auto;
  background:linear-gradient(90deg, var(--purple) 35%, var(--teal) 100%); color:#fff; padding:17px 46px;
  border:none; border-radius:2px; font-size:13.5px; font-weight:600; font-family:'Noto Sans JP', sans-serif;
  cursor:pointer;
}
.submit-btn:disabled{opacity:.5; cursor:default;}

.error-msg{color:var(--coral); font-size:12px; margin-top:8px; font-family:'Noto Sans JP', sans-serif; display:none;}
.form-group.invalid input, .form-group.invalid select, .form-group.invalid textarea{border-color:var(--coral);}
.form-group.invalid .error-msg{display:block;}

.thanks-panel{display:none; background:#fff; border:1.5px solid var(--line-soft); border-radius:16px; padding:70px 50px; text-align:center;}
.thanks-panel .icon{font-size:44px; margin-bottom:22px;}
.thanks-panel h3{font-size:22px; margin-bottom:14px; color:var(--purple-deep);}
.thanks-panel p{color:var(--dim); font-size:14px; max-width:440px; margin:0 auto;}

@media(max-width:900px){
  .form-row{grid-template-columns:1fr;}
  .thanks-panel{padding:50px 26px;}
  .contact{padding:16px 0 60px;}
}
