/**
 * Book an Appointment (interim). Depends on components.css.
 */

html { scroll-behavior: smooth; }

/* Brief highlight so a slot-click prefill reads as "this changed", not a
   no-op — the click itself reloads the page and lands here via #book-form. */
.ne-field--filled {
	animation: ne-field-flash 2.2s ease-out;
	border-radius: 8px;
}
@keyframes ne-field-flash {
	0%   { box-shadow: 0 0 0 3px var(--ne-primary-100); }
	100% { box-shadow: 0 0 0 3px transparent; }
}
@media (prefers-reduced-motion: reduce) {
	.ne-field--filled { animation: none; }
}

/* Doctor field, locked on a doctor deep-link — fixed information, not a
   choice, so it reads as settled rather than as an editable input left blank. */
.ne-field--locked {
	background: var(--ne-neutral-100);
	color: var(--ne-neutral-700);
	cursor: default;
}

/* Hero -------------------------------------------------------------- */
.ne-book-hero { background: var(--ne-secondary-a10); padding: var(--ne-space-5xl) 0 calc(var(--ne-space-5xl) + var(--ne-space-3xl)); }
.ne-book-hero__inner {
	display: grid;
	grid-template-columns: 1.6fr 1fr;
	gap: var(--ne-space-3xl);
	align-items: start;
}
.ne-book-hero__title { margin: 0 0 var(--ne-space-s); font-size: var(--ne-h2-size); line-height: 1.1; color: var(--ne-primary-500); }
.ne-book-hero__sub { margin: 0; max-width: 46ch; color: var(--ne-neutral-800); }

.ne-book-hotline {
	display: flex; flex-direction: column; gap: var(--ne-space-s);
	padding: var(--ne-space-xl);
	background: rgba(251, 55, 72, 0.08);
	border: 1px solid rgba(251, 55, 72, 0.18);
	border-radius: 16px;
}
.ne-book-hotline__head {
	display: inline-flex; align-items: center; gap: var(--ne-space-xs);
	font-size: var(--ne-h7-size); font-weight: 700; color: var(--ne-red-200);
}
.ne-book-hotline__head .ne-icon { width: 22px; height: 22px; }
.ne-book-hotline__phone {
	display: inline-flex; align-items: center; gap: var(--ne-space-xs);
	font-size: var(--ne-h7-size); font-weight: 700; color: var(--ne-primary-500); text-decoration: none;
}
.ne-book-hotline__phone .ne-icon { width: 18px; height: 18px; color: var(--ne-red-200); }
.ne-book-hotline__langs { display: flex; flex-direction: column; color: var(--ne-neutral-800); font-size: var(--ne-b2-size); }
.ne-book-hotline__langs-label { font-size: var(--ne-b3-size); text-transform: uppercase; letter-spacing: var(--ne-h9-tracking); color: var(--ne-neutral-600); font-weight: 700; }

/* Form -------------------------------------------------------------- */
.ne-book-form-sec { position: relative; margin-top: calc(var(--ne-space-4xl) * -1); }
.ne-book-form { position: relative; z-index: 2; }
.ne-book-form__fallback { margin: 0; color: var(--ne-neutral-800); }

/* CF7 markup emitted by the interim booking form (ne-form-grid wrapper). */
.ne-book-form .ne-form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--ne-space-m) var(--ne-space-l); }
.ne-book-form .ne-field-full { grid-column: 1 / -1; }
.ne-book-form .ne-field { margin-bottom: 0; }
.ne-book-form .ne-form-actions { display: flex; justify-content: flex-end; margin-top: var(--ne-space-xs); }
.ne-book-form .wpcf7-form-control.wpcf7-submit {
	appearance: none;
	font-family: var(--ne-font); font-size: var(--ne-b1-size); font-weight: 600; line-height: 1;
	padding: 14px var(--ne-space-2xl);
	border-radius: 999px; border: 2px solid var(--ne-primary-400);
	background: var(--ne-primary-400); color: var(--ne-neutral-100);
	cursor: pointer; transition: background .18s ease, border-color .18s ease;
}
.ne-book-form .wpcf7-form-control.wpcf7-submit:hover { background: var(--ne-primary-500); border-color: var(--ne-primary-500); }
.ne-book-form .wpcf7-response-output {
	grid-column: 1 / -1;
	margin: var(--ne-space-m) 0 0;
	border-radius: 10px;
	padding: var(--ne-space-s) var(--ne-space-m);
	font-size: var(--ne-b2-size);
}
.ne-book-form .wpcf7-not-valid-tip { color: var(--ne-red-200); font-size: var(--ne-b3-size); }

/* Our Centers ------------------------------------------------------- */
.ne-book-map {
	margin-bottom: var(--ne-space-3xl);
	border-radius: 16px;
	overflow: hidden;
	border: 1px solid var(--ne-neutral-200);
}
.ne-book-map iframe { display: block; width: 100%; height: 420px; border: 0; }

.ne-centercard .ne-card__media { aspect-ratio: 16 / 10; background: var(--ne-neutral-200) center / cover no-repeat; }
.ne-centercard__tag { align-self: flex-start; }
.ne-centercard .ne-card__meta { align-items: flex-start; }
.ne-centercard .ne-card__meta .ne-icon { width: 16px; height: 16px; color: var(--ne-secondary-400); margin-top: 2px; flex: 0 0 auto; }
.ne-centercard__foot { padding-top: var(--ne-space-s); }

/* FAQ --------------------------------------------------------------- */
.ne-book-faq__inner { max-width: 860px; }
.ne-book-faq__title { margin: 0 0 var(--ne-space-2xl); font-size: var(--ne-h4-size); color: var(--ne-primary-500); }

/* Responsive -------------------------------------------------------- */
@media (max-width: 1024px) {
	.ne-book-hero__inner { grid-template-columns: 1fr; gap: var(--ne-space-2xl); }
	.ne-book-map iframe { height: 340px; }
}
@media (max-width: 640px) {
	.ne-book-hero__title { font-size: var(--ne-h4-size); }
	.ne-book-form .ne-form-grid { grid-template-columns: 1fr; }
	.ne-book-form-sec { margin-top: calc(var(--ne-space-2xl) * -1); }
	.ne-book-form .ne-form-actions { justify-content: stretch; }
	.ne-book-form .wpcf7-form-control.wpcf7-submit { width: 100%; }
}
