@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Playfair+Display:ital,wght@0,400..900;1,400..900&display=swap');

html
{
 height:100%;
 overflow-y:scroll;
 width:100%;
}
body
{
 border:0;
 box-sizing: border-box; /* padding dentro de width */
 color:#2c3e50;
 height:100%;
 font-family:'Inter', system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
 font-size:15px;
 line-height:26px;
 margin:0;
 padding:0;
 width:100%;
}
*, *:before, *:after
{
 box-sizing: inherit; /* padding dentro de width em todos os browsers */
}
a
{
 color:#006;
 font-weight:bold;
 text-decoration:none;
}
a:hover
{
 color:#600;
 text-decoration:underline;
}
form
{
 padding:0;
 margin:0;
}
h1
{
 font-family:'Playfair Display', Georgia, serif;
 font-size:42px;
 line-height:48px;
 margin:0;
 padding:0;
 position:relative;
 top:-17px;
}
h2
{
 font-family:'Playfair Display', Georgia, serif;
 color:#8b1c1c;
 font-size:22px;
 line-height:28px;
 margin:0 0 10px 0;
 padding:0;
}
img
{
 border:none;
}
input
{
 border:1px solid #600; 
 background:#fff; 
 font-size:10px; 
 font-family:'Inter', sans-serif; 
 color:#000066; 
 text-align:center; 
 width:100px;
}
#env
{
 margin-left:auto;
 margin-right:auto;
 max-width:1200px;
 width:95%;
}
#header
{
 background-color:#ffffff;
 color:#0f172a;
 padding:8px 10px 8px 0;
 display:flex;
 justify-content:space-between;
 align-items:center;
 margin-bottom:25px;
 border-bottom:1px solid #e2e8f0;
 box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -2px rgba(0, 0, 0, 0.05);
 width:100%;
}
#logo-header
{
 display:flex;
 align-items:center;
 text-decoration:none;
 gap:20px;
}
#logo-emblem
{
 height:70px !important;
 width:auto;
 display:block;
 flex-shrink:0;
 margin-left:0 !important;
}
#logo-text
{
 display:flex;
 flex-direction:column;
 justify-content:center;
 text-align:left;
}
#logo-title
{
 font-family:'Inter', sans-serif;
 font-size:28px;
 font-weight:800;
 line-height:1.1;
 letter-spacing:1.5px;
}
#logo-title .gvp
{
 color:#0f3d6b;
}
#logo-title .thg
{
 color:#0d9488;
}
#logo-subtitle
{
 font-family:'Inter', sans-serif;
 font-size:10px;
 font-weight:600;
 color:#475569;
 letter-spacing:2px;
 margin-top:4px;
 text-transform:uppercase;
 line-height:1.2;
}
.header-right
{
 display:flex;
 align-items:center;
 gap:16px;
}
.login-btn
{
 color:#94a3b8;
 font-size:14px;
 font-weight:500;
 text-decoration:none;
 border:1px solid #334155;
 padding:6px 12px;
 border-radius:6px;
 transition:all 0.2s ease;
 width:auto;
 text-align:center;
 background:transparent;
}
.login-btn:hover
{
 color:#fff;
 background-color:#1e293b;
 border-color:#475569;
 text-decoration:none;
}
.pubtrans
{
 margin-bottom:25px;
 text-align:center;
}
#cont
{
 display:flex;
 gap:32px;
 flex-wrap:wrap;
 margin-bottom:25px;
}
#menu
{
 background-color:#f8fafc;
 border-bottom:1px solid #e2e8f0;
 padding:0 16px;
 position:relative;
 top:-10px;
 display:flex;
 gap:24px;
 align-items:stretch;
}
#menu a
{
 color:#475569;
 font-size:14px;
 font-weight:600;
 text-decoration:none;
 padding:12px 4px;
 border-bottom:2px solid transparent;
 transition:all 0.2s ease;
}
#menu a:hover
{
 color:#8b1c1c;
 text-decoration:none;
}
#menu a.activo, #menu a.active
{
 color:#8b1c1c;
 border-bottom-color:#8b1c1c;
 text-decoration:none;
}
#path
{
	font-size:13px;
	color:#64748b;
	margin-bottom:25px;
	padding:8px 0;
	border-bottom:1px solid #e2e8f0;
}
#path a
{
	color:#475569;
	font-weight:500;
}
#path a:hover
{
	color:#8b1c1c;
	text-decoration:underline;
}
#path:empty
{
	display:none;
}
#principal
{
 flex:3;
 min-width:320px;
 margin-bottom:25px;
 padding:10px;
}
#foto
{
 float:right;
 margin-bottom:25px;
 margin-left:20px;
 max-width:50%;
 width:300px;
}
#foto img
{
 width:100%;
}
.foto100pc
{
 width:100%;
}
.fotolegenda
{
 font-size:12px;
 line-height:18px;
}
#coldir
{
 flex:1;
 min-width:280px;
 margin-bottom:25px;
}
#coldira
{
 margin-bottom:25px;
 width:100%;
}
#coldira img
{
 float:right;
 margin-left:10px;
 width:50%;
}
#coldirb
{
 margin-bottom:25px;
 width:100%;
}
.coltit
{
 font-family:'Playfair Display', Georgia, serif;
 background-color:transparent;
 border-bottom:2px solid #8b1c1c;
 font-size:20px;
 font-weight:700;
 color:#0f172a;
 line-height:28px;
 padding:0 0 8px 0;
 margin-bottom:16px;
 width:100%;
}
.coltxt
{
 border-left:none;
 padding:0;
}
#recursos
{
 margin-bottom:25px;
}
.recurso
{
 float:left;
 margin-bottom:25px;
 width:300px;
}
.recurso img
{
 float:right;
 margin-left:10px;
 width:50%;
}
#rodape {
	width: 100%;
	background-color: #0f172a;
	color: #94a3b8;
	font-family: 'Inter', sans-serif;
	padding: 48px 0 24px 0;
	border-top: 1px solid #1e293b;
}

#rodape a {
	color: #cbd5e1;
	transition: color 0.15s ease;
	font-weight: 500;
}

#rodape a:hover {
	color: #8b1c1c;
	text-decoration: none;
}

.footer-container {
	max-width: 1200px;
	margin: 0 auto;
	width: 95%;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
	gap: 32px;
	padding-bottom: 32px;
	border-bottom: 1px solid #1e293b;
}

.footer-column h3 {
	color: #f1f5f9;
	font-size: 14px;
	font-weight: 700;
	margin: 0 0 16px 0;
	text-transform: uppercase;
	letter-spacing: 1px;
}

.footer-column h3 a {
	color: #f1f5f9 !important;
}

.footer-column h3 a:hover {
	color: #8b1c1c !important;
}

.footer-desc {
	font-size: 13px;
	line-height: 20px;
	color: #64748b;
	margin: 8px 0 16px 0;
}

.footer-links {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.footer-links a {
	font-size: 14px;
}

.footer-lang-switcher {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 16px;
}

.footer-lang-switcher img {
	width: 20px;
	height: auto;
	border-radius: 2px;
	opacity: 0.8;
	transition: opacity 0.15s ease, transform 0.15s ease;
}

.footer-lang-switcher img:hover {
	opacity: 1;
	transform: scale(1.1);
}

.footer-counter {
	margin-top: 12px;
}

.footer-bottom {
	max-width: 1200px;
	margin: 24px auto 0 auto;
	width: 95%;
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 16px;
	font-size: 13px;
	color: #64748b;
}

.footer-bottom p {
	margin: 0;
}

@media (max-width: 768px) {
	.footer-container {
		grid-template-columns: 1fr;
		gap: 24px;
	}
	.footer-bottom {
		flex-direction: column;
		text-align: center;
	}
}
@media screen and (min-width:601px) and (max-width:900px)
{
#principal
{
 max-width:100%;
 width:100%;
}
#coldir
{
 float:none;
 width:100%;
}
#coldira
{
 float:left;
 width:48%;
}
#coldirb
{
 float:right;
 width:48%;
}
.recurso
{
 float:left;
 width:50%;
}
.recurso.b
{
 width:100%;
}
}
@media screen and (max-width:600px)
{
#principal
{
 width:100%;
}
#foto
{
 float:none;
 margin-left:0;
 max-width:100%;
 width:100%;
}
#coldir
{
 float:none;
 width:100%;
}
#coldira
{
 width:100%;
}
#coldirb
{
 width:100%;
}
.recurso
{
 width:100%;
}
}
.actualizar
{
	color:#600;
	float:right;
	font-size:10px;
	padding-right:6px;
	position:relative;
}
.addthis_toolbox
{
 height:20px;
}
.addtotomtom
{
 float:right;
 position:relative;
}
canvas
{
 border: 1px solid #000;
}
.clear
{
 clear:both;
}

.cz
{
 color:#666;
 font-weight:bold;
}
.infowindow
{
 text-align:left;
}
.infowindow img
{
 width:100px;
 float:right;
 margin-left:10px;
}
.input2
{
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	border: 1px solid #cbd5e1;
	border-radius: 8px;
	background-color: #fff;
	background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23475569' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
	background-repeat: no-repeat;
	background-position: right 16px center;
	background-size: 16px;
	font-size: 15px;
	font-family: 'Inter', sans-serif;
	color: #1e293b;
	padding: 10px 48px 10px 16px;
	cursor: pointer;
	box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
	outline: none;
	max-width: 100%;
}
.input2:hover
{
	border-color: #94a3b8;
}
.input2:focus
{
	border-color: #8b1c1c;
	box-shadow: 0 0 0 3px rgba(139, 28, 28, 0.15);
}
.item
{
	clear:both;
	font-family:'Inter', sans-serif;
	font-size:12px;
	line-height:18px;
	padding:5px;
	margin-bottom:20px;
	border-bottom:1px solid #888;
}
.item:hover
{
	background:#eee;
}
.itemtit
{
	width:100%;
	font-family:'Inter', sans-serif;
	font-weight:600;
	font-size:16px;
	border-bottom:1px dotted #888;
	padding-bottom:2px;
	margin-bottom:6px;
}
.itemtit a
{
	color:#a00;
}
.itemtit a:hover
{
	color:#f00;
	text-decoration:none;
}

.lj
{
 color:#fa0;
}
#mapagoogle
{
	width:100%;
	height:400px;
	border:none;
}
#mapagrande
{
	height:400px;
	width:100%;
	border:1px solid #000;
}
#mapahoteis
{
 border:1px solid #000;
 height:400px;
 width:100%;
}
#mapapequeno
{
 border:1px solid #000;
 height:250px;
 width:100%;
}
.mais
{
 display:inline;
 font-weight:bold;
 text-align:right;
}
/* Pagination Bar styling */
.pagination-bar {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 16px;
	padding: 16px;
	margin: 32px 0;
	font-family: 'Inter', sans-serif;
	width: 100%;
	box-sizing: border-box;
}
.pagination-info {
	font-size: 14px;
	color: #64748b;
	font-weight: 500;
	background-color: #f1f5f9;
	padding: 8px 18px;
	border-radius: 9999px;
	border: 1px solid #e2e8f0;
	box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.02);
}
.pagination-info strong {
	color: #0f172a;
	font-weight: 600;
}
.pagination-btn {
	display: inline-flex;
	align-items: center;
	background-color: #ffffff;
	border: 1px solid #cbd5e1;
	border-radius: 9999px;
	padding: 8px 22px;
	font-size: 13px;
	font-weight: 600;
	color: #334155;
	text-decoration: none;
	box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
	transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}
.pagination-btn:hover {
	background-color: #8b1c1c;
	border-color: #8b1c1c;
	color: #ffffff;
	text-decoration: none;
	transform: translateY(-1px);
	box-shadow: 0 4px 6px -1px rgba(139, 28, 28, 0.15), 0 2px 4px -1px rgba(139, 28, 28, 0.1);
}
.pagination-spacer {
	display: none;
}
.quadromapafoto
{
	position:relative;
	float:right;
	margin-left:10px;
	margin-bottom:10px;
}

.quadromapafoto img
{
	border:1px solid #000;
}

.titfd
{
	background-color:#e9ab17;
	padding:3px;
}
.txtform
{
	-moz-border-radius: 10px;
	-webkit-border-radius: 10px;
	-khtml-border-radius: 10px;
	background-color: #eee;
	border: 4px solid #ddd;
	border-radius: 10px;
	margin-top:20px;
	padding:20px;
	text-align:left;
	width:60%;
}
 
.txtform h1
{
	font-size:16px;
	font-weight:bold;
}

.txtform input[type=text],
.txtform input[type=password]
{
	border: 1px solid #ddd;
	font-size:16px;
	padding:2px 10px;
	width:90%;
}

.txtform input[type=submit]
{
	background-color:#060;
	border: 1px solid #ddd;
	color:#fff;
	font-size:16px;
	padding:5px 10px 5px 10px;
}

#principal p
{
	margin: 0 0 1.5em 0;
}

.region-select-wrap
{
	margin-top: 24px;
	margin-bottom: 24px;
}

.mpt
{
	max-width: 100%;
	height: auto;
}

#header img
{
	width: auto;
	height: 12px;
	margin-left: 10px;
	vertical-align: middle;
}

.coltxt + .coltxt
{
	margin-top: 24px;
	padding-top: 24px;
	border-top: 1px solid #e2e8f0;
}

/* Photo Grid & Cards Layout */
.photo-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 24px;
	margin: 24px 0;
}

.photo-card {
	background-color: #ffffff;
	border: 1px solid #e2e8f0;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
	display: flex;
	flex-direction: column;
}

.photo-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
	border-color: #cbd5e1;
}

.photo-card-link {
	text-decoration: none;
	color: inherit;
	display: flex;
	flex-grow: 1;
	flex-direction: column;
}

.photo-card-link:hover {
	text-decoration: none;
	color: inherit;
}

.photo-card-img-wrapper {
	width: 100%;
	height: 200px;
	overflow: hidden;
	background-color: #f1f5f9;
	position: relative;
}

.photo-card-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}

.photo-card:hover .photo-card-img {
	transform: scale(1.05);
}

.photo-card-info {
	padding: 16px;
	flex-grow: 1;
	display: flex;
	flex-direction: column;
}

.photo-card-title {
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	font-weight: 600;
	color: #0f172a;
	margin: 0;
	line-height: 1.4;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	text-overflow: ellipsis;
}

.photo-card-geo {
	padding: 12px 16px;
	background-color: #f8fafc;
	border-top: 1px solid #f1f5f9;
	font-size: 11px;
	color: #64748b;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px;
}

.photo-card-geo a.geo-tag {
	color: #475569;
	font-weight: 500;
	transition: color 0.15s ease;
}

.photo-card-geo a.geo-tag:hover {
	color: #8b1c1c;
	text-decoration: underline;
}

.photo-card-geo .geo-sep {
	color: #cbd5e1;
	font-size: 10px;
	margin: 0 2px;
}

/* Place Card Specific Styles */
.place-card .photo-card-info {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.place-card-desc {
	margin: 0;
	font-size: 13px;
	line-height: 20px;
	color: #64748b;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	text-overflow: ellipsis;
}

.place-read-more {
	color: #8b1c1c;
	font-weight: 600;
	font-size: 12px;
	white-space: nowrap;
	margin-left: 4px;
}

/* Hotel Card Styling */
.hotel-card {
	background-color: #ffffff;
	border: 1px solid #e2e8f0;
	border-radius: 8px;
	box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -2px rgba(0, 0, 0, 0.05);
	margin-bottom: 20px;
	display: flex;
	flex-direction: column;
	font-family: 'Inter', sans-serif;
	overflow: hidden;
}

.hotel-card-main {
	padding: 16px;
	display: flex;
	width: 100%;
	gap: 16px;
	align-items: flex-start;
}

.hotel-card-thumb-wrapper {
	flex-shrink: 0;
	width: 120px;
	height: 90px;
	border-radius: 6px;
	overflow: hidden;
	background-color: #f1f5f9;
	border: 1px solid #e2e8f0;
}

.hotel-card-thumb-empty {
	background-color: transparent !important;
	border: none !important;
}

.hotel-card-thumb {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.hotel-card-thumb-placeholder {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, #f8fafc 0%, #cbd5e1 100%);
}

.hotel-card-thumb-placeholder span {
	font-size: 24px;
	font-weight: 700;
	color: #475569;
}

.hotel-card-content {
	flex-grow: 1;
	min-width: 0;
}

.hotel-card-title {
	font-family: 'Inter', sans-serif;
	font-size: 18px;
	font-weight: 700;
	margin: 0 0 8px 0;
	line-height: 1.2;
}

.hotel-card-title a {
	color: #8b1c1c;
	text-decoration: none;
}

.hotel-card-title a:hover {
	color: #b91c1c;
	text-decoration: underline;
}

.hotel-card-details {
	font-size: 13px;
	line-height: 20px;
	color: #475569;
}

.hotel-card-details strong {
	color: #1e293b;
}

.hotel-card-details a {
	color: #0f3d6b;
	font-weight: 600;
	text-decoration: none;
}

.hotel-card-details a:hover {
	text-decoration: underline;
}

.hotel-card-more {
	font-weight: 700;
	color: #0d9488 !important;
	text-decoration: none;
	margin-left: 4px;
}

.hotel-card-more:hover {
	text-decoration: underline;
	color: #0f766e !important;
}

/* Hotel Capacity Badges */
.hotel-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 4px;
	margin-bottom: 8px;
}

.hotel-badge {
	display: inline-flex;
	align-items: center;
	padding: 3px 8px;
	font-size: 11px;
	font-weight: 600;
	border-radius: 6px;
	border: 1px solid transparent;
	line-height: 1;
	letter-spacing: 0.2px;
	box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.02);
}

.hotel-badge.rooms {
	background-color: #f0f9ff;
	border-color: #bae6fd;
	color: #0369a1;
}

.hotel-badge.apartments {
	background-color: #f0fdf4;
	border-color: #bbf7d0;
	color: #15803d;
}

.hotel-badge.villas {
	background-color: #faf5ff;
	border-color: #e9d5ff;
	color: #7e22ce;
}

.hotel-badge.suites {
	background-color: #e0e7ff;
	border-color: #c7d2fe;
	color: #4338ca;
}

/* Sidebar Hotel Card Styles */
.sidebar-hotel-card {
	background-color: #ffffff;
	border: 1px solid #e2e8f0;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04);
	transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
	margin-bottom: 20px;
}

.sidebar-hotel-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 16px rgba(0, 0, 0, 0.06);
	border-color: #cbd5e1;
}

.sidebar-hotel-card-link {
	display: block;
	text-decoration: none !important;
	color: inherit !important;
}

.sidebar-hotel-card-img-wrapper {
	width: 100%;
	height: 120px;
	overflow: hidden;
	background-color: #f1f5f9;
}

.sidebar-hotel-card-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.3s ease;
}

.sidebar-hotel-card:hover .sidebar-hotel-card-img {
	transform: scale(1.04);
}

.sidebar-hotel-card-info {
	padding: 12px;
}

.sidebar-hotel-card-title {
	margin: 0 0 2px 0;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 700;
	color: #8b1c1c;
	line-height: 1.3;
}

.sidebar-hotel-card-link:hover .sidebar-hotel-card-title {
	color: #b91c1c;
	text-decoration: underline;
}

.sidebar-hotel-card-geo {
	font-size: 10px;
	color: #64748b;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	display: block;
	margin-bottom: 6px;
}

.sidebar-hotel-card-desc {
	margin: 0;
	font-size: 12px;
	line-height: 18px;
	color: #475569;
}

/* Ultimate Logo Alignment Override */
#header {
    padding-left: 10px !important;
}
#logo-header {
    margin-left: 0 !important;
    padding-left: 0 !important;
}
#logo-emblem {
    margin-left: 0 !important;
    padding-left: 0 !important;
}

