@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInFromLeft{0%{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}@keyframes slideInFromRight{0%{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}:root{--primary-color:#117373;--secondary-color:#c65a1a;--text-dark:#1e2d3d;--text-light:#526170;--bg-light:#f9f7f4;--bg-warm:#faf8f5;--white:#ffffff;--sand:#f5f0e8;--shadow:0 2px 12px rgba(30, 45, 61, 0.08);--shadow-hover:0 6px 24px rgba(30, 45, 61, 0.12)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;line-height:1.6;color:var(--text-dark);background-color:var(--white)}h1,h2,h3{font-family:'Playfair Display',Georgia,serif;font-weight:500;line-height:1.2;letter-spacing:-.01em}h1{font-size:3.5rem}h2{font-size:2.5rem;margin-bottom:1rem}.nav-logo a,h3{font-size:1.75rem}h3{margin-bottom:.75rem}p{margin:1rem 0;color:var(--text-light)}img{max-width:100%;height:auto;display:block}.container{max-width:1200px;margin:0 auto;padding:0 2rem}.site-header{background:var(--white);box-shadow:var(--shadow);position:sticky;top:0;z-index:1000}.main-nav .container{display:flex;justify-content:space-between;align-items:center;padding:.5rem 1rem}.nav-logo a{font-family:'Playfair Display',Georgia,serif;color:var(--primary-color);text-decoration:none}.nav-menu{display:flex;list-style:none;gap:2rem;align-items:center;margin-left:auto;margin-right:2rem}.nav-actions-mobile{display:none}.nav-menu a{color:var(--text-dark);text-decoration:none;font-weight:600;transition:color .3s;padding:.5rem;border-radius:4px}.nav-menu a:focus,.nav-menu a:hover{color:var(--primary-color);outline:2px solid var(--primary-color);outline-offset:2px}.mobile-menu-toggle{display:none;flex-direction:column;gap:4px;background:0 0;border:0;cursor:pointer;padding:.5rem}.mobile-nav-controls{display:none}.mobile-header-cta{display:none}.mobile-menu-toggle span{width:25px;height:3px;background:var(--text-dark);transition:all .3s}.cta-button,.nav-actions{display:flex;align-items:center;gap:1rem}.cta-button{background:var(--secondary-color);color:var(--white);padding:.5rem 1rem;border:2px solid var(--secondary-color);border-radius:4px;text-decoration:none;font-weight:600;font-size:.9rem;letter-spacing:.3px;transition:all .3s ease;white-space:nowrap;gap:.5rem;height:40px}.cta-button svg{width:18px;height:18px;fill:currentColor}.cta-button:focus,.cta-button:hover{background:#e66100;border-color:#e66100;box-shadow:0 2px 8px rgba(211,84,0,.3);outline:0;transform:translateY(-1px)}.language-switcher{position:relative}.lang-current{background:var(--primary-color);color:var(--white);border:0;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-weight:600;text-transform:uppercase;display:flex;align-items:center;gap:.5rem;height:40px}.flag-icon{width:20px;height:15px;object-fit:cover;border-radius:2px;display:inline-block;vertical-align:middle}.lang-menu{display:none;position:absolute;top:100%;right:0;background:var(--white);box-shadow:var(--shadow);list-style:none;margin-top:.25rem;border-radius:4px;overflow:hidden;min-width:120px;z-index:1001}.language-switcher.active .lang-menu{display:block}.lang-menu a{gap:.5rem;padding:.75rem 1.5rem;color:var(--text-dark);text-decoration:none;transition:background .3s;white-space:nowrap}.lang-menu a:hover{background:var(--bg-light)}.hero,.hero-carousel{position:relative}.hero,.lang-menu a{display:flex;align-items:center}.hero{color:var(--white);overflow:hidden;flex-direction:column;justify-content:flex-start;height:100vh;min-height:600px}.hero-carousel{width:100%;flex:1;min-height:0}.carousel-nav,.hero-slide{position:absolute;display:flex;align-items:center;justify-content:center}.hero-slide{top:0;left:0;width:100%;height:100%;background-size:cover;background-position:center;opacity:0;transition:opacity 1s ease-in-out}.hero-slide::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,rgba(0,0,0,.3) 0,rgba(0,0,0,.4) 100%)}.hero-slide.active{opacity:1;z-index:1}.carousel-nav{top:50%;transform:translateY(-50%);background:rgba(255,255,255,.3);backdrop-filter:blur(5px);border:2px solid rgba(255,255,255,.8);color:var(--white);width:50px;height:50px;border-radius:50%;font-size:2rem;cursor:pointer;z-index:10;transition:all .3s;line-height:1}.carousel-nav:focus,.carousel-nav:hover{background:rgba(255,255,255,.5);border-color:var(--white);outline:2px solid rgba(255,255,255,.8);outline-offset:2px}.carousel-prev{left:2rem}.carousel-next{right:2rem}.carousel-indicators{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);display:flex;gap:1rem;z-index:10}.carousel-indicator{width:12px;height:12px;border-radius:50%;background:rgba(255,255,255,.5);border:2px solid rgba(255,255,255,.8);cursor:pointer;transition:all .3s}.carousel-indicator.active{background:var(--white);transform:scale(1.2)}.hero::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:inherit;opacity:0}.hero-content{position:relative;max-width:800px;margin:0 auto;z-index:2;padding:12rem 2rem 10rem;text-align:center}.hero-title{font-size:5rem;margin-bottom:1.5rem;color:var(--white);text-shadow:0 2px 20px rgba(0,0,0,.4);font-weight:300;letter-spacing:2px}.hero-features,.hero-subtitle{margin-bottom:3rem;font-weight:300}.hero-subtitle{font-size:1.5rem;color:rgba(255,255,255,.95);letter-spacing:.5px}.hero-features{display:flex;justify-content:center;gap:2rem;flex-wrap:wrap;font-size:1rem;color:rgba(255,255,255,.9)}.hero-feature{position:relative}.hero-feature:not(:last-child)::after{content:'·';position:absolute;right:-1.1rem;color:rgba(255,255,255,.6)}.hero-price-badge{display:inline-flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.15);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.3);border-radius:50px;padding:.5rem 1.5rem;margin-bottom:2rem;color:#fff;font-size:1rem;font-weight:500;letter-spacing:.5px}.price-season{font-size:.875rem;opacity:.8;font-weight:300}.hero-cta-group{display:flex;justify-content:center;gap:1.25rem;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:1rem 2.5rem;border-radius:50px;text-decoration:none;font-weight:400;transition:all .3s ease;border:0;cursor:pointer;font-size:1rem;white-space:nowrap;letter-spacing:.3px}.btn-primary{background:var(--secondary-color);color:var(--white);box-shadow:0 4px 20px rgba(211,84,0,.3)}.btn-primary:focus,.btn-primary:hover{background:#b84700;transform:translateY(-2px);box-shadow:0 6px 30px rgba(211,84,0,.4);outline:2px solid var(--secondary-color);outline-offset:2px}.btn-secondary-white{background:0 0;color:var(--white);border:2px solid rgba(255,255,255,.9);padding:.875rem 2.25rem}.btn-secondary-white:focus,.btn-secondary-white:hover{background:#fff;color:var(--primary-color);border-color:var(--white);outline:2px solid rgba(255,255,255,.9);outline-offset:2px}.btn svg{fill:currentColor}.villa-highlights{padding:5rem 0;background:var(--white)}.villa-highlights .section-title{text-align:center;margin-bottom:1rem}.villa-highlights .section-intro{text-align:center;max-width:700px;margin:0 auto 3rem;font-size:1.125rem;color:var(--text-light)}.amenities-section{padding:5rem 0;background:var(--bg-light)}.amenities-section .section-title{text-align:center;margin-bottom:3rem}.amenities-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:3rem;max-width:1100px;margin:0 auto}.amenity-group h3,.benefit-item h3,.highlight-card .highlight-content h3{font-family:'Playfair Display',Georgia,serif;font-size:1.25rem;color:var(--primary-color);margin-bottom:1rem;font-weight:500}.amenity-group ul{list-style:none;padding:0}.amenity-group li{padding:.5rem 0;color:var(--text-dark);position:relative;padding-left:1.5rem}.amenity-group li::before{content:'✓';position:absolute;left:0;color:var(--secondary-color);font-weight:700}.amenity-category{margin-bottom:.5rem;padding:1.5rem;background:var(--bg-light);border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.04);display:flex;flex-direction:column;height:100%}.amenity-list li{padding:.7rem 0;display:flex;align-items:flex-start;gap:.9rem;line-height:1.7}.location-section{padding:5rem 0;background:var(--white)}.location-section .section-title{text-align:center;margin-bottom:1rem}.location-section .section-intro{text-align:center;max-width:800px;margin:0 auto 3rem;font-size:1.125rem;color:var(--text-light)}.location-benefits{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;max-width:1200px;margin:0 auto 4rem;padding:2rem 0}.benefit-item{text-align:center;padding:2.5rem 1.5rem;background:var(--white);border-radius:12px;box-shadow:0 2px 12px rgba(0,0,0,.06);transition:all .3s ease;border-top:3px solid var(--primary-color)}.benefit-item:hover{transform:translateY(-8px);box-shadow:0 8px 24px rgba(0,0,0,.12);border-top-color:var(--secondary-color)}.benefit-icon{width:60px;height:60px;margin:0 auto 1.5rem;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,rgba(45,122,176,.1),rgba(45,122,176,.05));border-radius:50%;color:var(--primary-color);transition:all .3s ease}.benefit-item:hover .benefit-icon{background:linear-gradient(135deg,var(--primary-color),#1a5c8a);color:var(--white);transform:scale(1.1)}.benefit-icon svg{width:32px;height:32px;fill:currentColor}.benefit-item h3,.highlight-card .highlight-content h3{margin-bottom:.75rem}.benefit-item p{color:var(--text-light);font-size:.95rem;line-height:1.6;margin:0}.section-title{text-align:center;margin-bottom:1rem}.section-intro{text-align:center;max-width:700px;margin:0 auto 3rem;font-size:1.125rem}.highlights-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem;margin-top:3rem;max-width:1000px;margin-left:auto;margin-right:auto}.highlight-card{background:var(--white);border-radius:12px;overflow:hidden;box-shadow:var(--shadow);transition:all .3s;text-decoration:none;color:inherit;display:flex;flex-direction:column;cursor:pointer}.highlight-card:hover{transform:translateY(-8px);box-shadow:0 12px 30px rgba(0,0,0,.15)}.highlight-image{height:250px;overflow:hidden;background-color:var(--light-gray);flex-shrink:0}.highlight-image img{transition:transform .3s;display:block}.day.available.changeover:hover,.feature-image:hover img,.highlight-card:hover .highlight-image img{transform:scale(1.05)}.highlight-card .highlight-content{padding:2rem;display:flex;flex-direction:column;flex-grow:1}.highlight-card .highlight-content h3{font-size:1.35rem}.highlight-card .highlight-content p{margin-bottom:1.5rem;line-height:1.7;color:var(--text-light);font-size:1.05rem}.highlight-card .card-arrow{width:36px;height:36px;background:var(--primary-color);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--white);transition:all .3s;margin-top:auto;align-self:flex-end}.highlight-card:hover .card-arrow{background:var(--secondary-color);transform:translateX(4px)}.testimonials-section{padding:5rem 0;background:var(--white)}.testimonials-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:2.5rem;margin-top:3rem}.testimonial-card{background:var(--bg-light);border-radius:12px;padding:2rem;box-shadow:var(--shadow);transition:all .3s;border-top:4px solid var(--primary-color);display:flex;flex-direction:column;min-height:250px}.testimonial-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-hover)}.testimonial-quote{font-size:1.05rem;line-height:1.7;color:var(--text-dark);margin-bottom:1.5rem;font-style:italic;border:0;flex-grow:1}.testimonial-author{display:block;margin-top:auto;padding-top:1rem;border-top:1px solid rgba(0,0,0,.1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.testimonial-author strong{color:var(--text-dark);font-weight:700}.testimonial-author,.testimonial-author span{color:var(--text-light);font-size:.95rem}.sticky-booking-bar{position:fixed;bottom:0;left:0;right:0;background:rgba(255,255,255,.98);backdrop-filter:blur(10px);box-shadow:0-2px 20px rgba(0,0,0,.1);z-index:999;transform:translateY(100%);transition:transform .3s ease;padding:1rem 0;border-top:1px solid rgba(0,0,0,.05)}.sticky-booking-bar.visible{transform:translateY(0)}.sticky-booking-content{display:flex;justify-content:space-between;align-items:center;gap:1.5rem}.site-footer .footer-content,.sticky-booking-info{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}.sticky-booking-info strong{font-family:'Playfair Display',Georgia,serif;font-size:1.15rem;color:var(--text-dark);font-weight:500}.btn-sticky{padding:.75rem 2rem;font-size:1.125rem}.site-footer{background:var(--text-dark);color:rgba(255,255,255,.7);padding:1.5rem 0;font-size:.875rem}.site-footer .footer-content{justify-content:space-between;gap:1rem}.site-footer p{margin:0;color:rgba(255,255,255,.7)}.site-footer a{color:rgba(255,255,255,.9);text-decoration:none;transition:color .3s ease}.site-footer a:hover{color:var(--white);text-decoration:underline}.floating-whatsapp-button{position:fixed;right:1.25rem;bottom:1.25rem;width:56px;height:56px;min-width:48px;min-height:48px;border-radius:50%;background:#25d366;color:var(--white);display:inline-flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(37,211,102,.35);text-decoration:none;z-index:998;transition:transform .25s ease,opacity .25s ease,box-shadow .25s ease}.floating-whatsapp-button svg{width:30px;height:30px}.floating-whatsapp-button:focus,.floating-whatsapp-button:hover{transform:translateY(-2px) scale(1.03);box-shadow:0 12px 28px rgba(37,211,102,.45);outline:0}.floating-whatsapp-button.is-hidden{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(14px)}@media (max-width:768px){.nav-menu{display:none}.mobile-menu-toggle{display:flex}.mobile-nav-controls{gap:.5rem;margin-left:auto}.mobile-lang-switcher,.mobile-nav-controls{display:flex;align-items:center}.mobile-header-cta{display:inline-flex;height:36px;font-size:.75rem;padding:.4rem .6rem;gap:.35rem}.mobile-header-cta svg{width:14px;height:14px}.mobile-lang-switcher .language-switcher .lang-current{background:0 0;border:0;padding:.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.mobile-lang-switcher .language-switcher .lang-menu{position:absolute;top:100%;right:0;background:var(--white);box-shadow:var(--shadow);list-style:none;margin-top:.25rem;border-radius:4px;min-width:120px;padding:.5rem 0;z-index:1001}.mobile-lang-switcher .language-switcher .lang-menu a{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;color:var(--text-dark);text-decoration:none;font-size:.9rem}.mobile-lang-switcher .language-switcher .lang-menu a:hover{background:var(--bg-light)}.nav-actions{gap:.75rem}.cta-button{padding:.5rem 1rem;font-size:.85rem}h1{font-size:2.5rem}.hero{padding:0}.hero-title{font-size:2.5rem;letter-spacing:1px;word-break:break-word;hyphens:auto}.hero-features,.hero-subtitle{font-size:1.125rem;margin-bottom:2rem}.hero-features{gap:1rem;font-size:.9rem;display:none}.hero-feature:not(:last-child)::after{right:-.6rem}.hero-cta-group{gap:1rem}.btn-secondary-white{display:none}.btn{padding:.875rem 2rem;font-size:.95rem;justify-content:center;text-align:center;min-height:48px}h2{font-size:2rem}.amenities-grid,.highlights-grid{grid-template-columns:1fr}.amenities-grid{gap:2rem}.location-benefits{grid-template-columns:repeat(2,1fr);gap:1.5rem}.footer-content,.site-footer .footer-content{flex-direction:column;text-align:center;gap:.5rem}.footer-content{gap:2rem}.container{padding:0 1rem}.main-nav .container{flex-wrap:wrap}.nav-actions{order:3;width:100%;justify-content:space-between;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--bg-light);display:none}.cta-button{flex:1;text-align:center;justify-content:center}.floating-whatsapp-button{right:1rem;bottom:1rem;width:64px;height:64px}}@media (max-width:480px){.hero-content{padding:10rem 1.5rem 8rem}.hero-title{font-size:2rem;letter-spacing:.5px;margin-bottom:1rem}.hero-features,.hero-subtitle{font-size:1rem;margin-bottom:1.5rem}.hero-features{gap:.75rem;font-size:.85rem;flex-direction:column;align-items:center}.hero-feature:not(:last-child)::after{display:none}.hero-cta-group{flex-direction:column;gap:.75rem;width:100%}.btn,.cta-button{justify-content:center}.btn{width:100%;max-width:280px;padding:.75rem 1.5rem;font-size:.9rem;white-space:normal;text-align:center;min-height:48px;line-height:1.4}h2{font-size:1.75rem}h3{font-size:1.5rem}.cta-button{padding:.5rem .75rem;font-size:.8rem}.lang-current{padding:.5rem .75rem;font-size:.85rem}.location-benefits{grid-template-columns:1fr;gap:1.25rem}.benefit-item{padding:2rem 1.25rem}}.villa-hero{position:relative;height:50vh;min-height:400px;display:flex;align-items:center;justify-content:center}.villa-hero-image{background-size:cover;background-position:center}.villa-hero-image,.villa-hero-picture{position:absolute;top:0;left:0;width:100%;height:100%}.highlight-image img,.villa-hero-picture img{width:100%;height:100%;object-fit:cover}.villa-hero-overlay{position:relative;z-index:1;background:rgba(0,0,0,.4);width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff}.villa-hero-title{font-size:3.5rem;margin-bottom:1rem;color:#fff}.villa-hero-subtitle{font-size:1.5rem;color:rgba(255,255,255,.95)}.villa-introduction,.villa-section{padding:4rem 0}.villa-introduction{background:var(--bg-light)}.villa-intro-content{max-width:900px;margin:0 auto;text-align:center}.intro-text{font-size:1.125rem;line-height:1.8;margin:2rem 0}.intro-highlights{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin:2rem 0;text-align:left}.intro-highlight-item{display:flex;align-items:flex-start;gap:.75rem;background:#fff;padding:1.25rem;border-radius:8px;box-shadow:var(--shadow)}.highlight-icon{color:var(--primary-color);font-size:1.5rem;flex-shrink:0}.intro-cta{margin-top:2rem}.villa-content-grid{display:grid;gap:3rem;margin-top:2rem}.villa-feature-block{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:start}.villa-feature-block:nth-child(2n){direction:rtl}.villa-feature-block:nth-child(2n)>*{direction:ltr}.feature-image{width:100%;height:400px;overflow:hidden;border-radius:12px;box-shadow:var(--shadow)}.feature-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.feature-content h3{color:var(--primary-color);margin-bottom:1rem}.feature-details{list-style:none;margin-top:1.5rem}.feature-details li{padding:.5rem 0;padding-left:1.5rem;position:relative}.feature-details li::before{content:'✓';position:absolute;left:0;color:var(--primary-color);font-weight:700}.bedrooms-grid{display:flex;flex-direction:column;gap:0;margin-top:2rem}.bedrooms-row{display:flex;gap:2rem;margin-bottom:2rem;align-items:stretch}.bedrooms-row:last-child,.contact-details li:last-child,.extra-costs-list li:last-child{margin-bottom:0}.bedrooms-row .bedroom-card{flex:1 1 0;display:flex;flex-direction:column;height:100%}@media (max-width:900px){.bedrooms-row{flex-direction:column;gap:2rem}}.bedroom-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:var(--shadow);transition:all .3s ease}.bedroom-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-5px)}.bedroom-image{width:100%;height:200px;overflow:hidden}.bedroom-image img{width:100%;height:100%;object-fit:cover}.bedroom-content{padding:1.5rem}.bedroom-bed-type{color:var(--text-light);font-size:.95rem;margin:.5rem 0 1rem}.bedroom-features{list-style:none;font-size:.9rem}.bedroom-features li{padding:.4rem 0;padding-left:1.25rem;position:relative;color:var(--text-light)}.bedroom-features li::before{content:'•';position:absolute;left:0;color:var(--primary-color)}.bedrooms-summary{margin-top:2rem;padding:1.5rem;background:var(--bg-light);border-radius:8px;text-align:center}.amenities-categories{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem;margin-top:2rem}.amenity-category h3{font-size:1.25rem;color:var(--primary-color);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid var(--bg-light)}.amenity-list{list-style:none}@media (max-width:900px){.amenities-categories{grid-template-columns:1fr}}.villa-cta-section{background:linear-gradient(135deg,var(--primary-color),#1a5c8a);padding:5rem 0;text-align:center;color:var(--white)}.villa-cta-section h2{color:var(--white);margin-bottom:1rem;font-size:2.5rem}.villa-cta-content p{color:rgba(255,255,255,.9);font-size:1.125rem;max-width:700px;margin:0 auto 2rem}.villa-cta-section .cta-buttons{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.btn-large{padding:1rem 2.5rem;font-size:1.125rem}@media (max-width:768px){.villa-hero-title{font-size:2.5rem}.villa-hero-subtitle{font-size:1.125rem}.villa-feature-block{grid-template-columns:1fr}.villa-feature-block:nth-child(2n){direction:ltr}.feature-image{height:300px}.amenities-categories,.bedrooms-grid{grid-template-columns:1fr}.villa-cta-section .cta-buttons{flex-direction:column;align-items:stretch}}.page-hero{background:linear-gradient(135deg,var(--primary-color),#1a5c8a);color:var(--white);padding:4rem 0 3rem;text-align:center}.page-title{font-size:3rem;margin-bottom:1rem;color:var(--white)}.page-subtitle{font-size:1.25rem;color:rgba(255,255,255,.9);margin:0}.calendar-legend{display:flex;gap:2rem;justify-content:center;margin:2rem 0 3rem;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:.5rem;font-weight:600}.legend-color{width:20px;height:20px;border-radius:4px;border:1px solid #ddd}.legend-color.available{background-color:#27ae60}.legend-color.last-minute{background:#d5f4e6;border-color:#27ae60;position:relative}.legend-color.last-minute::after{content:'🔥';position:absolute;top:-2px;right:0;font-size:.6rem}.legend-color.booked{background-color:#e74c3c}.calendar-loading{text-align:center;padding:3rem;font-size:1.25rem;color:var(--text-light)}.calendar-error{background-color:#ffe6e6;border:1px solid #e74c3c;color:#c0392b;padding:1.5rem;border-radius:8px;text-align:center;margin:2rem 0}.calendar-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:2rem}.calendar-month{background:var(--white);border:1px solid #e1e8ed;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px rgba(0,0,0,.08);transition:box-shadow .3s}.calendar-month:hover{box-shadow:0 4px 16px rgba(0,0,0,.12)}.month-header{font-size:1.25rem;font-weight:700;color:var(--primary-color);margin-bottom:1rem;text-align:center;padding-bottom:.75rem;border-bottom:2px solid #e1e8ed;display:flex;align-items:center;justify-content:center;gap:.5rem;position:relative}.month-title{flex:1;text-align:center}.month-nav-btn{background:0 0;border:0;color:var(--primary-color);font-size:1.75rem;width:32px;height:32px;border-radius:50%;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;line-height:1;padding:0}.month-nav-btn:hover{background:rgba(45,122,176,.1);color:#1a5c8a}.month-nav-btn:active{transform:scale(.9)}.month-nav-btn.prev{margin-right:auto}.month-nav-btn.next{margin-left:auto}.weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:.5rem}.weekday{text-align:center;font-size:.75rem;font-weight:600;color:var(--text-light);padding:.5rem 0;text-transform:uppercase}.days-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:6px;font-size:.9rem;font-weight:500;transition:all .2s;cursor:default}.day.empty{background:0 0}.day.past{color:#bdc3c7;background:#f8f9fa}.day.available{background:#d5f4e6;color:#27ae60;font-weight:600}.day.available:hover{background:#a8e6cf;transform:scale(1.05)}.day.available.last-minute{background:#d5f4e6;color:#27ae60;position:relative;font-weight:700}.day.available.last-minute::before{content:'🔥';position:absolute;top:2px;right:2px;font-size:.7rem;opacity:.8}.day.available.last-minute:hover{background:#a8e6cf;transform:scale(1.05)}.day.available.last-minute.in-range,.day.available.last-minute.selected{background:var(--primary-color)!important;color:#fff}.day.available.last-minute.in-range::before,.day.available.last-minute.selected::before{opacity:.5}.day.booked{background:#fadbd8;color:#e74c3c;font-weight:600;position:relative}.day.booked::after{content:'';position:absolute;width:2px;height:70%;background:#e74c3c;transform:rotate(45deg)}.day.available.changeover{background:linear-gradient(135deg,#d5f4e6 50%,#fadbd8 50%);cursor:pointer}.day.available.changeover.last-minute{background:linear-gradient(135deg,#d5f4e6 50%,#fadbd8 50%)}.day.available.changeover.selected{background:var(--primary-color)!important}.day.available.changeover.last-minute.selected{background:var(--primary-color)!important}.day.available.changeover.in-range{background:linear-gradient(135deg,rgba(45,122,176,.3) 50%,rgba(231,76,60,.2) 50%)!important}@media (max-width:1024px){.calendar-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.page-title{font-size:2.5rem}.page-subtitle{font-size:1.1rem}.calendar-grid{grid-template-columns:1fr}.calendar-legend{gap:1rem}.day{font-size:.85rem}.weekday{font-size:.7rem}}@media (max-width:480px){.page-hero{padding:3rem 0 2rem}.page-title{font-size:2rem}.calendar-month{padding:1rem}.month-header{font-size:1.1rem}.month-nav-btn{font-size:1.5rem;width:28px;height:28px}}.calendar-section{padding:3rem 0;background:var(--bg-light);overflow:hidden;transition:max-height .55s ease,opacity .35s ease,padding .35s ease,margin .35s ease;will-change:max-height,opacity}.calendar-section.dates-selected{opacity:0;max-height:0;padding:0;margin:0;overflow:hidden;pointer-events:none}.calendar-card{background:var(--white);border-radius:12px;padding:2rem;box-shadow:var(--shadow)}.calendar-card .card-header{text-align:center;margin-bottom:1.5rem}.calendar-card .card-header h2{font-size:1.75rem;margin-bottom:.5rem;color:var(--primary-color)}.calendar-card .card-header p{color:var(--text-light);max-width:600px;margin:0 auto}.calendar-card .calendar-legend{margin:1.5rem 0}.booking-section{padding:3rem 0 4rem;background:var(--white)}.booking-two-column{display:grid;grid-template-columns:1fr 480px;gap:2.5rem;align-items:start}.booking-highlights-column{background:var(--bg-light);border-radius:12px;padding:2rem}.booking-details-card h2,.booking-form-card h2,.booking-highlights-column h2{font-size:1.5rem;margin-bottom:1rem;color:var(--primary-color)}@media (max-width:768px){body.booking-step-2 #booking-highlights-column,body.booking-step-2 .calendar-section{display:none}body.booking-step-2 .booking-section{padding-bottom:4rem}body.booking-step-2 .booking-details-card{padding-bottom:2.75rem}}.highlights-list{display:flex;flex-direction:column;gap:.75rem}.highlight-item{display:flex;align-items:flex-start;gap:.875rem;padding:1rem;background:var(--white);border-radius:12px;transition:all .2s ease}.highlight-item:hover{box-shadow:0 4px 12px rgba(0,0,0,.08)}.highlight-icon-wrapper{width:40px;height:40px;min-width:40px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,rgba(45,122,176,.15),rgba(45,122,176,.05));border-radius:50%;color:var(--primary-color)}.highlight-icon-wrapper svg{width:20px;height:20px;stroke:currentColor}.highlight-icon-wrapper .material-symbols-rounded{font-size:24px}.booking-highlights-column .highlight-content{flex:1;min-width:0}.booking-highlights-column .highlight-content h3{font-size:1.15rem;color:var(--primary-color);margin-bottom:.2rem;font-family:'Playfair Display',Georgia,serif;font-weight:500}.booking-highlights-column .highlight-content p{color:var(--text-light);font-size:.95rem;line-height:1.45;margin:0}.booking-form-column{position:sticky;top:100px}.booking-form-card{background:var(--white);border-radius:12px;padding:2rem;box-shadow:var(--shadow);border:2px solid var(--bg-light);transition:border-color .3s ease}.booking-form-card:focus-within{border-color:var(--primary-color)}.booking-form-card .booking-intro{margin-bottom:1.25rem;color:var(--text-light);font-size:.95rem}@media (max-width:1024px){.booking-two-column{grid-template-columns:1fr;gap:2rem}.booking-form-column{position:static;order:-1}.booking-highlights-column{order:1}}@media (max-width:768px){.calendar-section{padding:2rem 0}.booking-section{padding:2rem 0 3rem}.booking-form-card,.booking-highlights-column,.calendar-card{padding:1.5rem}.highlight-item{padding:.875rem}}.booking-intro{margin-bottom:1.5rem;color:var(--text-light)}.booking-form-container{display:flex;flex-direction:column;gap:1.5rem}.date-selection-group{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.25rem 1.5rem;border-radius:12px;border:1px dashed rgba(45,122,176,.4);background:rgba(45,122,176,.06);flex-wrap:wrap}@media (max-width:768px){.date-selection-group{padding:.875rem 1rem}}.date-selection-message{display:flex;align-items:center;gap:1rem}.date-selection-message .material-symbols-rounded{font-size:1.75rem;color:var(--primary-color)}.date-selection-title{margin:0 0 .25rem;font-weight:600;color:var(--primary-color)}.date-selection-status{margin:0;color:var(--text-dark);font-size:.95rem;display:flex;align-items:center;gap:.5rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:600;color:var(--text-dark);font-size:.9rem}.form-group input{padding:.75rem 1rem;border:2px solid #e1e8ed;border-radius:8px;font-size:1rem;background:var(--bg-light);color:var(--text-dark);cursor:pointer}.booking-details-card select:focus,.booking-details-card textarea:focus,.form-group input:focus{outline:0;border-color:var(--primary-color);background:var(--white)}.form-group input::placeholder{color:var(--text-light);font-size:.9rem}.btn-clear-dates{background:var(--white);border:1px solid var(--primary-color);color:var(--primary-color);font-size:.9rem;cursor:pointer;padding:.4rem 1rem;border-radius:999px;font-weight:600;display:inline-flex;align-items:center;gap:.35rem;transition:background .3s,color .3s}.btn-clear-dates:hover{background:var(--primary-color);color:var(--white)}.compact-calendar-view{border:2px solid var(--primary-color);border-radius:12px;padding:1.5rem;background:linear-gradient(135deg,rgba(45,122,176,.05),rgba(45,122,176,.02));margin-bottom:1.5rem}@media (max-width:768px){.compact-calendar-view{padding:1rem}}.compact-calendar-header,.selected-dates-display{display:flex;flex-direction:column;gap:1rem}.selected-dates-display{gap:.75rem;flex:1}.date-pill-group{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.compact-pill-group{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.compact-pill-group::-webkit-scrollbar{display:none}.compact-pill-group .date-pill{flex:0 0 auto;background:rgba(45,122,176,.08);border-color:transparent}.date-pill{background:var(--white);border:1px solid rgba(45,122,176,.3);border-radius:999px;padding:.6rem 1rem;min-width:140px;display:flex;flex-direction:column;gap:.15rem}.date-pill--compact{padding:.35rem .75rem;min-width:auto}.pill-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-light)}.number-input input,.pill-value{font-size:1rem;font-weight:600;color:var(--primary-color)}.date-pill-separator{color:var(--text-light);font-weight:600}.selected-nights-row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;justify-content:space-between}.selected-nights-display{flex:1}.nights-pill{background:rgba(17,115,115,.1);border-color:rgba(17,115,115,.2);min-width:auto;padding:.4rem 1rem}.btn-expand-calendar{background:var(--primary-color);color:var(--white);border:0;border-radius:8px;padding:.75rem 1.25rem;font-size:.9rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:all .3s ease;white-space:nowrap}.selected-nights-row .btn-expand-calendar{flex-shrink:0}.btn-expand-calendar:hover{background:var(--secondary-color);transform:translateY(-1px);box-shadow:0 4px 12px rgba(211,84,0,.3)}.btn-expand-calendar .material-symbols-rounded{font-size:1.1rem}.guest-selection-group{border-top:1px solid #e1e8ed;padding-top:1.5rem}.guest-selection-group h3{font-size:1.1rem;color:var(--text-dark);margin-bottom:1rem;font-family:'Nunito Sans',sans-serif;font-weight:600}.guest-row{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;align-items:end}.guest-input{display:flex;flex-direction:column;gap:.4rem}.guest-input label{font-weight:500;color:var(--text-dark);font-size:.8rem;line-height:1.3;min-height:2.1em}.number-input{display:flex;align-items:center;border:2px solid #e1e8ed;border-radius:8px;overflow:hidden;background:var(--bg-light)}.number-input input{width:100%;text-align:center;border:0;padding:.4rem;background:0 0;color:var(--text-dark);-moz-appearance:textfield}.number-input input::-webkit-inner-spin-button,.number-input input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.number-btn{width:36px;height:36px;border:0;background:var(--primary-color);color:var(--white);font-size:1.1rem;font-weight:700;cursor:pointer;transition:background .3s;display:flex;align-items:center;justify-content:center;flex-shrink:0}.number-btn:hover{background:#1a5c8a}.number-btn:active{transform:scale(.95)}.guest-note{font-size:.85rem;color:var(--text-light);margin-top:.75rem;font-style:italic}.capacity-warning,.guest-warning{border-radius:6px;padding:.75rem 1rem;margin-top:.75rem;font-size:.85rem;animation:fadeIn .3s ease}.guest-warning{background:#fff3cd;border:1px solid #ffc107;color:#856404}.guest-warning.error{background:#f8d7da;border-color:#f5c6cb;color:#721c24}.guest-warning.info{background:#e7f3ff;border-color:#b8daff;color:#004085}.capacity-warning{background:#e7f3ff;border:1px solid #b8daff;color:#004085;display:flex;align-items:flex-start;gap:.5rem;line-height:1.5}.capacity-warning .material-symbols-rounded{font-size:1.1rem;flex-shrink:0;margin-top:.1rem}.booking-footnotes{border-top:1px solid #e1e8ed;margin-top:1.5rem;padding-top:1rem}.booking-footnotes p{font-size:.8rem;color:var(--text-light);margin:.25rem 0;line-height:1.4}.booking-footnotes sup{color:var(--primary);font-weight:600;margin-right:.25rem}.extra-costs-link{color:var(--primary-color);text-decoration:underline;cursor:pointer;transition:color .2s}.extra-costs-link:hover{color:var(--secondary-color)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.6);backdrop-filter:blur(4px);z-index:10000;display:flex;align-items:center;justify-content:center;padding:1rem;animation:fadeIn .2s ease}.modal-content{background:var(--white);border-radius:16px;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;padding:2rem;position:relative;box-shadow:0 20px 60px rgba(0,0,0,.3);animation:slideUp .3s ease}.modal-close{position:absolute;top:1.5rem;right:1.5rem;background:var(--bg-light);border:0;font-size:1.5rem;color:var(--text-light);cursor:pointer;width:32px;height:32px;border-radius:50%;transition:all .2s;display:grid;place-items:center}.modal-close:hover{background:#e1e8ed;color:var(--text-dark)}.modal-content h3{font-family:'Playfair Display',Georgia,serif;font-size:1.5rem;color:var(--primary-color);margin-bottom:1rem;padding-right:2.5rem;font-weight:500}.modal-intro{color:var(--text-light);margin-bottom:1.5rem;font-size:.95rem}.extra-costs-list{list-style:none;padding:0;margin:0}.extra-costs-list li{padding:1rem;background:var(--bg-light);border-radius:8px;margin-bottom:.75rem;border-left:3px solid var(--primary-color)}.extra-costs-list strong{display:block;color:var(--text-dark);font-size:1rem;margin-bottom:.5rem}.extra-costs-list p{margin:0;color:var(--text-light);font-size:.9rem;line-height:1.5}.modal-actions{margin-top:1.5rem;text-align:center}.modal-actions .btn{min-width:150px}@media (max-width:480px){.modal-content{padding:1.5rem;border-radius:12px}.modal-content h3{font-size:1.25rem}.extra-costs-list li{padding:.875rem}}.price-breakdown-section{border-top:1px solid #e1e8ed;padding-top:1.5rem}.price-breakdown-section h3{font-size:1.1rem;color:var(--text-dark);margin-bottom:1rem;font-family:'Nunito Sans',sans-serif;font-weight:600}.price-breakdown{background:var(--bg-light);border-radius:8px;padding:1.25rem}.price-placeholder{text-align:center;padding:1rem}.price-placeholder p{color:var(--text-light);margin:0;font-style:italic}.price-summary{display:flex;flex-direction:column;gap:.75rem}.price-row{display:flex;justify-content:space-between;align-items:center;font-size:.95rem;color:var(--text-dark)}.price-row span:first-child{color:var(--text-light)}.price-row span:last-child{font-weight:600}.price-row.subtotal,.price-row.total{padding-top:.75rem;border-top:1px dashed #d1d9e0;font-weight:600}.price-row.subtotal span,.price-row.total span{color:var(--text-dark)}.price-row.total{border-top:1px solid #d1d9e0;font-weight:700;font-size:1rem}.price-row.deposit{color:var(--text-light);font-style:italic}.price-row.discount{color:#27ae60;font-weight:600}.price-row.discount span:last-child{color:#27ae60}.price-row.discount.last-minute-discount{color:var(--secondary-color);font-weight:700;background-color:rgba(198,90,26,.08);padding:.5rem .75rem;margin:.25rem -.75rem;border-radius:4px;border-left:3px solid var(--secondary-color)}.price-row.discount.last-minute-discount span:last-child{color:var(--secondary-color)}.price-row.grand-total{padding-top:1rem;margin-top:.5rem;border-top:2px solid var(--primary-color);font-weight:700;font-size:1.15rem}.price-row.grand-total span{color:var(--primary-color)}.payment-schedule{margin-top:1rem;padding:1rem;background:#f0f7f4;border-radius:8px;border-left:3px solid var(--primary-color)}.payment-schedule-title{font-weight:600;font-size:.9rem;color:var(--text-dark);margin-bottom:.75rem}.payment-schedule .price-row{padding:.35rem 0;font-size:.9rem}.payment-schedule .price-row span{color:var(--text-dark);font-weight:400}.booking-actions{margin-top:1rem}.booking-actions .btn{width:100%;justify-content:center;padding:1rem 2rem;font-size:1.1rem}.booking-actions .btn:disabled{background:#b0b8c1;cursor:not-allowed;box-shadow:none}.booking-actions .btn:disabled:hover,.contact-form button[type=submit]:disabled:hover{transform:none;background:#b0b8c1}.day.selectable{cursor:pointer}.day.selectable:hover{background:#a8e6cf;transform:scale(1.1)}.day.selected{background:var(--primary-color)!important;color:var(--white)!important;font-weight:700;transform:scale(1.05)}.day.selected.arrival{border-radius:6px 0 0 6px}.day.selected.departure{border-radius:0 6px 6px 0}.day.in-range{background:rgba(45,122,176,.2)!important;color:var(--primary-color)!important;border-radius:0}@media (max-width:768px){.form-row,.guest-row{grid-template-columns:1fr}.guest-row{gap:1.25rem}.guest-input{flex-direction:row;align-items:center;justify-content:space-between}.guest-input label{flex:1}.number-input{width:140px;flex-shrink:0}}@media (max-width:480px){.price-row{font-size:.9rem}.price-row.grand-total{font-size:1rem}}.mobile-booking-summary{background:var(--primary-color);color:var(--white);padding:1rem 0;position:sticky;top:70px;z-index:100;box-shadow:0 4px 8px rgba(0,0,0,.1);transition:padding .3s ease}.mobile-booking-summary.compact{padding:.5rem 0}.mobile-booking-summary.compact .mobile-summary-card{padding:.5rem 1rem}.mobile-booking-summary.compact .mobile-summary-header{display:none}.mobile-summary-row.mobile-summary-condensed{display:none;font-weight:600}.mobile-booking-summary.compact .mobile-summary-row{margin-bottom:0;padding:0;border:0;display:none}.mobile-booking-summary.compact .mobile-summary-row.mobile-summary-condensed{display:flex;flex-direction:column;align-items:flex-start;width:100%}.mobile-booking-summary.compact .mobile-condensed-nights{font-weight:600;opacity:.9}.mobile-booking-summary.compact .mobile-condensed-total{font-weight:700;font-size:1.1rem}.mobile-condensed-info{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.75rem}.mobile-condensed-dates{font-size:.8rem;opacity:.85;letter-spacing:.01em}.mobile-condensed-edit-link{margin-top:.4rem;font-size:.8rem;color:rgba(255,255,255,.85);text-decoration:underline;align-self:flex-start}.mobile-condensed-edit-link:focus-visible,.mobile-condensed-edit-link:hover{color:var(--white);outline:0}.mobile-summary-card{background:rgba(255,255,255,.1);border-radius:8px;padding:1rem;backdrop-filter:blur(10px)}.mobile-summary-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.mobile-summary-header-info{display:flex;align-items:center;gap:.5rem}.mobile-summary-header .material-symbols-rounded{font-size:1.25rem}.mobile-summary-header h3{margin:0;font-size:1rem;font-weight:600;color:var(--white)}.mobile-summary-toggle{border:1px solid rgba(255,255,255,.5);border-radius:999px;background:rgba(255,255,255,.08);color:var(--white);width:34px;height:34px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s ease,border-color .2s ease}.mobile-summary-toggle:focus-visible,.mobile-summary-toggle:hover{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.8);outline:0}.mobile-summary-toggle .material-symbols-rounded{font-size:1.2rem}.mobile-summary-content{font-size:.9rem;line-height:1.5}.mobile-summary-row{display:flex;justify-content:space-between;margin-bottom:.25rem;align-items:center}.mobile-summary-row.mobile-summary-dates{flex-direction:column;align-items:flex-start;gap:.5rem}.mobile-date-list{width:100%;display:flex;flex-direction:column;gap:.35rem}.mobile-date-line{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem}.mobile-date-label{font-size:.85rem;opacity:.85}.mobile-date-value{font-size:.95rem;font-weight:700;color:var(--white)}.summary-dates-block{width:100%;padding-bottom:.75rem;margin-bottom:.5rem;border-bottom:1px solid #e1e8ed}.summary-date-list{width:100%;display:flex;flex-direction:column;gap:.5rem}.summary-date-line{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem}.summary-date-label{font-size:.85rem;color:var(--text-light);text-transform:none}.summary-date-value{font-size:1.05rem;font-weight:700;color:var(--text-dark);text-align:left}@media (min-width:769px){.summary-date-line{flex-direction:row;justify-content:space-between;align-items:center}}.mobile-edit-link{color:var(--white);text-decoration:underline;font-size:.85rem;opacity:.9}.mobile-edit-link:hover{opacity:1}.mobile-summary-row.mobile-summary-total{margin-bottom:0;padding-top:.5rem;border-top:1px solid rgba(255,255,255,.3);font-weight:600}@media (min-width:769px){.mobile-booking-summary{display:none!important}}@media (max-width:768px){#booking-summary-view .step-indicator,.booking-details-card .step-indicator,body.booking-step-2 #booking-highlights-column,body.booking-step-2 .calendar-section{display:none}.booking-actions,.booking-details-card .form-actions{display:flex;justify-content:center}.booking-actions .btn,.booking-details-card .btn{width:100%;max-width:300px}}@media (max-width:640px){.date-selection-group{flex-direction:column;align-items:flex-start;padding:1rem}.btn-clear-dates{width:100%;justify-content:center}.booking-section .container,.calendar-section .container,.mobile-booking-summary .container{padding-left:.75rem;padding-right:.75rem}.booking-details-card,.booking-form-card,.calendar-card{padding:1.25rem}body.booking-step-2{overflow-x:hidden}}.step-indicator{display:flex;align-items:center;gap:.5rem;background:linear-gradient(135deg,rgba(45,122,176,.1),rgba(45,122,176,.05));padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;border-left:3px solid var(--primary-color)}.step-indicator .material-symbols-rounded{color:var(--primary-color);font-size:1.25rem}.step-indicator span:last-child{font-size:.9rem;font-weight:600;color:var(--primary-color)}#booking-summary-view{animation:slideInFromLeft .4s ease}.summary-details{background:var(--white);border-radius:8px;padding:1.25rem;margin-bottom:1rem}.summary-row{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0}.summary-row:last-child{padding-bottom:0}.summary-label{font-size:.95rem;color:var(--text-light);display:flex;align-items:center;gap:.5rem}.summary-label .material-symbols-rounded{font-size:1.1rem;color:var(--primary-color)}.summary-value{font-weight:600;color:var(--text-dark);font-size:1rem}.summary-row.total{padding-top:1rem;margin-top:.5rem;border-top:2px solid var(--primary-color)}.summary-row.total .summary-label{font-size:1.05rem;font-weight:600;color:var(--primary-color)}.btn-edit-booking,.summary-row.total .summary-value{font-size:1.25rem;color:var(--primary-color)}.btn-edit-booking{width:100%;padding:.75rem 1rem;background:0 0;border:2px solid var(--primary-color);border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:1rem}.btn-edit-booking:hover{background:var(--primary-color);color:var(--white)}.btn-edit-booking .material-symbols-rounded{font-size:1.1rem}.booking-details-card{background:var(--white);border-radius:12px;padding:2rem;box-shadow:var(--shadow);border:2px solid var(--bg-light);transition:border-color .3s ease;animation:slideInFromRight .4s ease}.booking-details-card:focus-within{border-color:var(--primary-color)}.booking-details-card .booking-intro{margin-bottom:1.5rem;color:var(--text-light);font-size:.95rem}.booking-details-card .form-group{margin-bottom:1rem}.booking-details-card .form-actions{margin-top:1.5rem}.booking-details-card .checkbox-group{display:flex;flex-direction:row;align-items:flex-start;gap:.75rem;padding:.75rem 1rem;border-radius:12px;border:1px solid #d9e3eb;background:#fdfbf8;box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}.booking-details-card .checkbox-group input[type=checkbox]{appearance:none;-webkit-appearance:none;margin-top:.15rem;flex-shrink:0;width:20px;height:20px;border-radius:4px;border:2px solid rgba(17,115,115,.6);background:var(--white);display:inline-flex;align-items:center;justify-content:center;position:relative;cursor:pointer;transition:background .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease}.booking-details-card .checkbox-group input[type=checkbox]::after{content:'';position:absolute;width:8px;height:14px;border-right:2px solid var(--white);border-bottom:2px solid var(--white);transform:rotate(45deg) scale(0);transform-origin:center;transition:transform .2s ease}.booking-details-card .checkbox-group input[type=checkbox]:checked{background:var(--primary-color);border-color:var(--primary-color);box-shadow:0 6px 20px rgba(17,115,115,.25);transform:translateY(-1px)}.booking-details-card .checkbox-group input[type=checkbox]:checked::after{transform:rotate(45deg) scale(1)}.booking-details-card .checkbox-group input[type=checkbox]:focus-visible{outline:2px solid var(--secondary-color);outline-offset:2px}.booking-details-card .checkbox-group label{flex:1;font-weight:400;font-size:.92rem;cursor:pointer;line-height:1.5;color:var(--text-dark)}.booking-details-card select,.booking-details-card textarea{padding:.75rem 1rem;border:2px solid #e1e8ed;border-radius:8px;font-size:1rem;background:var(--bg-light);color:var(--text-dark);width:100%}.booking-details-card select{cursor:pointer}.booking-details-card textarea{font-family:'Nunito Sans',sans-serif;resize:vertical}.booking-details-card.transitioning,.booking-form-card.transitioning,.booking-highlights-column.transitioning{animation:fadeOut .2s ease}@media (max-width:768px){.mobile-booking-summary{top:60px}.booking-details-card{padding:1.5rem}.summary-details{padding:1rem}.step-indicator{padding:.625rem .875rem}.step-indicator span:last-child{font-size:.85rem}}.contact-hero{background:linear-gradient(135deg,var(--primary-color),#1a5a8a);color:var(--white);padding:6rem 0 4rem;text-align:center}.contact-hero h1{color:var(--white);margin-bottom:.5rem;font-size:2.5rem}.contact-hero .hero-subtitle{color:rgba(255,255,255,.9);font-size:1.25rem;margin:0}.contact-content{padding:4rem 0}.contact-info{background:var(--bg-light);padding:2rem;border-radius:12px;margin-top:2rem}.contact-info h3{font-size:1.25rem;margin-bottom:1.5rem}.contact-details{list-style:none;padding:0;margin:0}.contact-details li{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1.5rem}.contact-icon{width:24px;height:24px;flex-shrink:0;color:var(--primary-color);margin-top:.25rem}.contact-details strong,.contact-form label{display:block;color:var(--text-dark);margin-bottom:.25rem}.contact-details a{color:var(--primary-color);text-decoration:none;transition:color .2s ease}.contact-details a:hover{color:var(--secondary-color);text-decoration:underline}.contact-form .form-group{margin-bottom:1.25rem}.contact-form label{font-weight:600;margin-bottom:.5rem}.contact-form input,.contact-form textarea{width:100%;padding:.875rem 1rem;border:1px solid #ddd;border-radius:8px;font-size:1rem;font-family:inherit;transition:border-color .2s ease,box-shadow .2s ease}.contact-form input:focus,.contact-form textarea:focus{outline:0;border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(45,122,176,.1)}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#999}.contact-form textarea{resize:vertical;min-height:120px}.contact-form button[type=submit]{width:100%;margin-top:0}.contact-form button[type=submit]:disabled{background:#b0b8c1;cursor:not-allowed;opacity:.7}.form-footnote{font-size:.8rem;color:var(--text-light);margin:.75rem 0 0;line-height:1.5}.form-no-deposit{font-size:.875rem;color:var(--primary-color,#2e7d32);font-weight:600;margin:0 0 .75rem;line-height:1.5;text-align:center}.contact-form .booking-actions{border-top:1px solid var(--border-color,#e8e0d4);padding-top:1.25rem;margin-top:1.5rem}.contact-form button[type=submit]{margin-bottom:0}@media (max-width:768px){.contact-hero{padding:4rem 0 3rem}.contact-hero h1{font-size:2rem}.contact-content{padding:2rem 0}.contact-info{padding:1.5rem}}.success-modal{text-align:center;max-width:400px}.success-icon{color:#27ae60;margin-bottom:1rem}.success-icon span{font-size:4rem}.success-modal h3{color:#27ae60;margin-bottom:.5rem}.success-modal p{margin-bottom:2rem;color:var(--text-light)}.success-modal .btn{width:100%;justify-content:center}.terms-modal-content{max-width:800px}.terms-content{font-size:.95rem;line-height:1.8;color:var(--text-dark)}.terms-content strong{font-weight:600;color:var(--text-dark)}.terms-content p:first-line{line-height:2}.hero-discount-message{position:relative;width:100%;background-color:var(--secondary-color);color:var(--white);padding:.75rem 1rem;font-weight:600;font-size:1rem;text-align:center;z-index:20;box-shadow:0 2px 4px rgba(0,0,0,.1);animation:fadeIn .5s ease-out}.discount-link{color:inherit;text-decoration:none;transition:opacity .3s ease}.discount-link:hover{opacity:.8}.last-minute-banner{background:linear-gradient(135deg,var(--secondary-color),#d97532);color:var(--white);padding:1.25rem 1.5rem;border-radius:8px;margin-bottom:2rem;box-shadow:0 4px 12px rgba(198,90,26,.2);animation:fadeIn .5s ease-out;display:flex;align-items:center;gap:1rem}.last-minute-banner .icon{font-size:2rem;flex-shrink:0}.last-minute-banner .content{flex:1}.last-minute-banner h3{font-size:1.25rem;margin:0 0 .25rem 0;font-family:'DM Sans',sans-serif;font-weight:600}.last-minute-banner p{margin:0;opacity:.95;font-size:.95rem}@media (max-width:768px){.last-minute-banner{padding:1rem;font-size:.9rem}.last-minute-banner .icon{font-size:1.5rem}.last-minute-banner h3{font-size:1.1rem}}.beaches-hero{background:linear-gradient(135deg,var(--primary-color),#1a5c8a);color:#fff;padding:4rem 0 3rem;text-align:center}.beaches-hero h1{font-family:'Playfair Display',serif;font-size:2.5rem;margin-bottom:.75rem}.beaches-hero p{font-size:1.15rem;opacity:.9;max-width:600px;margin:0 auto}.beaches-intro{padding:3rem 0 1rem;text-align:center}.beaches-intro p{max-width:750px;margin:0 auto;font-size:1.05rem;line-height:1.7;color:#4a5568}.beaches-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:2rem;padding:2rem 0 3rem}.beaches-card{background:#fff;border-radius:12px;box-shadow:0 2px 12px rgba(0,0,0,.08);overflow:hidden;transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column}.beaches-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgba(0,0,0,.12)}.beaches-card__body{padding:1.5rem;flex:1;display:flex;flex-direction:column}.beaches-card__header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.beaches-card__header h3{font-family:'Playfair Display',serif;font-size:1.35rem;margin:0;color:#1a365d}.beaches-card__distance{background:#ebf8ff;color:#2b6cb0;padding:.35rem .75rem;border-radius:20px;font-size:.85rem;font-weight:600;white-space:nowrap;flex-shrink:0;margin-left:.75rem}.beaches-card__description{color:#4a5568;line-height:1.6;margin-bottom:1rem;flex:1}.beaches-card__details{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.beaches-card__detail-group h4{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:#718096;margin:0 0 .4rem}.beaches-card__detail-group ul{list-style:none;padding:0;margin:0}.beaches-card__detail-group li{font-size:.9rem;padding:.15rem 0;color:#4a5568}.beaches-card__detail-group li::before{content:'✓ ';color:#48bb78;font-weight:700}.beaches-cta{background:linear-gradient(135deg,var(--primary-color),#1a5c8a);color:#fff;padding:3rem 0;text-align:center}.beaches-cta h2{font-family:'Playfair Display',serif;font-size:2rem;margin-bottom:.75rem}.beaches-cta p{opacity:.9;max-width:550px;margin:0 auto 1.5rem}.beaches-cta .cta-buttons{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.beaches-cta .btn-secondary{background:0 0;border:2px solid #fff;color:#fff;padding:.75rem 1.5rem;border-radius:6px;font-weight:600;text-decoration:none;transition:background .2s,color .2s}.beaches-cta .btn-secondary:hover{background:#fff;color:#1a365d}@media (max-width:768px){.beaches-hero h1{font-size:1.8rem}.beaches-grid{grid-template-columns:1fr}.beaches-card__details{grid-template-columns:1fr}.beaches-cta h2{font-size:1.5rem}}