/* TopMeistrai integration of the original Vasterad Listeo HTML/CSS.
   Vendor files are unchanged. Original template components adapted for TopMeistrai.
   Component provenance: _build/vendor/listeo and _build/listeo.py. */
:root { --primary: #a64e35; --primary-hover: #843d29; --primary-50: #faf6f2; --primary-100: #f5ece6; }
body { background: #fff; color: #666; }
body, input, button, select, textarea { font-family: 'Open Sans', Arial, sans-serif; }
a, a:visited { color: #a64e35; }
a:hover { color: #843d29; }
[hidden] { display: none !important; }
button, a, input, select, summary { touch-action: manipulation; }
:focus-visible { outline: 2px solid #a64e35; outline-offset: 3px; }
#header-container { margin: 0; position: relative; z-index: 100; }
#header { padding: 20px 0; box-shadow: none; border-bottom: 1px solid #e9e9e9; }
#header > .container { display: flex; align-items: center; gap: 24px; }
#header .left-side { display: flex; align-items: center; flex: 1; width: auto; gap: 40px; }
#header .right-side { width: auto; padding: 0; }
#logo { margin: 0; flex: 0 0 210px; width: 210px; }
#logo img { max-height: none; width: 210px; height: 40px; }
#navigation { float: none; margin: 0 0 0 auto; }
#navigation.style-1 > ul > li > a { font-family: 'Open Sans', Arial, sans-serif; font-size: 14px; padding: 8px 13px; color: #a64e35; }
#navigation.style-1 > ul > li > a.current { background: transparent; color: #333; }
.header-widget { display: flex; gap: 20px; align-items: center; margin: 0; padding: 0; border: 0; }
#header .right-side .header-widget { margin: 0; padding: 0; border: 0; }
.header-widget .sign-in { white-space: nowrap; font-size: 14px; margin: 0; color: #a64e35; }
.header-widget a.button.border { border: 0; border-left: 1px solid #e5e5e5; border-radius: 0; color: #777; padding: 7px 0 7px 20px; background: #fff; white-space: nowrap; }
.mmenu-trigger { margin: 0; }
#header .hamburger { top: 0; left: 0; width: 34px; height: 34px; padding: 0; transform: scale(.8); }
#header .hamburger-box { display: block; width: 30px; height: 24px; }
.headline { font-family: 'Open Sans', Arial, sans-serif; font-size: 25px; font-weight: 600; color: #3c3c3c; margin: 0 0 30px; }
.headline span { font-size: 15px; color: #888; margin-top: 10px; }
.tm-home-search { height: auto; background: #fff; z-index: 10; }
.tm-home-search:before { content: none; }
.tm-home-search .main-search-inner { top: auto; transform: none; padding: 74px 0 20px; }
.tm-home-search .row { display: flex; align-items: flex-start; }
.tm-home-search h1 { font-family: 'Open Sans', Arial, sans-serif; font-size: 42px; font-weight: 700; line-height: 1.25; letter-spacing: -.6px; color: #3d3d3d; margin: 14px 0 23px; }
.tm-home-search h4 { font-family: 'Open Sans', Arial, sans-serif; font-size: 17px; line-height: 1.8; font-weight: 400; max-width: 550px; margin: 0; color: #777; }
body.tm-home .main-search-input { display: flex; margin: 26px 0 0; max-width: 620px; border: 1px solid #ddd; border-radius: 4px; padding: 0; box-shadow: none; flex-wrap: nowrap; align-items: stretch; max-height: none; }
body.tm-home .main-search-input-item { flex: 1; min-width: 0; margin: 0; padding: 0 16px !important; border: 0; }
body.tm-home .main-search-input input { height: 54px; width: 100%; font-family: 'Open Sans', Arial, sans-serif; font-size: 15px; border: 0; box-shadow: none; padding: 0; margin: 0; }
body.tm-home .main-search-input button.button { height: 54px; min-width: 56px; padding: 0 20px; margin: 0; border: 0; border-radius: 0 3px 3px 0; color: #333; background: #a64e35; box-shadow: none; }
body.tm-home .main-search-input button.button:hover { background: #843d29; }
.tm-home-search .suggest { display: none; position: absolute; left: -1px; right: -57px; top: calc(100% + 2px); z-index: 30; background: #fff; border: 1px solid #ddd; border-radius: 3px; box-shadow: 0 5px 15px #0001; max-height: 300px; overflow: auto; padding: 5px; }
.tm-home-search .suggest.is-open { display: block; }
.tm-home-search .suggest a { display: flex; justify-content: space-between; gap: 12px; padding: 9px 10px; color: #444; font-size: 14px; }
.tm-home-search .suggest small { color: #999; font-size: 11px; }
.tm-home-search .suggest a:hover, .tm-home-search .suggest .is-hl { background: #faf4ef; color: #a64e35; }
.tm-home-categories { padding-top: 6px; }
.categories-boxes-container.tm-categories { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 35px; margin: 0; }
.category-small-box.cat-tile { width: auto; min-width: 0; display: flex; flex-direction: row; align-items: center; gap: 25px; margin: 0; padding: 17px 10px; background: #fff; box-shadow: none; border: 0; border-radius: 0; transform: none; text-align: left; }
.category-small-box.cat-tile i { display: block; flex: 0 0 36px; font-size: 30px; line-height: 40px; margin: 0; color: #a64e35; }
.category-small-box.cat-tile h4 { font-family: 'Open Sans', Arial, sans-serif; font-size: 15px; line-height: 1.6; font-weight: 600; margin: 0; color: #a64e35; }
.category-small-box.cat-tile:hover { background: #f7fafc; transform: none; box-shadow: none; color: #a64e35; }
.cat-tile.is-hidden { display: none; }
.tm-home-section { margin-top: 65px; }
.categories-boxes-container.tm-popular { display: flex; flex-wrap: nowrap; gap: 16px; overflow-x: auto; padding: 2px 0 16px; margin: 0; scroll-snap-type: x mandatory; }
.tm-popular .category-small-box.svc-card { flex: 0 0 210px; width: 210px; margin: 0; min-height: 160px; border: 1px solid #e7e7e7; background: #fff; border-radius: 3px; box-shadow: none; text-align: left; padding: 20px; scroll-snap-align: start; }
.tm-popular .svc-card i { color: #a64e35; font-size: 26px; line-height: 1; margin: 0 0 14px; }
.tm-popular .svc-card h4 { font-family: 'Open Sans', Arial, sans-serif; font-weight: 600; font-size: 14px; line-height: 1.55; margin: 0 0 7px; color: #555; }
.tm-popular .service-count { display: block; color: #999; font-size: 11px; }
.tm-benefits { padding-top: 32px; padding-bottom: 32px; border-top: 1px solid #eee; border-bottom: 1px solid #eee; }
.tm-benefits .icon-box-2 { text-align: left; padding: 0 12px 0 0; }
.tm-benefits .icon-box-2 i { color: #a64e35; background: transparent; box-shadow: none; font-size: 35px; width: auto; height: 44px; line-height: 44px; margin: 0 0 16px; }
.tm-benefits .icon-box-2 h3 { font-family: 'Open Sans', Arial, sans-serif; font-size: 19px; font-weight: 600; margin-bottom: 12px; }
.tm-benefits .icon-box-2 p { font-size: 14px; line-height: 1.8; color: #888; }
.listing-item-container.m-card { display: block; margin: 0 0 20px; padding: 0; background: #fff; border: 1px solid #eee; border-radius: 4px; box-shadow: none; overflow: hidden; height: auto; }
.listing-item-container.m-card .listing-item { height: 220px; }
.listing-item-container.m-card .listing-item-content { bottom: 18px; left: 18px; right: 15px; }
.listing-item-container.m-card h3 { font-size: 18px; font-weight: 600; color: #fff; line-height: 1.4; }
.listing-item-container.m-card .listing-item-content span { font-size: 12px; }
.listing-item-container.m-card .tag { background: #fff3; font-size: 10px; padding: 2px 7px; margin-bottom: 8px; }
.listing-item-container.m-card .listing-badge { background: #fff; color: #555; font-size: 10px; padding: 5px 10px; top: 12px; left: 12px; right: auto; width: auto; height: auto; transform: none; line-height: 1.5; }
.star-rating:before { content: attr(data-rating) ' ★'; color: #c18c1d; font-family: 'Open Sans', sans-serif; font-size: 14px; font-weight: 600; }
.listing-item-container.m-card .star-rating { padding: 13px 17px; height: auto; margin: 0; display: flex; gap: 9px; align-items: center; flex-wrap: wrap; }
.listing-item-container.m-card .rating-counter { font-size: 11px; color: #888; margin: 0; display: inline; }
.testimonial-box.review { margin: 0; padding: 0; border: 0; box-shadow: none; background: transparent; }
.testimonial-box.review .testimonial { background: #f8f8f8; box-shadow: none; border: 1px solid #eee; padding: 24px; text-align: left; font-size: 14px; line-height: 1.8; min-height: 140px; }
.testimonial-box.review .testimonial-author { text-align: left; margin: 22px 0 0; padding: 0 24px; }
.testimonial-box.review .testimonial-author h4 { font-size: 14px; font-family: 'Open Sans', sans-serif; font-weight: 600; }
.testimonial-box.review .testimonial-author span { font-size: 11px; color: #999; margin-top: 5px; }
.footer-links.tm-cities { width: 100%; display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px 24px; padding: 0; margin: 0; }
.footer-links.tm-cities li { margin: 0; font-size: 13px; }
#footer { margin-top: 70px; padding-top: 45px; background: #f8f8f8; border-top: 1px solid #eee; }
#footer .footer-logo { max-height: 40px; width: 210px; }
#footer h4 { font-family: 'Open Sans', Arial, sans-serif; font-size: 17px; font-weight: 600; }
#footer p, #footer a { font-size: 13px; line-height: 1.8; }
#footer .text-widget a { display: block; color: #a64e35; }
#footer .copyrights { margin-top: 30px; padding: 24px 0; font-size: 12px; }
.tm-inner .layout > *, .tm-inner .m-grid > *, .tm-inner .svc-list > * { min-width: 0; }
.tm-inner .category-small-box.cat-tile { border: 1px solid #eee; padding: 18px 12px; gap: 12px; }
.tm-inner .category-small-box.cat-tile i { flex-basis: 28px; font-size: 24px; }
.tm-inner .category-small-box.cat-tile h4 { font-size: 14px; }
.tm-inner .review-strip .testimonial-box { flex: 0 0 300px; }
.tm-inner .review-list .testimonial-box { margin-bottom: 25px; }
.tm-inner .scroll-row .category-small-box.svc-card { margin: 0; padding: 20px; width: 220px; flex: 0 0 220px; border: 1px solid #eee; box-shadow: none; }
.tm-inner .svc-card i { color: #a64e35; font-size: 26px; }
.tm-inner .svc-card h4 { font-size: 15px; }
.tm-inner .service-count { display: block; font-size: 12px; color: #999; }
.tm-inner .btn--primary { background: #a64e35; }
.tm-inner .btn--primary:hover { background: #843d29; }
.tm-inner .profile-head .avatar { display: grid; place-items: center; }
.tm-inner .input, .tm-inner .select { height: 48px; line-height: normal; }
.tm-inner .seg-radio input, .tm-inner .big-choice input { width: 1px; height: 1px; }
@media (max-width: 1239px) {
    #header > .container { gap: 15px; }
    #header .left-side { gap: 20px; }
    #logo img { width: 190px; }
    #logo { flex-basis: 190px; width: 190px; }
    #navigation.style-1 > ul > li > a { padding: 8px; font-size: 13px; }
    .header-widget { gap: 14px; }
    .header-widget .sign-in { font-size: 13px; }
}
@media (max-width: 1024px) {
    #header { padding: 14px 0; }
    #header .left-side { width: auto; }
    .mmenu-trigger { display: block; margin-left: auto; }
    #navigation { display: none; position: absolute; left: 0; right: 0; top: 68px; padding: 15px; background: #fff; border-bottom: 1px solid #ddd; box-shadow: 0 8px 15px #0001; }
    #navigation.is-open { display: block; }
    #navigation #responsive { display: flex; flex-direction: column; }
    #navigation.style-1 > ul > li { float: none; }
    #navigation.style-1 > ul > li > a { padding: 12px; }
    .header-widget .sign-in { display: none; }
    .header-widget a.button.border { padding-left: 15px; }
    .tm-home-search h1 { font-size: 35px; }
    .tm-home-search .main-search-inner { padding-top: 48px; }
    .categories-boxes-container.tm-categories { gap: 0 15px; }
}
@media (max-width: 767px) {
    #header > .container { gap: 10px; }
    #header .left-side { gap: 10px; }
    #logo { flex-basis: 165px; width: 165px; }
    #logo img { width: 165px; height: 34px; }
    .mmenu-trigger { width: 30px; height: 34px; background: transparent; }
    .header-widget { border: 0; padding: 0; }
    .hamburger { padding: 7px 0; }
    .hamburger-box { width: 25px; }
    .hamburger-inner, .hamburger-inner:before, .hamburger-inner:after { width: 25px; }
    .header-widget a.button.border { font-size: 12px; padding: 6px 0 6px 10px; }
    #navigation { top: 62px; }
    .tm-home-search .row { display: block; }
    .tm-home-search .main-search-inner { padding-top: 35px; padding-bottom: 15px; }
    .tm-home-search h1 { font-size: 32px; margin-top: 0; margin-bottom: 20px; }
    .tm-home-search h4 { font-size: 15px; line-height: 1.8; }
    body.tm-home .main-search-input { margin-top: 23px; flex-direction: row; }
    body.tm-home .main-search-input-item { width: auto; }
    body.tm-home .main-search-input input { font-size: 13px; }
    body.tm-home .main-search-input button.button { min-width: 52px; width: 52px; padding: 0; }
    .tm-home-categories { padding-top: 5px; }
    .categories-boxes-container.tm-categories { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 10px; }
    .category-small-box.cat-tile { padding: 14px 0; gap: 11px; }
    .category-small-box.cat-tile i { flex-basis: 27px; font-size: 25px; }
    .category-small-box.cat-tile h4 { font-size: 12px; line-height: 1.6; }
    .tm-home-section { margin-top: 40px; }
    .headline { font-size: 22px; margin-bottom: 24px; }
    .tm-benefits .icon-box-2 { margin: 0 0 30px; }
    .testimonial-box.review { margin-bottom: 25px; }
    .footer-links.tm-cities { grid-template-columns: repeat(2, 1fr); gap: 5px 16px; }
    .tm-inner .section > .container.layout { grid-template-columns: 1fr !important; }
    .tm-inner .svc-list a { flex-wrap: wrap; }
    .tm-inner .svc-list a .seg-tags { flex: 0 0 100%; }
    .tm-inner .results-bar > div { max-width: 100%; flex-wrap: wrap; }
    .tm-inner .results-bar .select { min-width: 0; max-width: 100%; flex: 1; }
    .tm-inner .profile-head__actions { flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; transition: none !important; } }

/* TopMeistrai composition: centred search, object choices, then the directory. */
#header { padding: 18px 0; }
#navigation.style-1 > ul > li > a { color: #424743; }
.header-widget .sign-in { color: #424743; }
.header-widget a.button.border { border: 1px solid #d9d7d2; padding: 9px 17px; border-radius: 3px; color: #424743; }
.tm-home-search { background: #f5f3ee; }
.tm-home-search .main-search-inner { padding: 58px 0 76px; }
.tm-home-search .row { display: block; }
.tm-home-search h1 { font-family: 'Raleway', Arial, sans-serif; font-size: 46px; font-weight: 600; text-align: center; color: #303b36; letter-spacing: -1.1px; line-height: 1.2; margin: 0 0 18px; }
.tm-home-search h4 { max-width: 590px; text-align: center; margin: 0 auto; font-size: 16px; line-height: 1.8; color: #747970; }
body.tm-home .main-search-input { max-width: 690px; margin: 26px auto 0; border-color: #dfdcd5; }
body.tm-home .main-search-input button.button { min-width: 170px; color: #fff; font-size: 14px; font-weight: 400; padding: 0 20px; }
body.tm-home .main-search-input button.button i { margin-right: 6px; }
.tm-home-search .suggest { right: -171px; text-align: left; }
.tm-object-cards { margin-top: -32px; position: relative; z-index: 11; }
.tm-object-cards .category-box-container { height: 210px; padding: 0; margin: 0; border-radius: 4px; overflow: hidden; }
.tm-object-cards .category-box { height: 210px; border-radius: 4px; transform: none; }
.tm-object-cards .category-box:before { background: linear-gradient(0deg, #19221ce6, #19221c00 90%); opacity: 1; }
.tm-object-cards .category-box-content { left: 23px; bottom: 24px; top: auto; transform: none; text-align: left; }
.tm-object-cards .category-box-content h3 { font-family: 'Raleway', Arial, sans-serif; font-size: 28px; font-weight: 600; margin-bottom: 7px; }
.tm-object-cards .category-box-content span { font-size: 12px; color: #fff; opacity: .85; }
.tm-object-cards .category-box-btn { right: 20px; left: auto; top: 18px; bottom: auto; transform: none; border: 1px solid #ffffff70; background: transparent; font-size: 10px; padding: 3px 8px; opacity: 1; }
.tm-object-cards .category-box:hover { transform: none; }
.categories-boxes-container.tm-categories { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 24px; }
.category-small-box.cat-tile { padding: 17px 0; gap: 13px; border-bottom: 1px solid #e8e7e2; }
.category-small-box.cat-tile i { flex-basis: 29px; font-size: 24px; color: #8b8173; }
.category-small-box.cat-tile h4 { font-size: 13px; font-weight: 400; color: #424743; }
.category-small-box.cat-tile:hover { background: transparent; }
.category-small-box.cat-tile:hover h4 { color: #a64e35; }
.headline { color: #303b36; font-family: 'Raleway', Arial, sans-serif; font-weight: 600; }
.tm-home-section { margin-top: 55px; }
.tm-popular .svc-card i, .tm-benefits .icon-box-2 i { color: #8b8173; }
.tm-benefits { background: #f8f7f3; border: 0; padding-top: 35px; padding-bottom: 35px; }
#footer { background: #f5f3ee; }
.tm-inner .category-small-box.cat-tile { padding: 18px 12px; }
@media (max-width: 1024px) {
    .tm-home-search h1 { font-size: 40px; }
    .categories-boxes-container.tm-categories { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
    #header { padding: 13px 0; }
    .header-widget a.button.border { padding: 6px 9px; font-size: 11px; }
    .tm-home-search .main-search-inner { padding: 36px 0 53px; }
    .tm-home-search h1 { font-size: 34px; letter-spacing: -.6px; }
    .tm-home-search h4 { font-size: 14px; }
    body.tm-home .main-search-input button.button { width: auto; min-width: 120px; padding: 0 11px; font-size: 12px; }
    body.tm-home .main-search-input input { font-size: 12px; }
    .tm-home-search .suggest { right: -121px; }
    .tm-object-cards { margin-top: -22px; }
    .tm-object-cards .row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0; }
    .tm-object-cards .row:before, .tm-object-cards .row:after { content: none; }
    .tm-object-cards .col-md-4 { padding: 0; min-width: 0; }
    .tm-object-cards .category-box-container, .tm-object-cards .category-box { height: 150px; }
    .tm-object-cards .category-box-content { left: 11px; right: 8px; bottom: 14px; height: 84px; }
    .tm-object-cards .category-box-content h3 { font-size: 21px; margin-bottom: 5px; }
    .tm-object-cards .category-box-content span { font-size: 9px; line-height: 1.5; display: block; }
    .tm-object-cards .category-box-btn { display: none; }
    .categories-boxes-container.tm-categories { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 18px; }
    .category-small-box.cat-tile { gap: 9px; padding: 14px 0; }
    .category-small-box.cat-tile h4 { font-size: 12px; }
    .category-small-box.cat-tile i { font-size: 22px; flex-basis: 25px; }
    .tm-home-section { margin-top: 38px; }
}
