/* Phone-first reading and navigation; native details works without JavaScript. */
summary:focus-visible{outline:3px solid #bf5c2d;outline-offset:4px}
.skip{z-index:30}
main:focus{outline:none}
.footer-grid{grid-template-columns:1.3fr 1fr 1fr}
.footer-explore{display:flex;flex-direction:column;gap:2px;align-items:flex-start}
.footer-explore .eyebrow{margin:0 0 10px}
.footer-explore a{display:inline-flex;align-items:center;min-height:44px;font-size:1rem}
/* Content-sized tracks and fluid spacing keep tablet widths usable too. */
body{container-type:inline-size}
main,footer{padding-inline:clamp(1rem,3vw,2.25rem)}
h1,h2,h3{overflow-wrap:anywhere}
.grid>*,.footer-grid>*,.food-list>*,.outing-grid>*,.map-section>*,.journal-band>*,.home-food>*{min-width:0}
.prose{width:100%;max-width:68ch}
.prose ul,.prose ol{padding-left:1.4em}
.tags span,.cottage-facts dd{overflow-wrap:anywhere}
.desktop-nav{gap:clamp(1rem,2vw,1.75rem);align-items:center}
.desktop-nav a{display:inline-flex;align-items:center;min-height:44px;font-weight:700;white-space:nowrap}
.card-photo img{display:block}
.home-page .vacation-cover{width:100cqi;margin-left:calc(50% - 50cqi);height:auto}
.home-page .vacation-title{height:auto;min-height:660px}
.page-photo img{height:auto;aspect-ratio:16/9;max-height:520px;object-fit:cover;display:block}
.content-layout{gap:clamp(1.5rem,4vw,4rem)}
.cottage-detail-layout{grid-template-columns:minmax(0,1fr) minmax(17rem,21.25rem);gap:clamp(1.5rem,4vw,3.5rem)}
.filters{grid-template-columns:repeat(3,minmax(0,1fr))}
.filters input,.filters select{min-width:0;font-size:1rem}
.filters button{font-size:1rem}
@media(max-width:60rem){
 html{scroll-padding-top:110px}
 header,.home-page header{position:sticky;top:0;z-index:10;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:16px;width:100%;max-width:none;padding:15px 20px;background:#fcfbf7;border-bottom:1px solid #cbd3cf;color:#183c49}
 header .brand,.home-page header .brand{font-size:2rem;color:#183c49;text-shadow:none;flex-shrink:0}
 header .brand span{font-size:.875rem}
 header .desktop-nav{display:none}
 .mobile-menu{display:block;margin-left:auto}
 .mobile-menu summary{cursor:pointer;list-style:none;min-width:80px;min-height:48px;padding:12px 15px;border:1px solid #93a6ac;font-size:1rem;line-height:1.4;text-align:center}
 .mobile-menu summary::-webkit-details-marker{display:none}
 .mobile-menu summary:after{content:" +";padding-left:5px}
 .mobile-menu[open] summary:after{content:" −"}
 header .mobile-menu nav,.home-page header .mobile-menu nav{position:absolute;top:100%;left:0;right:0;max-width:none;display:flex;flex-direction:column;flex-wrap:nowrap;gap:0;padding:8px 20px 18px;background:#fcfbf7;border-bottom:1px solid #93a6ac;box-shadow:0 12px 18px #183c4915;max-height:65svh;overflow:auto}
 header .mobile-menu nav a,.home-page header .mobile-menu nav a{display:block;color:#183c49;text-shadow:none;font-size:1.0625rem;font-weight:700;line-height:1.5;padding:13px 8px;min-height:48px;border-bottom:1px solid #e0e5e1}
 .mobile-menu nav a[aria-current]{border-left:3px solid var(--red);padding-left:12px;background:#edf1eb;font-weight:bold}
 .content-layout,.cottage-detail-layout{grid-template-columns:minmax(0,1fr)}
 .cottage-reservation,.cottage-detail-main{grid-column:auto;grid-row:auto}
 .content-layout aside{border-top:1px solid #cbd3cf;padding-top:24px}
 .prose{max-width:68ch}
 .home-page .vacation-cover{min-height:0}
 .home-page .vacation-title{padding-top:90px;padding-bottom:48px;min-height:560px}
 .map-section,.home-food,.porch-story,.activity-feature{gap:28px}
 .journal-band{gap:28px;padding:32px}
 .footer-grid{grid-template-columns:1.2fr 1fr;gap:28px}
 .footer-explore{grid-column:1/-1;flex-direction:row;flex-wrap:wrap;gap:8px 24px}
 .footer-explore .eyebrow{width:100%;margin:0}
}
@media(max-width:760px){
 main,footer{padding-left:20px;padding-right:20px}
 main{padding-top:24px}
 .home-page main{padding-top:0}
 .page-heading{padding:0 0 24px}
 .page-heading h1{font-size:clamp(2.25rem,9vw,3.3rem);line-height:1.1;letter-spacing:-.035em;overflow-wrap:break-word}
 .intro{font-size:1.0625rem;line-height:1.65}
 .content-layout,.grid,.activity-feature,.porch-story,.footer-grid{grid-template-columns:minmax(0,1fr);gap:30px}
 .prose{font-size:1.0625rem;line-height:1.75}
 .prose h2,.content-layout h2{font-size:1.85rem;line-height:1.2;margin:28px 0 14px}
 .prose section{margin-bottom:32px}
 .content-layout aside{border-top:1px solid #cbd3cf;padding-top:24px}
 .prose a,.fine a,figcaption,.booking-box,.details dd{overflow-wrap:anywhere}
 .page-photo img,.beach-photo img,.activity-feature img{height:auto;max-height:360px;aspect-ratio:4/3;object-fit:cover}
 .guide-card .card-photo img{height:auto;aspect-ratio:4/3;object-fit:cover}
 .page-photo{margin-bottom:26px}
 .filters{grid-template-columns:minmax(0,1fr);gap:16px}
 input,select,button{font-size:1rem;min-height:48px}
 .filters label{font-size:1rem}
 .stats{gap:20px;flex-wrap:wrap}
 .button,.text-button{min-height:48px;white-space:normal}
 .section-heading>a,.welcome-line>a,.crumb>a{display:inline-flex;align-items:center;min-height:44px;white-space:normal}
 .sources summary{min-height:48px;padding:14px 0}
 .sources li{padding:4px 0}
 .map-section{grid-template-columns:minmax(0,1fr);gap:22px}
 .map-section h2{font-size:2.2rem}
 .map-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 .map-choices button{width:100%;font-size:1rem;padding:10px 8px;overflow-wrap:break-word}
 .map-section iframe,.mini-map{height:300px}
 .home-page .vacation-cover{height:auto;min-height:0;width:auto;margin-left:-20px;margin-right:-20px}
 .home-page .vacation-title{height:auto;min-height:480px;max-width:none;padding:96px 24px 36px;justify-content:flex-end}
 .home-page .vacation-title h1{font-size:clamp(2.7rem,12vw,4rem);line-height:1.04}
 .home-page .vacation-title>p:not(.eyebrow){font-size:1.0625rem}
 .home-page .vacation-title p br{display:none}
 .home-page .vacation-cover:after{background:linear-gradient(180deg,transparent,#12323bd9)}
 .photo-stories{display:block}
 .photo-stories article{margin-bottom:36px!important}
 .photo-stories article:first-child img,.photo-stories article:not(:first-child) img{height:auto;aspect-ratio:4/3;object-fit:cover}
 .journal-band{grid-template-columns:minmax(0,1fr);padding:26px;gap:12px}
 .journal-links a{font-size:1.5rem;line-height:1.3;min-height:48px}
 .footer-grid>div>a:not(.brand){display:inline-flex;align-items:center;min-height:44px}
 .welcome-line{flex-direction:column;align-items:flex-start;gap:8px}
 .section-heading{align-items:flex-start;flex-direction:column;gap:12px}
 .section-heading>a{white-space:normal}
 .mobile-menu nav a[aria-current]{border-left:3px solid var(--red);padding-left:12px;background:#edf1eb;font-weight:bold}
 .footer-explore{border-top:1px solid #cbd3cf;padding-top:24px;width:100%}
 .home-page section:not(.vacation-cover){margin-bottom:48px}
 .welcome-line{margin-bottom:44px}
 .section-heading{margin-bottom:24px}
 .guide-topics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 20px;padding-bottom:18px;margin-bottom:28px}
 .article-contents{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 20px}
 .article-contents .eyebrow{grid-column:1/-1}
 .guide-topics a,.article-contents a{line-height:1.45;overflow-wrap:anywhere}
 .guide-card h3,.food-list h3,.food-feature h3{font-size:1.75rem}
 .photo-stories article:first-child h3{font-size:2.1rem}
 .footer-explore{flex-direction:column;gap:2px}
}
@media(max-width:380px){main,footer{padding-left:16px;padding-right:16px}.home-page .vacation-cover{margin-left:-16px;margin-right:-16px}.map-choices,.article-contents,.guide-topics,.home-food-notes{grid-template-columns:1fr}.journal-band{padding:22px}.booking-box{padding:22px}header,.home-page header{padding-inline:16px;gap:8px}header .brand,.home-page header .brand{font-size:1.75rem}.mobile-menu summary{min-width:70px;padding-inline:10px}}
@media(max-width:60rem) and (max-height:500px){header,.home-page header{position:relative}.home-page .vacation-title{min-height:360px;padding-top:48px}.mobile-menu nav{max-height:75svh}}
