:root {
	color-scheme: dark;
}

html,
body.tn360-page {
	width: 100%;
	height: 100%;
	margin: 0;
	overflow: hidden;
	background: #111;
}

body.tn360-page * {
	box-sizing: border-box;
}

.tn360-experience [hidden] {
	display: none !important;
}

.tn360-experience {
	position: fixed;
	inset: 0;
	font-family: "Solomon Sans", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-weight: 400;
	color: #fff;
	background: #111;
}

.tn360-experience button,
.tn360-experience input,
.tn360-experience select,
.tn360-experience textarea,
.tn360-experience .psv-loader-text,
.tn360-experience .psv-notification-content,
.tn360-experience .psv-overlay-title,
.tn360-experience .psv-overlay-text,
.tn360-experience .psv-panel-content,
.tn360-experience .psv-tooltip-content {
	font-family: inherit;
}

.tn360-stage {
	position: absolute;
	inset: 0;
	isolation: isolate;
	overflow: hidden;
	background-color: #171717;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	transition: background-image 220ms ease;
}

.tn360-stage::before {
	content: "";
	position: absolute;
	z-index: 0;
	inset: -10px;
	background-image: inherit;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	filter: blur(5px);
	opacity: 0;
	pointer-events: none;
	transform: scale(1.02);
	transition: opacity 180ms ease;
}

.tn360-stage.tn360-stage-loading::before {
	opacity: 1;
}

.tn360-stage:focus {
	outline: none;
}

.tn360-stage .psv-container,
.tn360-stage .psv-canvas-container {
	width: 100%;
	height: 100%;
}

.tn360-stage .psv-container {
	position: relative;
	z-index: 1;
	background: transparent;
}

.tn360-stage .psv-canvas-container {
	transition: opacity 180ms ease;
}

.tn360-stage.tn360-stage-loading .psv-canvas-container {
	opacity: 0;
}

.tn360-stage .psv-loader-container {
	color: #fff;
}

.tn360-stage .psv-loader {
	width: 170px;
	height: 170px;
}

.tn360-stage-empty::after {
	content: "Contenido visual pendiente";
	position: absolute;
	z-index: 2;
	inset: 0;
	display: grid;
	place-items: center;
	padding: 24px;
	color: #d7d7d7;
	text-align: center;
}

.tn360-vignette {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(180deg, rgba(0, 0, 0, .46), transparent 25%, transparent 70%, rgba(0, 0, 0, .48));
}

.tn360-topbar {
	position: absolute;
	top: max(18px, env(safe-area-inset-top));
	left: max(18px, env(safe-area-inset-left));
	z-index: 20;
	display: flex;
	align-items: center;
	gap: 9px;
}

.tn360-topbar h1 {
	margin: 0;
	height: 42px;
	max-width: min(58vw, 440px);
	padding: 0 12px;
	border-radius: 13px;
	display: flex;
	align-items: center;
	background: var(--tn360-title-bg, var(--tn360-category-color, var(--tn360-brand, #1f6f8b)));
	color: var(--tn360-title-text, #e8edf2);
	font-family: "TN360 Metropolis", "Metropolis", "Metropolis Regular", "Solomon Sans", ui-sans-serif, system-ui, sans-serif;
	font-size: clamp(12px, 1.25vw, 16px);
	font-weight: 400;
	line-height: 1.05;
	letter-spacing: -.02em;
	white-space: normal;
	overflow-wrap: anywhere;
	overflow: hidden;
	text-shadow: 0 1px 4px rgba(0, 0, 0, .58);
}

.tn360-has-logo-top-right .tn360-topbar h1 {
	max-width: min(42vw, 360px);
}

.tn360-round-button,
.tn360-menu-head button,
.tn360-action-button {
	border: 0;
	color: #fff;
	background: rgba(15, 15, 15, .72);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	box-shadow: 0 8px 30px rgba(0, 0, 0, .24);
}

.tn360-round-button {
	width: 52px;
	height: 42px;
	border-radius: 13px;
	font-size: 22px;
	cursor: pointer;
}

.tn360-action-button[hidden] {
	display: none !important;
}

.tn360-topbar .tn360-round-button {
	background: var(--tn360-title-bg, color-mix(in srgb, var(--tn360-category-color, var(--tn360-brand, #1f6f8b)) var(--tn360-control-menu-opacity, 92%), transparent));
	color: var(--tn360-menu-text, #fff);
}

.tn360-place-logo {
	position: absolute;
	z-index: 18;
	max-width: min(210px, 30vw);
	max-height: 100px;
	object-fit: contain;
	filter: drop-shadow(0 3px 12px rgba(0, 0, 0, .4));
}

.tn360-logo-top-left {
	top: max(84px, calc(env(safe-area-inset-top) + 84px));
	left: max(20px, env(safe-area-inset-left));
}

.tn360-logo-top-right {
	top: max(18px, env(safe-area-inset-top));
	right: max(18px, env(safe-area-inset-right));
	width: auto;
	height: 42px;
	max-width: none;
	max-height: 42px;
}

.tn360-logo-bottom-left {
	bottom: max(92px, calc(env(safe-area-inset-bottom) + 92px));
	left: max(20px, env(safe-area-inset-left));
}

.tn360-logo-bottom-right {
	bottom: max(92px, calc(env(safe-area-inset-bottom) + 92px));
	right: max(20px, env(safe-area-inset-right));
}

.tn360-menu {
	position: absolute;
	z-index: 40;
	top: 0;
	bottom: 0;
	left: 0;
	width: min(420px, 92vw);
	padding: max(24px, env(safe-area-inset-top)) 22px max(24px, env(safe-area-inset-bottom));
	background: var(--tn360-menu-bg, rgba(11, 14, 16, .88));
	color: var(--tn360-menu-text, #fff);
	backdrop-filter: blur(22px);
	transform: translateX(-104%);
	transition: transform 220ms ease;
	overflow-y: auto;
}

.tn360-menu.is-open {
	transform: translateX(0);
}

.tn360-menu-head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 22px;
	font-size: 24px;
}

.tn360-menu-head button {
	width: 42px;
	height: 42px;
	border-radius: 50%;
	font-size: 28px;
	cursor: pointer;
	background: var(--tn360-menu-category, #28313b);
	color: var(--tn360-menu-text, #fff);
}

.tn360-menu-content {
	display: grid;
	gap: 12px;
}

.tn360-menu-search {
	min-width: 0;
	height: 48px;
	padding: 4px;
	border: 1px solid color-mix(in srgb, var(--tn360-menu-text, #fff) 26%, transparent);
	border-radius: 13px;
	display: grid;
	grid-template-columns: 40px minmax(0, 1fr);
	align-items: center;
	background: var(--tn360-menu-place, #28313b);
	box-shadow: 0 8px 24px rgba(0, 0, 0, .18);
}

.tn360-menu-search input {
	min-width: 0;
	width: 100%;
	height: 38px;
	padding: 0 7px;
	border: 0;
	outline: 0;
	background: transparent;
	color: var(--tn360-menu-text, #fff);
	font-family: "TN360 Metropolis", "Metropolis", "Solomon Sans", ui-sans-serif, system-ui, sans-serif;
	font-size: 14px;
	font-weight: 300;
}

.tn360-menu-search input::placeholder {
	color: color-mix(in srgb, var(--tn360-menu-text, #fff) 68%, transparent);
}

.tn360-menu-search button {
	width: 38px;
	height: 38px;
	padding: 8px;
	border: 0;
	border-radius: 10px;
	display: grid;
	place-items: center;
	background: transparent;
	color: var(--tn360-menu-text, #fff);
	cursor: pointer;
}

.tn360-menu-search button:hover,
.tn360-menu-search button:focus-visible,
.tn360-menu-search button.is-listening {
	background: var(--tn360-menu-accent, #1f6f8b);
}

.tn360-menu-search button:disabled {
	opacity: .42;
	cursor: not-allowed;
}

.tn360-menu-search button svg {
	width: 23px;
	height: 23px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.9;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.tn360-menu-search button.is-listening svg {
	animation: tn360-search-listening 900ms ease-in-out infinite alternate;
}

@keyframes tn360-search-listening {
	from { transform: scale(.88); }
	to { transform: scale(1.12); }
}

.tn360-category {
	min-height: 64px;
	padding: 10px 16px;
	border: 0;
	border-left: 7px solid var(--category-color, var(--tn360-brand));
	border-radius: 10px;
	display: flex;
	align-items: center;
	gap: 12px;
	background: var(--tn360-menu-category, #28313b);
	color: var(--tn360-menu-text, #fff);
	font-family: "TN360 Metropolis", "Metropolis", "Metropolis Regular", "Solomon Sans", ui-sans-serif, system-ui, sans-serif;
	font-size: 15px;
	font-weight: 400;
	text-align: left;
	cursor: pointer;
}

.tn360-category img {
	width: 36px;
	height: 36px;
	object-fit: contain;
}

.tn360-category.tn360-area-category {
	border: 1px solid color-mix(in srgb, var(--tn360-menu-accent, #1f6f8b) 78%, #fff);
	border-left-width: 7px;
	background: color-mix(in srgb, var(--tn360-menu-accent, #1f6f8b) 38%, var(--tn360-menu-category, #28313b));
	font-weight: 700;
}

.tn360-area-category-icon {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	background: var(--tn360-menu-accent, #1f6f8b);
	font-size: 25px;
	line-height: 1;
}

.tn360-availability-menu-button { border-color: #9da808; background: color-mix(in srgb, #9da808 28%, var(--tn360-menu-category, #28313b)); font-weight: 700; }
.tn360-availability-menu-icon { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: #9da808; color: #fff; font-size: 22px; font-weight: 900; }
.tn360-availability-dialog { width: min(880px, calc(100vw - 24px)); max-height: min(88dvh, 850px); padding: 0; border: 0; border-radius: 18px; overflow: hidden; background: #111923; color: #fff; box-shadow: 0 25px 80px rgba(0,0,0,.58); }
.tn360-availability-dialog::backdrop { background: rgba(0,0,0,.68); backdrop-filter: blur(7px); }
.tn360-availability-shell { max-height: inherit; display: grid; grid-template-rows: auto minmax(0,1fr); }
.tn360-availability-head { padding: 17px 20px; display: flex; justify-content: space-between; align-items: center; gap: 15px; background: #0080f5; }
.tn360-availability-head span { font-size: 11px; font-weight: 700; text-transform: uppercase; opacity: .8; }
.tn360-availability-head h2 { margin: 3px 0 0; font-size: clamp(20px, 4vw, 29px); }
.tn360-availability-head button { width: 42px; height: 42px; border: 0; border-radius: 50%; background: rgba(0,0,0,.3); color: #fff; font-size: 29px; cursor: pointer; }
.tn360-availability-public-list { padding: 18px; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 15px; overflow: auto; }
.tn360-availability-public-card { min-width: 0; border: 1px solid color-mix(in srgb, #e5f518 34%, transparent); border-radius: 13px; overflow: hidden; display: grid; grid-template-columns: 112px minmax(0,1fr); background: #20272d; }
.tn360-availability-public-card > img { width: 112px; height: 100%; min-height: 155px; object-fit: cover; }
.tn360-availability-public-card:not(:has(> img)) { grid-template-columns: 1fr; }
.tn360-availability-public-body { min-width: 0; padding: 13px; }
.tn360-availability-public-status { display: inline-block; padding: 5px 8px; border-radius: 999px; background: #476b1b; color: #fff; font-size: 10px; font-weight: 900; text-transform: uppercase; }
.tn360-availability-public-body h3 { margin: 8px 0 5px; font-size: 17px; }
.tn360-availability-public-body p { margin: 0 0 10px; font-size: 12px; opacity: .78; }
.tn360-availability-public-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.tn360-availability-public-actions a { padding: 7px 9px; border-radius: 7px; background: #0080f5; color: #fff; font-size: 11px; font-weight: 700; text-decoration: none; }
.tn360-availability-public-actions a:nth-child(n+2) { background: #9da808; }
.tn360-availability-search-form { grid-column: 1 / -1; padding: 14px; border: 1px solid rgba(255,255,255,.15); border-radius: 13px; display: grid; grid-template-columns: repeat(4,minmax(130px,1fr)) auto; gap: 9px; background: #20272d; }
.tn360-availability-search-form label { display: grid; gap: 5px; font-size: 11px; font-weight: 800; }
.tn360-availability-search-form input { width: 100%; min-height: 42px; padding: 7px 9px; border: 1px solid rgba(255,255,255,.2); border-radius: 8px; background: #111923; color: #fff; }
.tn360-availability-search-form button,.tn360-availability-public-actions button { min-height: 42px; padding: 8px 12px; border: 0; border-radius: 8px; background: #0080f5; color: #fff; font-weight: 800; cursor: pointer; }
.tn360-booking-data-help{grid-column:1/-1;margin:4px 0 0;font-size:12px;font-weight:800;color:#e5f518}
.tn360-booking-honeypot { position:fixed!important; left:-10000px!important; width:1px!important; height:1px!important; opacity:0!important; }
.tn360-availability-results { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(auto-fit,minmax(260px,1fr)); gap: 15px; }
.tn360-availability-empty { grid-column: 1 / -1; padding: 18px; border-radius: 12px; background: rgba(255,255,255,.07); text-align:center; }
@media(max-width:900px){.tn360-availability-search-form{grid-template-columns:repeat(2,minmax(0,1fr))}.tn360-availability-search-form>button{grid-column:1/-1}}
@media (max-width: 600px) { .tn360-availability-dialog { width: 100vw; height: 100dvh; max-height: none; border-radius: 0; } .tn360-availability-public-list { grid-template-columns: 1fr; padding: 12px; } }
@media(max-width:600px){.tn360-availability-search-form{grid-template-columns:1fr}.tn360-availability-search-form>button{grid-column:auto}.tn360-availability-results{grid-template-columns:1fr}}

.tn360-menu-back {
	justify-self: start;
	border: 1px solid color-mix(in srgb, var(--tn360-menu-accent, #1f6f8b) 62%, transparent);
	border-radius: 999px;
	padding: 8px 12px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: color-mix(in srgb, var(--tn360-menu-accent, #1f6f8b) 28%, var(--tn360-menu-category, #28313b));
	color: var(--tn360-menu-text, #fff);
	font-family: "TN360 Metropolis", "Metropolis", "Metropolis Regular", "Solomon Sans", ui-sans-serif, system-ui, sans-serif;
	font-size: 13px;
	font-weight: 700;
	cursor: pointer;
}

.tn360-menu-back-icon,
.tn360-menu-back-icon svg {
	width: 28px;
	height: 28px;
	display: block;
}

.tn360-menu-back-icon svg {
	fill: color-mix(in srgb, var(--tn360-menu-accent, #1f6f8b) 36%, transparent);
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.tn360-menu-category-title {
	justify-self: start;
	margin: 4px 0 6px;
	padding: 7px 12px;
	border: 1px solid color-mix(in srgb, var(--category-color, var(--tn360-menu-accent, #1f6f8b)) 72%, #fff);
	border-radius: 999px;
	background: color-mix(in srgb, var(--category-color, var(--tn360-menu-accent, #1f6f8b)) 55%, var(--tn360-menu-category, #28313b));
	font-family: "TN360 Metropolis", "Metropolis", "Metropolis Regular", "Solomon Sans", ui-sans-serif, system-ui, sans-serif;
	font-size: 15px;
	font-weight: 400;
	line-height: 1.15;
}

.tn360-place-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.tn360-place-card {
	min-height: 110px;
	border-radius: 10px;
	overflow: hidden;
	display: grid;
	background: var(--tn360-menu-place, #28313b);
	color: var(--tn360-menu-text, #fff);
	font-family: "TN360 Metropolis", "Metropolis", "Metropolis Light", "Solomon Sans", ui-sans-serif, system-ui, sans-serif;
	font-weight: 300;
	text-decoration: none;
}

.tn360-hotspot-marker:not(.tn360-hotspot-scene) {
	width: 54px;
	height: 44px;
	border: 2px solid rgba(255, 255, 255, .92);
	border-radius: 13px;
	place-items: center;
	background: color-mix(in srgb, var(--tn360-hotspot-color, var(--tn360-control-info-color, var(--tn360-brand))) var(--tn360-control-info-opacity, 90%), transparent);
	color: #fff;
	box-shadow: 0 8px 24px rgba(0, 0, 0, .38);
	cursor: pointer;
	transition: box-shadow 150ms ease;
	will-change: transform;
}

.tn360-hotspot-marker:not(.tn360-hotspot-scene).psv-marker--visible {
	display: grid;
}

.tn360-hotspot-marker:not(.tn360-hotspot-scene)::before {
	content: "";
	position: absolute;
	inset: -9px;
	border: 2px solid rgba(255, 255, 255, .5);
	border-radius: inherit;
	opacity: 0;
}

.tn360-hotspot-marker:not(.tn360-hotspot-scene):hover,
.tn360-hotspot-marker:not(.tn360-hotspot-scene):focus-visible {
	box-shadow: 0 10px 30px rgba(0, 0, 0, .52);
}

.tn360-hotspot-symbol {
	display: block;
	font-size: 23px;
	font-weight: 900;
	line-height: 1;
}

.tn360-information-hotspot-button {
	width: 100%;
	height: 100%;
	padding: 0;
	border: 0;
	border-radius: inherit;
	background: transparent;
	color: inherit;
	font: inherit;
	appearance: none;
}

.tn360-info-animation-fade .tn360-hotspot-symbol {
	animation: tn360-info-fade 650ms ease-out both;
}

.tn360-info-animation-scale .tn360-hotspot-symbol {
	animation: tn360-info-scale 650ms cubic-bezier(.2, .9, .25, 1.25) both;
}

.tn360-info-animation-bounce .tn360-hotspot-symbol {
	animation: tn360-info-bounce 850ms ease-out both;
}

.tn360-info-animation-pulse::before {
	animation: tn360-pulse 2.2s ease-out infinite;
}

@keyframes tn360-info-fade {
	from { opacity: 0; }
	to { opacity: 1; }
}

@keyframes tn360-info-scale {
	from { opacity: 0; transform: scale(.35); }
	to { opacity: 1; transform: scale(1); }
}

@keyframes tn360-info-bounce {
	0% { opacity: 0; transform: translateY(-14px); }
	55% { opacity: 1; transform: translateY(5px); }
	78% { transform: translateY(-2px); }
	100% { transform: translateY(0); }
}

.tn360-hotspot-pdf .tn360-hotspot-symbol {
	font-size: 10px;
	letter-spacing: -.02em;
}

.tn360-hotspot-whatsapp {
	background: #25d366;
}

.tn360-hotspot-link,
.tn360-hotspot-pdf {
	background: #2c3e50;
}

.tn360-hotspot-gallery {
	background: #7a4db3;
}

.tn360-stage .tn360-virtual-tour-arrow.psv-virtual-tour-arrow {
	color: color-mix(in srgb, var(--tn360-control-arrow-color, #fff) var(--tn360-control-arrow-opacity, 82%), transparent);
	filter: drop-shadow(0 5px 6px rgba(0, 0, 0, .72));
}

.tn360-stage .psv-virtual-tour-arrows {
	display: none !important;
}

.tn360-stage .tn360-virtual-tour-arrow.psv-virtual-tour-arrow svg {
	transform-origin: center;
	animation: tn360-arrow-breathe 2.25s ease-in-out infinite;
}

.tn360-stage .tn360-virtual-tour-arrow.psv-virtual-tour-arrow:focus-visible {
	outline: 3px solid #fff;
	outline-offset: 3px;
}

.tn360-hotspot-scene {
	display: none;
	place-items: center;
	cursor: pointer;
	filter: drop-shadow(0 5px 7px rgba(0, 0, 0, .68));
}

.tn360-hotspot-scene.psv-marker--visible {
	display: grid;
}

.tn360-fallback-arrow-button {
	--tn360-anchored-arrow-rotation: 0deg;
	width: 100%;
	height: 100%;
	padding: 0;
	border: 0;
	border-radius: 0;
	display: grid;
	place-items: center;
	background: none;
	color: color-mix(in srgb, var(--tn360-control-arrow-color, #fff) var(--tn360-control-arrow-opacity, 82%), transparent);
	cursor: pointer;
}

.tn360-fallback-arrow-button[data-direction="right"] { --tn360-anchored-arrow-rotation: 90deg; }
.tn360-fallback-arrow-button[data-direction="down"] { --tn360-anchored-arrow-rotation: 180deg; }
.tn360-fallback-arrow-button[data-direction="left"] { --tn360-anchored-arrow-rotation: -90deg; }

.tn360-fallback-arrow-button svg {
	width: 100%;
	height: 100%;
	display: block;
	fill: currentColor;
	transform-origin: center;
	animation: tn360-anchored-arrow-3d 2.25s ease-in-out infinite;
}

.tn360-static-tour-arrows {
	position: fixed;
	z-index: 12;
	inset: 0;
	width: 100vw;
	height: 100dvh;
	transform: none !important;
	pointer-events: none;
}
.tn360-cover-gallery-controls{position:absolute;z-index:24;inset:0;pointer-events:none;color:#fff}.tn360-cover-gallery-controls button{position:absolute;top:50%;width:48px;height:48px;border:0;border-radius:50%;background:rgba(10,14,18,.82);color:#fff;font-size:31px;line-height:1;box-shadow:0 5px 18px rgba(0,0,0,.38);backdrop-filter:blur(8px);cursor:pointer;pointer-events:auto;transform:translateY(-50%)}.tn360-cover-gallery-controls [data-cover-prev]{left:max(14px,env(safe-area-inset-left))}.tn360-cover-gallery-controls [data-cover-next]{right:max(14px,env(safe-area-inset-right))}.tn360-cover-gallery-controls span{position:absolute;left:50%;bottom:max(24px,env(safe-area-inset-bottom));min-width:58px;padding:8px 10px;border-radius:999px;background:rgba(10,14,18,.78);text-align:center;font-weight:800;transform:translateX(-50%)}.tn360-stage{background-size:cover;background-position:center;background-repeat:no-repeat;transition:background-image .22s ease-in-out}
.tn360-experience.has-cover-gallery .tn360-stage{touch-action:pan-y;cursor:grab;user-select:none}.tn360-experience.has-cover-gallery .tn360-stage:active,.tn360-experience.has-cover-gallery .tn360-stage.is-gallery-dragging{cursor:grabbing}
.tn360-action-bar-right-center.tn360-gallery-controls-below-arrow{top:calc(50% + 126px)}
.tn360-availability-360-badge{display:inline-flex;width:max-content;margin:0 0 7px;padding:4px 7px;border-radius:999px;background:var(--tn360-map-accent,#0080f5);color:#fff;font-size:.65rem;font-weight:900;letter-spacing:.04em}

.tn360-static-tour-arrow {
	--tn360-static-arrow-rotation: 0deg;
	position: absolute;
	padding: 0;
	border: 0;
	border-radius: 0;
	display: grid;
	place-items: center;
	background: none;
	color: color-mix(in srgb, var(--tn360-control-arrow-color, #fff) var(--tn360-control-arrow-opacity, 82%), transparent);
	filter: drop-shadow(0 5px 7px rgba(0, 0, 0, .72));
	transform: translate(-50%, -50%) rotate(var(--tn360-static-arrow-rotation));
	perspective: 240px;
	transform-style: preserve-3d;
	cursor: pointer;
	pointer-events: auto;
}

.tn360-static-tour-arrow[data-direction="right"] { --tn360-static-arrow-rotation: 90deg; }
.tn360-static-tour-arrow[data-direction="down"] { --tn360-static-arrow-rotation: 180deg; }
.tn360-static-tour-arrow[data-direction="left"] { --tn360-static-arrow-rotation: -90deg; }

.tn360-static-tour-arrow svg {
	display: block;
	width: 100%;
	height: 100%;
	fill: currentColor;
	transform-origin: center;
	animation: tn360-static-arrow-3d 2.25s ease-in-out infinite;
}

.tn360-static-tour-arrow:focus-visible {
	outline: 3px solid #fff;
	outline-offset: 3px;
}

@keyframes tn360-arrow-breathe {
	0%, 100% { opacity: .82; transform: scale(.94); }
	50% { opacity: 1; transform: scale(1.06); }
}

@keyframes tn360-anchored-arrow-3d {
	0%, 100% { opacity: .84; transform: rotate(var(--tn360-anchored-arrow-rotation)) rotateX(54deg) scale(.93); }
	50% { opacity: 1; transform: rotate(var(--tn360-anchored-arrow-rotation)) rotateX(54deg) scale(1.06); }
}

@keyframes tn360-static-arrow-3d {
	0%, 100% { opacity: .84; transform: rotateX(54deg) scale(.93); }
	50% { opacity: 1; transform: rotateX(54deg) scale(1.06); }
}

.tn360-stage .psv-loader-image {
	width: 100%;
	height: 100%;
	object-fit: contain;
	filter: drop-shadow(0 5px 14px rgba(0, 0, 0, .42));
}

@keyframes tn360-pulse {
	0% {
		opacity: .85;
		transform: scale(.75);
	}
	75%,
	100% {
		opacity: 0;
		transform: scale(1.28);
	}
}

.tn360-dialog {
	width: min(900px, calc(100vw - 32px));
	max-height: min(86vh, 820px);
	padding: 0;
	border: 1px solid rgba(255, 255, 255, .18);
	border-radius: 18px;
	background: rgba(13, 16, 19, .96);
	color: #fff;
	box-shadow: 0 28px 90px rgba(0, 0, 0, .64);
	overflow: hidden;
}

.tn360-dialog::backdrop {
	background: rgba(0, 0, 0, .66);
	backdrop-filter: blur(7px);
}

.tn360-dialog.is-open {
	position: fixed;
	inset: 50% auto auto 50%;
	display: block;
	transform: translate(-50%, -50%);
	z-index: 100;
}

.tn360-dialog.is-information-panel {
	position: fixed;
	inset: 0 0 0 auto;
	width: min(520px, calc(100vw - 28px));
	height: 100dvh;
	max-height: 100dvh;
	margin: 0 0 0 auto;
	border-radius: 20px 0 0 20px;
	animation: tn360-information-enter .28s ease-out both;
}

.tn360-dialog.is-open.is-information-panel {
	inset: 0 0 0 auto;
	transform: none;
}

.tn360-dialog.is-information-panel .tn360-dialog-shell {
	height: 100%;
	max-height: 100%;
	padding: 74px clamp(20px, 4vw, 38px) 34px;
}

.tn360-dialog.is-information-panel .tn360-dialog-close {
	width: auto;
	min-width: 112px;
	height: 44px;
	padding: 0 13px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font-size: 26px;
}

.tn360-dialog.is-information-panel .tn360-dialog-close strong {
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: .06em;
}

@keyframes tn360-information-enter {
	from { opacity: .4; transform: translateX(36px); }
	to { opacity: 1; transform: translateX(0); }
}

.tn360-dialog-shell {
	position: relative;
	padding: clamp(22px, 4vw, 38px);
	overflow: auto;
	max-height: min(86vh, 820px);
}

.tn360-dialog h2 {
	margin: 0 70px 20px 0;
	font-size: clamp(22px, 3vw, 34px);
	line-height: 1.15;
}

.tn360-dialog-close {
	position: absolute;
	top: 14px;
	right: 14px;
	width: 50px;
	height: 50px;
	border: 2px solid rgba(255, 255, 255, .72);
	border-radius: 13px;
	background: rgba(12, 17, 23, .82);
	color: #fff;
	font-size: 34px;
	font-weight: 300;
	line-height: 1;
	cursor: pointer;
}

.tn360-stage .psv-panel-close-button {
	top: 12px;
	right: 12px;
	width: 30px;
	height: 30px;
	padding: 9px;
	border: 2px solid rgba(255, 255, 255, .72);
	border-radius: 13px;
	background: rgba(12, 17, 23, .82);
	z-index: 2;
}

.tn360-stage .psv-panel-close-button:hover {
	background: rgba(0, 0, 0, .95);
}

.tn360-stage .psv-panel-content:not(.psv-panel-content--no-margin) {
	padding: 74px 20px 24px;
}

.tn360-dialog-content {
	min-height: 40px;
}

.tn360-information-image {
	width: 100%;
	max-height: 260px;
	margin: 0 0 20px;
	border-radius: 14px;
	object-fit: cover;
}

.tn360-information-section { margin: 0 0 22px; }
.tn360-information-section h3 { margin: 0 0 8px; font-size: 1.08rem; }
.tn360-information-section p { margin: 0 0 12px; line-height: 1.6; }
.tn360-information-source { padding-top: 14px; border-top: 1px solid rgba(255,255,255,.16); font-size: .86rem; opacity: .84; }
.tn360-information-source a { color: #fff; font-weight: 700; }

@media (max-width: 600px) {
	.tn360-dialog.is-information-panel {
		width: min(92vw, 460px);
		border-radius: 16px 0 0 16px;
	}
	.tn360-dialog.is-information-panel .tn360-dialog-shell { padding-inline: 18px; }
}

.tn360-search-results {
	display: grid;
	gap: 16px;
}

.tn360-search-summary {
	margin: 0;
	color: rgba(255, 255, 255, .76);
	font-family: "TN360 Metropolis", "Metropolis", "Solomon Sans", ui-sans-serif, system-ui, sans-serif;
	font-weight: 400;
}

.tn360-search-result-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 13px;
}

.tn360-search-result-card {
	position: relative;
	min-width: 0;
	min-height: 112px;
	border: 1px solid rgba(255, 255, 255, .16);
	border-left: 5px solid var(--category-color, var(--tn360-brand));
	border-radius: 12px;
	display: grid;
	grid-template-columns: 112px minmax(0, 1fr);
	overflow: hidden;
	background: var(--tn360-menu-place, #28313b);
	color: var(--tn360-menu-text, #fff);
	text-decoration: none;
	font: inherit;
	text-align: left;
	cursor: pointer;
}

.tn360-search-filter-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
}

.tn360-search-filter-chip {
	min-height: 32px;
	padding: 5px 10px;
	border: 1px solid color-mix(in srgb, var(--tn360-menu-accent, #1f6f8b) 76%, #fff);
	border-radius: 999px;
	background: color-mix(in srgb, var(--tn360-menu-accent, #1f6f8b) 32%, var(--tn360-menu-place, #28313b));
	color: var(--tn360-menu-text, #fff);
	font: inherit;
	font-size: 12px;
	cursor: pointer;
}

.tn360-search-results-inline {
	display: grid;
	gap: 9px;
}

.tn360-search-results-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	font-size: 12px;
}

.tn360-search-results-head button {
	border: 0;
	background: transparent;
	color: var(--tn360-menu-text, #fff);
	font: inherit;
	text-decoration: underline;
	cursor: pointer;
}

.tn360-search-result-card mark {
	padding: 1px 3px;
	border-radius: 4px;
	background: var(--tn360-menu-accent, #1f6f8b);
	color: #fff;
}

.tn360-search-result-card.is-compact {
	min-height: 88px;
	grid-template-columns: 88px minmax(0, 1fr);
}

.tn360-search-result-card.is-compact > img {
	width: 88px;
	height: 88px;
}

.tn360-search-result-card.no-image {
	grid-template-columns: minmax(0, 1fr);
}

.tn360-search-empty {
	padding: 18px 14px;
	border: 1px dashed color-mix(in srgb, var(--tn360-menu-text, #fff) 28%, transparent);
	border-radius: 12px;
	color: color-mix(in srgb, var(--tn360-menu-text, #fff) 76%, transparent);
	font-size: 13px;
	line-height: 1.45;
}

.tn360-search-result-card > img {
	width: 112px;
	height: 112px;
	object-fit: cover;
}

.tn360-search-result-card > span {
	min-width: 0;
	padding: 13px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 6px;
	font-family: "TN360 Metropolis", "Metropolis", "Solomon Sans", ui-sans-serif, system-ui, sans-serif;
}

.tn360-search-result-card strong {
	font-size: 16px;
	font-weight: 300;
	line-height: 1.2;
}

.tn360-search-result-card small {
	color: color-mix(in srgb, var(--tn360-menu-text, #fff) 72%, transparent);
	font-size: 12px;
	font-weight: 400;
}

.tn360-search-result-card > .tn360-search-result-number {
	position: absolute;
	top: 7px;
	left: 7px;
	z-index: 2;
	width: 30px;
	height: 30px;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, .88);
	border-radius: 50%;
	display: grid;
	place-items: center;
	background: color-mix(in srgb, var(--category-color, var(--tn360-brand, #1f6f8b)) 88%, #111);
	color: #fff;
	box-shadow: 0 3px 10px rgba(0, 0, 0, .42);
	font: 700 14px/1 "TN360 Metropolis", "Metropolis", ui-sans-serif, system-ui, sans-serif;
}

.tn360-menu.is-voice-results .tn360-search-result-card.no-image > span:not(.tn360-search-result-number) {
	padding-left: 52px;
}

.tn360-info-text {
	margin: 0;
	font-size: clamp(17px, 2vw, 20px);
	line-height: 1.65;
	white-space: pre-line;
}

.tn360-info-detail,
.tn360-psv-info-panel {
	display: grid;
	gap: 16px;
}

.tn360-info-detail > img,
.tn360-psv-info-image {
	display: block;
	width: 100%;
	max-height: 46vh;
	border-radius: 12px;
	object-fit: cover;
}

.tn360-info-link,
.tn360-psv-info-link {
	justify-self: start;
	padding: 10px 16px;
	border-radius: 999px;
	background: var(--tn360-info-accent, var(--tn360-brand));
	color: #fff;
	font-weight: 700;
	text-decoration: none;
}

.tn360-psv-info-panel h2 {
	margin: 0;
	font-size: clamp(23px, 3vw, 34px);
	line-height: 1.15;
}

.tn360-psv-info-panel p {
	margin: 0;
	font-size: 17px;
	line-height: 1.65;
}

.tn360-dialog-video {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	border-radius: 12px;
	overflow: hidden;
	background: #050505;
}

.tn360-dialog-video iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.tn360-dialog-gallery {
	display: grid;
	gap: 14px;
}

.tn360-gallery-main {
	width: 100%;
	max-height: 58vh;
	border-radius: 12px;
	display: block;
	object-fit: contain;
	background: #080808;
}

.tn360-gallery-controls {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 18px;
}

.tn360-gallery-controls button,
.tn360-gallery-thumbnails button {
	border: 1px solid rgba(255, 255, 255, .24);
	background: rgba(255, 255, 255, .09);
	color: #fff;
	cursor: pointer;
}

.tn360-gallery-controls button {
	width: 44px;
	height: 38px;
	border-radius: 999px;
	font-size: 21px;
}

.tn360-gallery-thumbnails {
	display: flex;
	gap: 9px;
	overflow-x: auto;
	padding-bottom: 4px;
}

.tn360-gallery-thumbnails button {
	flex: 0 0 86px;
	height: 62px;
	padding: 3px;
	border-radius: 8px;
}

.tn360-gallery-thumbnails button.is-active {
	border-color: var(--tn360-brand);
	box-shadow: 0 0 0 2px var(--tn360-brand);
}

.tn360-gallery-thumbnails img {
	width: 100%;
	height: 100%;
	border-radius: 5px;
	object-fit: cover;
}

.tn360-place-card img {
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

.tn360-place-card span {
	padding: 10px;
	font-family: "TN360 Metropolis", "Metropolis", "Metropolis Light", "Solomon Sans", ui-sans-serif, system-ui, sans-serif;
	font-weight: 300;
}

.tn360-unit-nav {
	position: absolute;
	z-index: 25;
	top: max(84px, calc(env(safe-area-inset-top) + 72px));
	left: 50%;
	width: max-content;
	max-width: calc(100vw - 32px);
	display: flex;
	gap: 8px;
	padding: 3px;
	overflow-x: auto;
	scrollbar-width: none;
	transform: translateX(-50%);
}

.tn360-unit-nav::-webkit-scrollbar {
	display: none;
}

.tn360-unit-nav[hidden] {
	display: none;
}

.tn360-unit-button {
	min-height: 38px;
	padding: 7px 13px;
	border: 1px solid rgba(255, 255, 255, .55);
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	gap: 7px;
	flex: 0 0 auto;
	background: rgba(15, 15, 15, .7);
	backdrop-filter: blur(10px);
	color: #fff;
	box-shadow: 0 5px 18px rgba(0, 0, 0, .3);
	font: inherit;
	font-size: 13px;
	font-weight: 700;
	cursor: pointer;
}

.tn360-unit-button img {
	width: 21px;
	height: 21px;
	object-fit: contain;
}

.tn360-unit-button.is-active {
	border-color: #fff;
	background: var(--tn360-unit-color, var(--tn360-brand));
	box-shadow: 0 0 0 2px color-mix(in srgb, var(--tn360-unit-color, var(--tn360-brand)) 62%, transparent), 0 7px 22px rgba(0, 0, 0, .38);
}

.tn360-unit-offer {
	position: absolute;
	z-index: 24;
	top: max(72px, calc(env(safe-area-inset-top) + 60px));
	left: max(18px, env(safe-area-inset-left));
	width: 176px;
	max-width: calc(100vw - 36px);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	gap: 7px;
}

.tn360-unit-offer[hidden] {
	display: none;
}

.tn360-extra-button {
	width: 100%;
	min-height: 36px;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 7px 9px;
	border: 1px solid rgba(255,255,255,.48);
	border-radius: 11px;
	background: rgba(10,12,15,.8);
	backdrop-filter: blur(10px);
	color: #fff;
	font: inherit;
	font-size: 11px;
	line-height: 1.2;
	cursor: pointer;
	box-shadow: 0 5px 16px rgba(0,0,0,.3);
	text-decoration: none;
	text-align: left;
}
.tn360-extra-button > span:first-child { width: 19px; height: 19px; flex: 0 0 19px; border-radius: 50%; display: grid; place-items: center; background: var(--tn360-brand); font-weight: 900; }
.tn360-extra-button > strong { min-width: 0; flex: 1; line-height: 1.15; }
.tn360-services-toggle small { min-width: 19px; height: 19px; padding: 0 5px; border-radius: 999px; display: grid; place-items: center; background: rgba(255,255,255,.16); font-weight: 800; }
.tn360-available-today { border-color: rgba(229,245,24,.7); background: #476b1b; animation: tn360-available-attention 2.1s ease-in-out infinite; cursor: default; }
.tn360-available-today > span:first-child { background: #e5f518; color: #26330f; }
.tn360-availability-toggle > span:first-child { background: #0080f5; }
.tn360-unit-price { cursor: default; }
.tn360-unit-offer-action { border-color: rgba(229,245,24,.72); background: #9da808; }
@keyframes tn360-available-attention { 0%,100% { transform: scale(1); box-shadow: 0 5px 16px rgba(0,0,0,.3); } 50% { transform: scale(1.035); box-shadow: 0 7px 22px rgba(229,245,24,.34); } }
.tn360-services-dialog-list { display: grid; grid-template-columns: repeat(auto-fit,minmax(180px,1fr)); gap: 9px; }
.tn360-services-dialog-item { padding: 11px 12px; border: 1px solid rgba(255,255,255,.13); border-radius: 10px; display: flex; align-items: center; gap: 9px; background: rgba(255,255,255,.06); }
.tn360-services-dialog-item > span:first-child { width: 23px; height: 23px; flex: 0 0 23px; border-radius: 50%; display: grid; place-items: center; background: var(--tn360-brand); color: #fff; font-weight: 900; }
.tn360-dialog.is-services-panel #tn360-dialog-title {
	display: inline-block;
	width: fit-content;
	max-width: calc(100% - 52px);
	margin: 0 0 14px;
	padding: 8px 14px;
	border-radius: 13px;
	background: var(--tn360-brand, #0080f5);
	color: #fff;
	font-size: clamp(16px, 2vw, 20px);
	line-height: 1.2;
	text-align: left;
	box-shadow: none;
}

.tn360-map-card-services {
	font-size: 12px;
	font-weight: 600;
	opacity: .9;
}

.tn360-public-calendar { width: min(430px, 100%); margin: 0 auto; }
.tn360-public-calendar-toolbar { margin-bottom: 13px; display: grid; grid-template-columns: 42px 1fr 42px; align-items: center; gap: 8px; }
.tn360-public-calendar-toolbar strong { text-align: center; text-transform: capitalize; }
.tn360-public-calendar-toolbar button { height: 38px; border: 0; border-radius: 9px; background: #0080f5; color: #fff; font-size: 25px; cursor: pointer; }
.tn360-public-calendar-toolbar button:disabled { opacity: .28; cursor: default; }
.tn360-public-calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(32px,1fr)); gap: 5px; }
.tn360-public-calendar-grid > b { padding: 6px 0; color: #e5f518; text-align: center; font-size: 11px; }
.tn360-public-calendar-grid > span { min-height: 38px; border-radius: 8px; display: grid; place-items: center; background: rgba(255,255,255,.08); font-size: 12px; }
.tn360-public-calendar-grid > span.is-available { background: #476b1b; color: #fff; font-weight: 900; }
.tn360-public-calendar-grid > span.is-occupied { background: rgba(255,255,255,.08); color: rgba(255,255,255,.64); text-decoration: line-through 2px; }
.tn360-public-calendar-grid > span.is-inquiry { background: #9da808; color: #fff; font-weight: 800; }
.tn360-public-calendar-grid > span.is-past { opacity: .32; }
.tn360-public-calendar-grid > span.is-empty { visibility: hidden; }
.tn360-public-calendar-grid > span.is-today { outline: 2px solid #e5f518; outline-offset: 1px; }
.tn360-public-calendar-legend { margin-top: 14px; display: flex; flex-wrap: wrap; gap: 15px; font-size: 12px; }
.tn360-public-calendar-legend span { display: inline-flex; align-items: center; gap: 6px; }
.tn360-public-calendar-legend i { width: 15px; height: 15px; border-radius: 4px; background: rgba(255,255,255,.08); }
.tn360-public-calendar-legend i.is-available { background: #476b1b; }
.tn360-public-calendar-legend i.is-inquiry { background: #9da808; }
.tn360-public-calendar-legend i.is-occupied { position: relative; }
.tn360-public-calendar-legend i.is-occupied::after { content: ""; position: absolute; top: 7px; left: 1px; width: 13px; border-top: 2px solid rgba(255,255,255,.65); transform: rotate(-35deg); }
.tn360-experience.is-menu-open .tn360-unit-offer,
.tn360-experience:has(dialog[open]) .tn360-unit-offer { display: none; }

.tn360-scene-nav {
	position: absolute;
	z-index: 20;
	left: 50%;
	bottom: var(--tn360-scene-nav-bottom, max(22px, env(safe-area-inset-bottom)));
	width: min(680px, calc(100vw - 40px));
	max-width: calc(100vw - 40px);
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 7px;
	max-height: min(30vh, 220px);
	overflow: auto;
	transform: translateX(-50%);
	scrollbar-width: none;
}

.tn360-scene-nav:empty {
	display: none;
}

.tn360-scene-nav[hidden] {
	display: none;
}

.tn360-scene-nav button {
	flex: 0 0 auto;
	border: 1px solid rgba(255, 255, 255, .38);
	border-radius: 999px;
	max-width: min(180px, calc(50vw - 28px));
	padding: 7px 10px;
	background: color-mix(in srgb, var(--tn360-category-color, var(--tn360-brand, #1f6f8b)) 82%, transparent);
	backdrop-filter: blur(10px);
	color: #fff;
	font: 500 12px/1.18 "TN360 Metropolis", "Metropolis", ui-sans-serif, system-ui, sans-serif;
	text-align: center;
	white-space: normal;
	overflow-wrap: anywhere;
	cursor: pointer;
}

.tn360-scene-nav button.is-active {
	border-color: #fff;
	background: var(--tn360-category-color, var(--tn360-brand));
}

.tn360-action-bar {
	position: absolute;
	z-index: 24;
	display: flex;
	align-items: center;
	gap: 8px;
	max-width: calc(100vw - 36px);
	border: 0;
	background: transparent;
	box-shadow: none;
	pointer-events: none;
}

.tn360-action-bar:empty {
	display: none;
}

.tn360-action-bar-left-center,
.tn360-action-bar-right-center {
	top: 50%;
	flex-direction: column;
	justify-content: center;
	overflow: visible;
	transform: translateY(-50%);
}

.tn360-action-bar-left-center {
	left: max(16px, env(safe-area-inset-left));
}

.tn360-action-bar-right-center {
	right: max(16px, env(safe-area-inset-right));
}

.tn360-action-bar-top-left,
.tn360-action-bar-top-center,
.tn360-action-bar-top-right,
.tn360-action-bar-bottom-left,
.tn360-action-bar-bottom-center,
.tn360-action-bar-bottom-right {
	left: 50%;
	flex-direction: row;
	flex-wrap: wrap;
	overflow: visible;
	transform: translateX(-50%);
}

.tn360-experience.has-units .tn360-action-bar-top-left,
.tn360-experience.has-units .tn360-action-bar-top-center,
.tn360-experience.has-units .tn360-action-bar-top-right {
	top: max(142px, calc(env(safe-area-inset-top) + 130px));
}

.tn360-experience.has-unit-offer .tn360-action-bar-top-left,
.tn360-experience.has-unit-offer .tn360-action-bar-top-center,
.tn360-experience.has-unit-offer .tn360-action-bar-top-right {
	top: max(184px, calc(env(safe-area-inset-top) + 172px));
}

.tn360-action-bar-top-left,
.tn360-action-bar-top-center,
.tn360-action-bar-top-right {
	top: max(94px, calc(env(safe-area-inset-top) + 82px));
}

.tn360-action-bar-bottom-left,
.tn360-action-bar-bottom-center,
.tn360-action-bar-bottom-right {
	bottom: max(20px, env(safe-area-inset-bottom));
}

.tn360-action-bar-top-left,
.tn360-action-bar-bottom-left {
	left: max(16px, env(safe-area-inset-left));
	max-width: 32vw;
	transform: none;
}

.tn360-action-bar-top-right,
.tn360-action-bar-bottom-right {
	right: max(16px, env(safe-area-inset-right));
	left: auto;
	max-width: 32vw;
	transform: none;
}

.tn360-action-bar-top-center,
.tn360-action-bar-bottom-center {
	max-width: 46vw;
}

.tn360-action-bar-bottom-center {
	right: auto;
	left: 50%;
	width: min(var(--tn360-bottom-width, 68px), calc(100vw - 24px));
	max-width: calc(100vw - 24px);
	display: grid;
	grid-template-columns: repeat(var(--tn360-bottom-count, 1), minmax(0, 52px));
	grid-auto-flow: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	transform: translateX(-50%);
	flex-wrap: nowrap;
	overflow: visible;
}

.tn360-action-bar-bottom-center > [data-bottom-zone="left"] {
	order: 0;
}

.tn360-action-bar-bottom-center > [data-bottom-zone="center"] {
	order: 1;
}

.tn360-action-bar-bottom-center > [data-bottom-zone="right"] {
	order: 2;
}

.tn360-experience.has-bottom-actions .tn360-scene-nav {
	bottom: var(--tn360-scene-nav-bottom, max(78px, calc(env(safe-area-inset-bottom) + 72px)));
}

.tn360-fixed-action {
	position: relative;
	width: 49px;
	height: 40px;
	min-width: 49px;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, .72);
	border-radius: 13px;
	display: grid;
	place-items: center;
	background: color-mix(in srgb, var(--tn360-control-color, var(--tn360-brand)) var(--tn360-control-opacity, 90%), transparent);
	color: #fff;
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	box-shadow: 0 5px 16px rgba(0, 0, 0, .38);
	font: inherit;
	cursor: pointer;
	pointer-events: auto;
	transition: transform 140ms ease, box-shadow 140ms ease;
}

.tn360-fixed-action:hover,
.tn360-fixed-action:focus-visible {
	transform: scale(1.08);
	box-shadow: 0 7px 22px rgba(0, 0, 0, .5);
}

.tn360-fixed-action svg {
	width: 22px;
	height: 22px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.9;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.tn360-fixed-action[data-action-type="whatsapp"] svg {
	display: block;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	margin: auto;
}

.tn360-fixed-action[data-action-type="pdf"] span {
	font-size: 9px;
	font-weight: 900;
	letter-spacing: -.03em;
}

.tn360-action-button {
	width: 52px;
	height: 42px;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, .72);
	border-radius: 13px;
	display: grid;
	place-items: center;
	font: inherit;
	font-weight: 700;
	text-decoration: none;
	cursor: pointer;
	pointer-events: auto;
	background: color-mix(in srgb, var(--tn360-control-color, var(--tn360-brand)) var(--tn360-control-opacity, 90%), transparent);
	color: #fff;
}

.tn360-action-button svg {
	width: 29px;
	height: 29px;
}

.tn360-custom-control-icon {
	display: block;
	width: 30px;
	height: 30px;
	object-fit: contain;
	pointer-events: none;
}

.tn360-camera-toggle svg,
.tn360-description-toggle svg,
.tn360-share-toggle svg {
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.tn360-camera-toggle {
	--tn360-icon-size: var(--tn360-control-camera-size, 46px);
	position: relative;
	width: clamp(44px, calc(var(--tn360-icon-size, 46px) + 12px), 84px);
	height: clamp(44px, calc(var(--tn360-icon-size, 46px) + 12px), 84px);
	padding: 0;
	border: var(--tn360-control-camera-border-width, 1px) solid rgba(255, 255, 255, .78);
	border-radius: 50%;
	display: grid;
	place-items: center;
	box-sizing: border-box;
	background: color-mix(in srgb, var(--tn360-control-color, var(--tn360-brand)) var(--tn360-control-opacity, 90%), transparent);
	color: #fff;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
	box-shadow: 0 5px 16px rgba(0, 0, 0, .38);
	overflow: visible;
	animation: tn360-camera-attention 2.8s ease-in-out infinite;
}

.tn360-camera-toggle::before {
	content: "";
	position: absolute;
	inset: -7px;
	border: var(--tn360-control-camera-border-width, 1px) solid rgba(255, 255, 255, .58);
	border-radius: inherit;
	pointer-events: none;
	animation: tn360-camera-ring 2.8s ease-out infinite;
}

.tn360-camera-icon {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	display: grid;
	place-items: center;
	line-height: 0;
	pointer-events: none;
}

.tn360-camera-toggle .tn360-camera-icon svg {
	display: block;
	width: var(--tn360-icon-size, 46px);
	height: var(--tn360-icon-size, 46px);
	margin: 0;
	stroke-width: 2.2;
	transform: translateY(-3px);
}

.tn360-camera-toggle .tn360-custom-control-icon {
	display: block;
	width: var(--tn360-icon-size, 46px);
	height: var(--tn360-icon-size, 46px);
	margin: 0;
	transform: translateY(-3px);
}

.tn360-camera-voice-group {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0;
	pointer-events: none;
}

.tn360-camera-voice-group > * {
	pointer-events: auto;
}

.tn360-camera-toggle + .tn360-voice-toggle {
	margin-top: var(--tn360-voice-camera-gap, 9px);
}

.tn360-voice-toggle {
	position: relative;
	width: var(--tn360-voice-size, 56px);
	height: var(--tn360-voice-size, 56px);
	min-width: var(--tn360-voice-size, 56px);
	padding: 0;
	border: var(--tn360-voice-border-width, 1px) solid color-mix(in srgb, var(--tn360-voice-border, #fff) var(--tn360-voice-border-opacity, 75%), transparent);
	border-radius: 50%;
	display: grid;
	place-items: center;
	box-sizing: border-box;
	background: color-mix(in srgb, var(--tn360-voice-background, #1f6f8b) var(--tn360-voice-background-opacity, 92%), transparent);
	box-shadow: 0 5px 18px rgba(0, 0, 0, .38);
	cursor: pointer;
	overflow: visible;
}

.tn360-voice-toggle img {
	position: absolute;
	display: block;
	width: var(--tn360-voice-image-size, 34px);
	height: var(--tn360-voice-image-size, 34px);
	object-fit: contain;
	opacity: var(--tn360-voice-image-opacity, 1);
	pointer-events: none;
}

.tn360-voice-fallback-icon {
	width: var(--tn360-voice-image-size, 34px);
	height: var(--tn360-voice-image-size, 34px);
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.tn360-action-bar .tn360-fixed-action:empty,
.tn360-action-bar .tn360-action-button:empty { display: none !important; }

/* Explorar 0.68.5: interfaz visual propia, sin modificar el visor ni sus controles. */
.tn360-menu.tn360-menu-modern {
	top: 14px;
	bottom: 14px;
	left: 14px;
	width: min(510px, calc(100vw - 28px));
	padding: max(25px, env(safe-area-inset-top)) 22px max(24px, env(safe-area-inset-bottom));
	border: 1px solid color-mix(in srgb, var(--tn360-menu-text, #fff) 20%, transparent);
	border-radius: 28px;
	background:
		radial-gradient(circle at 8% 0%, color-mix(in srgb, var(--tn360-menu-accent, #1f6f8b) 34%, transparent) 0, transparent 38%),
		linear-gradient(155deg, color-mix(in srgb, var(--tn360-menu-bg) 96%, #172330) 0%, color-mix(in srgb, var(--tn360-menu-bg) 91%, #02060a) 100%);
	box-shadow: 0 28px 90px rgba(0, 0, 0, .58);
	transform: translateX(calc(-100% - 38px));
	overscroll-behavior: contain;
}

.tn360-menu.tn360-menu-modern.is-open { transform: translateX(0); }

.tn360-menu-modern .tn360-menu-head {
	margin-bottom: 20px;
	padding: 2px 2px 18px;
	border-bottom: 1px solid color-mix(in srgb, var(--tn360-menu-text, #fff) 17%, transparent);
}

.tn360-menu-head-copy { display: grid; gap: 3px; }
.tn360-menu-head-copy small {
	color: color-mix(in srgb, var(--tn360-menu-accent, #1f6f8b) 72%, var(--tn360-menu-text, #fff));
	font: 700 10px/1.1 "TN360 Metropolis", "Metropolis", sans-serif;
	letter-spacing: .18em;
	text-transform: uppercase;
}
.tn360-menu-head-copy strong { font-size: 34px; font-weight: 700; letter-spacing: -.055em; line-height: 1; }
.tn360-menu-modern .tn360-menu-head > button {
	width: 48px;
	height: 48px;
	border: 1px solid color-mix(in srgb, var(--tn360-menu-text, #fff) 24%, transparent);
	background: color-mix(in srgb, var(--tn360-menu-place, #28313b) 82%, transparent);
	box-shadow: 0 8px 22px rgba(0, 0, 0, .25);
}

.tn360-menu-modern .tn360-menu-content {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 13px;
}

.tn360-menu-modern .tn360-menu-search,
.tn360-menu-modern .tn360-menu-back,
.tn360-menu-modern .tn360-menu-category-title,
.tn360-menu-modern .tn360-place-grid,
.tn360-menu-modern .tn360-search-results-inline,
.tn360-menu-modern .tn360-menu-empty,
.tn360-menu-modern .tn360-menu-map-button { grid-column: 1 / -1; }

.tn360-menu-modern .tn360-menu-search {
	height: 60px;
	padding: 7px;
	border: 1px solid color-mix(in srgb, var(--tn360-menu-accent, #1f6f8b) 60%, var(--tn360-menu-text, #fff));
	border-radius: 20px;
	background: color-mix(in srgb, var(--tn360-menu-place, #28313b) 88%, transparent);
	box-shadow: 0 14px 34px rgba(0, 0, 0, .27), inset 0 1px 0 rgba(255, 255, 255, .08);
}
.tn360-menu-modern .tn360-menu-search input { height: 44px; font-size: 15px; }
.tn360-menu-modern .tn360-menu-search button { width: 44px; height: 44px; border-radius: 14px; }

.tn360-menu-modern .tn360-category,
.tn360-menu-modern .tn360-menu-map-button {
	position: relative;
	min-height: 142px;
	margin: 0;
	padding: 17px 16px 16px;
	border: 1px solid color-mix(in srgb, var(--category-color, var(--tn360-menu-accent, #1f6f8b)) 62%, var(--tn360-menu-text, #fff));
	border-left-width: 1px;
	border-radius: 22px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-end;
	gap: 11px;
	background:
		linear-gradient(145deg, color-mix(in srgb, var(--category-color, var(--tn360-menu-accent, #1f6f8b)) 46%, var(--tn360-menu-category, #28313b)) 0%, color-mix(in srgb, var(--tn360-menu-category, #28313b) 96%, #000) 82%);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .14), 0 14px 32px rgba(0, 0, 0, .25);
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.tn360-menu-modern .tn360-category::after,
.tn360-menu-modern .tn360-menu-map-button::after {
	content: "→";
	position: absolute;
	right: 15px;
	bottom: 14px;
	font-size: 20px;
	line-height: 1;
	opacity: .72;
}
.tn360-menu-modern .tn360-category:hover,
.tn360-menu-modern .tn360-category:focus-visible,
.tn360-menu-modern .tn360-menu-map-button:hover,
.tn360-menu-modern .tn360-menu-map-button:focus-visible {
	transform: translateY(-3px);
	border-color: color-mix(in srgb, var(--category-color, var(--tn360-menu-accent, #1f6f8b)) 78%, #fff);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .18), 0 20px 38px rgba(0, 0, 0, .36);
}
.tn360-menu-modern .tn360-category img,
.tn360-menu-modern .tn360-area-category-icon,
.tn360-menu-modern .tn360-availability-menu-icon,
.tn360-menu-modern .tn360-menu-map-button svg {
	order: -1;
	width: 48px;
	height: 48px;
	padding: 9px;
	border-radius: 15px;
	display: grid;
	place-items: center;
	object-fit: contain;
	background: color-mix(in srgb, var(--category-color, var(--tn360-menu-accent, #1f6f8b)) 80%, #111);
	color: #fff;
	font-size: 25px;
	line-height: 1;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .22), 0 7px 18px rgba(0, 0, 0, .25);
}
.tn360-menu-modern .tn360-category > span:last-child,
.tn360-menu-modern .tn360-menu-map-button > span:last-child {
	width: calc(100% - 29px);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.22;
}
.tn360-menu-modern .tn360-category-number {
	position: absolute;
	top: 14px;
	right: 14px;
	order: initial;
	width: 31px;
	height: 31px;
	border-width: 1px;
	background: rgba(0, 0, 0, .32);
	font-size: 12px;
}
.tn360-menu-modern .tn360-menu-map-button { --category-color: var(--tn360-menu-accent, #1f6f8b); }
.tn360-menu-modern .tn360-menu-map-button svg { stroke: currentColor; }

.tn360-menu-modern .tn360-menu-back { margin-top: 2px; padding: 7px 12px 7px 7px; }
.tn360-menu-modern .tn360-menu-category-title {
	margin: 5px 0 1px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	font-size: 25px;
	font-weight: 700;
	letter-spacing: -.035em;
}
.tn360-menu-modern .tn360-menu-category-title::after {
	content: "";
	width: 52px;
	height: 4px;
	margin-top: 8px;
	border-radius: 999px;
	display: block;
	background: var(--category-color, var(--tn360-menu-accent, #1f6f8b));
}

.tn360-menu-modern .tn360-place-grid { gap: 13px; }
.tn360-menu-modern .tn360-place-card {
	position: relative;
	min-height: 174px;
	border: 1px solid color-mix(in srgb, var(--tn360-menu-text, #fff) 17%, transparent);
	border-radius: 21px;
	background: linear-gradient(145deg, color-mix(in srgb, var(--tn360-menu-place, #28313b) 92%, #fff), var(--tn360-menu-place, #28313b));
	box-shadow: 0 14px 30px rgba(0, 0, 0, .28);
	isolation: isolate;
}
.tn360-menu-modern .tn360-place-card.has-image::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(180deg, transparent 30%, rgba(0, 0, 0, .86) 100%);
	pointer-events: none;
}
.tn360-menu-modern .tn360-place-card img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	aspect-ratio: auto;
	object-fit: cover;
	transition: transform .28s ease;
}
.tn360-menu-modern .tn360-place-card:hover img { transform: scale(1.045); }
.tn360-menu-modern .tn360-place-card span {
	position: relative;
	z-index: 2;
	margin-top: auto;
	padding: 15px;
	font-size: 14px;
	font-weight: 300;
	line-height: 1.25;
}
.tn360-menu-modern .tn360-place-card.has-image span { color: #fff; text-shadow: 0 2px 8px rgba(0, 0, 0, .75); }

@media (max-width: 600px) {
	.tn360-menu.tn360-menu-modern {
		top: 0;
		bottom: 0;
		left: 0;
		width: 100vw;
		padding: max(22px, env(safe-area-inset-top)) 16px max(22px, env(safe-area-inset-bottom));
		border: 0;
		border-radius: 0;
		transform: translateX(-104%);
	}
	.tn360-menu.tn360-menu-modern.is-open { transform: translateX(0); }
	.tn360-menu-head-copy strong { font-size: 31px; }
	.tn360-menu-modern .tn360-menu-content { gap: 10px; }
	.tn360-menu-modern .tn360-category,
	.tn360-menu-modern .tn360-menu-map-button { min-height: 128px; padding: 14px 13px; border-radius: 19px; }
	.tn360-menu-modern .tn360-category img,
	.tn360-menu-modern .tn360-area-category-icon,
	.tn360-menu-modern .tn360-availability-menu-icon,
	.tn360-menu-modern .tn360-menu-map-button svg { width: 43px; height: 43px; padding: 8px; border-radius: 13px; }
	.tn360-menu-modern .tn360-category > span:last-child,
	.tn360-menu-modern .tn360-menu-map-button > span:last-child { font-size: 12px; }
	.tn360-menu-modern .tn360-place-grid { gap: 10px; }
	.tn360-menu-modern .tn360-place-card { min-height: 154px; border-radius: 18px; }
	.tn360-menu-modern .tn360-place-card span { padding: 12px; font-size: 12px; }
}

.tn360-voice-toggle::before {
	content: "";
	position: absolute;
	inset: -5px;
	border: 3px solid transparent;
	border-radius: inherit;
	pointer-events: none;
}

.tn360-voice-toggle.is-listening::before {
	border-color: color-mix(in srgb, var(--tn360-voice-pulse, #66d9ff) var(--tn360-voice-pulse-opacity, 75%), transparent);
	animation: tn360-voice-pulse var(--tn360-voice-pulse-speed, 1.4s) ease-out infinite;
}

.tn360-voice-toggle.is-active:not(.is-listening)::before {
	border-color: color-mix(in srgb, var(--tn360-voice-pulse, #66d9ff) 55%, transparent);
}

.tn360-voice-toggle.is-active {
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--tn360-voice-pulse, #66d9ff) 24%, transparent), 0 7px 22px rgba(0, 0, 0, .44);
}

.tn360-voice-toggle.is-listening {
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--tn360-voice-pulse, #66d9ff) 34%, transparent), 0 7px 22px rgba(0, 0, 0, .48);
}

.tn360-voice-toggle.is-processing::before {
	inset: -5px;
	border-color: transparent var(--tn360-voice-pulse, #66d9ff) transparent var(--tn360-voice-pulse, #66d9ff);
	animation: tn360-voice-processing .85s linear infinite;
}

.tn360-voice-toggle.is-responding {
	box-shadow: 0 0 0 4px color-mix(in srgb, #ffd166 34%, transparent), 0 7px 22px rgba(0, 0, 0, .48);
}

.tn360-voice-toggle.is-responding::before {
	border-color: color-mix(in srgb, #ffd166 78%, transparent);
	animation: tn360-voice-pulse 1s ease-out infinite;
}

.tn360-voice-toggle.is-error {
	box-shadow: 0 0 0 4px rgba(218, 55, 67, .32), 0 7px 22px rgba(0, 0, 0, .48);
}

.tn360-voice-toggle.is-error::before {
	border-color: #da3743;
}

.tn360-voice-toggle.is-paused {
	filter: saturate(.45);
}

@keyframes tn360-voice-processing {
	to { transform: rotate(360deg); }
}

.tn360-voice-listening-label {
	--tn360-listening-position: translate(-50%, -50%);
	--tn360-listening-size: clamp(126px, 17vw, 162px);
	--tn360-listening-padding: 18px;
	--tn360-listening-font: clamp(15px, 1.8vw, 19px);
	--tn360-listening-wave-one: -14px;
	--tn360-listening-wave-two: -27px;
	position: absolute;
	top: 50%;
	left: 50%;
	bottom: auto;
	z-index: 100020;
	width: var(--tn360-listening-size);
	height: var(--tn360-listening-size);
	margin: 0;
	padding: var(--tn360-listening-padding);
	border: 1px solid color-mix(in srgb, var(--tn360-category-color, var(--tn360-brand, #1f6f8b)) 88%, #fff);
	border-radius: 48% 52% 54% 46% / 51% 47% 53% 49%;
	background: color-mix(in srgb, var(--tn360-category-color, var(--tn360-brand, #1f6f8b)) 62%, transparent);
	color: #fff;
	font: 700 var(--tn360-listening-font)/1.12 "TN360 Metropolis", "Metropolis", ui-sans-serif, system-ui, sans-serif;
	letter-spacing: .005em;
	text-align: center;
	transform: var(--tn360-listening-position);
	box-shadow: 0 9px 25px rgba(0, 0, 0, .40), inset 0 1px 10px rgba(255, 255, 255, .2);
	backdrop-filter: blur(12px) saturate(135%);
	-webkit-backdrop-filter: blur(12px) saturate(135%);
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
	isolation: isolate;
	overflow: visible;
	animation: tn360-listening-orb 1.35s ease-in-out infinite;
}

.tn360-voice-listening-label.is-initial {
	--tn360-listening-position: translate(-50%, -50%);
	top: 50%;
	left: 50%;
	bottom: auto;
}

.tn360-voice-listening-label.is-compact {
	--tn360-listening-position: translateX(-50%);
	--tn360-listening-size: clamp(72px, 9vw, 84px);
	--tn360-listening-padding: 10px;
	--tn360-listening-font: clamp(10px, 1.2vw, 13px);
	--tn360-listening-wave-one: -8px;
	--tn360-listening-wave-two: -15px;
	top: auto;
	left: var(--tn360-voice-indicator-left, 50%);
	bottom: var(--tn360-voice-indicator-bottom, max(122px, calc(env(safe-area-inset-bottom) + 112px)));
}

.tn360-voice-listening-label::before,
.tn360-voice-listening-label::after {
	content: "";
	position: absolute;
	z-index: -1;
	border-radius: 50%;
	pointer-events: none;
}

.tn360-voice-listening-label::before {
	inset: var(--tn360-listening-wave-one);
	border: 2px solid color-mix(in srgb, var(--tn360-category-color, var(--tn360-brand, #1f6f8b)) 62%, transparent);
	animation: tn360-listening-wave 1.35s ease-out infinite;
}

.tn360-voice-listening-label::after {
	inset: var(--tn360-listening-wave-two);
	border: 1px solid color-mix(in srgb, var(--tn360-category-color, var(--tn360-brand, #1f6f8b)) 38%, transparent);
	animation: tn360-listening-wave 1.35s .28s ease-out infinite;
}

.tn360-voice-listening-label:focus-visible {
	outline: 3px solid #fff;
	outline-offset: 7px;
}

@keyframes tn360-listening-orb {
	0%, 100% { border-radius: 48% 52% 54% 46% / 51% 47% 53% 49%; transform: var(--tn360-listening-position) scale(.96); }
	35% { border-radius: 54% 46% 47% 53% / 45% 55% 48% 52%; transform: var(--tn360-listening-position) scale(1.045); }
	68% { border-radius: 46% 54% 51% 49% / 55% 46% 54% 45%; transform: var(--tn360-listening-position) scale(.99); }
}

@keyframes tn360-listening-wave {
	0% { opacity: .65; transform: scale(.78); }
	72%, 100% { opacity: 0; transform: scale(1.12); }
}

.tn360-voice-listening-label[hidden] {
	display: none;
}

.tn360-experience.is-menu-open .tn360-voice-listening-label,
.tn360-experience.is-menu-open .tn360-games-launcher,
.tn360-experience.is-game-window-open .tn360-voice-listening-label {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

.tn360-category-number {
	display: inline-grid;
	place-items: center;
	width: 30px;
	height: 30px;
	flex: 0 0 30px;
	border: 2px solid color-mix(in srgb, var(--category-color, #0080f5) 72%, #fff);
	border-radius: 50%;
	background: rgba(0,0,0,.32);
	color: #fff;
	font-size: 14px;
	font-weight: 900;
	line-height: 1;
	box-shadow: 0 4px 12px rgba(0,0,0,.22);
}

.tn360-voice-help {
	position: fixed;
	inset: 0;
	z-index: 100030;
	padding: 18px;
	display: grid;
	place-items: center;
	background: rgba(4, 9, 14, .48);
	backdrop-filter: blur(5px);
}

.tn360-voice-help[hidden] { display: none; }

.tn360-voice-help-shell {
	position: relative;
	width: min(760px, 100%);
	max-height: min(760px, calc(100vh - 36px));
	overflow: auto;
	padding: 24px;
	border: 1px solid rgba(255, 255, 255, .24);
	border-radius: 18px;
	background: rgba(12, 20, 29, .96);
	color: #fff;
	box-shadow: 0 22px 70px rgba(0, 0, 0, .58);
}

.tn360-voice-help-shell > small { color: #75ddff; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.tn360-voice-help-shell h2 { margin: 5px 118px 8px 0; color: #fff; font-size: clamp(24px, 4vw, 36px); }
.tn360-voice-help-shell h3 { margin: 0 0 8px; color: #fff; font-size: 15px; }
.tn360-voice-help-close { position: fixed; top: max(14px, env(safe-area-inset-top)); right: max(14px, env(safe-area-inset-right)); z-index: 100032; width: auto; min-width: 108px; height: 46px; margin: 0; padding: 0 15px 0 10px; border: 2px solid rgba(12, 20, 29, .42); border-radius: 999px; display: inline-flex !important; visibility: visible !important; opacity: 1 !important; align-items: center; justify-content: center; gap: 7px; background: #fff; color: #0c141d; box-shadow: 0 6px 22px rgba(0, 0, 0, .48); cursor: pointer; }
.tn360-voice-help-close span { font-size: 25px; line-height: 1; }
.tn360-voice-help-close strong { font-size: 13px; }
.tn360-voice-help-reason { margin: 0 0 14px; color: #e8edf2; }
.tn360-voice-help-context { margin: 0 0 15px; padding: 10px 12px; border-left: 4px solid #66d9ff; border-radius: 7px; background: rgba(102, 217, 255, .10); }
.tn360-voice-help-context:empty { display: none; }
.tn360-voice-help-groups { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.tn360-voice-help-examples { display: grid; gap: 7px; }
.tn360-voice-help-examples button,
.tn360-voice-help-destinations button { padding: 8px 10px; border: 1px solid rgba(255, 255, 255, .20); border-radius: 8px; background: rgba(255, 255, 255, .08); color: #fff; text-align: left; cursor: pointer; }
.tn360-voice-help-examples button:hover,
.tn360-voice-help-examples button:focus-visible,
.tn360-voice-help-destinations button:hover,
.tn360-voice-help-destinations button:focus-visible { border-color: #66d9ff; background: rgba(102, 217, 255, .17); outline: none; }
.tn360-voice-help-destinations { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 17px; }
.tn360-voice-help-note { margin: 17px 0 0; color: rgba(255, 255, 255, .72); font-size: 13px; }

@media (max-width: 680px) {
	.tn360-voice-help { padding: 10px; align-items: end; }
	.tn360-voice-help-shell { max-height: calc(100vh - 20px); padding: max(66px, calc(env(safe-area-inset-top) + 56px)) 16px max(20px, env(safe-area-inset-bottom)); border-radius: 16px; }
	.tn360-voice-help-shell h2 { margin-right: 0; clear: both; }
	.tn360-voice-help-close { top: max(10px, env(safe-area-inset-top)); right: max(10px, env(safe-area-inset-right)); min-width: 104px; height: 44px; }
	.tn360-voice-help-groups { grid-template-columns: 1fr; }
}

.tn360-share-confirmation { display: grid; gap: 16px; text-align: center; }
.tn360-share-confirmation p { margin: 0; }
.tn360-share-confirmation-button { min-height: 48px; padding: 11px 18px; border: 0; border-radius: 12px; background: var(--tn360-brand, #1f6f8b); color: #fff; font: inherit; font-weight: 700; cursor: pointer; }

@keyframes tn360-voice-pulse {
	0% { opacity: 1; transform: scale(.88); }
	100% { opacity: 0; transform: scale(1.35); }
}

.tn360-camera-spark {
	stroke-width: 2.8;
}

@keyframes tn360-camera-attention {
	0%, 72%, 100% { transform: scale(1); }
	80% { transform: scale(1.08); }
	88% { transform: scale(.98); }
}

@keyframes tn360-camera-ring {
	0%, 68% { opacity: 0; transform: scale(.82); }
	76% { opacity: .8; }
	100% { opacity: 0; transform: scale(1.22); }
}

.tn360-action-button:disabled {
	opacity: .55;
	cursor: wait;
}

.tn360-whatsapp {
	background: color-mix(in srgb, var(--tn360-control-color, #25d366) var(--tn360-control-opacity, 90%), transparent);
}

.tn360-whatsapp svg {
	display: block;
	width: 24px;
	height: 24px;
	margin: auto;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.tn360-directions {
	position: relative;
	background: color-mix(in srgb, var(--tn360-control-color, var(--tn360-brand)) var(--tn360-control-opacity, 90%), transparent);
}

.tn360-directions svg {
	width: 32px;
	height: 32px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
}

.tn360-action-bar-bottom-center .tn360-fixed-action,
.tn360-action-bar-bottom-center .tn360-directions,
.tn360-action-bar-bottom-center .tn360-whatsapp,
.tn360-action-bar-bottom-center .tn360-description-toggle {
	background: color-mix(in srgb, var(--tn360-control-color, var(--tn360-brand)) var(--tn360-control-opacity, 90%), transparent);
}

.tn360-action-bar-bottom-center .tn360-fixed-action,
.tn360-action-bar-bottom-center .tn360-action-button:not(.tn360-agenda-toggle):not(.tn360-camera-toggle) {
	width: 100%;
	max-width: 49px;
	height: 40px;
	min-width: 0;
	border: 1px solid rgba(255, 255, 255, .72);
	border-radius: 13px;
	box-sizing: border-box;
}

.tn360-action-bar-bottom-center .tn360-action-button:not(.tn360-agenda-toggle):not(.tn360-camera-toggle) svg,
.tn360-action-bar-bottom-center .tn360-fixed-action svg {
	width: 22px;
	height: 22px;
}

.tn360-stage .psv-navbar {
	display: none !important;
}

.tn360-agenda-toggle {
	--tn360-icon-size: var(--tn360-control-agenda-size, 46px);
	--tn360-control-color: var(--tn360-category-color, var(--tn360-control-agenda-color, #d97706));
	--tn360-control-opacity: var(--tn360-control-agenda-opacity, 90%);
	position: absolute;
	z-index: 24;
	left: var(--tn360-agenda-left, 50%);
	right: auto;
	bottom: max(var(--tn360-agenda-bottom, 72px), calc(env(safe-area-inset-bottom) + 68px));
	width: var(--tn360-agenda-width, max-content);
	max-width: calc(100vw - 32px);
	height: clamp(44px, calc(var(--tn360-icon-size, 46px) + 14px), 86px);
	padding: 6px 18px;
	border: 1px solid rgba(255, 255, 255, .72);
	border-radius: 13px;
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: center;
	gap: 12px;
	box-sizing: border-box;
	background: color-mix(in srgb, var(--tn360-control-color, #d97706) var(--tn360-control-opacity, 90%), transparent);
	color: #fff;
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	box-shadow: 0 5px 16px rgba(0, 0, 0, .38);
	transform: var(--tn360-agenda-transform, translateX(-50%));
	overflow: visible;
	transition: box-shadow 140ms ease;
}

.tn360-agenda-toggle:hover,
.tn360-agenda-toggle:focus-visible {
	box-shadow: 0 7px 22px rgba(0, 0, 0, .5);
}

.tn360-agenda-icon {
	flex: 0 0 auto;
	display: grid;
	place-items: center;
	width: var(--tn360-icon-size, 46px);
	height: var(--tn360-icon-size, 46px);
}

.tn360-agenda-icon svg {
	width: var(--tn360-icon-size, 46px);
	height: var(--tn360-icon-size, 46px);
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.tn360-agenda-icon .tn360-custom-control-icon {
	width: var(--tn360-icon-size, 46px);
	height: var(--tn360-icon-size, 46px);
}

.tn360-agenda-label {
	min-height: 0;
	min-width: 0;
	flex: 0 1 auto;
	font-family: "TN360 Metropolis", "Metropolis", "Metropolis Regular", "Solomon Sans", ui-sans-serif, system-ui, sans-serif;
	font-size: clamp(12px, 1.5vw, 16px);
	font-weight: 400;
	letter-spacing: .045em;
	line-height: 1;
	text-shadow: 0 1px 3px rgba(0, 0, 0, .55);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.tn360-experience.tn360-has-agenda .tn360-scene-nav {
	bottom: var(--tn360-scene-nav-bottom, max(170px, calc(env(safe-area-inset-bottom) + 166px)));
}

.tn360-agenda-badge {
	position: absolute;
	top: -6px;
	right: -6px;
	min-width: 20px;
	height: 20px;
	padding: 0 5px;
	border: 2px solid #fff;
	border-radius: 999px;
	display: grid;
	place-items: center;
	background: #c62828;
	color: #fff;
	font-size: 10px;
	line-height: 1;
}

.tn360-agenda-dialog {
	width: min(920px, calc(100vw - 30px));
	max-height: min(90vh, 900px);
	padding: 0;
	border: 1px solid rgba(255, 255, 255, .2);
	border-radius: 20px;
	background: var(--tn360-agenda-panel, #10151d);
	color: var(--tn360-agenda-text, #fff);
	box-shadow: 0 28px 100px rgba(0, 0, 0, .72);
	overflow: hidden;
}

.tn360-agenda-dialog::backdrop {
	background: rgba(0, 0, 0, .7);
	backdrop-filter: blur(8px);
}

.tn360-agenda-dialog.is-open {
	position: fixed;
	inset: 50% auto auto 50%;
	z-index: 95;
	display: block;
	transform: translate(-50%, -50%);
}

.tn360-agenda-shell {
	display: grid;
	grid-template-rows: auto auto minmax(0, 1fr);
	max-height: min(90vh, 900px);
}

.tn360-agenda-head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 18px;
	padding: 22px 24px 16px;
	background: var(--tn360-agenda-header, #18212d);
	background: linear-gradient(135deg, color-mix(in srgb, var(--tn360-agenda-accent, #f59e0b) 20%, var(--tn360-agenda-header, #18212d)), var(--tn360-agenda-header, #18212d) 66%);
}

.tn360-agenda-head span {
	display: block;
	margin-bottom: 3px;
	color: var(--tn360-agenda-muted, #c7d0da);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.tn360-agenda-head h2 {
	margin: 0;
	font-size: clamp(23px, 3vw, 34px);
	line-height: 1.1;
	font-weight: 900;
}

.tn360-agenda-head button {
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid color-mix(in srgb, var(--tn360-agenda-text, #fff) 28%, transparent);
	border-radius: 50%;
	background: var(--tn360-agenda-control, #273545);
	color: var(--tn360-agenda-text, #fff);
	font-size: 29px;
	line-height: 1;
	cursor: pointer;
}

.tn360-agenda-tabs {
	display: flex;
	gap: 8px;
	padding: 13px 24px;
	overflow-x: auto;
	border-bottom: 1px solid color-mix(in srgb, var(--tn360-agenda-text, #fff) 14%, transparent);
	background: color-mix(in srgb, var(--tn360-agenda-control, #273545) 42%, var(--tn360-agenda-panel, #10151d));
}

.tn360-agenda-tabs button,
.tn360-agenda-back {
	border: 1px solid color-mix(in srgb, var(--tn360-agenda-text, #fff) 20%, transparent);
	border-radius: 999px;
	padding: 9px 14px;
	background: var(--tn360-agenda-control, #273545);
	color: var(--tn360-agenda-text, #fff);
	font: inherit;
	font-size: 13px;
	white-space: nowrap;
	cursor: pointer;
}

.tn360-agenda-tabs button.is-active {
	border-color: var(--tn360-agenda-accent, #f59e0b);
	background: var(--tn360-agenda-accent, #f59e0b);
}

.tn360-agenda-content {
	min-height: min(420px, 58vh);
	padding: 20px 24px 26px;
	overflow-y: auto;
}

.tn360-agenda-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.tn360-agenda-card {
	min-height: 126px;
	padding: 0;
	border: 1px solid color-mix(in srgb, var(--tn360-agenda-text, #fff) 16%, transparent);
	border-left: 5px solid var(--tn360-event-color, #d97706);
	border-radius: 13px;
	display: grid;
	grid-template-columns: 46px minmax(0, 1fr) auto;
	align-items: stretch;
	overflow: hidden;
	background: var(--tn360-agenda-card, #1b2532);
	color: var(--tn360-agenda-text, #fff);
	font: inherit;
	text-align: left;
	cursor: pointer;
	transition: border-color 140ms ease, background 140ms ease, transform 140ms ease;
}

.tn360-agenda-card.has-image {
	grid-template-columns: 46px 116px minmax(0, 1fr) auto;
}

.tn360-agenda-card-number {
	align-self: center;
	justify-self: center;
	display: grid;
	place-items: center;
	width: 31px;
	height: 31px;
	border: 2px solid color-mix(in srgb, var(--tn360-event-color, #d97706) 78%, #fff);
	border-radius: 50%;
	background: color-mix(in srgb, var(--tn360-event-color, #d97706) 72%, #111827);
	color: #fff;
	font-size: 15px;
	font-weight: 850;
	box-shadow: 0 4px 12px rgba(0,0,0,.28);
}

.tn360-agenda-card:hover,
.tn360-agenda-card:focus-visible {
	border-color: color-mix(in srgb, var(--tn360-event-color) 70%, var(--tn360-agenda-text, #fff));
	background: color-mix(in srgb, var(--tn360-agenda-card, #1b2532) 84%, var(--tn360-agenda-text, #fff));
	transform: translateY(-2px);
}

.tn360-agenda-card > img {
	width: 116px;
	height: 100%;
	min-height: 126px;
	object-fit: cover;
}

.tn360-agenda-card-body {
	min-width: 0;
	padding: 15px 12px 14px 15px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 7px;
}

.tn360-agenda-card-body small {
	width: max-content;
	padding: 3px 7px;
	border-radius: 999px;
	background: var(--tn360-event-color, #d97706);
	font-size: 10px;
	font-weight: 900;
	letter-spacing: .05em;
	text-transform: uppercase;
}

.tn360-agenda-card-body strong {
	font-size: 17px;
	font-weight: 700;
	line-height: 1.2;
}

.tn360-agenda-card-date,
.tn360-agenda-card-location {
	color: var(--tn360-agenda-muted, #c7d0da);
	font-size: 12px;
	font-weight: 300;
	line-height: 1.35;
}

.tn360-agenda-card-arrow {
	align-self: center;
	padding-right: 13px;
	color: var(--tn360-agenda-muted, #c7d0da);
	font-size: 30px;
}

.tn360-agenda-empty {
	min-height: 260px;
	display: grid;
	place-content: center;
	gap: 7px;
	text-align: center;
	color: var(--tn360-agenda-muted, #c7d0da);
	font-weight: 300;
}

.tn360-agenda-empty strong {
	color: var(--tn360-agenda-text, #fff);
	font-size: 18px;
}

.tn360-agenda-detail {
	display: grid;
	gap: 15px;
}

.tn360-agenda-back {
	justify-self: start;
}

.tn360-agenda-detail-image {
	width: 100%;
	height: auto;
	max-height: none;
	border-radius: 13px;
	object-fit: contain;
	background: color-mix(in srgb, var(--tn360-agenda-card, #1b2532) 80%, #000);
}

.tn360-agenda-detail h3 {
	margin: 0;
	padding-left: 13px;
	border-left: 5px solid var(--tn360-event-color, #d97706);
	font-size: clamp(24px, 3.5vw, 38px);
	font-weight: 900;
	line-height: 1.1;
}

.tn360-agenda-detail-meta {
	margin: 0;
	color: var(--tn360-agenda-muted, #c7d0da);
	font-weight: 300;
}

.tn360-agenda-categories,
.tn360-agenda-resources,
.tn360-agenda-detail-actions {
	display: flex;
	gap: 9px;
	flex-wrap: wrap;
}

.tn360-agenda-categories span {
	padding: 5px 9px;
	border-radius: 999px;
	background: var(--tn360-agenda-control, #273545);
	font-size: 11px;
}

.tn360-agenda-description {
	font-size: 16px;
	font-weight: 400;
	line-height: 1.6;
}

.tn360-agenda-description > :first-child {
	margin-top: 0;
}

.tn360-agenda-description > :last-child {
	margin-bottom: 0;
}

.tn360-agenda-resources button,
.tn360-agenda-resources a,
.tn360-agenda-detail-actions button {
	min-height: 43px;
	padding: 9px 13px;
	border: 1px solid color-mix(in srgb, var(--tn360-agenda-text, #fff) 22%, transparent);
	border-radius: 10px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--tn360-agenda-control, #273545);
	color: var(--tn360-agenda-text, #fff);
	font: inherit;
	font-size: 13px;
	text-decoration: none;
	cursor: pointer;
}

.tn360-agenda-resources button > span,
.tn360-agenda-resources a > span {
	min-width: 24px;
	font-size: 11px;
	font-weight: 900;
	text-align: center;
}

.tn360-agenda-detail-actions {
	padding-top: 4px;
}

.tn360-agenda-detail-actions .tn360-agenda-share-all {
	border-color: var(--tn360-agenda-accent, #f59e0b);
	background: var(--tn360-agenda-accent, #f59e0b);
	color: #17110a;
	font-weight: 700;
}

.tn360-agenda-detail-actions .tn360-agenda-share {
	border-color: var(--tn360-agenda-whatsapp, #25d366);
	background: var(--tn360-agenda-whatsapp, #25d366);
	color: #071d0f;
	font-weight: 700;
}

.tn360-agenda-media {
	display: grid;
	gap: 16px;
}

.tn360-agenda-flyer,
.tn360-agenda-inline-gallery,
.tn360-agenda-inline-video {
	margin: 0;
	padding: 12px;
	border: 1px solid color-mix(in srgb, var(--tn360-agenda-text, #fff) 15%, transparent);
	border-radius: 13px;
	background: var(--tn360-agenda-card, #1b2532);
}

.tn360-agenda-flyer button,
.tn360-agenda-inline-gallery button {
	width: 100%;
	padding: 0;
	border: 0;
	border-radius: 9px;
	display: block;
	overflow: hidden;
	background: transparent;
	cursor: zoom-in;
}

.tn360-agenda-flyer img {
	width: 100%;
	height: auto;
	max-height: none;
	display: block;
	object-fit: contain;
}

.tn360-agenda-flyer figcaption,
.tn360-agenda-inline-gallery h4,
.tn360-agenda-inline-video h4 {
	margin: 10px 2px 0;
	color: var(--tn360-agenda-text, #fff);
	font-size: 15px;
	font-weight: 700;
}

.tn360-agenda-inline-gallery h4,
.tn360-agenda-inline-video h4 {
	margin-top: 0;
	margin-bottom: 10px;
}

.tn360-agenda-inline-gallery > div {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
	gap: 8px;
}

.tn360-agenda-inline-gallery img {
	width: 100%;
	aspect-ratio: 4 / 3;
	display: block;
	object-fit: cover;
}

.tn360-agenda-inline-video video,
.tn360-agenda-inline-video iframe {
	width: 100%;
	max-height: min(72vh, 760px);
	aspect-ratio: var(--tn360-video-aspect, 16 / 9);
	border: 0;
	border-radius: 9px;
	display: block;
	margin-inline: auto;
	background: #000;
	object-fit: contain;
}

.tn360-agenda-inline-video video.is-portrait,
.tn360-agenda-inline-video iframe.is-portrait {
	width: min(100%, 430px);
	aspect-ratio: var(--tn360-video-aspect, 9 / 16);
}

.tn360-camera-overlay {
	position: absolute;
	z-index: 80;
	inset: 0;
	pointer-events: none;
	background: transparent;
}

.tn360-camera-overlay > p,
.tn360-camera-frame {
	pointer-events: none;
	touch-action: none;
}

.tn360-experience.is-camera-mode .tn360-stage,
.tn360-experience.is-camera-mode .psv-container,
.tn360-experience.is-camera-mode .psv-canvas-container {
	pointer-events: auto !important;
	touch-action: none;
}

.tn360-camera-overlay > p {
	position: absolute;
	z-index: 2;
	top: max(22px, calc(50% - min(29vh, 240px) - 54px));
	left: 50%;
	margin: 0;
	padding: 9px 16px;
	border-radius: 999px;
	background: rgba(0, 0, 0, .62);
	font-size: 14px;
	text-shadow: 0 1px 3px #000;
	transform: translateX(-50%);
	white-space: nowrap;
}

.tn360-camera-close {
	position: absolute;
	z-index: 2;
	top: max(20px, env(safe-area-inset-top));
	left: max(20px, env(safe-area-inset-left));
	width: 46px;
	height: 46px;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, .5);
	border-radius: 50%;
	background: rgba(0, 0, 0, .58);
	color: #fff;
	font-size: 29px;
	line-height: 1;
	cursor: pointer;
	pointer-events: auto;
}

.tn360-camera-frame {
	position: absolute;
	z-index: 1;
	top: 50%;
	left: 50%;
	width: min(68vw, 760px);
	height: min(58vh, 480px);
	border: 4px solid rgba(255, 255, 255, .9);
	border-radius: 18px;
	box-shadow: 0 0 0 100vmax rgba(0, 0, 0, .52), 0 0 0 1px rgba(0, 0, 0, .5), inset 0 0 0 1px rgba(0, 0, 0, .22);
	transform: translate(-50%, -50%);
	overflow: hidden;
}

.tn360-camera-overlay.is-challenge-mode .tn360-camera-frame {
	width: min(var(--tn360-challenge-frame-width, 68vw), 900px);
	height: min(var(--tn360-challenge-frame-height, 58vh), 720px);
	border-width: var(--tn360-challenge-frame-border, 4px);
	border-color: rgba(255, 255, 255, var(--tn360-challenge-frame-opacity, .9));
}

.tn360-camera-frame.tn360-camera-frame-no-grid::before,
.tn360-camera-frame.tn360-camera-frame-no-grid::after { display: none; }

.tn360-camera-frame::before,
.tn360-camera-frame::after {
	content: "";
	position: absolute;
	pointer-events: none;
}

.tn360-camera-frame::before {
	top: 33.333%;
	right: 0;
	bottom: 33.333%;
	left: 0;
	border-top: 1px solid rgba(255, 255, 255, .55);
	border-bottom: 1px solid rgba(255, 255, 255, .55);
}

.tn360-camera-frame::after {
	top: 0;
	right: 33.333%;
	bottom: 0;
	left: 33.333%;
	border-right: 1px solid rgba(255, 255, 255, .55);
	border-left: 1px solid rgba(255, 255, 255, .55);
}

.tn360-camera-shutter {
	position: absolute;
	z-index: 2;
	left: 50%;
	bottom: max(28px, calc(env(safe-area-inset-bottom) + 20px));
	width: 76px;
	height: 76px;
	padding: 5px;
	border: 3px solid #fff;
	border-radius: 50%;
	background: rgba(0, 0, 0, .2);
	transform: translateX(-50%);
	cursor: pointer;
	pointer-events: auto;
}

.tn360-camera-shutter span {
	width: 100%;
	height: 100%;
	border-radius: 50%;
	display: block;
	background: #fff;
	transition: transform 100ms ease;
}

.tn360-camera-shutter:active span {
	transform: scale(.88);
}

.tn360-camera-overlay.is-capturing::after {
	content: "";
	position: absolute;
	z-index: 5;
	inset: 0;
	background: #fff;
	pointer-events: none;
	animation: tn360-camera-flash 240ms ease-out forwards;
}

@keyframes tn360-camera-flash {
	from { opacity: .86; }
	to { opacity: 0; }
}

.tn360-experience.is-camera-mode .tn360-topbar,
.tn360-experience.is-camera-mode .tn360-place-logo,
.tn360-experience.is-camera-mode .tn360-unit-nav,
.tn360-experience.is-camera-mode .tn360-unit-offer,
.tn360-experience.is-camera-mode .tn360-scene-nav,
.tn360-experience.is-camera-mode .tn360-action-bars,
.tn360-experience.is-camera-mode .tn360-agenda-toggle,
.tn360-experience.is-camera-mode .tn360-vignette,
.tn360-experience.is-camera-mode .psv-markers {
	opacity: 0;
	pointer-events: none;
}

.tn360-photo-preview {
	position: absolute;
	z-index: 100;
	inset: 0;
	padding: max(18px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));
	display: grid;
	grid-template-rows: minmax(0, 1fr) auto;
	gap: 16px;
	background: rgba(5, 5, 5, .97);
}

.tn360-photo-preview > img {
	width: 100%;
	height: 100%;
	min-height: 0;
	display: block;
	object-fit: contain;
}

.tn360-photo-close {
	position: absolute;
	z-index: 2;
	top: max(18px, env(safe-area-inset-top));
	right: max(18px, env(safe-area-inset-right));
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, .46);
	border-radius: 50%;
	background: rgba(0, 0, 0, .66);
	color: #fff;
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
}

.tn360-photo-actions {
	display: flex;
	justify-content: center;
	gap: 10px;
	flex-wrap: wrap;
}

.tn360-photo-actions button {
	min-width: 110px;
	padding: 12px 18px;
	border: 1px solid rgba(255, 255, 255, .36);
	border-radius: 999px;
	background: rgba(255, 255, 255, .1);
	color: #fff;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

.tn360-photo-actions .tn360-photo-share {
	border-color: #25d366;
	background: #25d366;
	color: #071d0f;
}

.tn360-status {
	position: absolute;
	z-index: 120;
	left: 50%;
	top: 20px;
	max-width: min(560px, 88vw);
	padding: 10px 16px;
	border-radius: 999px;
	background: rgba(0, 0, 0, .78);
	opacity: 0;
	pointer-events: none;
	transform: translate(-50%, -15px);
	transition: 180ms ease;
}

.tn360-status-visible {
	opacity: 1;
	transform: translate(-50%, 0);
}

.tn360-status.tn360-status-centered {
	position: fixed;
	z-index: 100040;
	top: 50%;
	left: 50%;
	width: max-content;
	max-width: min(560px, calc(100vw - 34px));
	padding: 15px 20px;
	border: 1px solid rgba(255, 255, 255, .2);
	border-radius: 14px;
	background: rgba(0, 0, 0, .9);
	color: #fff;
	font-size: clamp(15px, 2vw, 19px);
	line-height: 1.4;
	text-align: center;
	transform: translate(-50%, -50%) scale(.96);
	box-shadow: 0 18px 58px rgba(0, 0, 0, .58);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}

.tn360-status.tn360-status-centered.tn360-status-visible {
	transform: translate(-50%, -50%) scale(1);
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

@media (max-width: 640px) {
	.tn360-topbar h1 {
		max-width: calc(100vw - 92px);
		white-space: normal;
		overflow: hidden;
	}

	.tn360-has-logo-top-right .tn360-topbar h1 {
		max-width: 30vw;
	}

	.tn360-place-logo {
		max-width: 36vw;
		max-height: 76px;
	}

	.tn360-logo-top-right {
		width: auto;
		height: 42px;
		max-width: none;
		max-height: 42px;
	}

	.tn360-scene-nav {
		left: 16px;
		bottom: var(--tn360-scene-nav-bottom, max(88px, calc(env(safe-area-inset-bottom) + 88px)));
		width: calc(100vw - 32px);
		max-width: calc(100vw - 32px);
		max-height: min(25vh, 180px);
		transform: none;
	}

	.tn360-action-bar {
		gap: 6px;
	}

	.tn360-action-bar-top-left,
	.tn360-action-bar-top-center,
	.tn360-action-bar-top-right {
		top: max(84px, calc(env(safe-area-inset-top) + 72px));
	}

	.tn360-action-bar-top-left,
	.tn360-action-bar-bottom-left,
	.tn360-action-bar-top-right,
	.tn360-action-bar-bottom-right {
		max-width: 36vw;
	}

	.tn360-action-bar-top-center,
	.tn360-action-bar-bottom-center {
		max-width: 52vw;
	}

	.tn360-action-bar-bottom-center {
		right: auto;
		left: 50%;
		width: min(var(--tn360-bottom-width, 68px), calc(100vw - 20px));
		max-width: calc(100vw - 20px);
		gap: 6px;
		transform: translateX(-50%);
	}

	.tn360-action-bar-left-center {
		left: max(12px, env(safe-area-inset-left));
	}

	.tn360-action-bar-right-center {
		right: max(12px, env(safe-area-inset-right));
	}

	.tn360-action-bar-bottom-left,
	.tn360-action-bar-bottom-center,
	.tn360-action-bar-bottom-right {
		bottom: max(14px, env(safe-area-inset-bottom));
	}

	.tn360-fixed-action {
		width: 46px;
		height: 38px;
		min-width: 46px;
	}

	.tn360-action-button {
		width: 49px;
		height: 40px;
	}

	.tn360-action-button.tn360-camera-toggle {
		width: clamp(44px, calc(var(--tn360-icon-size, 46px) + 12px), 84px);
		min-width: 44px;
		height: clamp(44px, calc(var(--tn360-icon-size, 46px) + 12px), 84px);
		padding: 0;
		place-items: center;
	}

	.tn360-action-button.tn360-agenda-toggle {
		left: var(--tn360-agenda-left, 50%);
		right: auto;
		bottom: max(var(--tn360-agenda-bottom, 68px), calc(env(safe-area-inset-bottom) + 64px));
		width: var(--tn360-agenda-width, max-content);
		max-width: calc(100vw - 20px);
		height: clamp(42px, calc(var(--tn360-icon-size, 46px) + 12px), 84px);
		padding: 5px 14px;
		gap: 10px;
		transform: var(--tn360-agenda-transform, translateX(-50%));
	}

	.tn360-experience.tn360-has-agenda .tn360-scene-nav {
		bottom: var(--tn360-scene-nav-bottom, max(166px, calc(env(safe-area-inset-bottom) + 162px)));
	}

	.tn360-camera-overlay > p {
		top: auto;
		bottom: calc(100% - var(--tn360-camera-mobile-frame-top) + 14px);
		max-width: calc(100vw - 32px);
		line-height: 1.3;
		white-space: normal;
		text-align: center;
	}

	.tn360-camera-overlay {
		--tn360-camera-mobile-frame-top: max(130px, calc(env(safe-area-inset-top) + 114px));
	}

	.tn360-camera-frame {
		top: var(--tn360-camera-mobile-frame-top);
		right: 14px;
		bottom: max(128px, calc(env(safe-area-inset-bottom) + 114px));
		left: 14px;
		width: auto;
		height: auto;
		box-shadow: 0 0 0 100vmax rgba(0, 0, 0, .66), 0 0 0 1px rgba(0, 0, 0, .58), inset 0 0 0 1px rgba(0, 0, 0, .25);
		transform: none;
	}

	.tn360-camera-overlay.is-challenge-mode .tn360-camera-frame {
		width: auto;
		height: auto;
	}

	.tn360-photo-actions button {
		min-width: 0;
		flex: 1 1 95px;
	}

	.tn360-agenda-dialog {
		width: calc(100vw - 16px);
		max-height: 94vh;
		border-radius: 16px;
	}

	.tn360-agenda-shell {
		max-height: 94vh;
	}

	.tn360-agenda-head {
		padding: 18px 16px 13px;
	}

	.tn360-agenda-tabs {
		padding: 11px 16px;
	}

	.tn360-agenda-content {
		padding: 15px 15px 20px;
	}

	.tn360-agenda-list {
		grid-template-columns: 1fr;
	}

	.tn360-search-result-grid {
		grid-template-columns: 1fr;
	}

	.tn360-agenda-card.has-image {
		grid-template-columns: 40px 92px minmax(0, 1fr) auto;
		min-height: 108px;
	}

	.tn360-agenda-card > img {
		width: 92px;
		min-height: 108px;
	}
}

/* Refinamiento visual 0.68.7 — paleta por categoría y controles unificados. */
.tn360-menu-modern .tn360-category,
.tn360-menu-modern .tn360-menu-map-button {
	background-color: color-mix(in srgb, var(--category-color, var(--tn360-ui-blue)) 44%, var(--tn360-ui-mist));
	background-image:
		linear-gradient(145deg,
			color-mix(in srgb, var(--category-color, var(--tn360-ui-blue)) 34%, transparent),
			color-mix(in srgb, var(--category-color, var(--tn360-ui-blue)) 72%, rgba(247, 249, 249, .28))),
		var(--category-image, linear-gradient(145deg, rgba(18, 96, 168, .18), rgba(157, 167, 8, .2)));
	background-position: center;
	background-size: cover;
	color: #fff;
	text-shadow: 0 2px 8px rgba(18, 57, 79, .52);
}
.tn360-menu-modern .tn360-category.has-category-image {
	background-image:
		linear-gradient(145deg,
			color-mix(in srgb, var(--category-color, var(--tn360-ui-blue)) 30%, rgba(18, 57, 79, .12)),
			color-mix(in srgb, var(--category-color, var(--tn360-ui-blue)) 68%, rgba(247, 249, 249, .2))),
		var(--category-image);
}
.tn360-menu-modern .tn360-category-number {
	background: color-mix(in srgb, var(--category-color, var(--tn360-ui-blue-deep)) 82%, var(--tn360-ui-blue-deep));
	text-shadow: none;
}

/* El acceso al mapa usa un plano ilustrado local de Concepción del Uruguay. */
.tn360-menu-modern .tn360-menu-map-button {
	--category-color: var(--tn360-menu-accent, #0180f5);
	--category-image: url("../images/ui/map-concepcion-del-uruguay.svg");
	background-image:
		linear-gradient(145deg, rgba(18, 96, 168, .22), rgba(1, 128, 245, .68)),
		var(--category-image);
	background-position: center;
	background-size: cover;
}

/* La búsqueda por fecha se distingue con una escena genérica, no con un alojamiento real. */
.tn360-menu-modern .tn360-accommodation-search-card {
	--category-image: url("../images/ui/search-accommodation-phone.svg");
	background-image:
		linear-gradient(145deg, rgba(18, 96, 168, .18), rgba(157, 167, 8, .56)),
		var(--category-image);
	background-position: center;
	background-size: cover;
}

/* Los nombres conservan una única mayúscula inicial también durante la carga. */
.tn360-topbar h1,
.tn360-menu-modern .tn360-category > span:last-child,
.tn360-menu-modern .tn360-menu-category-title,
.tn360-menu-modern .tn360-place-card span,
.tn360-search-result-card strong,
.tn360-map-card h3 {
	text-transform: lowercase;
}
.tn360-topbar h1::first-letter,
.tn360-menu-modern .tn360-category > span:last-child::first-letter,
.tn360-menu-modern .tn360-menu-category-title::first-letter,
.tn360-menu-modern .tn360-place-card span::first-letter,
.tn360-search-result-card strong::first-letter,
.tn360-map-card h3::first-letter {
	text-transform: uppercase;
}

/* Dentro de una categoría, la fotografía mantiene un velo del color administrable. */
.tn360-menu-modern .tn360-place-card {
	border-color: color-mix(in srgb, var(--category-color, var(--tn360-ui-blue)) 45%, #fff);
	background: color-mix(in srgb, var(--category-color, var(--tn360-ui-blue)) 28%, #fff);
}
.tn360-menu-modern .tn360-place-card.has-image::after {
	background: linear-gradient(180deg,
		color-mix(in srgb, var(--category-color, var(--tn360-ui-blue)) 10%, transparent) 22%,
		color-mix(in srgb, var(--category-color, var(--tn360-ui-blue-deep)) 80%, rgba(18, 57, 79, .34)) 100%);
}

/* Servicios, disponibilidad, promociones y extras comparten el lenguaje de Agenda. */
.tn360-unit-offer {
	align-items: stretch;
}
.tn360-extra-button {
	min-height: 42px;
	padding: 8px 10px;
	border: 1px solid rgba(255, 255, 255, .82);
	border-radius: 13px;
	background: linear-gradient(145deg,
		color-mix(in srgb, var(--tn360-category-color, var(--tn360-ui-blue)) 82%, #fff),
		color-mix(in srgb, var(--tn360-category-color, var(--tn360-ui-blue)) 82%, var(--tn360-ui-blue-deep)));
	color: #fff;
	box-shadow: inset 0 1px 0 rgba(255,255,255,.38), inset 0 -4px 8px rgba(18,57,79,.2), 0 8px 22px rgba(18,96,168,.25);
	text-shadow: 0 1px 3px rgba(18,57,79,.34);
}
.tn360-extra-button > span:first-child {
	border: 1px solid rgba(255,255,255,.62);
	background: color-mix(in srgb, var(--tn360-category-color, var(--tn360-ui-blue)) 70%, var(--tn360-ui-blue-deep));
}
.tn360-extra-button:hover,
.tn360-extra-button:focus-visible {
	transform: translateY(-1px);
	box-shadow: inset 0 1px 0 #fff, inset 0 -4px 8px rgba(18,57,79,.2), 0 11px 26px rgba(18,96,168,.32);
}
.tn360-available-today {
	background: linear-gradient(145deg, #aeba20, #7f8908);
}
.tn360-unit-offer-action {
	background: linear-gradient(145deg, #aeba20, var(--tn360-ui-olive));
}

/* Hamburguesa y título: mismo volumen gráfico, radios y brillos que Agenda. */
.tn360-experience .tn360-topbar .tn360-round-button,
.tn360-experience .tn360-topbar h1 {
	min-height: 46px;
	border: 1px solid rgba(255,255,255,.82);
	border-radius: 15px;
	background: linear-gradient(145deg,
		color-mix(in srgb, var(--tn360-title-bg, var(--tn360-category-color)) 82%, #fff),
		color-mix(in srgb, var(--tn360-title-bg, var(--tn360-category-color)) 84%, var(--tn360-ui-blue-deep)));
	box-shadow: inset 0 2px 0 rgba(255,255,255,.34), inset 0 -5px 10px rgba(18,57,79,.2), 0 9px 25px rgba(18,96,168,.28);
}
.tn360-experience .tn360-topbar .tn360-round-button {
	width: 56px;
	font-size: 25px;
}

/* Cámara y micrófono comparten cuerpo, borde fino y tratamiento cromático. */
.tn360-experience .tn360-camera-toggle,
.tn360-experience .tn360-voice-toggle {
	box-shadow: inset 0 2px 0 rgba(255,255,255,.4), inset 0 -5px 10px rgba(18,57,79,.2), 0 9px 24px rgba(18,96,168,.28);
}
.tn360-experience .tn360-camera-toggle {
	border: var(--tn360-control-camera-border-width, 1px) solid color-mix(in srgb, var(--tn360-ui-mist) 86%, transparent);
	background: linear-gradient(145deg,
		color-mix(in srgb, var(--tn360-control-camera-color, var(--tn360-ui-blue)) 82%, #fff),
		color-mix(in srgb, var(--tn360-control-camera-color, var(--tn360-ui-blue)) 78%, var(--tn360-ui-blue-deep)));
}
.tn360-experience .tn360-voice-toggle {
	border: var(--tn360-voice-border-width, 1px) solid color-mix(in srgb, var(--tn360-voice-border, var(--tn360-ui-mist)) var(--tn360-voice-border-opacity, 86%), transparent);
	background: linear-gradient(145deg,
		color-mix(in srgb, var(--tn360-voice-background, var(--tn360-ui-blue)) 82%, #fff),
		color-mix(in srgb, var(--tn360-voice-background, var(--tn360-ui-blue)) 78%, var(--tn360-ui-blue-deep)));
}
.tn360-experience .tn360-camera-toggle::before,
.tn360-experience .tn360-voice-toggle::before {
	border-width: 1px;
}

/* Sin flechas laterales: se conserva autoavance, gesto táctil y arrastre. */
.tn360-cover-gallery-controls {
	pointer-events: none;
}
.tn360-cover-gallery-controls span {
	background: color-mix(in srgb, var(--tn360-ui-blue-deep) 78%, transparent);
	color: #fff;
	box-shadow: 0 5px 16px rgba(18,57,79,.24);
}

@media (prefers-reduced-motion: reduce) {
	.tn360-menu,
	.tn360-stage,
	.tn360-status,
	.tn360-hotspot-marker {
		transition: none;
	}

	.tn360-hotspot-marker::before {
		animation: none;
	}

	.tn360-stage .tn360-virtual-tour-arrow.psv-virtual-tour-arrow svg,
	.tn360-fallback-arrow-button svg,
	.tn360-info-animation-fade .tn360-hotspot-symbol,
	.tn360-info-animation-scale .tn360-hotspot-symbol,
	.tn360-info-animation-bounce .tn360-hotspot-symbol {
		animation: none;
	}

	.tn360-camera-toggle,
	.tn360-camera-toggle::before,
	.tn360-voice-toggle::before,
	.tn360-voice-listening-label,
	.tn360-voice-listening-label::before,
	.tn360-voice-listening-label::after {
		animation: none;
	}
}

/* Mapa general 0.34 */
.tn360-menu-map-button {
	width: 100%;
	min-height: 52px;
	margin: 2px 0 12px;
	padding: 10px 12px;
	border: 1px solid color-mix(in srgb, var(--tn360-menu-accent) 74%, transparent);
	border-radius: 13px;
	display: grid;
	grid-template-columns: 30px 28px minmax(0, 1fr);
	align-items: center;
	gap: 10px;
	background: color-mix(in srgb, var(--tn360-menu-accent) 28%, var(--tn360-menu-place));
	color: var(--tn360-menu-text);
	font: 700 .93rem/1.2 "TN360 Metropolis", "Solomon Sans", sans-serif;
	text-align: left;
	cursor: pointer;
}

.tn360-menu-map-button svg {
	width: 27px;
	height: 27px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
}

.tn360-menu-map-button .tn360-category-number { --category-color: var(--tn360-menu-accent); }

.tn360-map-dialog {
	width: min(1180px, calc(100vw - 30px));
	height: min(820px, calc(100vh - 30px));
	max-width: none;
	max-height: none;
	padding: 0;
	border: 0;
	border-radius: 20px;
	overflow: hidden;
	background: var(--tn360-map-panel, #10151d);
	color: var(--tn360-map-text, #fff);
	box-shadow: 0 28px 90px rgba(0, 0, 0, .64);
	z-index: 100050;
}

.tn360-map-dialog::backdrop {
	background: rgba(2, 6, 12, .78);
	backdrop-filter: blur(5px);
}

.tn360-map-dialog.is-fullscreen-fallback {
	position: fixed;
	inset: 0;
	width: 100vw;
	height: 100vh;
	border-radius: 0;
}

.tn360-map-shell {
	height: 100%;
	display: grid;
	grid-template-rows: auto auto minmax(0, 1fr) auto;
	background: var(--tn360-map-panel, #10151d);
}

.tn360-map-head {
	min-height: 72px;
	padding: 14px 18px 12px 22px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	border-bottom: 1px solid color-mix(in srgb, var(--tn360-map-text) 14%, transparent);
}

.tn360-map-head span {
	display: block;
	margin-bottom: 2px;
	font-size: .72rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	opacity: .68;
}

.tn360-map-head h2 {
	margin: 0;
	font: 700 clamp(1.2rem, 2.2vw, 1.7rem)/1.15 "TN360 Metropolis", "Solomon Sans", sans-serif;
}

.tn360-map-head-actions {
	display: flex;
	gap: 8px;
}

.tn360-map-head-actions button {
	width: 42px;
	height: 42px;
	border: 0;
	border-radius: 50%;
	background: color-mix(in srgb, var(--tn360-map-text) 12%, transparent);
	color: inherit;
	font-size: 1.5rem;
	cursor: pointer;
}

.tn360-map-toolbar {
	padding: 11px 16px;
	display: flex;
	align-items: center;
	gap: 10px;
	border-bottom: 1px solid color-mix(in srgb, var(--tn360-map-text) 12%, transparent);
	overflow-x: auto;
}

.tn360-map-back-categories {
	min-height: 40px;
	padding: 8px 12px;
	border: 1px solid color-mix(in srgb, var(--tn360-map-accent) 58%, transparent);
	border-radius: 999px;
	background: color-mix(in srgb, var(--tn360-map-accent) 24%, transparent);
	color: var(--tn360-map-text);
	font: 700 .82rem/1 "TN360 Metropolis", "Solomon Sans", sans-serif;
	white-space: nowrap;
	cursor: pointer;
}

.tn360-map-search {
	min-width: min(290px, 55vw);
	height: 42px;
	padding: 0 12px;
	border-radius: 11px;
	display: flex;
	align-items: center;
	gap: 8px;
	background: color-mix(in srgb, var(--tn360-map-text) 10%, transparent);
}

.tn360-map-search svg {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	opacity: .7;
}

.tn360-map-search input {
	min-width: 0;
	width: 100%;
	border: 0;
	outline: 0;
	background: transparent;
	color: inherit;
	font: 400 .92rem/1.2 "Solomon Sans", sans-serif;
}

.tn360-map-search input::placeholder { color: color-mix(in srgb, var(--tn360-map-text) 65%, transparent); }

.tn360-map-filters {
	display: flex;
	gap: 7px;
}

.tn360-map-category-select {
	min-width: min(280px, 72vw);
	display: flex;
	align-items: center;
	gap: 9px;
	font: 700 .75rem/1 "TN360 Metropolis", "Solomon Sans", sans-serif;
	text-transform: uppercase;
}

.tn360-map-category-select select {
	min-width: 0;
	flex: 1;
	height: 40px;
	padding: 0 34px 0 11px;
	border: 1px solid color-mix(in srgb, var(--tn360-map-text) 42%, transparent);
	border-radius: 11px;
	background: color-mix(in srgb, var(--tn360-map-panel) 86%, #000);
	color: var(--tn360-map-text);
	font: 600 .84rem/1 "TN360 Metropolis", "Solomon Sans", sans-serif;
}

.tn360-map-legend {
	padding: 7px 14px 9px;
	display: flex;
	flex-wrap: wrap;
	gap: 7px 13px;
	background: color-mix(in srgb, var(--tn360-map-panel) 94%, transparent);
	color: var(--tn360-map-text);
	font: 600 .72rem/1.2 "TN360 Metropolis", "Solomon Sans", sans-serif;
}

.tn360-map-legend[hidden] { display: none; }
.tn360-map-legend span { display: inline-flex; align-items: center; gap: 6px; }
.tn360-map-legend i { width: 10px; height: 10px; border-radius: 50%; background: var(--category-color); box-shadow: 0 0 0 2px rgba(255,255,255,.78); }

.tn360-map-filters button,
.tn360-map-clear {
	min-height: 38px;
	padding: 7px 12px;
	border: 1px solid color-mix(in srgb, var(--category-color, var(--tn360-map-text)) 62%, transparent);
	border-radius: 999px;
	background: transparent;
	color: inherit;
	font: 600 .78rem/1 "TN360 Metropolis", "Solomon Sans", sans-serif;
	white-space: nowrap;
	cursor: pointer;
}

.tn360-map-filters button.is-active {
	background: var(--category-color, var(--tn360-map-accent));
	border-color: transparent;
}

.tn360-map-clear { border-color: transparent; text-decoration: underline; opacity: .78; }

.tn360-map-layout {
	min-height: 0;
	display: grid;
	grid-template-columns: minmax(0, 1.7fr) minmax(270px, .72fr);
}

.tn360-map-canvas {
	width: 100%;
	height: 100%;
	min-height: 360px;
	background: #dce3e6;
}

.tn360-map-results {
	min-height: 0;
	padding: 13px;
	overflow-y: auto;
	background: color-mix(in srgb, var(--tn360-map-panel) 90%, #000);
}

.tn360-map-summary { margin: 0 0 10px; font-size: .83rem; opacity: .72; }
.tn360-map-cards { display: grid; gap: 10px; }

.tn360-map-card {
	min-width: 0;
	border: 1px solid color-mix(in srgb, var(--marker-color) 54%, transparent);
	border-radius: 13px;
	overflow: hidden;
	display: grid;
	grid-template-columns: 92px minmax(0, 1fr);
	background: var(--tn360-map-card, #1b2532);
	color: inherit;
	cursor: pointer;
}

.tn360-map-card:focus-visible { outline: 3px solid var(--tn360-map-accent); outline-offset: 2px; }
.tn360-map-card > img { width: 92px; height: 100%; min-height: 124px; object-fit: cover; }
.tn360-map-card-body { min-width: 0; padding: 11px; }
.tn360-map-card small { color: var(--marker-color); font: 700 .68rem/1.2 "TN360 Metropolis", sans-serif; text-transform: uppercase; }
.tn360-map-card h3 { margin: 4px 0 6px; font: 700 .98rem/1.16 "TN360 Metropolis", sans-serif; }
.tn360-map-card p,
.tn360-map-card address { margin: 0 0 7px; font: 300 .79rem/1.35 "TN360 Metropolis", "Solomon Sans", sans-serif; opacity: .82; }
.tn360-map-card address { font-style: normal; }
.tn360-map-card-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.tn360-map-card-actions a { padding: 6px 8px; border-radius: 7px; background: var(--tn360-map-accent); color: #fff; font-size: .72rem; font-weight: 700; text-decoration: none; }
.tn360-map-card-actions a + a { background: color-mix(in srgb, var(--tn360-map-text) 13%, transparent); }
.tn360-map-empty { padding: 20px 8px; text-align: center; opacity: .72; }
.tn360-map-attribution { margin: 0; padding: 6px 14px 7px; font-size: .68rem; text-align: right; opacity: .7; }
.tn360-map-attribution a { color: inherit; }

.tn360-map-div-icon { border: 0; background: transparent; }
.tn360-map-marker { position: relative; width: 30px; height: 38px; display: grid; place-items: center; border: 3px solid #fff; border-radius: 50% 50% 50% 0; background: var(--marker-color); box-shadow: 0 4px 12px rgba(0,0,0,.45); transform: rotate(-45deg); }
.tn360-map-marker span { width: 9px; height: 9px; border-radius: 50%; background: #fff; transform: rotate(45deg); }
.tn360-map-marker img { width: 18px; height: 18px; object-fit: contain; filter: brightness(0) invert(1); transform: rotate(45deg); }
.tn360-map-cluster { width: 42px; height: 42px; border: 3px solid #fff; border-radius: 50%; display: grid; place-items: center; background: var(--marker-color); color: #fff; font: 800 .9rem/1 "TN360 Metropolis", sans-serif; box-shadow: 0 4px 15px rgba(0,0,0,.4); }

@media (max-width: 720px) {
	.tn360-map-dialog { width: 100vw; height: 100dvh; max-height: none; border-radius: 0; }
	.tn360-map-head { min-height: 62px; padding: 10px 10px 9px 14px; }
	.tn360-map-head-actions button { width: 38px; height: 38px; }
	.tn360-map-toolbar { padding: 8px 10px; }
	.tn360-map-search { min-width: 78vw; }
	.tn360-map-layout { grid-template-columns: 1fr; grid-template-rows: minmax(42vh, 1fr) minmax(180px, 38vh); }
	.tn360-map-canvas { min-height: 42vh; }
	.tn360-map-results { padding: 10px; }
	.tn360-map-cards { grid-template-columns: 1fr; }
	.tn360-map-card { grid-template-columns: 84px minmax(0, 1fr); }
	.tn360-map-card > img { width: 84px; min-height: 112px; }
}

/* Interfaz clara 0.68.6 — paleta suministrada por el proyecto. */
.tn360-experience {
	--tn360-ui-blue-deep: #1260a8;
	--tn360-ui-blue: #0180f5;
	--tn360-ui-mist: #e4e8e9;
	--tn360-ui-olive: #9da708;
	--tn360-ui-paper: #f7f9f9;
	--tn360-ui-ink: #18394f;
	--tn360-ui-muted: #587081;
	--tn360-ui-line: rgba(18, 96, 168, .2);
	color: var(--tn360-ui-ink);
}

/* Botones gráficos: volumen, brillo y color sin depender de fondos negros. */
.tn360-experience .tn360-round-button,
.tn360-experience .tn360-fixed-action,
.tn360-experience .tn360-action-button:not(.tn360-camera-toggle):not(.tn360-agenda-toggle),
.tn360-experience .tn360-action-bar-bottom-center .tn360-fixed-action,
.tn360-experience .tn360-action-bar-bottom-center .tn360-action-button:not(.tn360-agenda-toggle):not(.tn360-camera-toggle) {
	border: 1px solid rgba(255, 255, 255, .92);
	background:
		linear-gradient(145deg, rgba(255, 255, 255, .98), rgba(228, 232, 233, .94));
	color: color-mix(in srgb, var(--tn360-control-color, var(--tn360-ui-blue-deep)) 74%, var(--tn360-ui-blue-deep));
	box-shadow:
		inset 0 1px 0 #fff,
		inset 0 -4px 0 color-mix(in srgb, var(--tn360-control-color, var(--tn360-ui-blue)) 68%, var(--tn360-ui-blue-deep)),
		0 7px 20px rgba(18, 96, 168, .24);
	backdrop-filter: blur(12px);
}
.tn360-experience .tn360-fixed-action:hover,
.tn360-experience .tn360-fixed-action:focus-visible,
.tn360-experience .tn360-action-button:not(.tn360-camera-toggle):not(.tn360-agenda-toggle):hover,
.tn360-experience .tn360-action-button:not(.tn360-camera-toggle):not(.tn360-agenda-toggle):focus-visible {
	box-shadow:
		inset 0 1px 0 #fff,
		inset 0 -4px 0 var(--tn360-ui-olive),
		0 10px 25px rgba(18, 96, 168, .3);
}
.tn360-experience .tn360-fixed-action svg,
.tn360-experience .tn360-action-button:not(.tn360-camera-toggle):not(.tn360-agenda-toggle) svg {
	filter: drop-shadow(0 1px 0 rgba(255, 255, 255, .9));
}
.tn360-experience .tn360-whatsapp {
	color: #197343 !important;
}

.tn360-experience .tn360-topbar .tn360-round-button,
.tn360-experience .tn360-topbar h1 {
	border: 1px solid rgba(255, 255, 255, .72);
	background: linear-gradient(145deg, color-mix(in srgb, var(--tn360-title-bg, var(--tn360-category-color)) 84%, #fff), color-mix(in srgb, var(--tn360-title-bg, var(--tn360-category-color)) 90%, var(--tn360-ui-blue-deep)));
	color: #fff;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .38), 0 8px 24px rgba(18, 96, 168, .28);
}

.tn360-experience .tn360-scene-nav button {
	border-color: rgba(255, 255, 255, .92);
	background: rgba(247, 249, 249, .92);
	color: var(--tn360-ui-blue-deep);
	box-shadow: 0 5px 16px rgba(18, 96, 168, .18);
}
.tn360-experience .tn360-scene-nav button.is-active {
	background: var(--tn360-ui-blue-deep);
	color: #fff;
}

/* Explorar claro con fotografía real y discreta en cada categoría. */
.tn360-menu.tn360-menu-modern {
	border-color: rgba(18, 96, 168, .18);
	background:
		radial-gradient(circle at 8% 0%, rgba(1, 128, 245, .18) 0, transparent 40%),
		linear-gradient(150deg, rgba(247, 249, 249, .98), rgba(228, 232, 233, .97));
	color: var(--tn360-ui-ink);
	box-shadow: 0 28px 85px rgba(18, 58, 82, .3);
}
.tn360-menu-modern .tn360-menu-head { border-bottom-color: var(--tn360-ui-line); }
.tn360-menu-head-copy small { color: var(--tn360-ui-blue-deep); }
.tn360-menu-modern .tn360-menu-head > button {
	border-color: rgba(18, 96, 168, .2);
	background: linear-gradient(145deg, #fff, var(--tn360-ui-mist));
	color: var(--tn360-ui-blue-deep);
	box-shadow: inset 0 -3px 0 rgba(18, 96, 168, .18), 0 7px 18px rgba(18, 96, 168, .16);
}
.tn360-menu-modern .tn360-menu-search {
	border-color: rgba(1, 128, 245, .4);
	background: rgba(255, 255, 255, .92);
	box-shadow: inset 0 1px 0 #fff, 0 12px 30px rgba(18, 96, 168, .13);
}
.tn360-menu-modern .tn360-menu-search input,
.tn360-menu-modern .tn360-menu-search button { color: var(--tn360-ui-ink); }
.tn360-menu-modern .tn360-menu-search input::placeholder { color: var(--tn360-ui-muted); }
.tn360-menu-modern .tn360-menu-search button:hover,
.tn360-menu-modern .tn360-menu-search button:focus-visible,
.tn360-menu-modern .tn360-menu-search button.is-listening { background: rgba(1, 128, 245, .14); color: var(--tn360-ui-blue-deep); }

.tn360-menu-modern .tn360-category,
.tn360-menu-modern .tn360-menu-map-button {
	border-color: color-mix(in srgb, var(--category-color, var(--tn360-ui-blue)) 42%, #fff);
	background-color: var(--tn360-ui-mist);
	background-image:
		linear-gradient(145deg, rgba(247, 249, 249, .74), rgba(228, 232, 233, .92)),
		var(--category-image, linear-gradient(145deg, rgba(1, 128, 245, .12), rgba(157, 167, 8, .12)));
	background-position: center;
	background-size: cover;
	color: var(--tn360-ui-ink);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .88), 0 12px 27px rgba(18, 96, 168, .16);
}
.tn360-menu-modern .tn360-category.has-category-image {
	background-image:
		linear-gradient(145deg, rgba(247, 249, 249, .63), rgba(228, 232, 233, .9)),
		var(--category-image);
}
.tn360-menu-modern .tn360-category:hover,
.tn360-menu-modern .tn360-category:focus-visible,
.tn360-menu-modern .tn360-menu-map-button:hover,
.tn360-menu-modern .tn360-menu-map-button:focus-visible {
	border-color: var(--category-color, var(--tn360-ui-blue));
	box-shadow: inset 0 1px 0 #fff, 0 18px 34px rgba(18, 96, 168, .25);
}
.tn360-menu-modern .tn360-category img,
.tn360-menu-modern .tn360-area-category-icon,
.tn360-menu-modern .tn360-availability-menu-icon,
.tn360-menu-modern .tn360-menu-map-button svg {
	border: 1px solid rgba(255, 255, 255, .7);
	background: linear-gradient(145deg, color-mix(in srgb, var(--category-color, var(--tn360-ui-blue)) 88%, #fff), color-mix(in srgb, var(--category-color, var(--tn360-ui-blue)) 72%, var(--tn360-ui-blue-deep)));
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .46), inset 0 -4px 7px rgba(18, 57, 79, .16), 0 7px 16px rgba(18, 96, 168, .22);
}
.tn360-menu-modern .tn360-category-number {
	border-color: rgba(255, 255, 255, .88);
	background: var(--tn360-ui-blue-deep);
	color: #fff;
}
.tn360-menu-modern .tn360-menu-back {
	border-color: rgba(18, 96, 168, .28);
	background: rgba(255, 255, 255, .78);
	color: var(--tn360-ui-blue-deep);
}
.tn360-menu-modern .tn360-place-card {
	border-color: rgba(18, 96, 168, .16);
	background: #fff;
	color: var(--tn360-ui-ink);
	box-shadow: 0 12px 26px rgba(18, 96, 168, .15);
}
.tn360-menu-modern .tn360-place-card.has-image::after {
	background: linear-gradient(180deg, transparent 34%, rgba(18, 96, 168, .88) 100%);
}

/* Ventanas, información, disponibilidad y ayuda de voz. */
.tn360-dialog,
.tn360-availability-dialog,
.tn360-voice-help-shell {
	border-color: rgba(18, 96, 168, .2);
	background: linear-gradient(145deg, var(--tn360-ui-paper), var(--tn360-ui-mist));
	color: var(--tn360-ui-ink);
	box-shadow: 0 25px 75px rgba(18, 58, 82, .34);
}
.tn360-dialog::backdrop,
.tn360-availability-dialog::backdrop,
.tn360-agenda-dialog::backdrop,
.tn360-map-dialog::backdrop { background: rgba(18, 57, 79, .48); }
.tn360-dialog-close,
.tn360-availability-head button,
.tn360-voice-help-close {
	border-color: rgba(255, 255, 255, .8);
	background: linear-gradient(145deg, #fff, var(--tn360-ui-mist));
	color: var(--tn360-ui-blue-deep);
	box-shadow: inset 0 -3px 0 rgba(18, 96, 168, .18), 0 6px 17px rgba(18, 96, 168, .16);
}
.tn360-information-source { border-top-color: var(--tn360-ui-line); }
.tn360-information-source a,
.tn360-info-link { color: var(--tn360-ui-blue-deep); }
.tn360-search-summary,
.tn360-voice-help-reason,
.tn360-voice-help-note { color: var(--tn360-ui-muted); }
.tn360-voice-help-shell > small { color: var(--tn360-ui-blue); }
.tn360-voice-help-shell h2,
.tn360-voice-help-shell h3 { color: var(--tn360-ui-ink); }
.tn360-voice-help-context { border-left-color: var(--tn360-ui-blue); background: rgba(1, 128, 245, .1); }
.tn360-voice-help-examples button,
.tn360-voice-help-destinations button {
	border-color: rgba(18, 96, 168, .2);
	background: rgba(255, 255, 255, .75);
	color: var(--tn360-ui-ink);
}
.tn360-availability-head {
	background: linear-gradient(130deg, var(--tn360-ui-blue-deep), var(--tn360-ui-blue));
	color: #fff;
}
.tn360-availability-public-list { background: var(--tn360-ui-mist); }
.tn360-availability-public-card,
.tn360-availability-search-form {
	border-color: rgba(18, 96, 168, .2);
	background: rgba(255, 255, 255, .9);
	color: var(--tn360-ui-ink);
	box-shadow: 0 8px 22px rgba(18, 96, 168, .12);
}
.tn360-availability-search-form input {
	border-color: rgba(18, 96, 168, .24);
	background: #fff;
	color: var(--tn360-ui-ink);
}
.tn360-availability-empty { background: rgba(255, 255, 255, .72); }
.tn360-availability-public-status { background: #667207; }

/* Agenda clara, conservando los colores configurables como acentos. */
.tn360-agenda-dialog {
	border-color: rgba(18, 96, 168, .2);
	background: var(--tn360-ui-paper);
	color: var(--tn360-ui-ink);
	box-shadow: 0 25px 80px rgba(18, 58, 82, .34);
}
.tn360-agenda-head {
	background: linear-gradient(130deg, var(--tn360-ui-blue-deep), var(--tn360-ui-blue));
	color: #fff;
}
.tn360-agenda-head span { color: rgba(255, 255, 255, .78); }
.tn360-agenda-head button {
	border-color: rgba(255, 255, 255, .62);
	background: rgba(255, 255, 255, .18);
	color: #fff;
}
.tn360-agenda-tabs {
	border-bottom-color: var(--tn360-ui-line);
	background: var(--tn360-ui-mist);
}
.tn360-agenda-tabs button,
.tn360-agenda-back,
.tn360-agenda-resources button,
.tn360-agenda-resources a,
.tn360-agenda-detail-actions button {
	border-color: rgba(18, 96, 168, .2);
	background: rgba(255, 255, 255, .88);
	color: var(--tn360-ui-ink);
}
.tn360-agenda-tabs button.is-active {
	border-color: var(--tn360-ui-blue);
	background: var(--tn360-ui-blue);
	color: #fff;
}
.tn360-agenda-card,
.tn360-agenda-flyer,
.tn360-agenda-inline-gallery,
.tn360-agenda-inline-video {
	border-color: rgba(18, 96, 168, .18);
	background: #fff;
	color: var(--tn360-ui-ink);
	box-shadow: 0 8px 20px rgba(18, 96, 168, .1);
}
.tn360-agenda-card-date,
.tn360-agenda-card-location,
.tn360-agenda-card-arrow,
.tn360-agenda-detail-meta,
.tn360-agenda-empty { color: var(--tn360-ui-muted); }
.tn360-agenda-empty strong { color: var(--tn360-ui-ink); }
.tn360-agenda-categories span { background: var(--tn360-ui-mist); color: var(--tn360-ui-ink); }

/* Mapa claro y tarjetas legibles. */
.tn360-map-dialog,
.tn360-map-shell {
	--tn360-map-panel: var(--tn360-ui-paper) !important;
	--tn360-map-card: #fff !important;
	--tn360-map-text: var(--tn360-ui-ink) !important;
	--tn360-map-accent: var(--tn360-ui-blue) !important;
	background: var(--tn360-ui-paper);
	color: var(--tn360-ui-ink);
}
.tn360-map-head,
.tn360-map-toolbar { border-color: var(--tn360-ui-line); }
.tn360-map-head-actions button,
.tn360-map-search,
.tn360-map-category-select select,
.tn360-map-legend {
	border-color: rgba(18, 96, 168, .18);
	background: #fff;
	color: var(--tn360-ui-ink);
}
.tn360-map-results { background: var(--tn360-ui-mist); }
.tn360-map-card {
	background: #fff;
	box-shadow: 0 7px 20px rgba(18, 96, 168, .11);
}
.tn360-map-card-actions a + a { background: var(--tn360-ui-olive); color: #fff; }

/* Cámara, micrófono y Agenda mantienen su icono propio, con cuerpo gráfico. */
.tn360-experience .tn360-camera-toggle,
.tn360-experience .tn360-voice-toggle {
	background: linear-gradient(145deg, color-mix(in srgb, var(--tn360-control-color, var(--tn360-ui-blue)) 82%, #fff), color-mix(in srgb, var(--tn360-control-color, var(--tn360-ui-blue)) 72%, var(--tn360-ui-blue-deep)));
	box-shadow: inset 0 2px 0 rgba(255, 255, 255, .42), inset 0 -6px 12px rgba(18, 57, 79, .22), 0 9px 25px rgba(18, 96, 168, .3);
}
.tn360-experience .tn360-agenda-toggle {
	border-color: rgba(255, 255, 255, .82);
	background: linear-gradient(145deg, var(--tn360-ui-blue), var(--tn360-ui-blue-deep));
	box-shadow: inset 0 2px 0 rgba(255, 255, 255, .36), inset 0 -5px 10px rgba(18, 57, 79, .22), 0 9px 25px rgba(18, 96, 168, .28);
}

@media (max-width: 600px) {
	.tn360-menu.tn360-menu-modern {
		background:
			radial-gradient(circle at 5% 0%, rgba(1, 128, 245, .17), transparent 34%),
			linear-gradient(150deg, #f7f9f9, #e4e8e9);
	}
}

/* 0.68.7: última capa de cascada para prevalecer sobre el tema 0.68.6. */
.tn360-menu-modern .tn360-category,
.tn360-menu-modern .tn360-menu-map-button {
	background-color: color-mix(in srgb, var(--category-color, var(--tn360-ui-blue)) 44%, var(--tn360-ui-mist));
	background-image:
		linear-gradient(145deg, color-mix(in srgb, var(--category-color, var(--tn360-ui-blue)) 34%, transparent), color-mix(in srgb, var(--category-color, var(--tn360-ui-blue)) 72%, rgba(247,249,249,.28))),
		var(--category-image, linear-gradient(145deg, rgba(18,96,168,.18), rgba(157,167,8,.2)));
	background-position: center;
	background-size: cover;
	color: #fff;
	text-shadow: 0 2px 8px rgba(18,57,79,.52);
}
.tn360-menu-modern .tn360-category.has-category-image {
	background-image:
		linear-gradient(145deg, color-mix(in srgb, var(--category-color, var(--tn360-ui-blue)) 30%, rgba(18,57,79,.12)), color-mix(in srgb, var(--category-color, var(--tn360-ui-blue)) 68%, rgba(247,249,249,.2))),
		var(--category-image);
}
.tn360-menu-modern .tn360-menu-map-button {
	--category-color: var(--tn360-menu-accent, #0180f5);
	--category-image: url("../images/ui/map-concepcion-del-uruguay.svg");
	background-image: linear-gradient(145deg, rgba(18,96,168,.22), rgba(1,128,245,.68)), var(--category-image);
}
.tn360-menu-modern .tn360-accommodation-search-card {
	--category-image: url("../images/ui/search-accommodation-phone.svg");
	background-image: linear-gradient(145deg, rgba(18,96,168,.18), rgba(157,167,8,.56)), var(--category-image);
}
.tn360-menu-modern .tn360-category-number {
	background: color-mix(in srgb, var(--category-color, var(--tn360-ui-blue-deep)) 82%, var(--tn360-ui-blue-deep));
}
.tn360-menu-modern .tn360-place-card {
	border-color: color-mix(in srgb, var(--category-color, var(--tn360-ui-blue)) 45%, #fff);
	background: color-mix(in srgb, var(--category-color, var(--tn360-ui-blue)) 28%, #fff);
}
.tn360-menu-modern .tn360-place-card.has-image::after {
	background: linear-gradient(180deg, color-mix(in srgb, var(--category-color, var(--tn360-ui-blue)) 10%, transparent) 22%, color-mix(in srgb, var(--category-color, var(--tn360-ui-blue-deep)) 80%, rgba(18,57,79,.34)) 100%);
}
.tn360-experience .tn360-topbar .tn360-round-button,
.tn360-experience .tn360-topbar h1 {
	min-height: 46px;
	border: 1px solid rgba(255,255,255,.82);
	border-radius: 15px;
	background: linear-gradient(145deg, color-mix(in srgb, var(--tn360-title-bg, var(--tn360-category-color)) 82%, #fff), color-mix(in srgb, var(--tn360-title-bg, var(--tn360-category-color)) 84%, var(--tn360-ui-blue-deep)));
	box-shadow: inset 0 2px 0 rgba(255,255,255,.34), inset 0 -5px 10px rgba(18,57,79,.2), 0 9px 25px rgba(18,96,168,.28);
}
.tn360-experience .tn360-topbar .tn360-round-button { width: 56px; font-size: 25px; }
.tn360-experience .tn360-camera-toggle,
.tn360-experience .tn360-voice-toggle {
	box-shadow: inset 0 2px 0 rgba(255,255,255,.4), inset 0 -5px 10px rgba(18,57,79,.2), 0 9px 24px rgba(18,96,168,.28);
}
.tn360-experience .tn360-camera-toggle {
	border: var(--tn360-control-camera-border-width, 1px) solid color-mix(in srgb, var(--tn360-ui-mist) 86%, transparent);
	background: linear-gradient(145deg, color-mix(in srgb, var(--tn360-control-camera-color, var(--tn360-ui-blue)) 82%, #fff), color-mix(in srgb, var(--tn360-control-camera-color, var(--tn360-ui-blue)) 78%, var(--tn360-ui-blue-deep)));
}
.tn360-experience .tn360-voice-toggle {
	border: var(--tn360-voice-border-width, 1px) solid color-mix(in srgb, var(--tn360-voice-border, var(--tn360-ui-mist)) var(--tn360-voice-border-opacity, 86%), transparent);
	background: linear-gradient(145deg, color-mix(in srgb, var(--tn360-voice-background, var(--tn360-ui-blue)) 82%, #fff), color-mix(in srgb, var(--tn360-voice-background, var(--tn360-ui-blue)) 78%, var(--tn360-ui-blue-deep)));
}
.tn360-experience .tn360-camera-toggle::before,
.tn360-experience .tn360-voice-toggle::before { border-width: 1px; }

/* 0.68.8: interfaz azul Agenda, numeración universal y categorías genéricas. */
.tn360-experience,
.tn360-menu-modern { --tn360-agenda-blue: var(--tn360-control-agenda-color, #0180f5); }
.tn360-experience .tn360-topbar .tn360-round-button,
.tn360-experience .tn360-topbar h1 {
	border-color: #fff;
	background: var(--tn360-agenda-blue);
	color: #fff;
	opacity: 1;
	text-shadow: none;
}
.tn360-menu-modern .tn360-category,
.tn360-menu-modern .tn360-menu-map-button {
	border-color: color-mix(in srgb, var(--category-color, var(--tn360-agenda-blue)) 70%, #fff);
	background-color: color-mix(in srgb, var(--category-color, var(--tn360-agenda-blue)) 48%, var(--tn360-ui-mist));
	background-image: linear-gradient(90deg, color-mix(in srgb, var(--category-color, var(--tn360-agenda-blue)) 88%, #1260a8), color-mix(in srgb, var(--category-color, var(--tn360-agenda-blue)) 56%, transparent)), var(--category-image);
	background-position: center;
	background-size: cover;
	color: #fff;
	opacity: 1;
}
.tn360-menu-modern .tn360-category.has-category-image {
	background-image: linear-gradient(90deg, color-mix(in srgb, var(--category-color, var(--tn360-agenda-blue)) 90%, #1260a8), color-mix(in srgb, var(--category-color, var(--tn360-agenda-blue)) 54%, transparent)), var(--category-image);
}
.tn360-menu-modern .tn360-category-general,
.tn360-menu-modern .tn360-category-attraction,
.tn360-menu-modern .tn360-category-activity,
.tn360-menu-modern .tn360-category-sports,
.tn360-menu-modern .tn360-category-route,
.tn360-menu-modern .tn360-category-family,
.tn360-menu-modern .tn360-category-fishing,
.tn360-menu-modern .tn360-category-information { --category-image: url("../images/categories/activities-v2.webp"); }
.tn360-menu-modern .tn360-category-lodging,
.tn360-menu-modern .tn360-category-cabin,
.tn360-menu-modern .tn360-category-camping { --category-image: url("../images/categories/accommodation-category-v2.webp"); }
.tn360-menu-modern .tn360-category-museum { --category-image: url("../images/categories/museum-culture-v2.webp"); }
.tn360-menu-modern .tn360-category-beach,
.tn360-menu-modern .tn360-category-island,
.tn360-menu-modern .tn360-category-harbor,
.tn360-menu-modern .tn360-category-nature,
.tn360-menu-modern .tn360-category-pool,
.tn360-menu-modern .tn360-category-park { --category-image: url("../images/categories/beach-river.webp"); }
.tn360-menu-modern .tn360-category-food,
.tn360-menu-modern .tn360-category-nightlife { --category-image: url("../images/categories/gastronomy-v2.webp"); }
.tn360-menu-modern .tn360-category-monument,
.tn360-menu-modern .tn360-category-church { --category-image: url("../images/categories/heritage.webp"); }
.tn360-menu-modern .tn360-accommodation-search-card { --category-image: url("../images/categories/accommodation-search-v2.webp"); }
.tn360-menu-modern .tn360-category-number,
.tn360-place-number,
.tn360-search-result-card > .tn360-search-result-number {
	border: 2px solid #fff;
	background: color-mix(in srgb, var(--category-color, var(--tn360-agenda-blue, #0180f5)) 82%, #1260a8);
	color: #fff;
	text-shadow: none;
}
.tn360-menu-modern .tn360-place-card { position: relative; border-color: rgba(1,128,245,.25); background: #fff; color: #12394f; }
.tn360-place-number { position:absolute;z-index:4;top:8px;left:8px;width:31px;height:31px;border-radius:50%;display:grid!important;place-items:center;padding:0!important;font-weight:900;font-size:13px; }
.tn360-search-result-card,
.tn360-search-result-card.is-compact,
.tn360-search-result-card.no-image {
	border: 1px solid rgba(1,128,245,.25);
	border-left: 5px solid var(--tn360-agenda-blue, #0180f5);
	background: #fff;
	color: #12394f;
	box-shadow: 0 8px 20px rgba(18,96,168,.12);
}
.tn360-search-result-card small { color: #506879; }
.tn360-search-results-head button { color: #12394f; }
.tn360-search-filter-chip { border-color: #0180f5; background: #e8f4ff; color: #12394f; }
.tn360-search-empty { border-color: rgba(1,128,245,.38); color: #506879; background:#fff; }
.tn360-available-today-button { animation: tn360-today-attention 2.8s ease-in-out infinite; }
.tn360-available-today-button small { margin-left:auto;padding:4px 8px;border-radius:999px;background:#fff;color:#1260a8;font-weight:900; }
@keyframes tn360-today-attention { 0%,76%,100%{transform:translateY(0);box-shadow:0 8px 20px rgba(1,128,245,.18)} 84%{transform:translateY(-2px);box-shadow:0 13px 30px rgba(1,128,245,.34)} 92%{transform:translateY(0)} }

.tn360-dialog.is-information-panel #tn360-dialog-title {
	display:table;
	margin:0 auto 18px;
	padding:10px 20px;
	border-radius:16px;
	background:var(--tn360-agenda-blue,#0180f5);
	color:#fff;
	text-align:center;
}
.tn360-availability-head { justify-content:center; background:var(--tn360-agenda-blue,#0180f5); }
.tn360-availability-head h2 { text-align:center; flex:1; }
.tn360-availability-search-form { padding:18px;gap:12px;border-radius:18px;background:#eef6fc; }
.tn360-availability-search-form label { padding:12px;border:1px solid rgba(1,128,245,.2);border-radius:13px;background:#fff; }
.tn360-availability-search-form .tn360-booking-data-help { grid-column:1/-1;margin:8px 0 0;padding-top:16px;border-top:2px solid rgba(1,128,245,.18);text-align:center;font-weight:800; }
.tn360-availability-search-form>button { grid-column:1/-1;justify-self:center;min-width:min(300px,100%);border-radius:999px;background:#0180f5; }

.tn360-menu-content,
.tn360-search-results-inline,
.tn360-agenda-body,
.tn360-dialog-content,
.tn360-availability-public-list,
.tn360-map-results { scrollbar-width:thin;scrollbar-color:#0180f5 #e4e8e9; }
.tn360-menu-content::-webkit-scrollbar,
.tn360-agenda-body::-webkit-scrollbar,
.tn360-dialog-content::-webkit-scrollbar,
.tn360-availability-public-list::-webkit-scrollbar { width:8px; }
.tn360-menu-content::-webkit-scrollbar-thumb,
.tn360-agenda-body::-webkit-scrollbar-thumb,
.tn360-dialog-content::-webkit-scrollbar-thumb,
.tn360-availability-public-list::-webkit-scrollbar-thumb { border-radius:99px;background:#0180f5; }
.tn360-menu-content::-webkit-scrollbar-track,
.tn360-agenda-body::-webkit-scrollbar-track,
.tn360-dialog-content::-webkit-scrollbar-track,
.tn360-availability-public-list::-webkit-scrollbar-track { background:#e4e8e9; }

/* 0.68.9: paleta variada, disponibilidad destacada e Información compacta. */
.tn360-menu-modern .tn360-available-today-button {
	--category-color: #9da808;
	--category-image: linear-gradient(135deg, #9da808, #e5f518);
	background-image: linear-gradient(105deg, rgba(104,114,7,.96), rgba(157,168,8,.72)), var(--category-image);
}
.tn360-menu-modern .tn360-available-today-button .tn360-category-number {
	background:#667207;
}
.tn360-menu-modern .tn360-accommodation-search-card {
	--category-color:#0180f5;
	background-image:linear-gradient(90deg,rgba(18,96,168,.92),rgba(1,128,245,.48)),var(--category-image);
}
.tn360-unit-offer {
	top:max(78px,calc(env(safe-area-inset-top) + 68px));
	left:max(18px,env(safe-area-inset-left));
}
.tn360-unit-offer .tn360-available-today {
	order:-10;
	min-height:44px;
	border-color:#e5f518;
	background:linear-gradient(145deg,#7f8908,#667207);
	box-shadow:0 8px 22px rgba(102,114,7,.34);
}
.tn360-dialog.is-information-panel #tn360-dialog-title {
	display:block;
	width:fit-content;
	max-width:100%;
	margin:0 0 15px;
	padding:8px 14px;
	border-radius:13px;
	font-size:clamp(17px,2.1vw,22px);
	line-height:1.15;
	text-align:left;
}
.tn360-information-source { display:none!important; }

/* 0.68.11: identidad local, verdes suaves y navegación de escenas persistente. */
.tn360-experience {
	--tn360-traffic-green: #4f8f5b;
	--tn360-traffic-green-deep: #397247;
	--tn360-map-green: #71834a;
}

/* Encabezado siempre azul, con el mismo volumen visual de Agenda y Servicios. */
.tn360-experience .tn360-topbar .tn360-round-button,
.tn360-experience .tn360-topbar h1 {
	border-color: rgba(255,255,255,.88);
	background: linear-gradient(145deg, color-mix(in srgb, var(--tn360-agenda-blue, #0180f5) 84%, #fff), color-mix(in srgb, var(--tn360-agenda-blue, #0180f5) 72%, #1260a8));
	color: #fff;
	box-shadow: inset 0 2px 0 rgba(255,255,255,.32), inset 0 -5px 10px rgba(18,57,79,.2), 0 9px 25px rgba(18,96,168,.28);
}

/* Disponible hoy: verde semáforo suave, sin tonos flúor. */
.tn360-menu-modern .tn360-available-today-button {
	--category-color: var(--tn360-traffic-green);
	--category-image: linear-gradient(135deg, var(--tn360-traffic-green), var(--tn360-traffic-green-deep));
	border-color: color-mix(in srgb, var(--tn360-traffic-green) 64%, #fff);
	background-image: linear-gradient(105deg, rgba(57,114,71,.96), rgba(79,143,91,.76)), var(--category-image);
}
.tn360-menu-modern .tn360-available-today-button .tn360-category-number,
.tn360-menu-modern .tn360-available-today-button .tn360-availability-menu-icon {
	background: var(--tn360-traffic-green-deep);
	color: #fff;
}
.tn360-unit-offer .tn360-available-today {
	border-color: rgba(255,255,255,.74);
	background: linear-gradient(145deg, var(--tn360-traffic-green), var(--tn360-traffic-green-deep));
	box-shadow: 0 8px 22px rgba(57,114,71,.3);
}
.tn360-unit-offer .tn360-available-today > span:first-child {
	background: var(--tn360-traffic-green-deep);
	color: #fff;
}

/* Mapa, numeración y lupa con un verde oliva apagado de la paleta. */
.tn360-menu-modern .tn360-menu-map-button {
	--category-color: var(--tn360-map-green);
	background-image: linear-gradient(105deg, rgba(67,83,41,.9), rgba(113,131,74,.6)), url("../images/ui/map-concepcion-del-uruguay.svg");
}
.tn360-menu-modern .tn360-menu-map-button .tn360-category-number,
.tn360-menu-modern .tn360-menu-map-button svg {
	background-color: color-mix(in srgb, var(--tn360-map-green) 82%, #344225);
	color: #fff;
}
.tn360-menu-modern .tn360-menu-search .tn360-menu-search-submit {
	background: linear-gradient(145deg, color-mix(in srgb, var(--tn360-map-green) 82%, #fff), var(--tn360-map-green));
	color: #fff;
}
.tn360-menu-modern .tn360-menu-search .tn360-menu-search-submit svg { stroke: currentColor; }

/* Toda categoría nueva recibe un escenario local; el icono elegido define la variante. */
.tn360-menu-modern .tn360-category { --category-image: url("../images/categories/concepcion-default-v1.webp"); }
.tn360-menu-modern .tn360-category-general,
.tn360-menu-modern .tn360-category-attraction,
.tn360-menu-modern .tn360-category-activity,
.tn360-menu-modern .tn360-category-sports,
.tn360-menu-modern .tn360-category-route,
.tn360-menu-modern .tn360-category-family,
.tn360-menu-modern .tn360-category-fishing,
.tn360-menu-modern .tn360-category-information,
.tn360-menu-modern .tn360-category-monument,
.tn360-menu-modern .tn360-category-church,
.tn360-menu-modern .tn360-category-food,
.tn360-menu-modern .tn360-category-nightlife { --category-image: url("../images/categories/concepcion-default-v1.webp"); }
.tn360-menu-modern .tn360-category-lodging,
.tn360-menu-modern .tn360-category-cabin,
.tn360-menu-modern .tn360-category-camping { --category-image: url("../images/categories/accommodation-cdu-v1.webp"); }
.tn360-menu-modern .tn360-category-museum { --category-image: url("../images/categories/museum-cdu-v1.webp"); }
.tn360-menu-modern .tn360-category-beach,
.tn360-menu-modern .tn360-category-island,
.tn360-menu-modern .tn360-category-harbor,
.tn360-menu-modern .tn360-category-nature,
.tn360-menu-modern .tn360-category-pool,
.tn360-menu-modern .tn360-category-park { --category-image: url("../images/categories/beach-cdu-v1.webp"); }
.tn360-menu-modern .tn360-available-today-button {
	--category-image: linear-gradient(135deg, var(--tn360-traffic-green), var(--tn360-traffic-green-deep));
}
.tn360-menu-modern .tn360-accommodation-search-card {
	--category-color: #0180f5;
	--category-image: url("../images/categories/accommodation-search-cdu-v1.webp");
	background-image: linear-gradient(90deg,rgba(18,96,168,.9),rgba(1,128,245,.43)),var(--category-image);
}
