/* =========================================
   SOBRE A SOUL - GALERIA E CAROUSEL
   ========================================= */

/* FORÇAR BACKGROUND DA SEÇÃO */
#sobre-a-soul.elementor-element-42e46bf {
	background-image: url('wp-content/uploads/2019/12/soularomaterapia-secao-home.jpg') !important;
	background-position: center center !important;
	background-size: cover !important;
	background-repeat: no-repeat !important;
	padding: 3% 0% !important;
}

#sobre-a-soul.elementor-element-42e46bf:not(.elementor-motion-effects-element-type-background) {
	background-image: url('wp-content/uploads/2019/12/soularomaterapia-secao-home.jpg') !important;
}

/* =========================================
   NOSSO BLOG - FORÇAR BACKGROUND
   ========================================= */

#blog.elementor-element-ae37cba {
	background-color: #ffffff !important;
	background-image: url('wp-content/uploads/2019/12/soularomaterapia-background.jpg') !important;
	background-position: center center !important;
	background-size: cover !important;
	background-repeat: no-repeat !important;
	padding: 0% 0% !important;
}

#blog.elementor-element-ae37cba:not(.elementor-motion-effects-element-type-background) {
	background-color: #ffffff !important;
	background-image: url('wp-content/uploads/2019/12/soularomaterapia-background.jpg') !important;
}

/* =========================================
   SOBRE A SOUL - GALERIA E CAROUSEL
   ========================================= */

/* MOBILE CAROUSEL */
.sobre-soul-mobile-carousel {
	display: block;
	margin: 0 auto 40px;
	padding: 0 20px;
}

.soul-carousel-wrapper {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 20px;
	max-width: 100%;
	margin: 0 auto;
}

.soul-carousel-container {
	position: relative;
	width: 100%;
	max-width: 500px;
	overflow: hidden;
	border-radius: 15px;
	box-shadow: 0 8px 25px rgba(101, 45, 146, 0.2);
}

.soul-carousel-track {
	display: flex;
	transition: transform 0.5s ease-in-out;
}

.soul-carousel-slide {
	min-width: 100%;
	flex-shrink: 0;
}

.soul-carousel-slide img {
	width: 100%;
	height: 350px;
	object-fit: cover;
	display: block;
	border-radius: 15px;
}

/* Botões do carousel */
.soul-carousel-btn {
	position: relative;
	background: #652D92;
	border: none;
	width: 45px;
	height: 45px;
	border-radius: 50%;
	cursor: pointer;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.3s ease;
	box-shadow: 0 4px 15px rgba(101, 45, 146, 0.3);
}

.soul-carousel-btn:hover {
	background: #7a3ba8;
	transform: scale(1.1);
	box-shadow: 0 6px 20px rgba(101, 45, 146, 0.4);
}

.soul-carousel-btn svg {
	width: 40px;
	height: 40px;
	fill: white;
}

/* Dots do carousel */
.soul-carousel-dots {
	position: absolute;
	bottom: -40px;
	left: 50%;
	transform: translateX(-50%);
	display: flex;
	gap: 8px;
	z-index: 2;
}

.soul-dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: rgba(101, 45, 146, 0.5);
	cursor: pointer;
	transition: all 0.3s ease;
}

.soul-dot:hover {
	background: rgba(101, 45, 146, 0.7);
	transform: scale(1.2);
}

.soul-dot.active {
	width: 30px;
	border-radius: 5px;
	background: #652D92;
}

/* DESKTOP GALLERY */
.sobre-soul-desktop-gallery {
	display: none;
	padding: 0 20px;
}

.soul-gallery-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 15px;
	max-width: 100%;
}

.soul-gallery-item {
	position: relative;
	overflow: hidden;
	border-radius: 12px;
	aspect-ratio: 1 / 1;
	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
	transition: all 0.3s ease;
	cursor: pointer;
}

.soul-gallery-item:hover {
	transform: translateY(-5px);
	box-shadow: 0 8px 25px rgba(101, 45, 146, 0.3);
}

.soul-gallery-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}

.soul-gallery-item:hover img {
	transform: scale(1.1);
}

/* GALERIA DESKTOP — overlay de zoom */
.soul-gallery-overlay {
	position: absolute;
	inset: 0;
	background: rgba(101, 45, 146, 0.50);
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	transition: opacity 0.3s ease;
	border-radius: inherit;
	pointer-events: none;
}

.soul-gallery-item:hover .soul-gallery-overlay {
	opacity: 1;
}

.soul-gallery-zoom {
	color: white;
	font-size: 2rem;
	line-height: 1;
	filter: drop-shadow(0 2px 4px rgba(0,0,0,0.4));
}

/* LIGHTBOX MODAL */
.soul-lightbox-overlay {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 99999;
	background: rgba(0, 0, 0, 0.95);
	align-items: center;
	justify-content: center;
	animation: soulLightboxFadeIn 0.3s ease;
	visibility: hidden;
	opacity: 0;
	pointer-events: none;
}

.soul-lightbox-overlay.soul-lightbox-active {
	display: flex;
	visibility: visible;
	opacity: 1;
	pointer-events: auto;
}

@keyframes soulLightboxFadeIn {
	from { opacity: 0; }
	to   { opacity: 1; }
}

.soul-lightbox-content {
	max-width: 90vw;
	max-height: 90vh;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
}

.soul-lightbox-content img {
	max-width: 100%;
	max-height: 78vh;
	object-fit: contain;
	border-radius: 10px;
	box-shadow: 0 8px 40px rgba(0, 0, 0, 0.6);
}

.soul-lightbox-info {
	background: rgba(255, 255, 255, 0.10);
	backdrop-filter: blur(10px);
	border-radius: 8px;
	padding: 0.75rem 1.5rem;
	text-align: center;
	color: white;
	display: flex;
	align-items: center;
	gap: 1rem;
}

.soul-lightbox-counter {
	font-size: 0.85rem;
	opacity: 0.65;
	white-space: nowrap;
}

/* Botão fechar */
.soul-lightbox-close {
	position: absolute;
	top: 1.25rem;
	right: 1.25rem;
	background: rgba(255, 255, 255, 0.15);
	border: 2px solid rgba(255, 255, 255, 0.3);
	color: white;
	font-size: 1.5rem;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	cursor: pointer;
	display: none;
	align-items: center;
	justify-content: center;
	transition: all 0.3s ease;
	z-index: 100000;
	line-height: 1;
	padding: 0;
	visibility: hidden;
	opacity: 0;
}

.soul-lightbox-overlay.soul-lightbox-active .soul-lightbox-close {
	display: flex;
	visibility: visible;
	opacity: 1;
}

.soul-lightbox-close:hover {
	background: rgba(255, 255, 255, 0.30);
	transform: rotate(90deg);
}

/* Botões prev/next */
.soul-lightbox-prev,
.soul-lightbox-next {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	background: rgba(255, 255, 255, 0.15);
	border: 2px solid rgba(255, 255, 255, 0.3);
	color: white;
	font-size: 3rem;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	cursor: pointer;
	display: none;
	align-items: center;
	justify-content: center;
	transition: all 0.3s ease;
	z-index: 100000;
	line-height: 1;
	padding: 0;
	visibility: hidden;
	opacity: 0;
}

.soul-lightbox-overlay.soul-lightbox-active .soul-lightbox-prev,
.soul-lightbox-overlay.soul-lightbox-active .soul-lightbox-next {
	display: flex;
	visibility: visible;
	opacity: 1;
}

.soul-lightbox-prev { left: 1rem; }
.soul-lightbox-next { right: 1rem; }

.soul-lightbox-prev:hover,
.soul-lightbox-next:hover {
	background: #652D92;
	border-color: #652D92;
}

@media (max-width: 480px) {
	.soul-lightbox-prev,
	.soul-lightbox-next {
		width: 40px;
		height: 40px;
		font-size: 2rem;
	}
	.soul-lightbox-prev { left: 0.25rem; }
	.soul-lightbox-next { right: 0.25rem; }
}

/* RESPONSIVE */

/* Tablet (768px+) */
@media (min-width: 768px) {
	.sobre-soul-mobile-carousel {
		display: none;
	}
	
	.sobre-soul-desktop-gallery {
		display: block;
	}
	
	.soul-gallery-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 20px;
	}
	
	.soul-gallery-item {
		border-radius: 15px;
	}
}

/* Desktop (1024px+) */
@media (min-width: 1024px) {
	.soul-gallery-grid {
		grid-template-columns: repeat(3, 1fr);
		gap: 20px;
	}
}

/* Mobile pequeno */
@media (max-width: 480px) {
	.soul-carousel-wrapper {
		gap: 10px;
	}
	
	.soul-carousel-btn {
		width: 60px;
		height: 60px;
	}
	
	.soul-carousel-btn svg {
		width: 50px;
		height: 50px;
	}
	
	.soul-carousel-slide img {
		height: 280px;
	}
	
	.sobre-soul-mobile-carousel {
		padding: 0 10px;
		margin-bottom: 60px;
	}
}

/* =========================================
   TOGGLE "CONTINUE LENDO..." - SOBRE A SOUL
   ========================================= */

.elementor-toggle .elementor-tab-content {
	display: none;
	padding: 20px 0;
	transition: all 0.3s ease;
}

.elementor-toggle-item.elementor-active .elementor-tab-content {
	display: block !important;
}

.elementor-toggle .elementor-tab-title {
	cursor: pointer;
	user-select: none;
	transition: all 0.3s ease;
}

.elementor-toggle .elementor-tab-title:hover {
	opacity: 0.8;
}

.elementor-toggle-item .elementor-toggle-icon-closed {
	display: inline-block;
}

.elementor-toggle-item .elementor-toggle-icon-opened {
	display: none;
}

.elementor-toggle-item.elementor-active .elementor-toggle-icon-closed {
	display: none;
}

.elementor-toggle-item.elementor-active .elementor-toggle-icon-opened {
	display: inline-block;
}

/* =========================================
   SEÇÃO CONTATO - ESTILIZAÇÃO COMPLETA
   ========================================= */

/* Background da seção de Contato */
#contato.elementor-section,
#contato {
	background-image: url('wp-content/uploads/2019/12/soularomaterapia-background-flores.jpg') !important;
	background-position: center center !important;
	background-repeat: no-repeat !important;
	background-size: cover !important;
	padding: 3% 0 0 0 !important;
	transition: background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s !important;
}

/* Títulos da seção Contato */
#contato .elementor-element-0886005 {
	text-align: center !important;
}

#contato .elementor-element-0886005 .elementor-heading-title {
	color: #3EA8A4 !important;
	font-size: 22px !important;
}

#contato .elementor-element-d410b66 {
	text-align: center !important;
}

#contato .elementor-element-d410b66 .elementor-heading-title {
	font-weight: 700 !important;
}

#contato .elementor-element-d410b66 > .elementor-widget-container {
	margin: -1% 0 0 0 !important;
	padding: 0 !important;
}

/* Texto descritivo */
#contato .elementor-element-4467b8b {
	text-align: center !important;
	color: #0B0A07 !important;
	font-size: 18px !important;
}

#contato .elementor-element-4467b8b > .elementor-widget-container {
	padding: 0 16% !important;
}

/* Inner section com formulário */
#contato .elementor-element-51990664 {
	padding: 0 0 70px 0 !important;
}

/* Campos do formulário */
#contato .elementor-field-group {
	padding-right: calc(10px / 2) !important;
	padding-left: calc(10px / 2) !important;
	margin-bottom: 10px !important;
}

#contato .elementor-form-fields-wrapper {
	margin-left: calc(-10px / 2) !important;
	margin-right: calc(-10px / 2) !important;
}

#contato .elementor-field-textual,
#contato textarea.elementor-field {
	background-color: #ffffff !important;
	border-width: 1px !important;
	border-color: #E5E5E5 !important;
}

#contato .elementor-field-textual:focus,
#contato textarea.elementor-field:focus {
	background-color: #ffffff !important;
	border-color: #E5E5E5 !important;
}

/* Botão de envio */
#contato .elementor-button {
	fill: #FFFFFF !important;
	color: #FFFFFF !important;
	background-color: #3EA8A4 !important;
}

#contato .elementor-button:hover,
#contato .elementor-button:focus {
	color: #FFFFFF !important;
	background-color: #0C7572 !important;
}

/* Responsivo */
@media (max-width: 767px) {
	#contato {
		padding: 5% 0 0 0 !important;
	}
	
	#contato .elementor-element-0886005 .elementor-heading-title {
		font-size: 16px !important;
	}
	
	#contato .elementor-element-d410b66 .elementor-heading-title {
		font-size: 23px !important;
	}
	
	#contato .elementor-element-4467b8b {
		font-size: 16px !important;
	}
	
	#contato .elementor-element-4467b8b > .elementor-widget-container {
		margin: 0 !important;
		padding: 0 !important;
	}
}
