:root{--green:#405633;--green-deep:#273523;--green-bright:#657d42;--cream:#fdfaf4;--ink:#292e23;--muted:#63685e;--line:#d8ddcf;--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font:16px/1.5 var(--serif)}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
:focus-visible{outline:3px solid #bc7443;outline-offset:3px}
.reservation-layout{width:min(100% - 72px,1190px);margin:0 auto;padding:64px 0 80px;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr);column-gap:clamp(32px,5vw,80px);row-gap:0;align-items:start}
.reservation-intro{grid-column:1;grid-row:1}
.reservation-extras{grid-column:1;grid-row:2}
.reservation-form{grid-column:2;grid-row:1/span 2}
.eyebrow{margin:0 0 12px;color:#668442;text-transform:uppercase;letter-spacing:.19em;font:700 12px var(--sans)}
h1,h2,p{margin-top:0}
.reservation-intro h1{max-width:560px;margin:0 0 20px;color:var(--green-deep);font-size:clamp(44px,4.5vw,68px);font-weight:400;letter-spacing:-.055em;line-height:1.03}
.reservation-intro h1 em{color:var(--green-bright);font-weight:400}
.intro-copy{max-width:560px;margin:0 0 27px;color:#50584d;font-size:19px;line-height:1.5}
.reservation-photo{height:230px;overflow:hidden;border-radius:10px;background:#d5d8cc}
.reservation-photo img{width:100%;height:100%;object-fit:cover;object-position:center 63%;filter:brightness(1.035) contrast(1.045) saturate(1.02)}
.process-card{padding:29px 0 0}
.process-card h2{margin:0 0 17px;color:var(--green-deep);font-size:25px;font-weight:400;letter-spacing:-.02em}
.process-card ol{list-style:none;counter-reset:steps;display:grid;gap:15px;margin:0;padding:0}
.process-card li{counter-increment:steps;position:relative;padding-left:42px;display:grid;gap:2px}
.process-card li:before{content:counter(steps);position:absolute;left:0;top:0;width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:#e7efdc;color:var(--green-deep);font:700 14px var(--sans)}
.process-card strong{color:var(--green-deep);font:700 15px var(--sans)}
.process-card span{color:#62685d;font:14px/1.45 var(--sans)}
.reservation-form{padding:38px 38px 34px;border:1px solid #e0e5d8;border-radius:14px;background:#fff;box-shadow:0 18px 48px #2735230c}
.form-heading{margin-bottom:26px;padding-bottom:20px;border-bottom:1px solid var(--line)}
.form-heading .eyebrow{margin-bottom:7px}
.form-heading h2{margin:0 0 8px;color:var(--green-deep);font-size:36px;line-height:1.1;font-weight:400;letter-spacing:-.035em}
.form-heading p:last-child{margin:0;color:var(--muted);font:14px var(--sans)}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:21px 17px}
.field{min-width:0;display:grid;align-content:start;gap:8px}
.field-wide{grid-column:1/-1}
.field label{color:var(--green-deep);font:700 14px var(--sans)}
.field label span{color:#aa512d}
.field label small{color:var(--muted);font-size:13px;font-weight:400}
.field input,.field select,.field textarea{width:100%;min-width:0;border:1px solid #cbd4c1;border-radius:8px;background:#fff;color:var(--ink);padding:12px 13px;font:16px/1.35 var(--sans)}
.field input,.field select{min-height:48px}
.field textarea{resize:vertical;min-height:115px}
.field input::placeholder,.field textarea::placeholder{color:#868d82}
.field input:hover,.field select:hover,.field textarea:hover{border-color:#8eab72}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--green-bright);outline:2px solid #b5cc9f;outline-offset:1px}
.submit-button{width:100%;min-height:50px;margin-top:27px;padding:12px 18px;display:flex;align-items:center;justify-content:center;gap:13px;border:0;border-radius:8px;background:var(--green-bright);color:#fff;font:700 16px var(--sans);transition:background .2s}
.submit-button:hover{background:var(--green)}
.submit-button span{font-size:22px;line-height:1}
.submit-help{margin:12px 0 0;color:#5b6257;font:13px/1.5 var(--sans)}
.submit-status{margin:18px 0 0;padding:12px 14px;border:1px solid #bfd4aa;border-radius:8px;background:#eff6e9;color:var(--green-deep);font:14px/1.45 var(--sans)}
.submit-status[hidden]{display:none}
.submit-status a{text-decoration:underline;text-underline-offset:2px;font-weight:700}
.reservation-footer{min-height:94px;padding:25px max(36px,calc((100% - 1190px)/2));display:flex;flex-wrap:wrap;align-items:center;gap:10px 30px;background:var(--green-deep);color:#fff;font:13px var(--sans)}
.footer-name{margin-right:auto;font:17px var(--serif)}
.reservation-footer a:hover{text-decoration:underline}
@media(max-width:850px){.reservation-layout{width:calc(100% - 48px);grid-template-columns:1fr;padding:40px 0 65px;gap:31px}.reservation-intro,.reservation-form,.reservation-extras{grid-column:1;grid-row:auto}.reservation-intro h1{font-size:clamp(40px,7vw,58px)}.intro-copy{font-size:17px;margin-bottom:0}.reservation-photo{height:210px}.process-card{padding-top:22px}.reservation-form{padding:29px 25px}}
@media(max-width:540px){.reservation-layout{width:calc(100% - 34px);padding:30px 0 48px;gap:25px}.reservation-intro h1{font-size:43px}.intro-copy{font-size:16px}.reservation-photo{height:165px;border-radius:8px}.process-card{padding-top:20px}.process-card h2{font-size:22px;margin-bottom:12px}.process-card ol{gap:10px}.process-card span{font-size:13px}.reservation-form{padding:24px 18px;border-radius:10px}.form-heading{margin-bottom:21px}.form-heading h2{font-size:31px}.form-grid{grid-template-columns:1fr;gap:17px}.field-wide{grid-column:auto}.reservation-footer{padding:25px 17px 40px;align-items:flex-start;flex-direction:column}.footer-name{margin:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important}}
