* {
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
	text-decoration: none !important;
	list-style: none !important;
	outline: none !important;
	margin: 0;
	padding: 0;
}
html {
	height: 100%;
}
body {
	color: #888888;
	font-size: 15px;
	font-family: "Poppins", sans-serif;
	height: 100%;
	overflow-x: hidden;
}
a {
	text-decoration: none !important;
}
a:hover {
	color: var(--cv-amber) !important;
}
img {
	max-width: 100%;
	height: auto;
	vertical-align: middle;
}
span, a {
	display: inline-block;
	color: inherit;
}
h1, h2, h3, h4, h5, h6 {
	color: #151515;
	font-weight: 600;
	font-family: "Open Sans", sans-serif;
	margin: 0;
}
p {
	line-height: 1.6;
	font-weight: 400;
	margin: 0;
}
h1 {
	font-size: 40px;
}
h2 {
	font-size: 35px;
}
h3 {
	font-size: 30px;
}
h4 {
	font-size: 26px;
}
h5 {
	font-size: 15px;
}
h6 {
	font-size: 13px;
}
h4 {
	font-weight: 400;
}
h6 {
	font-weight: bold;
}
.navbar {
	position: fixed;
	right: 0;
	left: 0;
	width: 100%;
	padding-left: 0;
	padding-right: 0;
	min-height: 50px;
	line-height: 50px;
	background: transparent;
	z-index: 1030;
}
.navbar .active {
	color: var(--cv-gold-dark) !important;
	font-weight: 600;
}
.nav-scroll .navbar-nav > li > a.active,
.nav-scroll .active {
	color: var(--cv-gold-dark) !important;
}
.navbar .navbar-brand {
}
.navbar .nav-item {
	margin: 0 5px;
	padding: 0;
}
.navbar .nav-item a {
	color: var(--cv-ink);
	font-weight: 300;
}
.navbar .nav-link {
	position: relative;
	padding: 0;
}
.navbar .navbar-toggler {
	cursor: pointer;
}
.navbar .navbar-toggler span {
	color: #fff;
}
.navbar-style2 .active:after, .navbar-style2 .nav-link:after {
	display: none;
}
.nav-scroll {
	background: #fff;
	-webkit-box-shadow: 0 1px 8px 3px rgba(0, 0, 0, 0.0509803922);
	box-shadow: 0 1px 8px 3px rgba(0, 0, 0, 0.0509803922);
	-webkit-transition: all .4s ease;
	transition: all .4s ease;
}
.nav-scroll .navbar-nav > li > a {
	color: #333;
}
.nav-scroll .navbar-brand img {
	-webkit-transform: scale(1.03) !important;
	transform: scale(1.03) !important;
}
.nav-scroll .navbar-toggler {
	cursor: pointer;
}
.nav-scroll .navbar-toggler span {
	color: #333;
}
.nav-scroll .nav-link:hover:after {
	background-color: var(--cv-gold);
}
.nav-scroll .active {
	position: relative;
}
.banner {
	background: linear-gradient(170deg, #ffffff 0%, var(--cv-cream) 60%, #f2e9d3 100%);
	color: var(--cv-ink);
	text-align: center;
	width: 100%;
}
.banner-overlay {
	background: transparent;
	padding:120px 0px 110px;
}
.banner h1 {
	color:#ffffff;
}
.banner p {
	margin:15px auto 15px;
	max-width: 670px
}
.banner-btn {
	background: var(--cv-gold);
	padding: 12px 45px;
	font-size: 15px;
	border-radius: 30px;
	margin-top: 30px;
}
.banner-btn:hover {
	background: #ffffff;
	color:var(--cv-gold);
}
/* Los nombres de la marca y de los productos nunca se parten entre dos líneas */
.nw { white-space: nowrap; }

/* Antetítulo: el método arriba, el producto como titular */
.section-eyebrow {
	display: block;
	font-family: var(--font-body);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--cv-gold);
	margin-bottom: 12px;
}
/* Sobre mí · opción Retrato */
.about-us .row {
	align-items: center;
}
.about-us .section-img {
	padding-right: 30px;
}
.about-story {
	padding-left: 40px;
}
@media (max-width: 991px) {
	.about-us .section-img { padding-right: 0; }
	.about-story { padding-left: 0; }
}
.about-story .section-eyebrow { text-align: left; }
.story-hook {
	font-family: var(--font-display);
	font-size: 30px;
	line-height: 1.4;
	color: var(--cv-ink);
	margin-bottom: 22px;
}
.about-story p {
	line-height: 1.9;
	margin-bottom: 16px;
}
.story-close {
	font-family: var(--font-display);
	font-size: 20px;
	line-height: 1.65;
	color: var(--cv-gold-dark);
}
@media (max-width: 767px) {
	.story-hook { font-size: 24px; }
	.about-story { text-align: center; margin-top: 30px; }
	.about-story .section-eyebrow { text-align: center; }
}

.lead-paragraph {
	font-family: var(--font-display);
	font-size: 19px;
	line-height: 1.75;
	color: var(--cv-ink);
	opacity: .88;
}
.mb-50 { margin-bottom: 50px; }

/* ===== Círculo Virtuoso: identidad redonda ===== */

/* Imagen de sección en círculo */
.section-img { text-align: center; }
.section-img img {
	width: min(380px, 100%);
	aspect-ratio: 1 / 1;   /* siempre redonda, aunque se estreche la ventana */
	height: auto;
	object-fit: cover;
	object-position: 56% 40%;
	border-radius: 50%;
	/* aro dorado concéntrico + sombra, todo con box-shadow sobre la propia foto
	   (14px de separación en blanco y 1px de línea: #d6bc71 = --cv-gold-soft) */
	box-shadow:
		0 0 0 14px #ffffff,
		0 0 0 15px #d6bc71,
		0 12px 40px 0 rgba(60, 48, 20, 0.18);
}
@media (max-width: 767px) {
	.section-img img { width: min(280px, 100%); }
}

/* Iconos dentro de un círculo dorado */
.service-box .icon {
	width: 74px;
	height: 74px;
	margin: 0 auto 18px;
	border-radius: 50%;
	background: var(--cv-cream);
	border: 1px solid var(--cv-gold-soft);
	display: flex;
	align-items: center;
	justify-content: center;
}
.service-box .icon i {
	font-size: 26px;
	color: var(--cv-gold);
}

/* Tarjetas de igual altura y alineadas */
.services .row > [class*="col-"] {
	display: flex;
}
.services .service-box {
	width: 100%;
	display: flex;
	flex-direction: column;
	border-radius: 22px;
}
.services .service-box .icon-text {
	display: flex;
	flex-direction: column;
	flex: 1;
}
.services .service-box .icon-text > p:last-child {
	margin-top: auto;
	margin-bottom: 0;
}
.services .row > .section-title,
.services .row > [class*="offset-"],
.services .row > .text-center,
.services .row > .col-12 {
	display: block;
}

/* ===== Rueda del método ===== */
.method-wheel {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 60px;
	flex-wrap: wrap;
	max-width: 1000px;
	margin: 0 auto;
}
.method-wheel svg {
	width: 380px;
	max-width: 90vw;
	height: auto;
	flex: none;
}
.mw-node circle {
	fill: var(--cv-cream);
	stroke: var(--cv-gold);
	stroke-width: 1.5;
}
.mw-num {
	fill: var(--cv-gold);
	font-family: var(--font-body);
	font-size: 15px;
	font-weight: 700;
	text-anchor: middle;
	letter-spacing: .1em;
}
.mw-label {
	fill: var(--cv-ink);
	font-family: var(--font-display);
	font-size: 25px;
	text-anchor: middle;
}
.mw-center {
	fill: #fff;
	font-family: var(--font-display);
	font-size: 28px;
	text-anchor: middle;
}
.method-steps {
	list-style: none;
	padding: 0;
	max-width: 400px;
	text-align: left;
}
.method-steps li {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	margin-bottom: 20px;
	line-height: 1.7;
	font-size: 15px;
}
.method-steps li span {
	flex: none;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: var(--cv-gold);
	color: #fff;
	display: grid;
	place-items: center;
	font-size: 14px;
	font-weight: 600;
}
.method-steps li p { margin: 0; }
.method-steps strong { color: var(--cv-ink); font-weight: 600; }
@media (max-width: 991px) {
	.method-wheel { gap: 34px; }
	.method-steps { max-width: 100%; text-align: left; }
}

/* ===== Anillos de progreso ===== */
.rings-demo { text-align: center; margin: 10px auto 40px; }
.rings-title {
	font-family: var(--font-display);
	font-size: 19px;
	color: var(--cv-ink);
	margin-bottom: 26px;
}
.rings-row {
	display: flex;
	justify-content: center;
	gap: 46px;
	flex-wrap: wrap;
}
.ring { width: 130px; }
.ring svg { width: 100%; height: auto; transform: rotate(-90deg); }
.ring-bg { fill: none; stroke: #fff; stroke-width: 12; opacity: .85; }
.ring-fill { fill: none; stroke-width: 12; stroke-linecap: round; }
.ring-pct {
	fill: var(--cv-ink);
	font-family: var(--font-display);
	font-size: 26px;
	text-anchor: middle;
	transform: rotate(90deg);
	transform-origin: 70px 70px;
}
.ring span {
	display: block;
	margin-top: 10px;
	font-size: 14px;
	color: var(--cv-ink);
}

/* ===== Transición curva entre secciones ===== */
.curve-top {
	position: relative;
	border-top-left-radius: 50% 90px;
	border-top-right-radius: 50% 90px;
	margin-top: -1px;
}
.curve-bottom {
	border-bottom-left-radius: 50% 90px;
	border-bottom-right-radius: 50% 90px;
	margin-bottom: -1px;
	overflow: hidden;
}
@media (max-width: 767px) {
	.curve-top { border-top-left-radius: 50% 45px; border-top-right-radius: 50% 45px; }
	.curve-bottom { border-bottom-left-radius: 50% 45px; border-bottom-right-radius: 50% 45px; }
}

/* ===== Banner ===== */
.banner-inner {
	position: relative;
}
/* Portada: logo y mensaje lado a lado sobre fondo claro */
.banner-split {
	display: flex;
	align-items: center;
	justify-content: flex-start;   /* el bloque entero (logo + texto) se apoya a la izquierda */
	gap: 2.5rem;
	flex-wrap: wrap;
	text-align: left;
}
.banner-logo {
	width: 420px;
	max-width: 74vw;
	height: auto;
	flex: none;
}
.banner-text { max-width: 460px; }
.banner-headline {
	font-family: var(--font-display);
	font-size: 40px;
	line-height: 1.25;
	color: var(--cv-ink);
	margin-bottom: 18px;
}
.banner-headline em {
	font-style: italic;
	color: var(--cv-gold-dark);
}
.banner-sub {
	font-size: 15px;
	line-height: 1.8;
	color: var(--muted);
	margin-bottom: 30px;
}
.banner .banner-btn {
	display: inline-block;
	background: var(--cv-gold);
	color: #fff;
	padding: 14px 38px;
	border-radius: 999px;
	font-size: 15px;
	font-weight: 600;
	margin-top: 0;
}
.banner .banner-btn:hover { background: var(--cv-gold-dark); color: #fff; }
@media (max-width: 991px) {
	/* apilados: todo centrado, incluido el logo */
	.banner-split { gap: 1.2rem; text-align: center; justify-content: center; }
	.banner-logo { margin: 0 auto; width: 300px; }
	.banner-text { max-width: 100%; }
	.banner-headline { font-size: 30px; }
}
/* título real para buscadores y lectores de pantalla, sin ocupar sitio */
.visually-hidden {
	position: absolute;
	width: 1px; height: 1px;
	margin: -1px; padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}
.banner-claim {
	display: inline-block;
	font-family: var(--font-display);
	font-size: 21px;
	line-height: 1.5;
	margin-top: 34px !important;
	padding: 14px 38px;
	border: 1px solid rgba(255, 255, 255, .5);
	border-radius: 999px;
	background: rgba(38, 34, 26, .16);
}
.banner-claim span {
	font-style: italic;
	opacity: .95;
}
@media (max-width: 575px) {
	.banner-ring { width: 320px; height: 320px; padding: 26px; }
	.banner-ring h1 { font-size: 24px; }
	.banner-claim { font-size: 17px; padding: 12px 24px; }
}

/* El nombre ya está en la portada: el logo del menú espera a que ésta salga de pantalla */
.navbar-logo img {
	opacity: 0;
	transition: opacity .3s ease;
	height: 42px;          /* proporcionado con el texto del menú */
	width: auto;
}
.navbar.show-logo .navbar-logo img { opacity: 1; }
@media (max-width: 991px) {
	.navbar-logo img { height: 34px; }
}

/* Aviso propio tras apuntarse (en vez de saltar a la página de Brevo) */
.hidden { display: none !important; }
.form-feedback {
	max-width: 520px;
	margin: 0 auto;
	background: var(--cv-sage);
	border-radius: 22px;
	padding: 34px 30px;
	text-align: center;
}
.form-feedback .feedback-icon {
	display: grid;
	place-items: center;
	width: 66px; height: 66px;
	margin: 0 auto 16px;
	border-radius: 50%;
	background: #fff;
	color: var(--cv-gold);
	font-size: 24px;
}
.form-feedback h4 {
	font-family: var(--font-display);
	font-size: 24px;
	margin-bottom: 10px;
	color: var(--cv-ink);
}
.form-feedback p {
	font-size: 15px;
	line-height: 1.75;
	color: var(--cv-ink);
	opacity: .85;
	margin: 0;
}
.form-feedback.error {
	background: #fdeceb;
	padding: 20px 24px;
	margin-top: 16px;
}

/* Lista de espera: compacta, como el resto de secciones */
.contact.section-padding {
	padding-bottom: 70px;
}
.contact .section-title {
	padding-bottom: 45px;
}
.contact .contact-form {
	max-width: 520px;
	margin: 0 auto;
}
.contact .form-group {
	margin-bottom: 18px;
}
.section-padding {
	padding: 100px 0px;
}
.section-title {
	padding-bottom: 80px;
}
.section-title h3 {
	color: var(--cv-ink);
	font-family: var(--font-display);
	font-weight: 500;
	margin-bottom: 22px;
}
.section-title p {
	width: 60%;
	margin: 15px auto 20px;
}
.section-title-line {
	background: #ececec;
	content: "";
	height: 1px;
	position: absolute;
	left: calc(50% - 87px);
	width: 175px;
}
.section-title-line:after {
	background: var(--cv-gold);
	bottom: -1px;
	content: "";
	height: 2px;
	left: calc(50% - 22px);
	position: absolute;
	width: 45px;
}
.mb-30 {
	margin-bottom: 30px !important;
}
.mb-50 {
	margin-bottom: 50px !important;
}
.mb-100 {
	margin-bottom: 100px !important;
}
.mt-50 {
	margin-top: 50px !important;
}
.mt-100 {
	margin-bottom: 100px !important;
}
.pd-lt-10 {
	padding-left:10px;
}
.no-padding {
	padding: 0px !important;
}
.sub-title-paragraph {
}
.sub-title-paragraph h4 {
	margin-bottom: 5px;
}
.sub-title-paragraph h5 {
	color:var(--cv-amber);
}
.sub-title-paragraph p {
	padding-top: 20px;
	font-weight: 300;
	font-size: 14px;
	line-height: 25px;
}
.anchor-btn {
	background: var(--cv-amber);
	padding: 10px 20px;
	color: #ffffff !important;
	border-radius: 3px;
	margin-top: 30px;
}
.bg-grey {
	background-color: var(--cv-cream);
}
.bg-sage {
	background-color: var(--cv-sage);
}
.bg-white {
	background: #ffffff;
}
.service-box {
	padding: 50px;
	border-radius: 4px;
	-webkit-box-shadow: 0px 5px 35px 0px rgba(148, 146, 245, 0.15);
	box-shadow: 0px 5px 35px 0px rgba(148, 146, 245, 0.15);
}
.service-box .icon {
}
.service-box .icon i {
	font-size: 40px;
	color: var(--cv-gold);
}
.icon-text {
}
.icon-text h4 {
	font-size: 16px;
	font-weight: 600;
	margin: 10px 0px;
	position: relative;
	padding-bottom: 14px;
}
.icon-text h4:after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 60px;
	height: 2px;
	background-color: #bcbcbc;
	-webkit-transition: all 0.3s ease-in-out;
	transition: all 0.3s ease-in-out;
	left: calc(50% - 30px);
}
.icon-text p {
	line-height: 25px;
	font-weight: 300;
}
.portfolio .filtering {
	border-radius: 28px;
	margin: 0 auto;
	border: 1px dotted #e1e1e1;
}
.portfolio .filtering button {
	position: relative;
	top: -1px;
	font-size: 14px;
	font-weight: 400;
	padding: 10px 30px;
	letter-spacing: 2px;
	color: #777;
	cursor: pointer;
	-webkit-transition: all 0.3s ease-in-out;
	transition: all 0.3s ease-in-out;
	background: none;
	border: 0;
}
.portfolio .filtering .active {
	background-color: var(--cv-gold);
	color: #fff;
	border-radius: 28px;
	-webkit-box-shadow: 0px 10px 30px -4px rgba(0, 0, 0, 0.2);
	box-shadow: 0px 10px 30px -4px rgba(0, 0, 0, 0.2);
}
.portfolio .gallery {
	padding: 0;
	overflow: hidden;
	overflow: hidden !important;
	position: relative;
}
.portfolio .gallery .item-img {
	position: relative;
	overflow: hidden;
}
.portfolio .gallery .item-img a {
	position: absolute;
	width: 100%;
	height: 100%;
	z-index: 1;
}
.portfolio .gallery .item-img .part-img {
	position: relative;
}
.portfolio .gallery .item-img .part-img img {
	width: 100%;
	-webkit-transition: all 0.3s ease-in-out;
	transition: all 0.3s ease-in-out;
}
.portfolio .gallery .item-img .part-img .overlay-img {
	position: absolute;
	top: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
}
.portfolio .gallery .item-img .part-img .overlay-img:after {
	content: '';
	position: absolute;
	left: -100%;
	top: 0;
	width: 100%;
	height: 50%;
	background: rgba(0, 0, 0, 0.8);
	-webkit-transition: all 150ms ease-in-out 200ms;
	transition: all 150ms ease-in-out 200ms;
}
.portfolio .gallery .item-img .part-img .overlay-img:before {
	content: '';
	position: absolute;
	right: -100%;
	bottom: 0;
	width: 100%;
	height: 50%;
	background: rgba(0, 0, 0, 0.8);
	-webkit-transition: all 150ms ease-in-out 200ms;
	transition: all 150ms ease-in-out 200ms;
}
.portfolio .gallery .item-img .part-img .overlay-img a {
	width: 100%;
	height: 100%;
}
.portfolio .gallery .item-img .part-img .overlay-img h4 {
	color: transparent;
	overflow: hidden;
	position: absolute;
	top: 54px;
	right: 25px;
	z-index: 2;
	font-size: 18px;
	-webkit-transition: color 150ms ease-in-out 200ms;
	transition: color 150ms ease-in-out 200ms;
	text-align: center;
	padding: 0 10px;
}
.portfolio .gallery .item-img .part-img .overlay-img h4:before {
	content: '';
	background: #fff;
	bottom: 0;
	position: absolute;
	right: 100%;
	top: 0;
	width: 100%;
	-webkit-transition: right 600ms ease-in-out 0s;
	transition: right 600ms ease-in-out 0s;
}
.portfolio .gallery .item-img .part-img .overlay-img h6 {
	color: transparent;
	overflow: hidden;
	position: absolute;
	top: 30px;
	right: 25px;
	z-index: 2;
	font-size: 18px;
	-webkit-transition: color 150ms ease-in-out 200ms;
	transition: color 150ms ease-in-out 200ms;
	text-align: center;
	padding: 0 10px;
}
.portfolio .gallery .item-img .part-img .overlay-img h6::before {
	content: '';
	background: #fff;
	bottom: 0;
	right: auto;
	position: absolute;
	left: 100%;
	top: 0;
	width: 100%;
	-webkit-transition: left 600ms ease-in-out 0s;
	transition: left 600ms ease-in-out 0s;
}
.portfolio .gallery .item-img:hover img {
	-webkit-transform: scale(1.04);
	transform: scale(1.04);
}
.portfolio .gallery .item-img:hover .overlay-img:after {
	left: 0;
	-webkit-transition: all .8s;
	transition: all .8s;
	opacity: 1;
}
.portfolio .gallery .item-img:hover .overlay-img:before {
	right: 0;
	width: 100%;
	height: 50%;
	-webkit-transition: all .8s;
	transition: all .8s;
	opacity: 1;
}
.portfolio .gallery .item-img:hover .overlay-img h4 {
	color: white;
}
.portfolio .gallery .item-img:hover .overlay-img h4:before {
	right: -100%;
}
.portfolio .gallery .item-img:hover .overlay-img h6 {
	color: white;
}
.portfolio .gallery .item-img:hover .overlay-img h6:before {
	left: -100%;
}
.portfolio-style2 .filtering {
	border: 1px solid #e1e1e1;
}
.portfolio-style2 .filtering .active {
	background-color: #1c1c1c;
}
.testimonials {
	background:url(images/bg1.jpg) no-repeat 0% 0% / 100% 100%;
	width:100%;
}
.testimonials-overlay {
	background: rgba(0,0,0,0.9);
}
.testimonials .testimonial-item p {
	max-width: 700px;
	color: #ffffff;
	margin-bottom: 30px !important;
}
.testimonials .icon i {
	color: var(--cv-gold);
	font-size: 47px;
	margin-bottom: 25px;
}
.testimonials h5 {
	color:var(--cv-amber);
}
.testimonials h6 {
	color: #ffffff;
	margin-bottom: 10px !important;
}
.owl-theme .owl-dots .owl-dot.active span, .owl-theme .owl-dots .owl-dot:hover span {
	background: var(--cv-gold) !important;
}
.info-box {
	position:relative;
	padding-bottom:30px;
}
.info-box .icon {
	display:inline-block;
	width: 30px;
}
.info-box .icon i {
	font-size: 20px;
	color: var(--cv-gold);
}
.info-box .content {
	display:inline-block;
	margin-left:10px;
}
.info-box .content h4 {
	font-size: 20px;
}
.contact-form input, .contact-form textarea {
	border: none;
	border-bottom: 1px solid #1c1c1c;
	border-radius: 0;
	padding: 10px 10px 10px 0;
	margin-bottom: 20px;
	font-size: 14px;
	width:100%;
}
.bttn {
	position: relative;
	cursor: pointer;
	color: #fff;
	-webkit-transition: all 0.3s ease-in-out;
	transition: all 0.3s ease-in-out;
	background: var(--cv-gold);
	padding: 12px 45px;
	font-size: 15px;
	border-radius: 30px;
	margin-top: 30px;
	border: none;
}
.footer-copy {
	background: #242424;
	color: #ffffff;
	font-size: 13px;
	text-align: center;
	padding:7px 0px;
}
@media all and (max-width:991px) {
.navbar .navbar-collapse {
	overflow: auto;
	background: rgba(0, 0, 0, 0.72);
	color: #fff !important;
	text-align: center;
	padding: 10px 0;
}
.nav-scroll .navbar-collapse {
	background: #fff !important;
}
}
@media all and (max-width:768px) {
.nav-scroll .navbar-brand img, .navbar-brand img{
	transform: none !important;
	-webkit-transform: none !important;
}
.banner h1 {
	font-size: 30px;
}
.section-title p {
	width: 100%;
}
.section-title h3 {
	margin-bottom: 12px;
	font-size: 25px;
}
.section-padding {
	padding: 60px 0px;
}
.section-title {
	padding-bottom: 40px;
}
.portfolio .filtering {
	border:none;
}
.portfolio .filtering .active {
	border-radius: 0px;
}
.portfolio .filtering button {
	font-size: 10px;
	padding: 10px 15px;
}
.banner-overlay {
	padding: 60px 0px 70px;
}
}
