@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;700&family=Old+Standard+TT:ital,wght@0,400;0,700;1,400&family=Playfair+Display:ital,wght@0,400;0,700;1,400&display=swap');
/*
font-family: 'Cinzel', serif;
font-family: 'Old Standard TT', serif;
font-family: 'Playfair Display', serif;
*/

* {
	word-break: normal !important;
	word-wrap: normal !important;
	overflow-wrap: normal !important;
	-webkit-hyphens: none !important;
	-moz-hyphens: none !important;
	-ms-hyphens: none !important;
	hyphens: none !important;
}

:root {
	--paper-bg: #ece5d5;
	/* Old paper color */
	--paper-light: #f7f4ed;
	/* Lighter paper */
	--ink-black: #1a1a1a;
	--ink-grey: #3a3a3a;
	--sepia-accent: #5c4d3c;
	--dark-bg: #1a1a1a;
	--text-white: #ffffff;
	--wine-color: #a31d5b;
	/* Even more saturated and purple-magenta */
	/* More saturated deep purple/wine */
	--champagne-gold: #ffc84a;
	/* More saturated/vibrant gold/beige for contrast */
	/* Reverted to original simple style: solid border */
	--border-style: 2px solid var(--ink-black);
}

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	text-decoration: none;
	/*list-style: none;*/
	font-family: 'Old Standard TT', serif;
	color: var(--ink-black);
}

/*header.....................................................*/

header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;

	/* White header background */
	background-color: #fff;
	border-bottom: 2px solid var(--ink-black);

	justify-content: center;
	align-items: center;
	transition: 0.6s;
	padding: 0vh 0vw 0vh 0vw;
	z-index: 100000;
}


.header__line {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 0 0 0 0;
}


.separador {
	height: 2px;
	width: 100vw;
	background: var(--ink-black);
	display: none;
	/* Hide original separator as we use border-bottom */
}

.header_logo {
	height: 6vh;
	/* Logo solid black by default as requested */
	filter: brightness(0);
	transition: filter 0.4s ease;
}

.header__nav--divlogo:hover .header_logo {
	/* Sophisticated thin/outlined look on hover */
	filter: opacity(0.6) contrast(15) grayscale(1) brightness(0.4);
}


.header__nav {
	display: flex;
	flex-wrap: wrap;

	position: relative;

	justify-content: center;
	align-items: center;
	gap: 10px;
	/* Space between items */
}

/* Mobile and Tablet (Vertical) + Mobile (Landscape) */
@media (max-width: 768px),
(max-height: 500px) and (max-width: 950px) {

	header,
	header.sticky {
		background: transparent;
		border: none;
		height: 0;
		/* Collapsed bar */
	}

	.header__nav {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100vh;
		background: #fff;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		z-index: 10001;
		opacity: 0;
		visibility: hidden;
		transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
		pointer-events: none;
	}

	.header__nav.active {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
	}

	.header_logo {
		height: 4vh;
	}

	/* Logo floating independently on mobile */
	#logo-mobile-container {
		position: fixed;
		top: 2.5vh;
		left: 5vw;
		z-index: 10003;
		margin: 0;
		padding: 0;
		display: block !important;
	}

	.header__nav-- {
		margin: 2vh 0;
		width: 80%;
		display: flex;
		justify-content: center;
		opacity: 0;
		transform: translateY(20px);
		transition: all 0.4s ease;
	}

	.header__nav.active .header__nav-- {
		opacity: 1;
		transform: translateY(0);
	}

	/* Delay effects for nav items for sophisticated feel */
	.header__nav.active .header__nav--:nth-child(1) {
		transition-delay: 0.1s;
	}

	.header__nav.active .header__nav--:nth-child(2) {
		transition-delay: 0.2s;
	}

	.header__nav.active .header__nav--:nth-child(3) {
		display: none;
	}

	/* Hide duplicate logo in list */
	.header__nav.active .header__nav--:nth-child(4) {
		transition-delay: 0.3s;
	}

	.header__nav.active .header__nav--:nth-child(5) {
		transition-delay: 0.4s;
	}

	.header__nav--div {
		font-size: 3.5vh;
		width: 100%;
		text-align: center;
	}

	/* Responsive Font Size Boost */
	p {
		font-size: 1.15rem !important;
	}

	h3 {
		font-size: 1.25rem !important;
	}

	h5 {
		font-size: 1rem !important;
	}

	.buy,
	.buy2 {
		font-size: 1.1rem !important;
	}
}

/* Hamburger Sophisticated Action Button */
.hamburger-sophisticated {
	display: none;
}

@media (max-width: 768px),
(max-height: 500px) and (max-width: 950px) {
	.hamburger-sophisticated {
		display: flex;
		position: fixed;
		top: 2vh;
		right: 5vw;
		width: 55px;
		height: 55px;
		background: #fff;
		border: 2px solid var(--ink-black);
		border-radius: 50%;
		/* CIRCLE */
		justify-content: center;
		align-items: center;
		z-index: 10005;
		cursor: pointer;
		box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
		transition: all 0.3s ease;
		padding: 0;
	}

	.hamburger-sophisticated:active {
		transform: scale(0.95);
	}

	.hamburger-box {
		width: 22px;
		height: 14px;
		position: relative;
	}

	.hamburger-box span {
		display: block;
		position: absolute;
		width: 100%;
		height: 2px;
		background: var(--ink-black);
		transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	}

	.line-1 {
		top: 0;
	}

	.line-2 {
		top: 6.5px;
	}

	.line-3 {
		top: 13px;
	}

	.hamburger-sophisticated.active .line-1 {
		transform: translateY(6.5px) rotate(45deg);
	}

	.hamburger-sophisticated.active .line-2 {
		opacity: 0;
	}

	.hamburger-sophisticated.active .line-3 {
		transform: translateY(-6.5px) rotate(-45deg);
	}
}

.header__nav-- {
	margin: 0.5vh 4vmin 0.8vh 4vmin;
}

.header__nav--divlogo {
	position: relative;
	display: flex;

	position: relative;
	padding: 0.5vh 0.5vh 0.5vh 0.8vh;

	color: var(--ink-black);
	font-family: 'Cinzel', serif;
	font-weight: 400;
	font-size: 2.15vh;
	transition: 0.6s;
	text-transform: uppercase;
}

.header__nav--divlogo:hover {
	background-color: transparent;
	/* Removed black background highlight */
	color: #000;
	padding: 0.5vh 0.5vh 0.5vh 0.8vh;
	/* Match non-hover padding to prevent jumping */
}


.header__nav--div {
	position: relative;
	display: flex;

	position: relative;
	padding: 0.5vh 3vmin 0.8vh 3vmin;

	color: #000;
	font-family: 'Cinzel', serif;
	font-weight: 400;
	/* Removed bold */
	font-size: clamp(14px, 2.15vh, 22px);
	transition: 0.6s;
	text-transform: uppercase;
	/* Removed subtle divider line if desired "cleaner" look, but user said "keep borders that were there".
       Original header didn't have vertical dividers. I will remove them to reduce "lines everywhere". */
}

.header__nav--div:last-child {
	border-right: none;
}

.header__nav--div:hover {

	background-color: #000;
	color: #fff;
	padding: 0.5vh 4vmin 0.8vh 4vmin;
}

.header__nav--div2 {
	/* Keep border for the "button-like" nav item as original had it */
	border: 2px solid #000;

	position: relative;
	display: flex;

	position: relative;
	padding: 0.5vh 3vmin 0.8vh 3vmin;

	color: #000;
	font-family: 'Cinzel', serif;
	font-weight: 400;
	/* Removed bold */
	font-size: 2.15vh;
	transition: 0.6s;
}

.header__nav--div2:hover {

	background-color: #000;
	color: #fff;
	padding: 0.5vh 4vmin 0.8vh 4vmin;
}

header.sticky {
	padding: 0vh;
	background: #fff;
	border-bottom: 2px solid var(--ink-black);

}

header.sticky .header__nav--div {
	color: var(--ink-black);
}

header.sticky .header__nav--div:hover {
	background-color: rgba(0, 0, 0, 0.05);
}

header.sticky .header__nav--divlogo {
	color: var(--ink-black);
}

header.sticky .header__nav--divlogo:hover {
	background-color: transparent;
}

header.sticky .header__nav--div2 {
	color: var(--ink-black);
	border: 2px solid var(--ink-black);
}

header.sticky .header__nav--div2:hover {
	color: var(--paper-bg);
	border: 2px solid var(--ink-black);
	background-color: var(--ink-black);
}

header.sticky .header__line {
	padding: 0;
}

header.sticky .separador {
	background: var(--ink-black);
	height: 2px;
	display: none;
}


.whatsapp-button {
	position: fixed;
	bottom: 16vh;
	/* Puedes ajustar la distancia desde la parte inferior */
	right: 20px;
	/* Puedes ajustar la distancia desde la parte derecha */
	z-index: 1000;


	padding: 0.7vmax;

	background-color: #fff;
	border: 2px solid #000;
	backdrop-filter: blur(3px);

	transition-duration: 0.4s;
}



.whatsapp-button:hover {
	background-color: #000;
	border: 2px solid #000;
}

.whatsapp-button:hover img {
	filter: brightness(0) invert(1);
	/* Invert to white on hover since background turns black */
}

.whatsapp-button img {
	width: 4.5vmax;
	/* Ajusta el tamaño del ícono según sea necesario */
	height: auto;
	margin: auto;
	filter: brightness(0);
	/* Make WhatsApp icon total black */
}



.hidden {
	display: none;
}

/*header.....................................................*/



/*body........................................................*/

body {
	justify-content: center;
	align-items: center;
	width: 100%;
	background: #fff;
	/* White background as requested */

	background-size: cover;
	background-repeat: repeat;
	background-attachment: fixed;
}

.body-line {
	position: fixed;
	left: 5vw;
}

.body-line__line {
	height: 100vh;
	width: 2px;
	background: var(--ink-black);
	/* Reverted dashed to solid if "original thickness" implied original style, but original was solid. Solid is cleaner. */
}

@media (max-width: 768px) {
	.body-line {
		display: none;
	}
}

h1 {
	position: relative;
	margin: 0 0 1.5vh 0 !important;
	color: var(--ink-black);
	letter-spacing: 0.1vw;
	font-family: 'Playfair Display', serif;
	font-weight: 700;
	font-size: clamp(32px, 5vmin, 60px);
	text-transform: uppercase;
	/* Removed underline to reduce clutter */
	border-bottom: none;
	padding-bottom: 0;
	margin-bottom: 0;
}

h2 {
	position: relative;
	margin: 0 0 1.5vh 0 !important;
	color: var(--ink-black);
	/*letter-spacing: 0.2vw;*/
	font-family: 'Playfair Display', serif;
	font-weight: 700;
	font-size: clamp(26px, 4vmin, 48px);
	/* Slightly smaller for better fit */
	text-transform: uppercase;
	overflow-wrap: normal;
	word-break: normal;
	hyphens: none;
	/* More editorial look for long words */
}

@media (max-width: 768px) {
	h2 {
		font-size: 7vw;
		/* More predictable on mobile */
	}
}

h3 {
	position: relative;
	margin: 0 0 5vh 0 !important;
	padding: 0 0 0 2.5vw;
	color: var(--ink-black);
	/* Text in black as requested */
	letter-spacing: 0.1vw;
	font-family: 'Old Standard TT', serif;
	font-weight: 700;
	font-size: clamp(20px, 3vmin, 32px);
	font-style: italic;
	border-left: 3px solid var(--wine-color);
	/* Line remains purple-ish */
}

h4 {
	position: relative;
	margin: 0 0 1.5vh 0 !important;
	color: var(--ink-black);
	letter-spacing: 0.2vw;
	font-family: 'Cinzel', serif;
	font-weight: 400;
	/* Bold */
	font-size: clamp(18px, 3vmin, 30px);
	/* Removed border */
	border-bottom: none;
	text-transform: uppercase;
}

h5 {
	position: relative;
	margin: 0 0 3vh 0 !important;
	color: var(--ink-black);
	letter-spacing: 0.2vw;
	font-family: 'Old Standard TT', serif;
	font-weight: auto;
	font-size: clamp(16px, 2.4vmin, 26px);
}

p {
	position: relative;
	margin: 0 0 3vh 0 !important;
	color: var(--ink-black);
	letter-spacing: 0.02vw;
	font-family: 'Old Standard TT', serif;
	font-weight: 400;
	font-size: clamp(18px, 3.2vmin, 28px);
	line-height: 1.6;
	text-align: left;
}

ul {
	list-style-type: none;
	/* Puedes cambiar 'disc' por 'circle' o 'square' según tus preferencias */
}


.bl

/*black*/
	{
	color: var(--ink-black);
}

.dg

/*dark gray*/
	{
	color: var(--ink-grey);
}

.g

/*gray*/
	{
	color: var(--sepia-accent);
}

.y

/*veish*/
	{
	color: var(--ink-black);
	text-decoration: underline;
}

.dgreen {
	color: var(--sepia-accent);
}

.br

/* brown*/
	{
	color: var(--sepia-accent);
}


.button_w {

	position: relative;
	display: inline-table;


	padding: 0.7vmax;
	margin: 3vmin 0vmin 0vmin 3vmin;
	background-color: transparent;

	text-align: center;
	color: #000;
	letter-spacing: 0.2vw;
	font-family: 'Cinzel', serif;
	font-weight: 400;
	/* Removed bold */
	font-size: 3.3vmin;

	/* Simple solid border */
	border: 2px solid #000;
	transition-duration: 0.4s;
}


.button_w:hover {
	background-color: #000;
	color: #fff;
	border: 2px solid #000;
}

.button_br {
	display: inline-table;
	background-color: transparent;
	border: 2px solid #000;

	margin: 3vmin 0vmin 0vmin 3vmin;
	padding: 0.7vmax;

	text-align: center;
	letter-spacing: 0.2vw;

	font-family: 'Cinzel', serif;
	font-size: 3.3vmin;
	font-weight: 400;
	/* Removed bold */
	color: #000;

	transition-duration: 0.4s;
}

.button_br:hover {
	background-color: #000;
	color: #fff;
}

.button_redes {
	display: flex;
	justify-content: center;
	align-items: center;

	background-color: transparent;
	border: 2px solid var(--ink-black);
	/* Thin ink border */

	margin: 1vmax 0 1vmax 0;
	padding: 0.7vmax;

	text-align: center;
	letter-spacing: normal;
	font-family: 'Old Standard TT', serif;
	font-weight: 400;
	font-size: 2.5vmin;
	color: var(--ink-black);

	transition-duration: 0.4s;
}

.button_redes:hover {
	background-color: var(--ink-black);
	color: var(--paper-bg);
	border: 2px solid var(--ink-black);
	backdrop-filter: none;
}

.button_redes:hover .img_redes {
	filter: brightness(0) invert(1);
	/* Force icon to pure white on button hover */
}

.button_redes span {
	color: inherit;
	font-family: 'Old Standard TT', serif;
	font-weight: 400;
	font-size: inherit;
	letter-spacing: normal;
}




/* boxes design ...................................................*/

.totalbox {
	display: flex;
	flex-wrap: wrap;

	position: relative;

	width: 100%;

	height: auto;
	justify-content: center;
	align-items: center;

	padding: clamp(100px, 20vmin, 300px) 10vw;
	background-color: transparent;
}



.totalbox-white {
	display: flex;
	flex-wrap: wrap;

	/* Texture for boxes - maintained as 'clipping' background */
	background-color: var(--dark-bg);
	color: var(--text-white);
	/* No transparency */
	opacity: 1;

	position: relative;

	width: 100%;

	height: auto;
	justify-content: center;
	align-items: center;
	padding: clamp(100px, 20vmin, 300px) 10vw;

	/* Removed double borders as requested */
	border: none;
	box-shadow: none;
	/* Optional: subtle separation if needed, or rely on whitespace */
}

.totalbox-white h2,
.totalbox-white p,
.totalbox-white .dg,
.totalbox-white .g,
.totalbox-white .bl {
	color: var(--text-white) !important;
}

.totalbox-white h3 {
	color: var(--champagne-gold) !important;
	border-left: 3px solid var(--champagne-gold);
}

.totalbox-white .button_w,
.totalbox-white .button_br {
	color: var(--text-white) !important;
	border-color: var(--text-white) !important;
}

.totalbox-white .button_w:hover,
.totalbox-white .button_br:hover {
	background-color: var(--text-white) !important;
	color: var(--dark-bg) !important;
}


.totalbox-step {
	display: flex;
	flex-wrap: wrap;

	position: relative;

	width: 100%;

	height: auto;
	justify-content: center;
	align-items: center;

	padding: 3.9vmin 5vw 3.9vmin 5vw;
}

.totalbox-grid {
	display: flex;
	flex-wrap: wrap;

	position: relative;

	width: 100%;

	height: auto;
	justify-content: center;
	align-items: flex-start;

	padding: 3.9vmin 5vw 3.9vmin 5vw;
}

.totalbox-svg-grid {
	display: flex;
	flex-wrap: wrap;

	position: relative;

	width: 100%;

	height: auto;
	justify-content: center;
	align-items: flex-start;

	padding: 3.9vmin 5vw 3.9vmin 5vw;
}




.totalbox-anchoreducido {
	display: flex;
	flex-wrap: wrap;

	/* Texture for boxes */
	background-color: var(--dark-bg);
	color: var(--text-white);

	/* Removed double border effect */
	border: none;
	box-shadow: none;

	position: relative;

	width: 70%;

	height: auto;
	justify-content: center;
	align-items: center;
	padding: clamp(78px, 15.6vmin, 234px) 2vw;
	margin: 0 15vw 0 15vw;

}

.totalbox-anchoreducido h2,
.totalbox-anchoreducido p,
.totalbox-anchoreducido .dg,
.totalbox-anchoreducido .g,
.totalbox-anchoreducido .br {
	color: var(--text-white) !important;
}

.totalbox-anchoreducido h3 {
	color: var(--champagne-gold) !important;
	border-left: 3px solid var(--champagne-gold);
}

.totalbox-anchoreducido .button_w,
.totalbox-anchoreducido .button_br {
	color: var(--text-white) !important;
	border-color: var(--text-white) !important;
}

.totalbox-anchoreducido .button_w:hover,
.totalbox-anchoreducido .button_br:hover {
	background-color: var(--text-white) !important;
	color: var(--dark-bg) !important;
}



.totalbox-anchoreducido2 {
	display: flex;
	flex-wrap: wrap;

	background-color: transparent;

	position: relative;

	width: 85%;

	height: auto;
	justify-content: center;
	align-items: stretch;
	padding: clamp(78px, 15.6vmin, 234px) 0;
	margin: 0 7.5vw 0 7.5vw;


}





.totalbox__1 {
	position: relative;
	flex: 1;
	justify-content: center;
	align-items: center;
	height: auto;
	width: auto;

	margin: 3vh 3%;
	min-width: 250px;
}

.totalbox__2 {
	position: relative;
	flex: 2;
	justify-content: center;
	align-items: center;
	height: auto;
	width: auto;

	margin: 2vh 2%;
	min-width: 250px;
}

/* Portfolio specific: 1/3 text, 2/3 images */
.portfolio .totalbox__1 {
	flex: 0 0 33.333%;
	margin: 0;
	padding: 2vh 3vw;
}

.portfolio .totalbox__2 {
	flex: 0 0 66.666%;
	margin: 0;
	padding: 2vh 3vw;
}

/* Isolated 2x2 grid ONLY for the Service Info SVG section */
.totalbox-step .totalbox__1,
.totalbox-grid .totalbox__1,
.totalbox-svg-grid .totalbox__1 {
	flex: 0 0 45%;
	margin: 2vh 2%;
	justify-content: flex-start;
	align-items: flex-start;
}

/* Responsive adjustments for generic blocks (Home) */
@media (max-width: 900px) {

	.totalbox-step .totalbox__1,
	.totalbox-grid .totalbox__1,
	.totalbox-svg-grid .totalbox__1 {
		flex: 0 0 100%;
	}
}

/* Portfolio Layout: Text 1/3, Image 2/3. Stacked on mobile with text on top */
@media (max-width: 1024px) {

	.totalbox,
	.totalbox-white,
	.totalbox-anchoreducido,
	.totalbox-anchoreducido2 {
		flex-direction: column !important;
		padding: 12vh 5vw;
	}

	.totalbox__1,
	.totalbox__2 {
		flex: 0 0 100%;
		width: 100%;
		padding: 2vh 0;
		text-align: center;
	}
}

/* Specific adjustment for blocks that only have text (totalbox__0) */
.totalbox__0 {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	height: auto;
	width: auto;
	flex: 1 1 100%;
	/* Removed text-align center to allow inherited alignment or specific element alignment */
	text-align: center;

	margin: 3vh 3%;
	min-width: 250px;
}

.totalbox__0 h2,
.totalbox__0 h3,
.totalbox__0 p {
	text-align: inherit;
	/* Allow them to behave like standard boxes if needed, or force left/center */
	width: 100%;
	/* Ensure they take full width for proper spacing */
}

/* Ensure totalbox__0 uses same margins as standard elements */
.totalbox__0 h2 {
	margin-bottom: 1.5vh !important;
}

.totalbox__0 h3 {
	margin-top: 0 !important;
	margin-bottom: 5vh !important;
	padding-left: 0 !important;
	border-left: none !important;
	border-bottom: 3px solid var(--wine-color);
	display: inline-block;
	/* Make border span only text width */
	width: auto !important;
	/* Override width: 100% */
	padding-bottom: 1vh;
}

.totalbox__0 p {
	margin-top: 0 !important;
	margin-bottom: 3vh !important;
}


.totalbox__0 p {
	text-align: center;
}





.totalbox__1_buy {
	position: relative;
	flex: 1 1 23%;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	width: auto;
	min-width: 260px;

	margin: 2vh 1%;
	padding: 6vh 2vw;

	/* Texture but no border */
	background-color: var(--dark-bg);
	color: var(--text-white);
	border: none;
	box-shadow: none;
}

/* Responsive adjustments for the service grid */
@media (max-width: 1200px) {
	.totalbox__1_buy {
		flex: 1 1 45%;
		/* 2x2 grid */
	}

	.totalbox-anchoreducido,
	.totalbox-anchoreducido2 {
		width: 95%;
		margin: 0 2.5vw;
	}
}

@media (max-width: 600px) {
	.totalbox__1_buy {
		flex: 1 1 100%;
		/* Stacked */
	}

	.totalbox-anchoreducido,
	.totalbox-anchoreducido2 {
		width: 100%;
		margin: 0;
	}
}

.totalbox__1_buy h4 {
	width: 100%;
	padding: 0 10px;
	word-wrap: normal;
	margin-bottom: 2vh;
	font-size: clamp(18px, 3vmin, 28px);
}

.totalbox__1_buy h5 {
	font-family: 'Old Standard TT', serif;
	font-weight: 700;
	font-style: italic;
	letter-spacing: 0.1vw;
	font-size: clamp(16px, 2.4vmin, 24px);
}

.totalbox__1_buy ul {
	width: 100%;
	padding-left: 20px;
	margin-top: 2vh;
	list-style-type: disc;
}

.totalbox__1_buy ul li {
	font-family: 'Old Standard TT', serif;
	font-size: clamp(16px, 2.2vmin, 22px);
	text-align: left;
}

.buy-btn {
	display: inline-block;
	width: auto;
	padding: 0.7vmax 1.5vmax;
	margin-top: 3vh;
	text-align: center;
	color: var(--text-white) !important;
	background-color: transparent;
	border: 2px solid var(--text-white) !important;
	font-family: 'Cinzel', serif;
	font-size: clamp(13px, 2vmin, 18px);
	letter-spacing: 0.1vw;
	cursor: pointer;
	transition-duration: 0.4s;
	text-transform: uppercase;
}

.buy-btn:hover {
	background-color: var(--text-white) !important;
	color: var(--dark-bg) !important;
}

.totalbox__1_buy h4,
.totalbox__1_buy h5,
.totalbox__1_buy .dg,
.totalbox__1_buy .dgreen,
.totalbox__1_buy .buy,
.totalbox__1_buy .buy2 {
	color: var(--text-white) !important;
}

.totalbox__1_buy .buy,
.totalbox__1_buy .buy2 {
	border-bottom: none;
}

.totalbox__1_buy img {
	filter: invert(1);
}





.buy

/*fuente*/
	{
	font-family: 'Old Standard TT', serif;

	position: relative;
	margin: 1vh 0.5vmax 1vh 0.5vmax;
	color: var(--ink-black);
	/*color: #ecb67aff;*/
	letter-spacing: 0.1vw;
	font-weight: 400;
	font-size: 2.20vmin;
	text-align: left;
	margin: 10px 0;
	min-height: auto;
	border-bottom: none;
}

.buy2

/*fuente 2*/
	{
	font-family: 'Old Standard TT', serif;

	position: relative;
	margin: 1vh 0.5vmax 1vh 0.5vmax;
	color: var(--sepia-accent);
	/*color: #ecb67aff;*/
	letter-spacing: 0.1vw;
	font-weight: 400;
	font-size: 2.30vmin;
	text-align: left;
	margin: 10px 0;
	min-height: auto;
	border-bottom: none;
}


.title_buy {
	font-size: 1.5vmax;
	text-align: center;
	color: #38322eff;
	font-family: 'Playfair Display', serif;
	/*margin:0;*/
}


.img_svg3

/*buy*/
	{
	position: relative;

	width: 2.5vmax;
	margin: 20px;
}



.totalbox__svg1 {
	position: relative;
	flex: 1;
	justify-content: center;
	align-items: center;
	height: auto;
	width: auto;

	margin: 2vmin 6vmin 2vmin 6vmin;
	min-width: 250px;
}


.totalbox__svg2 {
	position: relative;
	flex: 2;
	justify-content: center;
	align-items: center;
	height: auto;
	width: auto;

	margin: 2vmin 6vmin 2vmin 6vmin;
	min-width: 250px;
}


/*.....body.....................................*/


/*.....footer.....................................*/

footer {
	display: flex;
	flex-wrap: nowrap;
	/* Forced horizontal on desktop */
	position: relative;
	width: 100%;
	min-height: auto;
	/* Removed excessive height */
	height: auto;
	justify-content: space-between;
	align-items: center;
	padding: 29.25vh 9vw;
	background-color: transparent;
}

.footer-col {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	margin: 0 1vw;
}

.footer-col h5 {
	text-align: center;
	margin: 0;
	font-family: 'Old Standard TT', serif;
	font-weight: 700;
	font-style: italic;
	letter-spacing: 0.1vw;
	font-size: clamp(14px, 2.2vmin, 22px);
}

.footer-col p {
	text-align: center;
	font-family: 'Old Standard TT', serif;
	font-weight: 400;
	font-style: normal;
	letter-spacing: 0.02vw;
	font-size: clamp(12px, 1.8vmin, 18px);
	line-height: 1.6;
	margin: 0 !important;
}

@media (max-width: 900px) {
	footer {
		flex-wrap: wrap;
		/* Only wrap on tablet/mobile */
		padding: 5vh 5vw;
	}

	.footer-col {
		flex: 0 0 100%;
		margin: 2vh 0;
	}
}


.footer-line-up {
	position: relative;
	top: 5vw;
}

.footer-line-down {
	position: relative;
	bottom: 5vw;
}

.line {
	height: 2px;
	width: 100%;
	background: var(--ink-black);
	border-bottom: none;
}


/*......................................................*/



.img_vertical {
	position: relative;

	width: 100%;
	min-width: 250px;

	/* Clean frame - thickened */
	border: 2px solid var(--ink-black);
	padding: 28px;
	/* Photo frame gap - thickened distance */
	background-color: #fff;
	filter: sepia(0.3) contrast(1.1);
	/* Slight vintage feel */
}

.img_svg {
	position: relative;

	width: 13vmax;
}

.img_svg2 {
	position: relative;
	padding: 28px;
	background-color: #fff;
	border: 2px solid var(--ink-black);
	/*margin:5vmax 0 0 0;*/
	width: 100%;
	justify-content: center;
	/*min-width: 250px;*/
	filter: sepia(0.5);
}


.logo_footer {
	position: relative;
	width: 13vmax;
	/* Logo solid black by default */
	filter: brightness(0);
	transition: filter 0.4s ease;
}

.logo_footer:hover {
	/* Sophisticated thin/outlined look on hover */
	filter: opacity(0.6) contrast(15) grayscale(1) brightness(0.4);
}

.img_redes {
	position: relative;
	width: 2vmax;
	margin: 0 1vw 0 0;
	/* Make total black as requested */
	filter: brightness(0);
}


img {
	scroll-margin-top: 11vh
		/*!important*/
	;
}
















/*slider_pro....................................................................
.................................................................
...................................................................
.....................................................................
....................................................................*/

.slider2 {
	display: flex;
	width: 100%;

	overflow-x: hidden;
	white-space: nowrap;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	border: 2px solid var(--ink-black);
}

.slider2 img {
	position: relative;
	margin: 0;
	width: 100%;
	min-width: 250px;


	flex: 1 0 100%;
	scroll-snap-align: start;

	object-fit: cover;
	filter: sepia(0.2);
}

.slider2-nav {
	display: flex;
	column-gap: 1vmax;
	position: absolute;
	bottom: 1.5vh;
	left: 50%;
	transform: translateX(-50%);
	z-index: 1;
}

.slider2-nav a {
	width: 1vmax;
	height: 1vmax;
	background-color: transparent;
	border: 2px solid var(--ink-black);
	transform: rotate(45deg);
	opacity: 0.5;
	transition: opacity ease 250ms;
}

.slider2-nav a:hover {
	opacity: 1;
	background-color: var(--ink-black);
}







/*..................................................
....................................................
...................................................*/




.galeria {
	position: relative;
	width: 100%;
	/* Ancho deseado de la imagen */
	margin: 0 auto;
	/* Centra la galería */
}

.galeria img {
	max-width: 100%;
	height: auto;
	/* Universal frame style */
	border: 2px solid var(--ink-black);
	padding: 28px;
	background-color: #fff;
	filter: sepia(0.2) contrast(1.1);
}

/* Reduce height of portfolio images */
.portfolio .galeria img {
	max-height: 65vh;
	object-fit: cover;
}

.slick-slider {
	position: relative;

}

.slick-dots {
	position: absolute;
	bottom: 0.5vh;
	/* Moved up slightly into the image */
	width: 100%;
	text-align: center;
	list-style: none;
	padding: 0;
	margin: 0;
}

.slick-dots li {
	display: inline-block;
	margin: 0 5px;
}

.slick-prev {
	left: 0.3vw;
	/* Moved slightly more in */
	/* Ajusta la posición izquierda de la flecha previa */
	z-index: 1;
	color: var(--ink-black);
	/* Cambia el color aquí */
	font-size: 0;
}

.slick-prev:before {
	content: '‹';
	color: var(--ink-black);
	font-size: 40px;
	font-family: 'Cinzel', serif;
	opacity: 1;
	line-height: 1;
}

.slick-prev:hover:before {
	color: var(--sepia-accent);
}

.slick-next {
	right: 0.3vw;
	/* Moved slightly more in */
	/* Ajusta la posición derecha de la flecha siguiente */
	z-index: 1;
	color: var(--ink-black);
	/* Cambia el color aquí */
	font-size: 0;
}

.slick-next:before {
	content: '›';
	color: var(--ink-black);
	font-size: 40px;
	font-family: 'Cinzel', serif;
	opacity: 1;
	line-height: 1;
}

.slick-next:hover:before {
	color: var(--sepia-accent);
}

.slick-dots li button:before {
	color: var(--ink-black);
	/* Cambia el color aquí */
	font-size: 10px;
	/* Cambia el tamaño de los puntos */
}

/* Estilo para el punto de selección */
.slick-dots li.slick-active button:before {
	color: var(--sepia-accent);
	/* Cambia el color del punto de selección */
	font-size: 12px;
}














/*slider_auto....................................................................
.................................................................
...................................................................
.....................................................................
....................................................................*/


/*slider...................................*/

.sliderbajo1 {
	position: relative;
	background-image: url(largo.png);
	background-size: cover;

	width: 100%;

	height: 70vh;
	border: none;
	animation: animate_slider01 10s infinite;
}

.sliderbajo2 {
	position: relative;
	background-image: url(largo.png);
	background-size: cover;

	width: 100%;

	height: 70vh;
	border: none;
	animation: animate_slider02 10s infinite;
}

.sliderbajo3 {
	position: relative;
	background-image: url(largo.png);
	background-size: cover;

	width: 100%;

	height: 70vh;
	border: none;
	animation: animate_slider03 10s infinite;
}

.sliderbajo4 {
	position: relative;
	background-image: url(largo.png);
	background-size: cover;

	width: 100%;

	height: 70vh;
	border: none;
	animation: animate_slider04 10s infinite;
}

.sliderbajo5 {
	position: relative;
	background-image: url(largo.png);
	background-size: cover;

	width: 100%;

	height: 70vh;
	border: none;
	animation: animate_slider05 10s infinite;
}


/*........................................
..........................................
.........................................*/


.slideralto1 {
	position: relative;
	background-image: url(img/pry01/a3_1.jpg);
	background-size: cover;

	width: 100%;

	height: 100vh;
	border: none;
	animation: animate_slider1 40s infinite;
}

.slideralto2 {
	position: relative;
	background-image: url(img/pry01/a3_1.jpg);
	background-size: cover;
	width: 100%;
	height: 90vh;
	border: none;
	animation: animate_slider3 40s infinite;
}

.slidermedio1 {
	position: relative;
	background-image: url(largo.png);
	background-size: cover;

	width: 100%;

	height: 800px;
	border: none;
	animation: animate_slidermedio1 20s infinite;
}




.sliderbox_bajo {
	position: relative;
	display: flex;
	flex-wrap: wrap;

	background-color: transparent;

	justify-content: center;
	align-items: center;

	width: 100%;
	height: auto;

	margin: 0;
	padding: 0 0 0 30vmin;
	top: 40%;
}

.sliderbox_alto {
	position: relative;
	display: flex;
	flex-wrap: wrap;

	background-color: transparent;

	justify-content: center;
	align-items: center;

	width: 100%;
	height: auto;

	margin: 0;
	padding: 0 0 0 40vmin;
	top: 40%;
}

/* Mobile fix for sliders */
@media (max-width: 768px) {

	.sliderbox_alto,
	.sliderbox_bajo {
		padding: 5vh 5vw 0 5vw;
		/* Remove huge side padding, add top breathing room */
		top: 20%;
		/* Sit near the top of the slider */
		text-align: center;
	}
}


.sliderbox__into--green,
.sliderbox__into--purple,
.sliderbox__into--cyan,
.sliderbox__into--violet,
.sliderbox__into--orange,
.sliderbox__into--blue {
	position: relative;
	justify-content: center;
	align-items: center;

	height: auto;
	width: 100%;

	/* Semi-transparent white background */
	background-color: rgba(255, 255, 255, 0.85);

	/* No border */
	border: none;
	box-shadow: none;

	margin: 0;
	padding: 2.925vmax 10vmax 2.925vmax 4vmax;

	min-width: 250px;
	backdrop-filter: blur(3px);
	/* Glass effect */
}

.totalbox__1>*:first-child,
.totalbox__2>*:first-child,
.totalbox__0>*:first-child,
.totalbox__1_buy>*:first-child,
.sliderbox__into--green>*:first-child,
.sliderbox__into--purple>*:first-child,
.sliderbox__into--cyan>*:first-child,
.sliderbox__into--violet>*:first-child,
.sliderbox__into--orange>*:first-child,
.sliderbox__into--blue>*:first-child {
	margin-top: 0 !important;
}

.totalbox__1>*:last-child,
.totalbox__2>*:last-child,
.totalbox__0>*:last-child,
.totalbox__1_buy>*:last-child,
.sliderbox__into--green>*:last-child,
.sliderbox__into--purple>*:last-child,
.sliderbox__into--cyan>*:last-child,
.sliderbox__into--violet>*:last-child,
.sliderbox__into--orange>*:last-child,
.sliderbox__into--blue>*:last-child {
	margin-bottom: 0 !important;
}

.sliderbox__into--green *:not(.button_w):not(.button_br),
.sliderbox__into--purple *:not(.button_w):not(.button_br),
.sliderbox__into--cyan *:not(.button_w):not(.button_br),
.sliderbox__into--violet *:not(.button_w):not(.button_br),
.sliderbox__into--orange *:not(.button_w):not(.button_br),
.sliderbox__into--blue *:not(.button_w):not(.button_br) {
	color: var(--ink-black) !important;
}

.sliderbox__into--green h3,
.sliderbox__into--purple h3,
.sliderbox__into--cyan h3,
.sliderbox__into--violet h3,
.sliderbox__into--orange h3,
.sliderbox__into--blue h3 {
	border-left: 3px solid var(--wine-color) !important;
}

/* Redundant classes mapped to the same style above to overwrite them */

/* Merged into above */


/* Merged into above */

/* Merged into above */

/* Merged into above */


/*................................................*/

@keyframes animate_slider1 {
	0% {
		background-image: url(img/sl6.jpg);
		background-size: cover;
		background-position: center;
	}

	8.3333333% {
		background-position: right;
	}

	16.666666666% {
		background-image: url(img/sl1.jpg);
		background-size: cover;
	}

	25% {
		background-position: left;
	}

	33.3333333333% {
		background-image: url(img/sl2.jpg);
		background-size: cover;
	}

	41.66666% {
		background-position: right;
	}

	50% {
		background-image: url(img/sl3.jpg);
		background-size: cover;
	}

	58.33333% {
		background-position: left;
	}

	64.66666% {
		background-image: url(img/sl4.jpg);
		background-size: cover;
	}


	75% {
		background-position: right;
	}

	83.3% {
		background-image: url(img/sl5.jpg);
		background-size: cover;
	}

	91.66% {
		background-position: left;
	}


	100% {
		background-image: url(img/sl6.jpg);
		background-size: cover;
		background-position: center;
	}
}


@keyframes animate_slider3 {


	0% {
		background-image: url(img/04_sl_grande_1.jpg);
		background-size: cover;
		background-position: center;
	}

	8.3333333% {
		background-position: right;
	}

	16.666666666% {
		background-image: url(img/04_sl_grande_4.jpg);
		background-size: cover;
	}

	25% {
		background-position: left;
	}

	33.3333333333% {
		background-image: url(img/04_sl_grande_2.jpg);
		background-size: cover;
	}

	41.66666% {
		background-position: right;
	}

	50% {
		background-image: url(img/04_sl_grande_5.jpg);
		background-size: cover;
	}

	58.33333% {
		background-position: left;
	}

	64.66666% {
		background-image: url(img/04_sl_grande_8.jpg);
		background-size: cover;
	}


	75% {
		background-position: right;
	}

	83.3% {
		background-image: url(img/04_sl_grande_7.jpg);
		background-size: cover;
	}

	91.66% {
		background-position: left;
	}


	100% {
		background-image: url(img/04_sl_grande_1.jpg);
		background-size: cover;
		background-position: center;
	}
}


/*...................................
.....................................
....................................
....................................*/

@keyframes animate_slider01 {
	0% {
		background-image: url(img/07_portada1.jpg);
		background-size: cover;
		background-position: center;
	}

	25% {
		background-position: right;
	}

	50% {
		background-image: url(img/07_portada1.jpg);
		background-size: cover;
	}

	75% {
		background-position: left;
	}

	100% {
		background-image: url(img/07_portada1.jpg);
		background-size: cover;
		background-position: center;
	}
}

@keyframes animate_slider02 {
	0% {
		background-image: url(img/07_portada2.jpg);
		background-size: cover;
		background-position: center;
	}

	25% {
		background-position: right;
	}

	50% {
		background-image: url(img/07_portada2.jpg);
		background-size: cover;
	}

	75% {
		background-position: left;
	}

	100% {
		background-image: url(img/07_portada2.jpg);
		background-size: cover;
		background-position: center;
	}
}

@keyframes animate_slider03 {
	0% {
		background-image: url(img/07_portada3.jpg);
		background-size: cover;
		background-position: center;
	}

	25% {
		background-position: right;
	}

	50% {
		background-image: url(img/07_portada3.jpg);
		background-size: cover;
	}

	75% {
		background-position: left;
	}

	100% {
		background-image: url(img/07_portada3.jpg);
		background-size: cover;
		background-position: center;
	}
}

@keyframes animate_slider04 {
	0% {
		background-image: url(img/07_portada4.jpg);
		background-size: cover;
		background-position: center;
	}

	25% {
		background-position: right;
	}

	50% {
		background-image: url(img/07_portada4.jpg);
		background-size: cover;
	}

	75% {
		background-position: left;
	}

	100% {
		background-image: url(img/07_portada4.jpg);
		background-size: cover;
		background-position: center;
	}
}

@keyframes animate_slider05 {
	0% {
		background-image: url(img/07_portada5.jpg);
		background-size: cover;
		background-position: center;
	}

	25% {
		background-position: right;
	}

	50% {
		background-image: url(img/07_portada5.jpg);
		background-size: cover;
	}

	75% {
		background-position: left;
	}

	100% {
		background-image: url(img/07_portada5.jpg);
		background-size: cover;
		background-position: center;
	}
}


@keyframes animate_slidermedio1 {
	0% {
		background-image: url(img/03_1soft_1.jpg);
		background-size: cover;
		background-position: center;
	}

	14% {
		background-image: url(img/03_1soft_2.jpg);
		background-size: cover;
	}

	28% {
		background-image: url(img/03_1soft_3.jpg);
		background-size: cover;
	}

	42% {
		background-image: url(img/03_1soft_4.jpg);
		background-size: cover;
	}

	56% {
		background-image: url(img/03_1soft_5.jpg);
		background-size: cover;
	}

	70% {
		background-image: url(img/03_1soft_6.jpg);
		background-size: cover;
	}

	84% {
		background-image: url(img/03_1soft_7.jpg);
		background-size: cover;
	}

	100% {
		background-image: url(img/03_1soft_1.jpg);
		background-size: cover;
		background-position: center;
	}
}

/* Responsividad general de botones en vistas móviles verticales */
@media (max-width: 768px) {
	.button_redes {
		font-size: 3.75vmin !important;
		padding: 1.05vmax !important;
	}

	.button_w,
	.button_br {
		font-size: 4.95vmin !important;
		padding: 1.05vmax !important;
	}

	.buy-btn {
		font-size: clamp(20px, 4vmin, 27px) !important;
		padding: 1.05vmax 2.25vmax !important;
	}
}