/* Villa Teresa - Joomla 6 starter template, based on surviving Joomla 1.5 art1 assets. */
:root { color-scheme: light; --vt-plum: #330033; --vt-blue: #0253c8; --vt-border: #d5dbe5; }
*, *::before, *::after { box-sizing: border-box; }
body.villateresa-site { margin: 15px 0; padding: 0 12px; background: #fff; color: var(--vt-plum); font: 13px/1.55 Verdana, Geneva, sans-serif; }
a { color: #586071; text-decoration: none; }
a:hover, a:focus { color: var(--vt-plum); text-decoration: underline; }
img, video, iframe { max-width: 100%; height: auto; }
.visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
#body_container { max-width: 1004px; margin: 0 auto; }
#top_container { display: flex; justify-content: end; min-height: 36px; }
#top_container ul, #top_container .mod-menu, #top_container .menu { display: flex; flex-wrap: wrap; justify-content: end; gap: 0; list-style: none; margin: 0; padding: 0; }
#top_container li { list-style: none; }
#top_container a { display: inline-block; padding: 7px 11px; border-right: 1px solid #ccd1da; font-size: 12px; font-weight: 700; text-transform: uppercase; }
#top_container li:last-child a { border-right: 0; }
#top_container .active > a { color: var(--vt-plum); }
#site_header { height: 192px; position: relative; overflow: hidden; background: #b2d6e9 url('../images/header.jpg') no-repeat center top; background-size: cover; }
#site_header .header-home-link { position: absolute; inset: 0; display: block; }
#panel_container { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; margin: 10px 0 16px; min-height: 24px; }
.search_container input[type=search], .search_container input[type=text] { max-width: 180px; border: 1px solid #bbb; padding: 6px 8px; }
.search_container form { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.breadcrumb_container { font-size: 12px; }
.breadcrumb_container ol, .breadcrumb_container ul { list-style: none; display: flex; gap: 8px; padding: 0; margin: 0; flex-wrap: wrap; }
#mainarea { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; align-items: start; }
#mainarea.has-left { grid-template-columns: 185px minmax(0, 1fr); }
#mainarea.has-right { grid-template-columns: minmax(0, 1fr) 185px; }
#mainarea.has-left.has-right { grid-template-columns: 185px minmax(0, 1fr) 185px; }
#left_colm { grid-column: 1; grid-row: 1; }
#content_area { grid-column: 1; grid-row: 1; min-width: 0; }
#mainarea.has-left #content_area { grid-column: 2; }
#mainarea.has-right:not(.has-left) #right_colm { grid-column: 2; }
#mainarea.has-left.has-right #right_colm { grid-column: 3; }
#right_colm { grid-row: 1; }
.sidebar > div, .sidebar > section, .sidebar .moduletable, .sidebar .mod-menu { margin-bottom: 16px; }
.sidebar h2, .sidebar h3, .sidebar h4 { margin: 0 0 8px; color: var(--vt-plum); background: #ebedf3; padding: 9px 12px; font-size: 14px; font-weight: 700; }
.sidebar ul, .sidebar .menu, .sidebar .mod-menu { list-style: none; padding: 0 7px; margin: 0 0 16px; }
.sidebar li { padding: 7px 3px 7px 17px; border-bottom: 1px dashed #9b9b9b; background: url('../images/mainmenu.jpg') no-repeat 2px 12px; }
.sidebar li li { margin-left: 8px; }
.sidebar li a { display: inline-block; overflow-wrap: anywhere; }
.content_frame { border: 1px solid #e2e2e7; background: #fff; border-radius: 4px; overflow: hidden; }
.content_top { height: 8px; background: url('../images/content_top.jpg') center top / 100% 8px no-repeat; }
#content_main { background: url('../images/content_bg.jpg') center top / 100% auto repeat-y; }
.content_main { padding: 12px 16px 18px; min-height: 250px; }
.content_bottom { height: 15px; background: url('../images/content_bottom.jpg') center bottom / 100% 15px no-repeat; }
.content_main h1, .content_main h2, .content_main h3 { color: var(--vt-blue); line-height: 1.3; }
.content_main h1 { font-size: clamp(20px, 2.4vw, 28px); }
.content_main h2 { font-size: clamp(17px, 2vw, 22px); }
.content_main table { max-width: 100%; display: block; overflow-x: auto; }
.content_main p, .content_main li { overflow-wrap: anywhere; }
#bottommod_container { margin-top: 15px; background: #f5f6f9; border-radius: 4px; }
.bottommod_top { height: 8px; background: url('../images/bottommod_top.jpg') center top / 100% auto no-repeat; }
.bottommod_content { padding: 12px; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 20px; }
.bottommod_bottom { height: 12px; background: url('../images/bottommod_bottom.jpg') center bottom / 100% auto no-repeat; }
#footer { max-width: 1004px; margin: 22px auto 0; padding: 10px 5px 25px; border-top: 1px solid #999; font-size: 11px; color: #555; }
#footer small { font-size: inherit; }
button, input[type=submit], .btn { cursor: pointer; border: 1px solid #c9cbd0; padding: 7px 11px; color: #313f50; border-radius: 3px; background: #f3f4f7; }
button:hover, input[type=submit]:hover, .btn:hover { background: #e6e9f2; }
input, select, textarea { max-width: 100%; }
:focus-visible { outline: 2px solid #2759a8; outline-offset: 2px; }
@media (max-width: 800px) {
 body.villateresa-site { margin: 0; padding: 0 10px; font-size: 14px; }
 #top_container { justify-content: start; }
 #top_container ul, #top_container .mod-menu, #top_container .menu { justify-content: start; }
 #top_container a { padding: 9px 8px; font-size: 11px; }
 #site_header { height: clamp(145px, 23vw, 192px); background-position: center; }
 #mainarea, #mainarea.has-left, #mainarea.has-right, #mainarea.has-left.has-right { display: flex; flex-direction: column; }
 #mainarea #content_area { order: 1; width: 100%; }
 #mainarea #left_colm { order: 2; width: 100%; }
 #mainarea #right_colm { order: 3; width: 100%; }
 .sidebar ul, .sidebar .menu, .sidebar .mod-menu { display: flex; gap: 4px 15px; flex-wrap: wrap; }
 .sidebar li { flex: 1 1 170px; }
}
@media (max-width: 480px) {
 #site_header { height: 145px; background-position: 57% center; }
 .content_main { padding: 12px; }
}

/* Joomla 6 complete content package: accessible and responsive */
#top_container nav, #top_container .mod-menu {display:flex;flex-wrap:wrap;align-items:center; gap:4px;}
#top_container .mod-menu {list-style:none; margin:0;padding:0}
#top_container .mod-menu li {float:none;display:block}
#top_container .mod-menu li a{display:inline-block;white-space:nowrap;text-decoration:none}
.content_main img, #content_main img {max-width:100%;height:auto!important;object-fit:contain}
#content_main table{width:100%!important;height:auto!important;border-collapse:collapse;table-layout:auto}
#content_main td{max-width:100%;padding:5px;vertical-align:top}
#content_main {overflow-wrap:anywhere}
#content_main h1{font-size:1.5rem;line-height:1.25;margin:.35em 0 .8em}
#content_main h2{font-size:1.2rem}
#content_main a:focus-visible, #top_container a:focus-visible {outline:3px solid #337ac6;outline-offset:2px}
#content_main .vt-gallery {display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:10px;margin:18px 0}
#content_main .vt-gallery-link{background:#f5f1ed;border:1px solid #dedad6;display:block;aspect-ratio:4/3;overflow:hidden}
#content_main .vt-gallery-link img{width:100%;height:100%!important;object-fit:cover}
.vt-lightbox{position:fixed;inset:0;z-index:9999;background:rgba(12,14,20,.92);display:flex;align-items:center;justify-content:center;padding:40px}
.vt-lightbox img{max-width:95vw;max-height:87vh;object-fit:contain}
.vt-lightbox button{position:absolute;top:12px;right:16px;font-size:28px;background:#fff;border:0;border-radius:50%;width:40px;height:40px;cursor:pointer}
.vt-booking-call a,.vt-contact-actions a{display:inline-block;background:#5f496b;color:#fff!important;padding:10px 15px;margin:8px 8px 8px 0;border-radius:5px;font-weight:bold}
.vt-contact-actions{line-height:2}
@media(max-width:700px){#body_container{width:100%;max-width:100%;padding:0 12px;box-sizing:border-box}#mainarea{display:block!important;width:100%;}#left_colm,#right_colm,#content_area{width:100%!important;float:none!important;max-width:100%;}#site_header{background-size:contain;background-position:center top;height:auto;aspect-ratio:980/192;}#content_main{padding:12px!important}#top_container .mod-menu{justify-content:center}}
