/* Contact composition only; map, header/footer and other pages retain their styling. */
.contact-section{padding-block:88px 72px}
.contact-composition{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.35fr);gap:56px 72px;align-items:start}
.contact-intro{padding-top:24px;max-width:390px}
.contact-intro h2{font-size:clamp(48px,4.5vw,72px);letter-spacing:-.025em;margin:24px 0 28px}
.contact-intro>p:not(.eyebrow){font-size:16px;line-height:1.8;max-width:34ch}
.contact-intro .text-link{font-size:14px;margin-top:28px}
.reservation-inquiry{background:#f5f2e8;color:#243b31;padding:36px;min-width:0}
.reservation-inquiry .inquiry-note{font-size:12px;line-height:1.6;max-width:50ch;margin-bottom:28px;color:#46594b}
.reservation-inquiry fieldset{border:0;padding:0;margin:0;min-width:0}
.inquiry-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 22px}
.inquiry-field{min-width:0}
.inquiry-wide{grid-column:1/-1}
.inquiry-field label{display:block;font-size:13px;font-weight:600;margin-bottom:9px;line-height:1.6}
.inquiry-field label span{font-size:11px;font-weight:400}
.inquiry-field input,.inquiry-field textarea{display:block;width:100%;max-width:100%;min-width:0;min-height:52px;border:1px solid #7d8c7d;border-radius:0;padding:12px 13px;font:16px/1.5 var(--body);background:#faf8f1;color:#243b31;color-scheme:light;transition:border-color .2s,background .2s}
.inquiry-field textarea{resize:vertical;min-height:130px}
.inquiry-field input:hover,.inquiry-field textarea:hover{border-color:#344c3b}
.reservation-inquiry :is(input,textarea,button,a):focus-visible{outline:2px solid #344c3b;outline-offset:3px;box-shadow:0 0 0 2px #f5f2e8}
.inquiry-field [aria-invalid="true"]{border-color:#9b3827}
.inquiry-field .inquiry-error{font-size:12px;color:#8d3020;line-height:1.6;margin:8px 0 0}
.inquiry-field .inquiry-error:empty{display:none}
.reservation-inquiry .occupancy-note{font-size:12px;line-height:1.6;margin:0;color:#46594b}
.inquiry-counter{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;min-height:52px;border:1px solid #7d8c7d;background:#faf8f1}
.inquiry-counter button{border:0;background:transparent;color:#243b31;font:22px/1 var(--body);width:48px;min-height:50px;padding:0;transition:background .2s}
.inquiry-counter button:hover:not(:disabled){background:#e4e5d9}
.inquiry-counter button:disabled{opacity:.35}
.inquiry-counter input{padding:10px 0;border:0;background:transparent;text-align:center;min-height:50px;appearance:textfield;-moz-appearance:textfield}
.inquiry-counter input::-webkit-inner-spin-button,.inquiry-counter input::-webkit-outer-spin-button{appearance:none;margin:0}
.reservation-inquiry .inquiry-summary{font-size:13px;color:#8d3020;margin-top:22px}
.reservation-inquiry .inquiry-summary:empty{display:none}
.reservation-inquiry .inquiry-submit{margin-top:24px;width:100%;min-height:54px;justify-content:space-between;gap:24px;padding-inline:20px;background:#14291f;color:#f5f2e8;border-color:#14291f;font-size:14px}
.reservation-inquiry .inquiry-reassurance{font-size:12px;line-height:1.7;max-width:50ch;margin:14px 0 0;color:#46594b}
.reservation-inquiry .inquiry-preview-status:not(:empty){padding:16px;border:1px solid #7d8c7d;margin-top:24px;font-size:14px;line-height:1.7;background:#e4e5d9}
.direct-contact{grid-column:1/-1;border-top:1px solid #f5f2e859;padding-top:36px}
.direct-contact>h3{font-size:36px;margin-bottom:28px}
.direct-contact .contact-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px}
.direct-contact .contact-options>div{padding:0;border:0}
.direct-contact .contact-options>div+div{border-left:1px solid #f5f2e859;padding-left:48px}
.direct-contact h4{font:30px/1.2 var(--display);margin:0 0 12px}
.direct-contact .contact-options p{font-size:14px}
.direct-contact .contact-preview{min-height:48px;margin-top:18px;font-size:13px;padding:12px 18px}
.direct-contact .contact-disclosure{font-size:11px;line-height:1.7;max-width:85ch;margin-top:28px}
@media(max-width:1099px){.contact-composition{grid-template-columns:minmax(0,.8fr) minmax(0,1.35fr);gap:40px 36px}.reservation-inquiry{padding:28px}.contact-intro h2{font-size:56px}.inquiry-fields{gap:22px 16px}}
@media(max-width:800px){.contact-section{padding-block:64px 48px}.contact-composition{grid-template-columns:1fr;gap:32px}.contact-intro{padding-top:0;max-width:570px}.contact-intro h2{font-size:56px;margin:20px 0 24px}.contact-intro>p:not(.eyebrow){max-width:46ch}.contact-intro .text-link{margin-top:20px}.inquiry-fields{grid-template-columns:1fr}.inquiry-wide{grid-column:auto}.reservation-inquiry{padding:28px}.direct-contact{padding-top:28px}.direct-contact .contact-options{grid-template-columns:1fr;gap:24px}.direct-contact .contact-options>div+div{padding:24px 0 0;border-left:0;border-top:1px solid #f5f2e859}.direct-contact>h3{font-size:34px;margin-bottom:24px}}
@media(max-width:479px){.reservation-inquiry{padding:24px 20px}.contact-intro h2{font-size:52px}.inquiry-fields{gap:22px}.inquiry-field label span{display:inline}.inquiry-field input[type=date]{min-height:54px}.direct-contact>h3{font-size:32px}}
@media(max-width:359px){.reservation-inquiry{padding:22px 16px}.contact-intro h2{font-size:48px}.inquiry-field label{font-size:12px}.inquiry-field label span{font-size:10px}.inquiry-field input,.inquiry-field textarea{padding-inline:10px}.direct-contact>h3{font-size:30px}}
@media(prefers-reduced-motion:reduce){.inquiry-field input,.inquiry-field textarea,.inquiry-counter button{transition:none}}

.reservation-inquiry .inquiry-preview-status h3{font:30px/1.2 var(--display);color:#243b31;margin:0 0 12px}
.reservation-inquiry .inquiry-preview-status p{font:inherit;color:inherit;margin:0 0 16px}
.reservation-inquiry .inquiry-another{display:inline-block;color:#243b31;text-decoration:underline;text-underline-offset:4px;min-height:44px;padding-block:10px;font-weight:600}
