.hero { padding: 28px 0; }
.hero p { font-weight: 400; max-width: 720px; }
.panel { border-radius: 8px; box-shadow: none; }
.summary-compact { display: flex; align-items: center; gap: 16px; }
.summary-compact img { width: 96px; height: 70px; object-fit: contain; background: #f5f7f6; border-radius: 4px; }
.summary-compact strong { display: block; font-size: 20px; line-height: 1.4; }
.summary-compact span { display: block; font-size: 15px; line-height: 1.5; margin-top: 6px; color: #183b2d; }
#summary-details { margin-top: 16px; font-size: 13px; }
#summary-details > summary { padding: 8px 0; cursor: pointer; color: #51665a; }
.summary-list li { padding: 12px 0; }
.summary-list strong { font-size: 15px; }
.field label { font-size: 14px; font-weight: 600; }
.field:has(input:required) > label::after, .field:has(select:required) > label::after, .field:has(textarea:required) > label::after { content: '必須'; display: inline-block; white-space: nowrap; margin-left: 8px; color: #6b4f16; font-size: 11px; font-weight: 400; }
.request-type label { padding: 14px; border-radius: 6px; min-width: 0; grid-template-columns: 18px minmax(0,1fr); align-content: start; align-items: center; }
.request-type label span { font-size: 16px; }
.request-type label small { font-weight: 400; line-height: 1.6; grid-column: 1 / -1; }
.request-type input[type=radio] { appearance: auto; position: static; opacity: 1; width: 18px; height: 18px; min-height: 18px; padding: 0; margin: 0; accent-color: #8a691d; }
.request-type label:has(input:checked) { border: 2px solid #8a691d; background: #fffcf2; box-shadow: none; padding: 13px; }
.field input, .field select, .field textarea { font-size: 16px; min-height: 48px; border-radius: 6px; }
.optional-note { font-size: 12px; font-weight: 400; }
.form-note, .consent-check, .steps p { font-weight: 400; line-height: 1.7; }
.request-type .request-option { display:grid; grid-template-columns:20px minmax(0,1fr); align-content:start; align-items:center; gap:8px; min-width:0; min-height:108px; padding:15px; border:1px solid #d4d6dc; border-radius:6px; background:#fff; }
.request-option svg { width:20px; height:20px; color:#685521; }
.request-option span { font-size:16px; }
.request-option small { grid-column:1 / -1; font-weight:400; line-height:1.6; }
.request-option:focus-visible { outline:3px solid #997927; outline-offset:3px; }
.request-type .inquiry-option { border:2px solid #8a691d; padding:14px; background:#fffcf2; }
.request-type .purchase-option:not([aria-disabled=true]) { background:#183b2d; color:#fff; border-color:#183b2d; }
.purchase-option:not([aria-disabled=true]) svg,.purchase-option:not([aria-disabled=true]) small { color:#fff; }
.request-type .purchase-option[aria-disabled=true] { background:#f4f6f4; color:#647068; cursor:not-allowed; }
.purchase-option[aria-disabled=true] svg { color:#758079; }
.checkout-status { margin:12px 0 24px; font-size:12px; color:#665b40; line-height:1.8; background:#f7f4eb; border-left:3px solid #c5ac6b; padding:10px 12px; }
.checkout-status.available { background:#eef5f0; color:#294a36; border-color:#6e957b; }
#form-heading { scroll-margin-top:24px; }
[hidden] { display: none !important; }
.request-type .request-option { color: #183b2d; }
.request-type .inquiry-option { border: 1px solid #d4d6dc; padding: 15px; background: #fff; }
.request-type .request-option[aria-current=true] { border: 2px solid #8a691d; padding: 14px; background: #fffcf2; }
.purchase-destination { padding: 20px 0; border-top: 1px solid #dce3df; }
.purchase-destination h3 { margin: 0 0 8px; font-size: 18px; }
.purchase-destination > p { line-height: 1.7; }
.destination-button { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 12px 16px; border: 1px solid #183b2d; border-radius: 6px; color: #fff; background: #183b2d; font-weight: 700; }
.destination-button.secondary { background: #fff; color: #183b2d; }
.destination-button[aria-disabled=true] { background: #eef1ef; color: #59655f; border-color: #cbd3ce; cursor: not-allowed; }
.destination-button svg { width: 18px; height: 18px; }
.payment-method { padding: 8px 0 24px; }
.payment-method h4 { display:flex; align-items:center; gap:8px; margin:0 0 8px; font-size:17px; line-height:1.5; }
.payment-method h4 svg { width:20px; height:20px; flex-shrink:0; }
.payment-method p { margin:0 0 16px; font-size:14px; line-height:1.8; color:#46584e; }
.payment-method .destination-button { width:100%; box-sizing:border-box; font-size:16px; line-height:1.6; min-height:52px; text-align:center; }
.bank-method { border-top:1px solid #dce3df; padding-top:24px; }
.bank-intro { margin: 0 0 20px; padding: 14px 16px; border-left: 3px solid #8a691d; background: #fffcf2; color: #273f32; font-size: 14px; line-height: 1.75; }
.payment-method .payment-method-note { margin:10px 0 0; font-size:12px; }
.request-type { margin-bottom: 24px; }
#summary-model,.summary-list strong { overflow-wrap:anywhere; }
@media(min-width: 900px) { .product-summary { align-self: start; position: sticky; top: 24px; } }
@media(max-width: 640px) {
 .hero { padding: 20px 0; }
 .hero h1 { font-size: 23px; }
 .hero p { font-size: 14px; margin-top: 10px; line-height: 1.7; }
 main { padding-top: 20px; }
 .layout { gap: 16px; }
 .panel { padding: 20px; }
 .panel h2 { font-size: 19px; margin-bottom: 16px; }
 .request-type { grid-template-columns: minmax(0,1fr); gap: 8px; }
 .request-type label { padding: 12px; }
 .request-type label:has(input:checked) { padding: 11px; }
 .request-type .request-option { padding:12px; min-height:80px; gap:6px; }
 .request-type .inquiry-option { padding:11px; }
 .request-type small { font-size: 12px; }
 .summary-compact strong { font-size: 18px; }
}
