* {margin:0;padding:0;box-sizing:border-box}html {scroll-behavior:smooth;overflow-x:hidden;width:100%;max-width:100vw}body {font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;line-height:1.6;color:#333;overflow-x:hidden;width:100%;max-width:100vw;position:relative;touch-action:pan-x pan-y}:root {--primary-color:#2c3e50;--secondary-color:#e74c3c;--accent-color:#f39c12;--light-gray:#ecf0f1;--dark-gray:#34495e;--white:#ffffff;--shadow:0 2px 20px rgba(0,0,0,0.1);--shadow-hover:0 5px 30px rgba(0,0,0,0.15);--border-radius:12px;--transition:all 0.3s ease}.container {max-width:1200px;margin:0 auto;padding:0 20px;width:100%;box-sizing:border-box}.text-center {text-align:center}.full-width {width:100%}.navbar {position:fixed;top:0;width:100%;background:rgba(255,255,255,0.95);backdrop-filter:blur(10px);z-index:1000;box-shadow:var(--shadow);transition:var(--transition)}.nav-container {max-width:1200px;margin:0 auto;padding:0 20px;display:flex;justify-content:space-between;align-items:center;height:70px;width:100%;box-sizing:border-box}.nav-logo {display:flex;align-items:center;gap:10px;font-weight:bold;color:var(--primary-color)}.room-info-section {padding:0 30px 0px 30px;display:flex;flex-direction:column;justify-content:space-between;position:relative}.logo-link {text-decoration:none;color:var(--primary-color)}.logo-img {width:65px;height:65px;border-radius:50%;object-fit:cover}.logo-text {font-size:1.2rem;font-weight:700}.nav-menu {display:flex;list-style:none;gap:30px;align-items:center}.nav-link {text-decoration:none;color:var(--primary-color);font-weight:500;transition:var(--transition);padding:8px 16px;border-radius:20px}.nav-link:hover {color:var(--secondary-color);background:var(--light-gray)}.nav-link.active {color:white;background:var(--primary-color);border-radius:6px;font-weight:600}.booking-btn {background:var(--secondary-color);color:var(--white) !important;padding:10px 20px !important}.booking-btn:hover {background:#c0392b !important;transform:translateY(-2px)}.hamburger {display:none;flex-direction:column;cursor:pointer}.bar {width:25px;height:3px;background:var(--primary-color);margin:3px 0;transition:var(--transition)}.hero {min-height:100vh;height:100vh;min-height:calc(var(--vh,1vh) * 100);height:calc(var(--vh,1vh) * 100);position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;padding-top:60px}.hero-background {position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#1a1a2e 0%,#16213e 50%,#0f3460 100%);background-image:url('/images/hero-bg-abstract-warm.jpg');background-size:cover;background-position:center;background-repeat:no-repeat;max-width:100vw;box-sizing:border-box}.hero-overlay {position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(180deg,rgba(15,23,42,0.5) 0%,rgba(15,23,42,0.35) 40%,rgba(15,23,42,0.55) 100%)}.hero-content {position:relative;z-index:2;text-align:center;color:var(--white);max-width:800px;padding:0 20px}.hero-title {font-size:3.5rem;font-weight:700;margin-bottom:20px;animation:fadeInUp 1s ease-out;text-shadow:0 2px 20px rgba(0,0,0,0.4)}.accent {color:#ffe08a;text-shadow:0 0 30px rgba(255,224,138,0.6),0 0 60px rgba(255,200,60,0.25)}.hero-subtitle {font-size:1.3rem;margin-bottom:40px;opacity:0.92;animation:fadeInUp 1s ease-out 0.2s both;text-shadow:0 1px 12px rgba(0,0,0,0.4)}.hero-buttons {display:flex;gap:20px;justify-content:center;flex-wrap:wrap;animation:fadeInUp 1s ease-out 0.4s both}.hero-nav-pills {display:flex;gap:12px;justify-content:center;flex-wrap:wrap;animation:fadeInUp 1s ease-out 0.4s both}.hero-pill {position:relative;display:inline-flex;align-items:center;gap:10px;padding:12px 22px 12px 16px;text-decoration:none;color:#fff;font-size:0.95rem;font-weight:500;letter-spacing:0.01em;border-radius:980px;background:rgba(255,255,255,0.15);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(255,255,255,0.25);transition:all 0.3s cubic-bezier(0.25,0.46,0.45,0.94);cursor:pointer;overflow:hidden}.hero-pill::before {content:'';position:absolute;inset:0;border-radius:inherit;background:linear-gradient(135deg,rgba(255,255,255,0.1) 0%,rgba(255,255,255,0) 100%);pointer-events:none}.hero-pill:hover {background:rgba(255,255,255,0.28);border-color:rgba(255,255,255,0.4);transform:translateY(-2px);box-shadow:0 8px 32px rgba(0,0,0,0.12)}.hero-pill:active {transform:translateY(0);background:rgba(255,255,255,0.22)}.hero-pill__icon {font-size:1.15rem;line-height:1;flex-shrink:0}.hero-pill__text {white-space:nowrap;line-height:1}.hero-pill__arrow {font-size:0.7rem;opacity:0.5;transition:opacity 0.3s ease,transform 0.3s ease;flex-shrink:0;margin-left:2px}.hero-pill:hover .hero-pill__arrow {opacity:0.9;transform:translateX(2px)}.hero-pill--new {background:rgba(255,255,255,0.2);border-color:rgba(255,255,255,0.35)}.hero-pill__badge {position:absolute;top:-1px;right:14px;padding:2px 8px;font-size:0.6rem;font-weight:700;letter-spacing:0.06em;color:#fff;background:linear-gradient(135deg,#f59e0b,#ef4444);border-radius:0 0 8px 8px;line-height:1.4}@media (max-width:768px) {.hero-nav-pills {flex-direction:column;align-items:center;gap:10px}.hero-pill {min-width:220px;justify-content:center}}.btn {display:inline-flex;align-items:center;gap:8px;padding:14px 28px;text-decoration:none;border-radius:var(--border-radius);font-weight:600;transition:var(--transition);border:none;cursor:pointer;font-size:1rem}.btn-primary {background:var(--secondary-color);color:var(--white)}.btn-primary:hover {background:#c0392b;transform:translateY(-3px);box-shadow:var(--shadow-hover)}.btn-secondary {background:transparent;color:var(--white);border:2px solid var(--white)}.btn-secondary:hover {background:var(--white);color:var(--primary-color)}.btn-outline {background:transparent;color:var(--primary-color);border:2px solid var(--primary-color)}.btn-outline:hover {background:var(--primary-color);color:var(--white)}.btn-large {padding:18px 36px;font-size:1.1rem}.area-selection {position:absolute;bottom:30px;left:50%;transform:translateX(-50%);background:var(--white);border-radius:var(--border-radius);padding:40px;box-shadow:var(--shadow-hover);max-width:800px;width:90%;animation:fadeInUp 1s ease-out 0.6s both}.area-selection-content h3 {margin-bottom:10px;color:var(--primary-color);text-align:center;font-size:1.8rem}.area-selection-content p {margin-bottom:30px;color:var(--dark-gray);text-align:center;font-size:1.1rem}.area-cards {display:grid;grid-template-columns:1fr 1fr;gap:30px}.area-card {background:var(--white);border-radius:var(--border-radius);overflow:hidden;box-shadow:var(--shadow);transition:var(--transition);cursor:pointer;border:2px solid transparent}.area-card:hover {transform:translateY(-5px);box-shadow:var(--shadow-hover);border-color:var(--secondary-color)}.area-image {height:150px;overflow:hidden}.area-image img {width:100%;height:100%;object-fit:cover;transition:var(--transition)}.area-card:hover .area-image img {transform:scale(1.1)}.area-info {padding:20px}.area-info h4 {color:var(--primary-color);margin-bottom:8px;font-size:1.3rem}.area-info p {color:var(--dark-gray);margin-bottom:15px;font-size:0.9rem}.area-stats {display:flex;justify-content:space-between;align-items:center}.room-count {background:var(--light-gray);color:var(--primary-color);padding:4px 12px;border-radius:12px;font-size:0.85rem;font-weight:600}.price-range {color:var(--secondary-color);font-weight:700;font-size:0.9rem}.section-title {text-align:center;font-size:2.5rem;margin-bottom:50px;color:var(--primary-color);position:relative}.section-title::after {content:'';position:absolute;bottom:-10px;left:50%;transform:translateX(-50%);width:60px;height:4px;background:var(--secondary-color);border-radius:2px}.features {padding:100px 0;background:var(--light-gray)}.features-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:40px;margin-top:50px}.features .feature-card {text-align:center;padding:40px 20px;background:var(--white);border-radius:var(--border-radius);box-shadow:var(--shadow);transition:var(--transition)}.features .feature-card:hover {transform:translateY(-10px);box-shadow:var(--shadow-hover)}.features .feature-icon {width:80px;height:80px;background:linear-gradient(135deg,var(--secondary-color),var(--accent-color));border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 20px;color:var(--white);font-size:2rem}.features .feature-card h3 {margin-bottom:15px;color:var(--primary-color)}.locations {padding:80px 0 60px}.locations-grid-v2 {display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:40px}.loc-card-v2 {position:relative;display:flex;flex-direction:column;background:#fff;border-radius:14px;overflow:hidden;text-decoration:none;color:inherit;box-shadow:0 2px 12px rgba(0,0,0,0.06);transition:transform 0.25s ease,box-shadow 0.25s ease;border:1px solid rgba(0,0,0,0.06)}.loc-card-v2:hover {transform:translateY(-4px);box-shadow:0 8px 28px rgba(0,0,0,0.10)}.loc-card-v2__img {position:relative;height:160px;overflow:hidden}.loc-card-v2__img img {width:100%;height:100%;object-fit:cover;transition:transform 0.4s ease}.loc-card-v2:hover .loc-card-v2__img img {transform:scale(1.06)}.loc-card--okubo {border-top:3px solid #3498db}.loc-card--okubo2 {border-top:3px solid #e67e22}.loc-card--asakusa {border-top:3px solid #e74c3c}.loc-card-v2__badge {position:absolute;top:12px;right:12px;z-index:2;background:#e67e22;color:#fff;font-size:0.7rem;font-weight:700;letter-spacing:0.5px;padding:3px 10px;border-radius:20px;line-height:1.4}.loc-card-v2__body {padding:18px 20px 20px;display:flex;flex-direction:column;flex:1}.loc-card-v2__body h3 {font-size:1.15rem;font-weight:700;margin:0 0 4px;color:#2c3e50}.loc-card-v2__tagline {font-size:0.85rem;color:#7f8c8d;margin:0 0 12px;line-height:1.4}.loc-card-v2__tags {display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.loc-card-v2__tags span {display:inline-flex;align-items:center;gap:4px;font-size:0.78rem;color:#555;background:#f5f6f8;padding:4px 10px;border-radius:6px}.loc-card-v2__tags span i {font-size:0.72rem;color:#888}.loc-card-v2__cta {margin-top:auto;font-size:0.88rem;font-weight:600;transition:color 0.2s}.loc-card--okubo .loc-card-v2__cta {color:#3498db}.loc-card--okubo2 .loc-card-v2__cta {color:#e67e22}.loc-card--asakusa .loc-card-v2__cta {color:#e74c3c}.loc-card-v2:hover .loc-card-v2__cta {text-decoration:underline}.locations-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(500px,1fr));gap:50px;margin-top:50px}.location-card {background:var(--white);border-radius:var(--border-radius);overflow:hidden;box-shadow:var(--shadow);transition:var(--transition)}.location-card:hover {transform:translateY(-5px);box-shadow:var(--shadow-hover)}.location-image {position:relative;height:250px;overflow:hidden}.location-image img {width:100%;height:100%;object-fit:cover;transition:var(--transition)}.location-card:hover .location-image img {transform:scale(1.05)}.location-overlay {position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,rgba(44,62,80,0.7),rgba(231,76,60,0.6));display:flex;flex-direction:column;justify-content:center;align-items:center;color:var(--white);text-align:center}.location-overlay h3 {font-size:2rem;margin-bottom:10px}.location-content {padding:30px}.location-content h4 {margin-bottom:15px;color:var(--primary-color)}.location-features {display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.feature-tag {background:var(--light-gray);color:var(--primary-color);padding:5px 12px;border-radius:15px;font-size:0.9rem;display:flex;align-items:center;gap:5px}.rooms-preview {padding:100px 0;background:var(--light-gray)}.rooms-location-title {font-size:1.4rem;color:var(--primary-color);margin-top:40px;margin-bottom:0;display:flex;align-items:center;gap:8px}.rooms-location-title:first-of-type {margin-top:30px}.rooms-location-title i {color:var(--secondary-color);font-size:1.1rem}.rooms-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:30px;margin-top:20px;margin-bottom:40px}.room-card {background:var(--white);border-radius:var(--border-radius);overflow:hidden;box-shadow:var(--shadow);transition:var(--transition);cursor:pointer;display:flex;flex-direction:column}.room-card:hover {transform:translateY(-5px);box-shadow:var(--shadow-hover)}.room-image {position:relative;height:200px;overflow:hidden}.room-image img {width:100%;height:100%;object-fit:cover;transition:var(--transition)}.room-card:hover .room-image img {transform:scale(1.05)}.room-badge {position:absolute;top:15px;right:15px;background:var(--secondary-color);color:var(--white);padding:5px 12px;border-radius:15px;font-size:0.9rem;font-weight:600}.room-content {padding:25px;flex:1;display:flex;flex-direction:column}.room-content .room-amenities {margin-top:auto;padding-top:12px}.room-location {color:var(--secondary-color);font-weight:600;font-size:0.9rem;margin-bottom:10px}.room-content h3 {margin-bottom:10px;color:var(--primary-color)}.room-amenities {display:flex;flex-wrap:wrap;gap:10px}.room-amenities span {background:var(--light-gray);color:var(--primary-color);padding:5px 10px;border-radius:12px;font-size:0.85rem;display:flex;align-items:center;gap:5px}.rooms-location-badge {display:inline-block;background:linear-gradient(135deg,#f59e0b,#ef4444);color:#fff;font-size:0.65rem;font-weight:700;letter-spacing:0.05em;padding:2px 8px;border-radius:6px;vertical-align:middle;margin-left:6px}.rooms-scroll-wrapper {position:relative;margin-top:20px;margin-bottom:40px}.rooms-scroll {display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#ccc transparent;padding:4px 0 12px}.rooms-scroll::-webkit-scrollbar {height:6px}.rooms-scroll::-webkit-scrollbar-track {background:transparent}.rooms-scroll::-webkit-scrollbar-thumb {background:#ccc;border-radius:3px}.rooms-scroll .room-card {min-width:260px;max-width:280px;flex-shrink:0;scroll-snap-align:start}.rooms-scroll-btn {position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:36px;height:36px;border-radius:50%;border:1px solid #ddd;background:rgba(255,255,255,0.95);box-shadow:0 2px 8px rgba(0,0,0,0.1);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--primary-color);font-size:0.85rem;transition:all 0.2s ease}.rooms-scroll-btn:hover {background:#fff;box-shadow:0 4px 16px rgba(0,0,0,0.15)}.rooms-scroll-btn--prev {left:-18px}.rooms-scroll-btn--next {right:-18px}@media (max-width:768px) {.rooms-scroll-btn {display:none}}.room-price {display:flex;align-items:baseline;gap:5px;margin-top:15px}.price {font-size:1.5rem;font-weight:700;color:var(--secondary-color)}.period {color:var(--dark-gray);font-size:0.9rem}.area-introduction-section {background:linear-gradient(180deg,#f8f9fa 0%,#ffffff 100%);padding:100px 0 20px;margin-top:0}.area-intro-container {max-width:1200px;margin:0 auto;padding:0 20px}.area-intro-hero {position:relative;height:400px;border-radius:20px;overflow:hidden;margin-bottom:40px;box-shadow:0 10px 30px rgba(0,0,0,0.15)}.area-intro-hero img {width:100%;height:100%}.area-intro-hero-overlay {position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(45deg,rgba(0,0,0,0.6),rgba(0,0,0,0.3));display:flex;align-items:center;justify-content:center;text-align:center;color:white}.area-intro-hero-content h2 {font-size:3rem;margin:0 0 10px 0;font-weight:700;text-shadow:2px 2px 4px rgba(0,0,0,0.5)}.area-intro-hero-content p {font-size:1.3rem;margin:0;opacity:0.95;text-shadow:1px 1px 2px rgba(0,0,0,0.5)}.area-intro-description-full {background:white;padding:50px 0;margin:40px 0;box-shadow:0 2px 15px rgba(0,0,0,0.05)}.area-intro-description-full h3 {color:var(--primary-color);margin:0 0 25px 0;font-size:2rem;font-weight:700;text-align:center}.area-intro-description-full p {line-height:1.8;color:#333;font-size:1.1rem;margin:0;text-align:center;max-width:1000px;margin:0 auto}.area-features-section {background:linear-gradient(135deg,#f8f9fa 0%,#e9ecef 100%);padding:60px 0}.features-title {color:var(--primary-color);margin:0 0 50px 0;font-size:2rem;font-weight:700;text-align:center}.area-features-section .features-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:30px;margin-top:40px}.main-image-container{position:relative;width:100%;height:280px;overflow:hidden;border-radius:12px;cursor:pointer;transition:all 0.4s cubic-bezier(0.4,0,0.2,1)}.main-image-container img {width:100%;height:100%;object-fit:cover;transition:transform 0.6s cubic-bezier(0.4,0,0.2,1)}.main-image-container:hover img {transform:scale(1.05)}.building-showcase-section {background:linear-gradient(135deg,#ffffff 0%,#f8f9fa 100%);padding:50px 0;margin:40px 0;position:relative;overflow:hidden}.building-showcase-section::before {content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse at center,rgba(16,185,129,0.05) 0%,transparent 70%);pointer-events:none}.building-showcase-header {text-align:center;margin-bottom:40px}.building-showcase-header h3 {margin:0 0 10px 0;font-size:2rem;font-weight:700;color:#2c3e50}.building-showcase-header p {margin:0;color:#6b7280;font-size:1.1rem;line-height:1.6}.building-images-grid {display:grid;grid-template-columns:1fr 1fr;gap:20px}.building-image-item {border-radius:16px;overflow:hidden;transition:all 0.3s ease;box-shadow:0 8px 30px rgba(0,0,0,0.12)}.building-image-item:hover {transform:translateY(-3px);box-shadow:0 12px 40px rgba(0,0,0,0.18)}.building-image-item img {width:100%;height:450px;object-fit:contain;object-position:center;transition:transform 0.3s ease;background:#f8f9fa}.building-image-item:hover img {transform:scale(1.02)}.feature-card.building-showcase {position:relative}.building-photo {margin-top:20px;border-radius:12px;overflow:hidden;box-shadow:0 4px 15px rgba(0,0,0,0.1);transition:all 0.3s ease;cursor:pointer}.feature-card:hover .building-photo {transform:translateY(-3px);box-shadow:0 8px 25px rgba(0,0,0,0.15)}.building-exterior-photo {width:100%;height:200px;object-fit:cover;transition:transform 0.3s ease}.feature-card:hover .building-exterior-photo {transform:scale(1.05)}.photo-caption {display:block;text-align:center;padding:10px 15px;background:linear-gradient(135deg,#f8f9fa,#e9ecef);color:#495057;font-size:0.9rem;font-weight:500;border-top:1px solid #dee2e6}.area-intro-hero-content p {font-size:1.3rem;margin:0 0 30px 0;opacity:0.95;text-shadow:1px 1px 2px rgba(0,0,0,0.5)}.hero-cta-section {margin-top:30px}.hero-search-btn {background:linear-gradient(135deg,#ff6b6b,#ee5a24);color:white;border:none;padding:16px 32px;border-radius:50px;font-size:1.1rem;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:12px;transition:all 0.3s ease;box-shadow:0 6px 20px rgba(255,107,107,0.4);text-transform:uppercase;letter-spacing:0.5px;position:relative;overflow:hidden}.hero-search-btn::before {content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.3),transparent);transition:left 0.6s}.hero-search-btn:hover::before {left:100%}.hero-search-btn:hover {background:linear-gradient(135deg,#ee5a24,#d63031);transform:translateY(-3px);box-shadow:0 12px 35px rgba(255,107,107,0.6)}.hero-search-btn i {font-size:1.2rem;animation:pulse 2s infinite}@keyframes pulse {0%,100% {transform:scale(1)}50% {transform:scale(1.1)}}.area-features-section .feature-card {background:white;padding:30px;border-radius:16px;box-shadow:0 8px 25px rgba(0,0,0,0.1);transition:all 0.3s ease;text-align:center;position:relative;overflow:hidden}.area-features-section .feature-card::before {content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--primary-color),var(--secondary-color));opacity:0;transition:opacity 0.3s ease}.area-features-section .feature-card:hover::before {opacity:1}.area-features-section .feature-card:hover {transform:translateY(-8px);box-shadow:0 15px 40px rgba(0,0,0,0.15)}.area-features-section .feature-icon {width:70px;height:70px;background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 20px auto;transition:all 0.3s ease}.area-features-section .feature-icon i {color:white;font-size:1.8rem}.area-features-section .feature-card:hover .feature-icon {transform:scale(1.1) rotateY(180deg)}.area-features-section .feature-card h4 {margin:0 0 15px 0;color:var(--primary-color);font-size:1.3rem;font-weight:700}.area-features-section .feature-card p {margin:0;color:#666;font-size:1rem;line-height:1.6}.about {padding:100px 0;background:var(--light-gray)}.about-content {display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.about-text h2 {font-size:2.5rem;margin-bottom:20px;color:var(--primary-color)}.about-intro {font-size:1.1rem;margin-bottom:30px;color:var(--dark-gray);line-height:1.8}.about-features {display:flex;flex-direction:column;gap:25px}.about-feature {display:flex;align-items:flex-start;gap:20px}.about-feature i {width:50px;height:50px;background:linear-gradient(135deg,var(--secondary-color),var(--accent-color));border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--white);font-size:1.2rem;flex-shrink:0}.about-feature h4 {margin-bottom:8px;color:var(--primary-color)}.about-image img {width:60%;border-radius:var(--border-radius);box-shadow:var(--shadow)}.contact {padding:100px 0;background:var(--light-gray)}.contact-content {display:grid;grid-template-columns:1fr 1fr;gap:60px}.contact-info h2 {margin-bottom:20px;color:var(--primary-color)}.contact-info p {margin-bottom:40px;font-size:1.1rem;color:var(--dark-gray)}.contact-methods {display:flex;flex-direction:column;gap:30px}.contact-method {display:flex;align-items:flex-start;gap:20px;padding:20px;background:var(--white);border-radius:var(--border-radius);box-shadow:var(--shadow)}.contact-method i {width:50px;height:50px;background:linear-gradient(135deg,var(--secondary-color),var(--accent-color));border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--white);font-size:1.2rem;flex-shrink:0}.contact-method h4 {margin-bottom:5px;color:var(--primary-color)}.contact-method p {margin-bottom:5px;font-weight:600;color:var(--dark-gray)}.contact-method span {font-size:0.9rem;color:#7f8c8d}.contact-form {background:var(--white);padding:40px;border-radius:var(--border-radius);box-shadow:var(--shadow)}.contact-form h3 {margin-bottom:30px;color:var(--primary-color);text-align:center}.contact-form .form-group input,.contact-form .form-group select,.contact-form .form-group textarea {width:100%;padding:12px;border:2px solid var(--light-gray);border-radius:8px;font-size:1rem;transition:var(--transition);font-family:inherit}.contact-form .form-group textarea {resize:vertical}.contact-form .form-group input:focus,.contact-form .form-group select:focus,.contact-form .form-group textarea:focus {outline:none;border-color:var(--secondary-color)}.footer {background:var(--primary-color);color:var(--white);padding:30px 0 20px}.footer-content {display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:40px;margin-bottom:40px}.footer-logo {display:flex;align-items:center;gap:10px;margin-bottom:20px}.footer-logo-img {width:40px;height:40px;border-radius:50%}.footer-logo-text {font-size:1.2rem;font-weight:700}.footer-section h4 {margin-bottom:20px;color:var(--accent-color)}.footer-section ul {list-style:none}.footer-section ul li {margin-bottom:10px}.footer-section ul li a {color:#bdc3c7;text-decoration:none;transition:var(--transition)}.footer-section ul li a:hover {color:var(--white)}.social-links {display:flex;gap:15px;margin-top:20px}.social-links a {width:40px;height:40px;background:var(--secondary-color);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--white);text-decoration:none;transition:var(--transition)}.social-links a:hover {background:var(--accent-color);transform:translateY(-3px)}.footer-bottom {border-top:1px solid #34495e;padding-top:20px;text-align:center;color:#95a5a6}.back-to-top {position:fixed;bottom:30px;right:30px;width:50px;height:50px;background:var(--secondary-color);color:var(--white);border:none;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;visibility:hidden;transition:var(--transition);z-index:1000}.back-to-top.visible {opacity:1;visibility:visible}.back-to-top:hover {background:#c0392b;transform:translateY(-3px)}@keyframes fadeInUp {from {opacity:0;transform:translateY(30px)}to {opacity:1;transform:translateY(0)}}@supports (-webkit-touch-callout:none) {.hero {min-height:-webkit-fill-available;height:-webkit-fill-available}.hero-background {transform:translateZ(0);-webkit-transform:translateZ(0);will-change:transform}}@media screen and (max-width:480px) {html,body {overflow-x:hidden !important;width:100% !important;max-width:100vw !important}.footer-logo {margin-left:18px}.hero {min-height:100vh;min-height:calc(var(--vh,1vh) * 100);height:auto;padding:80px 0 60px;width:100%;max-width:100vw;overflow-x:hidden}.hero-background {min-height:100vh;min-height:calc(var(--vh,1vh) * 100);background-attachment:scroll !important;background-size:cover;background-position:center center;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);width:100%;max-width:100vw;left:0;right:0}.hero-content {position:relative;z-index:3;min-height:calc(100vh - 140px);min-height:calc((var(--vh,1vh) * 100) - 140px);display:flex;flex-direction:column;justify-content:center;width:100%;max-width:100vw;padding:0 20px;box-sizing:border-box}.container {width:100% !important;max-width:100vw !important;padding:0 15px !important;box-sizing:border-box}}@media screen and (max-device-width:414px) and (-webkit-min-device-pixel-ratio:2) {.hero {min-height:100vh;height:100vh;min-height:calc(var(--vh,1vh) * 100);height:calc(var(--vh,1vh) * 100);width:100%;max-width:100vw;overflow-x:hidden}.hero-background {position:absolute;top:0;left:0;width:100%;height:100%;background-attachment:scroll;background-size:cover;background-position:center;background-repeat:no-repeat;z-index:1;max-width:100vw;box-sizing:border-box}.hero-content {padding:20px;margin-top:80px;position:relative;z-index:2;width:100%;max-width:100vw;box-sizing:border-box}}@media (min-width:769px) and (max-width:1024px) {.locations-grid-v2 {grid-template-columns:repeat(3,1fr);gap:16px}.loc-card-v2__img {height:120px}.loc-card-v2__body h3 {font-size:1rem}.loc-card-v2__tagline {font-size:0.8rem}.loc-card-v2__tags span {font-size:0.72rem;padding:3px 8px}}@media (max-width:768px) {* {max-width:100vw !important;box-sizing:border-box}.nav-menu,.nav-menu *,.nav-menu.active {max-width:none !important}nav,.navbar {overflow-x:visible !important}div,section,header,footer,main,article {max-width:100vw;box-sizing:border-box}}@media (max-width:768px) {.footer-logo {margin-left:18px}.area-features-section .features-grid {grid-template-columns:auto}.area-intro-hero-content h2 {font-size:1.7rem}.about-content .about-text h2 {font-size:1.7rem}.building-showcase-header p {font-size:1rem}.building-showcase-header h3 {font-size:1.5rem}.building-showcase-section {padding:40px 0;margin:20px 0}.building-images-grid {grid-template-columns:1fr;gap:15px;padding:0 15px}.building-image-item img {height:280px}.area-intro-hero-content p {font-size:1.1rem;margin:0 0 25px 0}.hero-search-btn {padding:14px 24px;font-size:1rem;border-radius:40px}.building-exterior-photo {height:160px}.hamburger {display:flex}.nav-menu {position:fixed;left:0;top:70px;flex-direction:column;background-color:var(--white);width:100%;max-width:none !important;text-align:center;transition:transform 0.3s ease;box-shadow:var(--shadow);padding:20px 0;box-sizing:border-box;overflow-x:hidden;transform:translateX(-100%);z-index:999}.nav-menu.active {transform:translateX(0) !important}.hero-title {font-size:2.5rem}.hero-buttons {flex-direction:column;align-items:center}.area-selection {position:static;transform:none;margin-top:30px;padding:20px}.area-cards {grid-template-columns:1fr;gap:20px}.area-selection-content h3 {font-size:1.5rem}.area-selection-content p {font-size:1rem}.locations-grid-v2 {grid-template-columns:1fr;gap:16px;max-width:420px;margin-left:auto;margin-right:auto}.loc-card-v2__img {height:140px}.locations-grid {grid-template-columns:1fr}.rooms-grid {grid-template-columns:1fr}.about-content {grid-template-columns:1fr}.contact-content {grid-template-columns:1fr}.footer-content {grid-template-columns:1fr;text-align:center}.section-title {font-size:2rem}}@media (max-width:480px) {.area-features-section .features-grid {grid-template-columns:auto}.area-intro-hero-content h2 {font-size:1.5rem}.about-content .about-text h2 {font-size:1.6rem}.hero-title {font-size:2rem}.hero-subtitle {font-size:1.1rem}.quick-booking {padding:20px}.container {padding:0 15px}.features .feature-card,.area-features-section .feature-card,.contact-form {padding:25px}.room-detail-card {margin-bottom:30px}.room-header {flex-direction:column;align-items:flex-start;gap:15px}.room-price-section {text-align:left}.room-features-grid {grid-template-columns:1fr;gap:15px}.booking-actions {flex-direction:column;gap:10px}.gallery-thumbnails {bottom:5px;left:5px;gap:3px}.thumbnail {width:40px;height:40px}.search-filters {padding:20px;margin:-80px auto 30px}.filter-grid {grid-template-columns:1fr;gap:15px}}@media (max-width:320px) {.footer-logo {margin-left:18px}.area-features-section .features-grid {grid-template-columns:auto}.about-content .about-text h2 {font-size:1.5rem}.nav-container {padding:0 15px}.logo-text {font-size:1rem}.hero-title {font-size:1.8rem}.current-price {font-size:1.5rem}.room-details {padding:20px}}.inline-calendar-container {max-width:380px;margin:0 auto 20px auto;background:white;border-radius:12px;padding:20px;box-shadow:0 4px 20px rgba(0,0,0,0.08);border:1px solid #e5e7eb}.inline-calendar-nav {display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.inline-calendar-nav button {background:#f8fafc;border:1px solid #e2e8f0;padding:8px 12px;cursor:pointer;font-size:1rem;color:#64748b;border-radius:8px;transition:all 0.2s ease;display:flex;align-items:center;justify-content:center;min-width:36px;height:36px}.inline-calendar-nav button:hover:not(.nav-disabled) {background:#e2e8f0;color:#334155;transform:translateY(-1px)}.inline-calendar-nav button.nav-disabled {opacity:0.3;cursor:not-allowed;pointer-events:none}.inline-calendar-month-year {font-weight:600;color:#1e293b;font-size:1.1rem}.inline-calendar-grid {display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:auto repeat(6,1fr);gap:4px;margin-bottom:20px;min-height:310px}.inline-calendar-day.empty-filler {visibility:hidden}.inline-calendar-day-header {padding:10px 4px;font-weight:500;color:#64748b;font-size:0.85rem;text-align:center;text-transform:uppercase;letter-spacing:0.5px}.inline-calendar-day {padding:10px 4px;text-align:center;cursor:pointer;border-radius:8px;transition:all 0.2s ease;font-size:0.9rem;min-height:36px;display:flex;align-items:center;justify-content:center;font-weight:500;border:1px solid transparent}.inline-calendar-day.available {background:#f0f9ff;color:#0369a1;border:1px solid #bae6fd;position:relative}.inline-calendar-day.available:hover {background:#0ea5e9;color:white;border-color:#0ea5e9;transform:scale(1.05)}.inline-calendar-day.unavailable {background:#f3f4f6;color:#9ca3af;border:1px solid #e5e7eb;cursor:not-allowed;opacity:0.8}.inline-calendar-day.checkout-available {background:#fff3e0;color:#ff9800;border:1px solid #ffb74d;cursor:pointer;position:relative;transition:all 0.2s ease}.inline-calendar-day.checkout-available:hover {background:#ffe0b2;transform:scale(1.05);box-shadow:0 2px 4px rgba(255,152,0,0.3)}.inline-calendar-day.checkout-available::after {content:'退房';position:absolute;bottom:1px;right:1px;font-size:8px;color:#ff9800;font-weight:600;line-height:1}.inline-calendar-day.disabled {color:#9ca3af;cursor:not-allowed;background:#f9fafb;border:1px solid #e5e7eb}.inline-calendar-day.range-start,.inline-calendar-day.range-end {background:#0ea5e9 !important;color:white !important;border:1px solid #0ea5e9 !important;font-weight:600;box-shadow:0 2px 4px rgba(14,165,233,0.3);transform:scale(1.05)}.inline-calendar-day.in-range {background:#e0f2fe !important;color:#0ea5e9 !important;border:1px solid #7dd3fc !important;position:relative}.inline-calendar-day.in-range::before {content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(45deg,transparent 30%,rgba(14,165,233,0.1) 50%,transparent 70%);pointer-events:none}.inline-calendar-day.available.range-start,.inline-calendar-day.available.range-end {background:#0ea5e9 !important;color:white !important;border:1px solid #0ea5e9 !important;font-weight:600 !important;box-shadow:0 2px 4px rgba(14,165,233,0.3) !important;transform:scale(1.05) !important}.inline-calendar-day.available.in-range {background:#0ea5e9 !important;color:white !important;border:1px solid #0ea5e9 !important;font-weight:600 !important;box-shadow:0 2px 4px rgba(14,165,233,0.3) !important;transform:scale(1.05) !important}.inline-calendar-day.min-nights-warning {background:#f3f4f6 !important;color:#9ca3af !important;border:1px solid #e5e7eb !important;position:relative;cursor:not-allowed}.inline-calendar-day.min-nights-warning::after {content:'⚠';position:absolute;top:2px;right:2px;font-size:8px;color:#f39c12}.inline-calendar-day.has-restrictions {position:relative}.inline-calendar-day .restriction-icon {position:absolute;top:2px;right:2px;font-size:6px;color:#3b82f6;z-index:2;pointer-events:none}.inline-calendar-day.available.has-restrictions {border:2px solid #3b82f6 !important}.inline-calendar-day.has-restrictions:hover {transform:scale(1.1);z-index:10;box-shadow:0 4px 12px rgba(59,130,246,0.3)}.inline-calendar-day.min-nights-blocked {background:#fff3cd !important;color:#856404 !important;border:1px solid #ffeaa7 !important;cursor:not-allowed;position:relative}.inline-calendar-day.min-nights-blocked::after {content:'⚠';position:absolute;top:2px;right:2px;font-size:8px;color:#f39c12}.inline-calendar-day.cta-blocked {background:#f8d7da !important;color:#721c24 !important;border:1px solid #f5c6cb !important;cursor:not-allowed;position:relative}.inline-calendar-day.cta-blocked::after {content:'🚫';position:absolute;top:2px;right:2px;font-size:8px;color:#721c24}.inline-calendar-day.ctd-blocked {background:#d1ecf1 !important;color:#0c5460 !important;border:1px solid #bee5eb !important;cursor:not-allowed;position:relative}.inline-calendar-day.ctd-blocked::after {content:'⛔';position:absolute;top:2px;right:2px;font-size:8px;color:#0c5460}.inline-calendar-day.max-nights-blocked {background:#f5f5f5 !important;color:#757575 !important;border:1px solid #e0e0e0 !important;cursor:not-allowed;position:relative}.inline-calendar-day.max-nights-blocked::after {content:'🚫';position:absolute;top:2px;right:2px;font-size:8px;color:#757575}.inline-calendar-day.max-booking-blocked {background:#f8d7da !important;color:#721c24 !important;border:1px solid #f5c6cb !important;cursor:not-allowed;position:relative}.inline-calendar-day.max-booking-blocked::after {content:'🚫';position:absolute;top:2px;right:2px;font-size:8px;color:#721c24}.calendar-legend-inline {display:flex;justify-content:space-around;margin-bottom:20px;padding:15px;background:#f8fafc;border-radius:8px;border:1px solid #e2e8f0}.calendar-legend-inline .legend-item {display:flex;align-items:center;gap:8px;font-size:0.85rem;color:#64748b;font-weight:500}.calendar-legend-inline .legend-color {width:16px;height:16px;border-radius:4px;border:1px solid #e2e8f0}.calendar-legend-inline .legend-color.available {background:#f0f9ff;border-color:#bae6fd}.calendar-legend-inline .legend-color.unavailable {background:#f3f4f6;border-color:#e5e7eb}.calendar-legend-inline .legend-color.selected {background:#0ea5e9;border-color:#0ea5e9}.calendar-legend-inline .legend-color.restricted {background:#f5f5f5;border-color:#e0e0e0}.inline-booking-calendar {background:white;border-radius:12px;padding:20px;margin-top:20px;box-shadow:0 4px 20px rgba(0,0,0,0.08);border:1px solid #e5e7eb}.booking-calendar-header {display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:1px solid #e5e7eb}.booking-calendar-header h4 {margin:0;color:#1e293b;font-weight:600;font-size:1.1rem}.close-booking-calendar {background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;padding:8px 12px;cursor:pointer;color:#64748b;transition:all 0.2s ease;display:flex;align-items:center;justify-content:center;min-width:36px;height:36px}.close-booking-calendar:hover {background:#e2e8f0;color:#334155;transform:translateY(-1px)}.booking-options {display:flex;flex-direction:column;gap:15px;margin-top:20px;padding-top:20px;border-top:1px solid #e5e7eb}.guest-selector {display:flex;align-items:center;gap:10px;justify-content:center}.guest-selector label {font-weight:500;color:#374151;font-size:0.9rem}.guest-selector select {padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;background:white;color:#374151;font-size:0.9rem;cursor:pointer;transition:border-color 0.2s ease}.guest-selector select:focus {outline:none;border-color:#0ea5e9;box-shadow:0 0 0 3px rgba(14,165,233,0.1)}.query-price-section {display:flex;align-items:center;justify-content:center}.query-price-btn {background:#0ea5e9;color:white;border:none;padding:15px 30px;border-radius:10px;cursor:pointer;font-weight:600;font-size:1rem;transition:all 0.2s ease;display:flex;align-items:center;gap:8px;min-width:120px;justify-content:center}.query-price-btn:hover:not(:disabled) {background:#0284c7;transform:translateY(-1px);box-shadow:0 4px 12px rgba(14,165,233,0.3)}.query-price-btn:disabled {background:#9ca3af;cursor:not-allowed;transform:none;box-shadow:none}.inline-booking-summary {margin-top:20px;background:linear-gradient(135deg,#f8f9fa,#ffffff);border-radius:16px;padding:20px;box-shadow:0 4px 20px rgba(0,0,0,0.08);border:1px solid #e9ecef;display:none}.inline-summary-content {background:white;padding:20px;border-radius:12px;box-shadow:0 2px 12px rgba(0,0,0,0.05)}.inline-summary-content h4 {color:#2c3e50;font-size:18px;font-weight:600;margin:0 0 16px 0;text-align:center}.summary-item {display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #f1f3f4}.summary-item:last-child {border-bottom:none}.summary-divider {height:1px;background:#e9ecef;margin:12px 0}.summary-total {display:flex;justify-content:space-between;align-items:center;padding:12px 0 0;margin-top:12px;border-top:2px solid #4285f4;font-weight:600;font-size:16px}.inline-booking-btn {background:linear-gradient(135deg,#4285f4,#1976d2);color:white;border:none;padding:14px 32px;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all 0.3s ease;display:inline-flex;align-items:center;gap:8px;box-shadow:0 4px 15px rgba(66,133,244,0.3);margin-top:16px;width:100%;justify-content:center}.inline-booking-btn:hover {transform:translateY(-2px);box-shadow:0 6px 20px rgba(66,133,244,0.4)}.loading-summary {text-align:center;padding:20px;color:#666}.price-error-message {background:#fff5f5;border:1px solid #feb2b2;border-radius:12px;padding:20px;text-align:center}.error-header {margin-bottom:16px}.error-header i {color:#e53e3e;font-size:24px;margin-bottom:8px}.error-header h4 {color:#e53e3e;margin:0;font-size:18px}.error-content {margin-bottom:20px}.error-content p {color:#666;margin:8px 0;line-height:1.5}.direct-booking-btn {background:linear-gradient(135deg,#10b981,#059669);color:white;border:none;padding:12px 24px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all 0.3s ease;display:inline-flex;align-items:center;gap:8px}.direct-booking-btn:hover {transform:translateY(-1px);box-shadow:0 4px 12px rgba(16,185,129,0.3)}@media (max-width:768px) {.inline-calendar-container {max-width:100%;margin:0 10px 20px 10px}.inline-calendar-grid {gap:2px}.inline-calendar-day {min-height:32px;font-size:0.85rem}.booking-options {gap:12px}.query-price-btn {padding:12px 24px;font-size:0.9rem}}.new-calendar-container {background:white;border-radius:12px;box-shadow:0 4px 20px rgba(0,0,0,0.1);padding:20px;max-width:400px;margin:20px auto;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif}.calendar-legend {display:flex;justify-content:space-around;margin-bottom:20px;padding:10px 0;border-bottom:1px solid #f0f0f0}.legend-item {display:flex;align-items:center;gap:8px;font-size:14px;color:#666}.legend-checkbox {width:16px;height:16px;border-radius:3px;border:2px solid #ddd}.legend-checkbox.bookable {background-color:#e8f5e8;border-color:#4caf50}.legend-checkbox.unavailable {background-color:#f5f5f5;border-color:#e0e0e0}.legend-checkbox.selected {background-color:#2196f3;border-color:#2196f3}.legend-checkbox.max-nights-blocked {background-color:#f5f5f5;border-color:#e0e0e0}.calendar-header {display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding:0 10px}.calendar-title {font-size:18px;font-weight:600;color:#333}.calendar-nav {display:flex;gap:10px}.nav-button {background:none;border:none;font-size:18px;color:#666;cursor:pointer;padding:5px 10px;border-radius:6px;transition:all 0.2s}.nav-button:hover:not(.nav-disabled) {background-color:#f5f5f5;color:#333}.nav-button:active:not(.nav-disabled) {background-color:#e0e0e0}.nav-button.nav-disabled {opacity:0.3;cursor:not-allowed;pointer-events:none}.calendar-weekdays {display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:10px}.weekday {text-align:center;font-size:14px;font-weight:500;color:#666;padding:10px 5px}.calendar-grid {display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(6,1fr);gap:2px;min-height:240px}.calendar-day {display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:500;border-radius:8px;cursor:pointer;transition:all 0.2s;position:relative;border:2px solid transparent;min-height:36px}.calendar-day.empty-filler {visibility:hidden}.calendar-day.other-month {color:#ccc;background-color:#fafafa;cursor:default}.calendar-day.bookable {color:#2e7d32;background-color:#e8f5e8;border-color:#4caf50}.calendar-day.bookable:hover {background-color:#c8e6c9;transform:scale(1.05)}.calendar-day.unavailable {color:#757575;background-color:#f5f5f5;border-color:#e0e0e0;cursor:not-allowed}.calendar-day.min-nights-blocked {background:#fff3cd !important;color:#856404 !important;border:1px solid #ffeaa7 !important;cursor:not-allowed;position:relative}.calendar-day.min-nights-blocked::after {content:'⚠';position:absolute;top:2px;right:2px;font-size:8px;color:#f39c12}.calendar-day.cta-blocked {background:#f8d7da !important;color:#721c24 !important;border:1px solid #f5c6cb !important;cursor:not-allowed;position:relative}.calendar-day.cta-blocked::after {content:'🚫';position:absolute;top:2px;right:2px;font-size:8px;color:#721c24}.calendar-day.ctd-blocked {background:#d1ecf1 !important;color:#0c5460 !important;border:1px solid #bee5eb !important;cursor:not-allowed;position:relative}.calendar-day.ctd-blocked::after {content:'⛔';position:absolute;top:2px;right:2px;font-size:8px;color:#0c5460}.calendar-day.max-nights-blocked {background:#f5f5f5 !important;color:#757575 !important;border:1px solid #e0e0e0 !important;cursor:not-allowed;position:relative}.calendar-day.max-nights-blocked::after {content:'🚫';position:absolute;top:2px;right:2px;font-size:8px;color:#757575}.calendar-day.max-date-blocked {background:#f8f8f8 !important;color:#ccc !important;border:1px solid #e0e0e0 !important;cursor:not-allowed;text-decoration:line-through;position:relative}.calendar-day.max-date-blocked:hover {background:#f8f8f8 !important;transform:none}.calendar-day.checkout-available {color:#ff9800;background-color:#fff3e0;border-color:#ffb74d;cursor:pointer;position:relative}.calendar-day.checkout-available:hover {background-color:#ffe0b2;transform:scale(1.05)}.calendar-day.checkout-available::after {content:'退房';position:absolute;bottom:2px;right:2px;font-size:8px;color:#ff9800;font-weight:600}.calendar-day.selected {color:white;background-color:#2196f3;border-color:#1976d2;font-weight:600}.calendar-day.range-start {color:white;background-color:#2196f3;border-color:#1976d2;font-weight:600}.calendar-day.range-end {color:white;background-color:#2196f3;border-color:#1976d2;font-weight:600}.calendar-day.in-range {color:white;background-color:#64b5f6;border-color:#42a5f5}.calendar-day.today {border-color:#ff9800;border-width:2px}.date-selection-result {margin-top:20px;padding:15px;background-color:#f8f9fa;border-radius:8px;border-left:4px solid #2196f3}.date-selection-result h4 {margin:0 0 10px 0;color:#333;font-size:16px}.date-selection-result .selected-dates {color:#666;font-size:14px}.date-selection-result .nights {margin-top:5px;color:#2196f3;font-weight:500}.booking-options {margin-top:20px;padding:15px;background-color:#f8f9fa;border-radius:8px;border:1px solid #e9ecef}.guest-selector {display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:15px;flex-wrap:wrap}.guest-selector label {font-size:14px;font-weight:500;color:#333;white-space:nowrap}.guest-selector select {padding:8px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;background-color:white;cursor:pointer;min-width:80px}.guest-selector select:focus {outline:none;border-color:#2196f3;box-shadow:0 0 0 2px rgba(33,150,243,0.2)}.guest-hint-inline {font-size:0.75rem;color:#888;white-space:nowrap}.query-price-section {text-align:center}.query-price-btn {background:linear-gradient(135deg,#2196f3,#1976d2);color:white;border:none;padding:12px 24px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all 0.3s;width:100%}.query-price-btn:hover:not(:disabled) {background:linear-gradient(135deg,#1976d2,#1565c0);transform:translateY(-1px);box-shadow:0 4px 12px rgba(33,150,243,0.3)}.query-price-btn:disabled {background:#ccc;cursor:not-allowed;transform:none;box-shadow:none}.new-calendar-summary {margin-top:20px;padding:20px;background:white;border-radius:12px;box-shadow:0 4px 20px rgba(0,0,0,0.1);border:1px solid #e9ecef}.inline-summary-content {color:#333}.inline-summary-content h4 {margin:0 0 15px 0;font-size:18px;font-weight:600;color:#333}.summary-item {display:flex;justify-content:space-between;align-items:center;padding:8px 0;font-size:14px;border-bottom:1px solid #f0f0f0}.summary-item:last-of-type {border-bottom:none}.summary-divider {height:1px;background:#e0e0e0;margin:15px 0}.summary-total {display:flex;justify-content:space-between;align-items:center;padding:12px 0;font-size:16px;font-weight:600;color:#2196f3;border-top:2px solid #e0e0e0;margin-top:10px}.inline-booking-btn {background:linear-gradient(135deg,#4caf50,#45a049);color:white;border:none;padding:15px 30px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all 0.3s;width:100%;margin-top:15px}.inline-booking-btn:hover {background:linear-gradient(135deg,#45a049,#3d8b40);transform:translateY(-2px);box-shadow:0 6px 20px rgba(76,175,80,0.3)}.calendar-loading {text-align:center;padding:40px 20px;color:#666}.calendar-loading i {font-size:24px;margin-bottom:10px;display:block}.loading-summary {text-align:center;padding:20px;color:#666}.loading-summary i {font-size:20px;margin-bottom:10px;display:block}.calendar-error {text-align:center;padding:40px 20px;color:#d32f2f}.calendar-error i {font-size:24px;margin-bottom:10px;display:block}.price-error-message {text-align:center;padding:20px}.error-header {color:#d32f2f;font-size:16px;font-weight:600;margin-bottom:10px}.error-header i {margin-right:8px}.error-content {color:#666;font-size:14px;margin-bottom:15px}.direct-booking-btn {background:linear-gradient(135deg,#ff9800,#f57c00);color:white;border:none;padding:12px 24px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all 0.3s;width:100%}.direct-booking-btn:hover {background:linear-gradient(135deg,#f57c00,#ef6c00);transform:translateY(-1px);box-shadow:0 4px 12px rgba(255,152,0,0.3)}@media (max-width:480px) {.new-calendar-container {padding:15px}.calendar-legend {flex-direction:column;gap:8px;align-items:center}.calendar-day {font-size:12px}.booking-options {padding:12px}.new-calendar-summary {padding:15px}.booking-confirmation-dialog {padding:0.5rem;align-items:flex-start;padding-top:2rem}.booking-confirmation-content {padding:1rem;max-width:none;width:calc(100% - 1rem);max-height:calc(100vh - 4rem);margin-top:auto;margin-bottom:2rem}@media (max-width:375px) {.booking-confirmation-content {padding:0 !important;width:calc(100% - 1rem) !important;margin:0.5rem auto !important}.booking-confirmation-header {padding:1rem !important;border-bottom:1px solid #e5e7eb !important}.booking-confirmation-header h3 {font-size:1.2rem !important;margin-bottom:0.5rem !important}.booking-confirmation-header p {font-size:0.9rem !important;margin:0 !important}.booking-confirmation-details {padding:1rem !important}.booking-confirmation-detail-item {padding:0.75rem 0 !important;border-bottom:1px solid #f3f4f6 !important}.booking-confirmation-detail-label {font-size:0.8rem !important;margin-bottom:0.25rem !important}.booking-confirmation-detail-value {font-size:1rem !important}.mobile-scroll-hint {font-size:0.85rem !important;padding:0.75rem !important}}}@keyframes highlightSummary {0% {background-color:transparent;transform:scale(1)}20% {background-color:rgba(59,130,246,0.1);transform:scale(1.02)}80% {background-color:rgba(59,130,246,0.05);transform:scale(1.01)}100% {background-color:transparent;transform:scale(1)}}.booking-confirmation-dialog {position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,0.5);display:flex;justify-content:center;align-items:center;z-index:10000;opacity:0;visibility:hidden;transition:all 0.3s ease;padding:1rem;overflow-y:auto}.booking-confirmation-dialog.show {opacity:1;visibility:visible}.booking-confirmation-content {background:white;border-radius:0.5rem;padding:1.5rem;max-width:500px;width:100%;max-height:calc(100vh - 2rem);overflow-y:auto;box-shadow:0 0.5rem 1rem rgba(0,0,0,0.15);transition:transform 0.3s ease;position:relative;-webkit-overflow-scrolling:touch}.booking-confirmation-price-breakdown {background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:16px;margin:10px 0}.price-breakdown-item {display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #e9ecef}.price-breakdown-item:last-of-type {border-bottom:none}.price-breakdown-total {display:flex;justify-content:space-between;align-items:center;padding:12px 0 8px 0;margin-top:8px;border-top:2px solid #dee2e6;font-weight:600;font-size:16px;color:#495057}.price-breakdown-label {font-size:14px;color:#6c757d}.price-breakdown-value {font-size:14px;font-weight:500;color:#495057}.price-breakdown-total .price-breakdown-label,.price-breakdown-total .price-breakdown-value {font-size:16px;font-weight:600;color:#495057}.booking-confirmation-header {text-align:center;margin-bottom:20px}.booking-confirmation-header h3 {color:#333;margin:0 0 10px 0;font-size:28px}.booking-confirmation-header p {color:#666;margin:0;font-size:18px}.booking-confirmation-details {background:#f8f9fa;border-radius:8px;padding:20px;margin:20px 0}.booking-confirmation-detail-item {display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:18px}.booking-confirmation-detail-item:last-child {margin-bottom:0;border-top:1px solid #e9ecef;padding-top:12px;font-weight:bold;font-size:16px}.booking-confirmation-detail-label {color:#666}.booking-confirmation-detail-value {color:#333;font-weight:500;text-align:right}.booking-confirmation-notice {margin:20px 0;padding:0}.triphome-notice {background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:16px;margin:0}.triphome-notice h4 {color:#495057;margin:0 0 12px 0;font-size:20px;font-weight:600}.triphome-notice p {color:#6c757d;margin:0 0 8px 0;font-size:18px;line-height:1.5}.triphome-notice p:last-child {margin-bottom:0}.triphome-notice strong {color:#495057;font-weight:600}.triphome-link a {color:#007bff;text-decoration:none;font-weight:500}.triphome-link a:hover {color:#0056b3;text-decoration:underline}.booking-confirmation-actions {display:flex;gap:15px;margin-top:25px}.booking-confirmation-btn {flex:1;padding:12px 20px;border:none;border-radius:6px;font-size:25px;font-weight:500;cursor:pointer;transition:all 0.2s ease}.booking-confirmation-cancel {background:#f8f9fa;color:#666;border:1px solid #dee2e6}.booking-confirmation-cancel:hover {background:#e9ecef;color:#495057}.booking-confirmation-confirm {background:#007bff;color:white}.booking-confirmation-confirm:hover {background:#0056b3}.booking-confirmation-close {position:absolute;top:15px;right:20px;background:none;border:none;font-size:24px;color:#999;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all 0.2s ease}.booking-confirmation-close:hover {background:#f8f9fa;color:#666}@media (max-width:768px) {.booking-confirmation-content {padding:20px}.booking-confirmation-actions {flex-direction:column}.booking-confirmation-btn {width:100%}}.search-results-container .rooms-container {max-width:1200px;margin:0 auto;padding:40px 20px}.search-results-container .rooms-grid {display:grid;grid-template-columns:1fr;gap:30px}.room-card-enhanced {background:linear-gradient(135deg,rgba(255,255,255,0.9) 0%,rgba(248,250,252,0.9) 100%);backdrop-filter:blur(20px);border-radius:20px;box-shadow:0 3px 16px rgba(0,0,0,0.06),0 6px 32px rgba(0,0,0,0.03),inset 0 1px 0 rgba(255,255,255,0.4);overflow:hidden;margin-bottom:30px;transition:all 0.5s cubic-bezier(0.23,1,0.32,1);border:1px solid rgba(255,255,255,0.2);position:relative}.room-card-enhanced.available {background:linear-gradient(135deg,rgba(16,185,129,0.05) 0%,rgba(255,255,255,0.95) 20%,rgba(240,253,244,0.9) 100%);border:1px solid rgba(16,185,129,0.2);box-shadow:0 8px 32px rgba(16,185,129,0.15),0 16px 64px rgba(16,185,129,0.08),inset 0 1px 0 rgba(255,255,255,0.6),0 0 0 1px rgba(16,185,129,0.1)}.room-card-enhanced.available::before {content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,rgba(16,185,129,0.8) 0%,rgba(34,197,94,0.6) 50%,rgba(16,185,129,0.8) 100%);animation:shimmer 3s ease-in-out infinite}@keyframes shimmer {0%,100% {opacity:0.6}50% {opacity:1}}.room-card-enhanced:hover {transform:translateY(-8px) scale(1.01);box-shadow:0 12px 48px rgba(0,0,0,0.12),0 24px 80px rgba(0,0,0,0.08),inset 0 1px 0 rgba(255,255,255,0.6)}.room-card-enhanced.available:hover {box-shadow:0 16px 64px rgba(16,185,129,0.25),0 32px 96px rgba(16,185,129,0.15),inset 0 1px 0 rgba(255,255,255,0.8),0 0 0 1px rgba(16,185,129,0.2)}.room-header-new {display:flex;flex-direction:row;align-items:flex-start;gap:20px;padding:20px}.room-images-section {flex:0 0 280px;position:relative}.room-main-image-container {position:relative;border-radius:16px;overflow:hidden;box-shadow:0 6px 24px rgba(0,0,0,0.08)}.room-main-image {width:100%;height:200px;object-fit:cover;transition:transform 0.6s ease}.room-card-enhanced:hover .room-main-image {transform:scale(1.08)}.image-overlay {position:absolute;bottom:12px;right:12px;background:rgba(0,0,0,0.7);color:white;padding:8px 14px;border-radius:20px;font-size:0.85rem;font-weight:600;backdrop-filter:blur(10px);cursor:pointer;transition:all 0.3s ease}.image-overlay:hover {background:rgba(0,0,0,0.85);transform:scale(1.05)}.thumbnail-gallery {display:flex;gap:8px;margin-top:12px}.thumbnail-item {flex:1;height:80px;border-radius:8px;overflow:hidden;cursor:pointer;transition:transform 0.3s ease;position:relative}.thumbnail-item:hover {transform:scale(1.05)}.thumbnail-item img {width:100%;height:100%;object-fit:cover;transition:transform 0.3s ease}.thumbnail-item:hover img {transform:scale(1.1)}.thumbnail-overlay {position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.4);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity 0.3s ease}.thumbnail-item:hover .thumbnail-overlay {opacity:1}.thumbnail-overlay i {color:white;font-size:1.5rem}.thumbnail-more {display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,0.8);color:white;font-size:0.8rem;font-weight:600}.room-info-section {flex:1;display:flex;flex-direction:column;gap:16px}.room-title-section {border-bottom:1px solid rgba(0,0,0,0.08);padding-bottom:15px}.room-title {font-size:1.6rem;font-weight:700;color:var(--primary-color,#1e40af);margin-bottom:5px;line-height:1.2}.room-nickname {font-size:0.95rem;margin:0;font-size:1.1rem;color:#6b7280;font-weight:500;padding:8px 16px;background:rgba(107,114,128,0.08);border-radius:20px;display:inline-block;backdrop-filter:blur(10px)}.room-details {display:flex;flex-direction:column;gap:12px}.room-specs {display:flex;gap:20px;flex-wrap:wrap}.spec-item {display:flex;align-items:center;gap:6px;color:var(--dark-gray,#6b7280);font-size:0.9rem;font-weight:500}.spec-item i {color:var(--primary-color,#1e40af)}.room-amenities h4 {font-size:1rem;color:var(--primary-color,#1e40af);margin-bottom:10px;font-weight:600}.amenities-list {display:block;width:100%}.amenities-visible,.amenities-hidden {display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:6px;margin-bottom:8px}@media (min-width:480px) {.amenities-visible,.amenities-hidden {grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:7px}}@media (min-width:768px) {.amenities-visible,.amenities-hidden {grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}}@media (min-width:1024px) {.amenities-visible,.amenities-hidden {grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}}@media (min-width:480px) {.amenity-item {padding:7px 10px;font-size:0.8rem;min-height:30px;gap:6px}.amenity-item i {width:14px;font-size:0.8rem}}@media (min-width:768px) {.amenity-item {padding:8px 12px;border-radius:16px;font-size:0.85rem;min-height:32px;gap:8px}.amenity-item i {width:16px;font-size:0.9rem}}.amenity-item {background:rgba(30,64,175,0.08);color:var(--primary-color,#1e40af);padding:6px 8px;border-radius:12px;font-size:0.75rem;font-weight:500;display:flex;align-items:center;gap:5px;transition:all 0.2s ease;white-space:nowrap;min-height:28px;box-sizing:border-box;justify-content:flex-start}.amenity-item i {width:12px;text-align:center;font-size:0.75rem;flex-shrink:0}.amenity-item:hover {background:rgba(30,64,175,0.15);transform:translateY(-1px)}.amenity-item.more-amenities,.amenity-item.less-amenities {background:var(--light-gray,#f3f4f6);color:var(--dark-gray,#6b7280);cursor:pointer;justify-self:start}.amenity-item.more-amenities:hover,.amenity-item.less-amenities:hover {background:#e5e7eb;color:#374151}.room-actions {display:flex;gap:15px;align-items:center;margin-top:56px;padding-top:20px;border-top:1px solid rgba(0,0,0,0.08)}.btn-primary {background:linear-gradient(135deg,#2196f3,#1976d2);color:white;border:none;padding:12px 24px;border-radius:12px;font-size:0.95rem;font-weight:600;cursor:pointer;transition:all 0.3s ease;display:flex;align-items:center;gap:8px;text-decoration:none;box-shadow:0 4px 16px rgba(30,64,175,0.3)}.btn-primary:hover {transform:translateY(-2px);box-shadow:0 8px 24px rgba(30,64,175,0.4)}.btn-secondary {background:rgba(107,114,128,0.1);color:var(--dark-gray,#6b7280);border:1px solid rgba(107,114,128,0.2);padding:10px 20px;border-radius:10px;font-size:0.9rem;font-weight:500;cursor:pointer;transition:all 0.3s ease;text-decoration:none;display:flex;align-items:center;gap:6px}.btn-secondary:hover {background:rgba(107,114,128,0.15);border-color:rgba(107,114,128,0.3);transform:translateY(-1px)}.btn-find-other-dates {background:rgba(251,146,60,0.1);color:#ea580c;border:1px solid rgba(251,146,60,0.2)}.btn-find-other-dates:hover {background:rgba(251,146,60,0.15);border-color:rgba(251,146,60,0.3)}.room-unavailable {opacity:0.7;position:relative}.unavailable-notice {background:rgba(239,68,68,0.1);color:#dc2626;padding:12px 16px;border-radius:12px;margin:15px 0;display:flex;align-items:center;gap:8px;font-size:0.9rem;font-weight:500;border:1px solid rgba(239,68,68,0.2)}.availability-indicator {background:linear-gradient(135deg,#10b981,#059669);color:white;padding:6px 12px;border-radius:16px;font-size:0.8rem;font-weight:600;display:inline-flex;align-items:center;gap:5px;margin-top:10px}.availability-indicator::before {content:'✓';font-weight:bold}.room-price-section {margin-top:20px;visibility:visible !important;opacity:1 !important}.inline-booking-summary {background:rgba(248,250,252,0.6);border:1px solid rgba(203,213,225,0.4);border-radius:16px;padding:20px;margin-top:15px;display:block !important;visibility:visible !important;opacity:1 !important}.inline-summary-content h4 {color:var(--primary-color,#1e40af);font-size:1.1rem;margin-bottom:15px;font-weight:600}.booking-dates {background:rgba(30,64,175,0.05);border:1px solid rgba(30,64,175,0.1);border-radius:8px;padding:12px;margin-bottom:15px}.date-info {display:flex;align-items:center;margin-bottom:8px}.date-info:last-child {margin-bottom:0}.date-info i {color:var(--primary-color,#1e40af);margin-right:8px;width:16px}.date-label {color:#6b7280;margin-right:8px;font-weight:500}.date-value {color:#374151;font-weight:600}.summary-item {display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:0.9rem}.summary-label {color:var(--dark-gray,#6b7280)}.summary-value {color:#dc2626;font-weight:700;font-size:1.1rem}.summary-divider {height:1px;background:rgba(203,213,225,0.4);margin:12px 0}.summary-total {display:flex;justify-content:space-between;align-items:center;font-weight:800;font-size:1.2rem;color:#dc2626;padding-top:8px;border-top:2px solid #dc2626}@media (max-width:768px) {.room-nickname {font-size:0.9rem}.room-header-new {flex-direction:column;gap:16px;padding:16px}.room-images-section {flex:none;width:100%}.room-main-image {height:180px}.thumbnail-item {height:60px}.room-info-section {gap:12px;padding:0;width:100%;text-align:center}.room-title {font-size:1.4rem}.room-actions {flex-direction:column;align-items:stretch;margin-top:15px}.btn-primary,.btn-secondary {justify-content:center;padding:10px 20px}.room-specs {justify-content:space-between}}@media (max-width:480px) {.room-nickname {font-size:0.8rem}.room-info-section {gap:12px;padding:0;width:100%;text-align:center}.rooms-container {padding:20px 15px}.room-card-enhanced {margin-bottom:30px}.room-header-new {padding:20px}.room-title {font-size:1.5rem}.thumbnail-gallery {flex-wrap:wrap}.thumbnail-item {flex:1 1 calc(33.333% - 6px);min-width:60px}}.airbnb-image-gallery-overlay {position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.95);z-index:10000;display:flex;flex-direction:column;backdrop-filter:blur(10px)}.airbnb-gallery-container {width:100%;height:100vh;display:flex;flex-direction:column;overflow:hidden}.gallery-toolbar {background:rgba(0,0,0,0.5);padding:20px 30px;display:flex;justify-content:space-between;align-items:center;color:white;border-bottom:1px solid rgba(255,255,255,0.1)}.gallery-close-btn {background:none;border:none;color:white;font-size:24px;cursor:pointer;padding:10px;border-radius:50%;transition:background-color 0.3s ease;width:40px;height:40px;display:flex;align-items:center;justify-content:center}.gallery-close-btn:hover {background:rgba(255,255,255,0.1)}.gallery-title h3 {margin:0 0 5px 0;font-size:1.2rem;font-weight:600}.image-count {font-size:0.9rem;opacity:0.8}.gallery-scroll-container {flex:1;padding:30px;overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:24px;align-content:start;max-width:1400px;margin:0 auto}.gallery-image-item {position:relative;cursor:pointer;border-radius:12px;overflow:hidden;background:#222;transition:transform 0.3s ease;aspect-ratio:4/3}.gallery-image-item:hover {transform:scale(1.02)}.gallery-image-item img {width:100%;height:100%;object-fit:cover;transition:opacity 0.3s ease}.gallery-image-item:hover img {opacity:0.9}.image-caption {position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,0.8));color:white;padding:20px 15px 15px;font-size:0.9rem}.image-viewer-modal {position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.98);z-index:10001;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(10px)}.viewer-container {width:100%;height:100vh;display:flex;flex-direction:column;position:relative}.viewer-close-btn {position:absolute;top:20px;right:20px;background:rgba(0,0,0,0.7);border:none;color:white;font-size:20px;cursor:pointer;padding:12px;border-radius:50%;z-index:10;transition:background-color 0.3s ease;width:44px;height:44px;display:flex;align-items:center;justify-content:center}.viewer-close-btn:hover {background:rgba(0,0,0,0.9)}.viewer-main {flex:1;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.viewer-image-container {max-width:90%;max-height:90%;display:flex;align-items:center;justify-content:center}.viewer-image-container img {max-width:100%;max-height:100%;object-fit:contain;border-radius:8px;box-shadow:0 8px 32px rgba(0,0,0,0.5)}.viewer-nav-btn {position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,0.6);border:none;color:white;font-size:24px;cursor:pointer;padding:20px 15px;border-radius:50%;transition:all 0.3s ease;z-index:10;width:60px;height:60px;display:flex;align-items:center;justify-content:center}.viewer-nav-btn:hover:not(:disabled) {background:rgba(0,0,0,0.8);transform:translateY(-50%) scale(1.1)}.viewer-nav-btn:disabled {opacity:0.3;cursor:not-allowed}.viewer-nav-btn.prev {left:30px}.viewer-nav-btn.next {right:30px}.viewer-footer {background:rgba(0,0,0,0.7);color:white;padding:20px 30px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid rgba(255,255,255,0.1)}.viewer-counter {font-size:1rem;font-weight:500}.viewer-caption {font-size:0.9rem;opacity:0.9;max-width:60%;text-align:right}@media (max-width:768px) {.room-nickname {font-size:0.9rem}.gallery-toolbar {padding:15px 20px}.gallery-title h3 {font-size:1rem}.gallery-scroll-container {grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;padding:20px}.viewer-nav-btn {width:50px;height:50px;font-size:20px;padding:15px 12px}.viewer-nav-btn.prev {left:15px}.viewer-nav-btn.next {right:15px}.viewer-footer {flex-direction:column;gap:10px;text-align:center}.viewer-caption {max-width:100%;text-align:center}}@media (max-width:480px) {.gallery-toolbar {padding:12px 15px}.gallery-scroll-container {grid-template-columns:1fr;gap:16px;padding:16px}.viewer-close-btn {top:15px;right:15px;width:40px;height:40px;font-size:18px}.viewer-nav-btn {width:44px;height:44px;font-size:18px}.viewer-nav-btn.prev {left:10px}.viewer-nav-btn.next {right:10px}}.image-gallery-overlay {position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.95);z-index:10000;display:flex;flex-direction:column;opacity:0;visibility:hidden;transition:all 0.3s ease;box-sizing:border-box}.image-gallery-overlay.active {opacity:1;visibility:visible}.gallery-header {display:flex;align-items:center;justify-content:space-between;padding:20px 30px;background:rgba(0,0,0,0.95);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,0.1);position:relative;z-index:10001;flex-shrink:0}.gallery-info h2 {color:white;margin:0;font-size:1.5rem;font-weight:600}.gallery-info .image-count {color:rgba(255,255,255,0.7);font-size:0.9rem;margin-top:4px}.gallery-close-btn {background:rgba(255,255,255,0.1);border:none;color:white;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all 0.3s ease;font-size:1.2rem}.gallery-close-btn:hover {background:rgba(255,255,255,0.2);transform:scale(1.1)}.gallery-main {flex:1;overflow-y:auto;padding:30px;padding-top:20px;height:calc(100vh - 80px);margin-top:0}.gallery-grid {display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:24px;max-width:1400px;margin:0 auto;align-content:start;padding-top:0;margin-top:0}.gallery-item {position:relative;aspect-ratio:4/3;border-radius:12px;overflow:hidden;cursor:pointer;transition:all 0.3s ease;background:#222;width:100%}.gallery-item:hover {transform:translateY(-4px);box-shadow:0 8px 25px rgba(0,0,0,0.4)}.gallery-item img {width:100%;height:100%;object-fit:cover;transition:transform 0.3s ease}.gallery-item:hover img {transform:scale(1.05)}.gallery-item-overlay {position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(transparent 60%,rgba(0,0,0,0.8));opacity:0;transition:opacity 0.3s ease;display:flex;align-items:flex-end;padding:16px}.gallery-item:hover .gallery-item-overlay {opacity:1}.gallery-item-info {color:white}.gallery-item-info h4 {margin:0 0 4px 0;font-size:1rem;font-weight:600}.gallery-item-info p {margin:0;font-size:0.85rem;opacity:0.8}.image-viewer {position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.98);z-index:10001;display:none;align-items:center;justify-content:center}.viewer-container {position:relative;max-width:90vw;max-height:90vh;display:flex;align-items:center;justify-content:center}.viewer-image {max-width:100%;max-height:100%;object-fit:contain;border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,0.5)}.viewer-close {position:absolute;top:20px;right:20px;background:rgba(255,255,255,0.1);border:none;color:white;width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.5rem;transition:all 0.3s ease}.viewer-close:hover {background:rgba(255,255,255,0.2);transform:scale(1.1)}.viewer-nav {position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,0.1);border:none;color:white;width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.2rem;transition:all 0.3s ease;backdrop-filter:blur(10px)}.viewer-nav:hover {background:rgba(255,255,255,0.2);transform:translateY(-50%) scale(1.1)}.viewer-nav:disabled {opacity:0.3;cursor:not-allowed}.viewer-nav.prev {left:20px}.viewer-nav.next {right:20px}.viewer-info {position:absolute;bottom:20px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,0.7);color:white;padding:12px 20px;border-radius:20px;backdrop-filter:blur(10px);text-align:center}.viewer-counter {font-size:0.9rem;opacity:0.8;margin-bottom:4px}.viewer-caption {font-size:1rem;font-weight:500}@media (max-width:768px) {.gallery-header {padding:15px 20px}.gallery-main {padding:20px 15px;padding-top:30px}.gallery-grid {grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;margin-top:0}.gallery-info h2 {font-size:1.2rem}.viewer-nav {width:44px;height:44px;font-size:1rem}.viewer-close {width:44px;height:44px;font-size:1.2rem;top:15px;right:15px}.viewer-nav.prev {left:15px}.viewer-nav.next {right:15px}}@media (max-width:480px) {.gallery-grid {grid-template-columns:1fr;gap:12px}.gallery-main {padding:15px 10px}.gallery-header {padding:12px 15px}}.gallery-loading {display:flex;align-items:center;justify-content:center;height:200px;color:white;font-size:1.1rem}.loading-spinner {display:inline-block;width:20px;height:20px;border:2px solid rgba(255,255,255,0.3);border-radius:50%;border-top-color:white;animation:spin 1s linear infinite;margin-right:10px}@keyframes spin {to {transform:rotate(360deg)}}