@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Caslon+Display&display=swap');
:root{--cream:#f6f3ec;--paper:#fffcf6;--ink:#293b32;--muted:#697066;--olive:#455746;--line:#d9d9cc;--sand:#e9e6db;--serif:'Libre Caslon Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:var(--cream);color:var(--ink);font:15px/1.65 var(--sans)}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}img{display:block;max-width:100%;object-fit:cover}button{color:inherit}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:400}h1,h2{font-family:var(--serif);line-height:1.05;letter-spacing:-1.8px}h2{font-size:clamp(38px,4.2vw,58px)}em{font-weight:400}p+p{margin-top:18px}:focus-visible{outline:3px solid #a87030;outline-offset:5px}.skip{position:fixed;top:-100px;left:15px;background:white;padding:12px;z-index:20}.skip:focus{top:10px}.preview-banner{text-align:center;font-size:11px;letter-spacing:.25px;padding:7px 12px;background:#e7e9df;color:#4b5748}.preview-banner span{margin:0 7px}.site-header{max-width:1440px;margin:auto;padding:24px 5%;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand{display:flex;gap:13px;align-items:center;font-size:12px;font-weight:600;letter-spacing:2.2px;line-height:1.4}.brand small{display:block;font-size:8px;letter-spacing:2px;margin-top:4px}.brand-mark{font:italic 40px/1 var(--serif);letter-spacing:-3px;width:45px;border-bottom:1px solid var(--ink);padding-bottom:3px}.site-header nav{display:flex;gap:32px;font-size:13px}.site-header nav a:hover,.text-link:hover,footer a:hover{color:#917247}.button{background:var(--ink);color:var(--paper);padding:16px 23px;border:1px solid var(--ink);display:inline-flex;gap:30px;align-items:center;justify-content:space-between;font-size:13px;transition:background .2s}.button:hover{background:#52634f}.button-small{padding:12px 19px}.hero{max-width:1440px;margin:auto;padding:22px 5% 0;display:grid;grid-template-columns:42% 58%;min-height:580px}.hero-copy{padding:22px 0 24px}.eyebrow{font-size:10px;letter-spacing:2.2px;font-weight:600}.small-line{display:inline-block;height:1px;background:var(--ink);width:26px;vertical-align:middle;margin-right:10px}h1{font-size:clamp(58px,6.4vw,91px);margin:24px -35px 24px 0;position:relative;z-index:1}h1 em{color:#778066}.hero-description{font-size:15px;color:#636b60;line-height:1.85}.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:45px;border-bottom:1px solid #7e8777;padding:8px 0;font-size:12px;font-weight:500}.hero-copy>.text-link{margin-top:24px}.hero-note{display:flex;align-items:center;gap:15px;margin-top:34px;font-size:11px;color:#6f766a;line-height:1.6}.sun{font-size:43px;font-weight:400;color:#899073;line-height:1}.hero-photo{position:relative;min-height:530px;margin:0 0 24px 20px}.hero-photo>img{width:100%;height:100%;position:absolute;object-position:center}.photo-tag{position:absolute;right:-13px;top:28px;background:#e8e3d0;padding:16px 22px;transform:rotate(3deg);font:italic 22px var(--serif);box-shadow:0 3px 10px #0001}.photo-button{position:absolute;bottom:23px;right:23px;border:0;background:var(--paper);font-size:11px;padding:12px 16px;display:flex;gap:10px}.photo-button span{font-size:17px}.facts{max-width:1296px;margin:14px auto 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;padding:22px 0;align-items:center;justify-content:space-between;font-size:12px;color:#636b60}.facts>span{padding:0 22px;border-right:1px solid var(--line)}.facts>span:first-child{padding-left:0}.facts>span:last-child{border:0;padding-right:0}.facts strong{color:var(--ink);font-weight:500;margin-right:6px}.facts-last{font-size:10px;text-transform:uppercase;letter-spacing:1.5px}.facts-last span{margin-left:18px}.section{max-width:1440px;margin:auto;padding:88px 5%}.section .eyebrow{margin-bottom:20px}.cottage-section{display:grid;grid-template-columns:1fr 1fr;gap:40px 9%}.intro-copy{padding-top:25px;max-width:485px;font-size:14px;color:var(--muted)}.intro-copy .text-link{margin-top:18px;color:var(--ink)}.gallery-grid{grid-column:1/-1;display:grid;grid-template-columns:1.45fr 1fr;gap:22px;padding-top:10px}.gallery-image,.room-image{padding:0;border:0;position:relative;display:block;background:var(--sand);overflow:hidden;width:100%;text-align:left}.gallery-image img{width:100%;height:355px;transition:transform .7s}.gallery-image:hover img,.room-image:hover img{transform:scale(1.025)}.gallery-image>span{position:absolute;left:0;right:0;bottom:0;padding:36px 22px 18px;color:white;background:linear-gradient(transparent,#17291fc2);font-size:12px;display:flex;justify-content:space-between}.gallery-image b{font-weight:400}.bedroom-section{background:#eeece3;padding-top:65px;padding-bottom:65px}.section-top{display:flex;align-items:flex-end;justify-content:space-between;gap:35px;margin-bottom:36px}.section-top>p{color:var(--muted);font-size:13px}.bedroom-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.room-image img{width:100%;height:255px;transition:transform .7s}.room-image span{position:absolute;right:12px;bottom:12px;background:var(--paper);width:29px;height:29px;text-align:center;line-height:29px}.room-title{display:flex;justify-content:space-between;align-items:center;margin-top:18px}.room-title h3{font:28px var(--serif)}.room-title span{font-size:10px;color:#858b7c}.bedroom-grid article>p{font-size:11px;color:var(--muted);margin-top:5px}.comfort-section{display:grid;grid-template-columns:1fr 1.1fr;gap:65px;border-bottom:1px solid var(--line)}.comfort-section>div>p:last-child{font-size:13px;color:var(--muted);margin-top:22px}.amenities{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:0 25px}.amenities li{display:flex;gap:14px;align-items:center;border-bottom:1px solid var(--line);padding:15px 0;font-size:12px}.amenities li>span{font-family:Georgia,serif;display:inline-flex;justify-content:center;align-items:center;width:28px;height:28px;font-size:25px;font-weight:400}.explore-section{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}.explore-art{height:455px;background:#e6e7da;position:relative;overflow:hidden;border:12px solid #ececdf;isolation:isolate}.map-line{position:absolute;background:#f7f5ed;border:1px solid #d4d7c8;width:150%;height:22px;z-index:-1}.line-one{top:30%;left:-20%;transform:rotate(-30deg)}.line-two{top:62%;left:-20%;transform:rotate(20deg)}.line-three{top:45%;left:-20%;transform:rotate(90deg);height:14px}.map-home{position:absolute;left:54%;top:25%;font:italic 42px var(--serif);background:var(--ink);border-radius:50%;width:90px;height:90px;text-align:center;padding-top:15px;color:var(--cream);box-shadow:0 0 0 10px #293b3210}.map-home small{position:absolute;white-space:nowrap;top:110px;left:-6px;color:var(--ink);font:8px var(--sans);letter-spacing:1.5px}.map-label{font:19px/1.2 var(--serif);position:absolute}.map-label:before{content:'';width:7px;height:7px;display:block;background:#7a8868;border:4px solid #f7f5ed;border-radius:50%;box-shadow:0 0 0 1px #7a8868;margin-bottom:8px}.downtown{left:12%;top:32%}.fairgrounds{left:28%;top:70%}.map-compass{position:absolute;top:18px;right:20px;text-align:center;font-size:11px;line-height:1.2}.map-caption{position:absolute;bottom:12px;left:12px;right:12px;font-size:7px;letter-spacing:.9px;text-align:center}.explore-copy>p:not(.eyebrow){font-size:14px;color:var(--muted);margin-top:24px;max-width:360px}.destination{display:flex;gap:16px;margin-top:24px;align-items:flex-start}.destination>span{font-size:10px;color:#8a937e;padding-top:4px}.destination h3{font-size:14px;font-weight:500}.destination p{font-size:12px;color:var(--muted);margin-top:4px}.explore-copy>.text-link{margin-top:22px}.plan-section{background:var(--ink);color:var(--cream);display:grid;grid-template-columns:1fr .85fr;gap:12%;padding:72px 8%}.plan-copy h2{font-size:72px}.plan-copy h2 em{color:#c8d0b4}.plan-copy>p:not(.eyebrow){font-size:13px;color:#d4d8cb;margin-top:25px;max-width:335px}.booking-steps{display:flex;flex-direction:column;font-size:11px;gap:10px;margin-top:25px;color:#d4d8cb}.existing-listings{font-size:11px!important}.existing-listings a{display:inline-block;border-bottom:1px solid #abb59e;margin-right:20px;margin-top:5px}.stay-form{background:var(--paper);color:var(--ink);padding:36px;align-self:center}.stay-form .eyebrow{font-size:8px;margin-bottom:14px}.stay-form h3{font:39px var(--serif)}.form-intro{font-size:12px;color:var(--muted);margin-top:10px;margin-bottom:24px}.stay-form label{font-size:10px;font-weight:600;display:flex;flex-direction:column;gap:8px}.date-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:17px}input,select{background:transparent;color:var(--ink);border:1px solid #c7cebd;border-radius:0;padding:12px 10px;min-width:0;width:100%;font-size:13px;min-height:45px}select{appearance:auto}.stay-summary{font-size:11px;color:var(--muted);margin-top:20px;min-height:18px}.form-button{margin-top:20px;width:100%}.form-disclosure{color:var(--muted);font-size:10px;line-height:1.6;margin-top:14px}.faq-section{display:grid;grid-template-columns:1fr 1fr;gap:9%}.faq-list details{border-bottom:1px solid var(--line)}.faq-list summary{list-style:none;padding:20px 26px 20px 0;cursor:pointer;position:relative;font-size:13px}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:'+';position:absolute;right:3px;font-size:20px;top:15px}.faq-list details[open] summary:after{content:'−'}.faq-list details p{font-size:12px;color:var(--muted);padding:0 20px 20px 0}.faq-list a{text-decoration:underline}footer{max-width:1296px;margin:0 auto;padding:30px 0 38px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:25px}footer>p{font-size:12px;color:var(--muted)}footer small{font-size:10px}footer>a:last-child{font-size:11px}dialog{border:0;padding:0;background:var(--paper);color:var(--ink)}dialog::backdrop{background:#152219d9;backdrop-filter:blur(4px)}.dialog-close{position:absolute;right:12px;top:12px;z-index:2;border:0;background:var(--paper);color:var(--ink);width:40px;height:40px;font-size:28px;line-height:1}.gallery-dialog{width:min(1000px,94vw);max-height:94dvh;overflow:auto}.gallery-dialog>img{width:100%;height:min(72dvh,680px);object-fit:contain;background:#1e2b23}.gallery-controls{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 20px}.gallery-controls button{border:1px solid var(--line);background:transparent;font-size:23px;width:45px;height:40px}.gallery-controls p{font-size:12px;text-align:center}.stay-dialog{width:min(560px,92vw);padding:45px}.stay-dialog h2{font-size:44px;margin:18px 0 24px}.stay-dialog>p:not(.eyebrow){font-size:12px;color:var(--muted);margin-top:18px}.stay-dialog .button{margin-top:24px}.request-row{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line);padding:10px 0;font-size:13px}.preview-result{padding:15px;background:var(--sand)}
@media(min-width:1440px){.hero-photo{min-height:585px}}
@media(max-width:1439px){.facts,footer{margin-left:5%;margin-right:5%}}
@media(max-width:1000px){.hero{grid-template-columns:45% 55%;min-height:530px}h1{font-size:66px}.hero-photo{min-height:500px}.hero-note{margin-top:28px}.site-header nav{gap:20px}.gallery-image img{height:300px}.room-image img{height:210px}.comfort-section{gap:35px}.plan-section{gap:7%;padding-left:5%;padding-right:5%}.stay-form{padding:26px}.plan-copy h2{font-size:64px}.facts>span{padding:0 10px}.explore-art{height:425px}.section{padding-top:65px;padding-bottom:65px}}
@media(max-width:720px){.preview-banner{font-size:9px}.site-header{padding:20px 6%;gap:10px}.brand{font-size:10px;letter-spacing:1.7px}.brand small{font-size:6px;letter-spacing:1.6px}.brand-mark{font-size:34px;width:35px}.site-header nav{display:none}.button-small{padding:10px 13px;font-size:11px;gap:12px}.hero{padding:14px 6% 0;grid-template-columns:1fr;gap:20px}.hero-copy{padding:10px 0 5px}.eyebrow{font-size:9px}h1{font-size:70px;line-height:1.01;margin:23px 0}h1 br:nth-of-type(2){display:none}.hero-description{font-size:13px}.hero-copy>.text-link{margin-top:18px}.hero-note{display:none}.hero-photo{margin:0;min-height:340px}.hero-photo img{object-position:center}.photo-tag{right:-5px;top:20px;padding:12px 15px;font-size:20px}.photo-button{bottom:15px;right:15px}.facts{margin:24px 6% 0;display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:20px 0}.facts>span{border:0;padding:0;font-size:11px}.facts-last{display:none}.section{padding:52px 6%}.cottage-section{grid-template-columns:1fr;gap:22px}.intro-copy{padding-top:0}.intro-copy p{font-size:13px}.gallery-grid{grid-template-columns:1fr 1fr;gap:12px;padding-top:6px}.gallery-image img{height:240px}.gallery-image>span{font-size:10px;padding:30px 12px 13px}.section-top{align-items:flex-start;flex-direction:column;gap:18px;margin-bottom:28px}.section-top>p br{display:none}.bedroom-grid{grid-template-columns:1fr;gap:30px}.room-image img{height:auto;aspect-ratio:1.5}.room-title h3{font-size:28px}.comfort-section{grid-template-columns:1fr;gap:25px}.amenities{gap:0 20px}.amenities li{font-size:11px;gap:10px}.explore-section{grid-template-columns:1fr;gap:35px}.explore-art{height:330px;order:2}.explore-copy{order:1}.map-label{font-size:17px}.plan-section{grid-template-columns:1fr;gap:32px}.plan-copy h2{font-size:64px}.booking-steps{gap:7px}.stay-form{padding:26px}.stay-form h3{font-size:36px}.faq-section{grid-template-columns:1fr;gap:25px}footer{margin:0 6%;padding:30px 0;flex-wrap:wrap}footer>p{font-size:11px}footer>a:last-child{width:100%}.stay-dialog{padding:32px 25px}.stay-dialog h2{font-size:38px}.gallery-controls{gap:8px;padding:12px}.gallery-controls p{font-size:11px}.gallery-dialog>img{height:auto;max-height:75dvh}.date-fields{gap:8px}input{font-size:12px;padding:12px 8px}}
@media(max-width:380px){h1{font-size:60px}.hero-photo{min-height:285px}.gallery-grid{grid-template-columns:1fr}.gallery-image img{height:260px}.date-fields{grid-template-columns:1fr}.stay-form{padding:22px}.brand small{letter-spacing:1px}.button-small{font-size:10px}}
@media(max-width:720px){h1{font-size:54px;line-height:1.06}h1 br:nth-of-type(2){display:initial}}
@media(max-width:380px){h1{font-size:47px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Keep the homepage exterior photo uncropped at every screen size. */
.hero-photo{min-height:0;align-self:center}
.hero-photo>img{position:relative;width:100%;height:auto;object-fit:contain}

/* Historic Perry Cottage identity and complete photo gallery. */
.brand-mark{width:55px;height:49px;border:0;padding:0;flex-shrink:0;object-fit:contain}
.brand{letter-spacing:1.7px;gap:12px}
.map-home{font-size:35px;padding-top:18px}
.gallery-thumbnails{display:flex;gap:8px;overflow-x:auto;padding:0 20px 16px;scrollbar-width:thin}
.gallery-thumbnails button{padding:3px;border:2px solid transparent;background:transparent;flex:0 0 auto}
.gallery-thumbnails button[aria-current="true"]{border-color:var(--olive)}
.gallery-thumbnails img{width:80px;height:56px;object-fit:cover}
.gallery-dialog>img{height:min(62dvh,620px)}
@media(max-width:720px){.brand-mark{width:40px;height:38px}.brand{gap:7px;font-size:9px;letter-spacing:1px;max-width:195px}.brand small{letter-spacing:1px;font-size:6px}.site-header{gap:12px}.site-header>.button-small{flex-shrink:0}.gallery-thumbnails{padding:0 12px 12px}.gallery-dialog>img{height:auto;max-height:65dvh}.gallery-thumbnails img{width:65px;height:48px}}

/* Owner-supplied cottage illustration and wordmark, shown in full. */
.brand{display:block;width:270px;max-width:none;flex-shrink:0}
.brand-logo{display:block;width:100%;height:auto;object-fit:contain}
.site-header{padding-top:10px;padding-bottom:10px}
footer .brand{width:240px}
@media(max-width:1000px) and (min-width:721px){.brand{width:220px}.site-header{gap:18px}.site-header nav{gap:16px}}
@media(max-width:720px){.brand{width:180px;max-width:none}.site-header{padding-top:8px;padding-bottom:8px}footer .brand{width:200px}}
@media(max-width:380px){.brand{width:155px}.site-header{gap:8px}}