/* NCP Enquiry & Booking Popup — matched to newchapterplace.co.ke (Neve FSE)
   Lime #94C400 · Forest #365E1C · Light grey #EFEFEF · Ink #1F2023 · Figtree */
.ncp-overlay, .ncp-float, .ncp-btn {
	--ncp-lime: #94c400;
	--ncp-forest: #365e1c;
	--ncp-cream: #efefef;
	--ncp-ink: #1f2023;
	--ncp-line: #ddd;
	--ncp-body: var(--wp--preset--font-family--figtree, "Figtree", system-ui, sans-serif);
	--ncp-head: var(--wp--preset--font-family--figtree, "Figtree", system-ui, -apple-system, "Segoe UI", Arial, sans-serif);
	font-family: var(--ncp-body);
}

/* Floating button */
.ncp-float {
	position: fixed; bottom: 20px; z-index: 999;
	display: inline-flex; align-items: center; gap: 8px;
	background: var(--ncp-forest); color: #fff; border: 0; cursor: pointer;
	padding: 13px 22px; border-radius: 9999px;
	font: 600 15px/1 var(--ncp-body);
	box-shadow: 0 4px 14px rgba(0,0,0,.22);
	transition: transform .25s ease, background .25s ease;
}
.ncp-float.ncp-pos-left { left: 20px; }
.ncp-float.ncp-pos-right { right: 90px; }
.ncp-float:hover { background: var(--ncp-lime); color: var(--ncp-ink); transform: translateY(-2px); }

/* Shortcode button */
.ncp-btn {
	display: inline-block; background: var(--ncp-lime); color: var(--ncp-ink);
	padding: 14px 28px; border-radius: 9999px; text-decoration: none;
	font: 600 16px/1.2 var(--ncp-body); transition: background .25s, color .25s;
}
.ncp-btn:hover { background: var(--ncp-forest); color: #fff; }

/* Overlay + modal */
.ncp-overlay {
	position: fixed; inset: 0; z-index: 100000; background: rgba(20,23,28,.62);
	display: flex; align-items: center; justify-content: center; padding: 16px;
	opacity: 0; transition: opacity .3s ease; overflow-y: auto;
}
.ncp-overlay[hidden] { display: none; }
.ncp-overlay.is-open { opacity: 1; }
.ncp-modal {
	position: relative; width: 100%; max-width: 620px; max-height: calc(100vh - 32px); overflow-y: auto;
	background: #fff; color: var(--ncp-ink); border-radius: 14px; outline: 0;
	box-shadow: 0 20px 50px rgba(0,0,0,.3);
	transform: translateY(24px); transition: transform .35s ease;
}
.ncp-overlay.is-open .ncp-modal { transform: none; }
.ncp-close {
	position: absolute; top: 10px; right: 12px; width: 36px; height: 36px; border: 0; border-radius: 50%;
	background: transparent; color: var(--ncp-forest); font-size: 28px; line-height: 1; cursor: pointer;
}
.ncp-close:hover { background: var(--ncp-cream); }

.ncp-head { padding: 28px 32px 8px; }
.ncp-head h2 {
	margin: 0 40px 8px 0; font: 700 clamp(26px, 4vw, 34px)/1.15 var(--ncp-head); color: var(--ncp-forest);
}
.ncp-head p { margin: 0; font-size: 15px; line-height: 1.55; color: #4a4d52; }

/* Tabs */
.ncp-tabs { display: flex; gap: 8px; padding: 16px 32px 0; }
.ncp-tab {
	flex: 1; padding: 11px 12px; border: 1.5px solid var(--ncp-line); border-radius: 9999px;
	background: #fff; color: var(--ncp-ink); font: 600 14px/1 var(--ncp-body); cursor: pointer;
	transition: all .2s;
}
.ncp-tab:hover { border-color: var(--ncp-lime); }
.ncp-tab.is-active { background: var(--ncp-forest); border-color: var(--ncp-forest); color: #fff; }

/* Form */
.ncp-form { padding: 18px 32px 28px; }
.ncp-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.ncp-full { grid-column: 1 / -1; }
.ncp-field label { display: block; margin-bottom: 5px; font-size: 13px; font-weight: 600; color: var(--ncp-forest); }
.ncp-field input, .ncp-field select, .ncp-field textarea {
	width: 100%; box-sizing: border-box; padding: 11px 13px; font: 400 15px/1.4 var(--ncp-body);
	color: var(--ncp-ink); background: var(--ncp-cream); border: 1.5px solid transparent; border-radius: 8px;
	transition: border-color .2s, background .2s;
}
.ncp-field textarea { resize: vertical; }
.ncp-field input:focus, .ncp-field select:focus, .ncp-field textarea:focus {
	outline: 0; background: #fff; border-color: var(--ncp-lime); box-shadow: 0 0 0 3px rgba(148,196,0,.25);
}
.ncp-field .is-invalid { border-color: #cf2e2e; background: #fff6f6; }
.ncp-booking-only { display: none; }
.ncp-form.is-booking .ncp-booking-only { display: block; }
.ncp-hp { position: absolute; left: -9999px; height: 0; overflow: hidden; }

.ncp-check { display: flex; gap: 10px; align-items: flex-start; margin: 16px 0 4px; font-size: 13px; line-height: 1.45; color: #4a4d52; cursor: pointer; }
.ncp-check input { margin-top: 3px; accent-color: var(--ncp-forest); }
.ncp-error { margin: 10px 0 0; padding: 10px 12px; border-radius: 8px; background: #fdecec; color: #a11d1d; font-size: 14px; }
.ncp-error[hidden] { display: none; }

.ncp-submit {
	display: block; width: 100%; margin-top: 16px; padding: 15px 24px; border: 0; border-radius: 9999px; cursor: pointer;
	background: var(--ncp-lime); color: var(--ncp-ink); font: 700 16px/1 var(--ncp-body);
	transition: background .25s, color .25s;
}
.ncp-submit:hover { background: var(--ncp-forest); color: #fff; }
.ncp-submit:disabled { opacity: .65; cursor: wait; }
.ncp-alt { margin: 14px 0 0; text-align: center; font-size: 13px; color: #666; }
.ncp-alt a { color: var(--ncp-forest); font-weight: 600; text-decoration: none; }
.ncp-alt a:hover { text-decoration: underline; }

/* Success */
.ncp-success { padding: 48px 32px 36px; text-align: center; }
.ncp-success[hidden] { display: none; }
.ncp-tick {
	width: 64px; height: 64px; margin: 0 auto 16px; border-radius: 50%; background: var(--ncp-lime);
	color: var(--ncp-forest); font-size: 34px; line-height: 64px; font-weight: 700;
}
.ncp-success h3 { margin: 0 0 8px; font: 600 28px/1.2 var(--ncp-head); color: var(--ncp-forest); }
.ncp-success p { margin: 0 0 8px; color: #4a4d52; line-height: 1.55; }

body.ncp-lock { overflow: hidden; }

@media (max-width: 560px) {
	.ncp-grid { grid-template-columns: 1fr; }
	.ncp-head, .ncp-tabs, .ncp-form { padding-left: 20px; padding-right: 20px; }
	.ncp-float span { display: none; }
	.ncp-float { padding: 14px; }
}
@media (prefers-reduced-motion: reduce) {
	.ncp-overlay, .ncp-modal, .ncp-float { transition: none; }
}

.ncp-modal [hidden] { display: none !important; }
.ncp-wa { background: #25d366; color: #fff; text-align: center; text-decoration: none; }
.ncp-wa:hover { background: #1da851; color: #fff; }
.ncp-success .ncp-close-2 { background: transparent; color: var(--ncp-forest); }

.ncp-sr { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.ncp-field select:invalid, .ncp-field select.is-empty { color: #757575; }
.ncp-field input::placeholder, .ncp-field textarea::placeholder { color: #757575; opacity: 1; }

/* Ringing phone icon + attention pulse */
.ncp-float { animation: ncp-pulse 2.4s infinite; }
.ncp-float:hover { animation-play-state: paused; }
.ncp-ring { transform-origin: 50% 50%; animation: ncp-ring 2.4s ease-in-out infinite; }
@keyframes ncp-ring {
	0%, 45%, 100% { transform: rotate(0); }
	5%, 15%, 25%, 35% { transform: rotate(-18deg); }
	10%, 20%, 30%, 40% { transform: rotate(18deg); }
}
@keyframes ncp-pulse {
	0% { box-shadow: 0 4px 14px rgba(0,0,0,.22), 0 0 0 0 rgba(54,94,28,.55); }
	70%, 100% { box-shadow: 0 4px 14px rgba(0,0,0,.22), 0 0 0 16px rgba(54,94,28,0); }
}
@media (prefers-reduced-motion: reduce) {
	.ncp-float, .ncp-ring { animation: none; }
}

/* Bright orange floating button */
.ncp-float { background: #ff6a00; color: #fff; }
.ncp-float:hover { background: #e55d00; color: #fff; }
@keyframes ncp-pulse {
	0% { box-shadow: 0 4px 14px rgba(0,0,0,.22), 0 0 0 0 rgba(255,106,0,.6); }
	70%, 100% { box-shadow: 0 4px 14px rgba(0,0,0,.22), 0 0 0 16px rgba(255,106,0,0); }
}
