/* ===== Page ===== */
.main{padding-top:64px;}
.breadcrumb{border-bottom:1px solid var(--border);background:var(--background);}
.breadcrumb ol{display:flex;align-items:center;gap:.5rem;padding:1rem 0;font-size:.875rem;color:var(--muted-foreground);}
.breadcrumb li{display:flex;align-items:center;}
.breadcrumb a:hover{color:var(--primary);}
.breadcrumb .icon{width:16px;height:16px;}
.breadcrumb .current{color:var(--foreground);font-weight:500;}
.title-band{background:linear-gradient(rgba(255,255,255,.6),rgba(255,255,255,.6)),url('../images/contact/contact-title.jpg') center/cover no-repeat;}
.title-band .container{padding:3.5rem 1rem;text-align:center;}
.title-en{font-size:.875rem;font-weight:500;color:var(--accent);letter-spacing:.1em;margin-bottom:.75rem;}
.title-ja{font-size:1.875rem;font-weight:700;color:var(--primary);}

/* Sections */
.section{padding:3.5rem 0;}
.section-bg{background:var(--background);}
.section-pt0{padding-top:0;}
.section-pb0{padding-bottom:0;}

/* Lead */
.lead{max-width:42rem;margin:0 auto;text-align:center;}
.lead p{font-size:1.0625rem;line-height:2;color:#323b44;}

/* Phone card */
.phone-card{max-width:52rem;margin:0 auto;background:var(--secondary);border-radius:0;padding:2rem 1.5rem;}
.phone-card .intro{text-align:center;font-size:1rem;line-height:1.7;color:#323b44;}
.phone-card dl{margin-top:1.5rem;display:flex;flex-direction:column;gap:.75rem;}
.phone-card .row{display:flex;align-items:center;justify-content:center;gap:.75rem;color:var(--foreground);}
.phone-card .row .icon{width:20px;height:20px;color:var(--primary);}
.phone-card .tel{font-size:1.5rem;font-weight:700;color:var(--primary);transition:color .2s;}
.phone-card .tel:hover{color:var(--accent);}
.phone-card dt{font-weight:500;}

/* Form */
.form{max-width:42rem;margin:0 auto;}
.form-fields{display:flex;flex-direction:column;gap:2rem;}
.field label,.field .field-label,.field legend{display:block;font-size:1rem;font-weight:700;color:var(--foreground);}
.badge{margin-left:.5rem;display:inline-block;border-radius:0;padding:.125rem .5rem;font-size:.75rem;vertical-align:middle;}
.badge-required{background:#ce5914;color:var(--accent-foreground);font-weight:700;}
.badge-optional{background:#d5dbe3;color:#4a5568;font-weight:500;}
.input,.textarea{margin-top:.5rem;display:block;width:100%;border:1px solid var(--border);background:var(--background);border-radius:0;padding:.75rem 1rem;font-size:1rem;font-family:inherit;color:var(--foreground);box-shadow:0 1px 2px rgba(0,0,0,.05);outline:none;transition:border-color .2s,box-shadow .2s;}
.input:focus,.textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(0,61,113,.2);}
.textarea{line-height:1.7;resize:vertical;}
.input-sm{max-width:20rem;}
.sub-fields{margin-top:.5rem;display:flex;flex-direction:column;gap:.75rem;}
.sub-fields .sub-label{display:block;font-size:.875rem;font-weight:400;color:var(--muted-foreground);margin-bottom:.25rem;}
.sub-fields .input{margin-top:0;}
fieldset{border:none;}
.radio-grid{margin-top:.75rem;display:grid;gap:.75rem;}
.radio-grid .radio-card{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:1.25rem;border:1px solid var(--border);background:var(--background);border-radius:0;padding:1rem;box-shadow:0 1px 2px rgba(0,0,0,.05);cursor:pointer;transition:border-color .2s,background .2s,box-shadow .2s;}
.radio-card:hover{border-color:var(--primary);}
.radio-card:has(input:checked){border-color:var(--primary);background:var(--secondary);box-shadow:0 0 0 3px rgba(0,61,113,.2);}
.radio-card input{width:1.25rem;height:1.25rem;flex-shrink:0;accent-color:var(--primary);display:block;margin:0;}
.radio-card span{font-size:1rem;line-height:1.25rem;color:var(--foreground);}
.form-submit{margin-top:2.5rem;text-align:center;}
.btn-submit{width:100%;background:#ce5914;color:var(--accent-foreground);font-weight:700;padding:.875rem 4rem;font-size:1.125rem;transition:background .2s;}
.btn-submit:hover{background:#b3661f;}
.form-note{max-width:42rem;margin:2.5rem auto 0;text-align:center;font-size:.875rem;line-height:1.7;color:var(--muted-foreground);}
.form-note a{font-weight:500;color:var(--primary);transition:color .2s;}
.form-note a:hover{color:var(--accent);}

/* ===== 送信結果の表示（JSによるAJAX送信用。send.php連携で使用） ===== */
.form-alert{max-width:48rem;margin:0 auto 1.5rem;padding:.9rem 1.1rem;border-radius:0;font-size:.9rem;}
.form-alert.error{background:#fdecea;color:#b3261e;border:1px solid #f5c2be;}
.form-thanks{max-width:48rem;margin:0 auto 2rem;padding:2rem;text-align:center;background:var(--secondary);border:1px solid var(--border);}
.form-thanks-title{font-size:1.25rem;font-weight:700;color:var(--primary);margin-bottom:.5rem;}
.field-error{display:block;margin-top:.4rem;font-size:.8rem;color:#b3261e;}

/* ===== Page-specific overrides (kept as original, currently unused since logo is now an image) ===== */
.nav-link.active{color:var(--primary);}
.logo-mark{border-radius:0;}
.footer-mark{border-radius:0;}


/* ===== Responsive (contact page specific) ===== */
@media(min-width:640px){
  .radio-grid{grid-template-columns:repeat(2,1fr);}
  .btn-submit{width:auto;}
}
@media(min-width:1024px){
  .main{padding-top:80px;}
  .title-band .container{padding:5rem 1rem;}
  .title-ja{font-size:2.25rem;}
  .section{padding:5rem 0;}
  .phone-card{padding:2rem 2.5rem;}
  .phone-card .intro{white-space:nowrap;}
  .phone-card .tel{font-size:1.875rem;}
}
