@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&family=Playfair+Display:wght@600;700;800&display=swap');

:root{
	--sb-red:#F30612;
	--sb-pink:#FFB8B8;
	--sb-gold:#EDB53E;
	--sb-hot-pink:#F2609C;
	--sb-orange:#FC7530;
	--sb-cream:#F9F2EA;
	--sb-green:#314D17;
	--sb-text:#282421;
	--sb-review-panel:#FCE8E5;
	--sb-review-card:#FFF2EE;
	--sb-review-body-font:"Montserrat",Arial,sans-serif;
	--sb-review-title-font:"Playfair Display",Georgia,serif;
	--sb-review-section-bg:#F9F2EA;
	--sb-review-panel-bg:#FCE8E5;
	--sb-review-title-color:#314D17;
	--sb-review-text-color:#314D17;
	--sb-review-accent:#F30612;
	--sb-review-panel-radius:24px;
	--sb-review-photo-radius:48%;
	--sb-body:var(--sb-review-body-font);
	--sb-title:var(--sb-review-title-font);
}

.sb-review-section,
.sb-review-section *{
	box-sizing:border-box;
}

.sb-review-section{
	width:100%;
	padding:24px 0 34px;
	background:var(--sb-review-section-bg);
	color:var(--sb-review-text-color);
	font-family:var(--sb-body);
}

.sb-review-shell{
	width:100%;
	max-width:1220px;
	margin:0 auto;
	padding:0 28px;
}

.sb-review-heading{
	margin:0 0 22px;
	text-align:center;
}

.sb-review-heading-title{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:10px;
	margin:0;
	color:var(--sb-review-title-color);
	font-family:var(--sb-title);
	font-size:clamp(25px,3vw,36px);
	font-weight:700;
	line-height:1.18;
}

.sb-review-heading-heart{
	position:relative;
	width:19px;
	height:19px;
	transform:rotate(-8deg);
	flex:0 0 19px;
}

.sb-review-heading-heart::before,
.sb-review-heading-heart::after{
	content:"";
	position:absolute;
	top:4px;
	width:10px;
	height:14px;
	border:2px solid var(--sb-review-accent);
	border-radius:60% 60% 50% 50%;
	background:transparent;
}

.sb-review-heading-heart::before{
	left:1px;
	transform:rotate(-38deg);
	border-right-color:transparent;
}

.sb-review-heading-heart::after{
	right:1px;
	transform:rotate(38deg);
	border-left-color:transparent;
}

.sb-review-carousel{
	position:relative;
	padding:0 24px;
}

.sb-review-viewport{
	width:100%;
	overflow:hidden;
	border-radius:var(--sb-review-panel-radius);
	background:var(--sb-review-panel-bg);
	box-shadow:inset 0 0 0 1px rgba(243,6,18,.035);
}

.sb-review-track{
	display:flex;
	align-items:stretch;
	gap:0;
	will-change:transform,opacity;
	transition:transform .62s cubic-bezier(.22,.61,.36,1),opacity .28s ease;
}

.sb-review-card{
	position:relative;
	flex:0 0 calc(100% / var(--sb-review-desktop));
	min-width:0;
	display:flex;
	flex-direction:column;
	align-items:center;
	gap:0;
	min-height:250px;
	padding:28px 26px 30px;
	background:transparent;
	text-align:center;
}

.sb-review-card:not(:last-child)::after{
	content:"";
	position:absolute;
	top:18px;
	right:0;
	bottom:18px;
	width:1px;
	background:rgba(243,6,18,.10);
}

.sb-review-photo-wrap{
	width:112px;
	max-width:112px;
	aspect-ratio:.78/1;
	margin:0 auto 14px;
	flex:0 0 auto;
	overflow:hidden;
	border-radius:var(--sb-review-photo-radius);
	background:#fff;
	box-shadow:0 4px 14px rgba(72,42,33,.08);
}

.sb-review-photo{
	width:100%;
	height:100%;
	display:block;
	object-fit:cover;
}

.sb-review-content{
	width:100%;
	min-width:0;
}

.sb-review-stars{
	display:flex;
	align-items:center;
	gap:2px;
	justify-content:center;
	margin:8px 0 15px;
	line-height:1;
}

.sb-review-stars span{
	color:#D7C7C1;
	font-size:18px;
}

.sb-review-stars span.is-active{
	color:var(--sb-review-accent);
}

.sb-review-quote{
	margin:0;
	color:var(--sb-review-text-color);
	font-family:var(--sb-body);
	font-size:14px;
	font-style:normal;
	font-weight:500;
	line-height:1.7;
}

.sb-review-person{
	margin-top:17px;
}

.sb-review-name{
	display:block;
	margin:0;
	color:var(--sb-review-title-color);
	font-family:var(--sb-title);
	font-size:16px;
	font-weight:800;
	line-height:1.35;
}

.sb-review-age,
.sb-review-country{
	display:block;
	margin-top:3px;
	color:var(--sb-review-text-color);
	font-size:14px;
	font-weight:500;
	line-height:1.35;
}

.sb-review-arrow{
	position:absolute;
	z-index:6;
	top:50%;
	width:38px;
	height:52px;
	padding:0;
	display:grid;
	place-items:center;
	transform:translateY(-50%);
	border:0;
	border-radius:999px;
	background:#FFD9DD;
	background:color-mix(in srgb,var(--sb-review-accent) 14%,#fff);
	color:var(--sb-review-accent);
	cursor:pointer;
	box-shadow:0 3px 10px rgba(243,6,18,.10);
	transition:background .18s ease,transform .18s ease,box-shadow .18s ease;
}

.sb-review-arrow:hover{
	background:var(--sb-pink);
	background:color-mix(in srgb,var(--sb-review-accent) 25%,#fff);
	transform:translateY(-50%) scale(1.04);
	box-shadow:0 5px 14px rgba(243,6,18,.16);
}

.sb-review-arrow:focus-visible{
	outline:3px solid rgba(243,6,18,.25);
	outline-offset:3px;
}

.sb-review-arrow svg{
	width:21px;
	height:21px;
	fill:none;
	stroke:currentColor;
	stroke-width:2.5;
	stroke-linecap:round;
	stroke-linejoin:round;
}

.sb-review-arrow-prev{left:3px}
.sb-review-arrow-next{right:3px}

.sb-review-section.is-fading .sb-review-track{
	opacity:.22;
}

.sb-review-section[data-effect="none"] .sb-review-track{
	transition:none!important;
}

.sb-review-empty{
	padding:20px;
	border-radius:16px;
	background:var(--sb-review-panel-bg);
	color:var(--sb-review-text-color);
	font-family:var(--sb-body);
	font-size:14px;
	text-align:center;
}

@media (max-width:1050px){
	.sb-review-card{
		padding:25px 20px 28px;
	}
	.sb-review-photo-wrap{
		width:106px;
		max-width:106px;
	}
}

@media (max-width:767px){
	.sb-review-section{
		padding:22px 0 30px;
	}

	.sb-review-shell{
		padding:0 12px;
	}

	.sb-review-carousel{
		padding:0 19px;
	}

	.sb-review-heading{
		margin-bottom:18px;
	}

	.sb-review-heading-title{
		font-size:26px;
	}

	.sb-review-viewport{
		border-radius:var(--sb-review-panel-radius);
	}

	.sb-review-card{
		flex-basis:calc(100% / var(--sb-review-mobile));
		gap:0;
		min-height:0;
		padding:24px 18px 26px;
		text-align:center;
	}

	.sb-review-card::after{
		display:none;
	}

	.sb-review-photo-wrap{
		width:105px;
		max-width:105px;
		margin:0 auto 13px;
	}

	.sb-review-stars{
		justify-content:center;
		margin:8px 0 12px;
	}

	.sb-review-quote{
		font-size:14px;
		line-height:1.65;
	}

	.sb-review-arrow{
		width:34px;
		height:48px;
	}

	.sb-review-arrow-prev{left:0}
	.sb-review-arrow-next{right:0}


	/* Modo página de testimonios: en móvil se convierte en listado vertical. */
	.sb-review-section.is-mobile-stack .sb-review-carousel{
		padding:0;
	}

	.sb-review-section.is-mobile-stack .sb-review-viewport{
		overflow:visible;
		border-radius:0;
		background:transparent;
		box-shadow:none;
	}

	.sb-review-section.is-mobile-stack .sb-review-track{
		flex-direction:column;
		gap:18px;
		transform:none!important;
		transition:none!important;
		will-change:auto;
	}

	.sb-review-section.is-mobile-stack .sb-review-card{
		flex:0 0 auto;
		width:100%;
		padding:24px 18px 26px;
		border-radius:var(--sb-review-panel-radius);
		background:var(--sb-review-panel-bg);
		box-shadow:inset 0 0 0 1px rgba(243,6,18,.035);
	}

	.sb-review-section.is-mobile-stack .sb-review-card::after{
		display:none;
	}

	.sb-review-section.is-mobile-stack .sb-review-photo-wrap{
		width:min(150px,42vw);
		max-width:150px;
		aspect-ratio:1/1;
		margin:0 auto 14px;
		border-radius:0;
	}

	.sb-review-section.is-mobile-stack .sb-review-arrow{
		display:none;
	}
}

@media (max-width:480px){
	.sb-review-shell{
		padding:0 8px;
	}

	.sb-review-heading-title{
		font-size:23px;
	}

	.sb-review-carousel{
		padding:0 17px;
	}

	.sb-review-card{
		padding:22px 14px 24px;
	}

	.sb-review-photo-wrap{
		width:98px;
		max-width:98px;
	}

	.sb-review-arrow{
		width:31px;
		height:44px;
	}
}

/* v1.4: vista previa compacta + popup de testimonio completo */
.sb-review-more{
	appearance:none;
	margin:12px auto 0;
	padding:0;
	border:0;
	border-bottom:1px solid currentColor;
	background:transparent;
	color:var(--sb-review-accent);
	font-family:var(--sb-body);
	font-size:13px;
	font-weight:800;
	line-height:1.4;
	cursor:pointer;
}

.sb-review-more:hover{
	opacity:.78;
}

.sb-review-more:focus-visible{
	outline:3px solid rgba(243,6,18,.20);
	outline-offset:5px;
	border-radius:3px;
}

.sb-review-modal{
	position:fixed;
	z-index:999999;
	inset:0;
	display:none;
	align-items:center;
	justify-content:center;
	padding:24px;
	font-family:var(--sb-body);
}

.sb-review-modal.is-open{
	display:flex;
}

.sb-review-modal-backdrop{
	position:absolute;
	inset:0;
	background:rgba(33,24,22,.58);
	backdrop-filter:blur(2px);
}

.sb-review-modal-panel{
	position:relative;
	z-index:1;
	width:min(720px,100%);
	max-height:calc(100vh - 48px);
	overflow:auto;
	overscroll-behavior:contain;
	padding:34px 38px 36px;
	border-radius:var(--sb-review-panel-radius);
	background:var(--sb-review-panel-bg);
	color:var(--sb-review-text-color);
	box-shadow:0 24px 70px rgba(33,24,22,.24);
	text-align:center;
}

.sb-review-modal-close{
	position:absolute;
	top:12px;
	right:14px;
	width:38px;
	height:38px;
	display:grid;
	place-items:center;
	padding:0 0 2px;
	border:0;
	border-radius:999px;
	background:#FFE2E3;
	color:var(--sb-review-accent);
	font-family:Arial,sans-serif;
	font-size:28px;
	font-weight:400;
	line-height:1;
	cursor:pointer;
}

.sb-review-modal-close:hover{
	background:#FFD3D6;
}

.sb-review-modal-close:focus-visible{
	outline:3px solid rgba(243,6,18,.24);
	outline-offset:3px;
}

.sb-review-modal-photo-wrap{
	width:104px;
	aspect-ratio:.78/1;
	margin:0 auto 14px;
	overflow:hidden;
	border-radius:var(--sb-review-photo-radius);
	background:#fff;
	box-shadow:0 4px 14px rgba(72,42,33,.08);
}

.sb-review-modal-photo{
	width:100%;
	height:100%;
	display:block;
	object-fit:cover;
}

.sb-review-modal-name{
	display:block;
	padding:0 36px;
	color:var(--sb-review-title-color);
	font-family:var(--sb-title);
	font-size:19px;
	font-weight:800;
	line-height:1.35;
}

.sb-review-modal-stars{
	margin:8px 0 18px;
	color:var(--sb-review-accent);
	font-size:20px;
	line-height:1;
}

.sb-review-modal-stars span{
	color:#D7C7C1;
}

.sb-review-modal-stars span.is-active{
	color:var(--sb-review-accent);
}

.sb-review-modal-text{
	color:var(--sb-review-text-color);
	font-size:15px;
	font-weight:500;
	line-height:1.75;
	text-align:left;
	white-space:pre-line;
}

.sb-review-modal-person{
	margin-top:22px;
	padding-top:18px;
	border-top:1px solid rgba(243,6,18,.11);
}

.sb-review-modal-age,
.sb-review-modal-country{
	display:block;
	margin-top:3px;
	color:var(--sb-review-text-color);
	font-size:14px;
	font-weight:600;
	line-height:1.45;
}

body.sb-review-modal-open{
	overflow:hidden;
}

@media (max-width:767px){
	.sb-review-modal{
		padding:14px;
	}

	.sb-review-modal-panel{
		max-height:calc(100vh - 28px);
		padding:30px 22px 28px;
		border-radius:var(--sb-review-panel-radius);
	}

	.sb-review-modal-name{
		padding:0 28px;
		font-size:17px;
	}

	.sb-review-modal-text{
		font-size:14px;
		line-height:1.7;
	}
}
