:root {--primary:#7CB342;--primary-dark:#558B2F;--primary-light:#9CCC65;--primary-lighter:#C5E1A5;--primary-glow:rgba(124,179,66,0.25);--primary-rgb:124,179,66;--dark:#1A1A1A;--charcoal:#2D2D2D;--gray-900:#1F1F1F;--gray-800:#3D3D3D;--gray-700:#555555;--gray-600:#666666;--gray-500:#888888;--gray-400:#999999;--gray-300:#BDBDBD;--gray-200:#E0E0E0;--gray-100:#F0F0F0;--sand:#F5EBD7;--sand-light:#FAF5EB;--sand-dark:#E8D5B5;--terracotta:#C76F30;--terracotta-light:#D4874D;--terracotta-dark:#A85A20;--amber:#F9A825;--cream:#FAFAF5;--white:#FFFFFF;--text-primary:#1A1A1A;--text-secondary:#555555;--text-muted:#888888;--text-on-dark:#F5EBD7;--text-on-primary:#FFFFFF;--bg-body:#FAFAF5;--bg-section-alt:#F5EBD7;--border-light:rgba(0,0,0,0.08);--border-medium:rgba(0,0,0,0.12);--font-heading:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-body:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-5xl:3rem;--text-6xl:3.75rem;--text-7xl:4.5rem;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;--shadow-xs:0 1px 2px rgba(0,0,0,0.05);--shadow-sm:0 1px 3px rgba(0,0,0,0.08),0 1px 2px rgba(0,0,0,0.06);--shadow-md:0 4px 6px -1px rgba(0,0,0,0.08),0 2px 4px -2px rgba(0,0,0,0.06);--shadow-lg:0 10px 15px -3px rgba(0,0,0,0.08),0 4px 6px -4px rgba(0,0,0,0.04);--shadow-xl:0 20px 25px -5px rgba(0,0,0,0.1),0 8px 10px -6px rgba(0,0,0,0.04);--shadow-2xl:0 25px 50px -12px rgba(0,0,0,0.18);--shadow-warm:0 10px 30px rgba(199,111,48,0.12);--shadow-green:0 10px 30px rgba(124,179,66,0.18);--shadow-card:0 2px 8px rgba(0,0,0,0.06),0 8px 24px rgba(0,0,0,0.06);--shadow-card-hover:0 12px 40px rgba(0,0,0,0.12),0 4px 12px rgba(0,0,0,0.06);--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--radius-2xl:32px;--radius-full:9999px;--ease-out:cubic-bezier(0.25,0.46,0.45,0.94);--ease-spring:cubic-bezier(0.34,1.56,0.64,1);--ease-smooth:cubic-bezier(0.4,0,0.2,1);--transition-fast:150ms var(--ease-out);--transition-base:300ms var(--ease-out);--transition-slow:500ms var(--ease-out);--transition-spring:500ms var(--ease-spring);--z-base:1;--z-dropdown:10;--z-sticky:20;--z-overlay:30;--z-modal:40;--z-toast:50;--container-max:1280px;--container-padding:1.5rem} *,*::before,*::after {margin:0;padding:0;box-sizing:border-box} html {scroll-behavior:smooth;-webkit-text-size-adjust:100%;font-size:16px;overflow-x:hidden} body {font-family:var(--font-body);font-size:var(--text-base);line-height:1.7;color:var(--text-primary);background-color:var(--bg-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden} img {max-width:100%;height:auto;display:block} a {text-decoration:none;color:inherit;transition:color var(--transition-fast)} button {border:none;background:none;cursor:pointer;font-family:inherit;font-size:inherit} ul,ol {list-style:none} input,textarea,select {font-family:inherit;font-size:inherit;border:none;outline:none} h1,h2,h3,h4,h5,h6 {font-family:var(--font-heading);font-weight:600;line-height:1.2;color:var(--text-primary)} .container {width:100%;max-width:var(--container-max);margin:0 auto;padding:0 var(--container-padding)} .section {padding:var(--space-24) 0} .section--alt {background-color:var(--bg-section-alt)} .section--dark {background-color:var(--dark);color:var(--text-on-dark)} .section-header {text-align:center;max-width:680px;margin:0 auto var(--space-16)} .section-tag {display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-heading);font-size:var(--text-sm);font-weight:600;text-transform:uppercase;letter-spacing:0.12em;color:var(--primary);margin-bottom:var(--space-4);padding:var(--space-2) var(--space-4);background:var(--primary-glow);border-radius:var(--radius-full)} .section-header h2 {font-size:var(--text-4xl);font-weight:700;margin-bottom:var(--space-4);letter-spacing:-0.02em} .section-header p {font-size:var(--text-lg);color:var(--text-secondary);line-height:1.7} .btn {display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-8);font-family:var(--font-heading);font-size:var(--text-base);font-weight:600;border-radius:var(--radius-full);transition:all var(--transition-base);cursor:pointer;position:relative;overflow:hidden;white-space:nowrap} .btn::before {content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,0.2) 0%,transparent 50%);opacity:0;transition:opacity var(--transition-base)} .btn:hover::before {opacity:1} .btn--primary {background:var(--primary);color:var(--text-on-primary);box-shadow:var(--shadow-green)} .btn--primary:hover {background:var(--primary-dark);transform:translateY(-2px);box-shadow:0 14px 35px rgba(var(--primary-rgb),0.3)} .btn--primary:active {transform:translateY(0)} .btn--outline {background:transparent;color:var(--white);border:2px solid rgba(255,255,255,0.4);backdrop-filter:blur(4px)} .btn--outline:hover {background:rgba(255,255,255,0.15);border-color:rgba(255,255,255,0.7);transform:translateY(-2px)} .btn--dark {background:var(--dark);color:var(--white)} .btn--dark:hover {background:var(--charcoal);transform:translateY(-2px);box-shadow:var(--shadow-xl)} .btn--lg {padding:var(--space-4) var(--space-10);font-size:var(--text-lg)} .btn--sm {padding:var(--space-2) var(--space-5);font-size:var(--text-sm)} .btn i,.btn svg {width:18px;height:18px;transition:transform var(--transition-base)} .btn:hover i,.btn:hover svg {transform:translateX(3px)} .glass {background:rgba(255,255,255,0.08);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,0.12)} .glass--light {background:rgba(255,255,255,0.7);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,0.5)} .navbar {position:fixed;top:0;left:0;right:0;z-index:var(--z-sticky);padding:var(--space-5) 0;transition:all var(--transition-base)} .navbar.scrolled {padding:var(--space-3) 0;background:rgba(26,26,26,0.85);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 4px 30px rgba(0,0,0,0.15);border-bottom:1px solid rgba(255,255,255,0.05)} .navbar__inner {display:flex;align-items:center;justify-content:space-between;max-width:var(--container-max);margin:0 auto;padding:0 var(--container-padding)} .navbar__logo {display:flex;align-items:center;gap:var(--space-3);z-index:var(--z-sticky)} .navbar__logo img {height:66px;width:auto;border-radius:var(--radius-sm)} .navbar__links {display:flex;align-items:center;gap:var(--space-1)} .navbar__links a {padding:var(--space-2) var(--space-4);font-family:var(--font-heading);font-size:var(--text-sm);font-weight:500;color:rgba(255,255,255,0.75);border-radius:var(--radius-md);transition:all var(--transition-fast);position:relative} .navbar__links a::after {content:'';position:absolute;bottom:2px;left:50%;transform:translateX(-50%) scaleX(0);width:20px;height:2px;background:var(--primary);border-radius:var(--radius-full);transition:transform var(--transition-base)} .navbar__links a:hover {color:var(--white);background:rgba(255,255,255,0.08)} .navbar__links a:hover::after,.navbar__links a.active::after {transform:translateX(-50%) scaleX(1)} .navbar__links a.active {color:var(--white)} .navbar__cta {display:flex;align-items:center;gap:var(--space-3)} .navbar__book-btn {padding:var(--space-2) var(--space-6);font-family:var(--font-heading);font-size:var(--text-sm);font-weight:600;color:var(--white);background:var(--primary);border-radius:var(--radius-full);transition:all var(--transition-base)} .navbar__book-btn:hover {background:var(--primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-green)} .navbar__toggle {display:none;flex-direction:column;gap:5px;width:28px;cursor:pointer;z-index:var(--z-sticky);padding:4px 0} .navbar__toggle span {display:block;width:100%;height:2px;background:var(--white);border-radius:var(--radius-full);transition:all var(--transition-base);transform-origin:center} .navbar__toggle.active span:nth-child(1) {transform:rotate(45deg) translate(5px,5px)} .navbar__toggle.active span:nth-child(2) {opacity:0;transform:scaleX(0)} .navbar__toggle.active span:nth-child(3) {transform:rotate(-45deg) translate(5px,-5px)} .navbar__mobile {position:fixed;inset:0;background:rgba(26,26,26,0.97);backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);z-index:calc(var(--z-sticky) - 1);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-6);opacity:0;visibility:hidden;transition:all var(--transition-slow)} .navbar__mobile.active {opacity:1;visibility:visible} .navbar__mobile a {font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:600;color:var(--white);opacity:0;transform:translateY(20px);transition:all var(--transition-base)} .navbar__mobile.active a {opacity:1;transform:translateY(0)} .navbar__mobile.active a:nth-child(1) {transition-delay:100ms} .navbar__mobile.active a:nth-child(2) {transition-delay:150ms} .navbar__mobile.active a:nth-child(3) {transition-delay:200ms} .navbar__mobile.active a:nth-child(4) {transition-delay:250ms} .navbar__mobile.active a:nth-child(5) {transition-delay:300ms} .navbar__mobile.active a:nth-child(6) {transition-delay:350ms} .navbar__mobile a:hover {color:var(--primary-light)} .hero {position:relative;height:100vh;min-height:600px;overflow:hidden;background:var(--dark)} .hero__slides {position:absolute;inset:0} .hero__slide {position:absolute;inset:0;opacity:0;transition:opacity 1.2s ease-in-out} .hero__slide.active {opacity:1} .hero__slide img {width:100%;height:100%;object-fit:cover;transform:scale(1.05);transition:transform 8s ease-out} .hero__slide picture {display:block;width:100%;height:100%} .hero__slide.active img {transform:scale(1)} .hero__overlay {position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,26,26,0.4) 0%,rgba(26,26,26,0.1) 40%,rgba(26,26,26,0.3) 70%,rgba(26,26,26,0.85) 100% );z-index:1} .hero__texture {position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E");z-index:2;pointer-events:none} .hero__content {position:relative;z-index:3;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 var(--container-padding)} .hero__badge {display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-5);background:rgba(255,255,255,0.1);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.15);border-radius:var(--radius-full);font-family:var(--font-heading);font-size:var(--text-sm);font-weight:500;color:var(--primary-light);margin-bottom:var(--space-6);animation:fadeInDown 0.8s ease-out} .hero__badge i {width:16px;height:16px} .hero__title {font-family:var(--font-heading);font-size:clamp(2.5rem,6vw,5rem);font-weight:800;color:var(--white);letter-spacing:-0.03em;line-height:1.1;margin-bottom:var(--space-6);animation:fadeInUp 0.8s ease-out 0.2s both} .hero__title span {background:linear-gradient(135deg,var(--primary-light),var(--primary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text} .hero__subtitle {font-size:clamp(1rem,2vw,1.25rem);color:rgba(255,255,255,0.75);max-width:600px;margin-bottom:var(--space-10);line-height:1.7;animation:fadeInUp 0.8s ease-out 0.4s both} .hero__buttons {display:flex;align-items:center;gap:var(--space-4);animation:fadeInUp 0.8s ease-out 0.6s both;flex-wrap:wrap;justify-content:center} .hero__progress {position:absolute;bottom:0;left:0;right:0;height:3px;background:rgba(255,255,255,0.1);z-index:4} .hero__progress-bar {width:100%;height:100%;background:linear-gradient(90deg,var(--primary),var(--primary-light));transform:scaleX(0);transform-origin:left center} .hero__progress-bar.is-running {animation:heroProgress 6s linear forwards} @keyframes heroProgress {from {transform:scaleX(0)} to {transform:scaleX(1)}} .hero__scroll {position:absolute;bottom:var(--space-20);left:50%;transform:translateX(-50%);z-index:4;display:flex;flex-direction:column;align-items:center;gap:var(--space-2);color:rgba(255,255,255,0.5);font-size:var(--text-xs);font-family:var(--font-heading);text-transform:uppercase;letter-spacing:0.15em;animation:float 3s ease-in-out infinite} .hero__scroll-mouse {width:24px;height:38px;border:2px solid rgba(255,255,255,0.35);border-radius:12px;position:relative} .hero__scroll-mouse::after {content:'';position:absolute;top:6px;left:50%;transform:translateX(-50%);width:3px;height:8px;background:var(--primary-light);border-radius:var(--radius-full);animation:scrollPulse 2s ease-in-out infinite} .about {padding:var(--space-24) 0;background:var(--cream);position:relative;overflow:hidden} .about::before {content:'';position:absolute;top:-60px;left:0;right:0;height:120px;background:var(--cream);clip-path:ellipse(55% 60% at 50% 100%);z-index:1} .about__grid {display:grid;grid-template-columns:1fr 1fr;gap:var(--space-16);align-items:center} .about__image-wrapper {position:relative} .about__image {border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-2xl);aspect-ratio:4/5} .about__image img {width:100%;height:100%;object-fit:cover;transition:transform var(--transition-slow)} .about__image:hover img {transform:scale(1.03)} .about__accent {position:absolute;bottom:-20px;right:-20px;width:120px;height:120px;background:var(--primary-glow);border-radius:var(--radius-xl);z-index:-1} .about__content {padding:var(--space-8) 0} .about__content .section-tag {margin-bottom:var(--space-6)} .about__content h2 {font-size:var(--text-4xl);font-weight:700;margin-bottom:var(--space-6);letter-spacing:-0.02em} .about__content p {font-size:var(--text-lg);color:var(--text-secondary);margin-bottom:var(--space-8);line-height:1.8} .about__stats {display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6);padding-top:var(--space-8);border-top:1px solid var(--border-light)} .about__stat {text-align:center} .about__stat-number {font-family:var(--font-heading);font-size:var(--text-3xl);font-weight:700;color:var(--primary);display:block;line-height:1;margin-bottom:var(--space-2)} .about__stat-label {font-size:var(--text-sm);color:var(--text-muted);text-transform:uppercase;letter-spacing:0.08em;font-weight:500} .rooms {padding:var(--space-24) 0;background:var(--bg-body)} .rooms__grid {display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-8);margin-bottom:var(--space-8)} .room-card {display:block;border-radius:var(--radius-xl);overflow:hidden;background:var(--white);box-shadow:var(--shadow-card);transition:all var(--transition-base);position:relative;cursor:pointer} .room-card:hover {transform:translateY(-8px);box-shadow:var(--shadow-card-hover)} .room-card__image {position:relative;aspect-ratio:4/3;overflow:hidden} .room-card__image img {width:100%;height:100%;object-fit:cover;transition:transform 0.6s var(--ease-out)} .room-card:hover .room-card__image img {transform:scale(1.08)} .room-card__badge {position:absolute;top:var(--space-4);left:var(--space-4);padding:var(--space-1) var(--space-3);background:rgba(26,26,26,0.7);backdrop-filter:blur(10px);color:var(--white);font-family:var(--font-heading);font-size:var(--text-xs);font-weight:600;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:0.08em} .room-card__price {position:absolute;bottom:var(--space-4);right:var(--space-4);padding:var(--space-2) var(--space-4);background:var(--white);color:var(--text-primary);font-family:var(--font-heading);font-size:var(--text-sm);font-weight:700;border-radius:var(--radius-full);box-shadow:var(--shadow-md)} .room-card__price span {font-weight:400;color:var(--text-muted);font-size:var(--text-xs)} .room-card__content {padding:var(--space-5) var(--space-6)} .room-card__type {display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--primary);font-weight:600;text-transform:uppercase;letter-spacing:0.08em;margin-bottom:var(--space-2)} .room-card__type i {width:14px;height:14px} .room-card__name {font-family:var(--font-heading);font-size:var(--text-xl);font-weight:700;margin-bottom:var(--space-2);color:var(--text-primary)} .room-card__desc {font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-4);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden} .room-card__footer {display:flex;align-items:center;justify-content:space-between;padding-top:var(--space-4);border-top:1px solid var(--border-light)} .room-card__amenities {display:flex;align-items:center;gap:var(--space-3)} .room-card__amenity {display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--text-muted)} .room-card__amenity i {width:14px;height:14px;color:var(--gray-500)} .room-card__link {display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-heading);font-size:var(--text-sm);font-weight:600;color:var(--primary);transition:gap var(--transition-base)} .room-card:hover .room-card__link {gap:var(--space-3)} .room-card__link i {width:16px;height:16px;transition:transform var(--transition-base)} .room-card:hover .room-card__link i {transform:translateX(4px)} .camping-card {display:grid;grid-template-columns:1.2fr 1fr;border-radius:var(--radius-xl);overflow:hidden;background:var(--white);box-shadow:var(--shadow-card);transition:all var(--transition-base);cursor:pointer} .camping-card:hover {transform:translateY(-8px);box-shadow:var(--shadow-card-hover)} .camping-card__image {position:relative;min-height:300px;overflow:hidden} .camping-card__image img {width:100%;height:100%;object-fit:cover;transition:transform 0.6s var(--ease-out)} .camping-card:hover .camping-card__image img {transform:scale(1.05)} .camping-card__badge {position:absolute;top:var(--space-4);left:var(--space-4);padding:var(--space-1) var(--space-3);background:var(--terracotta);color:var(--white);font-family:var(--font-heading);font-size:var(--text-xs);font-weight:600;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:0.08em} .camping-card__content {display:flex;flex-direction:column;justify-content:center;padding:var(--space-10)} .camping-card__icon {width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:var(--primary-glow);color:var(--primary);border-radius:var(--radius-lg);margin-bottom:var(--space-6)} .camping-card__icon i {width:28px;height:28px} .camping-card__name {font-family:var(--font-heading);font-size:var(--text-3xl);font-weight:700;margin-bottom:var(--space-3)} .camping-card__desc {font-size:var(--text-base);color:var(--text-secondary);margin-bottom:var(--space-6);line-height:1.7} .camping-card__features {display:flex;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-8)} .camping-card__feature {display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--sand-light);border-radius:var(--radius-full);font-size:var(--text-sm);color:var(--text-secondary);font-weight:500} .camping-card__feature i {width:16px;height:16px;color:var(--primary)} .camping-card__price {font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:700;color:var(--text-primary);margin-bottom:var(--space-6)} .camping-card__price span {font-weight:400;font-size:var(--text-base);color:var(--text-muted)} .camping-card__link {display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-heading);font-size:var(--text-base);font-weight:600;color:var(--primary);transition:gap var(--transition-base)} .camping-card:hover .camping-card__link {gap:var(--space-3)} .camping-card__link i {width:18px;height:18px;transition:transform var(--transition-base)} .camping-card:hover .camping-card__link i {transform:translateX(4px)} .reviews {padding:var(--space-24) 0;background:var(--dark);color:var(--white);position:relative;overflow:hidden} .reviews::before {content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse 60% 50% at 20% 50%,rgba(var(--primary-rgb),0.06),transparent),radial-gradient(ellipse 40% 60% at 80% 30%,rgba(199,111,48,0.05),transparent);pointer-events:none} .reviews .section-header p {color:rgba(255,255,255,0.55)} .reviews__status {min-height:2rem;margin-bottom:var(--space-4);color:rgba(255,255,255,0.72);text-align:center;font-size:var(--text-sm)} .reviews__status[hidden] {display:none} .reviews__status.is-error {color:var(--sand)} .reviews__track-wrapper {position:relative;overflow:hidden;margin:0 calc(-1 * var(--container-padding));padding:var(--space-4) var(--container-padding)} .reviews__track {display:flex;gap:var(--space-6);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none;padding:var(--space-2) var(--space-4)} .reviews__track::-webkit-scrollbar {display:none} .review-card {flex:0 0 380px;scroll-snap-align:start;padding:var(--space-8);background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:var(--radius-xl);transition:all var(--transition-base);position:relative} .review-card:hover {background:rgba(255,255,255,0.07);border-color:rgba(var(--primary-rgb),0.2);transform:translateY(-4px)} .review-card__quote {position:absolute;top:var(--space-6);right:var(--space-6);font-size:4rem;font-family:Georgia,serif;color:rgba(var(--primary-rgb),0.15);line-height:1;pointer-events:none} .review-card__stars {display:flex;gap:2px;margin-bottom:var(--space-4)} .review-card__stars i {width:16px;height:16px;color:var(--amber);fill:var(--amber)} .review-card__text {font-size:var(--text-base);line-height:1.7;color:rgba(255,255,255,0.75);margin-bottom:var(--space-6);font-style:italic} .review-card__author {display:flex;align-items:center;gap:var(--space-3)} .review-card__avatar {width:44px;height:44px;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--primary),var(--primary-dark));display:flex;align-items:center;justify-content:center;font-family:var(--font-heading);font-size:var(--text-base);font-weight:700;color:var(--white);flex-shrink:0} .review-card__info h4 {font-family:var(--font-heading);font-size:var(--text-base);font-weight:600;color:var(--white);margin-bottom:2px} .review-card__info p {font-size:var(--text-sm);color:rgba(255,255,255,0.4)} .reviews__controls {display:flex;align-items:center;justify-content:center;gap:var(--space-4);margin-top:var(--space-10)} .reviews__arrow {width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);border:1px solid rgba(255,255,255,0.15);color:var(--white);transition:all var(--transition-base);cursor:pointer;background:transparent} .reviews__arrow:hover {background:var(--primary);border-color:var(--primary);transform:scale(1.05)} .reviews__arrow i {width:18px;height:18px} .contact {padding:var(--space-24) 0;background:var(--sand);position:relative} .contact__grid {display:grid;grid-template-columns:1fr 1fr;gap:var(--space-12);align-items:stretch} .contact__grid>.reveal {height:100%} .contact__info {margin-bottom:var(--space-12)} .contact__details {display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-6);margin-top:0} .contact__detail {display:flex;align-items:flex-start;gap:var(--space-4)} .contact__detail-icon {width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--primary-glow);color:var(--primary);border-radius:var(--radius-md);flex-shrink:0} .contact__detail-icon i {width:20px;height:20px} .contact__detail-text h3 {font-family:var(--font-heading);font-size:var(--text-base);font-weight:600;margin-bottom:var(--space-1)} .contact__detail-text p {font-size:var(--text-sm);color:var(--text-secondary);line-height:1.6} .contact__detail-text a {color:var(--primary);font-weight:500} .contact__detail-text a:hover {color:var(--primary-dark)} .contact__form-wrapper {background:var(--white);border-radius:var(--radius-xl);padding:var(--space-10);box-shadow:var(--shadow-lg)} .contact__form-wrapper h3 {font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:700;margin-bottom:var(--space-6)} .form-group {margin-bottom:var(--space-5);position:relative} .form-group label {display:block;font-family:var(--font-heading);font-size:var(--text-sm);font-weight:600;color:var(--text-primary);margin-bottom:var(--space-2)} .form-group input,.form-group textarea,.form-group select {width:100%;padding:var(--space-3) var(--space-4);background:var(--sand-light);border:2px solid transparent;border-radius:var(--radius-md);font-size:var(--text-base);color:var(--text-primary);transition:all var(--transition-fast)} .form-group input:focus,.form-group textarea:focus,.form-group select:focus {border-color:var(--primary);background:var(--white);box-shadow:0 0 0 4px var(--primary-glow)} .form-group input::placeholder,.form-group textarea::placeholder {color:var(--text-muted)} .form-group textarea {resize:vertical;min-height:120px} .form-row {display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5)} .form-submit {margin-top:var(--space-6)} .contact__map {position:relative;border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-lg);height:100%;min-height:400px;background:var(--sand-dark)} .contact__map-preview {width:100%;height:100%;object-fit:cover} .contact__map-actions {position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6);background:linear-gradient(rgba(26,26,26,0.12),rgba(26,26,26,0.42))} .contact__map-link {color:var(--white);font-weight:600;text-decoration:underline;text-underline-offset:0.2em;text-shadow:0 1px 4px rgba(0,0,0,0.75)} .contact__map iframe {width:100%;height:100%;border:none} .footer {background:var(--dark);color:rgba(255,255,255,0.7);padding:var(--space-16) 0 var(--space-8);position:relative} .footer::before {content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(var(--primary-rgb),0.3),transparent)} .footer__grid {display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:var(--space-12);margin-bottom:var(--space-12)} .footer__brand p {margin-top:var(--space-4);font-size:var(--text-sm);line-height:1.7;max-width:300px} .footer__brand-logo {display:flex;align-items:center;gap:var(--space-3)} .footer__brand-logo img {height:60px;width:auto;border-radius:var(--radius-sm)} .footer__heading {font-family:var(--font-heading);font-size:var(--text-base);font-weight:600;color:var(--white);margin-bottom:var(--space-5)} .footer__links {display:flex;flex-direction:column;gap:var(--space-3)} .footer__links a {font-size:var(--text-sm);color:rgba(255,255,255,0.55);transition:all var(--transition-fast);display:inline-flex;align-items:center;gap:var(--space-2)} .footer__links a:hover {color:var(--primary-light);transform:translateX(4px)} .footer__social {display:flex;gap:var(--space-3);margin-top:var(--space-4)} .footer__social a {width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.1);border-radius:var(--radius-md);color:rgba(255,255,255,0.6);transition:all var(--transition-base)} .footer__social a:hover {background:var(--primary);border-color:var(--primary);color:var(--white);transform:translateY(-3px)} .footer__social-icon {width:18px;height:18px;display:block} .footer__bottom {display:flex;align-items:center;justify-content:space-between;padding-top:var(--space-8);border-top:1px solid rgba(255,255,255,0.08);font-size:var(--text-sm)} .footer__bottom a {color:var(--primary-light);text-decoration:underline;text-underline-offset:0.2em;text-decoration-thickness:1px} .detail-hero {position:relative;height:50vh;min-height:400px;overflow:hidden;background:var(--dark)} .detail-hero__image {position:absolute;inset:0} .detail-hero__image img {width:100%;height:100%;object-fit:cover} .detail-hero__overlay {position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,26,26,0.3) 0%,rgba(26,26,26,0.8) 100%)} .detail-hero__content {position:absolute;bottom:var(--space-12);left:0;right:0;z-index:2} .detail-hero__breadcrumb {display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:rgba(255,255,255,0.6);margin-bottom:var(--space-4)} .detail-hero__breadcrumb a {color:rgba(255,255,255,0.6);transition:color var(--transition-fast)} .detail-hero__breadcrumb a:hover {color:var(--primary-light)} .detail-hero__breadcrumb i {width:14px;height:14px} .detail-hero__title {font-size:var(--text-5xl);font-weight:800;color:var(--white);margin-bottom:var(--space-3)} .detail-hero__meta {display:flex;align-items:center;gap:var(--space-6);color:rgba(255,255,255,0.7);font-size:var(--text-base)} .detail-hero__meta-item {display:flex;align-items:center;gap:var(--space-2)} .detail-hero__meta-item i {width:18px;height:18px;color:var(--primary-light)} .floating-cta {position:fixed;bottom:var(--space-8);right:var(--space-8);z-index:var(--z-sticky);animation:fadeInUp 0.5s ease-out 1s both} .floating-cta .btn {box-shadow:var(--shadow-2xl);padding:var(--space-4) var(--space-8)} .floating-cta .btn:hover {box-shadow:0 20px 40px rgba(var(--primary-rgb),0.35)} .scroll-to-top {position:fixed;left:var(--space-8);bottom:var(--space-8);z-index:var(--z-sticky);width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-full);background:var(--primary);color:var(--white);box-shadow:var(--shadow-2xl);cursor:pointer;opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity var(--transition-base),transform var(--transition-base),background-color var(--transition-base)} .scroll-to-top.is-visible {opacity:1;transform:translateY(0);pointer-events:auto} .scroll-to-top:hover {background:var(--primary-dark)} .scroll-to-top:focus-visible {outline:3px solid var(--primary-light);outline-offset:3px} .scroll-to-top i,.scroll-to-top svg {width:22px;height:22px} .detail-content {padding:var(--space-16) 0} .detail-content__grid {display:grid;grid-template-columns:2fr 1fr;gap:var(--space-12);align-items:start} .detail-section {margin-bottom:var(--space-12)} .detail-section h2 {font-size:var(--text-2xl);font-weight:700;margin-bottom:var(--space-6);display:flex;align-items:center;gap:var(--space-3)} .detail-section h2 i {width:24px;height:24px;color:var(--primary)} .detail-section p {font-size:var(--text-lg);color:var(--text-secondary);line-height:1.8} .amenities-grid {display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4)} .amenity-item {display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);background:var(--sand-light);border-radius:var(--radius-md);transition:all var(--transition-base)} .amenity-item:hover {background:var(--primary-glow);transform:translateY(-2px)} .amenity-item i {width:22px;height:22px;color:var(--primary);flex-shrink:0} .amenity-item span {font-size:var(--text-sm);font-weight:500;color:var(--text-primary)} .gallery__grid {display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3)} .gallery__grid--compact {grid-template-columns:repeat(3,1fr)} .gallery__item {border-radius:var(--radius-md);overflow:hidden;cursor:pointer;position:relative;aspect-ratio:4/3} .gallery__item:first-child {grid-column:span 2;grid-row:span 2;aspect-ratio:unset;height:100%} .gallery__item img {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 0.5s var(--ease-out)} .gallery__item:hover img {transform:scale(1.06)} .gallery__item::after {content:'';position:absolute;inset:0;background:rgba(26,26,26,0);transition:background var(--transition-base)} .gallery__item:hover::after {background:rgba(26,26,26,0.2)} .gallery__item-icon {position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:1;opacity:0;transition:opacity var(--transition-base)} .gallery__item:hover .gallery__item-icon {opacity:1} .gallery__item-icon i {width:28px;height:28px;color:var(--white)} .gallery__show-all {position:absolute;bottom:var(--space-4);right:var(--space-4);z-index:2} .lightbox {position:fixed;inset:0;z-index:var(--z-modal);background:rgba(0,0,0,0.95);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:all var(--transition-base)} .lightbox.active {opacity:1;visibility:visible} .lightbox__close {position:absolute;top:var(--space-6);right:var(--space-6);width:44px;height:44px;display:flex;align-items:center;justify-content:center;color:var(--white);background:rgba(255,255,255,0.1);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-base);border:none} .lightbox__close:hover {background:rgba(255,255,255,0.2);transform:rotate(90deg)} .lightbox__close i {width:24px;height:24px} .lightbox__image {max-width:85vw;max-height:85vh;border-radius:var(--radius-md);object-fit:contain;transition:transform var(--transition-base)} .lightbox__nav {position:absolute;top:50%;transform:translateY(-50%);width:50px;height:50px;display:flex;align-items:center;justify-content:center;color:var(--white);background:rgba(255,255,255,0.1);border:1px solid rgba(255,255,255,0.15);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-base)} .lightbox__nav:hover {background:var(--primary);border-color:var(--primary)} .lightbox__nav i {width:22px;height:22px} .lightbox__prev {left:var(--space-6)} .lightbox__next {right:var(--space-6)} .lightbox__counter {position:absolute;bottom:var(--space-6);left:50%;transform:translateX(-50%);color:rgba(255,255,255,0.6);font-family:var(--font-heading);font-size:var(--text-sm)} .detail-sidebar {position:sticky;top:100px} .price-card {background:var(--white);border-radius:var(--radius-xl);padding:var(--space-8);box-shadow:var(--shadow-lg);border:1px solid var(--border-light)} .price-card__price {font-family:var(--font-heading);font-size:var(--text-3xl);font-weight:700;margin-bottom:var(--space-2)} .price-card__price span {font-size:var(--text-base);font-weight:400;color:var(--text-muted)} .price-card__rates {display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)} .price-card__rates .price-card__price {display:flex;flex-wrap:wrap;align-items:baseline;gap:0 var(--space-2);margin-bottom:0} .price-card__rating {display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-6);font-size:var(--text-sm);color:var(--text-secondary)} .price-card__rating i {width:16px;height:16px;color:var(--amber);fill:var(--amber)} .price-card__divider {height:1px;background:var(--border-light);margin:var(--space-6) 0} .price-card__includes h3 {font-family:var(--font-heading);font-size:var(--text-sm);font-weight:600;text-transform:uppercase;letter-spacing:0.08em;color:var(--text-muted);margin-bottom:var(--space-4)} .price-card__includes ul {display:flex;flex-direction:column;gap:var(--space-3)} .price-card__includes li {display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--text-secondary)} .price-card__includes li i {width:16px;height:16px;color:var(--primary)} .price-card .btn {width:100%;margin-top:var(--space-6)} .booking-form {padding:var(--space-24) 0;background:var(--sand)} .booking-form__wrapper {max-width:800px;margin:0 auto;background:var(--white);border-radius:var(--radius-xl);padding:var(--space-12);box-shadow:var(--shadow-xl)} .booking-form__wrapper h2 {text-align:center;margin-bottom:var(--space-2)} .booking-form__subtitle {text-align:center;color:var(--text-muted);margin-bottom:var(--space-10)} @keyframes fadeInUp {from {opacity:0;transform:translateY(30px)} to {opacity:1;transform:translateY(0)}} @keyframes fadeInDown {from {opacity:0;transform:translateY(-20px)} to {opacity:1;transform:translateY(0)}} @keyframes fadeIn {from {opacity:0} to {opacity:1}} @keyframes slideInLeft {from {opacity:0;transform:translateX(-40px)} to {opacity:1;transform:translateX(0)}} @keyframes slideInRight {from {opacity:0;transform:translateX(40px)} to {opacity:1;transform:translateX(0)}} @keyframes scaleIn {from {opacity:0;transform:scale(0.9)} to {opacity:1;transform:scale(1)}} @keyframes float {0%,100% {transform:translateX(-50%) translateY(0)} 50% {transform:translateX(-50%) translateY(-8px)}} @keyframes scrollPulse {0%,100% {opacity:0;transform:translateX(-50%) translateY(0)} 50% {opacity:1;transform:translateX(-50%) translateY(6px)}} @keyframes shimmer {0% {background-position:-200% center} 100% {background-position:200% center}} @keyframes pulse {0%,100% {transform:scale(1)} 50% {transform:scale(1.05)}} @keyframes rotate {from {transform:rotate(0deg)} to {transform:rotate(360deg)}} .reveal {opacity:0;transform:translateY(30px);transition:opacity 0.6s var(--ease-out),transform 0.6s var(--ease-out)} .reveal.revealed {opacity:1;transform:translateY(0)} .reveal--left {transform:translateX(-40px)} .reveal--left.revealed {transform:translateX(0)} .reveal--right {transform:translateX(40px)} .reveal--right.revealed {transform:translateX(0)} .reveal--scale {transform:scale(0.9)} .reveal--scale.revealed {transform:scale(1)} .reveal-stagger>* {opacity:0;transform:translateY(20px);transition:opacity 0.5s var(--ease-out),transform 0.5s var(--ease-out)} .reveal-stagger.revealed>*:nth-child(1) {transition-delay:0ms} .reveal-stagger.revealed>*:nth-child(2) {transition-delay:80ms} .reveal-stagger.revealed>*:nth-child(3) {transition-delay:160ms} .reveal-stagger.revealed>*:nth-child(4) {transition-delay:240ms} .reveal-stagger.revealed>*:nth-child(5) {transition-delay:320ms} .reveal-stagger.revealed>*:nth-child(6) {transition-delay:400ms} .reveal-stagger.revealed>*:nth-child(7) {transition-delay:480ms} .reveal-stagger.revealed>* {opacity:1;transform:translateY(0)} .icon-hover {transition:all var(--transition-base)} .icon-hover:hover {transform:scale(1.15);color:var(--primary)} .icon-spin:hover i {animation:rotate 0.8s ease-in-out} .icon-bounce:hover i {animation:pulse 0.4s ease-in-out} .form-honeypot {position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none} .form-error {display:none;margin-top:var(--space-5);margin-bottom:calc(var(--space-6) * -0.5);padding:var(--space-4);color:#9f2d20;background:#fff2ef;border:1px solid #efb6ad;border-radius:var(--radius-md)} .form-error.active {display:block} .form-submit button:disabled {cursor:wait;opacity:0.7} .form-submit__spinner {width:18px;height:18px;border:2px solid rgba(255,255,255,0.45);border-top-color:#fff;border-radius:var(--radius-full);animation:form-submit-spin 0.8s linear infinite} @keyframes form-submit-spin {to {transform:rotate(360deg)}} .form-success {display:none;text-align:center;padding:var(--space-12)} .form-success.active {display:block;animation:scaleIn 0.5s var(--ease-spring)} .form-success__icon {width:72px;height:72px;margin:0 auto var(--space-6);background:var(--primary-glow);border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center} .form-success__icon i {width:36px;height:36px;color:var(--primary)} .form-success h3 {font-family:var(--font-heading);font-size:var(--text-2xl);margin-bottom:var(--space-3)} .form-success p {color:var(--text-secondary)} @media (max-width:1024px) {:root {--container-padding:2rem} .rooms__grid {grid-template-columns:repeat(2,1fr);gap:var(--space-6)} .camping-card {grid-template-columns:1fr} .camping-card__image {min-height:250px} .about__grid {grid-template-columns:1fr;gap:var(--space-10)} .about__image-wrapper {max-width:500px;margin:0 auto} .contact__grid {grid-template-columns:1fr;gap:var(--space-8)} .footer__grid {grid-template-columns:1fr 1fr;gap:var(--space-8)} .detail-content__grid {grid-template-columns:1fr} .detail-sidebar {position:relative;top:0} .amenities-grid {grid-template-columns:repeat(2,1fr)} .gallery__grid {grid-template-columns:repeat(3,1fr)} .gallery__item:first-child {grid-column:span 2} .navbar__links {display:none} .navbar__toggle {display:flex} .section-header h2 {font-size:var(--text-3xl)} .hero__title {font-size:clamp(2rem,5vw,3.5rem)}} @media (max-width:768px) {:root {--container-padding:1.25rem} .section {padding:var(--space-16) 0} .rooms__grid {grid-template-columns:1fr} .about__stats {grid-template-columns:repeat(3,1fr);gap:var(--space-4)} .about__stat-number {font-size:var(--text-2xl)} .footer__grid {grid-template-columns:1fr;gap:var(--space-6)} .footer__bottom {flex-direction:column;gap:var(--space-3);text-align:center} .form-row {grid-template-columns:1fr} .review-card {flex:0 0 300px} .hero__buttons {flex-direction:column;width:100%;max-width:320px} .hero__buttons .btn {width:100%} .hero__scroll {display:none} .detail-hero__title {font-size:var(--text-3xl)} .detail-hero__meta {flex-wrap:wrap;gap:var(--space-3)} .amenities-grid {grid-template-columns:repeat(2,1fr)} .gallery__grid {grid-template-columns:repeat(2,1fr)} .gallery__item:first-child {grid-column:span 2} .booking-form__wrapper {padding:var(--space-8) var(--space-5)} .floating-cta {bottom:var(--space-4);right:var(--space-4)} .contact__form-wrapper {padding:var(--space-6)} .camping-card__content {padding:var(--space-6)} .navbar__cta {display:none} .lightbox__nav {width:40px;height:40px} .lightbox__prev {left:var(--space-3)} .lightbox__next {right:var(--space-3)}} @media (max-width:480px) {.scroll-to-top {left:var(--space-4);bottom:var(--space-4);width:44px;height:44px} .about__stats {grid-template-columns:1fr;text-align:left} .about__stat {display:flex;align-items:center;gap:var(--space-3);text-align:left} .amenities-grid {grid-template-columns:1fr} .section-header h2 {font-size:var(--text-2xl)} .price-card {padding:var(--space-6)}} @media (min-width:1440px) {:root {--container-max:1400px}} .back-nav {padding:var(--space-4) 0;background:var(--cream);border-bottom:1px solid var(--border-light)} .back-nav a {display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-heading);font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);transition:color var(--transition-fast)} .back-nav a:hover {color:var(--primary)} .back-nav a i {width:16px;height:16px} @media (prefers-reduced-motion:reduce) {html {scroll-behavior:auto} .hero__progress-bar,.hero__progress-bar.is-running {animation:none;transform:scaleX(1)} .scroll-to-top {transition:none}} @media print {.navbar,.hero__progress,.hero__scroll,.floating-cta,.scroll-to-top,.reviews__controls,.footer__social {display:none !important}} .utility-page {min-height:100vh;display:grid;place-items:center;padding:var(--space-8);background:var(--bg-body);text-align:center} .utility-page__card {width:min(100%,680px);padding:clamp(var(--space-8),7vw,var(--space-16));border:1px solid var(--border-light);border-radius:var(--radius-xl);background:var(--white);box-shadow:var(--shadow-lg)} .utility-page__logo {width:min(100%,280px);height:auto;margin-bottom:var(--space-8)} .utility-page__card p {max-width:52ch;margin:var(--space-4) auto var(--space-8);color:var(--text-muted)}
