:root{--color-bg: #f7f2eb;--color-bg-warm: #f0e8dd;--color-surface: #ffffff;--color-text: #2a1f17;--color-text-muted: #8a7e76;--color-text-light: #b5aa9e;--color-primary: #2d6b30;--color-primary-light: #3a8040;--color-primary-soft: #d4e8d0;--color-swiss-red: #c8302b;--color-swiss-red-dark: #a02824;--color-booked: #c4574a;--color-booked-bg: #fce8e3;--color-pending: #854f0b;--color-pending-bg: #faeeda;--color-pending-border: #d4a040;--color-selected: #2d6b30;--color-selected-bg: #d4e8d0;--color-range-bg: #e4f0e2;--color-past: #e8e4df;--color-error: #c8302b;--color-error-bg: #fce3e3;--color-border: #e0dbd5;--color-border-light: #ece8e2;--color-info-bg: #faf5ed;--color-info-border: #e8dcc8;--color-info-text: #6b5530;--radius: 10px;--radius-lg: 14px;--shadow-sm: 0 2px 8px rgba(42, 31, 23, .06);--shadow-md: 0 4px 16px rgba(42, 31, 23, .08);--shadow-lg: 0 8px 24px rgba(42, 31, 23, .12);--font-display: "Cormorant Garamond", Georgia, serif;--font-body: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--transition: .2s ease;--transition-fast: .15s ease;--transition-normal: .25s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);color:var(--color-text);background:linear-gradient(180deg,var(--color-bg) 0%,var(--color-bg-warm) 100%);background-attachment:fixed;line-height:1.6;min-height:100vh}.hero{position:relative;height:280px;overflow:hidden}.hero-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#2a1f1726,#2a1f1799)}.hero-content{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem}.hero h1{font-family:var(--font-display);font-size:2.5rem;font-weight:700;color:#fff;line-height:1.1;letter-spacing:.01em;text-shadow:0 2px 12px rgba(0,0,0,.3);margin-bottom:.25rem}.hero .tagline{font-family:var(--font-display);font-style:italic;font-size:1.125rem;color:#ffffffd9;text-shadow:0 1px 6px rgba(0,0,0,.2)}.flag-badge{display:inline-flex;align-items:center;gap:6px;background:#c8302be6;color:#fff;font-family:var(--font-body);font-size:.7rem;font-weight:600;padding:5px 14px;border-radius:999px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.75rem}.swiss-cross{width:16px;height:16px;position:relative;display:inline-block}.swiss-cross:before,.swiss-cross:after{content:"";position:absolute;background:#fff;border-radius:1px}.swiss-cross:before{width:12px;height:3.5px;top:6.25px;left:2px}.swiss-cross:after{width:3.5px;height:12px;top:2px;left:6.25px}.lang-selector{display:flex;gap:2px;background:#ffffff26;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border-radius:999px;padding:2px;position:absolute;top:1rem;right:1.5rem;z-index:3}.lang-btn{font-family:var(--font-body);font-size:.7rem;font-weight:600;letter-spacing:.05em;padding:4px 10px;border:none;border-radius:999px;background:transparent;color:#ffffffb3;cursor:pointer;transition:all var(--transition-fast)}.lang-btn:hover{color:#fffffff2}.lang-btn.active{background:#fff;color:var(--color-text)}.wood-body{position:relative;max-width:960px;margin:0 auto;padding:2rem 1rem 3rem}.wood-body:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:repeating-linear-gradient(90deg,#8b6f4e,#a08060,#7a5f3f,#9a7a55,#8b6f4e 8px)}.section-hero{text-align:center;margin-bottom:2rem}.section-hero-title{font-family:var(--font-display);font-size:1.75rem;font-weight:600;color:var(--color-text);margin-bottom:.25rem}.section-hero-season,.section-hero-subtitle{font-size:.9375rem;color:var(--color-text-muted)}.error-banner{display:flex;align-items:center;gap:.75rem;background:var(--color-error-bg);color:var(--color-error);padding:.875rem 1.25rem;border-radius:var(--radius);margin-bottom:1.5rem;font-size:.9375rem;font-weight:500;animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.error-icon{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border-radius:50%;background:var(--color-error);color:#fff;font-size:.8125rem;font-weight:700;flex-shrink:0}.selection-bar{display:flex;align-items:center;gap:1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1rem 1.5rem;margin-bottom:1.5rem;box-shadow:var(--shadow-sm)}.selection-date{flex:1}.selection-label{display:block;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:.125rem}.selection-value{font-size:.9375rem;font-weight:500;color:var(--color-text)}.selection-arrow{color:var(--color-text-light);font-size:1.25rem;flex-shrink:0}.nights-badge{display:inline-flex;align-items:center;background:var(--color-primary-soft);color:var(--color-primary);font-size:.8125rem;font-weight:600;padding:.25rem .75rem;border-radius:999px;flex-shrink:0}.calendar-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1rem;box-shadow:var(--shadow-sm);position:relative;overflow:hidden;margin-bottom:1.5rem}.calendar-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--color-swiss-red),#e04540,var(--color-swiss-red));border-radius:var(--radius-lg) var(--radius-lg) 0 0}.calendar-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;margin-bottom:1rem}.month-card{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius);padding:1.25rem;box-shadow:var(--shadow-sm)}.month-name{font-family:var(--font-display);font-size:1.25rem;font-weight:600;color:var(--color-text);text-align:center;margin-bottom:.75rem}.weekday-headers{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:.25rem}.weekday-header{text-align:center;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);padding:.25rem 0}.days-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.day-cell{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;aspect-ratio:1;border-radius:6px;font-size:.875rem;font-weight:500;cursor:default;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none}.day-cell--blank{cursor:default}.day-cell.selectable{color:var(--color-primary);font-weight:600;cursor:pointer;border-radius:6px}.day-cell.selectable:hover{background:var(--color-primary-soft);transform:scale(1.12);box-shadow:var(--shadow-sm)}.day-cell.selectable:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.day-cell.booked-confirmed{background:var(--color-booked-bg);color:var(--color-booked);cursor:not-allowed;border-radius:6px}.day-cell.booked-pending{background:repeating-linear-gradient(135deg,var(--color-pending-bg) 0px,var(--color-pending-bg) 2.5px,transparent 2.5px,transparent 5px);color:var(--color-pending);border:.5px dashed var(--color-pending-border);border-radius:6px;cursor:not-allowed}.day-cell.check-in,.day-cell.check-out{background:var(--color-primary)!important;color:#fff!important;font-weight:700;border-radius:6px;transform:scale(1.12);box-shadow:0 2px 8px #2d6b3059;z-index:2}.day-cell.in-range{background:var(--color-range-bg);color:var(--color-primary)}.day-cell.past{color:var(--color-text-light);opacity:.5;cursor:not-allowed}.day-cell.today{outline:2px solid var(--color-swiss-red);outline-offset:-2px}.day-number{position:relative;z-index:1}.booked-dot{display:block;width:4px;height:4px;border-radius:50%;background:var(--color-booked);position:absolute;bottom:4px}.booked-pending .booked-dot{background:#ef9f27}.legend{display:flex;flex-wrap:wrap;gap:1.25rem;justify-content:center;padding-top:.5rem;font-size:.8125rem;color:var(--color-text-muted)}.legend-item{display:flex;align-items:center;gap:.375rem}.legend-dot{display:inline-block;width:12px;height:12px;border-radius:4px}.legend-dot--selectable{background:var(--color-primary-soft);border:1px solid var(--color-primary)}.legend-dot--confirmed{background:var(--color-booked-bg);border:1px solid var(--color-booked)}.legend-dot--pending{background:repeating-linear-gradient(135deg,var(--color-pending-bg) 0px,var(--color-pending-bg) 2.5px,transparent 2.5px,transparent 5px);border:1px dashed var(--color-pending-border)}.legend-dot--today{background:var(--color-bg);border:2px solid var(--color-swiss-red)}.legend-dot--past{background:var(--color-past);border:1px solid var(--color-border)}.suggestion-banner{display:flex;align-items:center;gap:.75rem;background:var(--color-bg-warm);border:1px solid var(--color-border-light);border-radius:var(--radius);padding:1rem 1.25rem;margin-bottom:1.5rem;font-size:.9375rem;color:var(--color-text-muted)}.suggestion-icon{color:var(--color-swiss-red);font-size:1.25rem;flex-shrink:0}.loading-container{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:3rem 1rem}.spinner{width:2.5rem;height:2.5rem;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{font-size:.9375rem;color:var(--color-text-muted)}.reservation-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:2rem;margin-top:1.5rem;box-shadow:var(--shadow-md)}.reservation-title{font-family:var(--font-display);font-size:1.5rem;font-weight:600;color:var(--color-text);margin-bottom:.25rem}.reservation-dates{font-size:.9375rem;color:var(--color-text-muted);margin-bottom:1.25rem;display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.nights-badge--inline{font-size:.75rem}.pricing-banner{background:var(--color-info-bg);border:1px solid var(--color-info-border);border-radius:var(--radius);padding:.875rem 1.25rem;margin-bottom:1.5rem}.pricing-line{font-size:.9375rem;color:var(--color-info-text)}.pricing-line strong{color:var(--color-primary)}.pricing-line--small{font-size:.8125rem;color:var(--color-text-muted);margin-top:.125rem}.price-info{background:var(--color-info-bg);border:1px solid var(--color-info-border);border-radius:var(--radius);padding:.75rem 1rem;margin-bottom:1rem;font-size:.85rem;color:var(--color-info-text);display:flex;align-items:flex-start;gap:.75rem}.price-info-icon{width:22px;height:22px;background:var(--color-swiss-red);border-radius:4px;flex-shrink:0;position:relative}.price-info-icon:before,.price-info-icon:after{content:"";position:absolute;background:#fff;border-radius:.5px}.price-info-icon:before{width:10px;height:2.5px;top:9.75px;left:6px}.price-info-icon:after{width:2.5px;height:10px;top:6px;left:9.75px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.form-field{display:flex;flex-direction:column}.form-field--full{margin-bottom:1.5rem}.form-label{font-size:.8125rem;font-weight:600;color:var(--color-text);margin-bottom:.375rem}.required{color:var(--color-error)}.optional{font-weight:400;color:var(--color-text-light)}.form-input{font-family:var(--font-body);font-size:.9375rem;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:.625rem .875rem;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);width:100%}.form-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d6b301a}.form-input--error{border-color:var(--color-error)}.form-input--error:focus{box-shadow:0 0 0 3px #c8302b1a}.form-textarea{resize:vertical;min-height:5rem}.form-error{font-size:.75rem;color:var(--color-error);margin-top:.25rem}.form-actions{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:.5rem}.btn{font-family:var(--font-body);font-size:.9375rem;font-weight:600;padding:.75rem 1.5rem;border-radius:var(--radius);cursor:pointer;transition:all var(--transition-fast);border:none;display:inline-flex;align-items:center;gap:.5rem}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-light);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-accent{background:var(--color-swiss-red);color:#fff}.btn-accent:hover:not(:disabled){background:var(--color-swiss-red-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-ghost{background:transparent;color:var(--color-text-muted);border:1px solid var(--color-border)}.btn-ghost:hover:not(:disabled){background:var(--color-bg-warm);color:var(--color-text);border-color:var(--color-text-light)}.btn-spinner{display:inline-block;width:1rem;height:1rem;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.confirmation-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:2.5rem 2rem;text-align:center;box-shadow:var(--shadow-md)}.confirmation-icon{display:inline-flex;align-items:center;justify-content:center;width:3.5rem;height:3.5rem;border-radius:50%;background:var(--color-primary-soft);color:var(--color-primary);font-size:1.5rem;font-weight:700;margin-bottom:1rem}.confirmation-title{font-family:var(--font-display);font-size:1.75rem;font-weight:600;color:var(--color-text);margin-bottom:.25rem}.confirmation-subtitle{font-size:1rem;color:var(--color-text-muted);margin-bottom:1.5rem}.confirmation-details{background:var(--color-bg);border-radius:var(--radius);padding:1.25rem;margin-bottom:1.5rem;text-align:left;max-width:400px;margin-left:auto;margin-right:auto}.confirmation-row{display:flex;justify-content:space-between;padding:.375rem 0}.confirmation-row+.confirmation-row{border-top:1px solid var(--color-border-light)}.confirmation-label{font-size:.875rem;color:var(--color-text-muted)}.confirmation-value{font-size:.875rem;font-weight:500;color:var(--color-text)}.confirmation-note{font-size:.875rem;color:var(--color-text-muted);font-style:italic;margin-bottom:1.5rem;max-width:480px;margin-left:auto;margin-right:auto}.bring-reminder{background:var(--color-info-bg);border:1px solid var(--color-info-border);border-radius:var(--radius);padding:.75rem 1rem;margin-top:1rem;margin-bottom:1.5rem;font-size:.85rem;color:var(--color-info-text);text-align:left;max-width:480px;margin-left:auto;margin-right:auto}.bring-reminder strong{color:var(--color-text)}.footer{text-align:center;padding:2rem 1rem;border-top:1px solid var(--color-border-light);font-size:.875rem;color:var(--color-text-muted)}.footer p+p{margin-top:.25rem}.footer-brand{display:inline-flex;align-items:center;gap:6px;margin-bottom:.25rem}.footer-logo{font-family:var(--font-display);font-size:.9rem;font-weight:600;color:var(--color-text)}.swiss-cross-sm{width:12px;height:12px;position:relative;display:inline-block}.swiss-cross-sm:before,.swiss-cross-sm:after{content:"";position:absolute;background:var(--color-swiss-red);border-radius:.5px}.swiss-cross-sm:before{width:9px;height:2.5px;top:4.75px;left:1.5px}.swiss-cross-sm:after{width:2.5px;height:9px;top:1.5px;left:4.75px}.footer-link{color:var(--color-primary);text-decoration:none}.footer-link:hover{text-decoration:underline}@media (max-width: 640px){.hero{height:200px}.hero h1{font-size:28px}.hero .tagline{font-size:1rem}.flag-badge{font-size:.6rem;padding:4px 10px}.lang-selector{top:.75rem;right:.75rem}.lang-btn{font-size:.65rem;padding:3px 8px}.section-hero-title{font-size:1.375rem}.calendar-grid{grid-template-columns:1fr}.selection-bar{flex-direction:column;align-items:stretch;gap:.5rem;padding:1rem}.selection-arrow{text-align:center;transform:rotate(90deg);font-size:1rem}.nights-badge{align-self:center}.form-grid{grid-template-columns:1fr}.reservation-card{padding:1.5rem 1rem}.form-actions{flex-direction:column-reverse}.form-actions .btn{width:100%;justify-content:center}.confirmation-card{padding:2rem 1rem}}
