:root{--color-primary: #667eea;--color-primary-dark: #5a6fd8;--color-primary-light: #7c8ef0;--color-secondary: #764ba2;--color-secondary-dark: #6a4190;--color-secondary-light: #8255b4;--gradient-primary: linear-gradient(135deg, var(--color-primary) 0%, var(--color-secondary) 100%);--gradient-primary-hover: linear-gradient(135deg, var(--color-primary-dark) 0%, var(--color-secondary-dark) 100%);--color-text-primary: #2d3748;--color-text-secondary: #4a5568;--color-text-tertiary: #718096;--color-text-inverse: #ffffff;--color-bg-primary: #ffffff;--color-bg-secondary: #f7fafc;--color-bg-tertiary: #edf2f7;--color-bg-overlay: rgba(255, 255, 255, .95);--color-bg-overlay-light: rgba(255, 255, 255, .1);--color-border-primary: #e2e8f0;--color-border-secondary: #cbd5e0;--color-border-focus: var(--color-primary);--color-success: #48bb78;--color-warning: #ed8936;--color-error: #e53e3e;--color-info: var(--color-primary);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 25px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 40px rgba(0, 0, 0, .1);--shadow-primary: 0 10px 20px rgba(102, 126, 234, .3);--shadow-primary-hover: 0 15px 30px rgba(102, 126, 234, .4);--radius-sm: 8px;--radius-md: 10px;--radius-lg: 15px;--radius-xl: 20px;--radius-full: 50px;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--font-family-primary: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-family-mono: "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, "Courier New", monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-size-5xl: 3rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.625;--transition-fast: .15s ease;--transition-normal: .3s ease;--transition-slow: .5s ease;--z-dropdown: 1000;--z-modal: 1050;--z-popover: 1100;--z-tooltip: 1150;--breakpoint-sm: 480px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--breakpoint-xl: 1280px;--button-padding-sm: .5rem 1rem;--button-padding-md: .75rem 1.5rem;--button-padding-lg: 1rem 3rem;--input-padding: .75rem 1rem;--input-border-width: 2px;--card-padding: 1.5rem;--card-padding-lg: 3rem 2rem;--bg-image-url: url(/andreas-rasmussen-JKMcgMIDcnQ-unsplash.jpg);--bg-image-opacity: .3;--bg-gradient-overlay: var(--gradient-primary);--bg-blend-mode: overlay;--hero-title-size: var(--font-size-5xl);--hero-title-weight: var(--font-weight-bold);--hero-title-margin: var(--space-md);--hero-title-opacity: 1;--results-title-size: var(--font-size-3xl);--results-title-weight: var(--font-weight-semibold);--results-title-margin: var(--space-sm);--results-title-opacity: .9;font-family:var(--font-family-primary);line-height:var(--line-height-normal);font-weight:var(--font-weight-normal);color-scheme:light;color:var(--color-text-primary);background-color:var(--color-bg-primary);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{margin:0;padding:0;box-sizing:border-box}a{font-weight:var(--font-weight-medium);color:var(--color-primary);text-decoration:none;transition:color var(--transition-normal)}a:hover{color:var(--color-primary-dark)}body{margin:0;font-family:var(--font-family-primary);color:var(--color-text-primary);background:var(--gradient-primary);background-image:var(--bg-image-url);background-size:cover;background-position:center;background-repeat:no-repeat;background-attachment:fixed;position:relative;min-height:100vh;line-height:var(--line-height-normal)}body:before{content:"";position:fixed;inset:0;background:var(--bg-gradient-overlay);opacity:var(--bg-image-opacity);mix-blend-mode:var(--bg-blend-mode);pointer-events:none;z-index:-1}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:var(--color-text-primary)}h1{font-size:var(--font-size-5xl)}h2{font-size:var(--font-size-4xl)}h3{font-size:var(--font-size-3xl)}h4{font-size:var(--font-size-2xl)}h5{font-size:var(--font-size-xl)}h6{font-size:var(--font-size-lg)}button{border-radius:var(--radius-md);border:var(--input-border-width) solid transparent;padding:var(--button-padding-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);font-family:inherit;cursor:pointer;transition:all var(--transition-normal);background-color:transparent}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}input,select,textarea{font-family:inherit;font-size:var(--font-size-base);border-radius:var(--radius-md);border:var(--input-border-width) solid var(--color-border-primary);padding:var(--input-padding);background-color:var(--color-bg-primary);color:var(--color-text-primary);transition:all var(--transition-normal)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 3px #667eea1a}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-bold{font-weight:var(--font-weight-bold)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-medium{font-weight:var(--font-weight-medium)}.bg-image-none{--bg-image-url: none}.bg-overlay-minimal{--bg-image-opacity: .2;--bg-blend-mode: soft-light}.bg-overlay-strong{--bg-image-opacity: .5;--bg-blend-mode: multiply}.app{min-height:100vh;display:flex;flex-direction:column}.app-main{flex:1;display:flex;align-items:flex-start;justify-content:center;padding:var(--space-xl) 0}.app-content{display:flex;gap:var(--space-2xl);max-width:1400px;width:100%;padding:0 var(--space-xl)}.search-section{flex:1;max-width:600px}.hero-section{width:100%;max-width:1200px;padding:var(--space-xl);text-align:center}.hero-content{background:var(--color-bg-overlay);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--radius-xl);padding:var(--card-padding-lg);box-shadow:var(--shadow-xl)}.hero-title{font-size:var(--hero-title-size);font-weight:var(--hero-title-weight);color:var(--color-text-primary);margin-bottom:var(--hero-title-margin);background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;opacity:var(--hero-title-opacity)}.hero-description{font-size:var(--font-size-lg);color:var(--color-text-secondary);margin-bottom:var(--space-md);max-width:600px;margin-left:auto;margin-right:auto;line-height:var(--line-height-relaxed)}.hero-section p{max-width:600px;margin-left:auto;margin-right:auto;margin-bottom:var(--space-md);color:var(--color-text-secondary);font-size:var(--font-size-lg);line-height:var(--line-height-relaxed)}.hero-section p:last-of-type{margin-bottom:var(--space-2xl)}.search-form{max-width:800px;margin:0 auto}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg);margin-bottom:var(--space-lg)}.form-group{text-align:left}.form-group label{display:block;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-sm);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.5px}.form-group select,.form-group input{width:100%;padding:var(--input-padding);border:var(--input-border-width) solid var(--color-border-primary);border-radius:var(--radius-md);font-size:var(--font-size-base);background:var(--color-bg-primary);transition:all var(--transition-normal);color:var(--color-text-primary)}.form-group select:focus,.form-group input:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 3px #667eea1a}.search-button{background:var(--gradient-primary);color:var(--color-text-inverse);border:none;padding:var(--button-padding-lg);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-normal);text-transform:uppercase;letter-spacing:1px;margin-top:var(--space-md);box-shadow:var(--shadow-primary)}.search-button:hover{transform:translateY(-2px);box-shadow:var(--shadow-primary-hover);background:var(--gradient-primary-hover)}.search-button:active{transform:translateY(0)}.month-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-sm);margin-top:var(--space-sm)}.month-button{padding:var(--space-sm) var(--space-md);border:var(--input-border-width) solid var(--color-border-primary);border-radius:var(--radius-sm);background:var(--color-bg-primary);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-normal);text-align:center}.month-button:hover{border-color:var(--color-border-focus);background:var(--color-bg-secondary)}.month-button.selected{background:var(--gradient-primary);color:var(--color-text-inverse);border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.error-label{color:var(--color-error)!important}.error-text{color:var(--color-error);font-size:var(--font-size-xs);font-weight:var(--font-weight-normal)}.error-grid{border:var(--input-border-width) solid var(--color-error);border-radius:var(--radius-md);padding:var(--space-sm)}.location-picker,.location-input-container{position:relative}.location-input{width:100%;padding:var(--input-padding);border:var(--input-border-width) solid var(--color-border-primary);border-radius:var(--radius-md);font-size:var(--font-size-base);background:var(--color-bg-primary);transition:all var(--transition-normal);color:var(--color-text-primary)}.location-input:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 3px #667eea1a}.suggestions-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--color-bg-primary);border:var(--input-border-width) solid var(--color-border-focus);border-top:none;border-radius:0 0 var(--radius-md) var(--radius-md);box-shadow:var(--shadow-lg);z-index:var(--z-dropdown);max-height:400px;overflow-y:auto;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.suggestion-item{padding:var(--input-padding);cursor:pointer;border-bottom:1px solid var(--color-bg-secondary);transition:all var(--transition-fast);position:relative}.suggestion-main{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm)}.suggestion-item:last-child{border-bottom:none}.suggestion-item:hover,.suggestion-item.selected{background:var(--color-bg-secondary);transform:translate(2px)}.suggestion-item.selected{background:linear-gradient(135deg,var(--color-bg-secondary),rgba(102,126,234,.1));border-left:3px solid var(--color-border-focus)}.suggestion-city{font-weight:var(--font-weight-medium);color:var(--color-text-primary);flex:1}.suggestion-zip{font-size:var(--font-size-sm);color:var(--color-text-primary);font-family:var(--font-family-mono);background:linear-gradient(135deg,var(--color-bg-tertiary),rgba(102,126,234,.1));padding:4px 8px;border-radius:var(--radius-sm);font-weight:var(--font-weight-semibold);border:1px solid rgba(102,126,234,.2);min-width:60px;text-align:center;box-shadow:0 1px 3px #0000001a}.footer{width:100%;background:var(--color-bg-overlay-light);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid rgba(255,255,255,.2);padding:var(--space-lg) var(--space-xl);margin-top:auto}.noscript-warning{background:var(--color-error);color:var(--color-text-inverse);padding:var(--space-md);margin-bottom:var(--space-md);border-radius:var(--radius-sm);text-align:center;font-weight:var(--font-weight-medium)}.footer-content{text-align:center;color:#ffffffe6}.copyright{font-size:var(--font-size-sm);margin-bottom:var(--space-sm);color:#fffc}.footer-disclaimer{font-size:var(--font-size-xs);color:#ffffffb3;max-width:600px;margin:0 auto}.footer-actions{margin-top:var(--space-md)}.alert-button{background:#ffffff1a;color:#ffffffe6;border:1px solid rgba(255,255,255,.2);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-normal);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.alert-button:hover{background:#fff3;border-color:#ffffff4d;transform:translateY(-1px)}.alert-button:active{transform:translateY(0)}.tour-results{flex:1;max-width:700px}.results-header{margin-bottom:var(--space-lg)}.results-header-card{background:var(--color-bg-overlay);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--radius-lg);padding:var(--card-padding);box-shadow:var(--shadow-lg);display:flex;gap:var(--space-lg);align-items:center}.results-header-icon{width:60px;height:60px;background:var(--gradient-primary);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:var(--color-text-inverse);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);flex-shrink:0}.results-header-content{flex:1}.results-header h2{color:var(--color-text-primary);font-size:var(--results-title-size);font-weight:var(--results-title-weight);margin:0 0 var(--space-xs) 0;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;opacity:var(--results-title-opacity)}.results-summary{color:var(--color-text-secondary);font-size:var(--font-size-base);margin:0}.results-list{display:flex;flex-direction:column;gap:var(--space-lg)}.tour-card{background:var(--color-bg-overlay);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--radius-lg);padding:var(--card-padding);box-shadow:var(--shadow-lg);display:flex;gap:var(--space-lg)}.tour-image{width:150px;min-width:150px;border-radius:var(--radius-md);overflow:hidden}.tour-image img{width:100%;height:100px;object-fit:cover}.tour-content{flex:1;display:flex;flex-direction:column}.tour-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-md)}.tour-title{color:var(--color-text-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);margin:0}.tour-rating{display:flex;align-items:center;gap:var(--space-xs)}.rating-stars{color:gold;font-size:var(--font-size-sm)}.rating-text{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.tour-description{color:var(--color-text-secondary);line-height:var(--line-height-relaxed);margin-bottom:var(--space-md);flex:1}.tour-details{display:flex;gap:var(--space-md);margin-bottom:var(--space-md)}.tour-duration,.tour-operator{background:#667eea1a;color:var(--color-primary);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.tour-pickup-locations{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-md)}.tour-pickup-locations span{background:#48bb7826;color:var(--color-accent, #48bb78);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-md);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border:1px solid rgba(72,187,120,.2)}.tour-footer{display:flex;justify-content:space-between;align-items:center}.tour-price{color:var(--color-text-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold)}.book-button{background:var(--gradient-primary);color:var(--color-text-inverse);border:none;padding:var(--space-md) var(--space-lg);border-radius:var(--radius-full);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-normal);box-shadow:var(--shadow-primary)}.book-button:hover{transform:translateY(-2px);box-shadow:var(--shadow-primary-hover);background:var(--gradient-primary-hover)}@media (max-width: 768px){.hero-content{padding:var(--space-xl) var(--space-lg)}.hero-title{font-size:var(--font-size-4xl)}.results-header h2{font-size:var(--font-size-2xl)}.results-header-card{flex-direction:column;text-align:center;gap:var(--space-md)}.results-header-icon{width:50px;height:50px;font-size:var(--font-size-lg)}.hero-description{font-size:var(--font-size-base);margin-bottom:var(--space-xl)}.form-row{grid-template-columns:1fr;gap:var(--space-md)}.search-button{padding:var(--space-md) var(--space-xl);font-size:var(--font-size-base)}.month-grid{grid-template-columns:repeat(3,1fr)}.footer{padding:var(--space-md)}.noscript-warning{padding:var(--space-md);font-size:var(--font-size-sm)}.copyright,.footer-disclaimer{font-size:var(--font-size-xs)}.tour-card{flex-direction:column}.tour-image{width:100%;min-width:auto}.tour-image img{height:200px}}@media (max-width: 1024px){.app-content{flex-direction:column;gap:var(--space-xl);max-width:800px}.search-section,.tour-results{max-width:none}}@media (max-width: 480px){.hero-section{padding:var(--space-md)}.hero-content{padding:var(--space-lg) var(--space-md)}.hero-title{font-size:var(--font-size-3xl)}.results-header h2{font-size:var(--font-size-xl)}.results-header-icon{width:45px;height:45px;font-size:var(--font-size-base)}.hero-description{font-size:var(--font-size-base)}.month-grid{grid-template-columns:repeat(2,1fr)}.month-button{padding:var(--space-xs) var(--space-sm);font-size:var(--font-size-xs)}}.loading-spinner{display:flex;justify-content:center;align-items:center;padding:var(--space-2xl) 0}.spinner{width:40px;height:40px;border:3px solid rgba(102,126,234,.2);border-top:3px solid var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.modal-backdrop{position:fixed;inset:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;padding:20px}.modal-container{background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-width:500px;width:100%;max-height:80vh;overflow:hidden;animation:modalSlideIn .3s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e5e7eb;background-color:#f9fafb}.modal-title{margin:0;font-size:1.25rem;font-weight:600;color:#111827}.modal-close-button{background:none;border:none;font-size:1.5rem;color:#6b7280;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s ease;line-height:1;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.modal-close-button:hover{background-color:#e5e7eb;color:#374151}.modal-close-button:focus{outline:2px solid #3b82f6;outline-offset:2px}.modal-content{padding:24px;overflow-y:auto;max-height:calc(80vh - 80px)}@media (max-width: 640px){.modal-backdrop{padding:10px}.modal-container{max-height:90vh}.modal-header{padding:16px 20px}.modal-content{padding:20px}.modal-title{font-size:1.125rem}}
