/* Desktop v4 is approved. Its styles remain untouched above 1100px. */
.mobile-menu-toggle{display:none}
@media(max-width:1100px){
  html{scroll-padding-top:82px}
  body{font-size:18px;line-height:1.6}
  .section{padding:64px 32px}
  h1{font-size:44px}h2{font-size:42px}h3{font-size:26px}
  .lead{font-size:20px}.eyebrow{font-size:13px;margin-bottom:20px}
  .section-head,.split-heading{gap:32px}
  .site-header{height:68px;min-height:68px;padding:9px 24px;gap:16px;flex-wrap:wrap}
  .site-header>.button{margin-left:auto}
  .mobile-menu-toggle{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:8px 14px;border:1px solid var(--line);border-radius:24px;background:transparent;font-size:15px;line-height:1.3}
  .mobile-menu-toggle svg{width:18px;height:18px;flex:none}
  .site-header .camp-navigation{display:none;position:absolute;left:0;right:0;top:100%;margin:0;padding:12px 24px 20px;max-height:calc(100dvh - 68px);overflow:auto;border:0;border-bottom:1px solid var(--line);border-radius:0;background:#fcfaf5;box-shadow:0 12px 18px #2928240d}
  .site-header .camp-navigation.is-open{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .site-header .camp-navigation a{font-size:17px;min-height:48px;padding:13px 16px}
  .booking-band{margin:0 32px;padding:36px 0;scroll-margin-top:82px}
  .booking-heading{gap:28px;align-items:start;margin-bottom:28px}
  .booking-intro{display:block;max-width:280px;font-size:17px}
  .booking-form{grid-template-columns:repeat(2,minmax(0,1fr));padding:16px;gap:16px}
  .booking-form label{min-width:0;border:0;padding:4px 12px;font-size:14px}
  .booking-form input,.booking-form input[type=date],.booking-form select{min-width:0;min-height:44px;font-size:18px}
  .booking-form .button{min-width:0;white-space:normal;font-size:17px;padding:14px 20px;gap:14px}
  .booking-under{font-size:14px;gap:20px}
  .facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:32px}
  .facts strong{font-size:36px}.facts p{font-size:15px;max-width:none}
  .gallery-section,.rooms{padding-top:24px}
  .row-heading{gap:24px;align-items:start}.row-heading .text-link{flex:none}
  .gallery{grid-template-rows:190px 190px;gap:12px}
  .photo span{font-size:14px;left:10px;bottom:10px;padding:6px 9px}
  .gallery-under,.gallery-under .text-link{font-size:15px}
  .bed-plan{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;padding:28px 0}
  .bed-plan>div{border:0;padding:0}.bed-plan .twin-icons .line-icon{width:36px}
  .bed-plan strong{font-size:18px}.bed-plan span{font-size:15px}
  .room-grid{gap:20px}.room-label h3{font-size:24px}.room-grid article>p{font-size:17px}
  .linen-note{flex-wrap:wrap;font-size:15px;gap:12px 24px}.linen-note span:nth-child(2){max-width:none}
  .stories-heading{padding-bottom:32px}.story-tabs{gap:18px;margin-top:28px}
  .story-tabs span{font-size:18px}.story-tabs small{font-size:13px;margin-right:8px}
  .story-caption{padding:32px;gap:28px;grid-template-columns:1fr 1.4fr}
  .story-caption h3{font-size:28px}.story-caption p{font-size:18px}
  .comfort-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
  .comfort-grid h3{font-size:25px;max-width:none}.comfort-grid p{font-size:18px}
  .water-note{gap:24px;margin-top:36px}.water-symbol{min-width:64px}
  .grill-story{gap:32px}.grill-story h3{font-size:32px}.grill-story>img{height:auto;aspect-ratio:1.05;object-fit:cover}
  .household{align-items:start;flex-wrap:wrap;gap:18px}.household>div{flex:1;min-width:0}
  .household>span{width:100%;max-width:none;margin:0 0 0 60px;padding:0;border:0;font-size:15px}
  .outdoors>.section{padding:64px 32px}.activity-grid{gap:36px 24px}
  .animal-pair>img{height:300px}.activity-copy{padding-top:24px}
  .activity-copy h3,.dinner-card h3{font-size:28px}.activity-copy p,.dinner-card p{font-size:18px}
  .activity-wide{grid-template-columns:1fr;gap:24px;padding:0 0 32px}
  .activity-wide .activity-pair figure>img{height:auto;aspect-ratio:3/2;object-fit:contain}
  .dinner-card{gap:24px}.sunset-story{margin-top:36px}.sunset-story img{height:420px}
  .sunset-story>div{left:28px;right:28px;bottom:28px;font-size:32px}
  .rules-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
  .faq summary{font-size:20px}.faq details p{font-size:18px}
  .location{padding:64px 32px;gap:40px}.location .address{font-size:20px}.directions h3{font-size:25px}
  .final-booking{padding:64px 32px}.final-booking h2{font-size:46px}
  footer{padding:28px 32px}.footer-top{gap:24px;flex-wrap:wrap}.footer-top>p{min-width:180px;font-size:18px}
  .footer-bottom{align-items:start;gap:24px}.footer-bottom>div{gap:8px 20px}
}
@media(max-width:760px){
  .section{padding:56px 24px}h2{font-size:38px}
  .site-header{padding:9px 20px;gap:12px}.site-header>.button{display:none}
  .mobile-menu-toggle{margin-left:auto}.camp-brand{width:170px;height:49px}
  .booking-band{margin:0 24px;padding:32px 0}.booking-heading{display:block}
  .booking-heading h1{font-size:38px;max-width:none;line-height:1.1}
  .booking-heading .eyebrow{font-size:12px;max-width:none;margin-bottom:18px}
  .booking-intro{display:block;max-width:none;font-size:18px;margin-top:22px;line-height:1.6}
  .booking-under{flex-direction:column;gap:7px;line-height:1.5}.booking-under>span:last-child{text-align:left}
  .section-head,.split-heading{display:block}.section-head .lead,.split-heading .lead{margin-top:24px;font-size:19px}
  .split-heading .muted{font-size:17px}.split-heading{margin-bottom:28px}
  .row-heading{display:block}.row-heading .text-link{font-size:16px;margin-top:20px;min-height:44px}
  .gallery-section,.rooms{padding-top:24px}
  .gallery{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:280px 170px 170px;gap:10px}
  .gallery-under{display:flex;flex-direction:column;align-items:start;gap:12px}.gallery-under .text-link{flex-wrap:wrap;gap:6px;min-height:44px}
  .room-grid{grid-template-columns:1fr;gap:36px}.room-photo img{aspect-ratio:1.34;height:auto}
  .room-label{display:flex;align-items:baseline;gap:16px;margin:18px 0 12px}.room-label h3{font-size:27px}.room-label span{margin:0;font-size:14px;flex:none}
  .room-grid article>p{font-size:18px;max-width:none}.linen-note{display:grid;gap:12px;font-size:15px}
  .stories-heading{padding-bottom:28px}.story-tabs{gap:12px}
  .story-tabs img{aspect-ratio:1.2}.story-tabs span{font-size:16px;line-height:1.4}.story-tabs small{display:block;font-size:12px;margin:0 0 4px}
  .story-tabs button{padding-bottom:14px}.story-caption{display:block;padding:30px 24px}
  .story-caption h3{font-size:28px;max-width:none}.story-caption p{font-size:18px;line-height:1.6;margin-top:18px}
  .comfort .split-heading{margin-bottom:28px}.comfort-grid{gap:28px 24px;margin-top:28px}
  .comfort-grid h3{font-size:24px}.comfort-grid .line-icon{width:38px;height:38px;margin-bottom:18px}
  .water-note{gap:20px;align-items:start}.water-symbol{font-size:32px;min-width:58px}.water-note h3{font-size:24px}.water-note p{font-size:18px}
  .grill-story{grid-template-columns:1fr;gap:26px;margin-top:32px}.grill-story>img{height:auto;aspect-ratio:1280/1236;object-fit:contain}
  .grill-story h3{font-size:32px;margin-bottom:18px}.grill-story p:not(.eyebrow){font-size:18px}
  .household{margin-top:32px;padding:26px 0}.household h3{font-size:24px}.household p{font-size:17px}
  .outdoors{display:block}.outdoors>.section{padding:56px 24px}
  .activity-grid{grid-template-columns:1fr;gap:36px}
  .animal-pair>img{height:auto;aspect-ratio:3/4;object-fit:cover}
  .activity-copy h3,.dinner-card h3{font-size:29px;margin-bottom:16px}.activity-number{font-size:13px;margin-bottom:14px}
  .activity-copy p{font-size:18px;line-height:1.6}.activity-copy p.season-note{font-size:16px;margin-top:22px}
  .activity-wide{gap:24px;padding:0 0 28px}.activity-wide figcaption{font-size:15px;margin-top:10px}
  .dinner-card{gap:18px}.dinner-card>.line-icon{width:36px;height:36px}.dinner-card p{font-size:18px}
  .sunset-story img{height:auto;aspect-ratio:1/1;object-fit:cover;object-position:center}
  .sunset-story>div{left:22px;right:22px;bottom:24px;font-size:29px;line-height:1.2}
  .rules-strip{margin:28px 0 24px;padding:26px 0;gap:26px 20px}.rules-strip strong{font-size:26px}.rules-strip span{font-size:14px}
  .faq summary{font-size:19px;padding:22px 34px 22px 0}.faq details p{font-size:17px;padding:0 0 24px}.faq summary:after{top:20px}
  .location{display:block;padding:56px 24px}.location .address{font-size:20px}.location-copy>p:not(.eyebrow):not(.address){font-size:18px}
  .location .button{white-space:normal;gap:18px;width:100%;font-size:16px;padding:14px 20px;min-height:54px}.directions{margin-top:40px;gap:28px}.directions h3{font-size:26px}.directions span{font-size:13px}.directions p{font-size:18px;max-width:none}
  .final-booking{padding:54px 24px}.final-booking h2{font-size:38px}.final-booking .button{min-width:0;max-width:100%;font-size:16px;gap:18px;white-space:normal}.final-booking>p:last-child{font-size:16px}
  footer{padding:24px 24px calc(116px + env(safe-area-inset-bottom))}.footer-top{display:flex;flex-direction:column;align-items:start;gap:18px;padding-bottom:28px}
  .footer-logo{width:210px;height:86px}.footer-logo img{width:235px;height:auto;aspect-ratio:1322/789;left:-13px}
  .footer-top>p{font-size:19px;flex:none;min-width:0}.footer-top .button{font-size:16px;min-height:48px;padding:13px 22px}
  .footer-bottom{display:flex;flex-direction:column;gap:22px}.footer-bottom>span{font-size:13px;max-width:none}.footer-bottom>div{display:flex;flex-direction:column;align-items:start;gap:0}
  .footer-bottom :is(button,a){font-size:15px;min-height:44px;text-align:left;padding:10px 0;line-height:1.5}
  .mobile-booking{padding:12px 20px calc(12px + env(safe-area-inset-bottom));gap:16px;min-height:80px}
  .mobile-booking>span{font-size:14px;line-height:1.4}.mobile-booking small{font-size:12px}.mobile-booking .button{font-size:15px;padding:12px 18px;min-height:46px;gap:8px}
  .demo-dialog{width:calc(100% - 32px);max-height:calc(100dvh - 32px);padding:40px 24px 28px;overflow:auto}.demo-dialog h2{font-size:30px}.demo-dialog p{font-size:17px}.demo-dialog .button{font-size:16px;white-space:normal;max-width:100%;padding:14px 22px}
  .photo-dialog{width:calc(100% - 16px);max-height:calc(100dvh - 16px)}.photo-dialog>img{max-height:calc(100dvh - 180px)}.photo-top{padding:8px 12px;font-size:14px}.photo-bottom{padding:12px;gap:10px}.photo-bottom p{font-size:14px}
}
@media(max-width:520px){
  h2{font-size:34px}.section{padding-left:20px;padding-right:20px}.booking-band{margin-left:20px;margin-right:20px}
  .booking-heading h1{font-size:36px;max-width:none}.lead{font-size:19px}
  .booking-form{padding:16px;gap:14px;grid-template-columns:minmax(0,1fr)}
  .booking-form label,.booking-form label:nth-child(1){border:0;border-bottom:1px solid var(--line);padding:0 0 12px}
  .booking-form input,.booking-form input[type=date],.booking-form select{font-size:18px;min-height:44px}
  .booking-form .button{width:100%;font-size:17px;min-height:54px}
  .facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 18px}.facts strong{font-size:34px}.facts strong span{font-size:15px}.facts p{font-size:14px}
  .gallery{grid-template-rows:230px 135px 135px;gap:9px}.photo span{font-size:12px;max-width:calc(100% - 14px);left:7px;bottom:7px;padding:5px 7px}
  .room-label{display:block}.room-label span{margin-top:6px}.bed-plan{grid-template-columns:1fr;gap:24px}.bed-plan>div:not(:first-child){border-top:1px solid var(--line);padding-top:24px}
  .bed-plan .line-icon{margin-bottom:12px}.bed-plan h3{font-size:26px}.bed-plan strong{font-size:20px}.bed-plan p,.bed-plan span{font-size:16px}
  .comfort-grid{grid-template-columns:1fr;gap:28px}.comfort-grid h3{font-size:26px}.comfort-grid p{font-size:18px}
  .water-note{display:block}.water-symbol{display:block;margin-bottom:14px}.household{display:block}.household>.line-icon{margin-bottom:18px}.household>span{display:block;margin:18px 0 0}
  .outdoors>.section{padding-left:20px;padding-right:20px}.activity-pair{gap:10px}.activity-wide .activity-pair{grid-template-columns:1fr;gap:22px}
  .dinner-card{display:block}.dinner-card>.line-icon{margin:0 0 18px}
  .sunset-story>div{left:18px;right:18px;bottom:20px;font-size:26px}
  .rules-strip strong{font-size:23px}.story-caption{padding-left:20px;padding-right:20px}
  .location{padding-left:20px;padding-right:20px}.location .address{font-size:19px}.directions h3{font-size:25px}
  .final-booking h2{font-size:34px}.mobile-booking{padding-left:16px;padding-right:16px;gap:10px}.mobile-booking .button{font-size:14px;padding:12px 15px}
}
@media(max-width:350px){
  .site-header{padding-left:16px;padding-right:16px}.camp-brand{width:158px}
  .mobile-menu-toggle{padding:8px 11px;gap:7px}.booking-heading h1{font-size:32px}h2{font-size:31px}
  .story-tabs{gap:8px}.story-tabs span{font-size:14px}.rules-strip{grid-template-columns:1fr}
  .mobile-booking>span{font-size:13px}.mobile-booking small{font-size:12px}.mobile-booking .button{font-size:13px;padding:12px}
}
/* Preserve complete portrait originals at every small size, never crop the bench or fish. */
@media(max-width:1100px){
  .nature-pair>img,.nature-pair>img:first-child,.nature-pair>img:last-child{width:100%;height:auto;aspect-ratio:3/4;object-fit:contain;object-position:center}
}
