/* NTE Availability Checker 1.3 — date popup. Every rule is scoped to .ntea-* and resets what themes like to
   restyle (button/a/h2), so the theme cannot grey out labels etc. Font is inherited from the site. */
html.ntea-locked, html.ntea-locked body { overflow: hidden !important; }
html.ntea-locked body { position: fixed; left: 0; right: 0; width: 100%; }

.ntea-root, .ntea-root * { box-sizing: border-box; }
.ntea-root button, .ntea-root a, .ntea-root h2, .ntea-root p { all: unset; box-sizing: border-box; }
.ntea-root button, .ntea-root a { cursor: pointer; }
.ntea-root button:focus-visible, .ntea-root a:focus-visible { outline: 2px solid #1a73e8; outline-offset: 2px; }

.ntea-overlay { position: fixed; inset: 0; z-index: 100000; background: rgba(0, 0, 0, .6); display: flex; align-items: center; justify-content: center; padding: 0; opacity: 0; transition: opacity .15s ease; }
.ntea-overlay.is-open { opacity: 1; }
.ntea-dialog { width: 420px; max-width: 100%; max-height: 100%; overflow: auto; border-radius: 6px; box-shadow: 0 12px 40px rgba(0, 0, 0, .4); }

.ntea-cal { background: #fff; color: #222; font-family: inherit; font-size: 15px; line-height: 1.5; text-align: left; overflow: hidden; }
.ntea-inline .ntea-cal { max-width: 420px; border: 1px solid #e5e5e5; border-radius: 6px; }

.ntea-head { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px 12px; }
.ntea-root .ntea-title { display: block; margin: 0; font-family: inherit; font-size: 17px; font-weight: 700; letter-spacing: .02em; color: #222; line-height: 1.4; text-transform: none; }
.ntea-root .ntea-x { font-family: inherit; font-size: 24px; line-height: 1; color: #444; width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; margin-right: -6px; border-radius: 50%; }
.ntea-root .ntea-x:hover { background: #f0f0f0; }

.ntea-bar { background: #111; color: #fff; display: flex; align-items: center; justify-content: space-between; padding: 12px 14px; }
.ntea-month { color: #fff !important; opacity: 1 !important; font-family: inherit; font-size: 16px; letter-spacing: .08em; text-transform: uppercase; }
.ntea-root .ntea-nav { color: #fff; font-family: inherit; font-size: 22px; line-height: 1; width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; }
.ntea-root .ntea-nav:disabled { opacity: .25; cursor: default; }

.ntea-grid { padding: 10px 14px 6px; }
.ntea-row { display: grid; grid-template-columns: repeat(7, 1fr); text-align: center; }
.ntea-wd { font-size: 12px; color: #777; padding: 6px 0; letter-spacing: .05em; }
.ntea-cell { display: flex; justify-content: center; }
.ntea-root .ntea-day { margin: 3px auto; width: 40px; height: 40px; line-height: 40px; border-radius: 50%; font-family: inherit; font-size: 15px; color: #222; text-align: center; display: block; }
.ntea-root .ntea-day:hover { background: #eee; }
.ntea-root .ntea-day.is-off, .ntea-root .ntea-day:disabled { color: #c8c8c8; cursor: default; text-decoration: line-through; text-decoration-color: #ddd; background: none; }
.ntea-root .ntea-day.is-sel { background: #111; color: #fff; }

.ntea-status { min-height: 64px; margin: 4px 20px 0; padding: 12px 0; border-top: 1px solid #eee; font-size: 15px; text-align: center; color: #222; }
.ntea-root .ntea-msg { display: inline; }
.ntea-status.is-available .ntea-msg { color: #14692c; font-weight: 700; }
.ntea-status.is-unavailable .ntea-msg { color: #a3121b; }
.ntea-status.is-error .ntea-msg { color: #a3121b; }
.ntea-spin { display: inline-block; width: 16px; height: 16px; border: 2px solid #ccc; border-top-color: #111; border-radius: 50%; vertical-align: -3px; margin-right: 8px; animation: ntea-spin 1s linear infinite; }
@keyframes ntea-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .ntea-spin { animation-duration: 3s; } .ntea-overlay { transition: none; } }
.ntea-root .ntea-cta { display: block; margin: 10px auto 0; padding: 12px 28px; background: #25d366; color: #383838; border-radius: 30px; font-family: inherit; font-weight: 700; font-size: 15px; text-decoration: none; width: max-content; max-width: 100%; }
.ntea-root .ntea-cta:hover { background: #1fbe5b; }
.ntea-root .ntea-other { display: block; margin: 10px auto 0; padding: 10px 24px; background: #fff; color: #111; border: 1.5px solid #111; border-radius: 30px; font-family: inherit; font-weight: 700; font-size: 14px; text-decoration: none; width: max-content; max-width: 100%; box-sizing: border-box; cursor: pointer; }
.ntea-root .ntea-other:hover { background: #111; color: #fff; }
.ntea-root .ntea-cta:focus-visible, .ntea-root .ntea-other:focus-visible { outline: 2px solid #111; outline-offset: 3px; }
.ntea-root .ntea-direct { display: block; margin: 8px auto 0; width: max-content; color: #222; text-decoration: underline; font-size: 14px; }

.ntea-foot { display: flex; justify-content: space-between; align-items: center; gap: 10px; background: #f5f5f3; padding: 12px 20px; font-size: 12px; color: #666; }
.ntea-root .ntea-nodate { color: #222; text-decoration: underline; white-space: nowrap; }

@media (max-width: 767px) {
	.ntea-overlay { align-items: flex-end; }
	.ntea-dialog { width: 100%; border-radius: 14px 14px 0 0; max-height: 92vh; }
	.ntea-root .ntea-day { width: 44px; height: 44px; line-height: 44px; }
	.ntea-foot { padding-bottom: 20px; padding-bottom: max(20px, env(safe-area-inset-bottom)); font-size: 11.5px; }
}

/* Floating "Contact" pill (smartphones only) */
.ntea-fab { position: fixed; left: 14px; bottom: 14px; bottom: max(14px, env(safe-area-inset-bottom)); z-index: 9990; background: #25d366; color: #383838 !important; font-family: inherit; font-weight: 700; font-size: 16px; line-height: 1.5; padding: 12px 22px; border-radius: 30px; text-decoration: none !important; box-shadow: 0 4px 14px rgba(0, 0, 0, .3); }
@media (min-width: 768px) { .ntea-fab { display: none !important; } }
html.ntea-locked .ntea-fab { display: none; }

/* Nav / compact shortcode button (opens the popup) */
.ntea-open { cursor: pointer; }
