.city-details-card{position:absolute;top:20px;right:20px;width:300px;background:var(--bg-primary);border-radius:8px;box-shadow:0 4px 12px var(--shadow-medium);padding:20px;z-index:10;animation:slideIn .3s ease-out}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.city-details-card h3{margin:0 0 16px;color:var(--text-primary);font-size:18px;border-bottom:1px solid var(--border-primary);padding-bottom:12px}.details-grid{display:grid;grid-template-columns:1fr;gap:8px}.detail-item{display:flex;justify-content:space-between;font-size:14px}.detail-item:last-child{border-bottom:none}.detail-item strong{color:var(--text-secondary);font-weight:600}.detail-item span{color:var(--text-primary)}.country-info{display:flex;align-items:center;gap:8px}.country-flag{font-size:18px;line-height:1;filter:drop-shadow(0 1px 2px rgba(0,0,0,.1))}.country-info span{color:var(--text-primary);font-size:14px}.close-button{border:none;border-radius:50%;cursor:pointer;font-weight:700;display:flex;align-items:center;justify-content:center;transition:all .2s ease;line-height:1;padding:0;text-align:center;background:transparent}.close-btn-small{width:20px;height:20px;font-size:12px}.close-btn-medium{width:24px;height:24px;font-size:14px}.close-btn-large{width:32px;height:32px;font-size:18px}.close-btn-default{background:var(--bg-secondary);color:var(--text-secondary)}.close-btn-default:hover{background:var(--accent-danger);color:#fff;transform:scale(1.1)}.close-btn-default:active{background:var(--accent-danger-dark);transform:scale(1)}.close-btn-danger{background:var(--accent-danger);color:#fff}.close-btn-danger:hover{background:var(--accent-danger-dark);transform:scale(1.1)}.close-btn-danger:active{background:var(--accent-danger-darker);transform:scale(1)}.close-btn-light{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-primary)}.close-btn-light:hover{background:var(--bg-secondary);color:var(--text-primary);transform:scale(1.1)}.close-btn-light:active{background:var(--border-primary);transform:scale(1)}.close-button:focus{outline:2px solid var(--accent-primary);outline-offset:2px}.close-button:focus:not(:focus-visible){outline:none}@media (max-width: 768px){.close-btn-small{width:24px;height:24px;font-size:14px}.close-btn-medium{width:28px;height:28px;font-size:16px}.close-btn-large{width:36px;height:36px;font-size:20px}}.close-button.city-reset-btn{position:absolute;top:8px;right:8px;z-index:10}.close-button.city-details-close-btn{position:absolute;top:12px;right:12px;z-index:10}.city-info .close-button{position:absolute;top:8px;right:8px;z-index:10}.city-details-card .close-button,.mobile-menu-content .close-button{position:absolute;top:12px;right:12px;z-index:10}.mobile-menu-header .close-button,.help-tooltip-header .close-button{position:relative;top:auto;right:auto;z-index:auto}.theme-toggle{background:var(--button-primary-bg);color:var(--text-inverse);border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;position:relative;overflow:hidden}.theme-toggle:hover{background:var(--button-primary-hover);transform:scale(1.1)}.theme-toggle:active{transform:scale(1)}.theme-toggle:focus{outline:none}.theme-toggle.small{width:28px;height:28px}.theme-toggle.medium{width:40px;height:40px}.theme-toggle.large{width:48px;height:48px}.theme-toggle-icon{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.theme-toggle-icon svg{transition:transform .3s ease;width:16px!important;height:16px!important;max-width:none!important;max-height:none!important}.theme-toggle-icon svg[viewBox="0 0 48 48"]{width:16px!important;height:16px!important}.theme-toggle:hover .theme-toggle-icon svg{transform:rotate(15deg)}.sun-icon{animation:sunRise .3s ease-out}.moon-icon{animation:moonRise .3s ease-out}.system-icon{animation:systemPulse .3s ease-out}@keyframes sunRise{0%{transform:scale(.8) rotate(-15deg);opacity:.7}to{transform:scale(1) rotate(0);opacity:1}}@keyframes moonRise{0%{transform:scale(.8) rotate(15deg);opacity:.7}to{transform:scale(1) rotate(0);opacity:1}}@keyframes systemPulse{0%{transform:scale(.8);opacity:.7}to{transform:scale(1);opacity:1}}@keyframes systemRotate{0%,to{transform:rotate(0)}50%{transform:rotate(180deg)}}.theme-toggle:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:rgba(255,255,255,.3);transform:translate(-50%,-50%);transition:width .3s ease,height .3s ease}.theme-toggle:active:before{width:100%;height:100%}.dark-theme .theme-toggle{background:var(--accent-primary)}.dark-theme .theme-toggle:hover{background:var(--accent-secondary)}.dark-theme .theme-toggle.system-mode{background:linear-gradient(135deg,var(--accent-primary) 0%,var(--accent-secondary) 100%);border-color:var(--accent-primary)}.dark-theme .theme-toggle.system-mode:hover{background:linear-gradient(135deg,var(--accent-secondary) 0%,var(--accent-primary) 100%);border-color:var(--accent-secondary)}@media (max-width: 768px){.theme-toggle.medium{width:36px;height:36px}.theme-toggle.large{width:44px;height:44px}}@media (prefers-contrast: high){.theme-toggle{border:2px solid var(--text-primary)}.theme-toggle:hover{border-color:var(--accent-primary)}}@media (prefers-reduced-motion: reduce){.theme-toggle,.theme-toggle-icon svg,.theme-toggle:before{transition:none}.theme-toggle:hover .theme-toggle-icon svg{transform:none}.sun-icon,.moon-icon,.system-icon,.theme-toggle.system-mode .system-icon{animation:none}}.header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:16px 32px}.header-controls{display:flex;align-items:center;gap:16px}.header img{height:56px}.header svg{height:56px;width:156px}.logo-link{text-decoration:none}.nav-toggle{display:none;flex-direction:column;justify-content:space-around;width:30px;height:30px;background:transparent;border:none;cursor:pointer;padding:0;z-index:10}.nav-toggle span{width:30px;height:3px;background:var(--accent-primary);border-radius:10px;transition:all .3s linear;position:relative;transform-origin:1px}.nav-toggle.active span:first-child{transform:rotate(45deg)}.nav-toggle.active span:nth-child(2){opacity:0}.nav-toggle.active span:nth-child(3){transform:rotate(-45deg)}@media (max-width: 768px){.header{padding:8px 16px;flex-direction:row;text-align:left;gap:16px}.header img{height:48px}.header svg{height:48px}.nav-toggle{display:flex}}.tooltip-container{position:relative;display:flex;align-content:center;align-items:center}.tooltip-icon{display:inline-block;width:16px;height:16px;background-color:#666;color:#fff;border-radius:50%;text-align:center;line-height:16px;font-size:12px;margin-left:4px;cursor:help;vertical-align:middle}.tooltip-content{position:absolute;bottom:125%;left:50%;transform:translate(-50%);background-color:#333;color:#fff;padding:8px 12px;border-radius:4px;font-size:14px;white-space:nowrap;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;z-index:1000;box-shadow:0 2px 8px #0003;text-transform:none}.tooltip-content:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#333}.tooltip-container:hover .tooltip-icon{background-color:#333}.table-container{overflow-x:auto;overflow-y:visible;margin:32px 0;border-radius:8px;box-shadow:0 4px 12px var(--shadow-medium)}.table{width:100%;min-width:600px;border-collapse:collapse;border-radius:8px;overflow:visible}.table th,.table td{padding:16px;text-align:left;border-bottom:1px solid var(--border-primary)}.table th{background-color:var(--table-header-bg);color:var(--table-header-text);font-weight:600;font-size:12px!important;text-transform:uppercase;letter-spacing:.5px;overflow:visible;position:relative;z-index:1}.table tr:nth-child(2n){background-color:var(--table-row-even)}.table tr:hover{background-color:var(--table-row-hover);transition:background-color .2s ease}.table tr:last-child td{border-bottom:none}.table-cell-rank{font-weight:700;color:#1e90ff;width:60px;font-size:1.1em}.table-cell-primary{font-weight:700;color:#333;font-size:1.05em}.table-cell-secondary{color:#666;font-size:.95em;font-weight:500}.table th .tooltip-container{position:relative;z-index:10}.table th .tooltip-content{z-index:10001;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);white-space:nowrap}@media (max-width: 768px){.table{margin:24px 0;font-size:14px}.table th,.table td{padding:12px 8px}}.badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;font-size:.75rem;font-weight:600;line-height:1;color:var(--text-inverse);background:var(--accent-primary);border:1px solid transparent;box-sizing:border-box;vertical-align:middle;margin-left:.5rem}.badge-default{background:var(--text-secondary);color:var(--text-inverse)}.badge-primary{background:var(--accent-primary);color:var(--text-inverse)}.badge-success{background:var(--accent-success);color:var(--text-inverse)}.badge-warning{background:var(--accent-warning);color:var(--text-inverse)}.badge-danger{background:var(--accent-danger);color:var(--text-inverse)}.dark-theme .badge-default{background:var(--text-secondary)}.dark-theme .badge-primary{background:var(--accent-primary)}.dark-theme .badge-success{background:var(--accent-success)}.dark-theme .badge-warning{background:var(--accent-warning)}.dark-theme .badge-danger{background:var(--accent-danger)}.desktop-nav{display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--border-primary);border-top:1px solid var(--border-primary)}.nav-item{position:relative}.nav-link{color:var(--accent-primary);text-decoration:none;padding:12px 16px;border-radius:0;transition:all .2s ease;font-weight:500;white-space:nowrap;display:flex;align-items:center;gap:4px}.nav-link:hover{background-color:var(--static-link-hover);text-decoration:none}.nav-link.active{background-color:var(--accent-primary);color:var(--text-inverse);box-shadow:0 2px 8px #4a9eff4d}.nav-link.active .badge{background:rgba(255,255,255,.3);color:var(--text-inverse);border-color:#ffffff80}.dropdown-toggle{cursor:pointer}.dropdown-arrow{transition:transform .2s ease}.dropdown:hover .dropdown-arrow{transform:rotate(180deg)}.dropdown-menu{position:absolute;top:100%;left:0;background:var(--nav-dropdown-bg);border:1px solid var(--border-primary);border-bottom-left-radius:8px;border-bottom-right-radius:8px;box-shadow:var(--nav-dropdown-shadow);min-width:180px;opacity:0;visibility:hidden;transform:translateY(-8px);transition:all .2s ease;z-index:1000;padding:8px 0}.dropdown-menu.show{opacity:1;visibility:visible;transform:translateY(0)}.dropdown-item{color:var(--accent-primary);text-decoration:none;padding:10px 16px;display:block;transition:all .2s ease;font-weight:500;font-size:14px}.dropdown-item:hover{background-color:var(--static-link-hover);text-decoration:none}.dropdown-item.active{background-color:var(--accent-primary);color:var(--text-inverse)}.nav{margin-bottom:40px;display:flex;flex-direction:column;gap:24px;padding:20px 0;border-bottom:1px solid var(--border-primary)}.nav-primary{display:flex;flex-wrap:wrap;gap:16px}.nav-secondary{display:flex;flex-wrap:wrap;gap:32px}.nav-group{display:flex;flex-direction:column;gap:8px}.nav-group-label{font-size:.9em;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.nav-group-links{display:flex;flex-wrap:wrap;gap:12px}.nav a{color:var(--accent-primary);text-decoration:none;padding:10px 16px;border-radius:6px;transition:all .2s ease;font-weight:500;white-space:nowrap;display:flex;align-items:center;gap:.5rem}.nav a:hover{background-color:var(--static-link-hover);text-decoration:none;transform:translateY(-1px)}.nav a.active{background-color:var(--accent-primary);color:var(--text-inverse);box-shadow:0 2px 8px #4a9eff4d}.nav a.active .badge{background:rgba(255,255,255,.3);color:var(--text-inverse);border-color:#ffffff80}.mobile-only{display:none}@media (max-width: 768px){.desktop-nav{display:none}.nav{position:relative;max-height:0;overflow:hidden;transition:max-height .3s ease-in-out;margin-bottom:0;padding:0;border-bottom:none}.nav.nav-open{max-height:1000px;margin-bottom:32px;padding:20px 0;border-bottom:1px solid #e9ecef}.nav-primary{flex-direction:column;gap:12px;margin-bottom:24px}.nav-secondary{flex-direction:column;gap:24px}.nav-group-links{flex-direction:column;gap:8px}.nav a{font-size:16px;padding:12px 16px;border-radius:0;display:block;width:100%}.nav-group-label{font-size:.85em;margin-bottom:12px;padding-left:16px}.mobile-only{display:block}}@media (min-width: 769px) and (max-width: 1024px){.nav-secondary{gap:24px}.nav-group-links{gap:8px}.nav a{padding:8px 12px;font-size:14px}}.footer{background:var(--bg-primary);border-top:1px solid var(--border-primary);margin-top:64px;padding:48px 0 0}.footer-content{max-width:1200px;margin:0 auto 48px;padding:0 32px;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px}.footer-logo{margin-bottom:16px}.footer-logo-svg{height:40px;width:auto}.footer-section h4{color:var(--text-primary);font-size:1.125rem;font-weight:600;margin-bottom:20px;letter-spacing:-.01em}.footer-brand p{color:var(--text-secondary);font-size:1rem;line-height:1.6;margin:0;opacity:.9}.footer-links{list-style:none;padding:0;margin:0}.footer-links li{margin-bottom:12px}.footer-links a{color:var(--text-secondary);text-decoration:none;font-size:.95rem;font-weight:500;transition:all .2s ease;display:inline-block;position:relative}.footer-links a:hover{color:var(--accent-primary)}.footer-links a:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:2px;background:var(--accent-primary);transition:width .2s ease}.footer-links a:hover:after{width:100%}.footer-bottom{background:var(--bg-secondary);border-top:1px solid var(--border-primary);padding:24px 0}.footer-bottom-content{max-width:1200px;margin:0 auto;padding:0 32px;display:flex;justify-content:space-between;align-items:center}.footer-bottom p{color:var(--text-secondary);font-size:.9rem;margin:0;opacity:.8}.footer-social{color:var(--text-secondary);font-size:.9rem;opacity:.8}@media (max-width: 768px){.footer{margin-top:48px;padding:32px 0 0}.footer-content{grid-template-columns:1fr;gap:32px;padding:0 24px;margin-bottom:32px}.footer-logo{margin-bottom:12px}.footer-logo-svg{height:32px}.footer-section h4{font-size:1rem;margin-bottom:16px}.footer-brand p{font-size:.9rem;line-height:1.5}.footer-links li{margin-bottom:10px}.footer-links a{font-size:.9rem}.footer-bottom{padding:20px 0}.footer-bottom-content{flex-direction:column;gap:12px;padding:0 24px;text-align:center}.footer-bottom p,.footer-social{font-size:.85rem}}@media (max-width: 1024px) and (min-width: 769px){.footer-content{grid-template-columns:1fr 1fr;gap:40px}.footer-section:first-child{grid-column:1 / -1}}.layout{line-height:1.6;padding:8px 24px;max-width:1400px;margin:0 auto;background-color:var(--bg-secondary);min-height:100vh;display:flex;flex-direction:column}.card{background:var(--bg-primary);border-radius:12px;box-shadow:0 4px 20px var(--shadow-light);display:flex;flex-direction:column;flex:1}.content-padding{padding:48px 16px}.content-padding-x{padding-left:48px;padding-right:48px}.content-padding-y{padding:48px 0}main{flex:1;display:flex;flex-direction:column}.main-content{max-width:900px;margin:0 auto}.full-width-line{width:100%;height:3px;background:linear-gradient(to right,transparent 0%,var(--accent-primary) 20%,var(--accent-primary) 80%,transparent 100%);margin-top:4px;margin-bottom:48px}.main-content h1{text-align:center;color:var(--accent-primary);margin-top:8px;font-size:2.5em}.main-content h2{color:var(--text-primary);margin-top:40px;margin-bottom:20px;font-size:1.5em;font-weight:600}.main-content h3{color:var(--accent-primary);margin-top:32px;margin-bottom:16px;font-size:1.2em;font-weight:600}.main-content p{color:var(--text-secondary);margin-bottom:20px;line-height:1.7;font-size:1.05em}.main-content ul{color:var(--text-secondary);margin-bottom:24px;padding-left:24px}.main-content li{margin-bottom:12px;line-height:1.6}.highlight{background-color:var(--highlight-bg);padding:24px;border-left:4px solid var(--highlight-border);margin:24px 0;border-radius:0 8px 8px 0;box-shadow:0 2px 8px #4a9eff1a;h2,h3,h4,h5,h6 {padding-top: 0; margin-top: 0;} ol {padding-left: 24px;}}.feature-list{background:var(--feature-list-bg);padding:24px;border-radius:8px;margin:32px 0;border:1px solid var(--feature-list-border)}.feature-list ul{margin:0;padding-left:24px}.feature-list li{margin-bottom:12px;line-height:1.6}.faq-item{margin-bottom:32px;padding:24px;border:1px solid var(--faq-item-border);border-radius:8px;background-color:var(--faq-item-bg);box-shadow:0 2px 8px var(--shadow-light);transition:all .2s ease;h2 {margin-top: 0;}}.faq-item:hover{box-shadow:0 4px 12px var(--shadow-medium);transform:translateY(-1px)}.faq-question{font-weight:700;color:var(--accent-primary);margin-bottom:16px;font-size:1.2em;line-height:1.4}.faq-answer{color:var(--text-secondary);line-height:1.6}.step{background-color:var(--step-bg);padding:24px;border-left:4px solid var(--step-border);margin:32px 0;border-radius:0 8px 8px 0;box-shadow:0 2px 8px var(--shadow-light);h1,h2,h3,h4,h5,h6 {padding-top: 0; margin-top: 0;}}.step-number{background-color:var(--accent-primary);color:var(--text-inverse);width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:700;margin-right:16px;font-size:1.1em;box-shadow:0 2px 8px #4a9eff4d}.tip{background-color:var(--tip-bg);border:1px solid var(--tip-border);padding:20px;border-radius:8px;margin:24px 0;box-shadow:0 2px 8px #ffc1071a}.tip:before{content:"💡 ";font-weight:700;font-size:1.1em}.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin:32px 0}.feature-card{background:var(--feature-card-bg);padding:24px;border-radius:8px;border:1px solid var(--feature-card-border);box-shadow:0 2px 8px var(--shadow-light);transition:all .2s ease}.feature-card:hover{box-shadow:0 4px 12px var(--shadow-medium);transform:translateY(-2px)}.feature-card h4{color:var(--accent-primary);margin-top:0;margin-bottom:16px;font-size:1.2em;font-weight:600}.tooltip-container{position:relative;display:inline-flex;align-items:center;gap:4px}.tooltip-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;background-color:var(--accent-primary);color:#fff;border-radius:50%;font-size:10px;font-weight:700;cursor:help;transition:background-color .2s ease}.tooltip-icon:hover{background-color:var(--accent-secondary)}.tooltip-content{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background-color:var(--bg-primary);color:var(--text-primary);padding:8px 12px;border-radius:6px;font-size:12px;white-space:nowrap;box-shadow:0 4px 12px var(--shadow-medium);border:1px solid var(--border-primary);opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;z-index:10000;margin-bottom:8px;display:block;pointer-events:none;background-color:#fff;color:#333;border:1px solid #e0e0e0}.tooltip-content:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#fff}.tooltip-container:hover .tooltip-content{opacity:1;visibility:visible}.cta-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(135deg,#1e90ff 0%,#4169e1 100%);color:#fff;padding:16px 32px;text-decoration:none;border-radius:12px;font-weight:600;margin:32px 0;font-size:1.1em;transition:all .3s ease;box-shadow:0 4px 16px #1e90ff40;border:none;cursor:pointer;position:relative;overflow:hidden;min-width:200px}.cta-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s ease}.cta-button:hover:before{left:100%}.cta-button:hover{background:linear-gradient(135deg,#1976d2 0%,#3f51b5 100%);transform:translateY(-3px);box-shadow:0 8px 25px #1e90ff59}.cta-button:active{transform:translateY(-1px);box-shadow:0 4px 16px #1e90ff4d}.cta-button:focus{outline:none;box-shadow:0 0 0 3px #1e90ff4d,0 4px 16px #1e90ff40}.cta-button:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:0 2px 8px #1e90ff33}.cta-button:disabled:hover{transform:none;box-shadow:0 2px 8px #1e90ff33}.insights{background-color:#fff3cd;border:1px solid #ffeaa7;padding:24px;border-radius:8px;margin:32px 0;box-shadow:0 2px 8px #ffc1071a;h2,h3,h4,h5,h6 {padding-top: 0; margin-top: 0;}}.insights h3{margin-top:0;color:#856404;font-size:1.3em;font-weight:600}@media (max-width: 768px){.layout{padding:8px}.card{border-radius:8px}.content-padding{padding:32px 24px}.content-padding-x{padding:0 32px}@media (max-width: 968px){.content-padding-x{padding:0}}.content-padding-y{padding:24px 0}.main-content h1{font-size:1.8em;line-height:1.2em}.full-width-heading{width:calc(100% + 48px);margin-left:-24px;margin-right:-24px;padding:0 24px}.full-width-line{width:100%;margin-top:8px;margin-bottom:24px}.main-content h2{font-size:1.3em;margin-top:32px;margin-bottom:16px}.main-content h3{font-size:1.1em;margin-top:24px;margin-bottom:12px}.main-content p{font-size:1em;margin-bottom:16px}.main-content ul{padding-left:20px;margin-bottom:20px}.main-content li{margin-bottom:10px}.highlight{padding:16px;margin:24px 0;h2,h3,h4,h5,h6 {padding-top: 0; margin-top: 0;}}.feature-list{padding:24px;margin:24px 0}.faq-item{padding:24px;margin-bottom:24px;h2,h3,h4,h5,h6 {padding-top: 0; margin-top: 0;}}.step{padding:24px;margin:24px 0}.tip{padding:16px;margin:20px 0}.feature-grid{grid-template-columns:1fr;gap:20px;margin:24px 0}.feature-card{padding:24px}.cta-button{padding:14px 24px;margin:24px 0;font-size:1em;min-width:180px;border-radius:10px}.insights{padding:24px;margin:24px 0}}.ad{padding:16px;background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border-primary);text-align:center;min-height:90px;display:flex;align-items:center;justify-content:center}.adsense-ad{width:100%;min-height:90px}.city-details-ad{margin-top:20px;padding-top:16px;border-top:1px solid var(--border-primary)}.about-page-ad,.faq-page-ad,.contact-page-ad,.how-to-use-ad,.compare-page-ad{margin:24px 0}@media (max-width: 768px){.ad{margin:16px 0;padding:12px}.adsense-ad{min-height:60px}}.city-search{position:relative;width:100%}.search-input{width:100%;padding:12px 16px;border:2px solid var(--border-primary);border-radius:8px;font-size:16px;outline:none;transition:all .2s ease;background-color:var(--bg-primary);color:var(--text-primary)}.search-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px #4a9eff1a}.search-input:disabled{background-color:var(--bg-tertiary);color:var(--text-muted);cursor:not-allowed}.loading-spinner{position:absolute;right:16px;width:20px;height:20px;border:2px solid var(--border-secondary);border-top:2px solid var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite}.error-indicator{position:absolute;right:16px;font-size:18px;color:var(--accent-danger);cursor:help}.suggestions{position:absolute;top:100%;left:0;right:0;background:var(--bg-primary);border:2px solid var(--accent-primary);border-top:none;border-radius:0 0 8px 8px;box-shadow:0 8px 16px var(--shadow-medium);z-index:1000;max-height:300px;overflow-y:auto;margin-top:-2px}.suggestion-item{padding:12px 16px;cursor:pointer;border-bottom:1px solid var(--border-primary);transition:all .15s ease;display:flex;flex-direction:column;gap:4px}.suggestion-item:hover{background-color:var(--bg-secondary)}.suggestion-item.selected{background-color:var(--bg-tertiary);border-left:4px solid var(--accent-primary)}.suggestion-item:focus{outline:none;background-color:var(--bg-tertiary)}.suggestion-name{font-weight:600;color:var(--text-primary);font-size:16px;line-height:1.2}.suggestion-details{display:flex;align-items:center;gap:8px;font-size:14px;flex-wrap:wrap}.suggestion-type{color:var(--accent-primary);font-weight:500;text-transform:capitalize;background-color:var(--bg-tertiary);padding:4px 8px;border-radius:12px;font-size:12px;white-space:nowrap}.suggestion-address-type{color:var(--text-muted);font-weight:500;text-transform:capitalize;background-color:var(--bg-secondary);padding:4px 8px;border-radius:12px;font-size:12px;white-space:nowrap}.suggestion-location{color:var(--text-secondary);font-size:14px;line-height:1.3}.no-results{position:absolute;top:100%;left:0;right:0;background:var(--bg-primary);border:2px solid var(--border-primary);border-top:none;border-radius:0 0 8px 8px;box-shadow:0 4px 6px var(--shadow-light);z-index:1000;padding:16px;text-align:center;color:var(--text-secondary);font-size:14px}.suggestions::-webkit-scrollbar{width:8px}.suggestions::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:4px}.suggestions::-webkit-scrollbar-thumb{background:var(--border-secondary);border-radius:4px}.suggestions::-webkit-scrollbar-thumb:hover{background:var(--border-primary)}.suggestion-item:focus-visible{outline:2px solid var(--accent-primary);outline-offset:-2px}@media (max-width: 768px){.search-input{font-size:16px;padding:14px 16px}.suggestion-item{padding:14px 16px}.suggestion-name{font-size:16px}.suggestion-details{font-size:14px}}.sidebar{position:absolute;top:8px;left:8px;width:350px;border:1px solid var(--sidebar-border);overflow-y:auto;display:flex;flex-direction:column;height:calc(100vh - 40px);padding:16px;gap:16px;border-radius:16px;-webkit-box-shadow:0 8px 32px rgba(0,0,0,.12),0 2px 8px rgba(0,0,0,.08);-moz-box-shadow:0 8px 32px rgba(0,0,0,.12),0 2px 8px rgba(0,0,0,.08);box-shadow:0 8px 32px #0000001f,0 2px 8px #00000014;z-index:1000;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.sidebar h1{margin:0 0 10px;color:var(--text-primary);font-size:24px;font-weight:600}.sidebar p{margin:0 0 16px;color:var(--text-secondary);line-height:1.5}.curvature-note{background:var(--curvature-note-bg);border:1px solid var(--curvature-note-border);border-radius:6px;padding:8px 12px;color:var(--curvature-note-text)!important;font-size:13px;font-weight:500;margin-bottom:20px!important}.search-section{background:var(--card-bg);border-radius:8px;padding:16px;box-shadow:var(--card-shadow)}.search-section h3{margin:0 0 12px;color:var(--text-primary);font-size:16px;font-weight:600}.search-section-hint{font-size:12px;color:var(--text-secondary);margin:-8px 0 16px}.city-info{padding:16px;background:var(--card-bg);border-top-right-radius:8px;border-bottom-right-radius:8px;border-left:4px solid #007bff;position:relative;box-shadow:var(--card-shadow);transition:all .2s ease,transform .1s ease-out;cursor:pointer}.city-info:hover{transform:translateY(-2px);box-shadow:var(--card-shadow-hover)}.city-info h4{margin:0 0 8px;color:var(--text-primary);font-size:14px;font-weight:600}.city-info p{margin:0 0 4px;color:var(--text-secondary);font-size:12px}.show-on-map-btn{background:var(--button-primary-bg);color:var(--text-inverse);border:none;padding:8px 12px;border-radius:6px;cursor:pointer;font-size:12px;font-weight:500;transition:background-color .2s;margin-top:8px;width:100%}.show-on-map-btn:hover{background:var(--button-primary-hover)}.drag-hint{margin-top:8px!important;padding:6px 8px;background:var(--drag-hint-bg);border-radius:4px;color:var(--drag-hint-text)!important;font-size:11px!important;font-weight:500;border-left:2px solid var(--drag-hint-border)}.controls{display:flex;gap:10px}.reset-btn{width:100%;background:var(--accent-danger);color:var(--text-inverse);border:none;padding:8px;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:background-color .2s}.reset-btn:hover:not(:disabled){background:#c82333}.reset-btn:disabled{background:var(--button-secondary-bg);cursor:not-allowed}.instructions{background:var(--card-bg);border-radius:8px;padding:16px;box-shadow:var(--card-shadow)}.instructions h3{margin:0 0 12px;color:var(--text-primary);font-size:16px;font-weight:600}.instructions ul{margin:0;padding-left:20px;color:var(--text-secondary);font-size:14px;line-height:1.5}.instructions li{margin-bottom:6px}.error-message{background:var(--error-bg);color:var(--error-text);border:1px solid var(--error-border);border-radius:6px;padding:12px;margin-bottom:16px;display:flex;justify-content:space-between;align-items:center}.error-message button{background:var(--error-text);color:var(--text-inverse);border:none;padding:4px 8px;border-radius:4px;cursor:pointer;font-size:12px}.header-section{display:flex;align-items:center;justify-content:space-between;margin-bottom:0;flex-shrink:0}.header-controls{display:flex;align-items:center;gap:12px;flex-shrink:0}.header-section a{display:flex;align-items:center;text-decoration:none;flex:1;min-width:0}.header-section h1{margin:0;color:var(--text-primary);font-size:24px;font-weight:600}.header-section img{max-width:100%;height:auto;max-height:60px;width:auto;display:block}.header-section svg{max-width:100%;height:auto;max-height:60px;width:auto;display:block}.help-btn{background:var(--button-primary-bg);color:var(--text-inverse);border:none;width:28px;height:28px;border-radius:50%;cursor:pointer;font-size:16px;font-weight:700;display:flex;align-items:center;justify-content:center;transition:all .2s ease;box-shadow:0 2px 4px #4a9eff33}.help-btn:hover{background:var(--button-primary-hover);transform:scale(1.1);box-shadow:0 4px 8px #4a9eff4d}.help-btn:active{transform:scale(1)}.help-tooltip{position:relative;margin-bottom:8px;animation:slideDown .3s ease-out}.help-tooltip-content{background:var(--help-tooltip-bg);border-radius:8px;padding:16px;border:1px solid var(--border-primary);box-shadow:var(--card-shadow)}.help-tooltip-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border-primary)}.help-tooltip-header h3{margin:0;color:var(--text-primary);font-size:16px;font-weight:600}.help-tooltip ul{margin:0 0 12px;padding-left:20px;color:var(--text-secondary);font-size:14px;line-height:1.5}.help-tip{margin-top:12px;padding:8px 12px;background:var(--help-tip-bg);border:1px solid var(--help-tip-border);border-radius:4px;font-size:13px;color:var(--help-tip-text)}.help-contact{margin-top:15px;padding-top:15px;border-top:1px solid var(--border-primary);text-align:center}.help-contact p{margin-bottom:5px;font-size:13px;color:var(--text-secondary)}.help-contact-link{display:inline-block;background:none;color:var(--accent-primary);text-decoration:underline;padding:0;border-radius:0;font-size:13px;font-weight:500;transition:all .3s ease;border:none}.help-contact-link:hover{color:var(--accent-secondary);text-decoration:underline;transform:none;box-shadow:none}.copyright{padding-top:16px;border-top:1px solid var(--border-primary);text-align:center}.copyright p{margin:0;color:var(--copyright-text);font-size:12px;font-weight:400}.static-links{background:var(--card-bg);border-radius:8px;padding:16px;margin-top:auto}.static-links h4{margin:0 0 12px;color:var(--text-primary);font-size:16px;font-weight:600}.links-grid{display:grid;grid-template-columns:1fr;gap:8px}.static-link{color:var(--accent-primary);text-decoration:none;padding:8px 12px;border-radius:4px;font-size:13px;font-weight:500;transition:background-color .2s;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.static-link:hover{background-color:var(--static-link-hover);text-decoration:none}.logo{color:var(--text-primary)}.city-draggable{cursor:grab}.city-dragging{cursor:grabbing!important;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.city-info.city-dragging{transform:scale(1.02) translateY(-2px);box-shadow:0 8px 16px #00000026;opacity:.9;z-index:1000}.city-info.city-dragging{transform:scale(1.02);box-shadow:0 6px 12px #00000026}.city-info:focus{outline:2px solid var(--accent-primary);outline-offset:2px}.city-info.city-dragging:focus{outline:2px solid var(--accent-primary-dark);outline-offset:2px}@media (max-width: 768px){.sidebar{display:none}.header-section{flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:8px}.header-section a{flex:none;width:100%}.header-section h1{font-size:20px}.help-btn{align-self:flex-end}.help-tooltip-content{padding:8px}.help-tooltip-header h3{font-size:14px}.help-tooltip ul{font-size:13px}.help-tip{font-size:12px}.copyright{margin-top:15px;padding-top:15px}.copyright p{font-size:11px}.nav-group{margin-top:16px}.static-links{padding:12px}.static-links h4{font-size:14px}.links-grid{grid-template-columns:1fr;gap:6px}.static-link{font-size:12px;padding:6px 10px}.mobile-menu-content .search-section{margin-bottom:20px}.mobile-menu-content .city-info{margin-bottom:12px}.mobile-menu-content .controls{margin-top:20px}.mobile-menu-content .reset-btn{width:100%;padding:12px;font-size:16px}.city-info{min-height:60px;display:flex;flex-direction:column;justify-content:center}.city-info.city-dragging{min-height:65px;transform:scale(1.01);box-shadow:0 4px 8px #0000001f}.city-reset-btn{min-width:32px;min-height:32px}}.breadcrumbs{margin-bottom:1rem;padding:.5rem 0}.breadcrumb-list{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;list-style:none;margin:0;padding:0;font-size:.875rem;color:#666}.breadcrumb-item{display:flex;align-items:center}.breadcrumb-link{color:#1e90ff;text-decoration:none;transition:color .2s ease}.breadcrumb-link:hover{color:#06c;text-decoration:underline}.breadcrumb-current{color:#333;font-weight:500}.breadcrumb-separator{margin:0 .5rem;color:#999}@media (max-width: 768px){.breadcrumbs{margin-bottom:.75rem}.breadcrumb-list{font-size:.8rem}}.rankings-intro{margin-bottom:2rem}.rankings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;margin:2rem 0}.ranking-card{background:var(--card-bg);border:1px solid var(--border-primary);border-radius:8px;padding:0;transition:all .2s ease;box-shadow:var(--card-shadow);overflow:hidden;display:flex;flex-direction:column}.ranking-card:hover{transform:translateY(-2px);box-shadow:var(--card-shadow-hover);border-color:var(--accent-primary)}.ranking-card-header{padding:1.5rem 1.5rem 1rem;display:flex;align-items:flex-start;gap:1rem}.ranking-card-icon{font-size:2rem;line-height:1;flex-shrink:0}.ranking-card-title{flex:1}.ranking-card-title h2{margin:0 0 .5rem;font-size:1.3rem;font-weight:600;color:var(--text-primary);line-height:1.3}.ranking-stats{display:inline-block;background:var(--accent-primary);color:var(--text-inverse);padding:.25rem .75rem;border-radius:4px;font-size:.8rem;font-weight:600;letter-spacing:.5px}.ranking-card-content{padding:0 1.5rem 1rem;flex:1}.ranking-description{margin:0 0 1rem;color:var(--text-secondary);line-height:1.6;font-size:.95rem}.ranking-highlight{background:var(--bg-secondary);padding:1rem;border-radius:4px;border-left:3px solid var(--accent-primary);font-size:.9rem;color:var(--text-primary)}.ranking-highlight strong{color:var(--accent-primary);font-weight:600}.ranking-card-footer{padding:1rem 1.5rem 1.5rem;border-top:1px solid var(--border-primary);background:var(--bg-secondary)}.ranking-link{display:inline-flex;align-items:center;gap:.5rem;color:var(--accent-primary);text-decoration:none;font-weight:600;font-size:.95rem;transition:all .2s ease}.ranking-link:hover{color:var(--accent-secondary)}.ranking-link-icon{transition:transform .2s ease}.ranking-link:hover .ranking-link-icon{transform:translate(2px,-2px)}.comparison-tools{margin:2rem 0}.comparison-tools h2{margin-top:0}.comparison-tools p{margin-bottom:1.5rem}.tool-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}.tool-link{display:flex;align-items:center;gap:1rem;padding:1rem;border-radius:6px;text-decoration:none;transition:all .2s ease;border:1px solid transparent}.tool-link--primary{background:var(--accent-primary);color:var(--text-inverse)}.tool-link--primary:hover{background:var(--accent-secondary)}.tool-link--secondary{background:var(--card-bg);color:var(--text-primary);border-color:var(--border-primary)}.tool-link--secondary:hover{background:var(--bg-secondary);border-color:var(--accent-primary)}.tool-link-icon{font-size:1.2rem;flex-shrink:0}.tool-link-content{text-align:left}.tool-link-title{display:block;font-weight:600;font-size:.95rem;margin-bottom:.25rem}.tool-link-description{display:block;font-size:.8rem;opacity:.8}.methodology{margin:2rem 0}.methodology h2{margin-top:0}.methodology>p{margin-bottom:1.5rem}.methodology-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.methodology-item{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;background:var(--card-bg);border-radius:6px;border:1px solid var(--border-primary);transition:all .2s ease}.methodology-item:hover{border-color:var(--accent-primary);box-shadow:var(--card-shadow)}.methodology-icon{font-size:1.2rem;flex-shrink:0;margin-top:.25rem}.methodology-content h3{margin:0 0 .25rem;color:var(--text-primary);font-size:1rem;font-weight:600}.methodology-content p{margin:0;color:var(--text-secondary);font-size:.85rem;line-height:1.4}@media (max-width: 768px){.rankings-grid{grid-template-columns:1fr;gap:1rem}.ranking-card-header{padding:1rem 1rem .75rem}.ranking-card-content{padding:0 1rem .75rem}.ranking-card-footer{padding:.75rem 1rem 1rem}.tool-links,.methodology-grid{grid-template-columns:1fr}}@media (max-width: 480px){.ranking-card-header{flex-direction:column;align-items:center;text-align:center;gap:.5rem}.ranking-card-icon{font-size:1.5rem}.ranking-card-title h2{font-size:1.1rem}.tool-link{flex-direction:column;text-align:center}.tool-link-content{text-align:center}}.app{position:relative;height:100vh;background-color:var(--bg-primary);color:var(--text-primary)}.setup-message{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;padding:40px;text-align:center;background:var(--bg-secondary)}.setup-message h1{color:var(--text-primary);margin-bottom:20px}.setup-message ol{text-align:left;max-width:500px}.setup-message code{background:var(--bg-tertiary);padding:2px 6px;border-radius:4px;font-family:Monaco,Menlo,monospace}.map-container{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100vh;touch-action:pan-x pan-y;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background:var(--map-bg);z-index:1}@media (min-width: 769px){.map-container{left:366px;width:calc(100% - 366px)}}.map-container .mapboxgl-map{width:100%;height:100%}.map-container .mapboxgl-canvas,.map-container .mapboxgl-canvas.mapboxgl-interactive{cursor:default}.map-container .mapboxgl-canvas.mapboxgl-interactive:active{cursor:grabbing}.map-container.dragging .mapboxgl-canvas{cursor:grabbing!important}.curvature-info{font-size:.8em;color:var(--text-muted);font-style:italic;margin:5px 0}.latitude-display{font-size:.9em;color:var(--text-secondary);margin:3px 0}.zooming-indicator{position:absolute;top:10px;right:10px;background:var(--shadow-heavy);color:var(--text-inverse);padding:8px 12px;border-radius:4px;font-size:.9em;z-index:1000;animation:fadeInOut 2s ease-in-out}@keyframes fadeInOut{0%{opacity:0}20%{opacity:1}80%{opacity:1}to{opacity:0}}@media (max-width: 768px){.app{padding-top:56px}.mobile-header{display:block!important}.map-container{height:calc(100vh - 56px);touch-action:pan-x pan-y pinch-zoom}.setup-message{padding:20px}.setup-message h1{font-size:20px}.setup-message p,.setup-message li{font-size:14px}input,textarea,select{font-size:16px!important}}.mapboxgl-canvas[style*="cursor: grab"]{cursor:grab!important}@media (hover: none) and (pointer: coarse){.mapboxgl-canvas{cursor:default!important}.city-dragging{cursor:grabbing!important}.map-container.dragging{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}}.map-container{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100vh;background:var(--bg-secondary);overflow:hidden;transition:all .2s ease;z-index:1}.map-container.dragging{transform:scale(1.001);transition:all .1s ease}.map-container.dragging *{pointer-events:none}.map-container.dragging .mapboxgl-canvas{pointer-events:auto}.mapboxgl-canvas:hover{transition:cursor .1s ease}.mapboxgl-canvas[style*="cursor: grab"]:hover{cursor:grab!important}.mapboxgl-canvas[style*="cursor: grabbing"]{cursor:grabbing!important}.map-container{touch-action:manipulation}.map-container.dragging{touch-action:none}.mobile-logo{color:var(--text-primary);height:32px;width:auto}.mobile-header{display:none;position:fixed;top:0;left:0;right:0;z-index:1000;background:var(--mobile-header-bg);border-bottom:1px solid var(--mobile-header-border);box-shadow:0 2px 8px var(--shadow-light);min-height:56px}.mobile-header-content{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;max-width:100%}.mobile-logo-container{display:flex;align-items:center;justify-content:center;flex:1}.mobile-logo{height:32px;width:auto}.mobile-title{font-size:18px;font-weight:600;color:var(--accent-primary);white-space:nowrap}.mobile-nav-btn{display:flex;flex-direction:column;justify-content:space-around;width:30px;height:30px;background:transparent;border:none;cursor:pointer;padding:0;z-index:1001;flex-shrink:0}.mobile-nav-btn span{width:30px;height:3px;background:var(--accent-primary);border-radius:10px;transition:all .3s linear;position:relative;transform-origin:1px}.mobile-add-city-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--accent-primary);border:none;border-radius:50%;cursor:pointer;color:var(--text-inverse);transition:all .2s ease;flex-shrink:0;box-shadow:0 2px 8px #4a9eff4d}.mobile-add-city-btn:hover{background:var(--accent-secondary);transform:scale(1.05);box-shadow:0 4px 12px #4a9eff66}.mobile-add-city-btn:active{transform:scale(1)}.mobile-menu-btn{display:flex;flex-direction:column;justify-content:space-around;width:30px;height:30px;background:transparent;border:none;cursor:pointer;padding:0;z-index:1001}.mobile-menu-btn span{width:30px;height:3px;background:var(--accent-primary);border-radius:10px;transition:all .3s linear;position:relative;transform-origin:1px}.mobile-menu-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--mobile-menu-overlay);z-index:999;display:flex;align-items:flex-start;justify-content:center;padding-top:80px;overflow-y:auto}.mobile-menu-content{background:var(--mobile-menu-bg);width:100%;margin:0 16px;height:calc(100vh - 60px);border-radius:12px 12px 0 0;padding:24px;overflow-y:auto;position:relative;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.mobile-menu-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:16px;border-bottom:1px solid var(--border-primary)}.mobile-menu-header h2{margin:0;color:var(--accent-primary);font-size:1.5em;font-weight:600}.mobile-help-section{margin-top:32px;padding:20px;background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border-primary)}.mobile-help-section h3{margin:0 0 16px;color:var(--accent-primary);font-size:1.2em;font-weight:600}.mobile-help-section ul{margin:0 0 16px;padding-left:20px;color:var(--text-secondary);font-size:14px;line-height:1.5}.mobile-help-section li{margin-bottom:8px}.mobile-help-section .help-tip{background:var(--help-tip-bg);border:1px solid var(--help-tip-border);padding:12px;border-radius:6px;font-size:13px;color:var(--help-tip-text)}.static-nav-links{display:flex;flex-direction:column;gap:16px}.static-nav-links .nav-group{display:flex;flex-direction:column;gap:8px}.static-nav-links .nav-group-label{font-size:.9em;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;padding-left:4px}.static-nav-links .nav-group-links{display:flex;flex-direction:column;gap:4px}.static-nav-link{color:var(--accent-primary);text-decoration:none;padding:12px 16px;border-radius:6px;transition:all .2s ease;font-weight:500;font-size:16px;display:flex;align-items:center;justify-content:space-between;width:100%;background:transparent;gap:.5rem}.static-nav-link:hover{background-color:var(--static-link-hover);text-decoration:none}.static-nav-link:active{background-color:var(--bg-tertiary)}.mobile-theme-toggle{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-radius:6px;transition:all .2s ease;background:transparent}.mobile-theme-toggle:hover{background-color:var(--static-link-hover)}.theme-toggle-label{color:var(--accent-primary);font-weight:500;font-size:16px}.contact-form{max-width:100%}.form-group{margin-bottom:24px}.form-group label{display:block;margin-bottom:8px;color:var(--text-primary);font-weight:600}.form-group input,.form-group select,.form-group textarea{width:100%;padding:12px 16px;border:2px solid var(--input-border);border-radius:8px;font-size:16px;transition:border-color .3s ease;font-family:inherit;background-color:var(--input-bg);color:var(--text-primary)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--input-focus);box-shadow:0 0 0 3px #4a9eff1a}.form-group input.error,.form-group select.error,.form-group textarea.error{border-color:var(--accent-danger);box-shadow:0 0 0 3px #f443361a}.form-group textarea{resize:vertical;min-height:120px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:24px}.error-message{color:var(--accent-danger);font-size:14px;font-weight:500;margin-top:8px}.char-count{text-align:right;font-size:12px;color:var(--text-muted);margin-top:8px}.alert{padding:16px 20px;border-radius:8px;margin-bottom:24px;font-weight:500}.alert.success{background:var(--success-bg);border:1px solid var(--success-border);color:var(--success-text)}.alert.error{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error-text)}.alert.warning{background:var(--warning-bg);border:1px solid var(--warning-border);color:var(--warning-text)}.feedback-section{margin:3rem 0;padding:2rem;background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--bg-tertiary) 100%);border-radius:12px;border-left:4px solid var(--accent-success);text-align:center}.feedback-section h2{color:var(--text-primary);margin-bottom:1rem;font-size:1.8rem}.feedback-section p{color:var(--text-secondary);margin-bottom:1.5rem;font-size:1.1rem;line-height:1.6}.feedback-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.feedback-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 24px;border-radius:10px;text-decoration:none;font-weight:600;font-size:1rem;transition:all .3s ease;border:none;cursor:pointer;position:relative;overflow:hidden;min-width:160px;box-shadow:0 4px 12px #00000026}.feedback-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s ease}.feedback-btn:hover:before{left:100%}.feedback-btn.primary{background:linear-gradient(135deg,#dc3545 0%,#c82333 100%);color:#fff}.feedback-btn.primary:hover{background:linear-gradient(135deg,#c82333 0%,#bd2130 100%);transform:translateY(-3px);box-shadow:0 8px 20px #dc354566}.feedback-btn.secondary{background:linear-gradient(135deg,#28a745 0%,#20c997 100%);color:#fff}.feedback-btn.secondary:hover{background:linear-gradient(135deg,#20c997 0%,#17a2b8 100%);transform:translateY(-3px);box-shadow:0 8px 20px #28a74566}.feedback-btn:active{transform:translateY(-1px)}.feedback-btn:focus{outline:none;box-shadow:0 0 0 3px #ffffff4d,0 4px 12px #00000026}.feedback-btn span{font-size:1.2rem}@media (max-width: 768px){.form-row{grid-template-columns:1fr;gap:16px}.contact-form{max-width:100%}.form-group{margin-bottom:20px}.form-group input,.form-group select,.form-group textarea{padding:10px 14px;font-size:16px}.mobile-theme-toggle{padding:16px}.theme-toggle-label{font-size:18px}}:root{--bg-primary: #ffffff;--bg-secondary: #f8f9fa;--bg-tertiary: #e9ecef;--bg-overlay: rgba(255, 255, 255, .95);--text-primary: #212529;--text-secondary: #6c757d;--text-muted: #495057;--text-inverse: #ffffff;--border-primary: #e9ecef;--border-secondary: #dee2e6;--border-accent: #1e90ff;--accent-primary: #1e90ff;--accent-secondary: #007bff;--accent-success: #10b981;--accent-warning: #ffc107;--accent-danger: #dc3545;--accent-info: #17a2b8;--shadow-light: rgba(0, 0, 0, .1);--shadow-medium: rgba(0, 0, 0, .15);--shadow-heavy: rgba(0, 0, 0, .2);--map-bg: #f8f9fa;--map-style: "mapbox://styles/mapbox/light-v11";--card-bg: #ffffff;--card-shadow: 0 1px 3px rgba(0, 0, 0, .1);--card-shadow-hover: 0 4px 8px rgba(0, 0, 0, .1);--input-bg: #ffffff;--input-border: #e0e0e0;--input-focus: #1e90ff;--button-primary-bg: #1e90ff;--button-primary-hover: #007acc;--button-secondary-bg: #6c757d;--button-secondary-hover: #5a6268;--sidebar-bg: #f8f9fa;--sidebar-border: #e9ecef;--mobile-header-bg: #ffffff;--mobile-header-border: #e9ecef;--help-tooltip-bg: #ffffff;--help-tip-bg: #fff3cd;--help-tip-border: #ffeaa7;--help-tip-text: #856404;--error-bg: #f8d7da;--error-border: #f5c6cb;--error-text: #721c24;--warning-bg: #fff3cd;--warning-border: #ffeaa7;--warning-text: #856404;--success-bg: #d4edda;--success-border: #c3e6cb;--success-text: #155724;--curvature-note-bg: #e8f5e8;--curvature-note-border: #4caf50;--curvature-note-text: #2e7d32;--drag-hint-bg: #e3f2fd;--drag-hint-border: #2196f3;--drag-hint-text: #1976d2;--copyright-text: #6c757d;--static-link-hover: #e3f2fd;--mobile-menu-bg: #ffffff;--mobile-menu-overlay: rgba(0, 0, 0, .5);--nav-dropdown-bg: #ffffff;--nav-dropdown-shadow: 0 4px 12px rgba(0, 0, 0, .15);--highlight-bg: #e3f2fd;--highlight-border: #1e90ff;--feature-list-bg: #f8f9fa;--feature-list-border: #e9ecef;--faq-item-bg: #fafafa;--faq-item-border: #e0e0e0;--step-bg: #f8f9fa;--step-border: #1e90ff;--tip-bg: #fff3cd;--tip-border: #ffeaa7;--feature-card-bg: #f8f9fa;--feature-card-border: #e0e0e0;--table-header-bg: #1e90ff;--table-header-text: #ffffff;--table-row-even: #f8f9fa;--table-row-hover: #e3f2fd;--insights-bg: #fff3cd;--insights-border: #ffeaa7;--insights-title: #856404}.dark-theme{--bg-primary: #1a1a1a;--bg-secondary: #2d2d2d;--bg-tertiary: #404040;--bg-overlay: rgba(26, 26, 26, .95);--text-primary: #ffffff;--text-secondary: #b0b0b0;--text-muted: #888888;--text-inverse: #1a1a1a;--border-primary: #404040;--border-secondary: #555555;--border-accent: #4a9eff;--accent-primary: #4a9eff;--accent-secondary: #5bb3ff;--accent-success: #10b981;--accent-warning: #ff9800;--accent-danger: #f44336;--accent-info: #2196f3;--shadow-light: rgba(0, 0, 0, .3);--shadow-medium: rgba(0, 0, 0, .4);--shadow-heavy: rgba(0, 0, 0, .5);--map-bg: #3a3a3a;--map-style: "mapbox://styles/mapbox/dark-v11";--card-bg: #2d2d2d;--card-shadow: 0 1px 3px rgba(0, 0, 0, .3);--card-shadow-hover: 0 4px 8px rgba(0, 0, 0, .4);--input-bg: #404040;--input-border: #555555;--input-focus: #4a9eff;--button-primary-bg: #4a9eff;--button-primary-hover: #5bb3ff;--button-secondary-bg: #666666;--button-secondary-hover: #777777;--sidebar-bg: #2d2d2d;--sidebar-border: #404040;--mobile-header-bg: #2d2d2d;--mobile-header-border: #404040;--help-tooltip-bg: #2d2d2d;--help-tip-bg: #3d3d1a;--help-tip-border: #555533;--help-tip-text: #cccc88;--error-bg: #3d1a1a;--error-border: #555533;--error-text: #ff8888;--warning-bg: #3d3d1a;--warning-border: #555533;--warning-text: #cccc88;--success-bg: #1a3d1a;--success-border: #335533;--success-text: #88ff88;--curvature-note-bg: #1a3d1a;--curvature-note-border: #4caf50;--curvature-note-text: #88ff88;--drag-hint-bg: #1a3d4d;--drag-hint-border: #4a9eff;--drag-hint-text: #88ccff;--copyright-text: #888888;--static-link-hover: #1a3d4d;--mobile-menu-bg: #2d2d2d;--mobile-menu-overlay: rgba(0, 0, 0, .7);--nav-dropdown-bg: #2d2d2d;--nav-dropdown-shadow: 0 2px 12px rgba(0, 0, 0, .5);--highlight-bg: #1a3d4d;--highlight-border: #4a9eff;--feature-list-bg: #2d2d2d;--feature-list-border: #404040;--faq-item-bg: #333333;--faq-item-border: #404040;--step-bg: #2d2d2d;--step-border: #4a9eff;--tip-bg: #3d3d1a;--tip-border: #555533;--feature-card-bg: #2d2d2d;--feature-card-border: #404040;--table-header-bg: #4a9eff;--table-header-text: #ffffff;--table-row-even: #333333;--table-row-hover: #1a3d4d;--insights-bg: #3d3d1a;--insights-border: #555533;--insights-title: #dea500}*{transition:background-color .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease}.mapboxgl-map,.mapboxgl-canvas,.mapboxgl-marker,.mapboxgl-popup{transition:none!important}.dark-theme a{color:#4a9eff}.dark-theme a:hover{color:#5bb3ff}.dark-theme input,.dark-theme textarea,.dark-theme select{color:var(--text-primary);background-color:var(--input-bg);border-color:var(--input-border)}.dark-theme input:focus,.dark-theme textarea:focus,.dark-theme select:focus{border-color:var(--input-focus);box-shadow:0 0 0 3px #4a9eff1a}.dark-theme input::placeholder,.dark-theme textarea::placeholder{color:var(--text-muted)}.dark-theme button:disabled{background-color:var(--bg-tertiary);color:var(--text-muted);cursor:not-allowed}.dark-theme code,.dark-theme pre{background-color:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-primary)}.dark-theme blockquote{border-left-color:var(--border-accent);background-color:var(--bg-secondary)}.dark-theme hr{border-color:var(--border-primary)}.dark-theme mark{background-color:var(--accent-warning);color:var(--text-inverse)}.dark-theme ::selection{background-color:var(--accent-primary);color:var(--text-inverse)}.dark-theme ::-moz-selection{background-color:var(--accent-primary);color:var(--text-inverse)}.releases-section{margin:2rem 0}.section-heading{margin-top:2rem;margin-bottom:1rem;color:var(--text-primary)}.release-item,.release-highlight{background:var(--card-background);border:1px solid var(--border-color);border-radius:8px;padding:1.5rem;margin-bottom:2rem;transition:box-shadow .2s ease}.release-highlight{background:var(--highlight-background, rgba(30, 144, 255, .05));border-color:var(--highlight-border, #1e90ff);box-shadow:0 2px 8px #1e90ff1a}.release-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-wrap:wrap;gap:.5rem}.release-date{font-size:.9rem;color:var(--text-secondary);font-weight:500}.release-type{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.release-type-feature{background:#4CAF50;color:#fff}.release-type-improvement{background:#2196F3;color:#fff}.release-type-bugfix{background:#FF9800;color:#fff}.release-item h2,.release-highlight h2{margin-top:0;margin-bottom:1rem;color:var(--text-primary)}.release-content{margin-bottom:1.5rem;line-height:1.6;color:var(--text-primary)}.release-features,.release-benefits{margin:1.5rem 0}.release-features h3,.release-benefits h3{margin-bottom:.75rem;color:var(--text-primary);font-size:1.1rem}.release-features ul,.release-benefits ul{margin-left:1.5rem;line-height:1.8}.release-features li,.release-benefits li{margin-bottom:.5rem;color:var(--text-primary)}.release-cta{margin-top:1.5rem;font-size:1.1rem}.last-updated{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--border-color);text-align:center;color:var(--text-secondary)}@media (max-width: 768px){.release-header{flex-direction:column;align-items:flex-start}.release-item,.release-highlight{padding:1rem}}.comments-section{margin-top:3rem;padding:2rem;background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border-primary)}@media (max-width: 768px){.comments-section{padding:1rem}}.comments-header{margin-bottom:2rem}.comments-header h2{margin:0 0 1.5rem;font-size:1.75rem;color:var(--text-primary)}.rating-summary{display:flex;gap:3rem;flex-wrap:wrap;align-items:flex-start}.average-rating{display:flex;flex-direction:column;gap:.5rem;align-items:flex-start}.rating-number{font-size:3rem;font-weight:700;color:var(--text-primary);line-height:1}.rating-count{font-size:.95rem;color:var(--text-secondary)}.rating-breakdown{flex:1;min-width:250px;display:flex;flex-direction:column;gap:.5rem}.rating-bar-item{display:flex;align-items:center;gap:.75rem}.rating-label{min-width:40px;font-size:.9rem;color:var(--text-secondary)}.rating-bar{flex:1;height:8px;background:var(--bg-tertiary);border-radius:4px;overflow:hidden}.rating-bar-fill{height:100%;background:var(--accent-primary);transition:width .3s ease}.rating-count-small{min-width:30px;font-size:.85rem;color:var(--text-secondary);text-align:right}.star-rating{display:flex;gap:2px}.star{font-size:1.25rem;color:var(--border-secondary);line-height:1}.star.filled{color:#ffc107}.star.interactive{cursor:pointer;transition:transform .2s ease}.star.interactive:hover{transform:scale(1.2)}.add-comment-button{padding:.75rem 1.5rem;font-size:1rem;font-weight:600;background:var(--accent-primary);color:var(--text-inverse);border:none;border-radius:6px;cursor:pointer;transition:all .2s ease;margin-bottom:1.5rem}.add-comment-button:hover{background:var(--button-primary-hover);transform:translateY(-2px)}.comment-form{background:var(--bg-primary);padding:1.5rem;border-radius:8px;border:1px solid var(--border-primary);margin-bottom:2rem}.purchase-error-message{display:flex;gap:1rem;padding:1rem;margin-bottom:1.5rem;background:#fff3cd;border:2px solid #ffc107;border-radius:8px;color:#856404}.purchase-error-message svg{width:24px;height:24px;flex-shrink:0;margin-top:2px;stroke:#856404}.purchase-error-message strong{display:block;margin-bottom:.5rem;font-size:1rem;color:#856404}.purchase-error-message p{margin:0;font-size:.9rem;line-height:1.5;color:#856404}@media (prefers-color-scheme: dark){.purchase-error-message{background:rgba(255,193,7,.15);border-color:#ffc107;color:#ffc107}.purchase-error-message svg{stroke:#ffc107}.purchase-error-message strong,.purchase-error-message p{color:#ffc107}}.form-group{margin-bottom:1.25rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--text-primary)}.form-group input,.form-group textarea{width:100%;padding:.75rem;border:2px solid var(--border-primary);border-radius:6px;font-size:1rem;font-family:inherit;background:var(--bg-primary);color:var(--text-primary);transition:border-color .2s ease}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--accent-primary)}.form-group textarea{resize:vertical;min-height:100px}.submit-comment-button{padding:.75rem 2rem;font-size:1rem;font-weight:600;background:var(--accent-primary);color:var(--text-inverse);border:none;border-radius:6px;cursor:pointer;transition:all .2s ease}.submit-comment-button:hover{background:var(--button-primary-hover);transform:translateY(-2px)}.comments-list{display:flex;flex-direction:column;gap:1.5rem}.comment-item{background:var(--bg-primary);padding:1.5rem;border-radius:8px;border:1px solid var(--border-primary)}.comment-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem;flex-wrap:wrap;gap:.75rem}.comment-author-info{display:flex;align-items:center;gap:.5rem}.comment-author{color:var(--text-primary);font-size:1rem}.verified-badge{font-size:.8rem;padding:.25rem .5rem;background:var(--accent-success);color:var(--text-inverse);border-radius:4px;font-weight:500}.comment-meta{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.comment-date{font-size:.85rem;color:var(--text-secondary)}.comment-text{margin:0;color:var(--text-primary);line-height:1.6;white-space:pre-wrap}@media (max-width: 768px){.rating-summary{flex-direction:column;gap:1.5rem}.comment-header{flex-direction:column;align-items:flex-start}}.order-summary-modern{position:fixed;bottom:1.5rem;right:1.5rem;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:16px;box-shadow:0 8px 32px #0000001f,0 2px 8px #00000014;z-index:1000;min-width:360px;max-width:400px;transition:all .3s cubic-bezier(.4,0,.2,1);overflow:hidden;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.order-summary-modern.is-collapsed{min-width:280px;max-width:320px}.order-summary-header{width:100%;padding:1rem 1.25rem;background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--bg-primary) 100%);border:none;border-bottom:1px solid var(--border-primary);color:var(--text-primary);cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;transition:all .2s ease;position:relative}.order-summary-header:hover{background:linear-gradient(135deg,var(--bg-primary) 0%,var(--bg-secondary) 100%)}.order-summary-header-left{display:flex;align-items:center;gap:.875rem;flex:1;min-width:0}.cart-icon-wrapper{position:relative;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--accent-primary);border-radius:10px;flex-shrink:0}.cart-icon{width:20px;height:20px;color:#fff}.cart-badge{position:absolute;top:-6px;right:-6px;background:#ef4444;color:#fff;font-size:.6875rem;font-weight:700;min-width:20px;height:20px;border-radius:10px;display:flex;align-items:center;justify-content:center;padding:0 .375rem;border:2px solid var(--bg-primary);box-shadow:0 2px 4px #0003}.order-summary-header-text{display:flex;flex-direction:column;gap:.125rem;min-width:0;flex:1}.order-summary-title{font-size:1rem;font-weight:700;color:var(--text-primary);line-height:1.3}.order-summary-subtitle{font-size:.875rem;font-weight:600;color:var(--accent-primary);line-height:1.2}.order-summary-chevron{width:20px;height:20px;color:var(--text-secondary);transition:transform .3s cubic-bezier(.4,0,.2,1);flex-shrink:0}.order-summary-chevron.is-open{transform:rotate(180deg)}.order-summary-body{display:flex;flex-direction:column;max-height:500px;animation:slideDown .3s cubic-bezier(.4,0,.2,1);overflow:hidden}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.cart-empty-state{padding:3rem 2rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:1rem}.cart-empty-icon{width:64px;height:64px;color:var(--text-secondary);opacity:.4;margin-bottom:.5rem}.cart-empty-title{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin:0}.cart-empty-description{font-size:.875rem;color:var(--text-secondary);margin:0}.cart-items-container{padding:1rem;display:flex;flex-direction:column;gap:.875rem;overflow-y:auto;flex:1;min-height:0;max-height:400px}.cart-items-container::-webkit-scrollbar{width:6px}.cart-items-container::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:3px}.cart-items-container::-webkit-scrollbar-thumb{background:var(--border-primary);border-radius:3px}.cart-items-container::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.cart-item-modern{padding:1rem;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:12px;display:flex;flex-direction:column;gap:1rem;transition:all .2s ease}.cart-item-modern:hover{border-color:var(--accent-primary);box-shadow:0 2px 8px #00000014}.cart-item-main{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem}.cart-item-content{flex:1;min-width:0}.cart-item-name{margin:0 0 .375rem;font-size:.9375rem;font-weight:700;color:var(--text-primary);line-height:1.3}.cart-item-desc{margin:0 0 .625rem;font-size:.8125rem;color:var(--text-secondary);line-height:1.4}.cart-item-tags{display:flex;flex-wrap:wrap;gap:.375rem}.cart-item-tag{font-size:.75rem;font-weight:500;color:var(--text-secondary);padding:.25rem .625rem;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:6px;white-space:nowrap}.cart-item-delete{width:32px;height:32px;min-width:32px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:all .2s ease;padding:0;flex-shrink:0}.cart-item-delete svg{width:18px;height:18px}.cart-item-delete:hover{background:rgba(239,68,68,.1);color:#ef4444;transform:scale(1.1)}.cart-item-actions{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding-top:.75rem;border-top:1px solid var(--border-primary)}.quantity-selector{display:flex;align-items:center;gap:.5rem;background:var(--bg-primary);border:1.5px solid var(--border-primary);border-radius:10px;padding:.25rem}.quantity-btn{width:32px;height:32px;min-width:32px;border:none;background:transparent;color:var(--text-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s ease;padding:0}.quantity-btn svg{width:16px;height:16px}.quantity-btn:hover:not(:disabled){background:var(--accent-primary);color:#fff;transform:scale(1.05)}.quantity-btn:active:not(:disabled){transform:scale(.95)}.quantity-btn:disabled{opacity:.3;cursor:not-allowed}.quantity-value{min-width:32px;text-align:center;font-size:.9375rem;font-weight:700;color:var(--text-primary);padding:0 .5rem}.cart-item-pricing{display:flex;flex-direction:column;align-items:flex-end;gap:.125rem;flex-shrink:0}.cart-item-total{font-size:1.125rem;font-weight:800;color:var(--accent-primary);line-height:1.2;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.cart-item-unit{font-size:.75rem;font-weight:500;color:var(--text-secondary);line-height:1.2}.order-summary-footer{padding:1.25rem;background:var(--bg-secondary);border-top:2px solid var(--border-primary);display:flex;flex-direction:column;gap:1rem;flex-shrink:0}.order-total-section{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.order-total-label{font-size:1rem;font-weight:600;color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px}.order-total-amount{font-size:1.75rem;font-weight:900;color:var(--accent-primary);line-height:1;letter-spacing:-.02em;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.checkout-btn{width:100%;padding:1rem 1.5rem;background:linear-gradient(135deg,#10b981 0%,#059669 100%);color:#fff;border:none;border-radius:12px;font-size:1rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px #10b9814d;position:relative;overflow:hidden}.checkout-btn:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:rgba(255,255,255,.2);transform:translate(-50%,-50%);transition:width .6s ease,height .6s ease}.checkout-btn:hover:not(:disabled):before{width:300px;height:300px}.checkout-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #10b98166}.checkout-btn:active:not(:disabled){transform:translateY(0)}.checkout-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.checkout-btn svg{width:20px;height:20px;transition:transform .3s ease}.checkout-btn:hover:not(:disabled) svg{transform:translate(2px)}@media (max-width: 768px){.order-summary-modern{bottom:1rem;right:1rem;left:1rem;min-width:auto;max-width:none}.order-summary-modern.is-collapsed{min-width:auto;max-width:none}.order-summary-body{max-height:60vh}.cart-items-container{max-height:50vh}}.checkout-section-modern{margin:3rem 0;padding:0;width:100%;position:relative}.checkout-card{width:100%;max-width:100%;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:20px;overflow:hidden;box-shadow:0 4px 24px #00000014,0 2px 8px #0000000a;transition:all .3s ease;margin:0}.checkout-card:hover{box-shadow:0 8px 32px #0000001f,0 4px 12px #0000000f}.checkout-header{padding:1.5rem 2rem;background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--bg-primary) 100%);border-bottom:1px solid var(--border-primary)}.checkout-header-content{display:flex;align-items:center;gap:.875rem}.checkout-header-icon{width:28px;height:28px;color:var(--accent-primary);flex-shrink:0}.checkout-title-modern{margin:0;font-size:1.5rem;font-weight:800;color:var(--text-primary);letter-spacing:-.02em;line-height:1.2}.checkout-content{padding:2rem;display:flex;flex-direction:column;gap:1.5rem}.checkout-section-group{display:flex;flex-direction:column;gap:1rem}.checkout-info-row{display:flex;justify-content:space-between;align-items:flex-start;gap:1.5rem}.checkout-info-label{font-size:.875rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;min-width:120px;flex-shrink:0;padding-top:.125rem}.checkout-info-value{font-size:.9375rem;font-weight:600;color:var(--text-primary);text-align:right;flex:1}.checkout-info-value-group{display:flex;flex-direction:column;align-items:flex-end;gap:.625rem;flex:1;text-align:right}.checkout-product-title{font-size:1rem;font-weight:700;color:var(--text-primary);line-height:1.3}.checkout-product-features{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.checkout-feature-tag{display:inline-flex;align-items:center;gap:.375rem;font-size:.8125rem;font-weight:500;color:var(--text-secondary);padding:.375rem .75rem;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px;white-space:nowrap}.feature-icon{width:14px;height:14px;flex-shrink:0;opacity:.7}.checkout-quantity-row{align-items:center}.checkout-quantity-controls{display:flex;align-items:center;gap:.5rem;background:var(--bg-secondary);border:1.5px solid var(--border-primary);border-radius:12px;padding:.25rem}.checkout-qty-btn{width:36px;height:36px;min-width:36px;border:none;background:transparent;color:var(--text-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:all .2s ease;padding:0}.checkout-qty-btn svg{width:18px;height:18px}.checkout-qty-btn:hover:not(:disabled){background:var(--accent-primary);color:#fff;transform:scale(1.05)}.checkout-qty-btn:active:not(:disabled){transform:scale(.95)}.checkout-qty-btn:disabled{opacity:.3;cursor:not-allowed}.checkout-qty-value{min-width:40px;text-align:center;font-size:1rem;font-weight:700;color:var(--text-primary);padding:0 .5rem}.checkout-section-divider{height:1px;background:var(--border-primary);margin:.5rem 0}.checkout-section-divider-bold{height:2px;background:var(--border-primary);margin:.75rem 0}.checkout-price-row{align-items:baseline}.checkout-unit-price{font-size:1rem;font-weight:600;color:var(--text-primary);text-align:right}.checkout-subtotal{font-size:1.125rem;font-weight:700;color:var(--text-primary);text-align:right}.checkout-shipping-row{align-items:center}.checkout-shipping-note{font-size:.875rem;font-weight:500;color:var(--text-secondary);font-style:italic;text-align:right}.checkout-total-section{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:1rem 0;margin-top:.5rem}.checkout-total-label{font-size:1.125rem;font-weight:700;color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px}.checkout-total-wrapper{display:flex;align-items:baseline;gap:.125rem;line-height:1}.checkout-total-currency{font-size:1.5rem;font-weight:700;color:var(--accent-primary);opacity:.9}.checkout-total-amount{font-size:2.25rem;font-weight:900;color:var(--accent-primary);letter-spacing:-.03em;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.checkout-actions-modern{padding:1.5rem 2rem;background:var(--bg-secondary);border-top:2px solid var(--border-primary);display:flex;flex-wrap:wrap;gap:.875rem;justify-content:flex-end}.checkout-action-btn{padding:.875rem 1.5rem;font-size:.9375rem;font-weight:600;border:none;border-radius:12px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center;gap:.5rem;min-width:160px;position:relative;overflow:hidden}.checkout-action-btn:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:rgba(255,255,255,.2);transform:translate(-50%,-50%);transition:width .6s ease,height .6s ease}.checkout-action-btn:hover:not(:disabled):before{width:300px;height:300px}.checkout-action-btn svg{width:18px;height:18px;transition:transform .3s ease;flex-shrink:0}.checkout-action-secondary{background:var(--bg-primary);color:var(--text-primary);border:1.5px solid var(--border-primary)}.checkout-action-secondary:hover{background:var(--bg-secondary);border-color:var(--accent-primary);color:var(--accent-primary);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.checkout-action-secondary:hover svg{transform:translate(-2px)}.checkout-action-primary{background:linear-gradient(135deg,var(--accent-primary) 0%,#0056b3 100%);color:#fff;box-shadow:0 4px 12px #1e90ff4d}.checkout-action-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #1e90ff66}.checkout-action-primary:hover:not(:disabled) svg{transform:scale(1.1)}.checkout-action-checkout{background:linear-gradient(135deg,#10b981 0%,#059669 100%);color:#fff;box-shadow:0 4px 12px #10b9814d;min-width:200px;font-weight:700}.checkout-action-checkout:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #10b98166}.checkout-action-checkout:hover:not(:disabled) svg{transform:translate(2px)}.checkout-action-btn:active:not(:disabled){transform:translateY(0)}.checkout-action-btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}.checkout-warning{padding:1.25rem 2rem;background:linear-gradient(135deg,rgba(251,191,36,.1) 0%,rgba(245,158,11,.05) 100%);border-top:1px solid rgba(251,191,36,.3);display:flex;align-items:flex-start;gap:1rem}.checkout-warning-icon{width:24px;height:24px;color:#f59e0b;flex-shrink:0;margin-top:.125rem}.checkout-warning-content{flex:1;display:flex;flex-direction:column;gap:.375rem}.checkout-warning-title{margin:0;font-size:.9375rem;font-weight:700;color:var(--text-primary);line-height:1.3}.checkout-warning-text{margin:0;font-size:.875rem;color:var(--text-secondary);line-height:1.5}@media (max-width: 768px){.checkout-section-modern{margin:2rem 0;border-radius:0}.checkout-card{border-radius:16px;margin:0 1rem;width:calc(100% - 2rem)}.checkout-header{padding:1.25rem 1.5rem}.checkout-title-modern{font-size:1.25rem}.checkout-content{padding:1.5rem;gap:1.25rem}.checkout-info-row{flex-direction:column;align-items:flex-start;gap:.5rem}.checkout-info-label{min-width:auto;padding-top:0}.checkout-info-value,.checkout-info-value-group{text-align:left;align-items:flex-start;width:100%}.checkout-product-features{justify-content:flex-start}.checkout-quantity-row{flex-direction:row;align-items:center}.checkout-actions-modern{padding:1.25rem 1.5rem;flex-direction:column}.checkout-action-btn{width:100%;min-width:auto}.checkout-warning{padding:1rem 1.5rem;flex-direction:column;gap:.75rem}.checkout-warning-icon{align-self:flex-start}}.location-search{position:relative;width:100%}.search-input-container{position:relative;display:flex;align-items:center}.search-input{width:100%;padding:.75rem 2.5rem .75rem .75rem;border:2px solid var(--border-primary);border-radius:6px;font-size:1rem;background:var(--bg-primary);color:var(--text-primary);transition:border-color .2s ease}.search-input:focus{outline:none;border-color:var(--accent-primary)}.suggestions{position:absolute;top:100%;left:0;right:0;margin-top:.25rem;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:6px;box-shadow:0 4px 12px var(--shadow-medium);max-height:300px;overflow-y:auto;z-index:1000}.suggestion-item{padding:.75rem;cursor:pointer;transition:background-color .2s ease;border-bottom:1px solid var(--border-primary)}.suggestion-item:last-child{border-bottom:none}.suggestion-item:hover,.suggestion-item.selected{background:var(--bg-secondary)}.suggestion-name{font-weight:500;color:var(--text-primary);margin-bottom:.25rem}.suggestion-details{display:flex;gap:.5rem;font-size:.85rem;color:var(--text-secondary)}.suggestion-location{color:var(--text-secondary)}.no-results{position:absolute;top:100%;left:0;right:0;margin-top:.25rem;padding:1rem;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:6px;text-align:center;color:var(--text-secondary);z-index:1000}.loading-spinner{position:absolute;right:.75rem;width:18px;height:18px;border:2px solid var(--border-secondary);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .8s linear infinite;pointer-events:none}@keyframes spin{to{transform:rotate(360deg)}}.product-container{display:flex;flex-direction:column;gap:0;padding:0;max-width:1400px;margin:0 auto;position:relative}.product-container>.content-padding-x{width:100%;padding:1.5rem 2rem 0}.product-container-wrapper{display:flex;gap:2rem;padding:2rem;width:100%;align-items:flex-start}.custom-map-controls{display:flex;flex-direction:column;gap:2rem;flex:1;min-width:300px;max-width:400px}.map-mode-selector{display:flex;gap:.5rem;margin-bottom:1rem}.mode-button{flex:1;padding:.75rem 1rem;border:2px solid var(--border-primary);background:var(--bg-primary);border-radius:6px;cursor:pointer;transition:all .2s ease;font-weight:500;color:var(--text-primary)}.mode-button:hover{border-color:var(--accent-primary);background:var(--bg-secondary)}.location-type-selector{display:flex;gap:.5rem;margin-bottom:1rem}.type-button{flex:1;padding:.5rem 1rem;border:2px solid var(--border-primary);background:var(--bg-primary);border-radius:6px;cursor:pointer;transition:all .2s ease;font-weight:500;color:var(--text-primary);font-size:.9rem}.type-button:hover{border-color:var(--accent-primary);background:var(--bg-secondary)}.type-button.active{border-color:var(--accent-primary);background:var(--accent-primary);color:var(--text-inverse)}.shape-customization{display:flex;flex-direction:column;gap:1.25rem}.shape-toggle-group{display:flex;gap:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border-primary)}.shape-toggle-label{display:flex;align-items:center;gap:.5rem;font-weight:500;color:var(--text-primary);font-size:.95rem;cursor:pointer}.shape-toggle-label input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--accent-primary)}.shape-section{display:flex;flex-direction:column;gap:1rem;padding:.75rem;background:var(--bg-tertiary);border-radius:6px}.color-control-group{display:flex;flex-direction:column;gap:.5rem}.color-control-group label{font-weight:500;color:var(--text-primary);font-size:.95rem}.color-input-group{display:flex;gap:.5rem;align-items:center}.color-picker{width:50px;height:40px;border:2px solid var(--border-primary);border-radius:6px;cursor:pointer;padding:2px;background:var(--bg-primary)}.color-text-input{flex:1;padding:.5rem;border:2px solid var(--border-primary);border-radius:6px;font-family:monospace;font-size:.9rem;background:var(--bg-primary);color:var(--text-primary)}.color-text-input:focus{outline:none;border-color:var(--accent-primary)}.opacity-control-group{display:flex;flex-direction:column;gap:.5rem}.opacity-control-group label{display:flex;align-items:center;gap:.5rem;font-weight:500;color:var(--text-primary);font-size:.95rem;cursor:pointer}.opacity-control-group label input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--accent-primary)}.opacity-slider{width:100%;height:6px;border-radius:3px;background:var(--bg-tertiary);outline:none;-webkit-appearance:none;cursor:pointer}.opacity-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--accent-primary);cursor:pointer;border:2px solid var(--text-inverse);box-shadow:0 2px 4px var(--shadow-light)}.opacity-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--accent-primary);cursor:pointer;border:2px solid var(--text-inverse);box-shadow:0 2px 4px var(--shadow-light)}.pin-controls{display:flex;flex-direction:column;gap:1rem}.pin-instruction,.text-instruction{margin:0;padding:.75rem;background:var(--bg-tertiary);border-radius:6px;text-align:center;color:var(--text-secondary);font-size:.9rem}.element-mode-selector{display:flex;gap:.5rem;margin-bottom:1rem}.mode-button{flex:1;padding:.75rem;border:2px solid var(--border-primary);background:var(--bg-primary);color:var(--text-primary);border-radius:6px;cursor:pointer;font-weight:500;transition:all .2s ease;display:flex;align-items:center;justify-content:center;position:relative}.mode-button:hover{border-color:var(--accent-primary);background:var(--bg-tertiary)}.mode-button.active{border-color:var(--accent-primary);background:var(--accent-primary);color:var(--text-inverse)}.mode-button.active .badge{background:rgba(255,255,255,.3);color:var(--text-inverse);border-color:#ffffff80}.text-controls{display:flex;flex-direction:column;gap:1rem}.text-input{width:100%;padding:.75rem;border:2px solid var(--border-primary);background:var(--bg-primary);color:var(--text-primary);border-radius:6px;font-size:1rem;font-family:inherit}.text-input:focus{outline:none;border-color:var(--accent-primary)}.text-options{display:flex;flex-direction:column;gap:1rem}.text-option-group{display:flex;flex-direction:column;gap:.5rem}.text-option-group label{font-weight:500;color:var(--text-primary);font-size:.9rem}.text-size-slider{width:100%;accent-color:var(--accent-primary)}.text-items-list{margin-top:1rem;padding:1rem;background:var(--bg-tertiary);border-radius:6px;max-height:300px;overflow-y:auto}.text-items-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-primary)}.text-items-header strong{color:var(--text-primary)}.clear-text-button{padding:.25rem .75rem;font-size:.85rem;background:var(--accent-danger);color:var(--text-inverse);border:none;border-radius:4px;cursor:pointer;transition:all .2s ease}.clear-text-button:hover{background:#c82333;transform:translateY(-1px)}.text-items-items{display:flex;flex-direction:column;gap:.5rem}.text-item{display:flex;align-items:center;gap:.75rem;padding:.5rem;background:var(--bg-primary);border-radius:4px;border:1px solid var(--border-primary)}.text-item-content{flex:1;font-weight:600}.text-item-coords{font-size:.85rem;color:var(--text-secondary)}.edit-text-button{width:24px;height:24px;border:none;background:var(--accent-primary);color:var(--text-inverse);border-radius:50%;cursor:pointer;font-size:1rem;line-height:1;display:flex;align-items:center;justify-content:center;transition:all .2s ease;padding:0}.edit-text-button:hover{background:#0056b3;transform:scale(1.1)}.remove-text-button{width:24px;height:24px;border:none;background:var(--accent-danger);color:var(--text-inverse);border-radius:50%;cursor:pointer;font-size:1.2rem;line-height:1;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.remove-text-button:hover{background:#c82333;transform:scale(1.1)}.text-item-edit{display:flex;flex-direction:column;gap:.75rem;width:100%;padding:.5rem;background:var(--bg-tertiary);border-radius:4px;border:2px solid var(--accent-primary)}.text-edit-input{width:100%;padding:.5rem;border:2px solid var(--border-primary);background:var(--bg-primary);color:var(--text-primary);border-radius:4px;font-size:.95rem;font-family:inherit}.text-edit-input:focus{outline:none;border-color:var(--accent-primary)}.text-edit-options{display:flex;flex-direction:column;gap:.5rem}.text-edit-option{display:flex;flex-direction:column;gap:.25rem}.text-edit-option label{font-size:.85rem;font-weight:500;color:var(--text-primary)}.text-edit-actions{display:flex;gap:.5rem;justify-content:flex-end}.save-text-button,.cancel-text-button{padding:.4rem .75rem;border:none;border-radius:4px;cursor:pointer;font-size:.85rem;font-weight:500;transition:all .2s ease}.save-text-button{background:var(--accent-primary);color:var(--text-inverse)}.save-text-button:hover:not(:disabled){background:#0056b3}.save-text-button:disabled{opacity:.5;cursor:not-allowed}.cancel-text-button{background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-primary)}.cancel-text-button:hover{background:var(--bg-tertiary)}.custom-text-marker{cursor:pointer;padding:.25rem .5rem;background:rgba(255,255,255,.9);border-radius:4px;border:1px solid rgba(0,0,0,.2);white-space:nowrap;-webkit-user-select:none;user-select:none;transition:all .2s ease}.custom-text-marker:hover{background:rgba(255,255,255,1);transform:scale(1.05);box-shadow:0 2px 8px #0000004d}.custom-text-marker.editing{border:2px solid var(--accent-primary);box-shadow:0 0 0 2px #1e90ff4d}.custom-text-marker.dragging{opacity:.8;cursor:grabbing}.custom-text-marker{cursor:grab}.custom-text-marker:active{cursor:grabbing}.emoji-selector{display:grid;grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:.5rem;max-height:200px;overflow-y:auto;padding:.5rem;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:6px}.country-flag-button{width:100%;padding:.75rem 1rem;border:2px solid var(--border-primary);background:var(--bg-primary);border-radius:6px;cursor:pointer;transition:all .2s ease;font-weight:500;color:var(--text-primary);font-size:.95rem;margin-top:.5rem}.country-flag-button:hover{border-color:var(--accent-primary);background:var(--bg-secondary)}.country-flag-button.active{border-color:var(--accent-primary);background:var(--accent-primary);color:var(--text-inverse);box-shadow:0 2px 8px #1e90ff4d}.country-flags-selector{margin-top:1rem;padding:1rem;background:var(--bg-tertiary);border-radius:6px;border:1px solid var(--border-primary)}.country-flag-search{width:100%;padding:.75rem;border:2px solid var(--border-primary);background:var(--bg-primary);color:var(--text-primary);border-radius:6px;font-size:.95rem;margin-bottom:1rem}.country-flag-search:focus{outline:none;border-color:var(--accent-primary)}.country-flags-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.5rem;max-height:300px;overflow-y:auto}.country-flag-button-item{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.75rem .5rem;border:2px solid var(--border-primary);background:var(--bg-primary);border-radius:6px;cursor:pointer;transition:all .2s ease;text-align:center}.country-flag-button-item:hover{border-color:var(--accent-primary);transform:translateY(-2px);box-shadow:0 4px 8px var(--shadow-light)}.country-flag-button-item.active{border-color:var(--accent-primary);background:var(--accent-primary);color:var(--text-inverse)}.flag-emoji{font-size:2rem;line-height:1}.flag-name{font-size:.75rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}.emoji-button{width:40px;height:40px;border:2px solid var(--border-primary);background:var(--bg-primary);border-radius:6px;cursor:pointer;transition:all .2s ease;font-size:1.5rem;display:flex;align-items:center;justify-content:center;padding:0}.emoji-button:hover{border-color:var(--accent-primary);transform:scale(1.1);box-shadow:0 2px 8px var(--shadow-light)}.emoji-button.active{border-color:var(--accent-primary);background:var(--accent-primary);box-shadow:0 2px 8px #1e90ff4d}.pins-list{margin-top:1rem;padding:1rem;background:var(--bg-tertiary);border-radius:6px;max-height:300px;overflow-y:auto}.pins-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-primary)}.pins-header strong{color:var(--text-primary)}.clear-pins-button{padding:.25rem .75rem;font-size:.85rem;background:var(--accent-danger);color:var(--text-inverse);border:none;border-radius:4px;cursor:pointer;transition:all .2s ease}.clear-pins-button:hover{background:#c82333;transform:translateY(-1px)}.pins-list-items{display:flex;flex-direction:column;gap:.5rem}.pin-item{display:flex;align-items:center;gap:.75rem;padding:.5rem;background:var(--bg-primary);border-radius:4px;border:1px solid var(--border-primary)}.pin-emoji{font-size:1.25rem;width:32px;text-align:center}.pin-coords{flex:1;font-size:.85rem;color:var(--text-secondary);font-family:monospace}.remove-pin-button{width:24px;height:24px;border:none;background:var(--accent-danger);color:var(--text-inverse);border-radius:50%;cursor:pointer;font-size:1.2rem;line-height:1;display:flex;align-items:center;justify-content:center;transition:all .2s ease;padding:0}.remove-pin-button:hover{background:#c82333;transform:scale(1.1)}.location-marker{position:relative}.marker-dot{width:16px;height:16px;background:var(--accent-primary);border:3px solid var(--text-inverse);border-radius:50%;box-shadow:0 2px 8px #0000004d}.custom-pin-marker{cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform .2s ease;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.custom-pin-marker:hover{transform:scale(1.2);filter:drop-shadow(0 4px 8px rgba(0,0,0,.4))}.pin-emoji-display{font-size:2rem;line-height:1;display:block}.preview-watermark-note{font-size:.875rem;color:var(--text-secondary);text-align:center;font-style:italic;padding:0 1rem}.custom-map-preview{flex:1;min-width:500px;display:flex;flex-direction:column;gap:1.5rem;position:sticky;top:2rem;align-self:flex-start}.intro-section{margin-bottom:2rem;padding:0;background:transparent;border:none}.intro-section h2{margin:0 0 .75rem;font-size:1.5rem;color:var(--text-primary);font-weight:600}.intro-section p{margin:0;font-size:1rem;color:var(--text-secondary);line-height:1.6}.preview-customize-button-container{margin-top:1.5rem}.preview-customize-button{width:100%;padding:1rem 1.5rem;background:var(--accent-primary);color:var(--text-inverse);border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.75rem;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #0000001a}.preview-customize-button:hover{background:var(--accent-hover, var(--accent-primary));transform:translateY(-2px);box-shadow:0 4px 16px #0003}.preview-customize-button:active{transform:translateY(0);box-shadow:0 2px 8px #0000001a}.preview-customize-button .button-icon{width:20px;height:20px;stroke-width:2}.control-section{margin-bottom:2rem;padding:1.5rem;background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border-primary)}.control-section h3{margin:0 0 1rem;font-size:1.25rem;color:var(--text-primary)}.labels-toggle-section{display:flex;flex-direction:column}.labels-section-label{font-weight:500;color:var(--text-primary);font-size:.95rem;margin-bottom:.25rem}.label-options{display:flex;flex-direction:column;gap:.5rem}.label-option{display:flex;align-items:center;gap:.5rem;font-weight:400;color:var(--text-primary);font-size:.9rem;cursor:pointer;padding:.5rem;border-radius:4px;transition:background-color .2s ease}.label-option:hover{background-color:var(--bg-tertiary)}.label-option input[type=radio]{width:18px;height:18px;cursor:pointer;accent-color:var(--accent-primary)}.label-option input[type=radio]:disabled{cursor:not-allowed;opacity:.5}.label-option:has(input[type=radio]:disabled){cursor:not-allowed;opacity:.6}.toggle-hint{font-size:.85rem;color:var(--text-secondary);font-weight:400;font-style:italic;margin-top:.25rem}.location-selector{display:flex;flex-direction:column;gap:1rem}.search-section label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--text-primary)}.or-divider{text-align:center;position:relative;margin:.5rem 0}.or-divider:before,.or-divider:after{content:"";position:absolute;top:50%;width:40%;height:1px;background:var(--border-primary)}.or-divider:before{left:0}.or-divider:after{right:0}.or-divider span{background:var(--bg-secondary);padding:0 1rem;position:relative;color:var(--text-secondary)}.click-instruction{padding:1rem;background:var(--bg-tertiary);border-radius:6px;text-align:center}.click-instruction p{margin:0 0 .5rem;color:var(--text-secondary);font-size:.9rem}.selected-location-info{margin-top:.5rem;padding:.75rem;background:var(--accent-primary);color:var(--text-inverse);border-radius:4px;font-size:.9rem}.custom-location-info{margin-top:.5rem;padding:.75rem;background:var(--bg-tertiary);border-radius:4px;font-size:.9rem;color:var(--text-secondary)}.custom-location-info p{margin:0;line-height:1.5}.shape-customization-inline{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-primary)}.shape-customization-inline h4{margin:0 0 .75rem;font-size:1rem;font-weight:600;color:var(--text-primary)}.map-style-selector,.frame-size-selector,.frame-type-selector{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem}.style-button,.size-button,.frame-button{padding:1rem;border:2px solid var(--border-primary);background:var(--bg-primary);border-radius:6px;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column;gap:.25rem;text-align:left}.style-button:hover,.size-button:hover,.frame-button:hover{border-color:var(--accent-primary);transform:translateY(-2px);box-shadow:0 4px 8px var(--shadow-light)}.style-button.active,.size-button.active,.frame-button.active{border-color:var(--accent-primary);background:var(--accent-primary);color:var(--text-inverse)}.style-button.active .style-name,.size-button.active .size-name,.frame-button.active .frame-name{color:var(--text-inverse)}.style-name,.size-name,.frame-name{font-weight:600;color:var(--text-primary);font-size:1rem}.style-description,.size-dimensions,.frame-description{font-size:.85rem;color:var(--text-secondary);line-height:1.3}.style-button.active .style-description,.size-button.active .size-dimensions,.frame-button.active .frame-description{color:#ffffffe6}.size-pricing{display:flex;align-items:baseline;gap:.5rem;margin-top:.25rem}.size-price{font-weight:600;color:var(--accent-primary)}.size-button.active .size-price{color:var(--text-inverse)}.size-price-difference{font-size:.85rem;color:var(--text-secondary);font-weight:500}.preview-header{text-align:center}.preview-header h3{margin:0 0 .5rem;font-size:1.5rem;color:var(--text-primary)}.preview-header p{margin:0;color:var(--text-secondary)}.frame-preview-container{width:100%;padding:2rem;background:var(--bg-secondary);border-radius:8px;display:flex;align-items:center;justify-content:center}.frame-preview-container-poster{padding:0;background:transparent;border-radius:0}.frame-preview-container-poster .frame-preview{box-shadow:none;border-radius:0}.frame-preview{width:100%;height:100%;position:relative;box-shadow:0 8px 24px var(--shadow-medium);border-radius:4px;overflow:hidden}.frame-inner{width:100%;height:100%;padding:1.5rem;background:var(--bg-primary)}.map-zoom-hint{position:absolute;top:1rem;left:50%;transform:translate(-50%);background:rgba(0,0,0,.75);color:#fff;padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:500;z-index:10;pointer-events:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:0 2px 8px #0003;animation:fadeInOut 3s ease-in-out;white-space:nowrap}@keyframes fadeInOut{0%,to{opacity:0}10%,90%{opacity:1}}.map-preview-wrapper{width:100%;height:100%;border-radius:2px;overflow:hidden;position:relative}.map-watermark-pattern{position:absolute;top:0;left:0;right:0;bottom:0;z-index:1000;pointer-events:none;-webkit-user-select:none;user-select:none;overflow:hidden}.frame-poster{background:transparent;border:none;box-shadow:none}.frame-poster .frame-inner{padding:0;box-shadow:none}.frame-wood-black{background:repeating-linear-gradient(90deg,#0a0a0a 0px,#0a0a0a 2px,#050505 2px,#050505 4px,#0f0f0f 4px,#0f0f0f 6px,#0a0a0a 6px,#0a0a0a 8px),linear-gradient(135deg,#1a1a1a 0%,#2d2d2d 50%,#1a1a1a 100%);border:12px solid;border-image:linear-gradient(135deg,#050505,#1a1a1a,#050505) 1;box-shadow:0 0 0 2px #000c,0 4px 12px #0009,0 8px 24px #0006,inset 0 1px #ffffff0d,inset 0 -1px #000c;position:relative;overflow:hidden}.frame-wood-black:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:repeating-linear-gradient(0deg,transparent 0px,transparent 1px,rgba(255,255,255,.02) 1px,rgba(255,255,255,.02) 2px);pointer-events:none;opacity:.3}.frame-wood-white{background:repeating-linear-gradient(90deg,#ffffff 0px,#ffffff 2px,#f5f5f5 2px,#f5f5f5 4px,#fafafa 4px,#fafafa 6px,#ffffff 6px,#ffffff 8px),linear-gradient(135deg,#f5f5f5 0%,#ffffff 50%,#f0f0f0 100%);border:12px solid;border-image:linear-gradient(135deg,#e8e8e8,#ffffff,#e8e8e8) 1;box-shadow:0 0 0 1px #0000001a,0 4px 12px #00000026,0 8px 24px #0000001a,inset 0 1px #ffffffe6,inset 0 -1px #0000001a;position:relative;overflow:hidden}.frame-wood-white:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:repeating-linear-gradient(0deg,transparent 0px,transparent 1px,rgba(0,0,0,.01) 1px,rgba(0,0,0,.01) 2px);pointer-events:none;opacity:.4}.frame-wood-natural{background:repeating-linear-gradient(90deg,#8b6914 0px,#8b6914 2px,#a67c2a 2px,#a67c2a 4px,#9d7220 4px,#9d7220 6px,#8b6914 6px,#8b6914 8px),linear-gradient(135deg,#d4a574 0%,#b88652 30%,#c99a63 60%,#b88652 100%);border:12px solid;border-image:linear-gradient(135deg,#7a5a10,#a67c2a,#7a5a10) 1;box-shadow:0 0 0 2px #0000004d,0 4px 12px #0006,0 8px 24px #0000004d,inset 0 1px #ffffff26,inset 0 -1px #00000080;position:relative;overflow:hidden}.frame-wood-natural:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:repeating-linear-gradient(0deg,transparent 0px,transparent 1px,rgba(255,255,255,.03) 1px,rgba(255,255,255,.03) 2px,transparent 2px,transparent 3px,rgba(0,0,0,.05) 3px,rgba(0,0,0,.05) 4px);pointer-events:none;opacity:.6}.frame-metal-silver{background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.4) 0%,transparent 50%),linear-gradient(135deg,#c0c0c0 0%,#e8e8e8 25%,#d4d4d4 50%,#e8e8e8 75%,#c0c0c0 100%);border:12px solid;border-image:linear-gradient(135deg,#a0a0a0,#d0d0d0,#a0a0a0) 1;box-shadow:0 0 0 1px #ffffff4d,0 4px 16px #c0c0c066,0 8px 32px #c0c0c04d,inset 0 2px 4px #fff9,inset 0 -2px 4px #0003;position:relative;overflow:hidden}.frame-metal-silver:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:repeating-linear-gradient(45deg,transparent 0px,transparent 2px,rgba(255,255,255,.1) 2px,rgba(255,255,255,.1) 4px);pointer-events:none;opacity:.5}.frame-metal-gold{background:radial-gradient(circle at 30% 30%,rgba(255,255,200,.5) 0%,transparent 50%),linear-gradient(135deg,#ffd700 0%,#ffed4e 25%,#ffd700 50%,#ffed4e 75%,#ffd700 100%);border:12px solid;border-image:linear-gradient(135deg,#b8860b,#daa520,#b8860b) 1;box-shadow:0 0 0 1px #ffd70066,0 4px 16px #ffd70066,0 8px 32px #ffd7004d,inset 0 2px 4px #ffffc899,inset 0 -2px 4px #b8860b66;position:relative;overflow:hidden}.frame-metal-gold:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:repeating-linear-gradient(45deg,transparent 0px,transparent 2px,rgba(255,255,200,.15) 2px,rgba(255,255,200,.15) 4px);pointer-events:none;opacity:.6}.frame-inner{box-shadow:inset 0 2px 8px #00000026,inset 0 0 0 1px #0000001a;position:relative;z-index:1}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.preview-info-download{padding:1.5rem;border-top:1px solid var(--border-primary);background:var(--bg-tertiary)}.preview-info-download{padding:1.5rem;border-top:1px solid var(--border-primary);background:var(--bg-tertiary);display:flex;flex-direction:column;gap:.75rem}.download-high-res-button{width:100%;padding:.875rem 1.5rem;background:var(--accent-primary);color:var(--text-inverse);border:none;border-radius:6px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.5rem}.download-high-res-button:hover:not(:disabled){background:#0056b3;transform:translateY(-1px);box-shadow:0 4px 12px #1e90ff4d}.download-high-res-button:active:not(:disabled){transform:translateY(0)}.download-high-res-button:disabled{opacity:.5;cursor:not-allowed}.download-hint{margin:0;font-size:.8125rem;color:var(--text-secondary);text-align:center;line-height:1.5}.preview-download-section{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border-primary)}.loading-spinner-small{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.download-high-res-button .button-icon{width:18px;height:18px}.custom-map-intro{font-size:1.1rem;color:var(--text-secondary);line-height:1.6;margin-bottom:2rem}.preview-mode-banner{background:var(--bg-secondary);border:2px solid var(--accent-primary);border-radius:12px;padding:2rem;margin:2rem 0;text-align:center}.preview-mode-banner h2{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin-bottom:.75rem}.preview-mode-banner p{font-size:1rem;color:var(--text-secondary);line-height:1.6;margin:0}@media (max-width: 1024px){.product-container-wrapper{flex-direction:column}.custom-map-controls{max-width:100%}.custom-map-preview{min-width:100%;position:relative;top:0}}@media (max-width: 768px){.product-container{padding:0}.product-container>.content-padding-x{padding:1.5rem 1rem 0}.product-container-wrapper{padding:1rem .75rem}.map-style-selector,.frame-size-selector,.frame-type-selector{grid-template-columns:1fr}.frame-preview-container{padding:1rem}}.product-details-page{min-height:100vh;background:var(--bg-primary)}.product-details-page .content-padding-x{max-width:1400px;margin:0 auto;padding:1.5rem 2rem 0}.product-details-container{max-width:1400px;margin:0 auto;padding:2rem;display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}.product-details-image-section{position:sticky;top:2rem;display:flex;flex-direction:column;gap:1.5rem}.product-image-container{width:100%}.product-image{width:100%;height:100%;object-fit:cover;display:block;position:relative;z-index:2}.product-image-gallery{display:flex;gap:1rem;overflow-x:auto;padding:.5rem 0}.product-image-thumbnail{flex-shrink:0;width:80px;height:80px;border:2px solid transparent;border-radius:6px;overflow:hidden;cursor:pointer;background:var(--bg-secondary);padding:0;transition:all .2s ease}.product-image-thumbnail:hover{border-color:var(--accent-primary);transform:translateY(-2px)}.product-image-thumbnail.active{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-primary)}.product-image-thumbnail img{width:100%;height:100%;object-fit:cover;display:block}.product-watermark-note{font-size:.875rem;color:var(--text-secondary);text-align:center;margin:0}.product-details-options-section{display:flex;flex-direction:column;gap:2rem}.product-details-header{margin-bottom:1rem}.product-details-title{font-size:2rem;font-weight:700;color:var(--text-primary);margin:0 0 .5rem}.product-details-description{font-size:1.125rem;color:var(--text-secondary);margin:0;line-height:1.6}.control-section{background:var(--bg-secondary);border-radius:8px;padding:1.5rem}.control-section h3{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin:0 0 1rem}.frame-type-selector{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.frame-button{display:flex;flex-direction:column;align-items:center;padding:1rem;border:2px solid var(--border-color);border-radius:8px;background:var(--bg-primary);cursor:pointer;transition:all .2s ease;text-align:center}.frame-button:hover{border-color:var(--accent-primary);transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow-light)}.frame-button.active{border-color:var(--accent-primary);background:var(--accent-primary);color:var(--text-inverse)}.frame-name{font-weight:600;font-size:1rem;margin-bottom:.25rem}.frame-description{font-size:.875rem;opacity:.8}.frame-size-selector{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem}.size-button{display:flex;flex-direction:column;padding:1rem;border:2px solid var(--border-color);border-radius:8px;background:var(--bg-primary);cursor:pointer;transition:all .2s ease;text-align:left}.size-button:hover{border-color:var(--accent-primary);transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow-light)}.size-button.active{border-color:var(--accent-primary);background:var(--accent-primary);color:var(--text-inverse)}.size-button-content{display:flex;flex-direction:column;gap:.5rem}.size-name{font-weight:600;font-size:1rem}.size-dimensions{font-size:.875rem;opacity:.8}.size-price{display:flex;align-items:baseline;gap:.5rem;margin-top:.25rem}.size-price-amount{font-weight:700;font-size:1.125rem}.size-price-difference{font-size:.75rem;opacity:.7}@media (max-width: 1024px){.product-details-container{grid-template-columns:1fr;gap:2rem}.product-details-image-section{position:static}}@media (max-width: 768px){.product-details-container{padding:1rem}.product-details-title{font-size:1.5rem}.frame-type-selector,.frame-size-selector{grid-template-columns:1fr}}@media (prefers-color-scheme: dark){.product-image-frame,.product-image-thumbnail{background:var(--bg-secondary)}}.product-item{border:2px solid var(--border-primary);border-radius:12px;overflow:hidden;background:var(--bg-primary);cursor:pointer;transition:all .35s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;position:relative;box-shadow:0 2px 8px #0000000d}.product-item:hover{box-shadow:0 8px 24px #0000001f}.product-item.featured{border-color:var(--accent-success);border-width:1px}.product-item.featured:hover{box-shadow:0 12px 32px #00000026;transform:translateY(-6px)}.product-item-image{width:100%;height:240px;background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.product-item-image img{width:100%;height:100%;object-fit:cover;transition:transform .4s cubic-bezier(.4,0,.2,1),opacity .3s ease}.product-item:hover .product-item-image img{transform:scale(1.05)}.product-item-slider-btn{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.9);border:none;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:3;transition:all .3s ease;box-shadow:0 2px 8px #00000026;opacity:0}.product-item:hover .product-item-slider-btn{opacity:1}.product-item-slider-btn:hover{background:rgba(255,255,255,1);transform:translateY(-50%) scale(1.1);box-shadow:0 4px 12px #0003}.product-item-slider-btn svg{width:20px;height:20px;color:var(--text-primary);stroke-width:2.5}.product-item-slider-btn-prev{left:.75rem}.product-item-slider-btn-next{right:.75rem}.product-item-slider-dots{position:absolute;bottom:.75rem;left:50%;transform:translate(-50%);display:flex;gap:.5rem;z-index:3;opacity:0;transition:opacity .3s ease}.product-item:hover .product-item-slider-dots{opacity:1}.product-item-slider-dot{width:8px;height:8px;border-radius:50%;border:none;background:rgba(255,255,255,.5);cursor:pointer;padding:0;transition:all .3s ease}.product-item-slider-dot:hover{background:rgba(255,255,255,.8);transform:scale(1.2)}.product-item-slider-dot.active{background:rgba(255,255,255,1);width:24px;border-radius:4px}.product-item-content{padding:1rem;display:flex;flex-direction:column;flex:1;gap:.75rem}.product-item-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem}h3.product-item-name{font-size:1.15rem;font-weight:700;color:var(--text-primary);margin:0;line-height:1.25;flex:1}.product-item-category-badges{display:flex;gap:.5rem;flex-wrap:wrap}.product-item-category-badge{padding:.25rem .625rem;background:var(--bg-secondary);border-radius:6px;font-size:.75rem;font-weight:600;color:var(--text-secondary);white-space:nowrap;flex-shrink:0}p.product-item-description{font-size:.875rem;color:var(--text-secondary);line-height:1.5;margin:0;flex:1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.product-item-details{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:0}.product-item-detail-item{display:flex;align-items:center;gap:.375rem;padding:.375rem .625rem;background:var(--bg-secondary);border-radius:6px;font-size:.75rem;font-weight:500;color:var(--text-secondary);transition:all .25s ease;border:1px solid transparent}.product-item:hover .product-item-detail-item{background:var(--bg-primary);border-color:var(--border-primary);color:var(--text-primary)}.product-item:hover .detail-icon{color:var(--accent-primary)}.product-item-footer{display:flex;flex-direction:column;margin-top:auto;padding-top:.75rem;border-top:2px solid var(--border-primary);gap:.625rem}.product-item-pricing{display:flex;flex-direction:column;gap:.25rem;align-items:flex-start}.product-item-actions{display:flex;flex-direction:column;gap:.5rem;width:100%}.product-item-secondary-actions{display:flex;gap:.375rem;flex-wrap:wrap}.product-item-price-wrapper{display:flex;align-items:baseline;gap:.125rem;line-height:1;transition:transform .2s ease}.product-item:hover .product-item-price-wrapper{transform:scale(1.02)}.product-item-price-currency{font-size:1.25rem;font-weight:700;color:var(--accent-primary);opacity:.9;line-height:1;vertical-align:baseline;margin-top:.1em;transition:opacity .2s ease}.product-item:hover .product-item-price-currency{opacity:1}.product-item-price-amount{font-size:2rem;font-weight:900;color:var(--accent-primary);line-height:1;letter-spacing:-.03em;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;transition:color .2s ease}.product-item:hover .product-item-price-amount{color:var(--accent-primary);filter:brightness(1.1)}.product-item-price-note{font-size:.75rem;color:var(--text-secondary);font-weight:500;text-transform:none;letter-spacing:.01em;opacity:.75;line-height:1.2;margin-top:0}.product-item-button{padding:.625rem 1rem;background:var(--accent-primary);color:var(--text-inverse);border:none;border-radius:8px;cursor:pointer;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);font-size:.8125rem;display:flex;align-items:center;gap:.5rem;white-space:nowrap;box-shadow:0 2px 8px #0000001a;position:relative;overflow:hidden;min-width:0;justify-content:center}.product-item-button-primary{background:#10b981;color:#fff;padding:.75rem 1.25rem;font-size:.875rem;font-weight:700;width:100%;justify-content:center}.product-item-button-secondary{background:var(--bg-primary);color:var(--text-primary);border:1.5px solid var(--border-primary);flex:1;min-width:0;padding:.5rem .875rem;font-size:.75rem}.product-item-button-outline{background:transparent;color:var(--text-primary);border:1.5px solid var(--border-primary);flex:1;min-width:0;padding:.5rem .875rem;font-size:.75rem}.product-item-button:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:rgba(255,255,255,.2);transform:translate(-50%,-50%);transition:width .4s ease,height .4s ease}.product-item-button:hover:before{width:300px;height:300px}.product-item-button:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0003}.product-item-button-primary:hover{background:#059669;opacity:1;transform:translateY(-2px);box-shadow:0 4px 16px #10b9814d}.product-item-button-secondary:hover{background:var(--bg-secondary);border-color:var(--accent-primary)}.product-item-button-outline:hover{background:var(--bg-secondary);border-color:var(--accent-primary);color:var(--accent-primary)}.product-item-button:active{transform:translateY(0);box-shadow:0 2px 8px #0000001a}.product-item-button:hover .button-arrow{transform:translate(3px)}.shop-hero{padding:3rem 0;margin-bottom:3rem;border-bottom:2px solid var(--border-primary)}.shop-hero-content{text-align:center;max-width:900px;margin:0 auto}.shop-hero-title{font-size:2.5rem;font-weight:700;color:var(--text-primary);margin-bottom:1rem;line-height:1.2}.shop-hero-subtitle{font-size:1.25rem;color:var(--text-secondary);margin-bottom:2rem;line-height:1.6}.shop-hero-button{display:inline-block;padding:1.25rem 2.5rem;background:#10b981;color:#fff;text-decoration:none;border-radius:12px;font-size:1.25rem;font-weight:700;margin-bottom:2.5rem;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px #10b9814d;border:2px solid #10b981}.shop-hero-button:hover{background:#059669;transform:translateY(-3px);box-shadow:0 6px 20px #10b98166;border-color:#059669}.shop-hero-button:active{transform:translateY(-1px);box-shadow:0 4px 12px #10b9814d}.dark-theme .shop-hero-button{background:#10b981;color:#fff;border-color:#10b981;box-shadow:0 4px 12px #10b98166}.dark-theme .shop-hero-button:hover{background:#059669;border-color:#059669;box-shadow:0 6px 20px #10b98180}.shop-hero-features{display:flex;justify-content:center;gap:2rem;flex-wrap:wrap;margin-top:2rem}.shop-hero-feature{display:flex;align-items:center;gap:.5rem;color:var(--text-primary);font-weight:600;font-size:1rem}.shop-hero-icon{width:20px;height:20px;color:var(--accent-primary);flex-shrink:0}.shop-introduction{font-size:1.1rem;color:var(--text-secondary);margin-bottom:2.5rem;line-height:1.7;max-width:800px;text-align:center;margin-left:auto;margin-right:auto}.shop-category-filter{display:flex;gap:.75rem;margin-bottom:2.5rem;flex-wrap:wrap;padding-bottom:1.5rem;border-bottom:2px solid var(--border-primary)}.category-button{padding:.875rem 1.75rem;border:2px solid var(--border-primary);background:var(--bg-primary);border-radius:8px;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);font-weight:600;color:var(--text-primary);font-size:.95rem;position:relative;overflow:hidden}.category-button:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:var(--accent-primary);transform:translate(-50%,-50%);transition:width .4s ease,height .4s ease;opacity:.1}.category-button:hover:before{width:300px;height:300px}.category-button:hover{border-color:var(--accent-primary);background:var(--bg-secondary);transform:translateY(-1px);box-shadow:0 4px 8px #0000001a}.category-button.active{border-color:var(--accent-primary);background:var(--accent-primary);color:var(--text-inverse);box-shadow:0 4px 12px #00000026}.shop-section{margin-bottom:3rem}.shop-section-title{font-size:1.75rem;margin-bottom:1.5rem;color:var(--text-primary);font-weight:600}.shop-items-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:2rem;margin-bottom:2rem}@media (max-width: 1024px){.shop-items-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}}@media (max-width: 768px){.shop-items-grid{grid-template-columns:1fr;gap:1.5rem}.shop-item-button{width:100%;min-width:auto}.shop-item-button span{font-size:.8125rem}.shop-item-price-currency{font-size:1.25rem}.shop-item-price-amount{font-size:2rem}.shop-item-price-note{font-size:.8125rem}.shop-item-secondary-actions{flex-direction:column}.shop-item-secondary-actions .shop-item-button{width:100%}}.shop-item{border:2px solid var(--border-primary);border-radius:12px;overflow:hidden;background:var(--bg-primary);cursor:pointer;transition:all .35s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;position:relative;box-shadow:0 2px 8px #0000000d}.shop-item:hover{box-shadow:0 8px 24px #0000001f}.shop-item.featured{border-color:var(--accent-primary);border-width:2px}.shop-item.featured:hover{box-shadow:0 12px 32px #00000026;transform:translateY(-6px)}.shop-item-image{width:100%;height:240px;background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.shop-item-image img{width:100%;height:100%;object-fit:cover;transition:transform .4s cubic-bezier(.4,0,.2,1),opacity .3s ease}.shop-item:hover .shop-item-image img{transform:scale(1.05)}.shop-item-slider-btn{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.9);border:none;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:3;transition:all .3s ease;box-shadow:0 2px 8px #00000026;opacity:0}.shop-item:hover .shop-item-slider-btn{opacity:1}.shop-item-slider-btn:hover{background:rgba(255,255,255,1);transform:translateY(-50%) scale(1.1);box-shadow:0 4px 12px #0003}.shop-item-slider-btn svg{width:20px;height:20px;color:var(--text-primary);stroke-width:2.5}.shop-item-slider-btn-prev{left:.75rem}.shop-item-slider-btn-next{right:.75rem}.shop-item-slider-dots{position:absolute;bottom:.75rem;left:50%;transform:translate(-50%);display:flex;gap:.5rem;z-index:3;opacity:0;transition:opacity .3s ease}.shop-item:hover .shop-item-slider-dots{opacity:1}.shop-item-slider-dot{width:8px;height:8px;border-radius:50%;border:none;background:rgba(255,255,255,.5);cursor:pointer;padding:0;transition:all .3s ease}.shop-item-slider-dot:hover{background:rgba(255,255,255,.8);transform:scale(1.2)}.shop-item-slider-dot.active{background:rgba(255,255,255,1);width:24px;border-radius:4px}.shop-item-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f8f9fa 0%,#e9ecef 100%);position:relative;overflow:hidden}.shop-item-placeholder:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:repeating-linear-gradient(45deg,transparent,transparent 10px,rgba(0,0,0,.02) 10px,rgba(0,0,0,.02) 20px);opacity:.5}.map-icon{width:64px;height:64px;color:var(--text-secondary);opacity:.4;transition:all .3s ease;position:relative;z-index:1}.shop-item:hover .map-icon{opacity:.6;transform:scale(1.05)}.location-label{position:absolute;bottom:1rem;left:50%;transform:translate(-50%);background:rgba(255,255,255,.95);padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:600;color:var(--text-primary);box-shadow:0 2px 8px #0000001a;opacity:0;transition:opacity .3s ease;z-index:2}.shop-item:hover .location-label{opacity:1}.shop-item-hover-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.85);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.shop-item:hover .shop-item-hover-overlay{opacity:1}.shop-item-hover-content{padding:1.5rem;color:#fff;text-align:left;width:100%}.shop-item-specs{display:flex;flex-direction:column;gap:1rem}.shop-item-spec{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid rgba(255,255,255,.15)}.shop-item-spec:last-child{border-bottom:none}.spec-label{font-size:.8rem;opacity:.8;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.spec-value{font-size:.9rem;font-weight:600}.featured-badge{position:absolute;top:.75rem;right:.75rem;background:var(--accent-primary);color:var(--text-inverse);padding:.375rem .75rem;border-radius:6px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 2px 8px #00000026;z-index:2;display:flex;align-items:center;gap:.375rem}.star-icon{width:12px;height:12px;fill:currentColor}.shop-item-content{padding:1rem;display:flex;flex-direction:column;flex:1;gap:.75rem}.shop-item-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem}.shop-item-name{font-size:1.15rem;font-weight:700;color:var(--text-primary);margin:0;line-height:1.25;flex:1}.shop-item-category-badge{padding:.25rem .625rem;background:var(--bg-secondary);border-radius:6px;font-size:.75rem;font-weight:600;color:var(--text-secondary);white-space:nowrap;flex-shrink:0}.shop-item-description{font-size:.875rem;color:var(--text-secondary);line-height:1.5;margin:0;flex:1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.shop-item-details{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:0}.shop-item-detail-item{display:flex;align-items:center;gap:.375rem;padding:.375rem .625rem;background:var(--bg-secondary);border-radius:6px;font-size:.75rem;font-weight:500;color:var(--text-secondary);transition:all .25s ease;border:1px solid transparent}.shop-item:hover .shop-item-detail-item{background:var(--bg-primary);border-color:var(--border-primary);color:var(--text-primary)}.detail-icon{width:12px;height:12px;stroke-width:2;flex-shrink:0;color:var(--text-secondary);transition:color .25s ease}.shop-item:hover .detail-icon{color:var(--accent-primary)}.detail-text{font-size:.75rem;line-height:1.2}.shop-item-footer{display:flex;flex-direction:column;margin-top:auto;padding-top:.75rem;border-top:2px solid var(--border-primary);gap:.625rem}.shop-item-pricing{display:flex;flex-direction:column;gap:.25rem;align-items:flex-start}.shop-item-actions{display:flex;flex-direction:column;gap:.5rem;width:100%}.shop-item-secondary-actions{display:flex;gap:.375rem;flex-wrap:wrap}.shop-item-price-wrapper{display:flex;align-items:baseline;gap:.125rem;line-height:1;transition:transform .2s ease}.shop-item:hover .shop-item-price-wrapper{transform:scale(1.02)}.shop-item-price-currency{font-size:1.25rem;font-weight:700;color:var(--accent-primary);opacity:.9;line-height:1;vertical-align:baseline;margin-top:.1em;transition:opacity .2s ease}.shop-item:hover .shop-item-price-currency{opacity:1}.shop-item-price-amount{font-size:2rem;font-weight:900;color:var(--accent-primary);line-height:1;letter-spacing:-.03em;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;transition:color .2s ease}.shop-item:hover .shop-item-price-amount{color:var(--accent-primary);filter:brightness(1.1)}.shop-item-price-note{font-size:.75rem;color:var(--text-secondary);font-weight:500;text-transform:none;letter-spacing:.01em;opacity:.75;line-height:1.2;margin-top:0}.shop-item-button{padding:.625rem 1rem;background:var(--accent-primary);color:var(--text-inverse);border:none;border-radius:8px;cursor:pointer;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);font-size:.8125rem;display:flex;align-items:center;gap:.5rem;white-space:nowrap;box-shadow:0 2px 8px #0000001a;position:relative;overflow:hidden;min-width:0;justify-content:center}.shop-item-button-primary{background:#10b981;color:#fff;padding:.75rem 1.25rem;font-size:.875rem;font-weight:700;width:100%;justify-content:center}.shop-item-button-secondary{background:var(--bg-primary);color:var(--text-primary);border:1.5px solid var(--border-primary);flex:1;min-width:0;padding:.5rem .875rem;font-size:.75rem}.shop-item-button-outline{background:transparent;color:var(--text-primary);border:1.5px solid var(--border-primary);flex:1;min-width:0;padding:.5rem .875rem;font-size:.75rem}.shop-item-button:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:rgba(255,255,255,.2);transform:translate(-50%,-50%);transition:width .4s ease,height .4s ease}.shop-item-button:hover:before{width:300px;height:300px}.shop-item-button:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0003}.shop-item-button-primary:hover{background:#059669;opacity:1;transform:translateY(-2px);box-shadow:0 4px 16px #10b9814d}.shop-item-button-secondary:hover{background:var(--bg-secondary);border-color:var(--accent-primary)}.shop-item-button-outline:hover{background:var(--bg-secondary);border-color:var(--accent-primary);color:var(--accent-primary)}.shop-item-button:active{transform:translateY(0);box-shadow:0 2px 8px #0000001a}.button-icon{width:16px;height:16px;stroke-width:2;flex-shrink:0}.button-arrow{width:16px;height:16px;stroke-width:2.5;transition:transform .3s ease;flex-shrink:0}.shop-item-button:hover .button-arrow{transform:translate(3px)}.shop-empty-state{text-align:center;padding:4rem 2rem;color:var(--text-secondary);font-size:1.1rem}.shop-empty-state:before{content:"";width:64px;height:64px;margin:0 auto 1rem;display:block;opacity:.3;background:var(--text-secondary);-webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}.shop-seo-content{margin:4rem 0;padding:3rem 0;border-top:2px solid var(--border-primary);border-bottom:2px solid var(--border-primary)}.shop-seo-content h2{font-size:2rem;font-weight:700;color:var(--text-primary);margin-bottom:2.5rem;text-align:center}.shop-faq-item{margin-bottom:2rem;padding:1.5rem;background:var(--bg-secondary);border-radius:12px;border:1px solid var(--border-primary)}.shop-faq-item h3{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin-bottom:1rem;line-height:1.4}.shop-faq-item p{font-size:1rem;color:var(--text-secondary);line-height:1.7;margin:0}.shop-faq-item p strong{color:var(--text-primary);font-weight:600}@media (max-width: 768px){.shop-seo-content{margin:3rem 0;padding:2rem 0}.shop-seo-content h2{font-size:1.5rem;margin-bottom:2rem}.shop-faq-item{padding:1.25rem;margin-bottom:1.5rem}.shop-faq-item h3{font-size:1.125rem}.shop-faq-item p{font-size:.9375rem}}.shop-benefits{margin:4rem 0;padding:3rem 0;border-top:2px solid var(--border-primary);border-bottom:2px solid var(--border-primary)}.shop-benefits-title{font-size:2rem;font-weight:700;color:var(--text-primary);text-align:center;margin-bottom:3rem}.shop-benefits-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;max-width:1200px;margin:0 auto}.shop-benefit-item{text-align:center;padding:2rem 1.5rem;background:var(--bg-secondary);border-radius:12px;border:2px solid var(--border-primary);transition:all .3s cubic-bezier(.4,0,.2,1)}.shop-benefit-item:hover{border-color:var(--accent-primary);transform:translateY(-4px);box-shadow:0 8px 24px #0000001a}.shop-benefit-icon{font-size:3rem;margin-bottom:1rem;display:block}.shop-benefit-item h3{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin-bottom:.75rem}.shop-benefit-item p{font-size:1rem;color:var(--text-secondary);line-height:1.6;margin:0}.shop-cta{margin:5rem 0;padding:0;position:relative;border-radius:24px;overflow:hidden;background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 50%,#bbf7d0 100%);border:2px solid #10b981;box-shadow:0 20px 60px #10b98126}.shop-cta:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 50%,rgba(16,185,129,.05) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(16,185,129,.05) 0%,transparent 50%);pointer-events:none}.shop-cta-content{position:relative;z-index:1;padding:4rem 2rem;text-align:center;color:#064e3b;max-width:900px;margin:0 auto}.shop-cta-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;background:#10b981;border:1px solid #059669;border-radius:50px;font-size:.875rem;font-weight:600;color:#fff;margin-bottom:1.5rem;transition:all .3s ease;box-shadow:0 2px 8px #10b98133}.shop-cta-badge:hover{background:#059669;transform:translateY(-2px);box-shadow:0 4px 12px #10b9814d}.shop-cta-badge-icon{width:16px;height:16px;flex-shrink:0}.shop-cta-title{font-size:2.5rem;font-weight:800;color:#064e3b;margin-bottom:1rem;line-height:1.2;letter-spacing:-.02em}.shop-cta-subtitle{font-size:1.25rem;color:#065f46;margin-bottom:2.5rem;line-height:1.6;font-weight:400}.shop-cta-features{display:flex;justify-content:center;gap:2rem;flex-wrap:wrap;margin-bottom:2.5rem;padding:1.5rem 0;border-top:1px solid rgba(16,185,129,.2);border-bottom:1px solid rgba(16,185,129,.2)}.shop-cta-feature{display:flex;align-items:center;gap:.5rem;color:#047857;font-size:.95rem;font-weight:600}.shop-cta-feature-icon{width:18px;height:18px;color:#10b981;flex-shrink:0}.shop-cta-buttons{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-bottom:1.5rem}.shop-cta-button{display:inline-flex;align-items:center;justify-content:center;gap:.75rem;padding:1.125rem 2.25rem;border-radius:12px;text-decoration:none;font-weight:700;font-size:1.125rem;transition:all .3s cubic-bezier(.4,0,.2,1);border:2px solid transparent;position:relative;overflow:hidden}.shop-cta-button:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:rgba(255,255,255,.2);transform:translate(-50%,-50%);transition:width .6s ease,height .6s ease}.shop-cta-button:hover:before{width:300px;height:300px}.shop-cta-button-primary{background:#10b981;color:#fff;border-color:#10b981;box-shadow:0 4px 16px #10b9814d;min-width:240px}.shop-cta-button-primary:hover{background:#059669;border-color:#059669;transform:translateY(-3px);box-shadow:0 8px 24px #10b98166;color:#fff}.shop-cta-button-primary:active{transform:translateY(-1px)}.shop-cta-button-text{position:relative;z-index:1}.shop-cta-button-icon{width:20px;height:20px;position:relative;z-index:1;transition:transform .3s ease}.shop-cta-button-primary:hover .shop-cta-button-icon{transform:translate(4px)}.shop-cta-button-secondary{background:#ffffff;color:#047857;border-color:#10b981;min-width:180px}.shop-cta-button-secondary:hover{background:#f0fdf4;border-color:#059669;color:#065f46;transform:translateY(-3px);box-shadow:0 8px 24px #10b98133}.shop-cta-button-secondary:active{transform:translateY(-1px)}.shop-cta-help{font-size:.95rem;color:#065f46;margin-top:1.5rem;line-height:1.6}.shop-cta-help a{color:#10b981;text-decoration:underline;font-weight:600;transition:all .2s ease;text-underline-offset:3px}.shop-cta-help a:hover{color:#059669;text-decoration-thickness:2px}@media (max-width: 768px){.shop-hero-title{font-size:2rem}.shop-hero-subtitle{font-size:1.1rem}.shop-hero-button{padding:1rem 2rem;font-size:1.1rem;width:100%;max-width:400px}.shop-hero-features{flex-direction:column;gap:1rem}.shop-benefits-title{font-size:1.75rem}.shop-benefits-grid{grid-template-columns:1fr;gap:1.5rem}.shop-cta-content{padding:3rem 1.5rem}.shop-cta-badge{font-size:.8125rem;padding:.5rem 1rem}.shop-cta-title{font-size:1.875rem}.shop-cta-subtitle{font-size:1.1rem}.shop-cta-features{flex-direction:column;gap:1rem;padding:1.25rem 0}.shop-cta-feature{font-size:.9rem}.shop-cta-buttons{flex-direction:column;gap:.875rem}.shop-cta-button{width:100%;min-width:auto;padding:1rem 1.75rem;font-size:1rem}.shop-cta-help{font-size:.875rem}}.dark-theme .shop-cta{background:linear-gradient(135deg,#1a3d2e 0%,#0f2e1f 50%,#0a1f15 100%);border-color:#10b981;box-shadow:0 20px 60px #10b98133}.dark-theme .shop-cta:before{background:radial-gradient(circle at 20% 50%,rgba(16,185,129,.1) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(16,185,129,.1) 0%,transparent 50%)}.dark-theme .shop-cta-content{color:#d1fae5}.dark-theme .shop-cta-badge{background:#10b981;border-color:#059669;color:#fff;box-shadow:0 2px 8px #10b9814d}.dark-theme .shop-cta-badge:hover{background:#059669;box-shadow:0 4px 12px #10b98166}.dark-theme .shop-cta-title{color:#fff}.dark-theme .shop-cta-subtitle{color:#d1fae5}.dark-theme .shop-cta-features{border-top-color:#10b9814d;border-bottom-color:#10b9814d}.dark-theme .shop-cta-feature{color:#a7f3d0}.dark-theme .shop-cta-feature-icon{color:#10b981;filter:drop-shadow(0 0 4px rgba(16,185,129,.5))}.dark-theme .shop-cta-button-primary{background:#10b981;color:#fff;border-color:#10b981;box-shadow:0 4px 16px #10b98166}.dark-theme .shop-cta-button-primary:hover{background:#059669;border-color:#059669;box-shadow:0 8px 24px #10b98180;color:#fff}.dark-theme .shop-cta-button-secondary{background:rgba(16,185,129,.15);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#a7f3d0;border-color:#10b98166}.dark-theme .shop-cta-button-secondary:hover{background:rgba(16,185,129,.25);border-color:#10b98199;color:#d1fae5;box-shadow:0 8px 24px #10b9814d}.dark-theme .shop-cta-help{color:#a7f3d0}.dark-theme .shop-cta-help a{color:#10b981}.dark-theme .shop-cta-help a:hover{color:#34d399}.shop-faq-intro{font-size:1.1rem;color:var(--text-secondary);margin-bottom:2rem;line-height:1.7;max-width:800px}.shop-faq-intro a{color:var(--accent-primary);text-decoration:none;font-weight:600;transition:color .2s ease}.shop-faq-intro a:hover{color:var(--accent-primary);text-decoration:underline}.shop-faq-container{margin-bottom:3rem}.shop-faq-item{border:2px solid var(--border-primary);border-radius:12px;margin-bottom:1rem;background:var(--bg-primary);overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1)}.shop-faq-item:hover{border-color:var(--accent-primary);box-shadow:0 4px 12px #00000014}.shop-faq-item.open{border-color:var(--accent-primary);box-shadow:0 4px 16px #0000001f}.shop-faq-question{width:100%;padding:1.25rem 1.5rem;background:transparent;border:none;text-align:left;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem;font-size:1.1rem;font-weight:600;color:var(--text-primary);transition:all .2s ease}.shop-faq-question:hover{color:var(--accent-primary)}.shop-faq-question-text{flex:1;line-height:1.5}.shop-faq-icon{width:24px;height:24px;flex-shrink:0;color:var(--text-secondary);transition:transform .3s cubic-bezier(.4,0,.2,1),color .2s ease}.shop-faq-item.open .shop-faq-icon{transform:rotate(180deg);color:var(--accent-primary)}.shop-faq-answer{max-height:0;overflow:hidden;transition:max-height .4s cubic-bezier(.4,0,.2,1),padding .3s ease;padding:0 1.5rem}.shop-faq-item.open .shop-faq-answer{max-height:1000px;padding:0 1.5rem 1.5rem}.shop-faq-answer-content{color:var(--text-secondary);line-height:1.8;font-size:1rem;padding-top:.5rem}.shop-faq-section{margin-top:3rem;padding:2rem;border-radius:12px;background:var(--bg-secondary);border:2px solid var(--border-primary)}.shop-faq-section.highlight{background:linear-gradient(135deg,var(--accent-primary) 0%,var(--accent-primary) 100%);color:var(--text-inverse);border-color:var(--accent-primary)}.shop-faq-section.highlight h2{color:var(--text-inverse)}.shop-faq-section.highlight p{color:#fffffff2}.shop-faq-section h2{font-size:1.5rem;margin-bottom:1rem;color:var(--text-primary);font-weight:600}.shop-faq-section p{font-size:1.1rem;line-height:1.7;margin-bottom:1.5rem;color:var(--text-secondary)}.shop-faq-section a{color:var(--accent-primary);text-decoration:none;font-weight:600;transition:color .2s ease}.shop-faq-section.highlight a{color:var(--text-inverse);text-decoration:underline}.shop-faq-section a:hover{text-decoration:underline}.shop-faq-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.5rem}.shop-faq-action-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.875rem 1.5rem;border-radius:8px;text-decoration:none;font-weight:600;font-size:1rem;transition:all .3s cubic-bezier(.4,0,.2,1);border:2px solid transparent}.shop-faq-action-btn.primary{background:var(--accent-primary);color:var(--text-inverse);border-color:var(--accent-primary)}.shop-faq-action-btn.primary:hover{background:var(--accent-primary);transform:translateY(-2px);box-shadow:0 4px 12px #0003}.shop-faq-action-btn.secondary{background:transparent;color:var(--text-inverse);border-color:#ffffff80}.shop-faq-action-btn.secondary:hover{background:rgba(255,255,255,.1);border-color:#fffc;transform:translateY(-2px)}.shop-faq-action-btn span{font-size:1.2rem}@media (max-width: 768px){.shop-faq-question{padding:1rem 1.25rem;font-size:1rem}.shop-faq-answer{padding:0 1.25rem}.shop-faq-item.open .shop-faq-answer{padding:0 1.25rem 1.25rem}.shop-faq-answer-content{font-size:.95rem}.shop-faq-section{padding:1.5rem}.shop-faq-actions{flex-direction:column}.shop-faq-action-btn{width:100%;justify-content:center}}.checkout-progress-modern{display:flex;align-items:center;justify-content:center;margin-bottom:3rem;padding:0 2rem;gap:.75rem}.checkout-progress-step-modern{display:flex;flex-direction:column;align-items:center;gap:.5rem;position:relative}.checkout-progress-icon{width:40px;height:40px;border-radius:50%;background:var(--bg-primary);border:2px solid var(--border-primary);display:flex;align-items:center;justify-content:center;transition:all .3s ease;color:var(--text-secondary);position:relative;z-index:1}.checkout-progress-icon svg{width:20px;height:20px}.checkout-progress-active .checkout-progress-icon{background:var(--accent-success);border-color:var(--accent-success);color:#fff;box-shadow:0 2px 8px #10b9814d}.checkout-progress-label{font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;transition:color .3s ease;white-space:nowrap}.checkout-progress-active .checkout-progress-label{color:var(--accent-success);font-weight:700}.checkout-progress-line-modern{width:100px;height:2px;background:var(--border-primary);transition:all .3s ease;position:relative;margin:0 .25rem}.checkout-progress-line-active{background:var(--accent-success)}@media (max-width: 768px){.checkout-progress-modern{padding:0 1rem;gap:.5rem}.checkout-progress-icon{width:36px;height:36px}.checkout-progress-icon svg{width:18px;height:18px}.checkout-progress-line-modern{width:50px;margin:0 .125rem}.checkout-progress-label{font-size:.6875rem}}@media (max-width: 480px){.checkout-progress-line-modern{width:40px}}.checkout-page-modern{min-height:60vh;padding:2rem 0 4rem}.checkout-page-title-modern{font-size:2.5rem;font-weight:900;color:var(--text-primary);margin:0 0 .5rem;letter-spacing:-.03em;text-align:center;line-height:1.2}.checkout-page-subtitle-modern{font-size:1.125rem;color:var(--text-secondary);text-align:center;margin:0 0 3rem;line-height:1.5}.checkout-layout-modern{display:grid;grid-template-columns:1.2fr .8fr;gap:2.5rem;align-items:start;max-width:1400px;margin:0 auto}.checkout-form-card-modern{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:20px;overflow:hidden;box-shadow:0 4px 24px #00000014,0 2px 8px #0000000a;transition:all .3s ease}.checkout-form-card-modern:hover{box-shadow:0 8px 32px #0000001f,0 4px 12px #0000000f}.checkout-form-header-modern{padding:1.5rem 2rem;background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--bg-primary) 100%);border-bottom:1px solid var(--border-primary)}.checkout-form-header-content{display:flex;align-items:center;gap:.875rem}.checkout-form-header-icon{width:28px;height:28px;color:var(--accent-primary);flex-shrink:0}.checkout-form-title{margin:0;font-size:1.5rem;font-weight:800;color:var(--text-primary);letter-spacing:-.02em;line-height:1.2}.checkout-form-subtitle{margin:.25rem 0 0;font-size:.875rem;color:var(--text-secondary);line-height:1.4}.checkout-form-modern{padding:2rem;display:flex;flex-direction:column;gap:1.5rem}.checkout-form-row-modern{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}.checkout-form-group-modern{display:flex;flex-direction:column;gap:.625rem}.checkout-label-modern{font-size:.875rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:.25rem}.required-asterisk{color:#ef4444;font-weight:700}.checkout-input-wrapper-modern{position:relative}.checkout-input-modern{width:100%;padding:.875rem 1.25rem;border:1.5px solid var(--border-primary);background:var(--bg-secondary);color:var(--text-primary);border-radius:12px;font-size:.9375rem;transition:all .2s cubic-bezier(.4,0,.2,1);font-family:inherit;box-sizing:border-box}.checkout-input-modern::placeholder{color:var(--text-secondary);opacity:.6}.checkout-input-modern:focus{outline:none;border-color:var(--accent-primary);background:var(--bg-primary);box-shadow:0 0 0 4px #1e90ff1a;transform:translateY(-1px)}.checkout-input-modern.error{border-color:#ef4444;background:rgba(239,68,68,.05)}.checkout-input-modern.error:focus{box-shadow:0 0 0 4px #ef44441a}.checkout-error-modern{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;color:#ef4444;margin-top:.25rem;animation:slideDown .2s ease}.checkout-error-modern svg{width:16px;height:16px;flex-shrink:0}@keyframes slideDown{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.checkout-submit-modern{width:100%;padding:1rem 1.5rem;background:linear-gradient(135deg,#10b981 0%,#059669 100%);color:#fff;border:none;border-radius:12px;font-size:1rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px #10b9814d;position:relative;overflow:hidden;margin-top:.5rem}.checkout-submit-modern:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:rgba(255,255,255,.2);transform:translate(-50%,-50%);transition:width .6s ease,height .6s ease}.checkout-submit-modern:hover:not(:disabled):before{width:300px;height:300px}.checkout-submit-modern:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #10b98166}.checkout-submit-modern:active:not(:disabled){transform:translateY(0)}.checkout-submit-modern:disabled{opacity:.7;cursor:not-allowed;transform:none}.checkout-submit-modern svg{width:20px;height:20px;transition:transform .3s ease}.checkout-submit-modern:hover:not(:disabled) svg{transform:translate(2px)}.checkout-spinner{width:20px;height:20px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.checkout-summary-card-modern{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:20px;overflow:hidden;box-shadow:0 4px 24px #00000014,0 2px 8px #0000000a;position:sticky;top:2rem;height:fit-content}.checkout-summary-header-modern{padding:1.5rem 2rem;background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--bg-primary) 100%);border-bottom:1px solid var(--border-primary)}.checkout-summary-header-content{display:flex;align-items:center;gap:.875rem}.checkout-summary-header-icon{width:28px;height:28px;color:var(--accent-primary);flex-shrink:0}.checkout-summary-title{margin:0;font-size:1.25rem;font-weight:800;color:var(--text-primary);letter-spacing:-.02em;line-height:1.2}.checkout-summary-count{display:inline-block;margin-top:.25rem;font-size:.8125rem;font-weight:600;color:var(--text-secondary);background:var(--bg-secondary);padding:.25rem .625rem;border-radius:6px;border:1px solid var(--border-primary)}.checkout-items-modern{padding:1rem 2rem;display:flex;flex-direction:column;gap:.875rem;max-height:400px;overflow-y:auto}.checkout-items-modern::-webkit-scrollbar{width:6px}.checkout-items-modern::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:3px}.checkout-items-modern::-webkit-scrollbar-thumb{background:var(--border-primary);border-radius:3px}.checkout-items-modern::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.checkout-item-modern{padding:1rem;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:12px;display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;transition:all .2s ease}.checkout-item-modern:hover{border-color:var(--accent-primary);box-shadow:0 2px 8px #00000014}.checkout-item-main-modern{display:flex;gap:.875rem;flex:1;min-width:0}.checkout-item-icon-modern{width:40px;height:40px;background:linear-gradient(135deg,var(--accent-primary) 0%,#0056b3 100%);border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff}.checkout-item-icon-modern svg{width:20px;height:20px}.checkout-item-content-modern{flex:1;min-width:0}.checkout-item-name-modern{margin:0 0 .375rem;font-size:.9375rem;font-weight:700;color:var(--text-primary);line-height:1.3}.checkout-item-desc-modern{margin:0 0 .625rem;font-size:.8125rem;color:var(--text-secondary);line-height:1.4}.checkout-item-tags-modern{display:flex;flex-wrap:wrap;gap:.375rem}.checkout-item-tag-modern{font-size:.75rem;font-weight:500;color:var(--text-secondary);padding:.25rem .625rem;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:6px;white-space:nowrap}.checkout-item-tag-qty{background:rgba(30,144,255,.1);border-color:var(--accent-primary);color:var(--accent-primary);font-weight:600}.checkout-item-price-modern{font-size:1.125rem;font-weight:800;color:var(--accent-primary);flex-shrink:0;white-space:nowrap;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.checkout-summary-divider-modern{height:1px;background:var(--border-primary);margin:0 2rem}.checkout-summary-divider-bold{height:2px;margin:.75rem 2rem}.checkout-summary-totals-modern{padding:1.5rem 2rem;display:flex;flex-direction:column;gap:.75rem}.checkout-summary-row-modern{display:flex;justify-content:space-between;align-items:center;gap:1rem}.checkout-summary-label-modern{font-size:.9375rem;font-weight:600;color:var(--text-secondary)}.checkout-summary-value-modern{font-size:.9375rem;font-weight:700;color:var(--text-primary)}.checkout-summary-shipping{align-items:center}.checkout-summary-note-modern{font-size:.8125rem;font-weight:500;color:var(--text-secondary);font-style:italic}.checkout-summary-total-modern{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding-top:.75rem;margin-top:.5rem}.checkout-summary-total-label-modern{font-size:1.125rem;font-weight:700;color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px}.checkout-summary-total-wrapper-modern{display:flex;align-items:baseline;gap:.125rem;line-height:1}.checkout-summary-total-currency-modern{font-size:1.5rem;font-weight:700;color:var(--accent-primary);opacity:.9}.checkout-summary-total-amount-modern{font-size:2.25rem;font-weight:900;color:var(--accent-primary);letter-spacing:-.03em;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.checkout-shipping-info-modern{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border-primary)}.checkout-shipping-header-modern{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem;padding:0 1.5rem}.checkout-shipping-icon{width:24px;height:24px;color:var(--accent-primary);flex-shrink:0}.checkout-shipping-title{margin:0;font-size:1.125rem;font-weight:700;color:var(--text-primary);letter-spacing:-.01em}.checkout-shipping-content-modern{display:flex;flex-direction:column;gap:1rem;padding:0 1.5rem}.checkout-shipping-item-modern{display:flex;flex-direction:column;gap:.5rem;padding:1rem;background:var(--bg-secondary);border-radius:12px;border:1px solid var(--border-primary);transition:all .2s ease}.checkout-shipping-item-modern:hover{border-color:var(--accent-primary);box-shadow:0 2px 8px #0000000d}.checkout-shipping-item-header{display:flex;align-items:center;gap:.625rem}.checkout-shipping-item-icon{width:20px;height:20px;color:var(--accent-primary);flex-shrink:0}.checkout-shipping-item-label{font-weight:600;font-size:.9375rem;color:var(--text-primary)}.checkout-shipping-item-value{margin:0;font-size:.875rem;color:var(--text-secondary);line-height:1.5;padding-left:1.75rem}.checkout-shipping-note-modern{margin-top:1.25rem;padding:1rem 1.5rem;background:linear-gradient(135deg,rgba(30,144,255,.05) 0%,rgba(30,144,255,.02) 100%);border-left:3px solid var(--accent-primary);border-radius:8px;display:flex;gap:.75rem;align-items:flex-start}.checkout-shipping-note-icon{width:20px;height:20px;color:var(--accent-primary);flex-shrink:0;margin-top:2px}.checkout-shipping-note-modern p{margin:0;font-size:.875rem;color:var(--text-secondary);line-height:1.6}.checkout-shipping-note-modern p strong{color:var(--text-primary);font-weight:600}@media (max-width: 968px){.checkout-layout-modern{grid-template-columns:1fr}.checkout-summary-card-modern{position:static;order:-1}}@media (max-width: 768px){.checkout-page-modern{padding:1.5rem 0 3rem}.checkout-page-title-modern{font-size:2rem}.checkout-page-subtitle-modern{font-size:1rem;margin-bottom:2rem}.checkout-form-header-modern,.checkout-summary-header-modern{padding:1.25rem 1.5rem}.checkout-form-modern{padding:1.5rem}.checkout-form-row-modern{grid-template-columns:1fr}.checkout-form-title,.checkout-summary-title{font-size:1.25rem}.checkout-items-modern{padding:1rem 1.5rem;max-height:300px}.checkout-summary-totals-modern{padding:1.25rem 1.5rem}.checkout-shipping-info-modern{margin-top:1.25rem;padding-top:1.25rem}.checkout-shipping-header-modern{padding:0 1.25rem;margin-bottom:1rem}.checkout-shipping-title{font-size:1rem}.checkout-shipping-content-modern{gap:.875rem;padding:0 1.25rem}.checkout-shipping-item-modern{padding:.875rem}.checkout-shipping-item-value{font-size:.8125rem;padding-left:1.5rem}.checkout-shipping-note-modern{padding:.875rem 1.25rem;font-size:.8125rem}}@media (max-width: 480px){.checkout-page-title-modern{font-size:1.75rem}.checkout-item-modern{flex-direction:column}.checkout-item-price-modern{align-self:flex-end}}.checkout-success-page-modern{min-height:70vh;padding:2rem 0 4rem;display:flex;align-items:center;justify-content:center}.checkout-success-card-modern{max-width:600px;margin:0 auto;overflow:hidden;animation:slideUp .5s cubic-bezier(.4,0,.2,1)}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.checkout-success-content-modern{padding:3rem 2.5rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:1.5rem}.checkout-success-icon-wrapper-modern{position:relative;width:120px;height:120px;margin:3rem auto 4rem}.checkout-success-icon-circle-modern{width:120px;height:120px;border-radius:50%;background:linear-gradient(135deg,#10b981 0%,#059669 100%);display:flex;align-items:center;justify-content:center;color:#fff;position:relative;z-index:2;box-shadow:0 8px 24px #10b98166;animation:scaleIn .5s cubic-bezier(.4,0,.2,1)}@keyframes scaleIn{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.checkout-success-checkmark{width:60px;height:60px;animation:checkmarkDraw .6s cubic-bezier(.4,0,.2,1) .3s both}@keyframes checkmarkDraw{0%{stroke-dasharray:0 50;stroke-dashoffset:50}to{stroke-dasharray:50 0;stroke-dashoffset:0}}.checkout-success-ripple{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:120px;height:120px;border-radius:50%;border:2px solid #10b981;opacity:0;animation:ripple 2s cubic-bezier(.4,0,.2,1) infinite}.checkout-success-ripple-1{animation-delay:0s}.checkout-success-ripple-2{animation-delay:.5s}.checkout-success-ripple-3{animation-delay:1s}@keyframes ripple{0%{transform:translate(-50%,-50%) scale(1);opacity:.6}to{transform:translate(-50%,-50%) scale(2);opacity:0}}.checkout-success-title-modern{margin:0;font-size:2.25rem;font-weight:900;color:var(--text-primary);letter-spacing:-.03em;line-height:1.2;animation:fadeInUp .5s cubic-bezier(.4,0,.2,1) .2s both}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.checkout-success-message-modern{margin:0;font-size:1.125rem;color:var(--text-secondary);line-height:1.6;max-width:500px;animation:fadeInUp .5s cubic-bezier(.4,0,.2,1) .3s both}.checkout-success-info-modern{width:100%;padding:1.5rem;background:linear-gradient(135deg,rgba(16,185,129,.1) 0%,rgba(5,150,105,.05) 100%);border:1px solid rgba(16,185,129,.2);border-radius:16px;display:flex;align-items:flex-start;gap:1rem;text-align:left;animation:fadeInUp .5s cubic-bezier(.4,0,.2,1) .4s both}.checkout-success-info-icon{width:24px;height:24px;color:#10b981;flex-shrink:0;margin-top:.125rem}.checkout-success-info-content{flex:1;display:flex;flex-direction:column;gap:.5rem}.checkout-success-info-title{margin:0;font-size:1rem;font-weight:700;color:var(--text-primary);line-height:1.3}.checkout-success-info-text{margin:0;font-size:.9375rem;color:var(--text-secondary);line-height:1.6}.checkout-success-actions-modern{display:flex;gap:1rem;width:100%;margin-top:.5rem;animation:fadeInUp .5s cubic-bezier(.4,0,.2,1) .5s both}.checkout-success-btn-modern{flex:1;padding:1rem 1.5rem;font-size:1rem;font-weight:600;border:none;border-radius:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:all .3s cubic-bezier(.4,0,.2,1);text-decoration:none;position:relative;overflow:hidden}.checkout-success-btn-modern:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:rgba(255,255,255,.2);transform:translate(-50%,-50%);transition:width .6s ease,height .6s ease}.checkout-success-btn-modern:hover:before{width:300px;height:300px}.checkout-success-btn-modern svg{width:20px;height:20px;transition:transform .3s ease;flex-shrink:0}.checkout-success-btn-primary-modern{background:linear-gradient(135deg,#10b981 0%,#059669 100%);color:#fff;box-shadow:0 4px 12px #10b9814d}.checkout-success-btn-primary-modern:hover{transform:translateY(-2px);box-shadow:0 6px 20px #10b98166}.checkout-success-btn-primary-modern:hover svg{transform:scale(1.1)}.checkout-success-btn-secondary-modern{background:var(--bg-primary);color:var(--text-primary);border:1.5px solid var(--border-primary)}.checkout-success-btn-secondary-modern:hover{background:var(--bg-secondary);border-color:var(--accent-primary);color:var(--accent-primary);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.checkout-success-btn-secondary-modern:hover svg{transform:translateY(-2px)}.checkout-success-btn-modern:active{transform:translateY(0)}@media (max-width: 768px){.checkout-success-page-modern{padding:1.5rem 0 3rem}.checkout-success-content-modern{padding:2.5rem 1.5rem}.checkout-success-icon-wrapper-modern,.checkout-success-icon-circle-modern{width:100px;height:100px}.checkout-success-checkmark{width:50px;height:50px}.checkout-success-title-modern{font-size:1.875rem}.checkout-success-message-modern{font-size:1rem}.checkout-success-actions-modern{flex-direction:column}.checkout-success-btn-modern{width:100%}}@media (max-width: 480px){.checkout-success-content-modern{padding:2rem 1.25rem}.checkout-success-icon-wrapper-modern,.checkout-success-icon-circle-modern{width:80px;height:80px}.checkout-success-checkmark{width:40px;height:40px}.checkout-success-title-modern{font-size:1.5rem}.checkout-success-info-modern{padding:1.25rem;flex-direction:column;text-align:center}.checkout-success-info-content{text-align:center}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Roboto,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg-secondary);color:var(--text-primary)}.pt-8{padding-top:8px!important}.p-0{padding:0!important}.pt-0{padding-top:0!important}.pb-0{padding-bottom:0!important}.pl-8{padding-left:8px!important}.pr-8{padding-right:8px!important}#root{height:100vh;width:100vw}.mapboxgl-map{height:100%;width:100%}.mapboxgl-ctrl-geocoder{min-width:100%}.mapboxgl-ctrl-geocoder--input{height:40px;padding:8px 12px;font-size:14px}.mapboxgl-ctrl-geocoder--suggestion{padding:8px 12px;font-size:14px}.mapboxgl-ctrl-geocoder--suggestion-title{font-weight:600}.mapboxgl-ctrl-geocoder--suggestion-address{color:var(--text-muted);font-size:12px}
