/* HVNLY Schedule Showing — popup. Colours follow the site's brand variables when present (--ki-color-accent-deep / --ki-color-accent), otherwise neutral green defaults; override --hss-accent / --hss-accent-2 in the theme to rebrand. */
.hss-modal{--hss-accent:var(--ki-color-accent-deep,#146131);--hss-accent-2:var(--ki-color-accent,#7cb8ae);--hss-ink:#1a1a1a;position:fixed;inset:0;z-index:1000002;display:none;font-family:inherit}
.hss-modal.is-open{display:block}
.hss-lock{overflow:hidden}
.hss-overlay{position:absolute;inset:0;background:rgba(10,20,15,.62);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.hss-dialog{position:relative;width:min(640px,calc(100vw - 24px));max-height:calc(100vh - 32px);overflow:auto;margin:16px auto;background:#fff;padding:34px 34px 30px;box-sizing:border-box;border-radius:28px;box-shadow:0 30px 80px rgba(0,0,0,.35)}
.hss-close{position:absolute;right:16px;top:14px;width:40px;height:40px;border:0;border-radius:50%;background:transparent;font-size:28px;line-height:1;font-weight:300;cursor:pointer;color:#555;transition:background-color .3s linear,color .3s linear}
.hss-close:hover{background:var(--hss-accent-2);color:#0f1412}
.hss-dialog h2{font-family:inherit;font-size:1.7rem;font-weight:300;letter-spacing:.01em;text-transform:uppercase;color:var(--hss-ink);margin:0 44px 18px 0;line-height:1.15}
.hss-agent-indicator{margin:-6px 0 18px;font-size:12px;letter-spacing:.02em;color:#555}
.hss-label{margin:18px 0 10px;font-size:.68rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--hss-accent)}
.hss-datewrap{display:flex;align-items:center;gap:8px}
.hss-arrow{flex:none;width:36px;height:36px;border:1px solid #d6d6d6;border-radius:50%;background:#fff;color:#333;cursor:pointer;font-size:16px;line-height:1;transition:background-color .3s linear,color .3s linear,border-color .3s linear}
.hss-arrow:hover{background:var(--hss-accent-2);border-color:var(--hss-accent-2);color:#0f1412}
.hss-strip{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x proximity;padding:4px 2px 8px;flex:1;min-width:0;scrollbar-width:thin;scrollbar-color:var(--hss-accent-2) transparent}
.hss-chip{flex:none;border:1px solid #d9d9d9;border-radius:16px;background:#fff;color:#444;cursor:pointer;font-family:inherit;transition:background-color .25s linear,color .25s linear,border-color .25s linear,transform .25s ease}
.hss-chip--date{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:68px;padding:10px 8px;scroll-snap-align:start}
.hss-chip--date span{font-size:.62rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#888}
.hss-chip--date strong{font-size:.86rem;font-weight:600;white-space:nowrap}
.hss-chip--date.is-month-start{margin-left:8px;box-shadow:-8px 0 0 -7px var(--hss-accent-2)}
.hss-chip--time{padding:10px 16px;font-size:.8rem;font-weight:600;border-radius:999px}
.hss-chip:hover:not(:disabled){border-color:var(--hss-accent-2);transform:translateY(-2px)}
.hss-chip.is-selected{background:var(--hss-accent);border-color:var(--hss-accent);color:#fff}
.hss-chip.is-selected span{color:rgba(255,255,255,.75)}
.hss-chip:disabled,.hss-chip.is-off{opacity:.35;cursor:not-allowed;transform:none}
.hss-times{display:flex;flex-wrap:wrap;gap:8px}
.hss-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px;margin-top:22px}
.hss-grid label{font-size:.7rem;font-weight:600;letter-spacing:.06em;color:#333}
.hss-grid label small{font-weight:400;color:#888;letter-spacing:0}
.hss-grid input,.hss-grid textarea{display:block;width:100%;box-sizing:border-box;border:0;border-bottom:1px solid #bdbdbd;border-radius:0;padding:10px 0;margin-top:2px;font:inherit;font-size:.95rem;background:transparent;color:var(--hss-ink);transition:border-color .3s linear}
.hss-grid input:focus,.hss-grid textarea:focus{outline:none;border-bottom-color:var(--hss-accent);box-shadow:0 1px 0 0 var(--hss-accent)}
.hss-wide{grid-column:1/-1}
.hss-hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.hss-note{margin:18px 0 0;font-size:.74rem;line-height:1.6;color:#666}
.hss-send{display:block;width:100%;margin-top:18px;padding:16px;border:0;border-radius:999px;background:var(--hss-accent);color:#fff;text-transform:uppercase;letter-spacing:.14em;font:inherit;font-size:.78rem;font-weight:600;cursor:pointer;transition:background-color .3s linear,color .3s linear}
.hss-send:hover:not(:disabled){background:var(--hss-accent-2);color:#0f1412}
.hss-send:disabled{opacity:.55;cursor:wait}
.hss-status{margin:16px 0 0;padding:12px 18px;border:2px solid #cfcfcf;border-radius:999px;font-size:.84rem;line-height:1.4;text-align:center;color:#555}
.hss-status:empty{display:none}
.hss-status.is-ok{border-color:#1e8e3e;background:#eaf7ee;color:#146131;font-weight:600}
.hss-status.is-error{border-color:#c62828;background:#fdecea;color:#b3261e;font-weight:600}
@media(max-width:650px){.hss-dialog{padding:24px 18px 22px;border-radius:22px}.hss-grid{grid-template-columns:1fr}.hss-dialog h2{font-size:1.35rem}.hss-arrow{display:none}}
@media(prefers-reduced-motion:reduce){.hss-chip,.hss-send,.hss-close,.hss-arrow{transition:none}}

/* ---- Theme-proof controls (themes style every button/input; these win on specificity) ---- */
.hss-modal button.hss-close,.hss-modal button.hss-arrow{display:flex!important;align-items:center;justify-content:center;padding:0!important;margin:0;line-height:1;text-transform:none;letter-spacing:0;min-width:0;min-height:0;box-sizing:border-box}
.hss-modal button.hss-close{position:absolute;right:16px;top:14px;width:42px!important;height:42px!important;border:0!important;border-radius:50%!important;background:transparent!important;color:#555!important;box-shadow:none!important}
.hss-modal button.hss-close:hover{background:var(--hss-accent-2)!important;color:#0f1412!important}
.hss-modal button.hss-arrow{flex:none;width:40px!important;height:40px!important;border:0!important;border-radius:50%!important;background:#fff!important;color:#333!important;box-shadow:0 4px 14px rgba(0,0,0,.18)!important;transition:background-color .3s linear,color .3s linear,box-shadow .3s ease}
.hss-modal button.hss-arrow:hover{background:var(--hss-accent-2)!important;color:#0f1412!important;box-shadow:0 6px 18px rgba(0,0,0,.24)!important}
.hss-modal .hss-arrow svg,.hss-modal .hss-close svg{display:block;flex:none}
/* One look for all four fields: rounded, outlined (message box has softer corners). */
.hss-modal .hss-grid input,.hss-modal .hss-grid input[type=text],.hss-modal .hss-grid input[type=tel],.hss-modal .hss-grid input[type=email],.hss-modal .hss-grid textarea{display:block;width:100%;height:auto;min-height:0;box-sizing:border-box;margin:6px 0 0;padding:12px 20px!important;border:1px solid #d3d3d3!important;border-radius:999px!important;background:#fff!important;box-shadow:none!important;font:inherit;font-size:.95rem;line-height:1.4;color:var(--hss-ink);-webkit-appearance:none;appearance:none;outline:0;transition:border-color .3s linear,box-shadow .3s ease}
.hss-modal .hss-grid textarea{border-radius:24px!important;resize:vertical;min-height:84px}
.hss-modal .hss-grid input:focus,.hss-modal .hss-grid textarea:focus{border-color:var(--hss-accent)!important;box-shadow:0 0 0 3px rgba(124,184,174,.35)!important}
/* Phones: size to the visible screen (not the browser-bar-inclusive 100vh) so the last button is never cut off */
.hss-dialog{max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overscroll-behavior:contain}
@media(max-width:650px){.hss-dialog{margin:12px auto;max-height:calc(100dvh - 24px);padding-bottom:26px}}
