:root{--cream:#f5f3eb;--paper:#fffef9;--forest:#183d32;--ink:#213b32;--muted:#6d756d;--line:#dce0d4;--light:#edf1e7;--gold:#997b41;--error:#973a2c}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:14px;line-height:1.5}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #b18e50;outline-offset:4px}button{touch-action:manipulation}.preview-strip{height:32px;background:var(--forest);color:#f2f4ea;display:flex;align-items:center;justify-content:center;gap:8px;font-size:10px;letter-spacing:1.5px}.status-dot{height:5px;width:5px;border-radius:50%;background:#c5d2ac}.strip-detail{letter-spacing:.5px;opacity:.8}.site-header{max-width:1320px;margin:auto;padding:27px 52px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.wordmark{font-family:Georgia,serif;font-size:29px;display:flex;align-items:center;gap:10px;text-decoration:none;letter-spacing:-1px}.brand-mark{background:var(--forest);color:var(--cream);width:34px;height:37px;text-align:center;border-radius:12px 12px 4px 4px;font-size:28px;line-height:34px}.brand-note{font:9px Arial,sans-serif;letter-spacing:0;color:var(--muted);align-self:flex-end;margin-bottom:6px}.header-location{font-size:10px;letter-spacing:2px;color:var(--muted)}.header-link{font-size:12px;text-underline-offset:5px}.header-link span{margin-left:12px}main{max-width:1320px;margin:0 auto;padding:0 52px}.intro{padding:49px 0 38px;display:flex;justify-content:space-between;align-items:flex-end}.eyebrow{font-size:10px;font-weight:600;letter-spacing:2px;margin:0 0 14px;color:var(--muted)}h1{font:normal 56px/1.06 Georgia,'Times New Roman',serif;letter-spacing:-2px;margin:0}h1 em{font-weight:400;color:#53735e}.intro-copy{font-size:14px;color:var(--muted);margin:20px 0 0}.address-block{padding:0 4px 5px 30px;position:relative;font-size:13px}.address-block p{margin:0 0 9px}.address-block>span:last-child{font-size:11px;color:var(--muted)}.pin{position:absolute;left:0;top:-4px;font-size:26px;color:var(--gold)}.booking-layout{display:grid;grid-template-columns:minmax(0,1fr) 325px;gap:24px;scroll-margin-top:20px;align-items:start}.calendar-card{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:28px 30px 22px}.calendar-title{display:flex;justify-content:space-between;align-items:center;gap:12px}.calendar-title .eyebrow{margin-bottom:8px}h2{font:normal 28px/1.2 Georgia,serif;letter-spacing:-.6px;margin:0}.text-button{border:0;background:none;text-decoration:underline;text-underline-offset:4px;padding:10px 0;font-size:12px;white-space:nowrap;color:var(--ink)}.calendar-prompt{color:var(--muted);font-size:12px;margin:12px 0 19px;min-height:18px}.date-fields{display:grid;grid-template-columns:1fr 32px 1fr;gap:10px;align-items:center}.date-fields label{border:1px solid var(--line);border-radius:8px;padding:10px 14px 8px;font-size:9px;letter-spacing:1.2px;text-transform:uppercase;background:#fbfcf7;color:var(--muted)}input[type=date]{display:block;min-width:0;width:100%;border:0;background:transparent;color:var(--ink);font-size:14px;letter-spacing:0;padding:4px 0;min-height:28px}input[type=date]::-webkit-calendar-picker-indicator{opacity:.45}.date-arrow{text-align:center;font-size:20px;color:#8c988c}.calendar-navigation{display:flex;align-items:center;justify-content:space-between;margin:22px 0 0}.calendar-navigation>span{font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted)}.icon-button{width:32px;height:32px;border:1px solid var(--line);background:transparent;border-radius:50%;color:var(--ink)}.icon-button:hover:not(:disabled){background:var(--light)}.icon-button:disabled{opacity:.35}.months{display:grid;grid-template-columns:1fr 1fr;gap:32px}.month h3{text-align:center;font-weight:500;font-size:14px;margin:8px 0 18px}.weekdays,.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.weekdays span{text-align:center;font-size:10px;color:var(--muted);padding-bottom:12px}.day{position:relative;border:0;background:transparent;color:var(--ink);padding:0;height:39px;min-width:0;font-size:12px;border-radius:0}.day:hover:not(:disabled){outline:1px solid var(--forest);outline-offset:-3px;border-radius:50%}.day:disabled{color:#bbc0b7;text-decoration:line-through}.day.in-range{background:#e8eddf}.day.selected{background:var(--forest);color:white;border-radius:50%;font-weight:600}.day.today:not(.selected):after{content:'';position:absolute;bottom:5px;left:calc(50% - 2px);width:4px;height:4px;background:var(--gold);border-radius:50%}.calendar-footer{display:flex;justify-content:space-between;gap:12px;align-items:center;border-top:1px solid var(--line);margin-top:22px;padding-top:18px;font-size:10px;color:var(--muted)}.calendar-footer p{margin:0}.legend{display:flex;gap:17px}.legend span{display:flex;align-items:center;gap:6px}.legend i{width:8px;height:8px;display:inline-block;border-radius:50%}.legend-selected{background:var(--forest)}.legend-unavailable{background:#e5e7e0;border:1px solid #b4bcae}.selection-note{margin:14px 0 0;font-size:10px;color:var(--muted)}.summary-card{background:#eaf0e4;border:1px solid #d5dfcd;border-radius:16px;padding:27px 25px 22px}.summary-card>.eyebrow{margin-bottom:9px}.rate{display:flex;align-items:baseline;gap:7px}.rate strong{font:normal 43px Georgia,serif;letter-spacing:-1.5px}.rate span{font-size:12px;color:var(--muted)}.demo-tag{display:inline-block;font-size:9px;letter-spacing:.9px;color:#7c5927;background:#f6eedc;padding:5px 7px;border-radius:4px;margin-top:9px;border:1px solid #e9dbbc}.summary-intro{font:italic 17px Georgia,serif;margin:22px 0 14px}.summary-dates{font-size:11px;padding:12px 0;border-top:1px solid #d2daca;border-bottom:1px solid #d2daca;min-height:42px}.price-lines{font-size:12px;margin:20px 0}.price-lines div{display:flex;justify-content:space-between;margin:11px 0}.price-lines dt{color:#596654}.price-lines dd{margin:0}.total-line{border-top:1px solid #d2daca;padding-top:16px;display:flex;justify-content:space-between;font-size:13px}.total-line strong{font-weight:500}.fee-note{font-size:10px;color:#69745f;line-height:1.65;margin:10px 0 0}.message{font-size:12px;line-height:1.5;color:var(--error);margin:10px 0;min-height:0}.message:empty{margin:16px 0 0}.primary-button{background:var(--forest);color:var(--paper);border:1px solid var(--forest);border-radius:8px;padding:14px 16px;display:flex;justify-content:space-between;align-items:center;width:100%;font-size:12px;min-height:47px}.primary-button:hover:not(:disabled){background:#275443}.primary-button:disabled{opacity:.5}.no-charge{text-align:center;font-size:10px;color:var(--muted);margin:10px 0 17px}.payment-note{border-top:1px solid #d2daca;padding-top:15px;text-align:center;font-size:10px;line-height:1.8;color:#617057}.payment-note>span:first-child{margin-right:4px}.payment-note>span:last-child{font-size:9px;opacity:.8}.details-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:55px;padding:40px 0 43px}.details-row>div{position:relative;padding-left:31px}.detail-number{position:absolute;top:1px;left:0;font:italic 13px Georgia,serif;color:#8f9b85}.details-row h3{font:normal 18px Georgia,serif;margin:0 0 10px}.details-row p{font-size:11px;line-height:1.8;color:var(--muted);margin:0}footer{border-top:1px solid var(--line);max-width:1216px;margin:auto;padding:27px 0 34px;display:flex;align-items:center;justify-content:space-between;gap:24px;color:var(--muted)}.footer-brand{font:23px Georgia,serif;color:var(--ink)}.footer-brand span{display:block;font:10px Arial,sans-serif;color:var(--muted);margin-top:8px}footer p{font-size:10px;line-height:1.8;margin:0}.footer-preview{font-size:8px;letter-spacing:1px}.noscript{padding:30px;text-align:center;color:var(--error)}dialog{border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:18px;padding:32px;width:460px;max-width:calc(100% - 32px);box-shadow:0 30px 100px #0c201540}dialog::backdrop{background:#142e2370;backdrop-filter:blur(4px)}dialog h2{margin-bottom:14px}dialog p{font-size:13px;color:var(--muted)}dialog .demo-tag{margin-bottom:15px}dialog .primary-button{margin:20px 0 10px}dialog .text-button{display:block;margin:8px auto 0}dialog .hold-status{background:var(--light);padding:12px;border-radius:6px;font-size:11px}dialog #hold-quote{font:normal 24px Georgia,serif;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
@media(min-width:1400px){.day{height:43px}}@media(max-width:1100px){.site-header{padding-left:30px;padding-right:30px}main{padding:0 30px}.booking-layout{grid-template-columns:minmax(0,1fr) 290px;gap:18px}.calendar-card{padding:24px 22px}.months{gap:18px}.day{height:35px}h2{font-size:24px}footer{margin:0 30px}.header-location{display:none}.summary-card{padding:25px 20px}}@media(max-width:850px){.booking-layout{grid-template-columns:1fr}.summary-card{display:block}.rate strong{font-size:39px}.intro{padding-top:35px}h1{font-size:47px}.address-block{font-size:11px}.day{height:44px}.summary-card .fee-note{max-width:430px}.details-row{gap:24px}.footer-preview{display:none}.months{gap:36px}.summary-card{padding:26px}.summary-intro{margin-top:16px}}@media(max-width:560px){.site-header{padding:20px}.wordmark{font-size:26px}.brand-note{font-size:8px}.header-link{font-size:10px}.header-link span{margin-left:4px}main{padding:0 18px}.intro{display:block;padding:32px 2px 27px}.eyebrow{font-size:9px;letter-spacing:1.6px}h1{font-size:43px;letter-spacing:-1.5px}.intro-copy{font-size:12px;margin-top:15px}.address-block{margin-top:24px;padding-left:26px;font-size:12px}.address-block p{margin-bottom:3px}.address-block>span:last-child{font-size:10px}.pin{font-size:23px}.calendar-card{padding:23px 18px 18px;border-radius:13px}.calendar-title{align-items:flex-start}h2{font-size:24px;max-width:200px}.calendar-title .text-button{font-size:11px;margin-top:20px}.date-fields{grid-template-columns:1fr 16px 1fr;gap:4px}.date-fields label{padding:9px}.date-fields input{font-size:13px}.date-arrow{font-size:15px}.months{grid-template-columns:1fr;gap:16px}.month h3{margin-bottom:16px;font-size:15px}.month+.month{border-top:1px solid var(--line);padding-top:16px}.day{height:42px;font-size:13px}.calendar-navigation{margin-top:20px}.calendar-footer{font-size:9px;flex-wrap:wrap;gap:10px}.selection-note{font-size:9px;line-height:1.6}.calendar-prompt{font-size:11px}.summary-card{padding:25px;border-radius:13px}.booking-layout{gap:16px}.details-row{grid-template-columns:1fr;gap:24px;padding:32px 8px}.details-row p{font-size:12px}.details-row h3{font-size:19px}footer{margin:0 20px;padding:24px 0;align-items:flex-start;flex-direction:column;gap:20px}.footer-brand{font-size:25px}footer p{font-size:11px}.preview-strip{font-size:9px;letter-spacing:1px}.strip-detail{font-size:9px}dialog{padding:26px}.primary-button{font-size:13px}}
dialog{width:min(520px,calc(100% - 32px));max-height:85vh;overflow:auto;border:1px solid var(--line);border-radius:18px;padding:30px;background:var(--paper);color:var(--ink)}dialog::backdrop{background:#183d3280}dialog h2{max-width:none}#hold-summary{font-weight:600}#hold-error{color:var(--error)}
.mobile-booking-bar{display:none}
@media(max-width:560px){
 body{padding-bottom:calc(128px + env(safe-area-inset-bottom))}
 .mobile-booking-bar{position:fixed;z-index:10;bottom:0;left:0;right:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2px 10px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--line);box-shadow:0 -4px 20px #183d3210}
 .mobile-booking-bar>div{display:flex;flex-direction:column;min-width:0}.mobile-booking-bar span{font-size:12px;line-height:1.4}.mobile-booking-bar strong{font:24px Georgia,serif}.mobile-booking-bar .primary-button{align-self:center;justify-content:center;padding:12px 8px;font-size:13px;min-height:48px}.mobile-booking-bar p{grid-column:1/-1;margin:2px 0 0;font-size:12px;color:var(--muted);text-align:center}
}
/* Phone-first: keep the calendar, not the marketing hero, in reach. */
@media(max-width:560px){
  .site-header{padding:8px 14px;min-height:60px}.wordmark{font-size:24px}.brand-note{display:none}.header-link{font-size:12px;min-height:44px;display:flex;align-items:center}
  .preview-strip,.strip-detail{font-size:12px;letter-spacing:0}.preview-strip{gap:5px}
  main{padding:0 12px}.intro{padding:14px 2px 16px}.intro .eyebrow,.intro-copy{display:none}
  h1{font-size:25px;line-height:1.15;letter-spacing:-.6px}h1 br{display:none}h1 em:before{content:' '}
  .address-block{margin-top:10px;padding:0 0 0 22px;font-size:12px}.address-block p{margin:0}.address-block>span:last-child{font-size:12px}.pin{font-size:20px}
  .calendar-card{padding:16px 12px}.calendar-title{gap:6px;align-items:center}.calendar-title h2{font-size:22px}.eyebrow{font-size:12px;letter-spacing:1px}.calendar-title .text-button{margin:0;font-size:12px;min-height:44px}
  .calendar-prompt{font-size:12px;margin:10px 0 12px}.date-fields{grid-template-columns:minmax(0,1fr) 12px minmax(0,1fr);gap:3px}.date-fields label{min-width:0;padding:7px 5px;font-size:12px;letter-spacing:0}.date-fields input{font-size:16px;min-height:44px;width:100%}
  .calendar-navigation{margin-top:10px}.calendar-navigation>span,.weekdays span{font-size:12px}.icon-button{width:44px;height:44px}.month+.month{display:none}.month h3{margin:4px 0 12px}.day{height:44px;font-size:14px}
  .calendar-footer{font-size:12px;margin-top:14px;padding-top:12px}.selection-note{font-size:12px}.summary-dates,.demo-tag,.fee-note,.no-charge,.payment-note,.payment-note>span:last-child,.footer-brand span,footer p{font-size:12px}
  #contact a{display:inline-flex;align-items:center;min-height:44px}dialog{padding:22px;max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding-bottom:calc(22px + env(safe-area-inset-bottom))}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
