:root{--ink:#13231d;--cream:#f4efe5;--paper:#fffdf8;--accent:#e6007e;--gold:#e6007e;--line:rgba(19,35,29,.18);--max:1240px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 Arial,Helvetica,sans-serif}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:.98}h1{font-size:clamp(3.4rem,8vw,7.8rem);letter-spacing:-.055em;margin-bottom:1.8rem}h2{font-size:clamp(2.8rem,5vw,5.2rem);letter-spacing:-.045em}h3{font-size:2.25rem}a{color:inherit}.skip-link{position:absolute;left:-999px}.skip-link:focus{left:1rem;top:1rem;background:white;padding:.7rem;z-index:99}.site-header{height:92px;padding:0 max(24px,4vw);display:flex;align-items:center;justify-content:space-between;position:absolute;z-index:5;width:100%;color:white}.brand{display:inline-flex;flex-direction:column;text-decoration:none;line-height:1}.brand span{font:700 1.65rem/1 Georgia,serif;letter-spacing:.08em}.brand small{font-size:.59rem;letter-spacing:.32em;margin-top:.5rem}.site-header nav{display:flex;align-items:center;gap:1.8rem}.site-header nav a{text-decoration:none;font-size:.84rem;font-weight:700;letter-spacing:.04em}.nav-cta{border:1px solid rgba(255,255,255,.55);padding:.75rem 1rem}.menu-toggle{display:none}.hero{min-height:820px;height:100vh;padding:150px max(24px,8vw) 80px;display:flex;align-items:center;color:white;position:relative;background:linear-gradient(90deg,rgba(7,18,14,.9) 0%,rgba(7,18,14,.62) 47%,rgba(7,18,14,.12) 76%),url('images/stueberl.jpeg') center/cover}.hero-content{max-width:760px}.eyebrow{text-transform:uppercase;font-size:.72rem;font-weight:800;letter-spacing:.2em;color:var(--accent);margin-bottom:1.4rem}.hero .eyebrow{color:var(--gold)}.lead{max-width:640px;font-size:clamp(1.1rem,2vw,1.42rem);color:rgba(255,255,255,.86)}.actions{display:flex;align-items:center;gap:1.6rem;margin-top:2.2rem}.button{display:inline-block;border:0;background:var(--accent);color:white;padding:1rem 1.35rem;text-decoration:none;text-transform:uppercase;font-size:.73rem;font-weight:800;letter-spacing:.12em;cursor:pointer}.button:hover{background:#e6007e}.text-link{color:white;text-underline-offset:5px}.hero-note{position:absolute;right:max(24px,4vw);bottom:45px;display:flex;flex-direction:column;border-left:1px solid rgba(255,255,255,.5);padding-left:1.2rem}.hero-note span{font-size:.86rem;color:rgba(255,255,255,.72)}.section{max-width:var(--max);margin:auto;padding:clamp(5rem,10vw,9rem) max(24px,4vw)}.intro{display:grid;grid-template-columns:.9fr 1.1fr;gap:8vw}.large-copy{font:clamp(1.35rem,2.2vw,2rem)/1.45 Georgia,serif}.intro>div:last-child{max-width:670px}.gallery{display:grid;grid-template-columns:1.5fr .8fr .9fr;height:560px;gap:8px;padding:0 8px}.gallery img{width:100%;height:100%;object-fit:cover}.gallery img:nth-child(2){object-position:center}.about{display:grid;grid-template-columns:1.35fr .65fr;gap:5vw;align-items:start}.about-card{max-width:720px}.about-card p:not(.eyebrow){font-size:1.08rem}.event-card{background:linear-gradient(rgba(244,239,229,.9),rgba(244,239,229,.9)),url('images/stueberl.jpeg') center/cover;padding:3rem}.event-card span{font-size:.72rem;text-transform:uppercase;letter-spacing:.14em}.event-card a{font-weight:700;text-underline-offset:5px}.hours{max-width:none;background:var(--ink);color:white;display:grid;grid-template-columns:1fr 1fr;gap:8vw;padding-left:max(24px,calc((100vw - var(--max))/2 + 4vw));padding-right:max(24px,calc((100vw - var(--max))/2 + 4vw))}.hours p{color:#d7ddd9}.hours dl{margin:0}.hours dl div{display:flex;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.2);padding:1.2rem 0}.hours dt{font-weight:700}.hours dd{margin:0}.reservation{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw}.booking-panel{background:var(--cream);padding:clamp(1.5rem,4vw,3.5rem);min-height:520px}.booking-progress{display:flex;align-items:center;margin-bottom:2.5rem}.booking-progress span{width:32px;height:32px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-size:.75rem;font-weight:800;background:var(--paper)}.booking-progress span.active{background:var(--ink);color:white;border-color:var(--ink)}.booking-progress i{height:1px;flex:1;background:var(--line)}.booking-kicker{text-transform:uppercase;letter-spacing:.14em;font-size:.7rem;font-weight:800;color:var(--accent)}.booking-step h3{margin-bottom:2rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.booking-panel label{display:block;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-bottom:1rem}.booking-panel input,.booking-panel select,.booking-panel textarea{display:block;width:100%;margin-top:.45rem;border:1px solid var(--line);border-radius:0;background:var(--paper);padding:.95rem;font:inherit;color:inherit}.booking-panel textarea{resize:vertical}.booking-panel input:focus,.booking-panel select:focus,.booking-panel textarea:focus{outline:2px solid var(--accent);outline-offset:1px}.booking-actions{display:flex;justify-content:space-between;align-items:center;margin-top:1rem}.back-step{border:0;background:transparent;text-decoration:underline;text-underline-offset:4px;cursor:pointer}.form-hint,.form-error{font-size:.9rem;color:#e6007e}.booking-summary{background:var(--paper);border:1px solid var(--line);padding:1.2rem 1.4rem;margin-bottom:1.5rem}.booking-summary dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.4rem 1rem}.booking-summary dt{font-weight:700}.booking-summary dd{margin:0}.consent{display:flex!important;gap:.7rem;align-items:flex-start;text-transform:none!important;letter-spacing:0!important;font-weight:400!important}.consent input{width:auto;margin:.35rem 0 0;flex:0 0 auto}.trap{position:absolute!important;left:-9999px!important}.booking-panel small{display:block;margin-top:1rem;color:#59655f}.booking-success{text-align:center;padding:3rem 1rem}.booking-success span{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;margin:0 auto 1.5rem;background:var(--ink);color:white;font-size:1.6rem}.callout{margin-top:2rem;font-weight:700}footer{background:#0b1511;color:white;padding:4rem max(24px,5vw) 2rem;display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:2rem}footer div:not(.brand){display:flex;flex-direction:column;align-items:flex-start}footer strong{text-transform:uppercase;letter-spacing:.14em;font-size:.7rem;margin-bottom:.7rem;color:var(--gold)}footer a{color:#dce2de;text-decoration:none}.footer-brand{align-self:start}.copyright{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.15);padding-top:1.5rem;margin-top:2rem;font-size:.78rem;color:#99a39d}@media(max-width:850px){.site-header{height:78px}.menu-toggle{display:block;background:transparent;border:1px solid white;color:white;padding:.55rem .8rem}.site-header nav{display:none;position:absolute;left:0;right:0;top:78px;background:var(--ink);padding:1.5rem;flex-direction:column;align-items:stretch}.site-header nav.open{display:flex}.hero{min-height:700px}.hero-note{display:none}.intro,.about,.hours,.reservation{grid-template-columns:1fr}.gallery{height:auto;grid-template-columns:1fr 1fr}.gallery img:first-child{grid-column:1/-1;height:420px}.gallery img:not(:first-child){height:330px}footer{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}}@media(max-width:560px){h1{font-size:3.6rem}.hero{padding-top:125px;align-items:flex-end}.actions{align-items:flex-start;flex-direction:column}.form-grid,.gallery,footer{grid-template-columns:1fr}.gallery img:first-child{grid-column:auto}.gallery img{height:300px!important}.booking-panel{margin-left:-12px;margin-right:-12px;padding:1.25rem}.hours dl div{gap:1rem}.hours dd{text-align:right}}
