:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#23312d;background:#f8f8f4}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}a{color:inherit;text-decoration:none}.top{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:20px max(5vw,24px);background:#fff;position:sticky;top:0;z-index:5;border-bottom:1px solid #e6e8e2}.brand{display:flex;align-items:center;gap:12px;font-weight:800;font-size:18px}.brand small{display:block;font-size:10px;letter-spacing:3px;color:#7b8a7c}.mark{display:grid;place-items:center;width:45px;height:45px;background:#254a3b;color:white;border-radius:50%;font-family:Georgia,serif}.top nav{display:flex;gap:28px;font-size:14px;font-weight:600}.top nav a:hover{color:#b27c40}.hero{display:grid;grid-template-columns:1fr 1fr;min-height:570px}.hero-copy{padding:clamp(50px,8vw,130px) 8vw;background:#eaf0e9}.eyebrow{font-size:11px;font-weight:800;letter-spacing:2px;color:#8d754f}.hero h1{font:normal clamp(48px,6vw,82px)/1.03 Georgia,serif;letter-spacing:-2px;margin:24px 0}.hero h1 em{color:#a87944}.hero p{max-width:480px;font-size:18px;line-height:1.65;color:#53645c}.cta{display:inline-block;background:#28533e;color:#fff;border:0;padding:17px 24px;border-radius:7px;font-weight:750;cursor:pointer;margin-top:18px}.cta:hover{background:#1a3d2b}.micro{font-size:12px!important;color:#78847a!important;margin-top:16px}.hero-art{position:relative;background:linear-gradient(145deg,#66836f,#c7bc99);min-height:350px;display:flex;align-items:center;justify-content:center}.photo-placeholder{border:2px dashed #ffffff80;color:#fff;padding:30px;text-align:center;max-width:250px;border-radius:12px}.art-label{position:absolute;left:32px;bottom:32px;color:white;letter-spacing:2px;font-size:11px}.art-label strong{font:italic 38px Georgia,serif;letter-spacing:0}.features,.rates,.booking{padding:80px max(6vw,25px)}.features{display:grid;grid-template-columns:1fr 1fr;gap:50px;background:white}.features h2,.rates h2,.booking h2{font:normal clamp(34px,4vw,50px)/1.15 Georgia,serif;margin:16px 0}.features p,.booking-intro p{line-height:1.7;color:#617067}.feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.feature-grid>div{background:#f1f4ef;padding:28px;border-radius:10px}.feature-grid b{display:block;font:40px Georgia,serif;color:#2d6046}.feature-grid span{font-size:13px;color:#6b796d}.rates{background:#f2f0e8}.rate-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:30px}.rate-grid article{background:#fff;border-radius:12px;padding:30px;line-height:1.7}.rate-grid h3{margin-top:0}.muted{color:#6c796e;font-size:14px}.booking{display:grid;grid-template-columns:.9fr 1.1fr;gap:65px;background:#fff}.booking-intro ol{padding-left:22px;line-height:2.2;font-weight:600}.notice{background:#eaf0e9;border-radius:10px;padding:20px;margin-top:30px}.notice p{font-size:14px;margin-bottom:0}.form{padding:32px;background:#fafbf8;border:1px solid #e2e9df;border-radius:15px}.form label{display:block;font-size:13px;font-weight:700;margin-bottom:16px}.form input:not([type=checkbox]),.form select,.form textarea{display:block;width:100%;border:1px solid #cdd7ce;background:#fff;padding:12px;margin-top:7px;border-radius:7px;font:inherit;font-weight:400;min-width:0}.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid #7ba28b}.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}.estimate{background:#e9f1e9;border-radius:9px;padding:20px;margin:16px 0;line-height:1.7}.estimate strong{font-size:23px;color:#25543b}.estimate small{display:block;color:#68786b}.check{display:flex!important;gap:10px;align-items:flex-start;font-weight:400!important;line-height:1.6}.check input{margin-top:5px}.submit{width:100%;font-size:16px}.honeypot{position:absolute;left:-10000px}#formStatus{font-weight:700}footer{padding:36px 6vw;background:#213e30;color:#fff;display:flex;gap:20px;flex-wrap:wrap;align-items:center;font-size:13px}footer strong{margin-right:auto}@media(max-width:850px){.hero,.features,.booking{grid-template-columns:1fr}.hero-art{min-height:290px}.rate-grid{grid-template-columns:1fr}.top nav{gap:12px}.booking{gap:20px}}@media(max-width:500px){.top{padding:12px}.top nav a:first-child{display:none}.brand{font-size:15px}.hero-copy{padding:65px 25px}.features,.rates,.booking{padding:55px 20px}.form{padding:20px}.two{grid-template-columns:1fr}.hero h1{font-size:52px}}

.insurance-eligibility{border:1px solid #b7c6b8;border-radius:14px;padding:18px;margin:18px 0}.insurance-eligibility legend{font-weight:700;padding:0 8px}.insurance-eligibility p{font-size:.93rem;line-height:1.55}

/* Abiding Rest RV homepage photograph */
.hero-photo {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 300px;
  object-fit: cover;
  border-radius: 12px;
}



/* Winnebago photo gallery */
.rv-gallery {
  padding: 60px max(24px, 6vw);
  background: #faf8f2;
}
.rv-gallery h2 { margin-bottom: 10px; }
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 28px;
}
.gallery-item {
  overflow: hidden;
  border-radius: 12px;
  background: #fff;
  color: #254534;
  text-decoration: none;
  box-shadow: 0 2px 10px #00000012;
}
.gallery-item img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  transition: transform .2s ease;
}
.gallery-item:hover img { transform: scale(1.04); }
.gallery-item span {
  display: block;
  padding: 12px;
  font-weight: 600;
}
@media (max-width: 750px) {
  .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
  .gallery-grid { grid-template-columns: 1fr; }
}

/* Compact photo gallery */
.rv-gallery {
  max-width: 1200px;
  margin: 0 auto;
  padding: 40px 24px;
}

.gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.gallery-item img {
  width: 100%;
  height: 180px;
  aspect-ratio: auto;
  object-fit: cover;
}

@media (max-width: 750px) {
  .gallery-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .gallery-item img {
    height: 150px;
  }
}

@media (max-width: 480px) {
  .gallery-grid {
    grid-template-columns: 1fr;
  }
}



/* Abiding Rest RV video tours */
.rv-videos {
  max-width: 1200px;
  margin: 0 auto;
  padding: 48px 24px 60px;
}

.video-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  margin-top: 28px;
}

.video-card {
  min-width: 0;
}

.video-frame {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: 12px;
  background: #17251d;
}

.video-frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.video-card h3 {
  font-size: 1rem;
  margin-top: 12px;
}

@media (max-width: 850px) {
  .video-grid {
    grid-template-columns: 1fr;
    max-width: 650px;
  }
}


/* Clickable YouTube video thumbnails */
.video-link {
  display: block;
  color: inherit;
  text-decoration: none;
}

.video-thumbnail {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: 12px;
  background: #17251d;
}

.video-thumbnail img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.video-play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: #d92323;
  color: white;
  border-radius: 12px;
  padding: 12px 22px;
  font-size: 24px;
}

.video-link:hover .video-play {
  background: #a91919;
}

.youtube-label {
  color: #28533b;
  font-weight: 600;
  text-decoration: underline;
}

.video-link:focus-visible {
  outline: 3px solid #28533b;
  outline-offset: 4px;
}
