/* =====================================================================
   HUB plugin output, restyled.
   The markup is the plugins' own (hub-stv-*, hub-cip-*). We only add CSS,
   so plugin updates keep working and the hub-stv- class contract that
   HUB SEO depends on is untouched.
   ===================================================================== */

/* ---------- Staff: modern cards (ebd/staff design "cards") ---------- */
.ebd-staff { --hub-stv-gap: clamp(1rem, 2.4vw, 1.75rem); }
.ebd-staff *, .ebd-staff *::before, .ebd-staff *::after { box-sizing: border-box; }
.ebd-staff .hub-stv-wrap--grid,
.ebd-staff .hub-stv-group__items.hub-stv-wrap--grid { grid-template-columns: repeat(var(--ebd-staff-cols, 3), minmax(0, 1fr)) !important; gap: var(--hub-stv-gap); align-items: stretch; }
@media (max-width: 1023px) { .ebd-staff .hub-stv-wrap--grid, .ebd-staff .hub-stv-group__items.hub-stv-wrap--grid { grid-template-columns: repeat(min(2, var(--ebd-staff-cols, 3)), minmax(0, 1fr)) !important; } }
@media (max-width: 599px) { .ebd-staff .hub-stv-wrap--grid, .ebd-staff .hub-stv-group__items.hub-stv-wrap--grid { grid-template-columns: minmax(0, 1fr) !important; } }

.ebd-staff--cards .hub-stv-item--profiles {
	position: relative; margin: 0; gap: 0; overflow: hidden; isolation: isolate;
	background: var(--wp--preset--color--base); border-radius: 26px;
	box-shadow: 0 0 0 1px var(--wp--preset--color--line), 0 10px 30px -18px rgba(11, 22, 34, .25);
	transition: transform .6s var(--ebd-ease), box-shadow .6s var(--ebd-ease);
}
.ebd-staff--cards .hub-stv-item--profiles:hover { transform: translateY(-6px); box-shadow: 0 0 0 1px var(--wp--preset--color--line), 0 30px 60px -28px rgba(11, 22, 34, .35); }

/* Photo on top: tall portrait with a soft gradient floor */
.ebd-staff--cards .hub-stv-item--photo-top { align-items: stretch !important; }
.ebd-staff--cards .hub-stv-item--photo-top .hub-stv-item__photo {
	height: auto !important; max-width: none !important; width: 100%; aspect-ratio: 4 / 4.6; overflow: hidden; position: relative;
	background: linear-gradient(160deg, var(--wp--preset--color--primary-soft), var(--wp--preset--color--accent-soft));
}
.ebd-staff--cards .hub-stv-item__photo img { width: 100% !important; height: 100% !important; object-fit: cover; object-position: center 20%; transition: transform 1.2s var(--ebd-ease), filter .6s; }
.ebd-staff--cards .hub-stv-item--profiles:hover .hub-stv-item__photo img { transform: scale(1.05); }
.ebd-staff--cards .hub-stv-item--photo-top .hub-stv-item__photo::after { content: ""; position: absolute; inset: auto 0 0 0; height: 30%; background: linear-gradient(transparent, rgba(11, 22, 34, .12)); pointer-events: none; }
.ebd-staff--cards .hub-stv-item__content { padding: 1.25rem 1.4rem 1.5rem; text-align: left !important; display: flex; flex-direction: column; gap: .2rem; }
.ebd-staff--cards .hub-stv-item__name { font-family: var(--wp--preset--font-family--heading); font-size: var(--wp--preset--font-size--large); line-height: 1.2; letter-spacing: -.02em; margin: 0; }
.ebd-staff .hub-stv-item__role,
.ebd-staff .hub-stv-item__designation,
.ebd-staff .hub-stv-item__custom-title { font-style: normal; font-size: var(--wp--preset--font-size--x-small); font-weight: 600; letter-spacing: .02em; color: var(--wp--preset--color--primary-strong); margin: 0; }
.ebd-staff--cards .hub-stv-item__designation { display: inline-flex; width: fit-content; padding: .2rem .6rem; border-radius: 999px; background: var(--wp--preset--color--primary-soft); margin-top: .35rem; }
.ebd-staff .hub-stv-item__bio,
.ebd-staff .hub-stv-item__excerpt { color: var(--wp--preset--color--ink-soft); font-size: var(--wp--preset--font-size--small); line-height: 1.6; margin-top: .6rem; }
.ebd-staff .hub-stv-item__bio > :first-child { margin-top: 0; }
.ebd-staff .hub-stv-item__more,
.ebd-staff .hub-stv-item__link { font-weight: 600; text-decoration: none; color: var(--wp--preset--color--ink); }
.ebd-staff .hub-stv-item__more { margin-top: auto; padding-top: .9rem; display: inline-flex; gap: .35rem; align-items: center; }
.ebd-staff .hub-stv-item__more::after { content: "→"; transition: transform .35s var(--ebd-ease); }
.ebd-staff .hub-stv-item__more:hover::after { transform: translateX(4px); }

/* Photo left / right / alternating: horizontal card */
.ebd-staff--cards .hub-stv-item--photo-left,
.ebd-staff--cards .hub-stv-item--photo-right { align-items: stretch; margin-bottom: var(--hub-stv-gap); }
.ebd-staff--cards .hub-stv-item--photo-left .hub-stv-item__photo,
.ebd-staff--cards .hub-stv-item--photo-right .hub-stv-item__photo { flex: 0 0 min(38%, 340px) !important; max-width: min(38%, 340px) !important; min-height: 320px; }
.ebd-staff--cards .hub-stv-item--photo-left .hub-stv-item__content,
.ebd-staff--cards .hub-stv-item--photo-right .hub-stv-item__content { padding: clamp(1.25rem, 3vw, 2.5rem); justify-content: center; }
.ebd-staff--cards .hub-stv-item--photo-left .hub-stv-item__name,
.ebd-staff--cards .hub-stv-item--photo-right .hub-stv-item__name { font-size: var(--wp--preset--font-size--x-large); }
@media (max-width: 600px) {
	.ebd-staff--cards .hub-stv-item--photo-left .hub-stv-item__photo,
	.ebd-staff--cards .hub-stv-item--photo-right .hub-stv-item__photo { flex-basis: auto !important; max-width: 100% !important; aspect-ratio: 4 / 3.6; min-height: 0; }
}

/* Minimal design */
.ebd-staff--minimal .hub-stv-item--profiles { margin: 0; }
.ebd-staff--minimal .hub-stv-item__photo { border-radius: 20px; overflow: hidden; }
.ebd-staff--minimal .hub-stv-item--photo-top .hub-stv-item__photo { height: auto !important; aspect-ratio: 1; max-width: none !important; }
.ebd-staff--minimal .hub-stv-item__content { text-align: left !important; }
.ebd-staff--minimal .hub-stv-item__name { font-size: var(--wp--preset--font-size--large); margin: .75rem 0 .1rem; }

/* Role groups (Hygienists, Assistants...) */
.ebd-staff .hub-stv-group { margin-bottom: clamp(2rem, 5vw, 3.5rem); }
.ebd-staff .hub-stv-group__label { border: 0; opacity: 1; padding: 0; margin: 0 0 1.25rem; display: flex; align-items: center; gap: 1rem; font-size: var(--wp--preset--font-size--large); }
.ebd-staff .hub-stv-group__label::after { content: ""; flex: 1; height: 1px; background: var(--wp--preset--color--line); }

/* Simple lists */
.ebd-staff--list .hub-stv-wrap,
.ebd-staff--list-linked .hub-stv-wrap { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .75rem; }
.ebd-staff--list .hub-stv-group,
.ebd-staff--list-linked .hub-stv-group { grid-column: 1 / -1; }
.ebd-staff--list .hub-stv-group__items,
.ebd-staff--list-linked .hub-stv-group__items { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .75rem; }
.ebd-staff--list .hub-stv-item,
.ebd-staff--list-linked .hub-stv-item { margin: 0; padding: 1rem 1.15rem; border-radius: 16px; background: var(--wp--preset--color--surface); }
.ebd-staff--list .hub-stv-item__name,
.ebd-staff--list-linked .hub-stv-item__name { font-size: var(--wp--preset--font-size--medium); margin: 0; }

/* Carousel display: cards sized by the carousel */
.ebd-staff--carousel .hub-stv-item--profiles { height: 100%; }

/* ---------- Staff bio modal ---------- */
.hub-stv-modal__overlay { background: rgba(11, 22, 34, .55); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.hub-stv-modal[aria-hidden="false"] .hub-stv-modal__overlay { animation: ebd-fade .3s both; }
.hub-stv-modal__box { border-radius: 28px; padding: clamp(1.5rem, 4vw, 2.5rem); box-shadow: 0 40px 100px -30px rgba(11, 22, 34, .5); background: var(--wp--preset--color--base); color: var(--wp--preset--color--ink); }
.hub-stv-modal[aria-hidden="false"] .hub-stv-modal__box { animation: ebd-pop .5s var(--ebd-ease) both; }
.hub-stv-modal__photo { flex-basis: 140px; }
.hub-stv-modal__photo img { border-radius: 20px; aspect-ratio: 4 / 5; object-fit: cover; }
.hub-stv-modal__close { width: 40px; height: 40px; border-radius: 999px !important; background: var(--wp--preset--color--surface) !important; display: grid; place-items: center; font-size: 1.5rem !important; top: 1rem !important; right: 1rem !important; }
.hub-stv-modal__designation { font-style: normal; color: var(--wp--preset--color--primary-strong); font-weight: 600; font-size: var(--wp--preset--font-size--small); }
.hub-stv-modal__bio { color: var(--wp--preset--color--ink-soft); }
@keyframes ebd-fade { from { opacity: 0; } }
@keyframes ebd-pop { from { opacity: 0; transform: translateY(16px) scale(.97); } }

/* ---------- Hours ---------- */
.ebd-hours .hub-cip-hours { list-style: none; margin: 0; padding: 0; display: grid; gap: .15rem; }
.ebd-hours .hub-cip-hours li { display: flex; justify-content: space-between; gap: 1rem; padding: .6rem .85rem; border-radius: 12px; transition: background .2s; flex-wrap: wrap; }
.ebd-hours .hub-cip-hours li:nth-child(odd) { background: color-mix(in srgb, var(--wp--preset--color--surface) 70%, transparent); }
.ebd-hours .hub-cip-day { font-weight: 600; font-family: var(--wp--preset--font-family--heading); }
.ebd-hours .hub-cip-time { font-variant-numeric: tabular-nums; color: var(--wp--preset--color--ink-soft); }
.ebd-hours .hub-cip-closed { color: var(--wp--preset--color--ink-soft); opacity: .7; }
.ebd-hours .hub-cip-note { flex-basis: 100%; font-size: var(--wp--preset--font-size--x-small); color: var(--wp--preset--color--ink-soft); }
.ebd-hours li.is-today { background: var(--wp--preset--color--primary-soft) !important; box-shadow: inset 3px 0 0 var(--wp--preset--color--primary); }
.ebd-hours li.is-today .hub-cip-day::after { content: "Today"; margin-left: .5rem; padding: .1rem .45rem; border-radius: 999px; font-size: .6875rem; vertical-align: 2px; background: var(--wp--preset--color--primary); color: var(--wp--preset--color--on-primary); }
.ebd-hours .hub-cip-upcoming-holidays { margin-top: 1rem; }
.ebd-hours .hub-cip-holiday-heading { font-weight: 700; font-size: var(--wp--preset--font-size--small); margin: 0 0 .4rem; color: var(--wp--preset--color--accent); }
.ebd-hours .ebd-status { margin: 0 0 .85rem; }
.ebd-dark .ebd-hours .hub-cip-hours li:nth-child(odd) { background: rgba(255, 255, 255, .04); }
.ebd-dark .ebd-hours .hub-cip-time, .ebd-dark .ebd-hours .hub-cip-closed { color: rgba(233, 241, 244, .75); }
.ebd-dark .ebd-hours li.is-today { background: rgba(255, 255, 255, .1) !important; }

/* ---------- Open / closed badge ---------- */
.ebd-status { display: inline-flex; align-items: center; gap: .5rem; padding: .4rem .85rem .4rem .7rem; border-radius: 999px; font-size: var(--wp--preset--font-size--x-small); background: var(--wp--preset--color--surface); width: fit-content; margin: 0; }
.ebd-status strong { font-weight: 700; }
.ebd-status span:not(.ebd-status__dot) { color: var(--wp--preset--color--ink-soft); }
.ebd-status__dot { width: 8px; height: 8px; border-radius: 999px; background: #94A3B8; position: relative; flex: none; }
.ebd-status--open .ebd-status__dot { background: #16A34A; }
.ebd-status--soon .ebd-status__dot { background: #F59E0B; }
.ebd-status--open .ebd-status__dot::after, .ebd-status--soon .ebd-status__dot::after { content: ""; position: absolute; inset: 0; border-radius: inherit; background: inherit; animation: ebd-ping 1.8s var(--ebd-ease) infinite; }
@keyframes ebd-ping { 75%, 100% { transform: scale(2.6); opacity: 0; } }
.ebd-dark .ebd-status { background: rgba(255, 255, 255, .08); }
.ebd-dark .ebd-status span:not(.ebd-status__dot) { color: rgba(233, 241, 244, .7); }

/* ---------- Clinic info ---------- */
.ebd-info { display: flex; align-items: flex-start; gap: .65rem; }
.ebd-info__icon { flex: none; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: var(--wp--preset--color--primary-soft); color: var(--wp--preset--color--primary-strong); margin-top: -.2rem; }
.ebd-info__body { display: flex; flex-direction: column; min-width: 0; }
.ebd-info__label { font-size: var(--wp--preset--font-size--x-small); color: var(--wp--preset--color--ink-soft); font-weight: 600; letter-spacing: .02em; }
.ebd-info__value a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.ebd-info--inline .ebd-info__body { flex-direction: row; gap: .4rem; flex-wrap: wrap; align-items: baseline; }
.ebd-info--inline .ebd-info__label::after { content: ":"; }
.ebd-info--plain { display: block; }
.ebd-info--plain .ebd-info__body { display: inline; }
.ebd-info--pill { display: inline-flex; align-items: center; padding: .35rem .9rem .35rem .4rem; border-radius: 999px; background: var(--wp--preset--color--surface); }
.ebd-info--pill .ebd-info__icon { width: 28px; height: 28px; border-radius: 999px; margin: 0; }
.ebd-info--card { padding: 1.25rem; border-radius: 20px; background: var(--wp--preset--color--base); box-shadow: 0 0 0 1px var(--wp--preset--color--line); }
.ebd-info--card .ebd-info__icon { width: 44px; height: 44px; border-radius: 14px; }
.ebd-info--card .ebd-info__value { font-weight: 600; font-size: var(--wp--preset--font-size--large); font-family: var(--wp--preset--font-family--heading); letter-spacing: -.01em; }
.ebd-info--map { display: block; overflow: hidden; border-radius: 28px; box-shadow: 0 0 0 1px var(--wp--preset--color--line); line-height: 0; }
.ebd-info--map iframe { width: 100% !important; border: 0; display: block; filter: saturate(.85) contrast(1.02); }
.ebd-info--map .ebd-info__body, .ebd-info--map .ebd-info__value { display: block; }
.ebd-info--financing-cta img { max-width: 260px; height: auto; }
.ebd-dark .ebd-info__icon { background: rgba(255, 255, 255, .08); color: #fff; }
.ebd-dark .ebd-info__label { color: rgba(233, 241, 244, .65); }
.ebd-info-placeholder { font-family: monospace; font-size: 12px; opacity: .6; }

/* ---------- Social ---------- */
.ebd-social { list-style: none; margin: 0; padding: 0; display: flex; gap: .5rem; flex-wrap: wrap; }
.ebd-social__link { display: grid; place-items: center; width: var(--ebd-social-size, 40px); height: var(--ebd-social-size, 40px); border-radius: 999px; color: inherit; box-shadow: inset 0 0 0 1px color-mix(in srgb, currentColor 22%, transparent); transition: transform .35s var(--ebd-ease), background .2s, color .2s; }
.ebd-social__link:hover { transform: translateY(-3px); background: var(--wp--preset--color--primary); color: var(--wp--preset--color--on-primary); box-shadow: none; }

/* ---------- [hub_biz info="gallery"] ---------- */
.hub-cip-gallery { gap: 12px !important; }
.hub-cip-gallery__img { border-radius: 18px; transition: transform .8s var(--ebd-ease); }
.hub-cip-gallery__link { overflow: hidden; border-radius: 18px; }
.hub-cip-gallery__link:hover .hub-cip-gallery__img { transform: scale(1.05); }

/* Compact contexts: top bar, footer */
.ebd-topbar .ebd-status { background: transparent; padding: 0; }
.ebd-topbar .ebd-status span:not(.ebd-status__dot) { color: inherit; opacity: .7; }
.ebd-hours--short .is-today .hub-cip-day::after { display: none; }
.ebd-hours--short .hub-cip-hours li { flex-wrap: nowrap; padding: .45rem .7rem; }
.ebd-footer .ebd-hours .ebd-status { flex-wrap: wrap; }

@media (max-width: 781px) { .ebd-topbar .ebd-status span:not(.ebd-status__dot):not(strong) { display: none; } }

/* Photo cards: name over a tall photo (englishbaydental.com team style) */
.ebd-staff--overlay .hub-stv-item { position: relative; overflow: hidden; border-radius: 10px; height: 400px; background: var(--wp--preset--color--surface-2); box-shadow: none; border: 0; }
.ebd-staff--overlay .hub-stv-item__photo { position: absolute !important; inset: 0; width: 100% !important; max-width: none !important; height: 100% !important; margin: 0 !important; aspect-ratio: auto !important; }
.ebd-staff--overlay .hub-stv-item__photo img { width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover; object-position: center 20%; border-radius: 0 !important; transition: transform 1.2s var(--ebd-ease); }
.ebd-staff--overlay .hub-stv-item:hover .hub-stv-item__photo img { transform: scale(1.05); }
.ebd-staff--overlay .hub-stv-item__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, rgba(23, 39, 53, .9) 100%); transition: background .5s; }
.ebd-staff--overlay .hub-stv-item:hover .hub-stv-item__photo::after { background: linear-gradient(180deg, rgba(23, 39, 53, .25) 0%, rgba(23, 39, 53, .92) 100%); }
.ebd-staff--overlay .hub-stv-item__content { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; padding: 24px !important; color: #fff; text-align: left !important; display: flex; flex-direction: column; gap: .4rem; }
.ebd-staff--overlay .hub-stv-item__name { font-family: var(--wp--preset--font-family--heading); font-size: 1.625rem; line-height: 1.1; margin: 0; color: #fff; }
.ebd-staff--overlay .hub-stv-item__name a { color: inherit; text-decoration: none; }
.ebd-staff--overlay :is(.hub-stv-item__role, .hub-stv-item__designation, .hub-stv-item__custom-title) { color: rgba(255, 255, 255, .8) !important; background: none !important; padding: 0 !important; }
.ebd-staff--overlay :is(.hub-stv-item__bio, .hub-stv-item__excerpt) { color: rgba(255, 255, 255, .88); font-size: 1.0625rem; max-height: 0; opacity: 0; overflow: hidden; margin: 0; transition: max-height .6s var(--ebd-ease), opacity .4s; }
.ebd-staff--overlay .hub-stv-item:hover :is(.hub-stv-item__bio, .hub-stv-item__excerpt), .ebd-staff--overlay .hub-stv-item:focus-within :is(.hub-stv-item__bio, .hub-stv-item__excerpt) { max-height: 12em; opacity: 1; }
.ebd-staff--overlay :is(.hub-stv-item__more, .hub-stv-item__link) { color: #fff; }
@media (hover: none) { .ebd-staff--overlay :is(.hub-stv-item__bio, .hub-stv-item__excerpt) { max-height: 6.5em; opacity: 1; } }
.ebd-staff--overlay .hub-stv-grid, .ebd-staff--overlay .hub-stv-items { gap: 20px !important; }

/* Classic team cards (v1.3): tall photo, role, short bio, hover lift. */
.ebd-staff--classic.ebd-staff--grid .hub-stv-wrap { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(max(230px, calc((100% - 3 * 28px) / 4)), 1fr)) !important; gap: 44px 28px !important; }
.ebd-staff--classic.ebd-staff--grid .hub-stv-group, .ebd-staff--classic.ebd-staff--grid .hub-stv-group__items { display: contents !important; }
.ebd-staff--classic .hub-stv-group__label, .ebd-staff--classic .hub-stv-item__role { display: none !important; }
.ebd-staff--classic .hub-stv-item--profiles { position: relative; background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; display: flex !important; flex-direction: column; align-items: stretch !important; text-align: left !important; }
.ebd-staff--classic .hub-stv-item__photo { position: relative; width: 100% !important; max-width: none !important; height: auto !important; aspect-ratio: 4 / 4.6; border-radius: 16px !important; overflow: hidden; margin: 0 !important; background: linear-gradient(160deg, #eef3f6, #dfe7ec); box-shadow: 0 24px 50px -34px rgba(23, 39, 53, .55); }
.ebd-staff--classic .hub-stv-item__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 60%, rgba(23, 39, 53, .35)); opacity: 0; transition: opacity .5s; }
.ebd-staff--classic .hub-stv-item__photo img { width: 100% !important; height: 100% !important; object-fit: cover; object-position: center 18%; border-radius: 0 !important; transition: transform 1.2s var(--ebd-ease, ease); }
.ebd-staff--classic .hub-stv-item--profiles:hover .hub-stv-item__photo img { transform: scale(1.05); }
.ebd-staff--classic .hub-stv-item--profiles:hover .hub-stv-item__photo::after { opacity: 1; }
.ebd-staff--classic .hub-stv-item__content { padding: 22px 4px 0 !important; text-align: left !important; display: flex; flex-direction: column; }
.ebd-staff--classic .hub-stv-item__name { order: 2; font-family: var(--wp--preset--font-family--heading); font-size: 1.45rem; font-weight: 400; letter-spacing: .5px; line-height: 1.2; margin: 0 0 12px; color: var(--wp--preset--color--ink); }
.ebd-staff--classic .hub-stv-item__name a { color: inherit; text-decoration: none; }
.ebd-staff--classic .hub-stv-item__designation { order: 1; display: block !important; margin: 0 0 8px !important; padding: 0 !important; background: none !important; font-family: var(--wp--preset--font-family--button); font-size: .7rem; font-weight: 500; letter-spacing: 2px; text-transform: uppercase; color: var(--wp--preset--color--primary); }
.ebd-staff--classic .hub-stv-item__bio, .ebd-staff--classic .hub-stv-item__excerpt { order: 3; color: var(--wp--preset--color--ink-soft); font-size: 1.04rem; line-height: 1.65; margin-top: 0; padding-top: 14px; border-top: 1px solid var(--wp--preset--color--line); display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
@media (max-width: 599px) { .ebd-staff--classic.ebd-staff--grid .hub-stv-wrap { grid-template-columns: minmax(0, 1fr) !important; } }
