:root{--today:#e8a838;--selected:#7a5230;--range:#f0e6da}.page-calendar{min-height:100vh}.page-calendar .header-back{color:var(--grey);align-items:center;gap:6px;font-size:.85rem;transition:color .2s;display:flex}.page-calendar .header-back:before{content:"←"}.page-calendar .header-back:hover{color:var(--brown)}.page-calendar .steps-bar{background:var(--warm);border-bottom:1px solid var(--border);justify-content:center;align-items:center;gap:0;padding:16px 6%;display:flex}.page-calendar .step-item{color:var(--grey);align-items:center;gap:8px;font-size:.8rem;display:flex}.page-calendar .step-item.active{color:var(--brown-dark);font-weight:700}.page-calendar .step-item.done{color:var(--brown-light)}.page-calendar .step-dot{border:2px solid var(--border);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:.7rem;font-weight:700;display:flex}.page-calendar .step-item.active .step-dot{background:var(--brown);border-color:var(--brown);color:#fff}.page-calendar .step-item.done .step-dot{background:var(--brown-light);border-color:var(--brown-light);color:#fff}.page-calendar .step-sep{background:var(--border);width:48px;height:1px;margin:0 4px}.page-calendar .cal-main{max-width:780px;margin:0 auto;padding:40px 24px 80px}.page-calendar .page-heading{margin-bottom:32px}.page-calendar .page-heading h1{font-family:var(--font-display);color:var(--brown-dark);margin-bottom:6px;font-size:1.7rem;font-weight:800}.page-calendar .page-heading p{color:var(--grey);font-size:.875rem}.page-calendar .selection-bar{border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;grid-template-columns:1fr auto 1fr;align-items:center;gap:0;margin-bottom:24px;padding:20px 24px;display:grid}.page-calendar .sel-block{padding:0 16px}.page-calendar .sel-block:first-child{padding-left:0}.page-calendar .sel-block:last-child{padding-right:0}.page-calendar .sel-label{letter-spacing:.08em;text-transform:uppercase;color:var(--brown);margin-bottom:4px;font-size:.7rem;font-weight:700}.page-calendar .sel-date{font-family:var(--font-display);color:var(--brown-dark);min-height:1.5em;margin-bottom:8px;font-size:1.1rem;font-weight:700}.page-calendar .sel-date.placeholder{color:var(--brown-light);font-weight:400}.page-calendar .sel-time select{border:1px solid var(--border);color:var(--ink);background:var(--warm);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%237a7470'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;border-radius:8px;padding:7px 28px 7px 10px;font-family:inherit;font-size:.875rem;transition:border-color .2s}.page-calendar .sel-time select:focus{border-color:var(--brown);outline:none}.page-calendar .sel-arrow{color:var(--border);padding:0 4px;font-size:1.2rem}.page-calendar .sel-duration{color:var(--honey);min-height:1.2em;margin-top:4px;font-size:.75rem;font-weight:600}.page-calendar .cal-card{border:1px solid var(--border);border-radius:var(--radius);background:#fff;margin-bottom:24px;overflow:hidden}.page-calendar .cal-nav{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.page-calendar .cal-nav-btn{border:1px solid var(--border);cursor:pointer;width:36px;height:36px;color:var(--grey);background:0 0;border-radius:50%;justify-content:center;align-items:center;font-size:1rem;transition:background .2s,color .2s;display:flex}.page-calendar .cal-nav-btn:hover{background:var(--warm);color:var(--brown-dark)}.page-calendar .cal-month-label{font-family:var(--font-display);color:var(--brown-dark);font-size:1.05rem;font-weight:700}.page-calendar .cal-grid{grid-template-columns:repeat(7,1fr);align-content:start;gap:2px;min-height:340px;padding:0 16px 20px;display:grid}.page-calendar .cal-dow{text-align:center;color:var(--grey);padding:14px 0 8px;font-size:.72rem;font-weight:700}.page-calendar .cal-dow.sun{color:#c0392b}.page-calendar .cal-dow.sat{color:#2980b9}.page-calendar .cal-day{text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;padding:6px 4px;transition:background .15s;position:relative}.page-calendar .cal-day.empty{cursor:default}.page-calendar .cal-day.disabled{cursor:not-allowed;opacity:.35}.page-calendar .cal-day.booked{cursor:not-allowed;background:repeating-linear-gradient(-45deg,#0000,#0000 4px,#c8505012 4px 8px)}.page-calendar .cal-day.booked .day-num{color:#ccc;text-decoration:line-through}.page-calendar .cal-day:not(.disabled):not(.booked):not(.empty):hover{background:var(--warm)}.page-calendar .day-num{border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:.875rem;font-weight:500;display:inline-flex}.page-calendar .cal-day.sun .day-num{color:#c0392b}.page-calendar .cal-day.sat .day-num{color:#2980b9}.page-calendar .cal-day.today .day-num{border:2px solid var(--today);color:var(--today);font-weight:700}.page-calendar .cal-day.selected .day-num{background:var(--selected);color:#fff;font-weight:700}.page-calendar .cal-day.selected.today .day-num{border-color:#0000}.page-calendar .cal-day.in-range{background:var(--range);border-radius:0}.page-calendar .cal-day.range-start{background:linear-gradient(to right, transparent 50%, var(--range) 50%);border-radius:0}.page-calendar .cal-day.range-end{background:linear-gradient(to left, transparent 50%, var(--range) 50%);border-radius:0}.page-calendar .cal-day.range-start .day-num,.page-calendar .cal-day.range-end .day-num{background:var(--selected);color:#fff;font-weight:700}.page-calendar .cal-day.range-start.range-end{background:0 0;border-radius:8px}.page-calendar .cal-day.hover-range{background:#f9f0e6;border-radius:0}.page-calendar .cal-day.hover-end .day-num{background:var(--brown-light);color:#fff}.page-calendar .cal-legend{border-top:1px solid var(--border);flex-wrap:wrap;gap:20px;padding:14px 24px;display:flex}.page-calendar .legend-item{color:var(--grey);align-items:center;gap:8px;font-size:.75rem;display:flex}.page-calendar .legend-swatch{border-radius:50%;flex-shrink:0;width:20px;height:20px}.page-calendar .legend-today{border:2px solid var(--today);background:0 0}.page-calendar .legend-selected{background:var(--selected)}.page-calendar .legend-range{background:var(--range);border-radius:4px;width:28px;height:12px}.page-calendar .proceed-area{text-align:center}.page-calendar .proceed-btn-row{justify-content:center;align-items:center;gap:16px;display:flex}.page-calendar .btn-back{color:var(--brown);border:2px solid var(--border);font-size:1rem;font-weight:700;font-family:var(--font-body);background:0 0;border-radius:36px;padding:16px 32px;text-decoration:none;transition:background .2s,border-color .2s;display:inline-block}.page-calendar .btn-back:hover{background:var(--border)}.page-calendar .btn-proceed{background:var(--border);color:var(--grey);cursor:not-allowed;font-size:1rem;font-weight:700;font-family:var(--font-body);border:none;border-radius:36px;padding:16px 56px;transition:background .2s,color .2s,transform .15s;display:inline-block}.page-calendar .btn-proceed.active{background:var(--brown);color:#fff;cursor:pointer}.page-calendar .btn-proceed.active:hover{background:var(--brown-dark);transform:translateY(-1px)}.page-calendar .proceed-hint{color:var(--grey);margin-top:12px;font-size:.78rem}.page-calendar footer{padding:28px 6%;font-size:.78rem}.page-calendar .footer-logo{margin-bottom:6px;font-size:1rem}@media (max-width:600px){.page-calendar .cal-main{padding:24px 16px 60px}.page-calendar .selection-bar{grid-template-columns:1fr;gap:16px}.page-calendar .sel-block{padding:0}.page-calendar .sel-arrow{display:none}.page-calendar .cal-grid{gap:1px;padding:0 8px 16px}.page-calendar .cal-day{padding:4px 2px}.page-calendar .day-num{width:36px;height:36px;font-size:.85rem}.page-calendar .cal-nav-btn{width:44px;height:44px}.page-calendar .cal-legend{gap:12px}.page-calendar .btn-proceed{border-radius:32px;width:100%;padding:16px;display:block}.page-calendar .proceed-btn-row{gap:10px}.page-calendar .btn-back{flex-shrink:0;padding:16px 20px}.page-calendar .steps-bar{gap:0;padding:12px 4%}.page-calendar .step-sep{width:24px}.page-calendar .lang-switch{align-items:center;min-height:44px;padding:10px 14px;display:inline-flex}}
