/* Primary navigation: desktop dropdowns + mobile sub-menus.
   Renders the WP 'primary' menu. Relies on main.css for the
   768px show/hide of .site-nav vs .nav-toggle / .mobile-nav. */

/* keep dropdowns from being clipped */
.site-header,
.site-header__inner { overflow: visible; }

/* ---- Desktop ---- */
.site-nav .nav-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
	gap: 1.6rem;
}
.site-nav .nav-menu li { position: relative; }
.site-nav .nav-menu a {
	display: block;
	color: #181F2E;
	text-decoration: none;
	font-weight: 600;
	font-size: .95rem;
	line-height: 1.2;
	padding: .45rem 0;
	white-space: nowrap;
}
.site-nav .nav-menu > li > a:hover { color: #536B7A; }

/* caret on dropdown parents */
.site-nav .nav-menu .menu-item-has-children > a::after {
	content: "";
	display: inline-block;
	width: .38em;
	height: .38em;
	margin-left: .45em;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: translateY(-2px) rotate(45deg);
	opacity: .65;
}

/* dropdown panel */
.site-nav .sub-menu {
	position: absolute;
	top: 100%;
	left: -.85rem;
	min-width: 232px;
	background: #fff;
	border: 1px solid #ECE6D6;
	border-radius: 10px;
	box-shadow: 0 14px 34px rgba(24, 31, 46, .14);
	padding: .45rem 0;
	margin: 0;
	list-style: none;
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity .15s ease, transform .15s ease, visibility .15s;
	z-index: 200;
}
.site-nav .nav-menu li:hover > .sub-menu,
.site-nav .nav-menu li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.site-nav .sub-menu a {
	padding: .5rem 1.15rem;
	font-weight: 500;
	font-size: .9rem;
}
.site-nav .sub-menu a:hover { background: #FBF6E6; color: #536B7A; }

/* "Book Now" rendered as a button (matches original CTA) */
.site-nav .nav-menu > li > a[href*="/appointments"] {
	background: #181F2E;
	color: #fff;
	border-radius: 999px;
	padding: .5rem 1.2rem;
	font-weight: 700;
}
.site-nav .nav-menu > li > a[href*="/appointments"]:hover { background: #2C3654; color: #fff; }

/* ---- Mobile ---- */
.mobile-nav .mobile-nav__menu { list-style: none; margin: 0; padding: 0; }
.mobile-nav .mobile-nav__menu a {
	display: block;
	padding: .85rem 1.4rem;
	color: #181F2E;
	text-decoration: none;
	font-weight: 600;
	border-bottom: 1px solid rgba(24, 31, 46, .08);
}
.mobile-nav .mobile-nav__menu .sub-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	background: rgba(24, 31, 46, .035);
}
.mobile-nav .mobile-nav__menu .sub-menu a {
	padding-left: 2.4rem;
	font-weight: 500;
	font-size: .95rem;
}

/* ---- Brand logo ---- */
.brand-mark { display: inline-flex; align-items: center; flex: 0 0 auto; }
.brand-mark__logo { display: block; height: 46px; width: 46px; object-fit: contain; }
.brand-mark__text { display: none; }

/* ---- Header layout: logo left, nav + actions right ---- */
.site-header__inner { display: flex; align-items: center; gap: 1.25rem; }
.site-header__inner .site-nav { margin-left: auto; }

/* ---- Header actions (socials + portal + book) ---- */
.header-actions { display: flex; align-items: center; gap: .8rem; }
.header-socials { display: flex; align-items: center; gap: .45rem; }
.header-social { color: #181F2E; display: inline-flex; opacity: .75; transition: opacity .15s, color .15s; }
.header-social:hover { opacity: 1; color: #536B7A; }
.btn--ghost {
	background: transparent;
	border: 1.5px solid rgba(24, 31, 46, .35);
	color: #181F2E;
	border-radius: 999px;
	padding: .45rem 1rem;
	font-weight: 600;
	font-size: .88rem;
	text-decoration: none;
	white-space: nowrap;
}
.btn--ghost:hover { border-color: #181F2E; background: rgba(24, 31, 46, .05); }
.header-cta.btn--primary {
	background: #181F2E;
	color: #fff;
	border-radius: 999px;
	padding: .55rem 1.25rem;
	font-weight: 600;
	font-size: .88rem;
	letter-spacing: .01em;
	text-decoration: none;
	white-space: nowrap;
	transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.header-cta.btn--primary:hover { background: #2C3654; transform: translateY(-1px); box-shadow: 0 6px 18px rgba(24,31,46,.22); }

/* Mobile: desktop actions hidden; actions shown inside the drawer */
@media (max-width: 768px) {
	.site-header__inner .header-actions { display: none; }
	.mobile-nav .header-actions { display: flex; flex-wrap: wrap; gap: .75rem; padding: 1.1rem 1.4rem 1.4rem; }
	.mobile-nav .header-socials { width: 100%; }
}
@media (min-width: 769px) {
	.mobile-nav .header-actions { display: none; }
}
