.booking-section{border-top:1px solid var(--line);margin-top:52px}
.booking-intro{max-width:740px}.booking-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:28px;align-items:start;margin-top:30px}
.booking-form{min-width:0}.booking-form fieldset{min-width:0;margin:0 0 22px;padding:25px;background:#fff;border:1px solid var(--line)}
.booking-form legend{font-size:17px;font-weight:700;padding:0 10px}.booking-form legend span{color:var(--gold);font-family:Georgia,serif;margin-right:9px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.field{min-width:0}.field.full{grid-column:1/-1}.field label{display:block;font-size:13px;font-weight:700;margin-bottom:8px}.required{display:inline-block;color:#b22d2d;background:#fff1ed;font-size:10px;line-height:1.6;margin-left:6px;padding:1px 5px;border-radius:2px}.optional{font-weight:400;font-size:11px;color:var(--muted);margin-left:6px}
.booking-form input,.booking-form select,.booking-form textarea{font:inherit;font-size:15px;color:var(--ink);width:100%;max-width:100%;border:1px solid #9faeaa;border-radius:3px;background:#fff;padding:11px 12px;line-height:1.6}.booking-form select{padding-right:28px}.booking-form textarea{resize:vertical}.booking-form input:focus-visible,.booking-form select:focus-visible,.booking-form textarea:focus-visible,.booking-section button:focus-visible{outline:3px solid #c2a46b;outline-offset:3px}.field small,.field-hint{display:block;color:var(--muted);font-size:11px;line-height:1.8;margin:7px 0 0}.field-message{font-size:12px;background:#f0f4ef;padding:12px 14px;margin:0}.room-summary{font-weight:700;color:var(--ink)!important}
.booking-section [hidden]{display:none!important}.booking-section button{cursor:pointer;font:inherit}.consent{display:flex;align-items:flex-start;gap:10px;font-size:12px;margin:22px 0}.consent input{width:19px;height:19px;flex:0 0 auto;margin-top:3px;accent-color:var(--ink)}.consent a{color:#795319}.booking-submit{width:100%;border:0;padding:17px 20px;background:var(--ink);color:#fff;font-weight:700!important;font-size:15px!important}.booking-submit:hover{background:#28595c}
.quote-panel{background:#edf1e9;border-top:4px solid var(--gold);padding:26px;position:sticky;top:24px}.quote-panel h3{font-size:23px;font-family:'Yu Mincho',serif;font-weight:500;margin:0 0 19px}.quote-selection{font-size:13px;margin:0}.quote-selection dt{font-size:11px;color:var(--muted);margin-top:14px;margin-bottom:3px}.quote-selection dd{font-size:13px;overflow-wrap:anywhere}.quote-rows{list-style:none;padding:0;margin:22px 0 0;border-top:1px solid #b9c8bc}.quote-rows li{display:grid;grid-template-columns:1fr auto;gap:10px;font-size:12px;padding:12px 0;border-bottom:1px solid #ccd6cc}.quote-rows li span{overflow-wrap:anywhere}.quote-rows li strong{text-align:right;font-weight:600}.quote-total{padding-top:21px}.quote-total small{font-size:12px}.quote-total strong{display:block;font-size:25px;line-height:1.5;margin:8px 0}.quote-total p{font-size:12px;color:var(--muted);margin:10px 0 0}.quote-panel .note{font-size:11px}
.mail-preview{margin-top:32px;padding:30px;border:1px solid var(--gold);background:#fff}.mail-preview h3{font-size:22px;margin:0 0 15px}.mail-preview p{font-size:13px}.mail-preview textarea{width:100%;min-height:310px;resize:vertical;padding:16px;border:1px solid var(--line);font:13px/1.8 Meiryo,sans-serif;color:var(--ink);background:#fafbf8}.mail-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}.mail-actions button{background:transparent;border:1px solid var(--ink);color:var(--ink);padding:12px 20px;font-size:13px}.mail-recipient{overflow-wrap:anywhere}.hotel-select-link{display:inline-block;margin-top:18px;font-size:12px;font-weight:700;color:#78501e;text-decoration:underline}.form-notice{font-size:12px;color:var(--muted);margin:18px 0}.booking-error{color:#a62222;font-size:12px;margin-top:8px}
@media(max-width:900px){.booking-layout{grid-template-columns:1fr}.quote-panel{position:static}.booking-form fieldset{padding:23px}.mail-preview{padding:23px}}
@media(max-width:540px){.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.booking-form fieldset{padding:19px 16px}.quote-panel{padding:23px}.mail-actions{flex-direction:column}.mail-actions a,.mail-actions button{text-align:center}}
