img{height:auto}
body{margin:0;background:#F6F5F0}
a{color:#2C6A9E}a:hover{color:#1F4F78}
.wrap{max-width:1200px;margin:0 auto;padding:0 32px;box-sizing:border-box}
.ph{display:block;width:100%;height:100%;object-fit:cover;border-radius:10px;background:#DCE6EE}
.eyebrow{font-size:14px;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;display:flex;align-items:center;gap:10px}
.h2{margin:0;font-family:'Zilla Slab',Georgia,serif;font-weight:700;font-size:46px;line-height:1.08;letter-spacing:-0.3px}
.hero{display:grid;grid-template-columns:minmax(0,1.22fr) minmax(0,1fr);gap:56px;align-items:center}
div[style*="aspect-ratio"]{min-height:0}
.bookgrid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,0.85fr);gap:48px;align-items:center}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center}
.amen{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.bento{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:220px;grid-auto-flow:dense;gap:12px}
.bento .big{grid-column:span 2;grid-row:span 2}
.bento .wide{grid-column:span 2}
.land{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.seasons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.reviews{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.know{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.foot{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:40px}
.acts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:640px}
.act{display:flex;align-items:center;gap:12px;min-height:64px;padding:10px 34px 10px 12px;border:1.5px solid #D9D5C8;border-radius:14px;background:#FFFFFF;color:#1F2839;text-decoration:none;position:relative;box-sizing:border-box}
.act::after{content:"";position:absolute;right:14px;top:50%;width:8px;height:8px;border-top:2.5px solid #8A93A3;border-right:2.5px solid #8A93A3;transform:translateY(-50%) rotate(45deg)}
.act:hover{border-color:#2C6A9E;color:#1F2839;background:#FBFAF6}
.act .ico{flex:none;width:40px;height:40px;border-radius:50%;background:#EEF3E6;color:#3F6B1C;display:flex;align-items:center;justify-content:center}
.act .txt{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.act .lbl{font-weight:700;font-size:17px}
.act .sub{font-size:14px;color:#5B6576;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.act.dark{background:transparent;border-color:#4A5670;color:#FFFFFF;max-width:420px}
.act.dark:hover{background:#26314A;border-color:#94C140;color:#FFFFFF}
.act.dark .ico{background:rgba(148,193,64,.16);color:#94C140}
.act.dark .sub{color:#C3CBD8}
.act.dark::after{border-color:#C3CBD8}
.cgrid{grid-template-areas:"intro form" "extra form";grid-template-rows:auto 1fr;row-gap:36px}
.acts .act{padding-right:12px}
.acts .act::after{display:none}
.act .lbl{white-space:nowrap}
.c-intro{grid-area:intro}.c-form{grid-area:form}.c-extra{grid-area:extra;align-self:start}
.cf-title{font-family:'Zilla Slab',Georgia,serif;font-weight:700;font-size:26px;line-height:1.2}
.pv{background:#FFFFFF;border:1px solid #E8E5DB;border-radius:16px;padding:32px;display:flex;flex-direction:column;gap:24px}
.pv-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}
.pv-h{font-weight:700;font-size:15px;letter-spacing:1.2px;text-transform:uppercase;color:#3F6B1C;margin-bottom:10px}
.pv-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;font-size:16px;line-height:1.4}
.pv-list li{position:relative;padding-left:24px}
.pv-list li::before{content:"";position:absolute;left:2px;top:4px;width:6px;height:11px;border-right:2.5px solid #3F6B1C;border-bottom:2.5px solid #3F6B1C;transform:rotate(45deg)}
.ft{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:48px;padding-top:36px;padding-bottom:44px;align-items:start}
.ft-brand{display:flex;flex-direction:column;gap:22px}
.ft-social{display:flex;gap:10px;flex-wrap:wrap}
.ft-social a{display:inline-flex;align-items:center;min-height:40px;padding:0 16px;border-radius:999px;border:1px solid rgba(255,255,255,.28);color:#FFFFFF;font-weight:600;font-size:15px;text-decoration:none}
.ft-social a:hover{background:rgba(255,255,255,.1);color:#FFFFFF}
.ft-col{display:flex;flex-direction:column;gap:12px}
.ft-h{font-size:13px;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;color:#C9E29B}
.ft-link{display:inline-flex;align-items:center;gap:8px;color:#FFFFFF;text-decoration:none;font-weight:500;min-height:28px}
.ft-link svg{color:#C9E29B;flex:none}
.ft-link:hover{color:#FFFFFF;text-decoration:underline;text-underline-offset:3px}
.ft-arr{color:#C9E29B;font-size:14px}
.ft-bottom{border-top:1px solid rgba(255,255,255,.16);padding:18px 0 22px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 24px;font-size:14px;color:#BFD1AC}
.cgrid{display:grid;grid-template-columns:minmax(0,0.9fr) minmax(0,1.1fr);gap:64px;align-items:start}
.cf-check{flex:none;width:26px;height:26px;border-radius:50%;background:#3F6B1C;color:#FFFFFF;font-size:14px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.cf{background:#FFFFFF;color:#1F2839;border-radius:20px;padding:32px;display:flex;flex-direction:column;gap:18px;box-shadow:0 24px 60px rgba(0,0,0,.25)}
.cf-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.cf-f{display:flex;flex-direction:column;gap:7px;font-size:16px;font-weight:700}
.cf-opt{font-weight:400;color:#6B7486}
.cf input,.cf select,.cf textarea{font:inherit;font-size:18px;font-weight:400;color:#1F2839;background:#FBFAF6;border:1.5px solid #D9D5C8;border-radius:10px;padding:11px 12px;min-height:54px;box-sizing:border-box;width:100%}
.cf textarea{resize:vertical;min-height:96px}
.cf input:focus,.cf select:focus,.cf textarea:focus{outline:none;border-color:#2C6A9E;box-shadow:0 0 0 3px rgba(44,106,158,.18);background:#FFFFFF}
.cf-dog{border:0;margin:0;padding:0;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cf-dog legend{float:left;width:100%;font-size:16px;font-weight:700;margin:0 0 8px;padding:0}
.cf-dog label{cursor:pointer;flex:1;max-width:170px}
.cf-dog input{position:absolute;opacity:0;width:1px;height:1px;min-height:0}
.cf-dog span{display:flex;align-items:center;justify-content:center;min-height:50px;min-width:84px;padding:0 22px;border-radius:999px;border:1.5px solid #D9D5C8;font-weight:700;font-size:16px}
.cf-dog input:checked+span{background:#1F2839;border-color:#1F2839;color:#FFFFFF}
.cf-dog input:focus-visible+span{box-shadow:0 0 0 3px rgba(44,106,158,.35)}
.cf-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cf-btn{font:inherit;font-size:19px;font-weight:700;color:#FFFFFF;background:#2C6A9E;border:0;border-radius:999px;min-height:60px;padding:0 28px;cursor:pointer;width:100%}
.cf-btn:hover{background:#1F4F78}
.cf-btn[disabled]{opacity:.6;cursor:default}
.cf-note{margin:-6px 0 0;font-size:15px;color:#5B6576;text-align:center}
.cf-status:empty{display:none}
.cf-status{border-radius:12px;padding:14px 16px;font-size:16px;font-weight:600}
.cf-status.ok{background:#EEF3E6;color:#2F5214;font-size:17px;padding:24px;line-height:1.55}
.cf-status.ok::before{content:"✓  Request sent";display:block;font-family:'Zilla Slab',Georgia,serif;font-size:26px;font-weight:700;color:#1F2839;margin-bottom:8px}
.cf-status.err{background:#FBEAEA;color:#8A2323}
.cf.sent .cf-grid,.cf.sent .cf-dog,.cf.sent .cf-f,.cf.sent .cf-btn,.cf.sent .cf-note,.cf.sent .cf-title{display:none}

@media (max-width:980px){
.hero,.split,.bookgrid,.cgrid{grid-template-columns:minmax(0,1fr);gap:36px}
.ft{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.ft-brand{grid-column:1/-1}
.pv-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.cgrid{grid-template-areas:"intro" "form" "extra";grid-template-rows:none;gap:28px}
.acts{grid-template-columns:repeat(3,minmax(0,1fr))}
.amen{grid-template-columns:repeat(2,minmax(0,1fr))}
.bento{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:170px}
.land,.seasons{grid-template-columns:repeat(2,minmax(0,1fr))}
.reviews{grid-template-columns:minmax(0,1fr)}
.foot{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
.ft{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"brand brand" "contact contact" "visit book";gap:28px 20px;padding-top:28px;padding-bottom:36px}
.wrap.ft{padding-top:28px;padding-bottom:40px}
.ft-brand{grid-area:brand}.ft-contact{grid-area:contact}.ft-visit{grid-area:visit}.ft-book{grid-area:book}
.ft-bottom{flex-direction:column}
.pv{padding:22px 18px}
.pv-grid{grid-template-columns:minmax(0,1fr);gap:22px}
.acts{grid-template-columns:minmax(0,1fr)}
.acts .act{padding-right:34px}
.acts .act::after{display:block}
.cgrid{grid-template-areas:"intro" "form" "extra"}
.cf-title{font-size:23px}
.hide-phone{display:none !important}
.know{grid-template-columns:minmax(0,1fr)}
.cf{padding:22px 18px}
.cf-grid{grid-template-columns:minmax(0,1fr)}
.wrap{padding:0 16px}
.navlinks{display:none !important}
.hero-title{font-size:42px !important}
.h2{font-size:34px}
.brandtext{display:none !important}
.foot{grid-template-columns:minmax(0,1fr)}
.float{left:12px !important;bottom:12px !important}
.wm,.hl-leaf{display:none !important}
.bookpad{padding:28px 20px !important;border-radius:18px !important}
.landsvg{height:96px !important}
.hl{font-size:19px !important;gap:8px 18px !important}
.seasons h3{font-size:20px !important}
}
.guide{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.todo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
@media (max-width:980px){.guide{grid-template-columns:repeat(2,minmax(0,1fr))}.todo{grid-template-columns:minmax(0,1fr)}}
@media (max-width:640px){.guide{grid-template-columns:minmax(0,1fr)}}

.menu{display:none;position:relative}
.menu summary{list-style:none;cursor:pointer;width:46px;height:46px;border-radius:12px;border:1px solid #E2E0D6;background:#FFFFFF;display:flex;align-items:center;justify-content:center}
.menu summary::-webkit-details-marker{display:none}
.menu .panel{position:absolute;right:0;top:56px;background:#FFFFFF;border:1px solid #E2E0D6;border-radius:14px;box-shadow:0 18px 40px rgba(31,40,57,.18);padding:10px;display:flex;flex-direction:column;min-width:220px;z-index:20}
.menu .panel a{color:#1F2839;text-decoration:none;font-weight:600;padding:12px 14px;border-radius:10px}
.menu .panel a:hover{background:#F6F5F0}
.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:16px;background:#fff;padding:8px 12px;z-index:50}
html{scroll-behavior:smooth}
section[id]{scroll-margin-top:16px}
/* map is wider than its frame and anchored left: the pin sits right of center so Saratoga Springs shows on the left */
iframe.map{border:0;display:block;width:135%;max-width:none;height:100%}
.phonebar{display:none;align-items:center;gap:8px}
.dirbtn{display:inline-flex;align-items:center;gap:6px;height:46px;padding:0 14px;border-radius:12px;border:1px solid #E2E0D6;background:#FFFFFF;color:#1F2839;font-weight:700;font-size:15px;text-decoration:none;box-sizing:border-box}
.dirbtn svg{color:#3F6B1C}
.dirbtn:hover{color:#1F2839;background:#F6F5F0}
@media (max-width:760px){.menu{display:block}.phonebar{display:flex}.headcta{display:none !important}}
/* Contact form on iPhone: Safari draws date fields at a fixed width that ignores width:100%,
   so they ran past the edge of the form. Reset the native look and give them our own calendar icon. */
.cf-f{min-width:0}
.cf input,.cf select,.cf textarea{min-width:0;max-width:100%}
.cf input[type=date]{-webkit-appearance:none;appearance:none;display:block;position:relative;text-align:left;padding-right:46px;
  background:#FBFAF6 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%232C6A9E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E") right 14px center/20px no-repeat}
.cf input[type=date]:focus{background-color:#FFFFFF}
.cf input[type=date]::-webkit-date-and-time-value{text-align:left}
.cf input[type=date]::-webkit-calendar-picker-indicator{position:absolute;inset:0;width:auto;height:auto;opacity:0;cursor:pointer}

a.zoom{display:block;width:100%;height:100%;position:relative;cursor:zoom-in;border-radius:inherit;-webkit-tap-highlight-color:transparent}
a.zoom img{transition:filter .2s}
a.zoom:hover img{filter:brightness(1.07)}
a.zoom::after{content:"";position:absolute;top:10px;right:10px;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.92) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%231F2839' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7'/%3E%3C/svg%3E") center/18px no-repeat;box-shadow:0 2px 8px rgba(31,40,57,.25);opacity:.9;transition:opacity .2s,transform .2s;pointer-events:none}
a.zoom:hover::after{opacity:1;transform:scale(1.08)}
a.zoom:focus-visible{outline:3px solid #2C6A9E;outline-offset:3px}
.pswp{--pswp-bg:#10151F}
.pswp__caption{position:absolute;left:0;right:0;bottom:0;padding:14px 64px 20px;text-align:center;color:#FFFFFF;font:500 16px/1.4 'Source Sans 3',system-ui,sans-serif;text-shadow:0 1px 3px rgba(0,0,0,.6);pointer-events:none}
.pswp__caption:empty{display:none}
