:root { --primary: #002927; --primary-rgb: 0, 41, 39; --secondary: #03817b; --bg: #f7f7f7; --white: #fff; --border: #e0e0e0; --logo-url: url("https://raw.githubusercontent.com/faizux/rental_clickcrafts/refs/heads/main/logobnb.png"); --primary-font: "Montserrat", Arial, sans-serif; --secondary-font: "Montserrat", Arial, sans-serif; --primary-font-scale: 1; --secondary-font-scale: 1; --safe-area-inset-bottom: env(safe-area-inset-bottom, 0px); } * { box-sizing: border-box; margin: 0; padding: 0; -webkit-tap-highlight-color: transparent; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } button, .nav-item, .icon-box, .hero-start-btn, .back-button, input[type="search"], a { outline: none !important; -webkit-tap-highlight-color: transparent !important; -webkit-focus-ring-color: transparent !important; border: none; } button:focus-visible, .nav-item:focus-visible, .icon-box:focus-visible, .hero-start-btn:focus-visible, .back-button:focus-visible { outline: 2px solid var(--primary) !important; outline-offset: 2px !important; } body, html { height: 100%; font-family: var(--secondary-font); background: var(--bg); -webkit-tap-highlight-color: transparent; -webkit-touch-callout: none; -webkit-user-select: none; user-select: none; /* Ensure proper viewport handling on mobile */ overflow-x: hidden; position: relative; } /* Standard viewport handling */ body, html { height: 100vh; min-height: 100vh; } /* Mobile-specific bottom navigation fixes */ @media (max-width: 768px) { .bottom-nav { position: fixed !important; bottom: 0 !important; left: 0 !important; right: 0 !important; width: 100% !important; z-index: 999999 !important; /* Force hardware acceleration */ -webkit-transform: translateZ(0) !important; transform: translateZ(0) !important; /* Ensure it's not affected by parent containers */ isolation: isolate !important; contain: layout style paint !important; } } /* Ensure all headings use primary font */ h1, h2, h3, h4, h5, h6 { font-family: var(--primary-font); } /* Apply font scaling to headings */ h1 { font-size: calc(2rem * var(--primary-font-scale)); } h2 { font-size: calc(1.75rem * var(--primary-font-scale)); } h3 { font-size: calc(1.5rem * var(--primary-font-scale)); } h4 { font-size: calc(1.25rem * var(--primary-font-scale)); } h5 { font-size: calc(1.125rem * var(--primary-font-scale)); } h6 { font-size: calc(1rem * var(--primary-font-scale)); } /* Ensure all paragraphs and general text use secondary font */ p, span, div, li, td, th { font-family: var(--secondary-font); font-size: calc(1rem * var(--secondary-font-scale)); } /* Apply font scaling to secondary font elements */ p { font-size: calc(1rem * var(--secondary-font-scale)); } .hero-host { font-size: calc(1.1rem * var(--secondary-font-scale)); } /* Override for specific elements that should use primary font */ .hero-title, .section-title, .popup-title, .heading-title, .accordion-item-title, .info-label, .instructions-title { font-family: var(--primary-font); } /* Apply font scaling to primary font elements */ .section-title { font-size: calc(1.375rem * var(--primary-font-scale)); } .popup-title { font-size: calc(1.125rem * var(--primary-font-scale)); } .heading-title { font-size: calc(1.1rem * var(--primary-font-scale)); } .accordion-item-title { font-size: calc(1.125rem * var(--primary-font-scale)); } .info-label { font-size: calc(1.25rem * var(--primary-font-scale)); } .instructions-title { font-size: calc(1.125rem * var(--primary-font-scale)); } #hero { position: fixed; inset: 0; width: 100vw; height: 100vh; background: url("https://raw.githubusercontent.com/faizux/rental_clickcrafts/refs/heads/main/background_CC.jpg") center/cover no-repeat; display: flex; align-items: center; justify-content: center; z-index: 10; animation: heroFadeIn 1.5s ease-out; transform: translateY(0); transition: transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94); cursor: grab; } #hero:active { cursor: grabbing; } /* PWA Install Prompt Styles */ #pwa-install-prompt { backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.1); user-select: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; } #pwa-install-prompt button { transition: all 0.2s ease; -webkit-tap-highlight-color: transparent; } #pwa-install-prompt button:hover { transform: scale(1.05); } #pwa-install-prompt button:active { transform: scale(0.95); } /* About Host Install Button Styles */ .host-install-button { padding: 1.5rem 2rem 2rem 2rem; border-top: 1px solid var(--gray-100); } .install-btn { width: 100%; background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%); border: none; border-radius: 12px; padding: 15px 20px; color: white; font-family: var(--secondary-font); cursor: pointer; display: flex; align-items: center; gap: 15px; transition: all 0.3s ease; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); -webkit-tap-highlight-color: transparent; } .install-btn:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15); } .install-btn:active { transform: translateY(0); box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); } .install-btn i { font-size: 24px; opacity: 0.9; } .install-btn-text { flex: 1; text-align: left; } .install-btn-title { display: block; font-size: 16px; font-weight: 600; margin-bottom: 2px; } .install-btn-subtitle { display: block; font-size: 12px; opacity: 0.8; font-weight: 400; } #hero.slide-up { transform: translateY(-100vh); } #hero.slide-down { transform: translateY(0); } @keyframes heroFadeIn { 0% { opacity: 0; transform: scale(1.1); } 100% { opacity: 1; transform: scale(1); } } @keyframes slideInFromTop { 0% { opacity: 0; transform: translateY(-50px); } 100% { opacity: 1; transform: translateY(0); } } @keyframes slideInFromLeft { 0% { opacity: 0; transform: translateX(-50px); } 100% { opacity: 1; transform: translateX(0); } } @keyframes slideInFromRight { 0% { opacity: 0; transform: translateX(50px); } 100% { opacity: 1; transform: translateX(0); } } @keyframes fadeInUp { 0% { opacity: 0; transform: translateY(30px); } 100% { opacity: 1; transform: translateY(0); } } @keyframes bounceIn { 0% { opacity: 0; transform: scale(0.3) rotate(-10deg); } 50% { opacity: 1; transform: scale(1.1) rotate(5deg); } 100% { opacity: 1; transform: scale(1) rotate(0deg); } } @keyframes arrowBounce { 0%, 100% { opacity: 0.8; transform: translateY(0); } 50% { opacity: 1; transform: translateY(10px); } } @keyframes circlePulse { 0%, 100% { transform: scale(1); box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15), 0 0 0 0 rgba(var(--primary-rgb, 79, 70, 229), 0.3); } 50% { transform: scale(1.05); box-shadow: 0 6px 30px rgba(0, 0, 0, 0.2), 0 0 0 10px rgba(var(--primary-rgb, 79, 70, 229), 0); } } .hero-overlay { background: rgba(var(--primary-rgb), 0.95); border-radius: 16px; box-shadow: 0 8px 40px rgba(0, 0, 0, 0.3); border: 1px solid rgba(var(--primary-rgb), 1); padding: 2.5rem 2rem 2rem 2rem; max-width: 95vw; width: 470px; color: var(--white); display: flex; flex-direction: column; align-items: center; text-align: center; position: relative; overflow: hidden; } .hero-overlay::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 2px; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent); animation: borderSlide 3s ease-in-out infinite; } .hero-overlay::after { content: ''; position: absolute; bottom: 0; right: -100%; width: 100%; height: 2px; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); animation: borderSlide 3s ease-in-out infinite reverse; } @keyframes borderSlide { 0% { left: -100%; } 100% { left: 100%; } } .hero-overlay { animation: fadeInUp 1s ease-out 0.3s both; } .hero-logo { width: auto; height: 64px; max-width: 200px; margin-bottom: 1rem; animation: bounceIn 1.2s ease-out 0.6s both; object-fit: contain; } .hero-logo.profile-photo { border-radius: 50%; object-fit: cover; border: 3px solid rgba(255, 255, 255, 0.3); box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2); } .topbar-logo { height: 40px; width: auto; max-width: 120px; object-fit: contain; transition: all 0.3s ease; } .topbar-logo.profile-photo { border-radius: 50%; object-fit: cover; border: 2px solid rgba(255, 255, 255, 0.2); box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); } .hero-title { font-family: var(--primary-font); font-size: calc(2.5rem * var(--primary-font-scale)); font-weight: 800; margin-bottom: 0.8rem; text-align: center; line-height: 1.2; letter-spacing: -0.01em; text-shadow: 0 2px 20px rgba(0, 0, 0, 0.6), 0 1px 3px rgba(0, 0, 0, 0.8), 0 0 15px rgba(0, 0, 0, 0.4); animation: slideInFromLeft 0.8s ease-out 0.9s both; } .hero-host { font-size: 1.25rem; font-weight: 600; margin-bottom: 1.5rem; text-align: center; color: rgba(255, 255, 255, 0.98); text-shadow: 0 1px 10px rgba(0, 0, 0, 0.5), 0 1px 3px rgba(0, 0, 0, 0.7), 0 0 8px rgba(0, 0, 0, 0.3); animation: slideInFromRight 0.8s ease-out 1.1s both; } .hero-info-section { display: flex; flex-direction: column; gap: 0.8rem; margin-bottom: 1.8rem; width: 100%; transform: translateY(10%); } .hero-contact { font-size: calc(1rem * var(--secondary-font-scale)); font-weight: 500; color: rgba(255, 255, 255, 0.98); text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); display: flex; align-items: center; justify-content: center; gap: 0.8rem; padding: 0.7rem 1.2rem; background: linear-gradient(rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.05)), rgba(var(--primary-rgb), 0.85); border-radius: 16px; border: 1px solid rgba(var(--primary-rgb), 1); box-shadow: 0 6px 25px rgba(0, 0, 0, 0.25); transition: all 0.3s ease; width: 100%; max-width: 320px; margin: 0 auto; } .hero-contact:hover { background: linear-gradient(rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0.08)), rgba(var(--primary-rgb), 0.95); box-shadow: 0 10px 35px rgba(0, 0, 0, 0.35); border-color: rgba(var(--primary-rgb), 1); transform: translateY(-3px); } .hero-contact:nth-of-type(1) { animation: slideInFromLeft 0.8s ease-out 1.3s both; } .hero-contact:nth-of-type(2) { animation: slideInFromRight 0.8s ease-out 1.5s both; } .hero-contact i { font-size: 1.2rem; color: rgba(255, 255, 255, 0.95); background: rgba(255, 255, 255, 0.15); padding: 0.5rem; border-radius: 50%; width: 2.2rem; height: 2.2rem; display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; flex-shrink: 0; } .hero-contact span { flex: 1; text-align: center; line-height: 1.4; } .hero-contact:hover i { background: rgba(255, 255, 255, 0.25); transform: scale(1.1); } .email-icon { color: rgba(255, 255, 255, 0.95); background: rgba(255, 255, 255, 0.15); padding: 0.5rem; border-radius: 50%; width: 2.2rem; height: 2.2rem; display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; flex-shrink: 0; } .hero-contact:hover .email-icon { background: rgba(255, 255, 255, 0.25); transform: scale(1.1); } .clickable-contact { text-decoration: none; color: inherit; cursor: pointer; transition: all 0.3s ease; } .clickable-contact:hover { text-decoration: none; color: inherit; } .clickable-contact:visited { color: inherit; } .clickable-contact:active { color: inherit; } .hero-address { font-size: calc(1rem * var(--secondary-font-scale)); font-weight: 500; margin-bottom: 0; color: rgba(255, 255, 255, 0.98); text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); padding: 1rem 1.5rem; background: linear-gradient(rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.05)), rgba(var(--primary-rgb), 0.85); border-radius: 20px; border: 1px solid rgba(var(--primary-rgb), 1); box-shadow: 0 6px 25px rgba(0, 0, 0, 0.25); line-height: 1.4; animation: slideInFromLeft 0.8s ease-out 1.7s both; transition: all 0.3s ease; display: flex; align-items: center; justify-content: center; gap: 0.8rem; width: 100%; max-width: 320px; margin: 0 auto; } .hero-address:hover { background: linear-gradient(rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0.08)), rgba(var(--primary-rgb), 0.95); box-shadow: 0 10px 35px rgba(0, 0, 0, 0.35); border-color: rgba(var(--primary-rgb), 1); transform: translateY(-3px); } .hero-address i { font-size: 1.2rem; color: rgba(255, 255, 255, 0.95); background: rgba(255, 255, 255, 0.15); padding: 0.5rem; border-radius: 50%; width: 2.2rem; height: 2.2rem; display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; flex-shrink: 0; } .hero-address span { flex: 1; text-align: center; line-height: 1.4; } .hero-address:hover i { background: rgba(255, 255, 255, 0.25); transform: scale(1.1); } .hero-start-btn { margin-top: 1.5rem; position: relative; background: none; border: none; cursor: pointer; animation: fadeInUp 1s ease-out 1.9s both; padding: 0; -webkit-tap-highlight-color: transparent !important; -webkit-touch-callout: none !important; -webkit-user-select: none !important; user-select: none !important; outline: none !important; } .start-button-container { position: relative; width: 80px; height: 160px; display: flex; flex-direction: column; align-items: center; justify-content: space-between; padding: 20px 0; } .start-button-bg { position: absolute; width: 80px; height: 160px; background: linear-gradient( to bottom, rgba(255, 255, 255, 0.9) 0%, rgba(255, 255, 255, 0.3) 50%, rgba(255, 255, 255, 0) 100% ); border-radius: 40px; backdrop-filter: blur(10px); box-shadow: 0 8px 32px rgba(255, 255, 255, 0.2); transition: all 0.3s ease; } .start-button-circle { position: relative; width: 60px; height: 60px; background: white; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: calc(0.85rem * var(--secondary-font-scale)); font-weight: 700; color: var(--primary); z-index: 2; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15), 0 2px 8px rgba(0, 0, 0, 0.08); transition: all 0.3s ease; text-transform: uppercase; letter-spacing: 1px; margin-top: 10px; animation: circlePulse 2s ease-in-out infinite; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); } .start-arrows { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; gap: 8px; } .arrow-down { width: 0; height: 0; border-left: 8px solid transparent; border-right: 8px solid transparent; border-top: 12px solid rgba(255, 255, 255, 0.8); animation: arrowBounce 2s ease-in-out infinite; } .arrow-down:nth-child(2) { animation-delay: 0.3s; border-top-color: rgba(255, 255, 255, 0.6); } .hero-start-btn:hover .start-button-bg { background: linear-gradient( to bottom, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0.5) 50%, rgba(255, 255, 255, 0.1) 100% ); transform: scale(1.05); } .hero-start-btn:hover .start-button-circle { transform: scale(1.1); box-shadow: 0 6px 30px rgba(0, 0, 0, 0.2); } .hero-start-btn:active .start-button-circle { transform: scale(0.95); transition: transform 0.1s ease-out; } .hero-start-btn:active .start-button-bg { transform: scale(0.98); transition: transform 0.1s ease-out; } @media (max-width: 600px) { .hero-overlay { width: 90vw; padding: 1.5rem 1.2rem; height: 90vh; } .hero-title { font-size: calc(2rem * var(--primary-font-scale)); line-height: 1.1; margin-bottom: 0.6rem; } .hero-host { font-size: calc(1.1rem * var(--secondary-font-scale)); margin-bottom: 1.2rem; } .hero-info-section { gap: 0.6rem; margin-bottom: 1.4rem; transform: translateY(8%); } .hero-contact { font-size: calc(0.9rem * var(--secondary-font-scale)); padding: 0.6rem 1rem; border-radius: 12px; gap: 0.6rem; max-width: 280px; } .hero-contact i { font-size: 1rem; width: 1.8rem; height: 1.8rem; padding: 0.4rem; } .email-icon { width: 1.8rem; height: 1.8rem; padding: 0.4rem; } .hero-address { font-size: calc(0.9rem * var(--secondary-font-scale)); padding: 0.8rem 1.2rem; border-radius: 16px; line-height: 1.3; gap: 0.6rem; max-width: 280px; } .hero-address i { font-size: 1rem; width: 1.8rem; height: 1.8rem; padding: 0.4rem; } } /* Hero section height-responsive adjustments - prevents overlap on shorter screens */ @media (max-height: 740px) { .hero-overlay { padding: 1.8rem 1.5rem 1.5rem 1.5rem; max-width: 90vw; width: 420px; } .hero-title { font-size: calc(2rem * var(--primary-font-scale)); margin-bottom: 0.6rem; line-height: 1.1; } .hero-host { font-size: calc(1.1rem * var(--secondary-font-scale)); margin-bottom: 1.2rem; } .hero-info-section { gap: 0.6rem; margin-bottom: 1.4rem; } .hero-contact { padding: 0.6rem 1rem; font-size: calc(0.9rem * var(--secondary-font-scale)); max-width: 290px; } .hero-contact i { font-size: 1rem; width: 2rem; height: 2rem; padding: 0.4rem; } .hero-logo { height: 56px; margin-bottom: 0.8rem; } } @media (max-height: 600px) { .hero-overlay { padding: 1.4rem 1.2rem 1.2rem 1.2rem; width: 380px; } .hero-title { font-size: 1.8rem; margin-bottom: 0.5rem; } .hero-host { font-size: 1rem; margin-bottom: 1rem; } .hero-info-section { gap: 0.5rem; margin-bottom: 1.2rem; } .hero-contact { padding: 0.5rem 0.8rem; font-size: calc(0.85rem * var(--secondary-font-scale)); max-width: 260px; } .hero-logo { height: 48px; margin-bottom: 0.6rem; } } @media (max-height: 500px) { .hero-overlay { padding: 1rem 1rem 1rem 1rem; width: 340px; max-width: 85vw; } .hero-title { font-size: 1.5rem; margin-bottom: 0.4rem; line-height: 1; } .hero-host { font-size: 0.9rem; margin-bottom: 0.8rem; } .hero-info-section { gap: 0.4rem; margin-bottom: 1rem; } .hero-contact { padding: 0.4rem 0.6rem; font-size: calc(0.8rem * var(--secondary-font-scale)); max-width: 240px; } .hero-contact i { font-size: 0.9rem; width: 1.6rem; height: 1.6rem; padding: 0.3rem; } .hero-logo { height: 40px; margin-bottom: 0.5rem; } .start-button-container { width: 60px; height: 120px; padding: 15px 0; } .start-button-bg { width: 60px; height: 120px; border-radius: 30px; } .start-button-circle { width: 45px; height: 45px; font-size: calc(0.75rem * var(--secondary-font-scale)); } } #main-guide, #main-content, #main-maps, #main-about-host { width: 100%; background: var(--bg); flex-direction: column; min-height: 300px; } #main-guide, #main-content, #main-maps, #main-about-host { position: static !important; display: block !important; transform: none !important; z-index: auto !important; overflow: visible !important; } #main-guide.slide-up, #main-guide.slide-down, #main-content.slide-up, #main-content.slide-down, #main-maps.slide-up, #main-maps.slide-down, #main-about-host.slide-up, #main-about-host.slide-down { transform: none !important; } .sticky-topbar { position: sticky; top: 0; background: var(--white); display: flex; align-items: center; justify-content: space-between; padding: 0.5em 2em; border-bottom: 1px solid var(--border); z-index: 20; opacity: 0; transform: translateY(-100%); } .sticky-topbar.animate-in { animation: topbarSlideDown 0.8s ease-out 0.3s forwards; } @keyframes topbarSlideDown { 0% { opacity: 0; transform: translateY(-100%); } 100% { opacity: 1; transform: translateY(0); } } .topbar-left { display: flex; align-items: center; gap: 0.7em; flex: 1; } .topbar-center { display: flex; justify-content: center; flex: 2; } .topbar-right { display: flex; align-items: center; justify-content: flex-end; flex: 1; } .topbar-logo { width: auto; height: 48px; max-width: 150px; object-fit: contain; } .share-button { background: var(--primary); color: white; border: none; border-radius: 50%; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.3s ease; box-shadow: 0 2px 8px rgba(0,0,0,0.15); font-size: 18px; } .share-button:hover { background: var(--primary-dark, #3730a3); transform: scale(1.05); box-shadow: 0 4px 12px rgba(0,0,0,0.2); } .share-button:active { transform: scale(0.95); } /* Enhanced search styles */ .search-container { position: relative; width: 100%; max-width: 570px; } .search-input-wrapper { position: relative; display: flex; align-items: center; background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%); border-radius: 25px; border: 2px solid transparent; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); overflow: hidden; } .search-input-wrapper::before { content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient( 135deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0.05) 100% ); border-radius: 25px; pointer-events: none; z-index: 1; } .search-input-wrapper:focus-within { background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%); border-color: var(--primary); } .search-icon { position: absolute; left: 18px; color: #6c757d; font-size: 18px; z-index: 2; transition: all 0.3s ease; pointer-events: none; } .search-input-wrapper:focus-within .search-icon { color: var(--primary); } .topbar-search { width: 100%; padding: 16px 50px 16px 50px; border: none; background: transparent; font-size: 17px; font-family: var(--secondary-font); font-weight: 500; color: #333; transition: all 0.3s ease; -webkit-tap-highlight-color: transparent !important; outline: none !important; } .topbar-search::placeholder { color: #6c757d; font-weight: 400; opacity: 0.8; } .topbar-search:focus::placeholder { opacity: 0.5; } .search-clear-btn { position: absolute; right: 12px; background: none; border: none; color: #6c757d; font-size: 16px; cursor: pointer; padding: 8px; border-radius: 50%; transition: all 0.2s ease; display: flex; align-items: center; justify-content: center; z-index: 2; } .search-clear-btn:hover { background: rgba(0, 0, 0, 0.1); color: #333; transform: scale(1.1); } .search-clear-btn:active { transform: scale(0.95); } .search-results { position: absolute; top: 100%; left: 0; right: 0; max-height: 65vh; overflow-y: auto; background: white; border: 1px solid #e0e0e0; border-radius: 16px; box-shadow: 0 15px 40px rgba(0,0,0,0.2); z-index: 1000; display: none; margin-top: 12px; padding: 12px 0; } .search-result-item { padding: 14px 18px; cursor: pointer; transition: all 0.2s ease; border-bottom: 1px solid #f5f5f5; } .search-result-item:last-child { border-bottom: none; } .search-result-item:hover { background-color: #f8f9fa; } .search-result-title { font-weight: 700; font-size: 16px; color: var(--primary); line-height: 1.3; margin-bottom: 6px; } .search-result-snippet { font-size: 14px; color: #555; line-height: 1.5; margin-bottom: 8px; } .search-result-type { font-size: 12px; color: #777; font-weight: 600; background: #f0f7ff; padding: 4px 10px; border-radius: 12px; display: inline-block; } .highlight { background-color: rgba(255, 235, 59, 0.6); font-weight: 600; border-radius: 3px; padding: 0 2px; } @keyframes highlightFlash { 0% { background-color: rgba(255, 235, 59, 0.5); box-shadow: 0 0 0 4px rgba(255, 235, 59, 0.3); } 100% { background-color: transparent; box-shadow: none; } } .search-highlight { animation: highlightFlash 2s ease; position: relative; z-index: 100; } /* Mobile adjustments */ @media (max-width: 768px) { .sticky-topbar { padding: 0.45em 1em; } .topbar-center { flex: 2; } .search-container { max-width: 550px; position: relative; z-index: 1000; } .search-input-wrapper { border-radius: 22px; } .search-icon { left: 16px; font-size: 17px; } .topbar-search { padding: 13px 45px 13px 45px; font-size: 16px; } .search-clear-btn { right: 10px; font-size: 15px; padding: 6px; } /* Mobile search active state */ .search-container.search-active { position: fixed; top: 10px; left: 2.5%; right: 2.5%; width: 95%; max-width: none; z-index: 9999; background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-radius: 20px; padding: 10px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2); } .search-container.search-active .search-input-wrapper { border-radius: 18px; background: #fff; border: 2px solid var(--primary); } .search-container.search-active .topbar-search { font-size: 18px; padding: 16px 50px 16px 50px; } .search-container.search-active .search-icon { font-size: 20px; left: 18px; } .search-container.search-active .search-clear-btn { font-size: 18px; right: 12px; } } .search-results { max-height: 55vh; margin-top: 10px; } .search-result-title { font-size: 15px; } .search-result-snippet { font-size: 13px; } .share-button { width: 36px; height: 36px; font-size: 15px; } } @media (max-width: 480px) { .sticky-topbar { padding: 0.45em 0.8em; } .topbar-center { flex: 1.2; } .search-container { max-width: 270px; } .search-input-wrapper { border-radius: 20px; } .search-icon { left: 14px; font-size: 16px; } .topbar-search { padding: 11px 40px 11px 40px; font-size: 14px; } .search-clear-btn { right: 8px; font-size: 14px; padding: 5px; } .search-result-item { padding: 12px 15px; } .share-button { width: 36px; height: 36px; font-size: 15px; } /* Mobile search active state */ .search-container.search-active { position: fixed; top: 10px; left: 2.5%; right: 2.5%; width: 95%; max-width: none; z-index: 9999; background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-radius: 20px; padding: 10px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2); } .search-container.search-active .search-input-wrapper { border-radius: 18px; background: #fff; border: 2px solid var(--primary); } .search-container.search-active .topbar-search { font-size: 18px; padding: 16px 50px 16px 50px; } .search-container.search-active .search-icon { font-size: 20px; left: 18px; } .search-container.search-active .search-clear-btn { font-size: 18px; right: 12px; } } .icon-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2em; padding: 1.5em 1em 5em 1em; flex: 1; overflow-y: auto; height: calc(100vh - 140px); box-sizing: border-box; align-content: start; } .icon-box { background: var(--white); border-radius: 18px; border: 1.5px solid var(--border); display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 1.2em 0.5em; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04); transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1); cursor: pointer; opacity: 0; transform: translateY(50px); position: relative; overflow: hidden; -webkit-tap-highlight-color: transparent !important; -webkit-touch-callout: none !important; -webkit-user-select: none !important; user-select: none !important; outline: none !important; min-height: 120px; gap: 0.5em; } .icon-box::before { content: ""; position: absolute; top: 50%; left: 50%; width: 0; height: 0; background: radial-gradient( circle, rgba(var(--primary-rgb), 0.15) 0%, rgba(var(--primary-rgb), 0.08) 30%, rgba(var(--primary-rgb), 0.04) 60%, rgba(var(--primary-rgb), 0) 100% ); border-radius: 50%; transform: translate(-50%, -50%); transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); pointer-events: none; opacity: 0; z-index: 1; } /* Smooth hover effect */ .icon-box:hover { box-shadow: 0 8px 24px rgba(var(--primary-rgb), 0.1); transform: translateY(-4px) scale(1.01); border-color: rgba(var(--primary-rgb), 0.2); } .icon-box:active::before { width: 150px; height: 150px; opacity: 1; transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); } /* Subtle active state - removed conflicting transforms */ .icon-box:active { transition: all 0.1s cubic-bezier(0.4, 0, 0.2, 1); } /* Ripple animation class that will be added via JavaScript */ .icon-box.ripple::before { width: 300px; height: 300px; opacity: 1; background: radial-gradient( circle, rgba(var(--primary-rgb), 0.25) 0%, rgba(var(--primary-rgb), 0.15) 40%, rgba(var(--primary-rgb), 0.08) 70%, rgba(var(--primary-rgb), 0) 100% ); transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1); } /* Focus state for accessibility */ .icon-box:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; box-shadow: 0 8px 25px rgba(var(--primary-rgb), 0.15); } .icon-box.animate-in { animation: slideInFromBottom 0.6s ease-out forwards; } @keyframes slideInFromBottom { 0% { opacity: 0; transform: translateY(50px); } 100% { opacity: 1; transform: translateY(0); } } .icon-box i { font-size: 2em; color: var(--primary); margin-bottom: 0.5em; transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1); position: relative; z-index: 2; } .icon-box:hover i { transform: scale(1.05); filter: drop-shadow(0 1px 3px rgba(var(--primary-rgb), 0.15)); } .icon-box:active i { transform: scale(1.02); transition: all 0.1s cubic-bezier(0.4, 0, 0.2, 1); } .icon-label { font-size: calc(clamp(0.8em, 2.5vmin, 1em) * var(--secondary-font-scale)); color: var(--secondary); text-align: center; transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1); position: relative; z-index: 2; font-weight: 500; line-height: 1.2; word-break: break-word; hyphens: auto; overflow-wrap: break-word; max-width: 100%; } .icon-box:hover .icon-label { color: var(--primary); transform: translateY(-1px); } .icon-box:active .icon-label { transform: translateY(0); transition: all 0.1s cubic-bezier(0.4, 0, 0.2, 1); } @media (max-width: 600px) { .icon-grid { grid-template-columns: repeat(2, 1fr); gap: 0.8em; padding: 1em 0.5em 7em 0.5em; height: calc(100dvh - 130px); max-height: calc(100dvh - 130px); overflow-y: auto; -webkit-overflow-scrolling: touch; } .icon-box { padding: 0.8em 0.3em 0.4em 0.3em; min-height: 80px; border-radius: 12px; } .icon-box i { font-size: 1.5em; margin-bottom: 0.3em; } .icon-box:hover i { transform: scale(1.03); } .icon-label { font-size: calc(0.85em * var(--secondary-font-scale)); line-height: 1.2; } .icon-box:hover .icon-label { transform: translateY(-0.5px); } } /* Smart responsive layout - switch to horizontal when height is constrained */ @media (max-height: 600px) { .icon-box { flex-direction: row; justify-content: center; align-items: center; gap: 0.8em; padding: 0.8em; min-height: auto; } .icon-box i { margin-bottom: 0; flex-shrink: 0; } .icon-label { text-align: left; margin: 0; } } /* Mobile landscape - use horizontal layout for very constrained height */ @media (max-width: 900px) and (orientation: landscape) and (max-height: 500px) { .icon-grid { gap: 0.8em; padding: 0.8em 0.5em 4em 0.5em; } .icon-box { flex-direction: row; justify-content: flex-start; align-items: center; gap: 0.6em; padding: 0.6em; min-height: auto; } .icon-box i { font-size: 1.2em; margin-bottom: 0; flex-shrink: 0; } .icon-label { text-align: left; font-size: calc(0.85em * var(--secondary-font-scale)); margin: 0; } } .bottom-nav { position: fixed !important; left: 10px !important; right: 10px !important; bottom: 10px !important; width: calc(100vw - 20px) !important; background: var(--primary) !important; border: none !important; border-radius: 20px !important; display: none; justify-content: space-around !important; align-items: center !important; height: 70px !important; z-index: 999999 !important; box-shadow: 0 10px 25px 0 rgba(0, 0, 0, 0.075) !important; margin: 0 !important; padding: 0 20px !important; min-height: 70px !important; max-height: 70px !important; box-sizing: border-box !important; -webkit-transform: translateZ(0) !important; transform: translateZ(0) !important; /* Ensure it stays above all content */ isolation: isolate !important; /* Prevent any parent container from affecting positioning */ contain: layout style paint !important; /* Smooth transitions for show/hide */ transition: opacity 0.3s ease, visibility 0.3s ease !important; opacity: 0; visibility: hidden; /* Improved layout for better spacing */ gap: 10px !important; } .nav-item { display: inline-flex !important; justify-content: center !important; align-items: center !important; width: 77px !important; height: 55px !important; border-radius: 99em !important; position: relative !important; z-index: 1 !important; overflow: hidden !important; transform-origin: center left !important; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important; text-decoration: none !important; color: rgba(255, 255, 255) !important; font-size: 1em !important; cursor: pointer !important; -webkit-tap-highlight-color: transparent !important; -webkit-touch-callout: none !important; -webkit-user-select: none !important; user-select: none !important; outline: none !important; border: none !important; font-weight: 400 !important; flex-direction: column !important; flex: 1 !important; max-width: 132px !important; /* Enhanced animation properties */ transform: translateY(0) scale(1) !important; filter: brightness(1) !important; } .nav-item::before { position: absolute !important; z-index: -1 !important; content: "" !important; display: block !important; border-radius: 99em !important; width: 100% !important; height: 100% !important; top: 0 !important; transform: translateX(100%) scale(0.8) !important; transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) !important; transform-origin: center right !important; background: linear-gradient( 135deg, rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0.1) 100% ) !important; opacity: 0 !important; } /* Add a subtle glow effect */ .nav-item::after { content: "" !important; position: absolute !important; top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important; border-radius: 99em !important; background: radial-gradient( circle at center, rgba(255, 255, 255, 0.1) 0%, transparent 70% ) !important; opacity: 0 !important; transition: opacity 0.3s ease !important; pointer-events: none !important; z-index: -2 !important; } .nav-item:hover, .nav-item:focus { outline: 0 !important; width: 130px !important; transform: translateY(-2px) scale(1.02) !important; filter: brightness(1.1) !important; box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15) !important; } .nav-item:hover::before, .nav-item:focus::before { transform: translateX(0) scale(1) !important; opacity: 1 !important; } .nav-item:hover::after, .nav-item:focus::after { opacity: 1 !important; } .nav-item:hover .nav-title, .nav-item:focus .nav-title { transform: translateX(0) !important; opacity: 1 !important; } .nav-item:active { transform: translateY(0px) scale(0.98) !important; transition: all 0.1s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important; filter: brightness(0.95) !important; } .nav-item.active, { color: #ffffff !important; font-weight: 600 !important; transform: translateY(-1px) scale(1.01) !important; box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12) !important; } .nav-item.active::before { transform: translateX(0) scale(1) !important; background: linear-gradient( 135deg, rgba(255, 255, 255, 0.25) 0%, rgba(255, 255, 255, 0.15) 100% ) !important; opacity: 1 !important; } .nav-item.active::after { opacity: 0.8 !important; } .nav-icon { width: 28px !important; height: 28px !important; display: block !important; flex-shrink: 0 !important; left: 18px !important; position: absolute !important; font-size: 1.5em !important; margin-bottom: 0 !important; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important; transform: scale(1) rotate(0deg) !important; } .nav-item:hover .nav-icon, .nav-item:focus .nav-icon { transform: scale(1.1) rotate(5deg) !important; filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2)) !important; } .nav-item.active .nav-icon { transform: scale(1.05) !important; filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.15)) !important; } .nav-title { transform: translateX(100%) scale(0.9) !important; transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) !important; transform-origin: center right !important; display: block !important; text-align: center !important; text-indent: 28px !important; width: 100% !important; font-size: 0.94em !important; line-height: 1.2 !important; font-weight: 400 !important; opacity: 0 !important; filter: blur(1px) !important; text-shadow: 0 1px 4px rgba(0, 0, 0, 0.4), 0 1px 2px rgba(0, 0, 0, 0.6) !important; } .nav-item:hover .nav-title, .nav-item:focus .nav-title { transform: translateX(0) scale(1) !important; opacity: 1 !important; filter: blur(0px) !important; } /* Active state styling */ .nav-item.active { width: 130px !important; } .nav-item.active .nav-title { transform: translateX(0) scale(1) !important; opacity: 1 !important; filter: blur(0px) !important; } /* Add staggered animation for nav items */ .nav-item:nth-child(1) { transition-delay: 0ms !important; } .nav-item:nth-child(2) { transition-delay: 50ms !important; } .nav-item:nth-child(3) { transition-delay: 100ms !important; } .nav-item:nth-child(4) { transition-delay: 150ms !important; } /* Add a subtle pulse animation for active items */ @keyframes subtlePulse { 0%, 100% { transform: translateY(-1px) scale(1.01); } 50% { transform: translateY(-2px) scale(1.02); } } .nav-item.active { animation: subtlePulse 3s ease-in-out infinite !important; } /* Mobile responsiveness improvements */ @media (max-width: 480px) { .bottom-nav { padding: 0 15px !important; gap: 8px !important; height: 63px !important; min-height: 63px !important; max-height: 63px !important; bottom: 2px !important; } .nav-item { width: 66px !important; height: 49px !important; flex: none !important; max-width: none !important; } .nav-item:hover, .nav-item:focus, .nav-item.active { width: 121px !important; height: 44.5px !important; } .nav-title { font-size: 0.88em !important; } .nav-icon { width: 25px !important; height: 25px !important; left: 16px !important; font-size: 1.35em !important; } .nav-icon svg { width: 25px !important; height: 25px !important; } } /* Firefox mobile specific fixes */ @-moz-document url-prefix() { @media (max-width: 480px) { .bottom-nav { padding: 0 10px !important; gap: 6px !important; /* Ensure proper width calculation on Firefox */ width: calc(100vw - 20px) !important; max-width: calc(100vw - 20px) !important; } .nav-item { width: 60px !important; height: 48px !important; min-width: 60px !important; flex-shrink: 0 !important; } .nav-item:hover, .nav-item:focus, .nav-item.active { width: 110px !important; height: 43.2px !important; } .nav-title { font-size: 0.82em !important; text-indent: 24px !important; } .nav-icon { width: 24px !important; height: 24px !important; left: 16px !important; font-size: 1.3em !important; } .nav-icon svg { width: 24px !important; height: 24px !important; } /* Ensure last nav item doesn't overflow */ .nav-item:last-child { margin-right: 0 !important; } } } /* Extra small mobile screens */ @media (max-width: 360px) { .bottom-nav { padding: 0 8px !important; gap: 4px !important; } .nav-item { width: 55px !important; height: 45px !important; min-width: 55px !important; } .nav-item:hover, .nav-item:focus, .nav-item.active { width: 100px !important; height: 40.5px !important; } .nav-title { font-size: 0.78em !important; text-indent: 20px !important; } .nav-icon { width: 22px !important; height: 22px !important; left: 14px !important; font-size: 1.2em !important; } .nav-icon svg { width: 22px !important; height: 22px !important; } /* Shorten "Meet Host" text on very small screens */ .nav-item:last-child .nav-title { font-size: 0.72em !important; } } /* Desktop improvements for better spacing */ @media (min-width: 768px) { .bottom-nav { padding: 0 30px !important; gap: 15px !important; } .nav-item { min-width: 88px !important; } .nav-item:hover, .nav-item:focus, .nav-item.active { width: 165px !important; } /* Enhanced desktop animations */ .nav-item:hover, .nav-item:focus { transform: translateY(-3px) scale(1.03) !important; box-shadow: 0 12px 35px rgba(0, 0, 0, 0.2) !important; } .nav-item:hover .nav-icon, .nav-item:focus .nav-icon { transform: scale(1.15) rotate(8deg) !important; } } /* Popup Styles */ #checkin-popup, #host-popup, .grid-popup { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0); z-index: 9999999; display: none; align-items: center; justify-content: center; padding: 2rem; font-family: "Plus Jakarta Sans", "Montserrat", sans-serif; opacity: 0; transition: all 0.3s ease-out; } #checkin-popup.show, #host-popup.show, .grid-popup.show { opacity: 1; background: rgba(0, 0, 0, 0.5); } .popup-container { background: var(--bg); border-radius: 24px; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15); max-width: 600px; width: 100%; max-height: 90vh; display: flex; flex-direction: column; overflow: hidden; transform: scale(0.7) translateY(50px); opacity: 0; transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1); position: relative; } .popup-container.animate-in { transform: scale(1) translateY(0); opacity: 1; } /* Reduce popup width by 15% for screens smaller than 1280x626 until tablet breakpoint */ @media (max-width: 1280px) and (max-height: 626px) and (min-width: 769px) { .popup-container { max-width: 510px; /* 600px reduced by 15% */ } .popup-title { font-size: 1.4rem; /* Reduced from ~1.5rem */ } .popup-content p { font-size: calc(0.9rem * var(--secondary-font-scale)); /* Reduced from 1rem */ line-height: 1.4; } .popup-content h3 { font-size: calc(1.2rem * var(--primary-font-scale)); /* Reduced from ~1.3rem */ } .popup-content h1, .popup-content h2 { font-size: calc(1.6rem * var(--primary-font-scale)); /* Reduced from ~1.8rem */ } .popup-content h4, .popup-content h5, .popup-content h6 { font-size: calc(1rem * var(--primary-font-scale)); /* Reduced from ~1.1rem */ } .popup-content li { font-size: calc(0.9rem * var(--secondary-font-scale)); /* Reduced from 1rem */ } .popup-content .section-title { // font-size: 1.3rem; /* Reduced from ~1.4rem */ font-size: calc(1.3rem * var(--primary-font-scale)); } .popup-content .heading-title { font-size: calc(1.1rem * var(--primary-font-scale)); /* Reduced from ~1.2rem */ } .popup-content .accordion-item-title { font-size: calc(0.9rem * var(--primary-font-scale)); } .popup-content .feature-title { font-size: 1rem; /* Reduced from ~1.1rem */ } .popup-content .feature-subtitle { font-size: calc(0.85rem * var(--secondary-font-scale)); /* Reduced from 0.9rem */ } } @media (max-width: 768px) { #checkin-popup, #host-popup, .grid-popup { padding: 0; align-items: flex-end; justify-content: center; position: fixed; overflow: hidden; } #checkin-popup.show, #host-popup.show, .grid-popup.show { background: rgba(0, 0, 0, 0.3); } .popup-container { border-radius: 24px 24px 0 0; box-shadow: 0 -10px 40px rgba(0, 0, 0, 0.2); max-width: none; max-height: 90vh; height: auto; min-height: 60vh; width: 100%; transform: translateY(100%); transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94); position: fixed; bottom: 0; left: 0; right: 0; display: flex; flex-direction: column; overflow: hidden; } .popup-container.animate-in { transform: translateY(0); } .popup-container::before { content: ""; position: absolute; top: 12px; left: 50%; transform: translateX(-50%); width: 40px; height: 4px; background: #ddd; border-radius: 2px; z-index: 10; } .popup-header { padding: 1.5rem 1rem 1rem 1rem; flex-shrink: 0; background: var(--primary); position: sticky; top: 0; z-index: 5; } .popup-content { padding: 1rem; padding-bottom: 2rem; flex: 1; overflow-y: auto; overflow-x: hidden; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; } /* Hide scrollbar on mobile and tablet */ @media (max-width: 1024px) { .popup-content::-webkit-scrollbar { display: none; } .popup-content { -ms-overflow-style: none; scrollbar-width: none; } } .popup-content .content-wrapper { width: 100%; margin-bottom: 1rem; overflow: hidden; } .popup-content .image-wrapper img { max-width: 100%; height: auto; border-radius: 8px; margin: 0; } .back-button { width: 40px; height: 40px; color: white; background: rgba(255, 255, 255, 0.2); border-radius: 50%; display: flex; align-items: center; justify-content: center; transition: all 0.2s ease; } .back-button:hover { background: rgba(255, 255, 255, 0.3); } .popup-title { font-size: 1.25rem; color: white; } } .popup-header { display: flex; align-items: center; background: var(--primary); padding: 1.5rem 1rem 1rem 1rem; justify-content: space-between; } @keyframes popupContentSlideIn { 0% { opacity: 0; transform: translateY(20px); } 100% { opacity: 1; transform: translateY(0); } } .back-button { display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; color: white; cursor: pointer; transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); border-radius: 50%; position: relative; overflow: hidden; -webkit-tap-highlight-color: transparent !important; -webkit-touch-callout: none !important; -webkit-user-select: none !important; user-select: none !important; border: none !important; background: rgba(255, 255, 255, 0.2) !important; } .back-button::before { content: ""; position: absolute; top: 50%; left: 50%; width: 0; height: 0; background: radial-gradient( circle, rgba(0, 0, 0, 0.1) 0%, rgba(0, 0, 0, 0) 70% ); border-radius: 50%; transform: translate(-50%, -50%); transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); pointer-events: none; opacity: 0; } .back-button:hover { background: rgba(255, 255, 255, 0.3) !important; transform: scale(1.05); } .back-button:active { transform: scale(0.95); background: rgba(255, 255, 255, 0.4) !important; transition: all 0.1s ease-out; } .back-button:active::before { width: 60px; height: 60px; opacity: 1; transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); } .popup-title { font-family: var(--primary-font); color: white; font-weight: 700; flex: 1; text-align: center; padding-right: 48px; } .section-title { font-family: var(--primary-font); color: #0d141c; font-weight: 700; padding: 1.5rem 1rem 1rem 1rem; margin: 0; border-bottom: 1px solid var(--border); background: var(--white); } .info-item { display: flex; align-items: flex-start; gap: 1.25rem; background: var(--white); padding: 1.5rem; margin: 1rem 0; min-height: 80px; border-radius: 16px; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08); border: 1px solid rgba(0, 0, 0, 0.04); transition: all 0.3s ease; } .info-item:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12); } .info-icon { display: flex; align-items: center; justify-content: center; border-radius: 16px; background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%); width: 70px; height: 70px; flex-shrink: 0; color: white; font-size: 1.5rem; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); transition: all 0.3s ease; } .info-item:hover .info-icon { transform: scale(1.05); box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2); } .info-content { display: flex; flex-direction: column; justify-content: center; flex: 1; gap: 0.1rem; } .info-label { font-family: var(--primary-font); color: #0d141c; font-weight: 600; margin-bottom: 0; line-height: 1.3; } .info-label:empty { display: none; } .info-label:not(:empty) + .info-description { margin-top: 0; } .info-description { font-family: var(--secondary-font); color: #49739c; font-size: calc(0.95rem * var(--secondary-font-scale)); line-height: 1.5; margin-bottom: 0; } .instructions-item { display: flex; gap: 1.25rem; background: var(--white); padding: 1.5rem; margin: 1rem 0; border-radius: 16px; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08); border: 1px solid rgba(0, 0, 0, 0.04); transition: all 0.3s ease; } .instructions-item:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12); } .instructions-content { display: flex; flex: 1; flex-direction: column; justify-content: center; gap: 0.5rem; } .instructions-title { font-family: var(--primary-font); color: #0d141c; font-weight: 600; margin-bottom: 0; line-height: 1.3; } .instructions-text { font-family: var(--secondary-font); color: #49739c; font-size: calc(0.95rem * var(--secondary-font-scale)); line-height: 1.5; margin-bottom: 0; } .popup-content { flex: 1; overflow-y: auto; opacity: 0; transform: translateY(20px); padding: 1.5rem; overflow-x: hidden; word-wrap: break-word; word-break: break-word; font-family: var(--secondary-font); } /* Custom scrollbar for popup content */ .popup-content::-webkit-scrollbar { width: 8px; } .popup-content::-webkit-scrollbar-track { background: rgba(0, 0, 0, 0.05); border-radius: 10px; } .popup-content::-webkit-scrollbar-thumb { background: var(--primary); border-radius: 10px; border: 2px solid transparent; background-clip: content-box; } .popup-content::-webkit-scrollbar-thumb:hover { background: var(--primary-dark); background-clip: content-box; } /* Hide scrollbar arrows */ .popup-content::-webkit-scrollbar-button { display: none; } /* Hide scrollbar on mobile and tablet */ @media (max-width: 1024px) { .popup-content::-webkit-scrollbar { display: none; } .popup-content { -ms-overflow-style: none; scrollbar-width: none; } } .popup-content.animate-in { animation: popupContentSlideIn 0.6s ease-out 0.4s forwards; } .popup-content p { margin-bottom: 1.25rem; line-height: 1.7; color: #49739c; font-family: var(--secondary-font); font-size: calc(0.95rem * var(--secondary-font-scale)); padding: 1.25rem; background: var(--white); border-radius: 16px; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08); border: 1px solid rgba(0, 0, 0, 0.04); transition: all 0.3s ease; } .popup-content p:hover { /* Removed hover shadow - keeping clean design */ } .popup-content ul { margin: 1.25rem 0; padding-left: 1.75rem; background: var(--white); border-radius: 16px; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08); border: 1px solid rgba(0, 0, 0, 0.04); padding: 1.5rem 1.5rem 1.5rem 2.5rem; transition: all 0.3s ease; } .popup-content ul:hover { /* Removed hover shadow - keeping clean design */ } .popup-content li { margin-bottom: 0.75rem; line-height: 1.6; color: #49739c; font-family: var(--secondary-font); font-size: calc(0.9rem * var(--secondary-font-scale)); position: relative; padding-left: 0.5rem; } .popup-content li:last-child { margin-bottom: 0; } .popup-content li::marker { color: var(--primary); font-weight: 600; } .popup-content h3 { font-family: var(--primary-font); color: #0d141c; font-size: calc(1.25rem * var(--primary-font-scale)); font-weight: 600; margin: 2rem 0 1rem 0; padding: 1.5rem; background: var(--white); border-radius: 16px; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08); border: 1px solid rgba(0, 0, 0, 0.04); border-left: 4px solid var(--primary); transition: all 0.3s ease; line-height: 1.3; } .popup-content h3:hover { /* Removed hover shadow - keeping clean design */ } .popup-content h1, .popup-content h2, .popup-content h4, .popup-content h5, .popup-content h6 { font-family: var(--primary-font); color: #0d141c; margin: 1.5rem 0 1rem 0; padding: 1.25rem 1.5rem; background: var(--white); border-radius: 16px; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08); border: 1px solid rgba(0, 0, 0, 0.04); border-left: 4px solid var(--primary); transition: all 0.3s ease; line-height: 1.3; } .popup-content h1:hover, .popup-content h2:hover, .popup-content h4:hover, .popup-content h5:hover, .popup-content h6:hover { /* Removed hover shadow - keeping clean design */ } .popup-content .content-wrapper { width: 100%; margin-bottom: 1.5rem; overflow: hidden; } .popup-content .content-wrapper:last-child { margin-bottom: 0; } .popup-content .image-wrapper { text-align: center; margin: 1.5rem 0; } .popup-content .image-wrapper img { max-width: 100%; height: auto; border-radius: 16px; margin: 0; display: block; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12); transition: all 0.3s ease; } .popup-content .image-wrapper img:hover { transform: scale(1.02); box-shadow: 0 12px 32px rgba(0, 0, 0, 0.16); } .popup-content .popup-cover-image { margin: -1.5rem -1.5rem 1.5rem -1.5rem; text-align: center; } .popup-content .cover-image-container { position: relative; display: inline-block; width: 100%; } .popup-content .popup-cover-image img { width: 100%; height: auto; max-height: 300px; object-fit: cover; border-radius: 24px; margin: 0; display: block; box-shadow: none; // transition: all 0.3s ease; } .popup-content .popup-cover-image img:hover { transform: none; box-shadow: none; } .popup-content .cover-title-overlay { position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); background: rgba(255, 255, 255); padding: 1rem 2.5rem; border-radius: 12px 12px 0 0; width: 80%; border-bottom: none; margin-bottom: -2px; } .popup-content .cover-title { margin: 0; font-size: calc(1.65rem * var(--primary-font-scale)); font-weight: 700; color: #1a202c; font-family: var(--primary-font); text-align: center; line-height: 1.2; letter-spacing: -0.01em; position: relative; } .popup-content .cover-title::after { content: ''; position: absolute; bottom: -1rem; left: 50%; transform: translateX(-50%); width: 12rem; height: 2px; background: linear-gradient( 90deg, #e2e8f0 0%, /* left-hand side */ var(--primary) 50%, /* exact center */ #e2e8f0 100% /* right-hand side */ ); border-radius: 1px; } .popup-content .section-wrapper { margin: 2rem 0 1.5rem 0; } .popup-content .section-wrapper:first-child { margin-top: 0; } .popup-content .section-wrapper .section-title { /* Override with clean minimal styling to match default content */ font-size: calc(1.625rem * var(--primary-font-scale)); font-weight: 600; color: #1a202c; margin: 1rem 0 1.5rem 0; padding: 0 0 0.75rem 0; background: none; border-radius: 0; box-shadow: none; border: none; position: relative; letter-spacing: -0.01em; font-family: var(--primary-font); } .popup-content .section-wrapper .section-title::before { /* Remove the top gradient border */ display: none; } .popup-content .section-wrapper .section-title::after { /* Add the clean minimal gradient underline */ content: ''; position: absolute; bottom: 0; left: 0; width: 100%; height: 1px; background: linear-gradient(90deg, var(--primary) 0%, #e2e8f0 100%); } .popup-content .heading-wrapper { margin: 1.5rem 0 1rem 0; } .popup-content .heading-wrapper:first-child { margin-top: 0; } .popup-content .heading-wrapper .heading-title { font-family: var(--primary-font); margin: 0; padding: 1.5rem 1.75rem; color: #0d141c; font-weight: 600; line-height: 1.3; background: var(--white); border-radius: 16px; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08); border: 1px solid rgba(0, 0, 0, 0.04); border-left: 4px solid var(--primary); transition: all 0.3s ease; position: relative; overflow: hidden; } .popup-content .heading-wrapper .heading-title::before { content: ''; position: absolute; top: 0; left: 0; width: 4px; height: 100%; background: linear-gradient(180deg, var(--primary) 0%, var(--secondary) 100%); } .popup-content .heading-wrapper .heading-title:hover { /* Removed hover shadow - keeping clean design */ } .popup-content .accordion-wrapper { margin: 1.5rem 0; } .popup-content .accordion-items { display: flex; flex-direction: column; gap: 0.75rem; } .popup-content .accordion-item { border: 1px solid var(--border); border-radius: 16px; overflow: hidden; background: var(--white); box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08); transition: all 0.3s ease; } .popup-content .accordion-item:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12); } .popup-content .accordion-item-header { background: var(--white); padding: 1.25rem 1.5rem; border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; cursor: pointer; transition: all 0.3s ease; } .popup-content .accordion-item-header:hover { background: #f8f9fa; } .popup-content .accordion-item-title { font-family: var(--primary-font); margin: 0; color: #0d141c; font-size: calc(1.125rem * var(--primary-font-scale)); font-weight: 600; flex: 1; line-height: 1.3; } .popup-content .accordion-icon { color: var(--primary); font-size: 1rem; transition: transform 0.3s ease; width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; } .popup-content .accordion-item.active .accordion-icon { transform: rotate(180deg); } .popup-content .accordion-item-content { padding: 1.5rem; display: none; background: #f8f9fa; border-top: 1px solid var(--border); } .popup-content .accordion-item.active .accordion-item-content { display: block; } .popup-content .accordion-item-text { margin: 0; color: #49739c; font-size: calc(0.95rem * var(--secondary-font-scale)); line-height: 1.6; font-family: var(--secondary-font); } /* Feature Grid Styles */ .popup-content .feature-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; max-width: 100%; margin: 0 auto; padding: 2rem 0; overflow: hidden; } .popup-content .feature-item { width: 100%; max-width: 100%; padding: 2rem 1.5rem; background: linear-gradient(145deg, var(--primary) 0%, var(--secondary) 100%); border-radius: 22px; text-align: center; box-shadow: 0 12px 22px rgba(0, 0, 0, 0.12); position: relative; overflow: hidden; font-family: var(--secondary-font); transition: all 0.3s ease; margin: 0 auto; word-wrap: break-word; overflow-wrap: break-word; } .popup-content .feature-item::after { content: attr(data-num); position: absolute; bottom: -20px; right: 12px; font-size: 160px; font-weight: 700; color: rgba(255, 255, 255, 0.07); line-height: 0.9; pointer-events: none; } .popup-content .feature-item::before { content: ""; position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(135deg, rgba(255, 255, 255, 0.18) 0%, rgba(255, 255, 255, 0) 60%); mix-blend-mode: overlay; pointer-events: none; } .popup-content .feature-item:hover { transform: translateY(-4px); box-shadow: 0 16px 32px rgba(0, 0, 0, 0.18); } .popup-content .feature-icon-circle { width: 80px; height: 80px; margin: 0 auto 1.5rem; background: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; box-shadow: 0 6px 14px rgba(0, 0, 0, 0.1); transition: all 0.3s ease; } .popup-content .feature-item:hover .feature-icon-circle { transform: scale(1.05); box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15); } .popup-content .feature-icon { font-size: 2rem; color: var(--primary); line-height: 1; } .popup-content .feature-title { font-size: calc(1.2rem * var(--primary-font-scale)); font-weight: 600; color: #fff; margin-bottom: 0.5rem; font-family: var(--primary-font); word-wrap: break-word; overflow-wrap: break-word; hyphens: auto; } .popup-content .feature-subtitle { font-size: calc(0.9rem * var(--secondary-font-scale)); color: #e7ebff; opacity: 0.9; font-family: var(--secondary-font); line-height: 1.4; word-wrap: break-word; overflow-wrap: break-word; hyphens: auto; } /* Inverted Feature Styles */ .popup-content .feature-item.inverted { background: #fff; border: 0.1px solid var(--primary); box-shadow: 0 8px 16px rgba(0, 0, 0, 0.08); } .popup-content .feature-item.inverted::before { display: none; } .popup-content .feature-item.inverted .feature-icon-circle { background: linear-gradient(145deg, var(--primary) 0%, var(--secondary) 100%); box-shadow: 0 6px 14px rgba(52, 97, 232, 0.2); } .popup-content .feature-item.inverted .feature-icon { color: #fff; } .popup-content .feature-item.inverted .feature-title { color: var(--primary); } .popup-content .feature-item.inverted .feature-subtitle { color: var(--gray-600); opacity: 1; } .popup-content .feature-item.inverted::after { color: rgba(52, 97, 232, 0.05); } .popup-content .feature-item.inverted:hover { transform: translateY(-4px); box-shadow: 0 12px 24px rgba(52, 97, 232, 0.15); border-color: var(--secondary); } .popup-content .feature-item.inverted:hover .feature-icon-circle { transform: scale(1.05); box-shadow: 0 8px 20px rgba(52, 97, 232, 0.3); } /* Responsive grid layout */ @media (max-width: 767px) { .popup-content .feature-grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; padding: 1rem 0; } } @media (max-width: 480px) { .popup-content .feature-grid { grid-template-columns: 1fr; gap: 1rem; padding: 1rem 0; } } @media (max-width: 767px) { .popup-content .feature-grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; padding: 1rem 0; } .popup-content .feature-item { padding: 1.5rem 1rem; } .popup-content .feature-icon-circle { width: 60px; height: 60px; margin-bottom: 1rem; } .popup-content .feature-icon { font-size: 1.5rem; } .popup-content .feature-title { font-size: 1rem; } .popup-content .feature-subtitle { font-size: calc(0.8rem * var(--secondary-font-scale)); } } /* Info Block Styles */ .popup-content .info-block-container { width: 80%; max-width: 1000px; margin: 60px auto; display: flex; flex-direction: column; gap: 40px; animation: fadeInUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; opacity: 0; transform: translateY(20px); } .popup-content .info-block-container .info-block { display: flex; background: #fff; border-radius: 20px; overflow: hidden; box-shadow: 0 8px 20px rgba(0, 0, 0, 0.06); transition: transform 0.3s ease; animation: fadeInUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; opacity: 0; transform: translateY(20px); max-height: 320px; min-height: 220px; } .popup-content .info-block-container .info-block:nth-child(1) { animation-delay: 0.1s; } .popup-content .info-block-container .info-block:nth-child(2) { animation-delay: 0.2s; } .popup-content .info-block-container .info-block:nth-child(3) { animation-delay: 0.3s; } .popup-content .info-block-container .info-block:nth-child(4) { animation-delay: 0.4s; } .popup-content .info-block-container .info-block:nth-child(5) { animation-delay: 0.5s; } .popup-content .info-block-container .info-block:hover { transform: scale(1.01); } .popup-content .info-block-container .info-block.reverse { flex-direction: row-reverse; } .popup-content .info-block-container .info-img { flex: 0 0 30%; position: relative; overflow: hidden; max-height: 320px; min-width: 180px; display: flex; align-items: center; justify-content: center; } .popup-content .info-block-container .info-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.3s ease; max-height: 320px; min-height: 180px; } .popup-content .info-block-container .info-block:hover .info-img img { transform: scale(1.05); } .popup-content .info-block-container .info-content { flex: 1; padding: 24px 28px; display: flex; flex-direction: column; align-items: center; justify-content: center; background: #f9fbfd; text-align: center; min-width: 0; min-height: 0; max-height: 320px; overflow: auto; } .popup-content .info-block-container .info-content h3 { font-size: calc(1.4rem * var(--primary-font-scale)); margin-bottom: 12px; color: #2b2b2b; font-family: var(--primary-font); font-weight: 600; line-height: 1.3; text-align: center; } .popup-content .info-block-container .info-content p { font-size: calc(1rem * var(--secondary-font-scale)); color: #444; line-height: 1.5; margin: 0; font-family: var(--secondary-font); text-align: center; word-break: break-word; overflow-wrap: break-word; } @media (max-width: 768px) { .popup-content .info-block-container { width: 100%; margin: 40px auto; gap: 30px; } .popup-content .info-block-container .info-block, .popup-content .info-block-container .info-block.reverse { flex-direction: column; max-height: 420px; } .popup-content .info-block-container .info-img, .popup-content .info-block-container .info-content { flex: 100%; } .popup-content .info-block-container .info-img { height: 200px; max-height: 200px; min-width: 0; } .popup-content .info-block-container .info-img img { max-height: 200px; min-height: 100px; } .popup-content .info-block-container .info-content { padding: 20px 24px; max-height: 220px; } .popup-content .info-block-container .info-content h3 { font-size: calc(1.2rem * var(--primary-font-scale)); } .popup-content .info-block-container .info-content p { font-size: calc(0.95rem * var(--secondary-font-scale)); } } /* Feature Editor Styles */ .feature-editor { display: flex; flex-direction: column; gap: 1rem; margin: 1rem 0; } .feature-editor-item { background: #f8f9fa; border: 1px solid #e9ecef; border-radius: 8px; padding: 1rem; } .feature-editor-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 1px solid #dee2e6; } .feature-number { font-weight: 600; color: var(--primary); font-size: 0.9rem; } .feature-remove-btn { background: #dc3545; color: white; border: none; border-radius: 4px; padding: 0.25rem 0.5rem; font-size: 0.8rem; cursor: pointer; transition: background 0.2s; } .feature-remove-btn:hover { background: #c82333; } .feature-editor-content { display: flex; flex-direction: column; gap: 1rem; } .feature-editor-field { display: flex; flex-direction: column; gap: 0.5rem; } .feature-editor-field label { font-size: 0.8rem; font-weight: 600; color: #495057; } .feature-editor-field input, .feature-editor-field textarea { padding: 0.5rem; border: 1px solid #ced4da; border-radius: 4px; font-size: 0.9rem; font-family: inherit; } .feature-editor-field textarea { min-height: 60px; resize: vertical; } .add-feature-btn { background: var(--primary); color: white; border: none; border-radius: 8px; padding: 0.75rem 1rem; font-size: 0.9rem; cursor: pointer; transition: background 0.2s; margin-top: 1rem; display: flex; align-items: center; justify-content: center; gap: 0.5rem; } .add-feature-btn:hover { background: var(--primary-dark); } .popup-content .html-wrapper { margin: 1.5rem 0; padding: 1.5rem; background: var(--white); border-radius: 16px; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08); border: 1px solid rgba(0, 0, 0, 0.04); overflow: hidden; } .popup-content .html-block-iframe { width: 100%; border: none; height: 337px; background: white; display: block; margin: 0; padding: 0; border-radius: 8px; overflow: auto; isolation: isolate; box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1); resize: both; min-height: 300px; max-height: 80vh; } /* Custom scrollbar styling for HTML iframes */ .popup-content .html-block-iframe::-webkit-scrollbar { width: 16px; height: 16px; } .popup-content .html-block-iframe::-webkit-scrollbar-track { background: #f1f1f1; border-radius: 8px; margin: 4px; } .popup-content .html-block-iframe::-webkit-scrollbar-thumb { background: #c1c1c1; border-radius: 8px; border: 2px solid #f1f1f1; } .popup-content .html-block-iframe::-webkit-scrollbar-thumb:hover { background: #a8a8a8; } .popup-content .html-block-iframe::-webkit-scrollbar-corner { background: #f1f1f1; } .popup-content .html-wrapper { margin: 1.5rem 0; padding: 1.5rem; background: var(--white); border-radius: 16px; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08); border: 1px solid rgba(0, 0, 0, 0.04); overflow: hidden; max-height: 80vh; } /* HTML Block Editor Styles */ .html-warning { background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%); border: 1px solid #f59e0b; border-radius: 8px; padding: 0.75rem 1rem; margin-bottom: 1rem; display: flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; color: #92400e; } .html-warning i { color: #d97706; font-size: 1rem; } .popup-spacer { height: 1.25rem; background: var(--bg); } .host-photo { width: 80px; height: 80px; border-radius: 50%; object-fit: cover; margin-right: 1rem; } .host-bio { background: var(--white); border-radius: 12px; padding: 1.5rem; margin: 1rem 0; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04); font-family: var(--secondary-font); } .host-bio h3, .host-bio h4, .host-bio h5, .host-bio h6 { font-family: var(--primary-font); color: #0d141c; margin: 1rem 0 0.5rem 0; } .host-bio p { font-family: var(--secondary-font); color: #49739c; line-height: 1.6; margin-bottom: 1rem; font-size: calc(1rem * var(--secondary-font-scale)); } /* Mobile specific styles */ @supports (height: 100dvh) { #main-guide { height: 100dvh !important; min-height: 100dvh !important; } @media (max-width: 600px) { .icon-grid { height: calc(100dvh - 130px) !important; max-height: calc(100dvh - 130px) !important; } } } @supports not (height: 100dvh) { @media (max-width: 600px) { .icon-grid { height: calc(100vh - 130px) !important; max-height: calc(100vh - 130px) !important; padding-bottom: 8em !important; } } } @media (max-width: 600px) { * { -webkit-tap-highlight-color: transparent !important; -webkit-touch-callout: none !important; -webkit-user-select: none !important; user-select: none !important; } .hero-title, .hero-host, .hero-contact, .hero-address, .popup-content p, .popup-content div { -webkit-user-select: text !important; user-select: text !important; } } @media (max-width: 600px) and (max-height: 800px) { .icon-grid { padding-bottom: 8em !important; margin-bottom: 0 !important; } } /* Mobile Responsive Improvements for Content Blocks */ @media (max-width: 768px) { .info-item { padding: 1.25rem; margin: 0.75rem 0; gap: 1rem; } .info-icon { width: 60px; height: 60px; font-size: 1.375rem; } .info-label { font-size: calc(1.125rem * var(--primary-font-scale)); } .info-description { font-size: calc(0.95rem * var(--secondary-font-scale)); } .instructions-item { padding: 1.25rem; margin: 0.75rem 0; gap: 1rem; } .instructions-title { font-size: 1rem; } .instructions-text { font-size: 0.9rem; } .popup-content { padding: 1.25rem; } .popup-content p { font-size: calc(0.9rem * var(--secondary-font-scale)); margin-bottom: 1rem; } .popup-content ul { margin: 1rem 0; padding-left: 1.5rem; } .popup-content li { font-size: calc(0.9rem * var(--secondary-font-scale)); margin-bottom: 0.5rem; } .popup-content h3 { font-size: calc(1.125rem * var(--primary-font-scale)); margin: 1.5rem 0 0.75rem 0; } .popup-content .content-wrapper { margin-bottom: 1.25rem; } .popup-content .image-wrapper { margin: 1.25rem 0; } .popup-content .image-wrapper img { border-radius: 12px; } .popup-content .popup-cover-image { margin: -1.25rem -1.25rem 1.25rem -1.25rem; } .popup-content .popup-cover-image img { border-radius: 0; max-height: 250px; object-fit: cover; } .popup-content .cover-title-overlay { padding: 0.75rem 1.8rem; width: 80%; } .popup-content .cover-title { font-size: 1.50rem; } .popup-content .cover-title::after { width: 8rem; height: 2px; bottom: -1rem; } .popup-content .section-wrapper { margin: 1.5rem 0 1.25rem 0; } .popup-content .section-wrapper .section-title { padding: 1.5rem 1.25rem 1rem 1.25rem; font-size: calc(1.25rem * var(--primary-font-scale)); } .popup-content .heading-wrapper { margin: 1.25rem 0 0.75rem 0; } .popup-content .accordion-wrapper { margin: 1.25rem 0; } .popup-content .accordion-items { gap: 0.5rem; } .popup-content .accordion-item { border-radius: 12px; } .popup-content .accordion-item-header { padding: 1rem 1.25rem; } .popup-content .accordion-item-title { font-size: calc(1rem * var(--primary-font-scale)); } .popup-content .accordion-item-content { padding: 1.25rem; } .popup-content .accordion-item-text { font-size: calc(0.9rem * var(--secondary-font-scale)); } .popup-content .html-wrapper { margin: 1.25rem 0; padding: 1.25rem; border-radius: 12px; } } @media (max-width: 480px) { .info-item { padding: 1rem; margin: 0.5rem 0; gap: 0.75rem; flex-direction: column; align-items: flex-start; text-align: center; } .info-icon { width: 56px; height: 56px; font-size: 1.25rem; align-self: center; } .info-content { width: 100%; text-align: center; } .instructions-item { padding: 1rem; margin: 0.5rem 0; gap: 0.75rem; flex-direction: column; align-items: flex-start; text-align: center; } .instructions-content { width: 100%; text-align: center; } .popup-content { padding: 1rem; } .popup-content .section-wrapper .section-title { padding: 1.25rem 1rem 0.75rem 1rem; font-size: calc(1.125rem * var(--primary-font-scale)); } .popup-content .accordion-item-header { padding: 0.875rem 1rem; } .popup-content .accordion-item-content { padding: 1rem; } .popup-content .popup-cover-image { margin: -1rem -1rem 1rem -1rem; } .popup-content .cover-title-overlay { padding: 0.8rem 1.2rem; width: 80%; } .popup-content .cover-title { font-size: 1.25rem; } .popup-content .cover-title::after { width: 6rem; height: 2px; bottom: -0.8rem; } } /* --- CONTINUOUS, ELEGANT CONTENT LAYOUT --- */ .popup-content { flex: 1; overflow-y: auto; opacity: 0; transform: translateY(20px); overflow-x: hidden; word-wrap: break-word; word-break: break-word; font-family: var(--secondary-font); background: linear-gradient(180deg, #ffffff 0%, #fafbfc 100%); color: #1a202c; line-height: 1.6; } .popup-content.animate-in { animation: popupContentSlideIn 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; } @keyframes popupContentSlideIn { 0% { opacity: 0; transform: translateY(30px); } 100% { opacity: 1; transform: translateY(0); } } /* Typography System */ .popup-content p { margin-bottom: 1.75rem; line-height: 1.75; color: #4a5568; font-size: calc(1.05rem * var(--secondary-font-scale)); letter-spacing: -0.01em; background: none; border: none; box-shadow: none; padding: 0; transition: color 0.3s ease; } .popup-content p:last-child { margin-bottom: 0; } .popup-content ul { margin: 1.75rem 0 1.75rem 0; padding: 0 0 0 1.5rem; background: none; border: none; box-shadow: none; } .popup-content li { margin-bottom: 0.75rem; line-height: 1.7; color: #4a5568; font-size: calc(1.05rem * var(--secondary-font-scale)); font-weight: 400; letter-spacing: -0.01em; position: relative; padding-left: 0.5rem; transition: color 0.3s ease; } .popup-content li:last-child { margin-bottom: 0; } .popup-content li::marker { color: var(--primary); font-weight: 500; } /* Heading Hierarchy */ .popup-content h1, .popup-content h2, .popup-content h3, .popup-content h4, .popup-content h5, .popup-content h6 { font-family: var(--primary-font); color: #1a202c; font-weight: 600; margin: 1rem 0 1.5rem 0; padding: 0; background: none; border: none; box-shadow: none; line-height: 1.3; letter-spacing: -0.01em; transition: color 0.3s ease; } .popup-content h1 { font-size: calc(2.25rem * var(--primary-font-scale)); font-weight: 700; color: var(--primary); margin-top: 0; position: relative; } .popup-content h1::after { content: ''; position: absolute; bottom: -0.5rem; width: 3rem; height: 3px; background: linear-gradient(90deg, var(--primary) 0%, transparent 100%); border-radius: 2px; } .popup-content h1[style*="text-align: left"]::after { left: 0; } .popup-content h1[style*="text-align: center"]::after { left: 50%; transform: translateX(-50%); } .popup-content h1[style*="text-align: right"]::after { right: 0; } .popup-content h2 { font-size: calc(1.75rem * var(--primary-font-scale)); font-weight: 600; color: #2d3748; position: relative; } .popup-content h2::after { content: ''; position: absolute; bottom: -0.25rem; width: 2rem; height: 2px; background: var(--primary); border-radius: 1px; } .popup-content h2[style*="text-align: left"]::after { left: 0; } .popup-content h2[style*="text-align: center"]::after { left: 50%; transform: translateX(-50%); } .popup-content h2[style*="text-align: right"]::after { right: 0; } .popup-content h3 { font-size: calc(1.375rem * var(--primary-font-scale)); color: var(--primary); font-weight: 600; } .popup-content h4 { font-size: calc(1.125rem * var(--primary-font-scale)); color: #2d3748; } .popup-content h5, .popup-content h6 { font-size: calc(1rem * var(--primary-font-scale)); color: #4a5568; } /* Section Titles */ .popup-content .section-title { font-size: calc(1.625rem * var(--primary-font-scale)); font-weight: 600; color: #1a202c; margin: 1rem 0 1.5rem 0; padding: 0 0 0.75rem 0; background: none; border-radius: 0; box-shadow: none; position: relative; letter-spacing: -0.01em; } .popup-content .section-title::after { content: ''; position: absolute; bottom: 0; left: 0; width: 100%; height: 1px; background: linear-gradient(90deg, var(--primary) 0%, #e2e8f0 100%); } /* Content Wrappers */ .popup-content .content-wrapper { width: 100%; margin-bottom: 2rem; overflow: visible; background: none; box-shadow: none; border: none; padding: 0; animation: fadeInUp 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards; opacity: 0; transform: translateY(20px); } .popup-content .content-wrapper:nth-child(1) { animation-delay: 0.1s; } .popup-content .content-wrapper:nth-child(2) { animation-delay: 0.2s; } .popup-content .content-wrapper:nth-child(3) { animation-delay: 0.3s; } .popup-content .content-wrapper:nth-child(4) { animation-delay: 0.4s; } .popup-content .content-wrapper:nth-child(5) { animation-delay: 0.5s; } @keyframes fadeInUp { 0% { opacity: 0; transform: translateY(20px); } 100% { opacity: 1; transform: translateY(0); } } .popup-content .content-wrapper:last-child { margin-bottom: 0; } /* Images */ .popup-content .image-wrapper { text-align: center; margin: 2.5rem 0; animation: fadeInScale 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; opacity: 0; transform: scale(0.95); } @keyframes fadeInScale { 0% { opacity: 0; transform: scale(0.95); } 100% { opacity: 1; transform: scale(1); } } .popup-content .image-wrapper img { max-width: 100%; height: auto; border-radius: 16px; margin: 0 auto; display: block; box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08); transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1); filter: brightness(1) contrast(1.05); } .popup-content .image-wrapper img:hover { transform: translateY(-4px) scale(1.02); box-shadow: 0 32px 64px rgba(0, 0, 0, 0.12); filter: brightness(1.02) contrast(1.08); } /* Section & Heading Wrappers */ .popup-content .section-wrapper { margin: 3rem 0 2rem 0; background: none; border: none; box-shadow: none; padding: 0; animation: slideInLeft 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; opacity: 0; transform: translateX(-20px); } @keyframes slideInLeft { 0% { opacity: 0; transform: translateX(-20px); } 100% { opacity: 1; transform: translateX(0); } } .popup-content .section-wrapper:first-child { margin-top: 0; } .popup-content .heading-wrapper { margin: 2.5rem 0 1.5rem 0; background: none; border: none; box-shadow: none; padding: 0; animation: slideInRight 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; opacity: 0; transform: translateX(20px); } @keyframes slideInRight { 0% { opacity: 0; transform: translateX(20px); } 100% { opacity: 1; transform: translateX(0); } } .popup-content .heading-wrapper:first-child { margin-top: 0; } .popup-content .heading-wrapper .heading-title { font-family: var(--primary-font); margin: 0; padding: 0; color: var(--primary); font-weight: 600; line-height: 1.3; background: none; border: none; box-shadow: none; letter-spacing: -0.01em; } /* Premium Info & Instruction Blocks with Auto-Animation */ .info-item, .instructions-item { display: flex; align-items: flex-start; gap: 1.5rem; background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%); padding: 1.75rem 1.5rem; margin: 1.75rem 0; min-height: 72px; border-radius: 20px; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04), 0 1px 3px rgba(0, 0, 0, 0.02); border: 1px solid rgba(226, 232, 240, 0.8); transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1); position: relative; overflow: hidden; animation: fadeInUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; opacity: 0; transform: translateY(20px); } .info-item::before, .instructions-item::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, transparent 0%, var(--primary) 50%, transparent 100%); opacity: 0; transition: opacity 0.3s ease; animation: autoBorderGlow 8s ease-in-out infinite; animation-delay: calc(var(--animation-delay, 0s) + 2s); } .info-item:nth-child(1) { --animation-delay: 0s; } .info-item:nth-child(2) { --animation-delay: 1.5s; } .info-item:nth-child(3) { --animation-delay: 3s; } .info-item:nth-child(4) { --animation-delay: 4.5s; } .info-item:nth-child(5) { --animation-delay: 6s; } .info-item:nth-child(6) { --animation-delay: 7.5s; } .instructions-item:nth-child(1) { --animation-delay: 0.5s; } .instructions-item:nth-child(2) { --animation-delay: 2s; } .instructions-item:nth-child(3) { --animation-delay: 3.5s; } .instructions-item:nth-child(4) { --animation-delay: 5s; } .instructions-item:nth-child(5) { --animation-delay: 6.5s; } .instructions-item:nth-child(6) { --animation-delay: 8s; } @keyframes autoBorderGlow { 0%, 100% { opacity: 0; transform: scaleX(0); } 10%, 90% { opacity: 1; transform: scaleX(1); } 50% { opacity: 1; transform: scaleX(1); } } .info-item:hover, .instructions-item:hover { transform: translateY(-4px); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08), 0 4px 12px rgba(0, 0, 0, 0.04); border-color: rgba(var(--primary), 0.2); } .info-item:hover::before, .instructions-item:hover::before { opacity: 1; animation-play-state: paused; } .info-icon { display: flex; align-items: center; justify-content: center; border-radius: 16px; background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%); width: 48px; height: 48px; flex-shrink: 0; color: white; font-size: 1.25rem; box-shadow: 0 8px 24px rgba(var(--primary), 0.3); transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1); position: relative; overflow: hidden; animation: autoIconGlow 6s ease-in-out infinite; animation-delay: calc(var(--animation-delay, 0s) + 1s); } .info-icon::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.2) 50%, transparent 100%); transition: left 0.6s ease; animation: autoShimmer 4s ease-in-out infinite; animation-delay: calc(var(--animation-delay, 0s) + 0.5s); } @keyframes autoIconGlow { 0%, 100% { transform: scale(1) rotate(0deg); box-shadow: 0 8px 24px rgba(var(--primary), 0.3); } 25% { transform: scale(1.05) rotate(2deg); box-shadow: 0 12px 32px rgba(var(--primary), 0.4); } 50% { transform: scale(1.1) rotate(5deg); box-shadow: 0 16px 40px rgba(var(--primary), 0.5); } 75% { transform: scale(1.05) rotate(2deg); box-shadow: 0 12px 32px rgba(var(--primary), 0.4); } } @keyframes autoShimmer { 0%, 100% { left: -100%; } 25% { left: 100%; } 50% { left: 100%; } 75% { left: 100%; } } .info-item:hover .info-icon, .instructions-item:hover .info-icon { transform: scale(1.1) rotate(5deg); box-shadow: 0 12px 32px rgba(var(--primary), 0.4); animation-play-state: paused; } .info-item:hover .info-icon::before, .instructions-item:hover .info-icon::before { left: 100%; animation-play-state: paused; } .info-content { display: flex; flex-direction: column; justify-content: center; flex: 1; gap: 0.2rem; } .info-label { font-family: var(--primary-font); color: #1a202c; font-size: calc(1.25rem * var(--primary-font-scale)); font-weight: 600; margin-bottom: 0; line-height: 1.3; letter-spacing: -0.01em; } .info-label:empty { display: none; } .info-label:not(:empty) + .info-description { margin-top: 0; } .info-description { font-family: var(--secondary-font); color: #4a5568; font-size: calc(1rem * var(--secondary-font-scale));; line-height: 1.6; margin-bottom: 0; font-weight: 400; letter-spacing: -0.01em; } .instructions-title { font-family: var(--primary-font); color: #1a202c; font-size: 1.125rem; font-weight: 600; margin-bottom: 0; line-height: 1.3; letter-spacing: -0.01em; } .instructions-text { font-family: var(--secondary-font); color: #4a5568; font-size: 1rem; line-height: 1.6; margin-bottom: 0; font-weight: 400; letter-spacing: -0.01em; } /* Premium Accordion */ .popup-content .accordion-wrapper { margin: 2.5rem 0 1.5rem 0; background: none; border: none; box-shadow: none; padding: 0; animation: fadeInUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; opacity: 0; transform: translateY(20px); } .popup-content .accordion-items { display: flex; flex-direction: column; gap: 1rem; } .popup-content .accordion-item { border: 1px solid rgba(226, 232, 240, 0.8); border-radius: 16px; overflow: hidden; background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%); box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04); transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1); position: relative; } .popup-content .accordion-item::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, transparent 0%, var(--primary) 50%, transparent 100%); opacity: 0; transition: opacity 0.3s ease; } .popup-content .accordion-item:hover { transform: translateY(-2px); box-shadow: 0 12px 32px rgba(0, 0, 0, 0.08); border-color: rgba(var(--primary), 0.2); } .popup-content .accordion-item:hover::before { opacity: 1; } .popup-content .accordion-item-header { background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%); padding: 1.5rem 1.75rem; border-bottom: 1px solid rgba(226, 232, 240, 0.6); display: flex; align-items: center; justify-content: space-between; cursor: pointer; transition: all 0.3s ease; } .popup-content .accordion-item-header:hover { background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%); } .popup-content .accordion-item-title { font-family: var(--primary-font); margin: 0; color: #1a202c; font-size: calc(1.125rem * var(--primary-font-scale)); font-weight: 600; flex: 1; line-height: 1.3; letter-spacing: -0.01em; } .popup-content .accordion-icon { color: var(--primary); font-size: 1.125rem; transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1); width: 28px; height: 28px; display: flex; align-items: center; justify-content: center; border-radius: 8px; background: rgba(var(--primary), 0.1); } .popup-content .accordion-item.active .accordion-icon { transform: rotate(180deg); background: var(--primary); color: white; } .popup-content .accordion-item-content { padding: 1.5rem 1.75rem; display: none; background: #f8fafc; border-top: 1px solid rgba(226, 232, 240, 0.6); animation: accordionSlideDown 0.4s cubic-bezier(0.16, 1, 0.3, 1) forwards; } @keyframes accordionSlideDown { 0% { opacity: 0; transform: translateY(-10px); } 100% { opacity: 1; transform: translateY(0); } } .popup-content .accordion-item.active .accordion-item-content { display: block; } .popup-content .accordion-item-text { margin: 0; color: #4a5568; font-size: calc(1rem * var(--secondary-font-scale)); line-height: 1.6; font-family: var(--secondary-font); font-weight: 400; letter-spacing: -0.01em; } /* HTML Wrapper */ .popup-content .html-wrapper { margin: 2.5rem 0 1.5rem 0; padding: 0; background: none; border-radius: 0; box-shadow: none; border: none; animation: fadeInUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; opacity: 0; transform: translateY(20px); } /* Mobile Responsive Improvements for Premium Design */ @media (max-width: 768px) { .info-item, .instructions-item { padding: 1.5rem 1.25rem; margin: 1.5rem 0; gap: 1.25rem; border-radius: 16px; } .info-icon { width: 60px; height: 60px; font-size: 1.375rem; } .info-label, .instructions-title { font-size: calc(1.125 * var(--primary-font-scale)); } .info-description, .instructions-text { font-size: calc(0.95rem * var(--secondary-font-scale));; } .popup-content { padding: 2rem 1.5rem; } .popup-content p { font-size: calc(1rem * var(--secondary-font-scale)); margin-bottom: 1.5rem; line-height: 1.7; } .popup-content ul { margin: 1.5rem 0; padding-left: 1.5rem; } .popup-content li { font-size: calc(1rem * var(--secondary-font-scale)); margin-bottom: 0.625rem; line-height: 1.65; } .popup-content h1 { font-size: calc(1.875rem * var(--primary-font-scale)); margin: 2.5rem 0 1.25rem 0; } .popup-content h2 { font-size: calc(1.5rem * var(--primary-font-scale)); margin: 2rem 0 1rem 0; } .popup-content h3 { font-size: calc(1.25rem * var(--primary-font-scale)); margin: 1.75rem 0 0.875rem 0; } .popup-content .content-wrapper { margin-bottom: 1.75rem; } .popup-content .image-wrapper { margin: 2rem 0; } .popup-content .image-wrapper img { border-radius: 14px; } .popup-content .section-wrapper { margin: 1rem 0 1.75rem 0; } .popup-content .section-title { font-size: calc(1.375rem * var(--primary-font-scale)); margin: 2.5rem 0 1.25rem 0; } .popup-content .heading-wrapper { margin: 2rem 0 1.25rem 0; } .popup-content .accordion-wrapper { margin: 2rem 0; } .popup-content .accordion-items { gap: 0.875rem; } .popup-content .accordion-item { border-radius: 14px; } .popup-content .accordion-item-header { padding: 1.25rem 1.5rem; } .popup-content .accordion-item-title { font-size: calc(1.0625rem * var(--primary-font-scale)); } .popup-content .accordion-item-content { padding: 1.25rem 1.5rem; } .popup-content .accordion-item-text { font-size: calc(0.95rem * var(--secondary-font-scale)); } .popup-content .html-wrapper { margin: 2rem 0; } } @media (max-width: 480px) { .info-item, .instructions-item { padding: 1.25rem 1rem; margin: 1.25rem 0; gap: 1rem; border-radius: 14px; } .info-icon { width: 56px; height: 56px; font-size: 1.25rem; } .info-label, .instructions-title { font-size: calc(1.0625rem * var(--primary-font-scale)); } .info-description, .instructions-text { font-size: calc(0.9rem * var(--secondary-font-scale)); } .popup-content { padding: 0rem 1rem; } .popup-content p { font-size: calc(0.95rem * var(--secondary-font-scale)); margin-bottom: 1.25rem; } .popup-content h1 { font-size: calc(1.625rem * var(--primary-font-scale)); margin: 2rem 0 1rem 0; } .popup-content h2 { font-size: calc(1.375rem * var(--primary-font-scale)); margin: 1.75rem 0 0.875rem 0; } .popup-content h3 { font-size: calc(1.125rem * var(--primary-font-scale)); margin: 1.5rem 0 0.75rem 0; } .popup-content .section-title { font-size: calc(1.25rem * var(--primary-font-scale)); margin: 2rem 0 1rem 0; } .popup-content .accordion-item-header { padding: 1rem 1.25rem; } .popup-content .accordion-item-content { padding: 1rem 1.25rem; } } #main-maps { width: 100%; background: var(--bg); flex-direction: column; min-height: 300px; } #main-about-host { width: 100%; background: var(--bg); flex-direction: column; min-height: 300px; } /* Maps Content Styles */ .maps-content { flex: 1; display: flex; align-items: center; justify-content: center; padding: 2rem 1rem 5rem 1rem; overflow-y: auto; } .maps-placeholder { text-align: center; max-width: 400px; padding: 2rem; opacity: 0; transform: translateY(30px); } .maps-placeholder h2 { font-size: 1.5rem; color: var(--gray-800); margin-bottom: 1rem; font-weight: 600; } .maps-placeholder p { color: var(--gray-600); line-height: 1.6; } /* About Host Content Styles */ .about-host-content { display: flex; align-items: flex-start; justify-content: center; padding: 1.5rem 1rem 5em 1rem; overflow-y: auto; height: calc(100vh - 140px); box-sizing: border-box; } .host-profile { width: 100%; max-width: 440px; background: var(--white); border-radius: 24px; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08); opacity: 0; transform: translateY(30px); overflow: hidden; } /* Host Header */ .host-header { display: flex; align-items: center; gap: 1.25rem; padding: 2rem 2rem 1.5rem 2rem; background: linear-gradient(135deg, var(--primary), var(--secondary)); color: white; position: relative; } .host-header::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.05'%3E%3Ccircle cx='9' cy='9' r='8'/%3E%3Ccircle cx='49' cy='49' r='8'/%3E%3Ccircle cx='29' cy='29' r='4'/%3E%3Ccircle cx='9' cy='49' r='4'/%3E%3Ccircle cx='49' cy='9' r='4'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); opacity: 0.1; } .host-avatar { position: relative; flex-shrink: 0; } .host-avatar img { border: 4px solid rgba(255, 255, 255, 0.2); box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1); } .host-status { position: absolute; bottom: -2px; right: -2px; background: #10b981; color: white; border-radius: 50%; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; border: 3px solid white; font-size: 0.75rem; } .host-info { flex: 1; text-align: left; } .host-info h2 { font-size: calc(1.75rem * var(--primary-font-scale)); } color: white; margin-bottom: 0.25rem; font-weight: 700; text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); } .host-title { color: rgba(255, 255, 255, 0.9); font-size: calc(1rem * var(--secondary-font-scale)); margin-bottom: 0.75rem; font-weight: 500; } .host-languages { display: flex; align-items: center; gap: 0.5rem; color: rgba(255, 255, 255, 0.8); font-size: calc(0.875rem * var(--secondary-font-scale)); } .host-languages i { opacity: 0.7; } /* Superhost Pill */ .superhost-pill { display: inline-flex; align-items: center; gap: 0.5rem; background: linear-gradient(135deg, #FFD700, #FFA500); color: #8B4513; padding: 0.375rem 0.75rem; border-radius: 20px; font-size: calc(0.875rem * var(--secondary-font-scale)); font-weight: 700; text-shadow: 0 1px 2px rgba(255, 255, 255, 0.3); box-shadow: 0 2px 8px rgba(255, 215, 0, 0.3), 0 1px 3px rgba(0, 0, 0, 0.1); border: 1.5px solid rgba(255, 255, 255, 0.3); margin-bottom: 0.75rem; animation: superhostGlow 2s ease-in-out infinite alternate; } .superhost-pill i { font-size: 0.75rem; color: #8B4513; } @keyframes superhostGlow { 0% { box-shadow: 0 2px 8px rgba(255, 215, 0, 0.3), 0 1px 3px rgba(0, 0, 0, 0.1); } 100% { box-shadow: 0 4px 12px rgba(255, 215, 0, 0.5), 0 2px 6px rgba(0, 0, 0, 0.15); } } /* Host Bio */ .host-bio { padding: 1.5rem 2rem; border-bottom: 1px solid var(--gray-100); } .host-bio p { color: var(--gray-700); line-height: 1.6; margin: 0; font-size: calc(0.95rem * var(--secondary-font-scale)); } /* Section Titles */ .section-title { display: flex; align-items: center; gap: 0.75rem; font-size: calc(1.1rem * var(--primary-font-scale)); font-weight: 600; color: var(--gray-800); margin-bottom: 1rem; } .section-title i { color: var(--primary); font-size: 1rem; } /* Contact Section */ .host-contact-section { padding: 1.5rem 2rem; border-bottom: 1px solid var(--gray-100); } .contact-grid { display: flex; flex-direction: column; gap: 0.75rem; } .contact-item { display: flex; align-items: center; gap: 1rem; padding: 1rem; background: var(--gray-50); border-radius: 16px; cursor: pointer; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); text-decoration: none; color: inherit; border: 2px solid transparent; } .contact-item:hover { background: var(--primary); color: white; transform: translateY(-2px); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15); border-color: var(--primary); } .contact-icon { width: 48px; height: 48px; background: white; border-radius: 12px; display: flex; align-items: center; justify-content: center; color: var(--primary); font-size: 1.25rem; transition: all 0.3s ease; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); } .contact-item:hover .contact-icon { background: rgba(255, 255, 255, 0.2); color: white; transform: scale(1.1); } .contact-info { display: flex; flex-direction: column; gap: 0.25rem; flex: 1; } .contact-label { font-size: calc(0.875rem * var(--secondary-font-scale)); font-weight: 600; opacity: 0.8; } .contact-value { font-size: calc(0.95rem * var(--secondary-font-scale)); font-weight: 500; } /* Social Links Section */ .social-links-section { padding: 1.5rem 2rem 2rem 2rem; } .social-links-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 0.75rem; } .social-link { display: flex; flex-direction: column; align-items: center; gap: 0.5rem; padding: 1rem 0.75rem; background: var(--gray-50); border-radius: 16px; cursor: pointer; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); text-decoration: none; color: var(--gray-700); border: 2px solid transparent; } .social-link:hover { background: var(--primary); color: white; transform: translateY(-4px); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15); border-color: var(--primary); } .social-link i { font-size: 1.5rem; transition: all 0.3s ease; } .social-link:hover i { transform: scale(1.2); } .social-link span { font-size: 0.8rem; font-weight: 600; text-align: center; } /* Responsive adjustments */ @media (max-width: 480px) { .host-header { flex-direction: column; text-align: center; gap: 1rem; padding: 1.5rem; } .host-info { text-align: center; } .host-info h2 { font-size: calc(1.5rem * var(--primary-font-scale)); } .host-bio, .host-contact-section, .social-links-section { padding: 1.25rem 1.5rem; } .social-links-grid { grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)); gap: 0.5rem; } } #main-guide.slide-down { transform: translateY(100vh); } #main-content { width: 100%; background: var(--bg); flex-direction: column; min-height: 300px; } .content-container { flex: 1; position: relative; overflow: hidden; padding-bottom: calc(70px + var(--safe-area-inset-bottom)); min-height: 100vh; background: var(--bg); } .content-section { position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; transform: translateX(100%); transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94); display: none; } .content-section.active { opacity: 1; transform: translateX(0); display: block; } .content-section.slide-out { transform: translateX(-100%); } /* Maps Content Styles */ .maps-content-wrapper { flex: 1; display: flex; flex-direction: column; height: 100%; overflow: hidden; padding: 1rem; gap: 1rem; } .places-explorer-header { background: var(--primary); color: white; padding: 1rem 1.5rem; border-radius: 8px; text-align: center; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); } .places-explorer-header h1 { color: white; font-size: 1.4rem; margin-bottom: 0.25rem; font-weight: 600; } .places-explorer-header p { margin: 0; opacity: 0.9; font-size: 0.9rem; } .controls { flex-shrink: 0; } .categories { width: 100%; } .category-buttons { display: flex; gap: 8px; overflow-x: auto; padding: 4px 0; scrollbar-width: thin; scrollbar-color: #d1e0ff #f8f9fa; justify-content: flex-start; -webkit-overflow-scrolling: touch; } .category-buttons::-webkit-scrollbar { height: 6px; } .category-buttons::-webkit-scrollbar-track { background: #f8f9fa; border-radius: 3px; } .category-buttons::-webkit-scrollbar-thumb { background: #d1e0ff; border-radius: 3px; } .category-buttons::-webkit-scrollbar-thumb:hover { background: #4a7bd9; } .category-btn { background: #eef7ff; border: 1px solid #d1e0ff; color: #1a2a6c; padding: 8px 16px; border-radius: 20px; font-size: 0.9rem; cursor: pointer; transition: all 0.3s ease; display: flex; align-items: center; gap: 5px; font-weight: 500; white-space: nowrap; flex-shrink: 0; min-width: fit-content; } .category-btn:hover, .category-btn.active { background: #4a7bd9; color: white; } .places-content { flex: 1; display: flex; flex-direction: column; gap: 1rem; min-height: 0; } /* Desktop layout - side by side */ @media (min-width: 1024px) { .places-content { flex-direction: row; gap: 1.5rem; } .map-container { flex: 1.2; min-width: 0; } .cards-section { flex: 1; min-width: 0; max-width: 600px; } } .map-container { flex: 1; background: white; border-radius: 12px; overflow: hidden; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05); position: relative; min-height: 300px; } #map { height: 100%; width: 100%; } .cards-section { flex: 1; display: flex; flex-direction: column; gap: 1rem; min-height: 0; } .cards-section .controls { order: 2; } .cards-section .cards-header { order: 1; } .cards-section .cards-container { order: 3; } .cards-header { display: flex; justify-content: space-between; align-items: center; padding: 1rem 1.5rem; background: white; border-radius: 8px; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05); } .location-name { font-weight: 600; color: #1a2a6c; font-size: 1.1rem; display: flex; align-items: center; gap: 8px; } .results-count { font-weight: 500; color: #4a7bd9; font-size: 0.95rem; } .cards-container { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 0.75rem; flex: 1; overflow-y: auto; padding: 0.5rem; } /* Larger screens - optimize for two rows */ @media (min-width: 1024px) { .cards-container { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 0.75rem; max-height: 70vh; } } .maps-placeholder { text-align: center; max-width: 400px; padding: 2rem; opacity: 1; transform: translateY(0); margin: 2rem auto; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 300px; background: white; border-radius: 12px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05); animation: fadeInUp 0.6s ease-out; } .maps-placeholder h2 { font-size: 1.5rem; color: var(--text); margin-bottom: 1rem; font-weight: 600; font-family: var(--primary-font); } .maps-placeholder p { color: var(--gray-600); line-height: 1.6; font-family: var(--secondary-font); } @keyframes fadeInUp { 0% { opacity: 0; transform: translateY(30px); } 100% { opacity: 1; transform: translateY(0); } } .maps-content-wrapper .card { background: white; border-radius: 12px; overflow: hidden; box-shadow: 0 3px 10px rgba(0, 0, 0, 0.08); transition: all 0.3s ease; display: flex; flex-direction: column; height: auto; min-height: 360px; cursor: pointer; position: relative; } /* Compact cards on larger screens */ @media (min-width: 1024px) { .maps-content-wrapper .card { min-height: 340px; } .maps-content-wrapper .card-image { height: 160px; } .maps-content-wrapper .card-content { padding: 1rem; } .maps-content-wrapper .card h3 { font-size: calc(1rem * var(--primary-font-scale)); } .maps-content-wrapper .card p { font-size: 0.85rem; -webkit-line-clamp: 2; } } .maps-content-wrapper .card:hover { transform: translateY(-5px); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15); } .maps-content-wrapper .card-image { height: 180px; width: 100%; background: linear-gradient(45deg, #f0f5ff, #e1ebff); display: flex; align-items: center; justify-content: center; overflow: hidden; position: relative; } .maps-content-wrapper .card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; } .maps-content-wrapper .card:hover .card-image img { transform: scale(1.05); } .maps-content-wrapper .card-image .placeholder { color: #4a7bd9; font-size: 3.5rem; opacity: 0.8; transition: all 0.3s ease; } .maps-content-wrapper .card:hover .card-image .placeholder { transform: scale(1.1); opacity: 1; } .maps-content-wrapper .card-content { padding: 1.25rem; flex: 1; display: flex; flex-direction: column; } .maps-content-wrapper .card-header { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; } .maps-content-wrapper .place-card-icon { width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .maps-content-wrapper .place-card-icon i { font-size: 18px; color: white; } .maps-content-wrapper .card h3 { color: #1a2a6c; font-size: calc(1.1rem * var(--primary-font-scale)); font-weight: 600; flex: 1; margin: 0; } .maps-content-wrapper .card p { color: #555; margin-bottom: 15px; font-size: 0.9rem; line-height: 1.5; flex: 1; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .maps-content-wrapper .card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; } .maps-content-wrapper .tag { background: #4a7bd9; color: white; padding: 4px 12px; border-radius: 20px; font-size: 0.8rem; font-weight: 500; } .maps-content-wrapper .directions-btn { background: var(--primary); color:rgb(193, 194, 196); border: none; border-radius: 20px; padding: 8px 15px; font-size: 0.9rem; cursor: pointer; transition: all 0.3s ease; display: flex; align-items: center; gap: 8px; margin-top: 5px; width: fit-content; text-decoration: none; font-weight: 500; } .maps-content-wrapper .directions-btn:hover { background: var(--primary-dark); transform: translateY(-2px); } /* Enhanced card content styles for guest view */ .maps-content-wrapper .tag.secondary-tag { background: #f0f5ff; color: #4a7bd9; border: 1px solid #d1e0ff; font-weight: 400; } .maps-content-wrapper .card-detail { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; font-size: 0.85rem; color: #555; line-height: 1.4; } .maps-content-wrapper .card-detail i { width: 16px; color: #4a7bd9; font-size: 12px; flex-shrink: 0; } .maps-content-wrapper .contact-link { color: #4a7bd9; text-decoration: none; transition: color 0.3s ease; } .maps-content-wrapper .contact-link:hover { color: #1a2a6c; text-decoration: underline; } .maps-content-wrapper .card-extra-info { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; } .maps-content-wrapper .extra-info-item { display: flex; align-items: center; gap: 4px; background: #f8f9fa; padding: 3px 8px; border-radius: 12px; font-size: 0.75rem; color: #666; border: 1px solid #e9ecef; } .maps-content-wrapper .extra-info-item i { color: #4a7bd9; font-size: 10px; } /* Expandable card content system for guest view */ .maps-content-wrapper .card-details-container { position: relative; } .maps-content-wrapper .card-details-expanded { max-height: none; opacity: 1; transition: all 0.4s ease; } .maps-content-wrapper .card-details-collapsed { max-height: 0; opacity: 0; overflow: hidden; transition: all 0.4s ease; } .maps-content-wrapper .expand-toggle { background: none; border: none; color: #4a7bd9; font-size: 0.85rem; font-weight: 500; cursor: pointer; padding: 8px 0; margin-top: 8px; display: flex; align-items: center; gap: 5px; transition: all 0.3s ease; align-self: flex-start; } .maps-content-wrapper .expand-toggle:hover { color: #1a2a6c; transform: translateX(2px); } .maps-content-wrapper .expand-toggle i { font-size: 12px; transition: transform 0.3s ease; } .maps-content-wrapper .expand-toggle.expanded i { transform: rotate(180deg); } .maps-content-wrapper .card-compact-info { display: flex; flex-wrap: wrap; gap: 12px; font-size: 0.8rem; color: #666; margin-bottom: 8px; } .maps-content-wrapper .compact-info-item { display: flex; align-items: center; gap: 4px; } .maps-content-wrapper .compact-info-item i { color: #4a7bd9; font-size: 10px; width: 12px; } /* Custom Marker Styles */ .custom-marker { background: white; border-radius: 50%; width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3); border: 2px solid white; transform: translate(-50%, -50%); } .marker-icon { color: white; font-size: 14px; } /* Leaflet Popup Styles - Highly Specific to Avoid Conflicts */ #map .leaflet-popup-content-wrapper { border-radius: 8px !important; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important; background: white !important; } #map .leaflet-popup-content { margin: 12px !important; color: #333 !important; font-family: 'Inter', sans-serif !important; } #map .leaflet-popup .map-popup-content { display: flex; flex-direction: column; gap: 8px; color: #333 !important; } #map .leaflet-popup .map-popup-title { font-size: 1.1rem !important; font-weight: 600 !important; color: #1a2a6c !important; margin: 0 !important; } #map .leaflet-popup .map-popup-description { font-size: 0.9rem !important; color: #555 !important; margin: 0 !important; } #map .leaflet-popup .map-popup-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 5px 0; } #map .leaflet-popup .map-popup-tag { background: #4a7bd9 !important; color: white !important; padding: 3px 10px !important; border-radius: 20px !important; font-size: 0.8rem !important; } #map .leaflet-popup .map-popup-directions-btn { background: var(--primary) !important; color: rgb(194, 194, 194) !important; border: none !important; border-radius: 20px !important; padding: 8px 12px !important; font-size: 0.9rem !important; cursor: pointer !important; transition: all 0.3s ease !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 5px !important; text-decoration: none !important; text-align: center !important; margin-top: 5px !important; } #map .leaflet-popup .map-popup-directions-btn:hover { background: var(--primary-dark) !important; } /* Animation */ @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .maps-content-wrapper .fade-in { animation: fadeIn 0.5s ease-out; } /* Responsive styles for maps */ @media (min-width: 768px) { .places-content { flex-direction: row; } .map-container { min-height: auto; } .cards-section .controls { margin-top: 0.5rem; margin-bottom: 0.5rem; padding-top: 0.5rem; border-top: 1px solid rgba(74, 123, 217, 0.1); } .category-buttons { justify-content: flex-start; padding: 3px 0; } } @media (max-width: 768px) { #maps-content { overflow: hidden; } .maps-content-wrapper { padding: 0.75rem; height: calc(100dvh - 130px); max-height: calc(100dvh - 130px); overflow-y: auto; -webkit-overflow-scrolling: touch; box-sizing: border-box; } .places-explorer-header { margin-bottom: 1rem; padding: 1rem 1.5rem; font-size: 0.9rem; } .places-explorer-header h1 { font-size: 1.5rem; } .cards-section .controls { margin-bottom: 0.2rem; margin-top: 0.2rem; padding-top: 0.2rem; border-top: 1px solid rgba(74, 123, 217, 0.1); } .category-buttons { gap: 6px; justify-content: flex-start; overflow-x: auto; -webkit-overflow-scrolling: touch; padding-bottom: 0.20rem; } .category-btn { flex-shrink: 0; padding: 6px 12px; font-size: 0.8rem; } .places-content { flex-direction: column; gap: 1rem; height: auto; min-height: 0; padding-bottom: 7rem; } .map-container { height: 250px; min-height: 250px; flex: none; } .cards-section { flex: none; height: auto; } .cards-header { padding: 0.75rem 1rem; flex-direction: column; align-items: flex-start; gap: 0.5rem; } .location-name { font-size: 1rem; } .results-count { font-size: 0.85rem; } .cards-container { grid-template-columns: 1fr; gap: 0.75rem; padding: 0; height: auto; overflow: visible; } .maps-content-wrapper .card { height: auto; min-height: 280px; } .maps-content-wrapper .card-content { padding: 1rem; } .maps-content-wrapper .card-header { margin-bottom: 0.75rem; } .maps-content-wrapper .place-card-icon { width: 35px; height: 35px; } .maps-content-wrapper .place-card-icon i { font-size: 16px; } .maps-content-wrapper .card h3 { font-size: calc(1rem * var(--primary-font-scale)); } .maps-content-wrapper .card p { font-size: 0.85rem; margin-bottom: 0.75rem; } .maps-content-wrapper .directions-btn { padding: 6px 12px; font-size: 0.8rem; } .maps-placeholder { margin: 1rem auto; padding: 1.5rem; min-height: 250px; } .maps-placeholder h2 { font-size: 1.3rem; } .maps-placeholder p { font-size: 0.9rem; } } @media (max-width: 480px) { .maps-content-wrapper { padding: 0.5rem; height: calc(100dvh - 130px); max-height: calc(100dvh - 130px); } .places-explorer-header { padding: 0.75rem 1rem; } .places-explorer-header h1 { font-size: 1.3rem; } .category-btn { padding: 5px 10px; font-size: 0.75rem; } .map-container { height: 200px; min-height: 200px; } .cards-container { gap: 0.5rem; } .maps-content-wrapper .card { min-height: 260px; } .maps-content-wrapper .card-content { padding: 0.75rem; } .maps-placeholder { margin: 0.5rem auto; padding: 1rem; min-height: 200px; } .maps-placeholder h2 { font-size: 1.2rem; } .maps-placeholder p { font-size: 0.85rem; } @media (max-width: 768px) { .topbar-left, .topbar-right { flex: 0 0 auto !important; } .topbar-center { flex: 1 1 0% !important; min-width: 0 !important; } } @media (max-width: 480px) { .topbar-left, .topbar-right { flex: 0 0 auto !important; } .topbar-center { flex: 0.85 1 0% !important; min-width: 0 !important; } } } .StatusBox { position: relative; padding: 20px 24px; background: #fff; overflow: hidden; display: flex; flex-direction: column; justify-content: center; transition: all 0.3s ease; --v4-accent: #002927; } .StatusBox .label { font-size: calc(0.9rem * var(--secondary-font-scale)); font-weight: bold; text-transform: uppercase; margin-bottom: 4px; letter-spacing: 0.5px; } .StatusBox .value { font-size: calc(1.8rem * var(--primary-font-scale)); font-weight: 600; line-height: 1.3; word-break: break-word; } .StatusBox.variant4 { background: #fff8e1; border-radius: 12px; font-family: 'Courier New', monospace; padding-top: 40px; } .StatusBox.variant4::before { content: ''; position: absolute; top: 0; right: 0; width: 80px; height: 20px; background: linear-gradient(90deg, transparent, var(--v4-accent, #fca311), transparent); animation: shimmer 2s linear infinite; } .StatusBox.variant4 { background: #00292710; } @media (max-width: 500px) { .StatusBox .value { font-size: calc(1.5rem * var(--primary-font-scale)); } } .StatusBox { position: relative; padding: 20px 24px; background: #fff; overflow: hidden; display: flex; flex-direction: column; justify-content: center; transition: all 0.3s ease; } .StatusBox .label { font-size: calc(0.9rem * var(--secondary-font-scale)); font-weight: bold; text-transform: uppercase; margin-bottom: 4px; letter-spacing: 0.5px; } .StatusBox .value { font-size: calc(1.8rem * var(--primary-font-scale)); font-weight: 600; line-height: 1.3; word-break: break-word; } .StatusBox.variant7 { position: relative; border-radius: 16px; overflow: hidden; color: white; text-align: center; align-items: center; justify-content: center; background: #000; } .StatusBox.variant7::before { content: ''; position: absolute; inset: 0; background-image: url('https://raw.githubusercontent.com/faizux/rental_clickcrafts/refs/heads/main/clock.jpeg'); background-size: cover; background-position: center; opacity: 0.7; z-index: 0; } .StatusBox.variant7 .label, .StatusBox.variant7 .value { position: relative; z-index: 1; } .StatusBox.variant7 .label { font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.5px; color: #e0e0e0; } .StatusBox.variant7 .value { font-size: calc(2.1rem * var(--primary-font-scale)); font-weight: bold; color: #ffffff; } .StatusBox.variant7::before { background-image: url('https://raw.githubusercontent.com/faizux/rental_clickcrafts/refs/heads/main/clock.jpeg'); } @media (max-width: 500px) { .StatusBox .value { font-size: calc(1.5rem * var(--primary-font-scale)); } .StatusBox.variant2 { width: 160px; height: 160px; } } .StatusBox { position: relative; padding: 20px 24px; background: #fff; overflow: hidden; display: flex; flex-direction: column; justify-content: center; transition: all 0.3s ease; } .StatusBox .label { font-size: calc(0.9rem * var(--secondary-font-scale)); font-weight: bold; text-transform: uppercase; margin-bottom: 4px; letter-spacing: 0.5px; } .StatusBox .value { font-size: calc(1.8rem * var(--primary-font-scale)); font-weight: 600; line-height: 1.3; word-break: break-word; } .StatusBox.variant7 { position: relative; border-radius: 16px; overflow: hidden; color: white; text-align: center; align-items: center; justify-content: center; background: #000; } .StatusBox.variant7::before { content: ''; position: absolute; inset: 0; background-image: url('https://raw.githubusercontent.com/faizux/rental_clickcrafts/refs/heads/main/clock.jpeg'); background-size: cover; background-position: center; opacity: 0.7; z-index: 0; } .StatusBox.variant7 .label, .StatusBox.variant7 .value { position: relative; z-index: 1; } .StatusBox.variant7 .label { font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.5px; color: #e0e0e0; } .StatusBox.variant7 .value { font-size: calc(2.1rem * var(--primary-font-scale)); font-weight: bold; color: #ffffff; } .StatusBox.variant7::before { background-image: url('https://raw.githubusercontent.com/faizux/rental_clickcrafts/refs/heads/main/clock.jpeg'); } @media (max-width: 500px) { .StatusBox .value { font-size: calc(1.5rem * var(--primary-font-scale)); } .StatusBox.variant2 { width: 160px; height: 160px; } } .tile-set-block { background: var(--white); border-radius: 16px; box-shadow: 0 2px 8px rgba(0,0,0,0.07); padding: 1rem; margin-bottom: 1rem; display: flex; flex-direction: column; gap: 0.5rem; } .tile-set-title { font-size: calc(1.2rem * var(--primary-font-scale)); font-weight: 700; margin: 0; color: var(--primary-dark,#3730a3); font-family: inherit; } .tile-set-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 18px; margin-top: 0; } .tile-set-tile { background: #f9fafb; border-radius: 12px; box-shadow: 0 1px 4px rgba(0,0,0,0.04); padding: 0.9rem 0.4rem 0.7rem 0.4rem; text-align: center; display: flex; flex-direction: column; align-items: center; position: relative; min-height: 85px; } .tile-set-icon { font-size: 1.9rem; display: block; margin-bottom: 0.4rem; } .tile-set-label { font-size: calc(0.95rem * var(--secondary-font-scale)); font-family: inherit; color: #1f2937; background: transparent; border: none; text-align: center; margin-bottom: 0.1rem; outline: none; width: 100%; } .tile-set-block { background: var(--white); border-radius: 16px; box-shadow: 0 2px 8px rgba(0,0,0,0.07); padding: 1rem; margin-bottom: 1rem; display: flex; flex-direction: column; gap: 0.5rem; } .tile-set-title { font-size: calc(1.2rem * var(--primary-font-scale)); font-weight: 700; margin: 0; color: var(--primary-dark,#3730a3); font-family: inherit; } .tile-set-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 18px; margin-top: 0; } .tile-set-tile { background: #f9fafb; border-radius: 12px; box-shadow: 0 1px 4px rgba(0,0,0,0.04); padding: 0.9rem 0.4rem 0.7rem 0.4rem; text-align: center; display: flex; flex-direction: column; align-items: center; position: relative; min-height: 85px; } .tile-set-icon { font-size: 1.9rem; display: block; margin-bottom: 0.4rem; } .tile-set-label { font-size: calc(0.95rem * var(--secondary-font-scale)); font-family: inherit; color: #1f2937; background: transparent; border: none; text-align: center; margin-bottom: 0.1rem; outline: none; width: 100%; } .wifi-card-wrapper { position: relative; display: flex; justify-content: center; margin: 2rem auto; flex-direction: column; align-items: center; max-width: 400px; } .wifi-icon-wrapper { position: absolute; top: -45px; left: 50%; transform: translateX(-50%); background-color: var(--primary, #00aaff); border-radius: 50%; width: 90px; height: 90px; display: flex; justify-content: center; align-items: center; border: 4px solid #ffffff; box-shadow: 0 2px 6px rgba(0,0,0,0.2); z-index: 10; } .wifi-icon-wrapper i { color: #ffffff; font-size: 36px; } .wifi-card { width: 100%; max-width: 340px; background: #ffffff; border-radius: 30px; box-shadow: 0 0 12px rgba(0,0,0,0.2); border: 3px solid var(--primary, #00aaff); text-align: center; padding-top: 70px; position: relative; } .wifi-label { background-color: var(--primary, #00aaff); color: white; display: inline-block; padding: 6px 16px; font-size: 16px; font-weight: bold; border-radius: 4px; margin-bottom: 20px; font-family: var(--secondary-font, Arial, sans-serif); } .qr-code { width: 240px; height: 240px; background: #ffffff; margin: 0 auto 25px; border-radius: 8px; display: flex; align-items: center; justify-content: center; border: 2px solid #f0f0f0; overflow: hidden; } .qr-code img { width: 100%; height: 100%; object-fit: contain; } .connect-bar { background-color: var(--primary, #00aaff); color: white; font-weight: bold; padding: 20px 0; font-size: 22px; border-radius: 0 0 27px 27px; font-family: var(--secondary-font, Arial, sans-serif); } .wifi-info-box { background: #f1f9ff; margin: 0 auto 20px; padding: 16px; border-radius: 10px; text-align: center; width: 85%; font-size: 14px; color: #222; border: 1px solid #cceeff; } .ssid-label { font-size: 14px; color: #0077aa; font-family: var(--secondary-font, Arial, sans-serif); } .ssid-value { font-weight: bold; color: #444; font-size: 16px; margin-bottom: 12px; font-family: var(--secondary-font, Arial, sans-serif); } .password-label { font-size: 14px; color: #0077aa; font-family: var(--secondary-font, Arial, sans-serif); } .password-row { display: flex; justify-content: center; align-items: center; gap: 8px; } .password-value { font-size: 24px; font-weight: bold; color: #222; font-family: var(--secondary-font, Arial, sans-serif); } .copy-btn { background: none; border: none; color: var(--primary, #00aaff); font-size: 20px; cursor: pointer; padding: 4px; border-radius: 4px; transition: all 0.2s ease; } .copy-btn:hover { background-color: rgba(0, 170, 255, 0.1); } @media (max-width: 480px) { .wifi-card { max-width: 300px; } .qr-code { width: 200px; height: 200px; } } .tile-set-block { background: var(--white); border-radius: 16px; box-shadow: 0 2px 8px rgba(0,0,0,0.07); padding: 1rem; margin-bottom: 1rem; display: flex; flex-direction: column; gap: 0.5rem; } .tile-set-title { font-size: calc(1.2rem * var(--primary-font-scale)); font-weight: 700; margin: 0; color: var(--primary-dark,#3730a3); font-family: inherit; } .tile-set-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 18px; margin-top: 0; } .tile-set-tile { background: #f9fafb; border-radius: 12px; box-shadow: 0 1px 4px rgba(0,0,0,0.04); padding: 0.9rem 0.4rem 0.7rem 0.4rem; text-align: center; display: flex; flex-direction: column; align-items: center; position: relative; min-height: 85px; } .tile-set-icon { font-size: 1.9rem; display: block; margin-bottom: 0.4rem; } .tile-set-label { font-size: calc(0.95rem * var(--secondary-font-scale)); font-family: inherit; color: #1f2937; background: transparent; border: none; text-align: center; margin-bottom: 0.1rem; outline: none; width: 100%; } .StatusBox { position: relative; padding: 20px 24px; background: #fff; overflow: hidden; display: flex; flex-direction: column; justify-content: center; transition: all 0.3s ease; --v1-border: #4cc9f0; --v1-label-color: #4361ee; } .StatusBox .label { font-size: calc(0.9rem * var(--secondary-font-scale)); font-weight: bold; text-transform: uppercase; margin-bottom: 4px; letter-spacing: 0.5px; } .StatusBox .value { font-size: calc(1.8rem * var(--primary-font-scale)); font-weight: 600; line-height: 1.3; word-break: break-word; } @keyframes shimmer { 0% { background-position: -200% 0; } 100% { background-position: 200% 0; } } .StatusBox.variant1 { border-radius: 14px; text-align: center; align-items: center; } .StatusBox.variant1::before { content: ''; position: absolute; inset: 0; padding: 2px; border-radius: inherit; background: linear-gradient(90deg, transparent, var(--v1-border, #4cc9f0), transparent); background-size: 200% auto; animation: shimmer 2.5s linear infinite; mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); mask-composite: exclude; pointer-events: none; } .StatusBox.variant1 .label { color: var(--v1-label-color, #4361ee); font-size: calc(1.08rem * var(--secondary-font-scale)); } .StatusBox.variant1 .value { color: #111; font-size: calc(2.16rem * var(--primary-font-scale)); } @media (max-width: 500px) { .StatusBox .value { font-size: calc(1.5rem * var(--primary-font-scale)); } .StatusBox.variant2 { width: 160px; height: 160px; } } .StatusBox { position: relative; padding: 20px 24px; background: #fff; overflow: hidden; display: flex; flex-direction: column; justify-content: center; transition: all 0.3s ease; --v2-color: #d00000; } .StatusBox .label { font-size: calc(0.9rem * var(--secondary-font-scale)); font-weight: bold; text-transform: uppercase; margin-bottom: 4px; letter-spacing: 0.5px; } .StatusBox .value { font-size: calc(1.8rem * var(--primary-font-scale)); font-weight: 600; line-height: 1.3; word-break: break-word; } @keyframes pulse { 0%, 100% { box-shadow: 0 0 0 rgba(255, 0, 0, 0); } 50% { box-shadow: 0 0 15px rgba(255, 0, 0, 0.4); } } .StatusBox.variant2 { background: #ffe5e5; border-radius: 50%; width: 200px; height: 200px; justify-content: center; align-items: center; text-align: center; margin: auto; animation: pulse 2.5s infinite ease-in-out; } .StatusBox.variant2 .label { color: var(--v2-color, #d00000); font-size: calc(0.85rem * var(--secondary-font-scale)); } .StatusBox.variant2 .value { color: var(--v2-color, #d00000); font-size: calc(2.4rem * var(--primary-font-scale)); } .StatusBox.variant2 { background: #d0000020; box-shadow: 0 0 10px #d0000080; } .StatusBox.variant2 .label, .StatusBox.variant2 .value { color: #d00000; } @media (max-width: 500px) { .StatusBox .value { font-size: calc(1.5rem * var(--primary-font-scale)); } .StatusBox.variant2 { width: 160px; height: 160px; } } .StatusBox { position: relative; padding: 20px 24px; background: #fff; overflow: hidden; display: flex; flex-direction: column; justify-content: center; transition: all 0.3s ease; } .StatusBox .label { font-size: calc(0.9rem * var(--secondary-font-scale)); font-weight: bold; text-transform: uppercase; margin-bottom: 4px; letter-spacing: 0.5px; } .StatusBox .value { font-size: calc(1.8rem * var(--primary-font-scale)); font-weight: 600; line-height: 1.3; word-break: break-word; } .StatusBox.variant5 { background: #e0e5ec; border-radius: 18px; box-shadow: 6px 6px 12px #c8ccd1, -6px -6px 12px #f8fbff; text-align: center; align-items: center; } .StatusBox.variant5 .value { background: #fff; padding: 10px 16px; border-radius: 12px; box-shadow: inset 2px 2px 5px rgba(0,0,0,0.05); font-weight: bold; } @media (max-width: 500px) { .StatusBox .value { font-size: calc(1.5rem * var(--primary-font-scale)); } .StatusBox.variant2 { width: 160px; height: 160px; } }