.rpc-calculator-wrap { max-width: 700px; margin: 0 auto; font-family: inherit; }
.rpc-calc-title { font-size: 22px; color: #2c3e50; margin-bottom: 20px; padding-bottom: 10px; border-bottom: 3px solid #2c3e50; }
.rpc-form { background: #f8f9fa; border-radius: 8px; padding: 25px; border: 1px solid #e0e0e0; }
.rpc-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }
.rpc-form-row-full { grid-template-columns: 1fr; }
.rpc-form-group { display: flex; flex-direction: column; }
.rpc-form-group label { font-size: 13px; font-weight: 600; color: #555; margin-bottom: 5px; text-transform: uppercase; letter-spacing: .3px; }
.rpc-form-group input, .rpc-form-group select, .rpc-form-group textarea { padding: 10px 14px; border: 1px solid #d0d0d0; border-radius: 5px; font-size: 15px; transition: border-color .2s; background: #fff; width: 100%; box-sizing: border-box; font-family: inherit; }
.rpc-form-group input:focus, .rpc-form-group select:focus, .rpc-form-group textarea:focus { border-color: #2c3e50; outline: none; box-shadow: 0 0 0 3px rgba(44,62,80,.1); }
.rpc-form-actions { margin-top: 8px; }
.rpc-btn { display: inline-block; padding: 12px 28px; border-radius: 5px; font-size: 15px; font-weight: 600; cursor: pointer; border: none; transition: background .2s, transform .1s; text-decoration: none; }
.rpc-btn:active { transform: scale(.98); }
.rpc-btn-primary { background: #2c3e50; color: #fff; }
.rpc-btn-primary:hover { background: #1a252f; color: #fff; }
.rpc-btn-success { background: #27ae60; color: #fff; margin-top: 5px; }
.rpc-btn-success:hover { background: #1e8449; }
.rpc-btn-secondary { background: #fff; color: #2c3e50; border: 2px solid #2c3e50; }
.rpc-btn-secondary:hover { background: #2c3e50; color: #fff; }
.rpc-btn-book { background: linear-gradient(135deg, #27ae60 0%, #229954 100%); color: #fff; box-shadow: 0 4px 12px rgba(39,174,96,.3); font-size: 16px; }
.rpc-btn-book:hover { background: linear-gradient(135deg, #229954 0%, #1e8449 100%); box-shadow: 0 6px 16px rgba(39,174,96,.4); }
.rpc-cta-row { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 5px; }
.rpc-cta-row .rpc-btn { flex: 1; min-width: 220px; padding: 14px 24px; }
@media (max-width: 520px) { .rpc-cta-row { flex-direction: column; } .rpc-cta-row .rpc-btn { width: 100%; } }
.rpc-result { background: #fff; border: 1px solid #d0d0d0; border-radius: 8px; padding: 25px; margin-top: 20px; }
.rpc-result h4 { margin: 0 0 15px; color: #2c3e50; font-size: 18px; }
.rpc-result-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; background: #f8f9fa; border-radius: 6px; padding: 15px; margin-bottom: 20px; font-size: 14px; }
.rpc-result-meta span { color: #666; }
.rpc-result-meta strong { display: block; color: #333; font-size: 15px; }
.rpc-result-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.rpc-result-table th { background: #2c3e50; color: #fff; text-align: left; padding: 10px 14px; font-size: 13px; text-transform: uppercase; letter-spacing: .3px; }
.rpc-result-table th:last-child, .rpc-result-table td:last-child { text-align: right; }
.rpc-result-table td { padding: 10px 14px; border-bottom: 1px solid #eee; }
.rpc-result-table tr:nth-child(even) td { background: #fafafa; }
.rpc-total-row td { background: #2c3e50 !important; color: #fff; font-weight: bold; font-size: 16px; padding: 13px 14px !important; }
.rpc-optional-title { margin: 25px 0 4px; font-size: 14px; color: #2c3e50; text-transform: uppercase; letter-spacing: .5px; }
.rpc-optional-note { margin: 0 0 10px; font-size: 12px; color: #888; }
.rpc-optional-table td { background: #fcfcfc; }
.rpc-quote-text { margin-top: 20px; padding: 15px 18px; background: #f8f9fa; border-left: 4px solid #2c3e50; border-radius: 0 6px 6px 0; font-size: 13px; line-height: 1.5; }
.rpc-quote-text p:first-child { margin-top: 0; }
.rpc-quote-text p:last-child { margin-bottom: 0; }
.rpc-form-hint { margin: -6px 0 14px; font-size: 12px; color: #666; font-style: italic; }
.rpc-send-section { margin-top: 15px; }
.rpc-send-note { font-size: 13px; color: #888; margin: 8px 0 0; }
.rpc-privacy { display: flex; align-items: flex-start; gap: 10px; font-size: 13px; color: #555; margin: 0 0 12px; line-height: 1.5; cursor: pointer; }
.rpc-privacy input[type="checkbox"] { margin-top: 3px; flex-shrink: 0; }
.rpc-privacy a { color: #2c3e50; text-decoration: underline; }
.rpc-msg { margin-top: 15px; padding: 12px 16px; border-radius: 5px; font-size: 14px; }
.rpc-msg.success { background: #d4edda; color: #155724; border: 1px solid #c3e6cb; }
.rpc-msg.error { background: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; }
.rpc-price-table-wrap { overflow-x: auto; margin: 20px 0; }
.rpc-front-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.rpc-front-table thead th { background: #2c3e50; color: #fff; padding: 12px 16px; text-align: left; }
.rpc-front-table tbody tr:nth-child(even) { background: #f9f9f9; }
.rpc-front-table tbody td { padding: 10px 16px; border-bottom: 1px solid #eee; }
.rpc-loading { display: inline-block; width: 18px; height: 18px; border: 2px solid rgba(255,255,255,.4); border-top-color: #fff; border-radius: 50%; animation: rpc-spin .7s linear infinite; vertical-align: middle; margin-right: 8px; }
@keyframes rpc-spin { to { transform: rotate(360deg); } }
@media (max-width: 600px) { .rpc-form-row { grid-template-columns: 1fr; } .rpc-result-meta { grid-template-columns: 1fr; } }

/* ─── Flatpickr: Saturday-only datepicker ─── */
.flatpickr-calendar { font-family: inherit; border-radius: 8px; box-shadow: 0 8px 28px rgba(0,0,0,0.16); border: 1px solid #d0d0d0; }
.flatpickr-months { background: #2c3e50; border-radius: 8px 8px 0 0; padding: 4px 0; }
.flatpickr-months .flatpickr-month, .flatpickr-current-month, .flatpickr-current-month .cur-month,
.flatpickr-current-month input.cur-year, .flatpickr-months .flatpickr-prev-month, .flatpickr-months .flatpickr-next-month { color: #fff; fill: #fff; }
.flatpickr-months .flatpickr-prev-month:hover svg, .flatpickr-months .flatpickr-next-month:hover svg { fill: #27ae60; }
.flatpickr-weekdays { background: #3d5166; }
span.flatpickr-weekday { color: #a8bec8; font-size: 11px; font-weight: 600; text-transform: uppercase; }
/* Non-Saturday: greyed out, strikethrough */
.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover { color: #bbb !important; background: transparent !important; border-color: transparent !important; cursor: not-allowed !important; text-decoration: line-through; opacity: 0.38; pointer-events: none; }
/* Saturday available: green highlight */
.flatpickr-day:not(.flatpickr-disabled):not(.selected):not(.startRange):not(.endRange) { color: #155724; font-weight: 700; background: #e9f7ef; border-color: #a9d9bb; }
.flatpickr-day:not(.flatpickr-disabled):not(.selected):not(.startRange):not(.endRange):hover { background: #c3ebcf; border-color: #27ae60; color: #0d3d1e; }
/* Selected Saturday: solid green */
.flatpickr-day.selected, .flatpickr-day.selected:hover { background: #27ae60 !important; border-color: #219a52 !important; color: #fff !important; font-weight: 700; }
/* Today indicator */
.flatpickr-day.today:not(.selected) { border-bottom: 2px solid #27ae60; }
/* Input field with calendar icon */
.rpc-form-group input.flatpickr-input[readonly] { cursor: pointer; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; padding-right: 38px; }
