/* Inez Spring Riverfront RV Park. Design tokens mirror the live Elementor kit (post-7.css) and the
   hello-elementor-child theme: cream page background, charcoal headings in Manrope, Roboto body,
   clay accent, teal footer. */
:root {
  color-scheme: light;
  --cream: #FFF6EC;
  --charcoal: #474747;
  --text: #7A7A7A;
  --clay: #C57A4E;
  --clay-dark: #a8663b;
  --teal: #83A5A9;
  --teal-deep: #3E696E;
  --menu-dark: #261D2A;
  --ink: var(--charcoal);
  --pine: var(--teal-deep);
  --pine-deep: #2f5357;
  --sand: #f7eadb;
  --paper: var(--cream);
  --white: #fff;
  --font-heading: "Manrope", "Avenir Next", Arial, sans-serif;
  --font-body: "Roboto", "Helvetica Neue", Arial, sans-serif;
  --font-serif: "Roboto Slab", Georgia, serif;
  --container: 1280px;
  font-family: var(--font-body);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--charcoal); background: var(--cream); font-family: var(--font-body); font-size: 16px; line-height: 1.5; }
body.menu-open { overflow: hidden; }
h1, h2, h3, h4, h5, h6 { font-family: var(--font-heading); color: inherit; font-weight: 600; }
img, video { display: block; max-width: 100%; }
a { color: inherit; }
:focus-visible { outline: 3px solid var(--clay); outline-offset: 4px; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 2000; top: 0.5rem; left: 0.5rem; padding: 0.75rem 1rem; background: var(--white); transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }

/* Elementor-style button (BOOK NOW etc.) */
.elementor-button { display: inline-flex; align-items: center; justify-content: center; background: var(--clay); color: var(--cream); font-family: var(--font-body); font-size: 16px; font-weight: 700; line-height: 22px; text-shadow: 0 0 10px rgba(0,0,0,.3); border: 1px solid var(--clay); border-radius: 2px; padding: 16px 24px; text-decoration: none; text-transform: uppercase; transition: background .3s ease; cursor: pointer; }
.elementor-button:hover { background: var(--clay-dark); border-color: var(--clay-dark); color: var(--white); }

/* Fixed header, transparent over the hero, cream once scrolled, hides on scroll down */
.site-header { position: fixed; top: 0; left: 0; right: 0; z-index: 999; display: flex; align-items: center; width: 100%; padding: 30px 24px; color: var(--cream); background: transparent; transition: transform .3s ease-in-out, background-color .3s ease-in-out; }
.site-header.hide-header { transform: translateY(-230px); }
.site-header.scrolled { background: rgba(255, 246, 236, .9); color: var(--menu-dark); }
.site-header__col { display: flex; align-items: center; }
.site-header__col--left { width: 20%; justify-content: flex-start; }
.site-header__col--center { width: 60%; justify-content: center; }
.site-header__col--right { width: 20%; justify-content: flex-end; }
.site-header__menu-btn { display: inline-flex; padding: 0; border: 0; background: none; color: inherit; cursor: pointer; }
.site-header__menu-btn svg { width: 36px; height: 36px; }
.site-header__brand { display: block; width: 200px; max-width: 200px; text-align: center; }
.site-header__logo { width: 100%; height: auto; margin: 0 auto; }
.site-header.scrolled .site-header__logo { width: 200px; }
.site-header__booking--mobile { display: none; }
@media (max-width: 767px) {
  .site-header { padding: 24px 10px 20px 24px; }
  .site-header__col--left, .site-header__col--right { width: 30%; }
  .site-header__col--center { width: 40%; }
  .site-header__menu-btn svg { width: 32px; height: 32px; }
  .site-header__brand { width: 75px; max-width: 75px; }
  .site-header.scrolled .site-header__logo { width: 75px; }
  .site-header__booking { font-size: 14px; line-height: 19px; padding: 8px 24px; }
  .site-header__booking--desktop { display: none; }
  .site-header__booking--mobile { display: inline-flex; }
}

/* Off-canvas main navigation (white drawer from the left) */
.main-nav { position: fixed; top: 0; left: 0; height: 100vh; width: 100vw; transform: translateX(-100%); transition: all .4s ease-out; background: var(--white); z-index: 1000; }
@media (min-width: 640px) { .main-nav { width: 100%; max-width: 450px; } .main-nav.main-nav--wide { max-width: 650px; } }
.main-nav.opened { transform: translateX(0); }
.main-nav__backdrop { position: fixed; inset: 0; z-index: 990; background: transparent; }
.main-nav__inner { display: flex; flex-direction: column; gap: 40px; height: 100%; overflow-y: auto; overflow-x: hidden; padding: 80px 20px 80px 100px; scrollbar-width: thin; scrollbar-color: #333 #f4efe8; }
.main-nav__inner ul { list-style: none; margin: 0; padding: 0; }
.main-nav__top { display: flex; justify-content: space-between; align-items: center; }
.main-nav__logo img { width: 125px; height: auto; }
.main-nav__close-btn { border: 0; background: none; padding: 0; cursor: pointer; }
.main-nav__close-btn img { width: 36px; height: 36px; }
.main-nav__inner a { font-family: var(--font-heading); font-size: 20px; line-height: 27px; font-weight: 700; color: #000; text-decoration: none; text-transform: uppercase; letter-spacing: 1.28px; transition: color .3s ease; background: var(--white); padding-right: 16px; }
.main-nav__inner a:hover { color: var(--clay); }
.main-nav__top-list li:not(:last-child) { margin-bottom: 20px; }
.main-nav__top-list li.menu-item-has-children > a { position: relative; }
.main-nav__top-list li.menu-item-has-children > a::before, .main-nav__top-list li.menu-item-has-children > a::after { content: ""; position: absolute; top: 50%; right: 0; width: 7px; height: 1px; background: var(--clay); transition: all .5s; transition-delay: .5s; }
.main-nav__top-list li.menu-item-has-children > a::before { transform: translate(0, -50%) rotate(45deg); transform-origin: right center; }
.main-nav__top-list li.menu-item-has-children > a::after { transform: translate(0, -50%) rotate(-45deg); transform-origin: right center; }
.main-nav__top-list .sub-menu a, .main-nav__bottom-list a { font-weight: 500; }
.main-nav__top-list .sub-menu a { text-transform: none; letter-spacing: 0; }
.main-nav__top-list .sub-menu li { margin: 0; }
@media (min-width: 640px) {
  .main-nav__top-list li.menu-item-has-children { position: relative; display: flex; justify-content: flex-start; }
  .main-nav__top-list li.menu-item-has-children .sub-menu { position: absolute; left: 160px; top: 0; width: 220px; opacity: 0; transition: all .5s; z-index: -10; pointer-events: none; }
  .main-nav__top-list li.menu-item-has-children .sub-menu li { position: relative; width: 100%; padding: 0 40px 0 16px; background: var(--white); }
  .main-nav__top-list li.menu-item-has-children .sub-menu li:not(:first-child) { margin-top: 20px; }
  .main-nav__top-list li.menu-item-has-children:hover { z-index: 99; }
  .main-nav__top-list li.menu-item-has-children:hover > a::before, .main-nav__top-list li.menu-item-has-children:hover > a::after { width: 0; transition: all .5s; transition-delay: 0s; }
  .main-nav__top-list li.menu-item-has-children:hover > .sub-menu { left: 200px; z-index: 0; opacity: 1; pointer-events: auto; }
}
@media (max-width: 639px) {
  .main-nav__inner { padding: 20px; }
  .main-nav__top-list li.menu-item-has-children .sub-menu { display: none; margin-top: 10px; padding-left: 16px; }
  .main-nav__top-list li.menu-item-has-children.opened .sub-menu { display: block; }
  .main-nav__top-list .sub-menu li { margin-top: 12px; }
}

.button { display: inline-flex; align-items: center; justify-content: center; min-height: 3.2rem; padding: 16px 24px; text-align: center; text-decoration: none; text-transform: uppercase; letter-spacing: 0.02em; font-family: var(--font-body); font-size: 16px; font-weight: 700; border-radius: 2px; transition: background 180ms ease; }
.button--booking, .button--primary { color: var(--cream); background: var(--clay); text-shadow: 0 0 10px rgba(0,0,0,.3); }
.button--booking:hover, .button--primary:hover { background: #a8663b; }
.button--light { color: var(--pine-deep); background: var(--white); }
.button--light:hover { background: var(--sand); }

/* ---------- Generic section helpers ---------- */
.section { padding: 80px 24px; }
.section__inner { width: 100%; max-width: var(--container); margin: 0 auto; }
.container { width: 100%; max-width: var(--container); margin: 0 auto; }
.eyebrow { margin: 0 0 0.75rem; color: var(--clay); text-transform: uppercase; letter-spacing: 0.12em; font-size: 0.82rem; font-weight: 800; }
.button { display: inline-flex; align-items: center; justify-content: center; padding: 16px 24px; text-align: center; text-decoration: none; text-transform: uppercase; font-family: var(--font-body); font-size: 16px; line-height: 22px; font-weight: 700; border-radius: 2px; transition: background 180ms ease; }
.button--booking, .button--primary { color: var(--cream); background: var(--clay); text-shadow: 0 0 10px rgba(0,0,0,.3); }
.button--booking:hover, .button--primary:hover { background: var(--clay-dark); }
.button--light { color: var(--pine-deep); background: var(--white); }
.button--outline { color: var(--cream); background: transparent; border: 2px solid var(--cream); }
.button--outline:hover { background: rgba(255,255,255,.2); }

/* ---------- Homepage (mirrors Elementor post 13 + templates 990 / 1996) ---------- */
.home-page { background: var(--cream); }
.home-page h2 { margin: 0; font-weight: 600; }
.home-page p { margin: 0 0 20px; }
.home-page p a { color: var(--clay); font-weight: 700; text-decoration: none; }

.hero { position: relative; display: flex; align-items: center; justify-content: center; min-height: 100vh; overflow: hidden; color: var(--cream); background: url('/wp-content/uploads/2025/04/home-bg.webp') 50% 50% / cover no-repeat #2f3a2e; }
.hero__video, .hero__shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero__video { object-fit: cover; }
.hero__shade { background: rgba(0, 0, 0, .15); }
.hero__content { position: relative; width: 100%; max-width: 1440px; padding: 160px 24px 80px; text-align: center; }
.hero h1 { margin: 0; color: var(--cream); font-size: 96px; line-height: 131px; font-weight: 600; }

.welcome { display: flex; align-items: center; min-height: 640px; margin-top: 0; padding: 120px 24px; color: var(--cream); background: url('/wp-content/uploads/2026/06/Gemini_Generated_Image_r7dj0kr7dj0kr7dj-scaled.webp') center / cover no-repeat; }
@media (max-width: 767px) { .welcome { background-image: url('/wp-content/uploads/2025/04/free-to-play-mobilebg.png'); } }
.welcome__inner { width: 100%; max-width: 1440px; margin: 0 auto; }
.welcome__copy { max-width: 660px; }
.welcome h2 { max-width: 1100px; margin-bottom: 24px; color: var(--cream); font-size: 72px; line-height: 98px; font-weight: 600; }
.welcome p { color: var(--cream); font-size: 20px; line-height: 27px; }
.welcome .button { margin-top: 12px; }

.places { padding: 80px 24px 0; }
.places__scene { max-width: var(--container); margin: 0 auto; min-height: 660px; padding: 80px 24px 24px; background: url('/wp-content/uploads/2025/04/Find-Your-Place-in-Nature.webp') center / cover no-repeat; }
.places h2 { margin: 0 0 40px; color: var(--cream); text-align: center; font-size: 48px; line-height: 66px; font-weight: 500; }
.places__cards { display: flex; gap: 20px; max-width: 1000px; margin: 0 auto; }
.place-card { display: flex; flex: 1 1 0; align-items: center; justify-content: center; min-height: 466px; padding: 24px; color: var(--cream); text-align: center; text-decoration: none; text-transform: uppercase; font-family: var(--font-heading); font-size: 32px; line-height: 44px; font-weight: 700; background-position: center; background-size: cover; background-repeat: no-repeat; transition: filter .3s ease; }
.place-card:hover { filter: brightness(1.08); }
.place-card--rv { background-color: #d9a070; background-image: url('/wp-content/uploads/2025/04/RV-SITES.png'); }
.place-card--camp { background-color: #8fb7bd; background-image: url('/wp-content/uploads/2025/04/Barndominium.png'); }
.place-card--barn { background-color: #7f957a; background-image: url('/wp-content/uploads/2025/04/CAMPSITE.png'); }
.places__booking { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 24px; max-width: var(--container); margin: 0 auto; padding: 32px 64px; color: var(--cream); background: var(--clay); }
.places__booking-title { max-width: 360px; margin: 0; font-family: var(--font-heading); font-size: 32px; line-height: 44px; font-weight: 400; color: var(--cream); }

/* Check-availability form (mirrors .check-availability-form in the child theme) */
.check-availability-form { display: flex; align-items: flex-end; flex-wrap: nowrap; gap: 24px; max-width: 700px; }
.check-availability-form label { display: flex; flex-direction: column; gap: 6px; font-family: var(--font-body); font-size: 14px; line-height: 19px; font-weight: 500; color: var(--cream); }
.check-availability-form input { min-width: 180px; height: 45px; padding: 0 12px; border: 0; border-radius: 2px; background: var(--white); font-family: var(--font-body); font-size: 14px; color: var(--text); }
.check-availability-form .button { min-height: 45px; padding: 12px 24px; font-size: 14px; line-height: 19px; white-space: nowrap; }
@media (max-width: 768px) { .check-availability-form { flex-direction: column; align-items: stretch; } .check-availability-form input { width: 100%; } }

.why-stay { padding: 120px 24px 80px; text-align: center; }
.why-stay__inner { max-width: 1100px; margin: 0 auto; }
.why-stay h2 { margin: 0 auto 40px; font-size: 48px; line-height: 66px; font-weight: 500; }
.why-stay .feature-list { max-width: 1000px; margin: 0 auto 24px; padding-left: 24px; text-align: left; list-style: disc; color: var(--text); font-family: var(--font-body); font-size: 16px; line-height: 22px; }
.why-stay .feature-list li { margin: 0 0 10px; }
.why-stay .feature-list strong { color: var(--charcoal); }
.why-stay .feature-list em { display: block; font-size: 15px; }
.why-stay p { max-width: 1000px; margin: 0 auto; font-size: 16px; line-height: 22px; }

.adventures { padding: 80px 24px; }
.adventures h2 { margin: 0 0 40px; font-size: 48px; line-height: 66px; font-weight: 500; }
.adventures__cards { display: flex; gap: 20px; }
.adventure-card { position: relative; display: flex; flex: 1 1 0; flex-direction: column; align-items: center; justify-content: flex-end; gap: 16px; min-height: 400px; padding: 24px; color: var(--cream); text-align: center; text-decoration: none; text-transform: uppercase; font-family: var(--font-heading); font-size: 24px; line-height: 33px; font-weight: 700; background-position: center; background-size: cover; background-repeat: no-repeat; transition: filter .3s ease; }
.adventure-card:hover { filter: brightness(1.08); }
.adventure-card img { width: 140px; height: auto; }
.adventure-card--pool { background-image: url('/wp-content/uploads/2025/04/Pool-bg.webp'); }
.adventure-card--kayaking { background-image: url('/wp-content/uploads/2025/04/KAYAKING-bg.webp'); }
.adventure-card--picnic { background-image: url('/wp-content/uploads/2025/04/PICNIC-BBQ-bg.webp'); }
.adventure-card--walking { background-image: url('/wp-content/uploads/2025/04/Walking-Trailsbg.webp'); }

.outdoor { padding: 80px 24px; text-align: center; }
.outdoor__inner { max-width: 1100px; margin: 0 auto; }
.outdoor h2 { margin: 0 0 32px; font-size: 48px; line-height: 66px; font-weight: 500; }
.outdoor p { text-align: justify; font-size: 16px; line-height: 22px; }

.testimonials { padding: 80px 24px; }
.testimonials h2 { margin: 0 0 56px; color: var(--clay); font-size: 48px; line-height: 66px; font-weight: 500; }
.testimonials__list { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; align-items: stretch; }
.testimonials__photo { width: 100%; height: 100%; max-height: 320px; align-self: center; object-fit: cover; border-radius: 50% / 40%; }
.testimonials__quote { display: flex; flex-direction: column; gap: 24px; min-height: 420px; margin: 0; padding: 32px 24px; color: var(--charcoal); }
.testimonials__quote img { width: 36px; height: auto; }
.testimonials__quote p { margin: 0; color: var(--charcoal); font-family: var(--font-heading); font-size: 14px; line-height: 20px; }
.testimonials__quote cite { margin-top: auto; font-style: normal; font-weight: 700; font-size: 14px; }
.testimonials__quote--blue { background: #aed5da; }
.testimonials__quote--peach { background: #e5b396; }
.testimonials__quote--green { background: #a0b08f; }

.final-cta { display: flex; align-items: flex-start; min-height: 688px; margin-top: 80px; padding: 80px 24px; color: var(--cream); background: url('/wp-content/uploads/2026/06/Gemini_Generated_Image_mvbjfimvbjfimvbj-e1781741974258.webp') center / cover no-repeat; }
.final-cta__inner { width: 100%; max-width: var(--container); margin: 0 auto; }
.final-cta h2 { margin: 0 0 32px; color: var(--cream); text-align: center; font-size: 48px; line-height: 66px; font-weight: 500; }
.final-cta .check-availability-form { flex-wrap: wrap; max-width: none; }
.final-cta .check-availability-form label { flex: 1 1 45%; }
.final-cta .check-availability-form .button { flex: 1 1 100%; width: 100%; }

@media (max-width: 1024px) {
  .hero h1 { font-size: 64px; line-height: 1.3; }
  .welcome h2 { font-size: 48px; line-height: 1.3; }
  .places__cards, .adventures__cards { flex-wrap: wrap; }
  .place-card, .adventure-card { flex: 1 1 calc(50% - 20px); min-height: 350px; }
  .testimonials__list { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
  .section { padding: 54px 24px; }
  .hero h1 { font-size: 40px; line-height: 55px; }
  .welcome { min-height: 0; padding: 140px 24px 80px; }
  .welcome h2 { font-size: 32px; line-height: 44px; }
  .welcome p { font-size: 16px; line-height: 22px; }
  .places { padding: 54px 24px 0; }
  .places__scene { min-height: 0; padding: 40px 16px 16px; }
  .places h2, .why-stay h2, .adventures h2, .outdoor h2, .testimonials h2, .final-cta h2 { font-size: 24px; line-height: 33px; }
  .places__booking { padding: 24px; }
  .places__booking-title { font-size: 24px; line-height: 33px; }
  .place-card { min-height: 220px; font-size: 24px; line-height: 33px; }
  .adventure-card { flex-basis: 100%; min-height: 300px; }
  .testimonials__list { grid-template-columns: 1fr; }
  .testimonials__photo { max-height: 260px; }
  .testimonials__quote { min-height: 0; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .hero__video { display: none; }
  .hero { background: url("/assets/images/hero-poster.jpg") center / cover; }
}

.imported-page { width: 100%; min-height: 60vh; padding: clamp(2rem, 4vw, 4rem) clamp(1.25rem, 4vw, 4rem); }
.imported-page__inner { width: 100%; }
.imported-content { overflow-wrap: anywhere; line-height: 1.7; }
.imported-content p, .imported-content li { color: var(--text); font-family: var(--font-body); }
.imported-content a { color: var(--clay); }
.imported-content > h1:first-child { margin-top: 0; font-size: clamp(2.4rem, 5vw, 5rem); line-height: 1.1; }
.imported-content h2 { margin: 3rem 0 1rem; font-size: clamp(1.8rem, 3vw, 3rem); line-height: 1.2; }
.imported-content h3 { margin: 2rem 0 0.75rem; font-size: clamp(1.35rem, 2vw, 2rem); line-height: 1.25; }
.imported-content p, .imported-content li { max-width: 80ch; }
.imported-content p { margin: 0 0 1.25rem; }
.imported-content img { max-width: 100%; height: auto; margin: 1.5rem 0; }
.imported-content iframe { max-width: 100%; }
.imported-content ul, .imported-content ol { padding-left: 1.5rem; }
.imported-content li { margin-bottom: 0.5rem; }
.imported-content details { margin: 0.75rem 0; padding: 1rem; background: var(--sand); }
.imported-content summary { font-weight: 800; }
.imported-listing ul { display: flex; flex-wrap: wrap; gap: 1rem; margin: 2rem 0; padding: 0; list-style: none; }
.imported-listing li { flex: 1 1 16rem; max-width: none; padding: 1.5rem; background: var(--sand); }
.imported-listing a { font-weight: 800; }
.imported-listing p { margin: 0.5rem 0 0; }
.related-links ul { display: flex; flex-wrap: wrap; gap: 1rem; padding: 0; list-style: none; }
.related-links li { max-width: none; }
.related-links a { display: inline-flex; padding: 0.8rem 1.2rem; color: var(--white); background: var(--pine); text-decoration: none; font-weight: 800; }
/* Teal footer with the watermark logo, newsletter box, social icons and contact row */
.site-footer { position: relative; min-height: 640px; display: flex; flex-direction: column; justify-content: center; padding: 64px 24px; color: var(--cream); background: var(--teal) url("/wp-content/uploads/2025/04/footer-img.png") no-repeat left center / auto 100%; font-family: var(--font-heading); }
.site-footer__inner { position: relative; width: 100%; max-width: var(--container); margin: 0 auto; }
.site-footer__row--main { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 48px; }
.site-footer__col--brand { flex: 1 1 320px; max-width: 520px; }
.site-footer__col--connect { flex: 1 1 360px; max-width: 440px; display: flex; flex-direction: column; justify-content: center; gap: 48px; margin-top: 110px; }
.site-footer__logo { width: 340px; max-width: 100%; height: auto; margin-bottom: 36px; }
.site-footer__nav ul { list-style: none; margin: 0; padding: 0; }
.site-footer__nav li:not(:last-child) { margin-bottom: 22px; }
.site-footer__nav a { font-size: 18px; line-height: 25px; font-weight: 600; color: var(--cream); text-decoration: none; letter-spacing: .02em; }
.site-footer__nav a:hover { color: var(--white); text-decoration: underline; }
.site-footer__heading { margin: 0 0 16px; font-size: 24px; line-height: 33px; font-weight: 400; color: var(--cream); }
.stay-connect-form__fields { display: flex; padding: 10px; background: var(--white); border: 1px solid var(--teal); }
.stay-connect-form input { flex: 1 1 auto; min-width: 0; border: 0; padding: 8px 12px; font-family: var(--font-body); font-size: 14px; color: var(--charcoal); outline: none; }
.stay-connect-form__submit { padding: 10px 18px; font-size: 14px; line-height: 19px; background: var(--teal); border-color: var(--teal); text-shadow: none; }
.stay-connect-form__submit:hover { background: var(--teal-deep); border-color: var(--teal-deep); }
.site-footer__col--connect .stay-connect-form { margin-top: -32px; }
.site-footer__social { display: flex; gap: 32px; }
.site-footer__social-icon { display: inline-flex; width: 56px; height: 56px; color: var(--white); }
.site-footer__social-icon svg { width: 56px; height: 56px; }
.site-footer__social-icon:hover { color: var(--cream); opacity: .85; }
.site-footer__divider { width: 100%; margin: 48px 0 32px; border: 0; border-top: 1px solid rgba(255, 255, 255, .55); }
.site-footer__row--contact { display: flex; flex-direction: column; gap: 20px; font-family: var(--font-body); }
.site-footer__contact, .site-footer__legal { display: flex; flex-wrap: wrap; gap: 20px 56px; list-style: none; margin: 0; padding: 0; }
.site-footer__legal { flex-direction: column; gap: 10px; }
.site-footer__contact a, .site-footer__legal a { display: inline-flex; align-items: center; gap: 12px; color: var(--cream); font-size: 20px; line-height: 27px; font-weight: 700; text-decoration: none; }
.site-footer__contact a:hover, .site-footer__legal a:hover { text-decoration: underline; }
.site-footer__contact svg, .site-footer__legal svg { width: 20px; height: 20px; flex: none; }
@media (max-width: 767px) {
  .site-footer { min-height: 0; padding: 48px 24px; background-size: auto 60%; background-position: left bottom; }
  .site-footer__col--connect { margin-top: 0; }
  .site-footer__logo { width: 260px; }
  .site-footer__contact a, .site-footer__legal a { font-size: 16px; line-height: 22px; }
  .site-footer__social-icon, .site-footer__social-icon svg { width: 44px; height: 44px; }
}

/* Imported WordPress pages: give room under the fixed header when there is no hero */
.site-body--imported:not(.site-body--hero) main { padding-top: 150px; }
@media (max-width: 767px) { .site-body--imported:not(.site-body--hero) main { padding-top: 110px; } }
.imported-hero { display: flex; align-items: flex-end; min-height: 60vh; padding: 180px 24px 64px; background-size: cover; background-position: center; color: var(--white); }
.imported-hero h1 { max-width: var(--container); margin: 0 auto; width: 100%; color: var(--white); font-size: clamp(2.5rem, 6vw, 6rem); line-height: 1.1; }

/* Layout custom properties must not cascade into nested containers */
@property --dir { syntax: "*"; inherits: false; }
@property --jc { syntax: "*"; inherits: false; }
@property --ai { syntax: "*"; inherits: false; }
@property --gap { syntax: "*"; inherits: false; }
@property --minh { syntax: "*"; inherits: false; }
@property --mt { syntax: "*"; inherits: false; }
@property --mb { syntax: "*"; inherits: false; }
@property --pt { syntax: "*"; inherits: false; }
@property --pb { syntax: "*"; inherits: false; }
@property --pl { syntax: "*"; inherits: false; }
@property --pr { syntax: "*"; inherits: false; }
@property --bg { syntax: "*"; inherits: false; }
@property --bgc { syntax: "*"; inherits: false; }
@property --radius { syntax: "*"; inherits: false; }
@property --w { syntax: "*"; inherits: false; }
@property --grow { syntax: "*"; inherits: false; }
@property --as { syntax: "*"; inherits: false; }
@property --cw { syntax: "*"; inherits: false; }
@property --ovl { syntax: "*"; inherits: false; }
@property --ovlo { syntax: "*"; inherits: false; }
@property --c { syntax: "*"; inherits: false; }
@property --fs { syntax: "*"; inherits: false; }
@property --fw { syntax: "*"; inherits: false; }
@property --lh { syntax: "*"; inherits: false; }
@property --ta { syntax: "*"; inherits: false; }
@property --maxw { syntax: "*"; inherits: false; }
@property --ls { syntax: "*"; inherits: false; }
@property --tt { syntax: "*"; inherits: false; }
@property --sp { syntax: "*"; inherits: false; }
@property --icon { syntax: "*"; inherits: false; }
@property --iconc { syntax: "*"; inherits: false; }
@property --imgw { syntax: "*"; inherits: false; }
@property --imgmaxw { syntax: "*"; inherits: false; }
@property --imgh { syntax: "*"; inherits: false; }
@property --fit { syntax: "*"; inherits: false; }
@property --pad { syntax: "*"; inherits: false; }
@property --bc { syntax: "*"; inherits: false; }
@property --bw { syntax: "*"; inherits: false; }

/* ---------- Converted Elementor sections (.ec system) ----------
   Pages re-imported from the live rendered DOM. Each container carries its live layout
   values as CSS custom properties (background, padding, min-height, direction, widths);
   widgets carry color/size. Heading sizes follow the live style-guide.css (by tag). */
.imported-main { background: var(--cream); color: var(--charcoal); }
/* Deviation from live: WordPress lets the fixed header cover the first heading of posts; give sections without a hero background room under the header */
.imported-main > .ec:first-child:not(.ec--bg) { padding-top: calc(var(--pt, 10px) + 150px); }
@media (max-width: 767px) { .imported-main > .ec:first-child:not(.ec--bg) { padding-top: calc(var(--pt, 10px) + 100px); } }
.ec, .ec-col { position: relative; box-sizing: border-box; display: flex; flex-direction: var(--dir, column); justify-content: var(--jc, flex-start); align-items: var(--ai, stretch); gap: var(--gap, 20px 20px); min-height: var(--minh, auto); margin: var(--mt, 0) 0 var(--mb, 0); padding: var(--pt, 10px) var(--pr, 10px) var(--pb, 10px) var(--pl, 10px); color: var(--c, inherit); background-color: var(--bgc, transparent); background-image: var(--bg, none); background-size: cover; background-position: center; background-repeat: no-repeat; border-radius: var(--radius, 0); }
.ec { width: 100%; padding-left: var(--pl, 24px); padding-right: var(--pr, 24px); }
.ec > .ec__inner { display: flex; flex-direction: inherit; justify-content: inherit; align-items: inherit; gap: inherit; width: 100%; margin: 0 auto; }
.ec.ec--boxed > .ec__inner { max-width: var(--cw, 1280px); }
.ec-col { width: 100%; flex: var(--grow, 0) 1 auto; min-width: 0; }
.ec-col.ec--boxed { max-width: var(--cw, 1280px); margin-left: auto; margin-right: auto; }
.ec-col.ec--full { flex: 1 1 0%; }
.ec-col[style*="--w:"] { flex: var(--grow, 0) 0 var(--w); width: var(--w); max-width: var(--w); }
.ec-col[style*="--as:"] { align-self: var(--as); }
.ec[style*="--ovl:"]::before, .ec-col[style*="--ovl:"]::before { content: ""; position: absolute; inset: 0; background: var(--ovl); opacity: var(--ovlo, 1); border-radius: inherit; pointer-events: none; }
.ec[style*="--ovl:"] > *, .ec-col[style*="--ovl:"] > * { position: relative; }

.ec-heading { margin: 0; width: 100%; max-width: var(--maxw, none); text-align: var(--ta, start); color: var(--c, var(--cream)); font-family: var(--font-heading); font-weight: var(--fw, 600); letter-spacing: var(--ls, normal); text-transform: var(--tt, none); }
h1.ec-heading { font-size: 96px; line-height: 131px; }
h2.ec-heading { font-size: 72px; line-height: 98px; }
h3.ec-heading { font-size: 48px; line-height: 66px; }
h4.ec-heading { font-size: 32px; line-height: 44px; }
h5.ec-heading, h6.ec-heading { font-size: 24px; line-height: 33px; }
p.ec-heading { font-size: var(--fs, 24px); line-height: var(--lh, 1.35); }
.ec-heading a { color: inherit; text-decoration: none; }
.ec-text { width: 100%; color: var(--c, var(--text)); font-family: var(--font-body); font-size: var(--fs, 24px); line-height: var(--lh, 33px); font-weight: var(--fw, 400); text-align: var(--ta, start); }
.ec-text p { margin: 0 0 0.9em; color: inherit; }
.ec-text a { color: var(--clay); text-decoration: none; }
.ec-text a:hover { text-decoration: underline; }
.ec-text ul, .ec-text ol { margin: 0 0 1em; padding-left: 1.4em; }
.ec-text img { max-width: 100%; height: auto; }
.ec-text h1, .ec-text h2, .ec-text h3, .ec-text h4 { color: var(--charcoal); }
.ec-text h2 { font-size: 48px; line-height: 66px; margin: 1em 0 .5em; }
.ec-text h3 { font-size: 32px; line-height: 44px; margin: 1em 0 .5em; }
.ec-text h4 { font-size: 24px; line-height: 33px; margin: 1em 0 .5em; }
.ec-text table { width: 100%; border-collapse: collapse; font-size: 18px; line-height: 1.5; }
.ec-text th, .ec-text td { padding: 10px 12px; border: 1px solid #e3d8ca; text-align: left; vertical-align: top; }
.ec-image { margin: 0; width: 100%; text-align: var(--ta, center); }
.ec-image img { display: inline-block; width: var(--imgw, auto); max-width: var(--imgmaxw, 100%); height: var(--imgh, auto); object-fit: var(--fit, cover); border-radius: var(--radius, 0); }
.ec-image figcaption { margin-top: 8px; font-size: 14px; color: var(--text); }
.ec-button-wrap { margin: 0; width: 100%; text-align: var(--ta, start); }
.ec-button { background: var(--bgc, var(--clay)); color: var(--c, var(--cream)); border: var(--bw, 1px) solid var(--bc, var(--bgc, var(--clay))); border-radius: var(--radius, 2px); padding: var(--pad, 16px 24px); font-size: var(--fs, 16px); font-weight: var(--fw, 700); line-height: 22px; text-shadow: 0 0 10px rgba(0,0,0,.3); }
.ec-button:hover { filter: brightness(.92); }
.ec-icon-list { display: flex; flex-direction: column; gap: 10px; width: 100%; margin: 0; padding: 0; list-style: none; color: var(--c, inherit); font-family: var(--font-heading); font-size: var(--fs, 16px); font-weight: var(--fw, 400); line-height: var(--lh, 1.4); }
.ec-icon-list li { display: flex; align-items: center; gap: 12px; }
.ec-icon-list li a { display: inline-flex; align-items: center; gap: 12px; color: inherit; text-decoration: none; }
.ec-icon-list svg { flex: none; width: var(--icon, 24px); height: auto; }
.ec-icon-list svg:not([fill="none"]) { fill: var(--iconc, currentColor); }
.ec-spacer { width: 100%; height: var(--sp, 40px); }
.ec-divider { width: 100%; margin: 0; border: 0; border-top: 1px solid rgba(71,71,71,.2); }
.ec-video { position: relative; width: 100%; aspect-ratio: 16 / 9; }
.ec-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.ec-icon-box { display: flex; flex-direction: column; align-items: center; gap: 12px; text-align: center; color: var(--c, inherit); }
.ec-icon-box img, .ec-icon-box svg { width: 80px; height: auto; }
.ec-faq { width: 100%; color: var(--c, var(--charcoal)); font-size: var(--fs, 18px); }
.ec-faq__item { border-bottom: 1px solid rgba(71,71,71,.15); background: transparent; }
.ec-faq__item summary { display: flex; align-items: center; gap: 16px; padding: 20px 8px; cursor: pointer; list-style: none; color: inherit; font-family: var(--font-body); font-size: inherit; font-weight: 600; line-height: 1.4; }
.ec-faq__item summary::-webkit-details-marker { display: none; }
.ec-faq__item summary::before { content: "+"; flex: none; width: 20px; color: var(--clay); font-size: 24px; line-height: 1; }
.ec-faq__item[open] summary::before { content: "–"; }
.ec-faq__body { padding: 0 8px 20px 44px; }
.ec-faq__body .ec-text { font-size: 18px; line-height: 27px; }
.newbook-embed { width: 100%; max-width: 900px; margin: 0 auto; padding: 32px 24px; border: 1px dashed var(--teal); border-radius: 4px; text-align: center; background: rgba(131,165,169,.08); }
.newbook-embed__note { margin: 0 0 16px; color: var(--text); font-size: 18px; }
.ec-form-placeholder { display: none; }
.ec-hidden-desktop { display: none !important; }
@media (max-width: 1024px) { .ec-hidden-tablet { display: none !important; } }
@media (max-width: 768px) { .ec-hidden-mobile { display: none !important; } .ec-hidden-desktop { display: flex !important; } }
}

/* ---------- rvpark-custom plugin widgets (areas, offers, events, experiences grids) copied from the live plugin + child theme ---------- */
/*** RV POST TYPES ***/

.rv-widget-title {
    max-width: 1280px;
    margin: auto;
    margin-bottom: 40px;
    margin-top: 40px;
    padding:0px 24px;
}
@media only screen and (max-width: 768px) {
    .rv-widget-title {
        margin-bottom: 54px;
        margin-top: 54px;
    }
}



.rv-post-types-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

@media only screen and (max-width: 992px) {
    .rv-post-types-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media only screen and (max-width: 768px) {
    .rv-post-types-grid {
        grid-template-columns: repeat(1, 1fr);
    }
}


.rv-post-type-card {
    position: relative;
    background-size: cover;
    background-position: center;
    height: 430px;
    overflow: hidden;
    display: flex;
    align-items: flex-end;
    color: #fff;
}

@media only screen and (max-width: 768px) {
    .rv-post-type-card {
        height: 390px;
    }
}

.rv-post-type-overlay {
    padding: 20px;
    width: 100%;
/*    max-width: 500px;*/
    margin-left: auto;
    margin-right: auto;
}

.rv-post-type-content {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rv-post-type-button {
    align-self: flex-start;
    margin-top: 56px;
    padding: 16px 24px;
    border: 2px solid #FFF6EC;
    color: #fff;
    text-decoration: none;
    font-weight: bold;
    font-family: 'Manrope';
    font-size: 16px;
    line-height: 22px;
    color: #FFF6EC;
    transition: background 0.3s ease;
}

.rv-post-type-button:hover {
    background: rgba(255, 255, 255, 0.2);
    color: #fff;
}

.rv-post-type-title {
    font-family: 'Manrope';
    font-weight: 700;
    font-size: 32px;
    line-height: 44px;
    color: #FFF6EC;
}

.rv-post-type-description {
    font-family: 'Manrope';
    font-weight: 600;
    font-size: 24px;
    line-height: 33px;
    color: #FFF6EC;
}

@media only screen and (max-width: 768px) {
    .rv-post-type-title {
        font-size: 24px;
        line-height: 33px;
    }

    .rv-post-type-description {
        font-size: 16px;
        line-height: 22px;
    }
}


.rv-site-parks-slider-wrapper {
    position: relative;
    overflow: hidden;
}

.rv-site-parks-slider {
    display: flex;
    transition: transform 0.5s ease-in-out;
    width: 100%;
}

.rv-site-parks-slide {
    min-width: 100%;
    box-sizing: border-box;
}

.rv-site-parks-slider-prev,
.rv-site-parks-slider-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(0,0,0,0.4);
    color: #fff;
    border: none;
    padding: 10px;
    cursor: pointer;
    z-index: 10;
}

.rv-site-parks-slider-prev {
    left: 10px;
}

.rv-site-parks-slider-next {
    right: 10px;
}


.rv-site-parks-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

@media only screen and (max-width: 992px) {
    .rv-site-parks-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media only screen and (max-width: 768px) {
    .rv-site-parks-grid {
        grid-template-columns: repeat(1, 1fr);
    }

    .rv-site-parks-widget {
        display: flex;
        justify-content: center;
    }
}

.rv-site-parks-item-grid-item {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.rv-site-parks-item-title {
    font-family: 'Manrope';
    font-weight: 800;
    font-size: 48px;
    line-height: 66px;
    color: #474747;

}
@media only screen and (max-width: 768px) {
    .rv-site-parks-item-title {
        font-size: 32px;
        line-height: 44px;
    }
}


.rv-site-parks-item-description {
    font-family: 'Manrope';
    font-weight: 600;
    font-size: 20px;
    line-height: 27px;
    color: #474747;

}
@media only screen and (max-width: 768px) {
    .rv-site-parks-item-description {
        font-size: 16px;
        line-height: 22px;
    }
}

.rv-site-parks-item-info, .rv-site-parks-daily {
    font-family: 'Manrope';
    font-weight: 600;
    font-size: 24px;
    line-height: 33px;
    color: #474747;

}
@media only screen and (max-width: 768px) {
    .rv-site-parks-item-info, .rv-site-parks-daily {
        font-size: 16px;
        line-height: 22px;
    }
}


.rv-site-parks-item-info img {
    width: 24px;
}

.rv-site-parks-daily span {
    font-family: 'Manrope';
    font-weight: 800;
    font-size: 30px;
    line-height: 41px;
    color: #474747;
}

@media only screen and (max-width: 768px) {
    .rv-site-parks-daily span {
        font-size: 24px;
        line-height: 33px;
    }
}


.rv-site-parks-item-info {
    gap:16px;
    display: flex;
    flex-direction: column;
}

.rv-site-parks-item-info-1, 
.rv-site-parks-item-info-2,
.rv-site-parks-item-info-3 {
    display: flex;
    align-items: center;
    gap: 24px;
}

.rv-site-parks-item-info-1-image, 
.rv-site-parks-item-info-2-image, 
.rv-site-parks-item-info-3-image {
    display: flex;
    align-items: center;
}

.rv-site-parks-item-info-container {
    display: flex;
    gap:40px;
    flex-direction: column;
}

.rv-site-parks-item-info-container .rv-site-parks-item-title-description {
    display: flex;
    gap:16px;
    flex-direction: column;
}

.rv-site-parks-item-info-container,
.rv-site-parks-daily-button {
    padding:24px;
}

.rv-site-parks-daily-button {
    padding-bottom:0px;
}


.rv-site-parks-daily-button {
    display: flex;
    gap:20px;
    justify-content: space-between;
    align-items: center;
}

.rv-site-parks-daily-button .rv-site-parks-button,
.rv-site-parks-daily-button .rv-site-parks-button:hover {
    background-color: #C57A4E;
    padding: 16px 24px;
    min-width: 135px;
}

.rv-site-parks-daily-button .rv-site-parks-button a,
.rv-site-parks-daily-button .rv-site-parks-button a:hover {
    color: #FFF6EC;
}


.rv-site-parks-slider-next, .rv-site-parks-slider-next:focus, .rv-site-parks-slider-next:hover,
.rv-site-parks-slider-prev, .rv-site-parks-slider-prev:focus, .rv-site-parks-slider-prev:hover {
    background-color:#77B0A8 !important;
    border-radius: 50%;
    padding: 10px 15px;
}


.rv-site-parks-slide img {
    width: 100%;
}

.elementor-widget-rvsiteparks_widget, .elementor-widget-rvsiteparks_widget .elementor-widget-container,
.elementor-widget-rvslocations_widget, .elementor-widget-rvslocations_widget .elementor-widget-container,
.elementor-widget-rvoffers_widget, .elementor-widget-rvoffers_widget .elementor-widget-container {
    margin: auto;
    width: 100%;
}


/**LOCATIONS**/

.rv-locations-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

@media only screen and (max-width: 992px) {
    .rv-locations-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media only screen and (max-width: 768px) {
    .rv-locations-grid {
        grid-template-columns: repeat(1, 1fr);
    }
}


.rv-location-card {
    position: relative;
    background-size: cover;
    background-position: center;
    height: 530px;
    overflow: hidden;
    display: flex;
    align-items: flex-end;
    color: #fff;
}

@media only screen and (max-width: 768px) {
    .rv-location-card {
        height: 390px;
    }
}

.rv-location-overlay {
    padding: 20px;
    width: 100%;
    max-width: 500px;
    margin-left: auto;
    margin-right: auto;
}

.rv-location-content {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rv-location-button {
    align-self: flex-start;
    margin-top: 56px;
    padding: 16px 24px;
    border: 2px solid #FFF6EC;
    color: #fff;
    text-decoration: none;
    font-weight: bold;
    font-family: 'Manrope';
    font-size: 16px;
    line-height: 22px;
    color: #FFF6EC;
    transition: background 0.3s ease;
}

.rv-location-button:hover {
    background: rgba(255, 255, 255, 0.2);
}

.rv-location-title {
    font-family: 'Manrope';
    font-weight: 700;
    font-size: 40px;
    line-height: 55px;
    color: #FFF6EC;
}

.rv-location-description {
    font-family: 'Manrope';
    font-weight: 600;
    font-size: 32px;
    line-height: 44px;
    color: #FFF6EC;
}

@media only screen and (max-width: 768px) {
    .rv-location-title {
        font-size: 24px;
        line-height: 33px;
    }

    .rv-location-description {
        font-size: 16px;
        line-height: 22px;
    }
}



/**EXPERIENCES***/

.rv-experiences-grid {
    display: flex;
    flex-direction: column;
    gap: 160px;
}

@media only screen and (max-width: 768px) {
    .rv-experiences-grid {
        gap: 45px;
    }
}


.rv-experiences-card {
    display: flex;
    flex-direction: row;
    overflow: hidden;
    gap: 60px;
}

@media only screen and (max-width: 768px) {
    .rv-experiences-card {
        flex-direction: column;
        gap: 0px;
    }
}

@media only screen and (min-width: 768px) {
    .rv-experiences-image {
        width: 30%;
    }

    .rv-experiences-text {
        width: 70%;
    }
}


.rv-experiences-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rv-experiences-text {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}


.rv-experiences-button,
.rv-experiences-button:hover,
.rv-experiences-button:focus {
    margin-top:48px;
    padding: 16px 24px;
    background-color: #C57A4E;
    color: white;
    text-decoration: none;
    font-weight: 800;
    display: table;
    font-family: 'Manrope';
    font-size: 16px;
    line-height: 22px;
}

.rv-experiences-grid h2,
.rv-experiences-grid p {
    margin:0px;
    padding:0px;
}


.rv-experiences-title {
    font-family: 'Manrope';
    font-weight: 800;
    font-size: 48px;
    line-height: 66px;
    color: #474747;
    padding-bottom:16px !important;
}

@media only screen and (max-width: 768px) {
    .rv-experiences-title {
        font-size: 32px;
        line-height: 44px;
    }
}

.rv-experiences-description {
    font-family: 'Manrope';
    font-weight: 600;
    font-size: 20px;
    line-height: 27px;
    color: #474747;

}
@media only screen and (max-width: 768px) {
    .rv-experiences-description {
        font-size: 16px;
        line-height: 22px;
    }
}



/**OFFERS***/
.rv-offers-widget-feature .rv-offers-card{
    padding:0px;
    border:none;
}
.rv-offers-widget-feature .rv-offers-card * {
    color: #ffffff !important;
}
.rv-offers-widget-feature .rv-offers-promo {
    border-top: 2px solid #ffffff;
    border-bottom: 2px solid #ffffff;
}
.rv-offers-widget-feature .rv-offers-learnmore-button {
    border: 2px solid #ffffff;
}

.rv-offers-grid {
    display: flex;
    flex-direction: column;
    gap: 160px;
}

@media only screen and (max-width: 768px) {
    .rv-offers-grid {
        gap: 45px;
    }
}

.rv-offers-card {
    display: flex;
    flex-direction: row;
    overflow: hidden;
    gap: 80px;
    padding: 48px;
    border: 2px solid #C57A4E ;
}

@media only screen and (max-width: 1024px) {
    .rv-offers-card {
        gap: 40px;
        padding: 40px;
    }
}

@media only screen and (max-width: 768px) {
    .rv-offers-card {
        flex-direction: column;
        gap: 24px;
        padding: 0px;
    }
}

.rv-offers-image {
    flex: 1;
}

.rv-offers-image img {
    width: 100%;
    object-fit: cover;
    display: block;
}

.rv-offers-text {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap:54px;
}

@media only screen and (max-width: 768px) {
    .rv-offers-text {
        padding: 0px 24px 24px;
        gap:32px;
    }
}


.rv-offers-type {
    font-family: 'Manrope';
    font-weight: 600;
    font-size: 24px;
    line-height: 33px;
    color: #474747;
    padding: 0px;
    margin: 0px;
}
@media only screen and (max-width: 768px) {
    .rv-offers-type,
    .rv-offers-promo-code,
    .rv-offers-promo-code-title,
    .rv-offers-promo-description-text {
        font-size: 16px !important;
        line-height: 22px !important;
    }
}

.rv-offers-title {
    font-family: 'Manrope';
    font-weight: 400;
    font-size: 64px;
    line-height: 87px;
    color: #474747;
    padding: 0px;
    margin: 0px;
    padding-top: 8px;
    padding-bottom:24px;
}

@media only screen and (max-width: 768px) {
    .rv-offers-title {
        font-size: 40px;
        line-height: 55px;
    }
}

.rv-offers-description {
    font-family: 'Manrope';
    font-weight: 400;
    font-size: 32px;
    line-height: 44px;
    color: #474747;
    padding: 0px;
    margin: 0px;
    margin-top:24px;
}

@media only screen and (max-width: 768px) {
    .rv-offers-description {
        font-size: 16px;
        line-height: 22px;
    }
}

.rv-offers-text-bottom {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 32px;

}

.rv-offers-promo {
    align-items: center;
    gap: 0.5rem;
    padding: 24px 0px;
    border-top: 2px solid #C57A4E;
    border-bottom: 2px solid #C57A4E;
}


.rv-offers-button {
  background-color: #009688;
}


.rv-offers-promo-toggle {
  width: 100%;
  background: none;
  border: none;
  text-align: left;
  font-weight: bold;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0px;
}


.rv-offers-promo-arrow {
  transition: transform 0.3s ease;
  margin-left: 10px;
}

.rv-offers-promo-toggle.active .rv-offers-promo-arrow {
  transform: rotate(180deg);
}

.rv-offers-promo-description {
  display: none;
  transition: max-height 0.3s ease;
}

.rv-offers-promo-description.open {
  display: block;
}


.rv-offers-booknow-button,
.rv-offers-booknow-button:hover {
    background-color: #C57A4E;
    padding: 16px 24px;
    min-width: 225px;
    color:white;
    text-align: center;
}

.rv-offers-booknow-button.max-width {
    max-width: 225px;
}

.rv-offers-booknow-button a,
.rv-offers-booknow-button a:hover {
    color: #FFF6EC;
}

.rv-offers-learnmore-button,
.rv-offers-learnmore-button:hover {
    background-color: transparent;
    border: 2px solid #C57A4E;
    padding: 16px 24px;
    min-width: 225px;
    color: #C57A4E;
    text-align: center;
}

.rv-offers-learnmore-button a,
.rv-offers-learnmore-button a:hover {
    color: #C57A4E;
}

.rv-offers-promo-toggle,
.rv-offers-promo-toggle:focus,
.rv-offers-promo-toggle:hover {
    background-color: transparent;
    color: #C57A4E;
}

@media only screen and (max-width: 768px) {
    .rv-offers-promo-toggle{
        font-size: 14px;
    }
}

.rv-offers-promo-label{
    font-family: 'Manrope';
    font-weight: 600;
    font-size: 32px;
    line-height: 44px;
    color: #C57A4E !important;
}

@media only screen and (max-width: 768px) {
    .rv-offers-promo-label {
        font-size: 16px;
        line-height: 22px;
    }
}

.rv-offers-promo-code,
.rv-offers-promo-code-title {
    font-family: 'Manrope';
    font-weight: 600;
    font-size: 24px;
    line-height: 33px;
    color: #474747;
}

.rv-offers-promo-description-text {
    font-family: 'Manrope';
    font-weight: 500;
    font-size: 24px;
    line-height: 33px;
    color: #474747;
    margin-top:24px;
}

.rv-offers-promo-code-entry {
    display: flex;
    gap: 20px;
}

.rv-offers-promo-code-copy {
    margin-top:24px;
    display: flex;
    gap:20px;

}


.rv-offers-promo-copy {
    position: relative;
    cursor: pointer;
}

.rv-offers-promo-copy .copy-tooltip {
    position: absolute;
    top: -45px;
    left: 50%;
    transform: translateX(-50%);
    background-color: #83A5A9;
    color: #fff;
    padding: 4px 8px;
    border-radius: 4px;
    opacity: 0; /* ← antes estaba en 1 */
    pointer-events: none;
    transition: opacity 0.3s ease;
    white-space: nowrap;
    z-index: 10;
    font-size: 16px;
    line-height: 22px;
    font-family: 'Manrope';
    font-weight: 600;
}

@media only screen and (max-width: 768px) { 
    .rv-offers-promo-copy .copy-tooltip {
        font-size: 14px;
    }
}


.rv-offers-promo-copy:hover .copy-tooltip {
    opacity: 1;
}

.rv-offers-promo-copy .copy-tooltip.show {
    background-color: #A0B08F !important;
    opacity: 1; 
}








.ec-text .rv-post-type-title, .ec-text .rv-post-type-description { color: #FFF6EC; }
.ec-text .rv-post-type-button { color: #FFF6EC; }
.ec-text .rv-post-types-grid { margin: 24px 0; }

.ec-cta { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; min-height: 180px; padding: 24px; color: var(--charcoal); text-decoration: none; text-align: center; background: var(--white) var(--bg, none) center / cover no-repeat; border: 1px solid #eadfd0; border-radius: 4px; }
.ec-cta svg { width: 40px; height: 40px; fill: var(--clay); }
.ec-cta__title { margin: 0; font-family: var(--font-heading); font-size: 20px; line-height: 27px; font-weight: 700; color: var(--charcoal); }
.ec-cta__desc { margin: 0; font-size: 16px; color: var(--text); }
.ec-cta__button { margin-top: 8px; color: var(--clay); font-weight: 700; text-transform: uppercase; font-size: 14px; }
.ec-html { width: 100%; }

/* Theme (non-Elementor) pages: Stay, Adventures, Privacy Policy, adventure entries and categories */
.ec--plain { padding-top: calc(150px + 40px) !important; }
.ec--plain h1.ec-heading { font-size: 48px; line-height: 66px; margin-bottom: 24px; }
.ec-plain-content { font-size: 18px; line-height: 27px; max-width: 900px; }
.ec-plain-content h2 { font-size: 32px; line-height: 44px; margin: 1.2em 0 .5em; color: var(--charcoal); }
.ec-plain-content p { margin: 0 0 1em; }
.ec-archive-list { padding-left: 1.2em; }
.ec-archive-list a { color: var(--clay); font-weight: 600; }
.imported-listing { width: 100%; }
.imported-listing ul { display: flex; flex-wrap: wrap; gap: 20px; margin: 24px 0 0; padding: 0; list-style: none; }
.imported-listing li { flex: 1 1 280px; padding: 24px; background: var(--sand); }
.imported-listing a { color: var(--clay); font-weight: 700; text-decoration: none; }
.imported-listing p { margin: 8px 0 0; color: var(--text); font-size: 16px; line-height: 22px; }
@media (max-width: 767px) { .ec--plain { padding-top: 120px !important; } .ec--plain h1.ec-heading { font-size: 32px; line-height: 44px; } }

/* Responsive overrides imported from Elementor's tablet (<=1024) and mobile (<=767) rules */
@property --t-minh { syntax: "*"; inherits: false; }
@property --t-pt { syntax: "*"; inherits: false; }
@property --t-pb { syntax: "*"; inherits: false; }
@property --t-pl { syntax: "*"; inherits: false; }
@property --t-pr { syntax: "*"; inherits: false; }
@property --t-mt { syntax: "*"; inherits: false; }
@property --t-mb { syntax: "*"; inherits: false; }
@property --t-dir { syntax: "*"; inherits: false; }
@property --t-w { syntax: "*"; inherits: false; }
@property --t-gap { syntax: "*"; inherits: false; }
@property --t-jc { syntax: "*"; inherits: false; }
@property --t-ai { syntax: "*"; inherits: false; }
@property --t-bg { syntax: "*"; inherits: false; }
@property --t-fs { syntax: "*"; inherits: false; }
@property --t-lh { syntax: "*"; inherits: false; }
@property --t-ta { syntax: "*"; inherits: false; }
@property --t-maxw { syntax: "*"; inherits: false; }
@property --t-sp { syntax: "*"; inherits: false; }
@property --t-icon { syntax: "*"; inherits: false; }
@property --t-pad { syntax: "*"; inherits: false; }
@property --m-minh { syntax: "*"; inherits: false; }
@property --m-pt { syntax: "*"; inherits: false; }
@property --m-pb { syntax: "*"; inherits: false; }
@property --m-pl { syntax: "*"; inherits: false; }
@property --m-pr { syntax: "*"; inherits: false; }
@property --m-mt { syntax: "*"; inherits: false; }
@property --m-mb { syntax: "*"; inherits: false; }
@property --m-dir { syntax: "*"; inherits: false; }
@property --m-w { syntax: "*"; inherits: false; }
@property --m-gap { syntax: "*"; inherits: false; }
@property --m-jc { syntax: "*"; inherits: false; }
@property --m-ai { syntax: "*"; inherits: false; }
@property --m-bg { syntax: "*"; inherits: false; }
@property --m-fs { syntax: "*"; inherits: false; }
@property --m-lh { syntax: "*"; inherits: false; }
@property --m-ta { syntax: "*"; inherits: false; }
@property --m-maxw { syntax: "*"; inherits: false; }
@property --m-sp { syntax: "*"; inherits: false; }
@property --m-icon { syntax: "*"; inherits: false; }
@property --m-pad { syntax: "*"; inherits: false; }
@media (max-width: 1024px) {
  .ec, .ec-col { min-height: var(--t-minh, var(--minh, auto)); padding-top: var(--t-pt, var(--pt, 10px)); padding-bottom: var(--t-pb, var(--pb, 10px)); padding-left: var(--t-pl, var(--pl, 10px)); padding-right: var(--t-pr, var(--pr, 10px)); margin-top: var(--t-mt, var(--mt, 0)); margin-bottom: var(--t-mb, var(--mb, 0)); flex-direction: var(--t-dir, var(--dir, column)); gap: var(--t-gap, var(--gap, 20px 20px)); justify-content: var(--t-jc, var(--jc, flex-start)); align-items: var(--t-ai, var(--ai, stretch)); background-image: var(--t-bg, var(--bg, none)); }
  .ec { padding-left: var(--t-pl, var(--pl, 24px)); padding-right: var(--t-pr, var(--pr, 24px)); }
  .ec-col[style*="--t-w:"] { flex-basis: var(--t-w); width: var(--t-w); max-width: var(--t-w); }
  .ec-heading { text-align: var(--t-ta, var(--ta, start)); }
  p.ec-heading { font-size: var(--t-fs, var(--fs, 24px)); line-height: var(--t-lh, var(--lh, 1.35)); }
  .ec-text { font-size: var(--t-fs, var(--fs, 24px)); line-height: var(--t-lh, var(--lh, 33px)); text-align: var(--t-ta, var(--ta, start)); }
  .ec-spacer { height: var(--t-sp, var(--sp, 40px)); }
  .ec-icon-list { font-size: var(--t-fs, var(--fs, 16px)); line-height: var(--t-lh, var(--lh, 1.4)); }
  .ec-icon-list svg { width: var(--t-icon, var(--icon, 24px)); }
}
@media (max-width: 767px) {
  .ec, .ec-col { min-height: var(--m-minh, var(--t-minh, var(--minh, auto))); padding-top: var(--m-pt, var(--t-pt, var(--pt, 10px))); padding-bottom: var(--m-pb, var(--t-pb, var(--pb, 10px))); padding-left: var(--m-pl, var(--t-pl, var(--pl, 10px))); padding-right: var(--m-pr, var(--t-pr, var(--pr, 10px))); margin-top: var(--m-mt, var(--t-mt, var(--mt, 0))); margin-bottom: var(--m-mb, var(--t-mb, var(--mb, 0))); gap: var(--m-gap, var(--t-gap, var(--gap, 20px 20px))); justify-content: var(--m-jc, var(--t-jc, var(--jc, flex-start))); align-items: var(--m-ai, var(--t-ai, var(--ai, stretch))); background-image: var(--m-bg, var(--t-bg, var(--bg, none))); }
  .ec { padding-left: var(--m-pl, var(--t-pl, var(--pl, 24px))); padding-right: var(--m-pr, var(--t-pr, var(--pr, 24px))); }
  .ec, .ec-col { flex-direction: var(--m-dir, column); }
  .ec[style*="--dir:row"] > .ec__inner { flex-direction: var(--m-dir, column); }
  .ec-col[style*="--w:"] { width: 100%; max-width: 100%; flex-basis: auto; }
  .ec-col[style*="--m-w:"] { flex-basis: var(--m-w); width: var(--m-w); max-width: var(--m-w); }
  .ec[style*="--minh:100vh"] { min-height: var(--m-minh, 70vh); }
  h1.ec-heading { font-size: var(--m-fs, 40px); line-height: var(--m-lh, 55px); }
  h2.ec-heading { font-size: var(--m-fs, 32px); line-height: var(--m-lh, 44px); }
  h3.ec-heading, h4.ec-heading { font-size: var(--m-fs, 24px); line-height: var(--m-lh, 33px); }
  p.ec-heading { font-size: var(--m-fs, var(--t-fs, var(--fs, 24px))); line-height: var(--m-lh, var(--t-lh, var(--lh, 1.35))); }
  .ec-heading { text-align: var(--m-ta, var(--t-ta, var(--ta, start))); }
  .ec-text { font-size: var(--m-fs, var(--t-fs, 16px)); line-height: var(--m-lh, var(--t-lh, 22px)); text-align: var(--m-ta, var(--t-ta, var(--ta, start))); }
  .ec-icon-list { font-size: var(--m-fs, var(--t-fs, 16px)); line-height: var(--m-lh, var(--t-lh, 22px)); }
  .ec-icon-list svg { width: var(--m-icon, var(--t-icon, var(--icon, 24px))); }
  .ec-spacer { height: var(--m-sp, calc(var(--sp, 40px) / 2)); }
  .ec-button { padding: var(--m-pad, var(--pad, 16px 24px)); }
}
