/* Scoped to the active Silvio location pages only. */
/* Keep the transparent theme header in normal flow on these pages. */
body.page-id-5291 #qodef-page-outer {
	margin-top: 0;
}

body.page-id-5291 #qodef-page-header {
	background-color: #F0EFEC;
}

body.page-id-5291 #qodef-page-header .qodef-header-logo-link img {
	filter: brightness(0);
}

.silvio-location-page,
.silvio-location-page * {
	box-sizing: border-box;
}

.silvio-location-page .elementor-container {
	width: 100%;
	max-width: 1300px;
	margin: 0 auto;
}

.silvio-location-page .elementor-column,
.silvio-location-page .elementor-widget-wrap {
	min-width: 0;
}

.silvio-location-page .elementor-widget-heading .elementor-heading-title {
	margin: 0;
	font-family: Kanit, sans-serif;
	font-weight: 600;
	letter-spacing: .025em;
	line-height: 1.08;
	text-transform: uppercase;
}

.silvio-location-page .elementor-widget-text-editor,
.silvio-location-page .elementor-widget-text-editor p,
.silvio-location-page .elementor-widget-text-editor span {
	font-family: "Albert Sans", sans-serif;
}

.silvio-location-page .elementor-widget-text-editor p {
	margin: 0 0 18px;
}

.silvio-location-page .elementor-widget-text-editor p:last-child {
	margin-bottom: 0;
}

.silvio-location-page .eyebrow p,
.silvio-location-page .hero-meta p,
.silvio-location-page .small-note p,
.silvio-location-page .contact-label p {
	font-family: Kanit, sans-serif;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .16em;
	line-height: 1.4;
	text-transform: uppercase;
}

.silvio-location-page .section-lead {
	max-width: 580px;
}

.silvio-location-page .hero-title .elementor-heading-title {
	font-size: clamp(46px, 5vw, 76px);
	letter-spacing: .015em;
}

.silvio-location-page .hero-title span {
	font-weight: 300;
}

.silvio-location-page .hero-copy {
	max-width: 520px;
}

.silvio-location-page .hero-image,
.silvio-location-page .hero-image .elementor-widget-container,
.silvio-location-page .hero-image figure {
	height: 100%;
}

.silvio-location-page .hero-image figure,
.silvio-location-page .intro-image figure,
.silvio-location-page .experience-image figure,
.silvio-location-page .service-card-image figure,
.silvio-location-page .gallery-image figure {
	margin: 0;
	overflow: hidden;
}

.silvio-location-page .hero-image img {
	display: block;
	width: 100%;
	height: clamp(520px, 52vw, 760px);
	object-fit: cover;
	object-position: center;
}

.silvio-location-page .intro-image img,
.silvio-location-page .experience-image img {
	display: block;
	width: 100%;
	height: clamp(420px, 42vw, 620px);
	object-fit: cover;
}

.silvio-location-page .service-card-image figure {
	aspect-ratio: 1.28 / 1;
}

.silvio-location-page .service-card-image img,
.silvio-location-page .gallery-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .6s cubic-bezier(.2,.65,.25,1), filter .6s ease;
}

.silvio-location-page .service-card:hover .service-card-image img,
.silvio-location-page .service-card-image:hover img,
.silvio-location-page .gallery-image:hover img {
	transform: scale(1.035);
}

.silvio-location-page .service-card-title {
	margin-top: 25px;
}

.silvio-location-page .service-card-title .elementor-heading-title,
.silvio-location-page .feature-title .elementor-heading-title,
.silvio-location-page .price-list-heading .elementor-heading-title {
	font-size: 20px;
	letter-spacing: .06em;
}

.silvio-location-page .service-card-copy {
	flex: 1 1 auto;
	max-width: 300px;
}

.silvio-location-page .service-card-arrow {
	display: inline-block;
	transition: transform .25s ease;
}

.silvio-location-page .service-card:hover .service-card-arrow {
	transform: translate(4px, -4px);
}

.silvio-location-page .short-divider {
	max-width: 110px;
	margin: 26px 0 24px;
}

.silvio-location-page .light-divider {
	border-color: rgba(255,255,255,.34);
}

.silvio-location-page .price-list-heading {
	margin-bottom: 14px;
}

.silvio-location-page .price-row {
	border-bottom: 1px solid rgba(255,255,255,.24);
}

.silvio-location-page .price-row > .elementor-container {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(28px, 1fr) max-content;
	gap: 18px;
	align-items: center;
}

.silvio-location-page.pricing-grid > .elementor-container > .elementor-column {
	width: 50%;
}

.silvio-location-page .price-row .elementor-column {
	min-width: 0;
}

.silvio-location-page .price-row > .elementor-container > .elementor-column {
	width: auto !important;
}

.silvio-location-page .price-service-name .elementor-heading-title {
	font-size: 18px;
	line-height: 1.15;
	letter-spacing: .045em;
	word-break: normal;
	overflow-wrap: anywhere;
}
.silvio-location-page .price-value .elementor-heading-title {
	font-size: 17px;
	line-height: 1.15;
	text-align: right;
	white-space: nowrap;
}

.silvio-location-page .price-divider {
	min-width: 28px;
}

.silvio-location-page .price-divider,
.silvio-location-page .price-divider > .elementor-widget-container {
	width: 100%;
}

.silvio-location-page .price-divider .elementor-divider {
	width: 100%;
	margin: 0;
	padding: 0;
}

.silvio-location-page .price-divider .elementor-divider-separator {
	width: 100%;
	border-top-width: 1px;
	border-top-color: rgba(255,255,255,.28) !important;
}

.silvio-location-page .experience-points .elementor-container {
	align-items: flex-start;
}

.silvio-location-page .point-title .elementor-heading-title {
	font-size: 18px;
	letter-spacing: .08em;
}

.silvio-location-page .feature-mark {
	margin-bottom: 18px;
}

.silvio-location-page .feature-title {
	margin-bottom: 16px;
}

.silvio-location-page .gallery-grid-one .gallery-tall figure {
	aspect-ratio: 1.05 / 1;
}

.silvio-location-page .gallery-grid-one .gallery-image:not(.gallery-tall) figure {
	aspect-ratio: 1.7 / 1;
}

.silvio-location-page .gallery-grid-one .gallery-small figure {
	aspect-ratio: 1.45 / 1;
	margin-top: 14px;
}

.silvio-location-page .gallery-grid-two .gallery-image figure {
	aspect-ratio: 1.2 / 1;
}

.silvio-location-page .testimonial-copy p {
	max-width: 330px;
}

.silvio-location-page .quote-mark-widget p {
	margin: 0 0 5px;
	font-family: Kanit, sans-serif;
	font-size: 42px;
	font-weight: 300;
	line-height: .8;
}

.silvio-location-page .testimonial-author {
	margin-top: 25px;
}

.silvio-location-page .contact-value {
	margin-bottom: 23px;
}

.silvio-location-page .contact-value .elementor-heading-title {
	font-size: 24px;
	letter-spacing: .035em;
}

.silvio-location-page .contact-note {
	margin-top: -10px;
	margin-bottom: 28px;
}

.silvio-location-page .final-cta .elementor-column {
	text-align: center;
}

.silvio-location-page .final-cta .elementor-widget-text-editor,
.silvio-location-page .final-cta .elementor-widget-button {
	text-align: center;
}

.silvio-location-page .final-title .elementor-heading-title {
	font-size: clamp(42px, 5vw, 70px);
}

.silvio-location-page .final-copy {
	margin: 22px auto 2px;
}

.silvio-location-page .elementor-widget-button {
	margin-top: 24px;
}

.silvio-location-page .hero-section .elementor-widget-button,
.silvio-location-page .contact-section .elementor-widget-button {
	display: inline-block;
	margin-right: 12px;
}

.silvio-location-page .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding: 13px 25px 11px;
	border: 1px solid #000 !important;
	border-radius: 0;
	background: #000 !important;
	color: #fff !important;
	font-family: Kanit, sans-serif;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .13em;
	line-height: 1.2;
	text-transform: uppercase;
	transition: color .25s ease, background-color .25s ease, border-color .25s ease;
}

.silvio-location-page .elementor-button::after {
	content: '↗';
	margin-left: 11px;
	font-size: 15px;
	transition: transform .25s ease;
}

.silvio-location-page .elementor-button:hover::after,
.silvio-location-page .elementor-button:focus-visible::after {
	transform: translate(3px, -3px);
}

.silvio-location-page .elementor-button:hover,
.silvio-location-page .elementor-button:focus-visible {
	background: transparent !important;
	color: #000 !important;
}

.silvio-location-page .button-outline .elementor-button {
	background: transparent !important;
	color: #000 !important;
}

.silvio-location-page .button-outline .elementor-button:hover,
.silvio-location-page .button-outline .elementor-button:focus-visible {
	background: #000 !important;
	color: #fff !important;
}

.silvio-location-page .button-light .elementor-button {
	background: #fff !important;
	border-color: #fff !important;
	color: #000 !important;
}

.silvio-location-page .button-light .elementor-button:hover,
.silvio-location-page .button-light .elementor-button:focus-visible {
	background: transparent !important;
	color: #fff !important;
}

.silvio-location-page .button-light-outline .elementor-button {
	background: transparent !important;
	border-color: #fff !important;
	color: #fff !important;
}

.silvio-location-page .button-light-outline .elementor-button:hover,
.silvio-location-page .button-light-outline .elementor-button:focus-visible {
	background: #fff !important;
	color: #000 !important;
}

.silvio-location-page .elementor-button:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 4px;
}

.silvio-location-page .elementor-widget-heading,
.silvio-location-page .elementor-widget-text-editor,
.silvio-location-page .elementor-widget-image,
.silvio-location-page .elementor-widget-button {
	animation: silvio-location-fade-up .65s ease both;
}

/* Premium editorial refinements, scoped to Location 1. */
.silvio-location-page.hero-section {
	position: relative;
	overflow: hidden;
}

.silvio-location-page.hero-section .eyebrow p {
	display: flex;
	align-items: center;
	gap: 13px;
}

.silvio-location-page.hero-section .eyebrow p::before {
	content: '';
	display: inline-block;
	width: 34px;
	border-top: 1px solid currentColor;
	opacity: .7;
}

.silvio-location-page.hero-section .eyebrow { animation-delay: .05s; }
.silvio-location-page.hero-section .hero-title { animation-delay: .14s; }
.silvio-location-page.hero-section .hero-copy { animation-delay: .23s; }
.silvio-location-page.hero-section .hero-meta { animation-delay: .30s; }
.silvio-location-page.hero-section .elementor-widget-button { animation-delay: .38s; }
.silvio-location-page.hero-section .hero-image {
	animation: silvio-location-image-reveal .8s cubic-bezier(.2,.7,.2,1) both;
	animation-delay: .12s;
}

.silvio-location-page .section-title .elementor-heading-title::after {
	content: '';
	display: block;
	width: 44px;
	margin-top: 17px;
	border-top: 1px solid currentColor;
	opacity: .55;
}

.silvio-location-page .service-card {
	transition: transform .38s cubic-bezier(.2,.65,.25,1), box-shadow .38s ease;
}

.silvio-location-page .service-card:hover {
	transform: translateY(-7px);
	box-shadow: 0 10px 24px rgba(0,0,0,.07);
}

.silvio-location-page .service-card-image figure,
.silvio-location-page .gallery-image figure {
	background: #e9e7e2;
}

.silvio-location-page .service-card-image img,
.silvio-location-page .gallery-image img {
	transition: transform .55s cubic-bezier(.2,.65,.25,1), filter .55s ease;
}

.silvio-location-page .service-card:hover .service-card-image img,
.silvio-location-page .service-card-image:hover img,
.silvio-location-page .gallery-image:hover img {
	transform: scale(1.04);
	filter: contrast(1.02);
}

.silvio-location-page .price-row {
	transition: background-color .3s ease, border-color .3s ease;
}

.silvio-location-page .price-row:hover {
	background: rgba(255,255,255,.055);
	border-color: rgba(255,255,255,.5);
}

.silvio-location-page .price-row:hover .price-service-name .elementor-heading-title {
	transform: translateX(3px);
}

.silvio-location-page .price-service-name .elementor-heading-title {
	transition: transform .3s ease;
}

.silvio-location-page .feature-mark .elementor-heading-title {
    position: relative;
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    font-size: 0 !important;
    border: 1px solid currentColor;
    opacity: .72;
}

.silvio-location-page .feature-mark .elementor-heading-title::before,
.silvio-location-page .feature-mark .elementor-heading-title::after {
	content: '';
	position: absolute;
	display: block;
	background: currentColor;
}

.silvio-location-page .feature-mark .elementor-heading-title::before {
	width: 16px;
	height: 1px;
	transform: rotate(45deg);
}

.silvio-location-page .feature-mark .elementor-heading-title::after {
	width: 1px;
	height: 16px;
	transform: rotate(45deg);
}

.silvio-location-page .testimonial-card {
	padding-top: 28px;
	border-top: 1px solid rgba(0,0,0,.2);
	transition: transform .35s ease, border-color .35s ease;
}

.silvio-location-page .testimonial-card:hover {
	transform: translateY(-4px);
	border-color: rgba(0,0,0,.65);
}

.silvio-location-page .testimonial-copy p {
	line-height: 1.65;
}

.silvio-location-page .contact-label p::before {
	content: '';
	display: inline-block;
	width: 22px;
	margin: 0 10px 3px 0;
	border-top: 1px solid currentColor;
	opacity: .7;
}

.silvio-location-page.final-cta {
	position: relative;
}

.silvio-location-page.final-cta::before {
	content: '';
	position: absolute;
	top: 0;
	left: 50%;
	width: 64px;
	border-top: 1px solid rgba(0,0,0,.45);
	transform: translateX(-50%);
}

.silvio-location-page .elementor-button {
	min-width: 166px;
	letter-spacing: .15em;
	transition: color .3s ease, background-color .3s ease, border-color .3s ease, transform .3s ease;
}

.silvio-location-page .elementor-button:hover,
.silvio-location-page .elementor-button:focus-visible {
	transform: translateY(-2px);
}

.silvio-location-page .elementor-button::after {
	transition: transform .3s cubic-bezier(.2,.65,.25,1);
}

.elementor.silvio-location-motion-ready .silvio-location-page:not(.hero-section).silvio-motion-section {
	opacity: 0;
	transform: translateY(18px);
	transition: opacity .65s ease, transform .65s cubic-bezier(.2,.65,.25,1);
}

.elementor.silvio-location-motion-ready .silvio-location-page:not(.hero-section).silvio-motion-section.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.elementor.silvio-location-motion-ready .silvio-location-page:not(.hero-section).silvio-motion-section.is-visible .elementor-widget-heading,
.elementor.silvio-location-motion-ready .silvio-location-page:not(.hero-section).silvio-motion-section.is-visible .elementor-widget-text-editor,
.elementor.silvio-location-motion-ready .silvio-location-page:not(.hero-section).silvio-motion-section.is-visible .elementor-widget-image,
.elementor.silvio-location-motion-ready .silvio-location-page:not(.hero-section).silvio-motion-section.is-visible .elementor-widget-button {
	animation: none;
}

@keyframes silvio-location-image-reveal {
	from { opacity: 0; clip-path: inset(0 0 0 12%); }
	to { opacity: 1; clip-path: inset(0 0 0 0); }
}

@keyframes silvio-location-fade-up {
	from { opacity: 0; transform: translateY(12px); }
	to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 1024px) {
	.silvio-location-page .elementor-container {
		max-width: 100%;
	}

	.silvio-location-page.pricing-grid > .elementor-container > .elementor-column {
		width: 100%;
		padding-right: 0;
		padding-left: 0;
	}

	.silvio-location-page .hero-image img {
		height: clamp(440px, 68vw, 620px);
	}
}

@media (max-width: 768px) {
	.silvio-location-page .hero-title .elementor-heading-title,
	.silvio-location-page .section-title .elementor-heading-title {
		font-size: clamp(38px, 8.5vw, 54px);
	}

	.silvio-location-page .intro-image img,
	.silvio-location-page .experience-image img {
		height: min(108vw, 560px);
	}

	.silvio-location-page .gallery-grid-two .elementor-column {
		width: 50%;
	}

	.silvio-location-page .gallery-grid-two .elementor-column:last-child {
		width: 100%;
		margin-top: 14px;
	}

	.silvio-location-page .experience-points .elementor-column {
		width: 33.333%;
	}
}

@media (max-width: 680px) {
	.silvio-location-page .hero-title .elementor-heading-title {
		font-size: clamp(30px, 9vw, 50px);
	}

	.silvio-location-page .hero-section .elementor-widget-button,
	.silvio-location-page .contact-section .elementor-widget-button {
		display: block;
		margin: 18px 0 0;
	}

	.silvio-location-page .elementor-button {
		width: 100%;
		min-height: 52px;
	}

	.silvio-location-page .price-row > .elementor-container {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 8px 14px;
		align-items: center;
	}

	.silvio-location-page .price-row > .elementor-container > .elementor-column:nth-child(1) {
		grid-column: 1;
		grid-row: 1;
	}

	.silvio-location-page .price-row > .elementor-container > .elementor-column:nth-child(2) {
		grid-column: 1 / -1;
		grid-row: 2;
	}

	.silvio-location-page .price-row > .elementor-container > .elementor-column:nth-child(3) {
		grid-column: 2;
		grid-row: 1;
	}

	.silvio-location-page .price-row .elementor-column {
		width: auto !important;
	}

	.silvio-location-page .price-row .price-divider {
		min-width: 0;
	}

	.silvio-location-page .price-service-name .elementor-heading-title {
		font-size: 15px;
		letter-spacing: .035em;
	}

	.silvio-location-page .price-duration p {
		font-size: 12px;
		white-space: nowrap;
	}

	.silvio-location-page .price-value .elementor-heading-title {
		font-size: 14px;
	}

	.silvio-location-page .gallery-grid-one .elementor-column,
	.silvio-location-page .gallery-grid-two .elementor-column,
	.silvio-location-page .gallery-grid-two .elementor-column:last-child {
		width: 100%;
		margin-top: 0;
	}

	.silvio-location-page .gallery-grid-one .elementor-column + .elementor-column,
	.silvio-location-page .gallery-grid-two .elementor-column + .elementor-column {
		margin-top: 14px;
	}

	.silvio-location-page .gallery-grid-one .gallery-tall figure,
	.silvio-location-page .gallery-grid-one .gallery-image:not(.gallery-tall) figure,
	.silvio-location-page .gallery-grid-one .gallery-small figure,
	.silvio-location-page .gallery-grid-two .gallery-image figure {
		aspect-ratio: 1.2 / 1;
	}

	.silvio-location-page .experience-points .elementor-column {
		width: 100%;
		padding-bottom: 22px;
	}

	.silvio-location-page .experience-points .point-title {
		margin-top: -12px;
	}

	.silvio-location-page .final-title .elementor-heading-title {
		font-size: clamp(37px, 10vw, 52px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.silvio-location-page *,
	.silvio-location-page *::before,
	.silvio-location-page *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
	}
}
