/* Diodental Pro Widgets – base styles for the fallback widgets. */

/* ---- Loop grid ---------------------------------------------------- */
.elementor-widget-loop-grid .elementor-loop-container.elementor-grid {
	display: grid;
	grid-template-columns: repeat(var(--grid-columns, 3), minmax(0, 1fr));
	column-gap: var(--grid-column-gap, 30px);
	row-gap: var(--grid-row-gap, 30px);
}
.e-loop-item * { word-break: break-word; }
.elementor-widget-loop-grid .elementor-page-title { display: initial; }

/* ---- Share buttons ------------------------------------------------ */
.elementor-widget-share-buttons .elementor-grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: var(--alignment, flex-start);
	column-gap: var(--grid-column-gap, 0);
	row-gap: var(--grid-row-gap, 10px);
}
.elementor-share-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	height: 4.5em;
	font-size: 10px;
	color: #fff;
	text-decoration: none;
	cursor: pointer;
	background-color: var(--dpw-share-color, #555);
}
.elementor-share-btn__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 4.5em;
	height: 100%;
	font-size: var(--e-share-buttons-icon-size, 1.7em);
}
.elementor-share-btn__icon svg { width: 1em; height: 1em; fill: currentColor; }
.elementor-share-btn__text { padding: 0 1.2em 0 .2em; font-size: 1.4em; white-space: nowrap; }
.elementor-share-buttons--view-icon .elementor-share-btn__text,
.elementor-share-buttons--view-text .elementor-share-btn__icon { display: none; }
.elementor-share-buttons--view-text .elementor-share-btn__text { padding: 0 1.2em; }
.elementor-share-buttons--shape-rounded .elementor-share-btn { border-radius: .5em; }
.elementor-share-buttons--shape-circle .elementor-share-btn { border-radius: 99em; }
.elementor-share-buttons--skin-gradient .elementor-share-btn { background-image: linear-gradient(to bottom, rgba(255,255,255,.15), rgba(0,0,0,.1)); }
.elementor-share-buttons--skin-minimal .elementor-share-btn,
.elementor-share-buttons--skin-framed .elementor-share-btn { background: transparent; color: var(--dpw-share-color, #555); }
.elementor-share-buttons--skin-framed .elementor-share-btn { border: 2px solid var(--dpw-share-color, #555); }
.elementor-share-btn_facebook  { --dpw-share-color: #3b5998; }
.elementor-share-btn_twitter   { --dpw-share-color: #1da1f2; }
.elementor-share-btn_linkedin  { --dpw-share-color: #0077b5; }
.elementor-share-btn_pinterest { --dpw-share-color: #bd081c; }
.elementor-share-btn_reddit    { --dpw-share-color: #ff4500; }
.elementor-share-btn_telegram  { --dpw-share-color: #2ca5e0; }
.elementor-share-btn_whatsapp  { --dpw-share-color: #25d366; }
.elementor-share-btn_email     { --dpw-share-color: #ea4335; }
.elementor-share-btn_print     { --dpw-share-color: #5a5a5a; }

/* ---- Post navigation ---------------------------------------------- */
.elementor-post-navigation {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1em;
}
.elementor-post-navigation__link { flex: 1 1 0; min-width: 0; }
.elementor-post-navigation__link a { display: flex; align-items: center; gap: .5em; color: inherit; text-decoration: none; }
.elementor-post-navigation__next a { flex-direction: row-reverse; text-align: right; }
.elementor-post-navigation__link__prev,
.elementor-post-navigation__link__next { display: flex; flex-direction: column; min-width: 0; }
.post-navigation__arrow-wrapper { display: inline-flex; font-size: 1.5em; }
.post-navigation__arrow-wrapper svg { width: 1em; height: 1em; fill: currentColor; }
.elementor-post-navigation__separator-wrapper { display: flex; align-self: stretch; }
.elementor-post-navigation-borders-yes .elementor-post-navigation__separator { width: 1px; background: currentColor; opacity: .2; }
.elementor-post-navigation-borders-yes .elementor-post-navigation { border-top: 1px solid rgba(0,0,0,.1); border-bottom: 1px solid rgba(0,0,0,.1); padding: 1em 0; }
.elementor-screen-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

/* ---- Author box --------------------------------------------------- */
.elementor-author-box { display: flex; align-items: center; gap: 1.5em; }
.elementor-author-box__avatar img { display: block; width: 100px; height: 100px; border-radius: 50%; object-fit: cover; }
.elementor-author-box__name { margin: 0 0 .3em; }

/* ---- Search form -------------------------------------------------- */
.elementor-search-form__container {
	display: flex;
	align-items: stretch;
	min-height: 50px;
	overflow: hidden;
	border: 1px solid #dadada;
	background: #fff;
}
.elementor-search-form__input {
	flex: 1 1 auto;
	min-width: 0;
	border: 0;
	background: transparent;
	padding: 0 16px;
	box-shadow: none;
}
.elementor-search-form__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 50px;
	border: 0;
	border-radius: 0;
	background: #3babac;
	color: #fff;
	cursor: pointer;
}
.elementor-search-form__submit .e-font-icon-svg-container { display: flex; }
.elementor-search-form__submit svg { width: 1em; height: 1em; fill: currentColor; }

/* ---- Facebook page ------------------------------------------------ */
.elementor-facebook-widget { max-width: 100%; overflow: hidden; }

/* ---- Swiper-based widgets (loop / media / testimonial carousels) --- */
.elementor-widget-loop-carousel,
.elementor-widget-media-carousel,
.elementor-widget-testimonial-carousel { position: relative; }
.dpw-swiper { position: relative; overflow: hidden; width: 100%; }
.dpw-swiper .swiper-wrapper { display: flex; box-sizing: content-box; width: 100%; height: 100%; transition-property: transform; }
.dpw-swiper .swiper-slide { position: relative; flex-shrink: 0; width: 100%; height: 100%; }
.elementor-widget-loop-carousel .swiper-slide,
.elementor-widget-testimonial-carousel .swiper-slide { height: auto; }
.elementor-widget-loop-carousel .swiper-slide > .elementor { height: 100%; }
.elementor-swiper-button {
	position: absolute;
	top: 50%;
	z-index: 10;
	display: flex;
	transform: translateY(-50%);
	font-size: var(--arrow-size, 28px);
	line-height: 1;
	color: var(--arrow-normal-color, currentColor);
	cursor: pointer;
}
.elementor-swiper-button-prev { left: var(--arrow-prev-left-position, 10px); }
.elementor-swiper-button-next { right: var(--arrow-next-right-position, 10px); }
.elementor-swiper-button svg { width: 1em; height: 1em; fill: currentColor; }
.elementor-widget-media-carousel .elementor-swiper-button { text-shadow: 0 0 6px rgba(255,255,255,.7); }
.swiper-pagination { position: relative; margin-top: 14px; text-align: center; }
.swiper-pagination-bullet {
	display: inline-block;
	width: 10px;
	height: 10px;
	margin: 0 var(--swiper-pagination-bullet-horizontal-gap, 4px);
	border-radius: 50%;
	background: var(--dots-normal-color, #bbb);
	opacity: .5;
	cursor: pointer;
}
.swiper-pagination-bullet-active { opacity: 1; }

/* media carousel */
.elementor-widget-media-carousel .elementor-main-swiper { height: 400px; }
.elementor-widget-media-carousel .swiper-slide { overflow: hidden; }
.elementor-widget-media-carousel .swiper-slide > a { display: block; width: 100%; height: 100%; }
.elementor-carousel-image { width: 100%; height: 100%; background-position: 50%; background-repeat: no-repeat; background-size: cover; }

/* testimonial carousel */
.elementor-testimonial__text img { max-width: 100%; height: auto; }
.elementor-testimonial__footer { margin-top: 1em; }

/* loop items: images keep their proportions */
.e-loop-item .elementor-widget-image img,
.e-loop-item img.attachment-large,
.e-loop-item img.attachment-full { max-width: 100%; height: auto; }

/* the ElementsKit mega-menu panels sit off-screen and widen the page */
html, body { overflow-x: clip; }

/* share buttons: keep each button its own width (icon view = a square / circle) */
.elementor-widget-share-buttons .elementor-grid-item { flex: 0 0 auto; width: auto; }
.elementor-share-buttons--view-icon .elementor-share-btn { width: 4.5em; }

/* carousel dots: the Swiper stylesheet makes them absolute; keep them where the original put them */
.elementor-widget-loop-carousel .swiper-pagination,
.elementor-widget-testimonial-carousel .swiper-pagination {
	position: relative;
	top: auto;
	right: auto;
	bottom: auto;
	left: auto;
	width: auto;
	height: auto;
	margin-top: 10px;
	line-height: 6px;
	text-align: center;
}
.elementor-widget-loop-carousel .swiper-pagination-bullet { width: 6px; height: 6px; }
.elementor-widget-media-carousel .swiper-pagination { top: auto; bottom: 5px; }

/* testimonial carousel */
.elementor-widget-testimonial-carousel .elementor-main-swiper { margin-inline: 17px; width: auto; }
.elementor-widget-testimonial-carousel .swiper-slide { box-sizing: border-box; padding: 20px; }
.elementor-widget-testimonial-carousel .elementor-testimonial { text-align: center; }
.elementor-widget-testimonial-carousel .elementor-testimonial__text { font-size: 1.3em; font-style: italic; line-height: 1.5; }
.elementor-widget-testimonial-carousel .elementor-testimonial__name { font-weight: 700; }
.elementor-widget-testimonial-carousel .elementor-testimonial__footer cite { display: flex; flex-direction: column; font-size: 14px; font-style: normal; line-height: 1.5; }

/* arrow icons take the arrow colour (the Swiper stylesheet paints them light grey) */
.elementor-widget .elementor-swiper-button svg, .elementor-widget .elementor-swiper-button svg path { fill: currentColor; }

.elementor-element.elementor-widget .dpw-swiper ~ .elementor-swiper-button svg, .elementor-element.elementor-widget .dpw-swiper ~ .elementor-swiper-button svg path { fill: currentColor; }

/* share buttons: white icons (the site's link colour must not win) and the gradient on the icon block only */
.elementor-widget-share-buttons .elementor-share-btn,
.elementor-widget-share-buttons .elementor-share-btn svg { color: #fff; fill: currentColor; }
.elementor-widget-share-buttons.elementor-share-buttons--skin-minimal .elementor-share-btn,
.elementor-widget-share-buttons.elementor-share-buttons--skin-framed .elementor-share-btn { color: var(--dpw-share-color, #555); }
.elementor-widget-share-buttons.elementor-share-buttons--skin-gradient .elementor-share-btn { background-image: none; }
.elementor-widget-share-buttons.elementor-share-buttons--skin-gradient .elementor-share-btn__icon { background-image: linear-gradient(90deg, rgba(0,0,0,.12), rgba(0,0,0,0)); }

.elementor-widget-testimonial-carousel .elementor-main-swiper { margin-inline: 2.5%; }
.elementor-widget-testimonial-carousel .elementor-testimonial__text { color: var(--e-global-color-text); }
