/* ==========================================================================
   TravelPack.pro – Laravel front office adjustments (loaded after style.css + site-pages.css)
   ========================================================================== */

/* ---- header: language switcher next to the currency one ---- */
.top_panel .lang { width: 48px; height: 48px; position: absolute; top: 50%; margin-top: -24px; right: -150px; border-radius: 50%; }   /* mirrors .currency (legacy .user slot) */
.top_panel .lang select { width: 100%; height: 100%; border: 0; border-radius: 50%; background: rgba(152, 152, 152, 0.33); font-size: 15px; font-weight: 700; color: #fff; text-transform: uppercase; padding: 0 8px; cursor: pointer; -webkit-appearance: none; appearance: none; text-align: center; }
.top_panel .currency select { -webkit-appearance: none; appearance: none; text-align: center; }
.top_panel.inversion .lang select { background: #C7C7C7; }
.top_panel .currency select option, .top_panel .lang select option { color: #222; }
.top_panel .center .menu ul li.active a span { border-bottom: 1px solid currentColor; }
.top_panel .center .menu .lang_mob { margin-top: 20px; }
@media screen and (max-width: 1762px) { .top_panel .lang { right: 0; } }
@media screen and (max-width: 1200px) { .top_panel .lang { display: none; } }

/* ---- generic link buttons (the template only styles <button>.btn in a few contexts) ---- */
a.btn { background: var(--tp-accent, #D03000); color: #fff; height: 54px; line-height: 54px; padding: 0 30px; font-size: 19px; border-radius: 8px; display: inline-block; text-decoration: none; float: none; width: auto; white-space: nowrap; }
a.btn span { color: #fff; }
a.btn.btn--outline span { color: var(--tp-accent); }
a.btn:hover { background: #b52a00; }
a.btn.btn--outline:hover { background: rgba(208,48,0,.08); }

/* ---- home: search form (destination + hotel name + category) ---- */
.search-form.tp-search { display: flex; align-items: flex-end; gap: 30px; height: auto; min-height: 200px; padding: 50px 60px; }
.search-form.tp-search > div { width: auto; float: none; flex: 1; display: flex; flex-direction: column; }
.search-form.tp-search .label { float: none; width: auto; }
.search-form.tp-search .select_wrap select, .search-form.tp-search .input_wrap input { float: none; }
.search-form.tp-search .destination-col { flex: 1.2; margin-right: 0; }
.search-form.tp-search .label { margin-bottom: 14px; }
.search-form.tp-search .destination-col .label { margin-bottom: 14px; }
.search-form.tp-search .select_wrap, .search-form.tp-search .input_wrap { height: 58px; position: relative; background: #1140DE; border-radius: 8px; width: 100%; float: none; }
.search-form.tp-search .select_wrap select { width: 100%; height: 100%; border: 0; display: block; float: left; font-size: 19px; color: #fff; background: transparent; padding: 0 20px 0 50px; -webkit-appearance: none; appearance: none; cursor: pointer; font-family: 'Nunito', sans-serif; }
.search-form.tp-search .cat-col .select_wrap:before { display: none; }
.search-form.tp-search .cat-col .select_wrap select { padding-left: 20px; }
.search-form.tp-search .select_wrap select option { color: #222; }
.search-form.tp-search .input_wrap input { width: 100%; height: 100%; border: 0; background: transparent; font-size: 19px; color: #fff; padding: 0 20px; font-family: 'Nunito', sans-serif; }
.search-form.tp-search .input_wrap input::placeholder { color: rgba(255,255,255,.55); }
.search-form.tp-search .input_wrap input:focus, .search-form.tp-search select:focus { outline: 0; }
.search-form.tp-search .btn.button { position: relative; top: auto; right: auto; margin: 0; flex: 0 0 58px; width: 58px; height: 58px; border: 0; cursor: pointer; padding: 0; }
.modal_search .search-form.tp-search { min-height: 0; }
@media (max-width: 900px) { .search-form.tp-search { flex-wrap: wrap; padding: 30px; } .search-form.tp-search > div { flex: 1 1 100%; } }

/* ---- home: featured hotel slider (tour_item as a link) ---- */
.tour_item { text-decoration: none; background-color: #333; }
.tour_item_bottom ._info { display: flex; justify-content: space-between; align-items: center; }
.tour_item_bottom ._info_left, .tour_item_bottom ._info_right { display: flex; align-items: center; float: none; width: auto; }
.tour_item_bottom ._info_right .rating-stars { display: flex; }
.tour_item_bottom ._title { overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }

/* ---- home: destinations grid ---- */
.tp-destinations { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; }
.tp-destinations .destinations_item { width: auto; margin: 0; float: none; background-color: #333; }
.tp-destinations .destinations_item:nth-child(1), .tp-destinations .destinations_item:nth-child(2) { grid-column: span 2; }
.tp-destinations .destinations_item:nth-child(1) .sq_parent, .tp-destinations .destinations_item:nth-child(2) .sq_parent { padding-bottom: 48%; }
.tp-destinations .destinations_item._sub ._title, .tp-destinations .tp-destinations__sub ._title { font-size: 26px; }
@media (max-width: 900px) { .tp-destinations { grid-template-columns: repeat(2, 1fr); gap: 18px; } .tp-destinations .destinations_item:nth-child(1) .sq_parent, .tp-destinations .destinations_item:nth-child(2) .sq_parent { padding-bottom: 60%; } }
@media (max-width: 640px) { .tp-destinations { grid-template-columns: 1fr; } .tp-destinations .destinations_item { grid-column: span 1 !important; } }

/* ---- home: blog items as links ---- */
.blog .section_content { display: flex; gap: 2%; flex-wrap: wrap; }
.blog .section_content .blog_item { text-decoration: none; float: none; margin-right: 0; width: 32%; }
.blog_item_top { background-color: #333; }
.blog_item_top .tags { display: flex; gap: 8px; width: auto; }
.blog_item_top .tags .tag { display: inline-block; float: none; }
@media (max-width: 900px) { .blog .section_content .blog_item { width: 100%; margin-bottom: 30px; } }

/* ---- home: subscribe block as a form ---- */
.subscribe_block form.right { float: right; }

/* ---- footer ---- */
.footer_about { color: rgba(255,255,255,.55); font-size: 15px; margin: 10px 0 30px; max-width: 900px; }

/* ---- hotel page additions ---- */
.hotel-card__price small { font-size: 12px; color: var(--tp-muted); }
.hotel-rooms-table { width: 100%; border-collapse: collapse; font-size: 17px; margin-bottom: 20px; }
.hotel-rooms-table th { text-align: left; font-size: 13px; letter-spacing: .1em; text-transform: uppercase; color: var(--tp-muted); font-weight: 700; padding: 8px 16px; }
.hotel-rooms-table td { background: var(--tp-soft); padding: 14px 16px; border-bottom: 3px solid #fff; }
.hotel-rooms-table tr td:first-child { border-radius: 8px 0 0 8px; }
.hotel-rooms-table tr td:last-child { border-radius: 0 8px 8px 0; text-align: right; font-weight: 700; }
.hotel-rooms-table .room-occ { color: var(--tp-muted); font-size: 15px; }
.hotel-amenities { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0 0 10px !important; padding: 0; }
.page.static-page .left_content ul.hotel-amenities { list-style: none; margin-left: 0; }
.hotel-amenities li { background: var(--tp-soft); border-radius: 999px; padding: 6px 14px; font-size: 15px !important; width: auto; float: none; line-height: 1.5 !important; }
.hotel-amenities li::before { display: none; }
.hotel-facts b { text-align: right; }
.hotel-facts b a { color: var(--tp-ink); }
.hotel-related .hotels-grid { grid-template-columns: repeat(3, 1fr); }
.page.static-page .left_content .hotel-description p { font-size: 19px; }
.blog-article__cover { height: 380px; border-radius: 13px; margin-bottom: 26px; }
.blog-others { margin-top: 50px; }
.blog-others h2 { font-family: 'Prata', serif; font-size: 28px; margin-bottom: 20px; }
.cta-band__buttons { display: flex; gap: 12px; flex-wrap: wrap; width: auto; float: none; }
.page-body img { max-width: 100%; height: auto; border-radius: 13px; }
.hotels-filters .chip { float: none; width: auto; }
.hotels-grid, .blog-grid, .gallery-grid { float: none; }
.hotel-gallery a { float: none; }

/* ---- pagination links as <a> ---- */
.hotels-pagination .pg { float: none; }

/* ---- RTL ---- */
[dir=rtl] .top_panel .center .menu ul li { margin-right: 0; margin-left: 34px; }
[dir=rtl] .breadcrumbs, [dir=rtl] .page_head .title, [dir=rtl] .page_head .subtitle, [dir=rtl] .title_wrap .title, [dir=rtl] .title_wrap .subtitle, [dir=rtl] .footer, [dir=rtl] .hotel-card__body, [dir=rtl] .blog-card__body, [dir=rtl] .contact-info, [dir=rtl] .hotel-description, [dir=rtl] .page-body, [dir=rtl] .blog-article { text-align: right; }
[dir=rtl] .page.default .page_head .title span { margin-left: 0; margin-right: 12px; }
[dir=rtl] .page.static-page .left_content ul { margin: 12px 22px 12px 0; }
[dir=rtl] .hotel-rooms-table th { text-align: right; }
[dir=rtl] .hotel-rooms-table tr td:last-child { text-align: left; }
[dir=rtl] .hotel-facts b { text-align: left; }
[dir=rtl] .hotels-filters .chip b { margin-left: 0; margin-right: 4px; }
[dir=rtl] .most_popular .title_wrap, [dir=rtl] .destinations .title_wrap, [dir=rtl] .blog .title_wrap { padding-right: 0; padding-left: 300px; }
[dir=rtl] .most_popular .controls, [dir=rtl] .destinations .controls, [dir=rtl] .blog .controls { right: auto; left: 0; }
[dir=rtl] .hotel-card__city { left: auto; right: 16px; }
[dir=rtl] .main_slider .slider_wrap .slide .slide_content { left: auto; right: 0; text-align: right; }
[dir=rtl] .main_slider .slider_wrap .slide .slide_content .buttons .btn, [dir=rtl] .main_slider .slider_wrap .slide .slide_content .buttons .link { float: right; }
[dir=rtl] .main_slider .slider_wrap .slide .slide_content .buttons .link { margin-left: 0; margin-right: 50px; }
[dir=rtl] .main_slider .slider_wrap .slide .next_title { right: auto; left: 0; }
[dir=rtl] .blog_item_bottom .author { padding-left: 0; padding-right: 60px; }
[dir=rtl] .blog_item_bottom .author .userpic { left: auto; right: 0; }
[dir=rtl] .tour_item_top .country span { padding-left: 0; padding-right: 12px; }
[dir=rtl] .tour_item_top .country span:before { left: auto; right: 0; }
[dir=rtl] .search-form.tp-search .select_wrap select { padding: 0 50px 0 20px; }

/* ---- listing toolbar fixes (global "div {float:left;width:100%}" rule) ---- */
.hotels-toolbar > div, .city-tabs { width: auto; float: none; }
.hotels-search { width: auto; float: none; }
.hotels-search input::placeholder, .contact-form .input::placeholder, .contact-form textarea::placeholder { color: #919193; opacity: 1; }
.hotels-search input[type=search] { -webkit-appearance: none; appearance: none; }
.hotel-book > div, .hotel-facts > div { float: none; }
.hotel-book a.btn { display: block; width: 100%; padding: 0 10px; white-space: normal; }
/* slick is initialised without the rtl option by the legacy scripts.js: keep its track LTR under dir=rtl */
[dir=rtl] .slick-slide { float: left; }
[dir=rtl] .main_slider .slider_wrap, [dir=rtl] .tour-slider { direction: ltr; }
[dir=rtl] .main_slider .slider_wrap .slide .wrap_float, [dir=rtl] .tour-slider .tour_item { direction: rtl; }
.tel a, .hotel-book__contact a[href^=tel], .contacts_info .tel a { unicode-bidi: isolate; direction: ltr; display: inline-block; }
[dir=rtl] .main_slider .arrows { right: auto; left: 50%; margin-right: 0; margin-left: -720px; }
@media screen and (max-width: 1762px) { [dir=rtl] .main_slider .arrows { margin-left: -650px; } }
@media screen and (max-width: 1520px) { [dir=rtl] .main_slider .arrows { margin-left: -640px; } }
@media screen and (max-width: 1400px) { [dir=rtl] .main_slider .arrows { margin-left: -590px; } }
@media screen and (max-width: 1300px) { [dir=rtl] .main_slider .arrows { margin-left: -470px; } }
@media screen and (max-width: 1040px) { [dir=rtl] .main_slider .arrows { left: 4%; margin-left: 0; } }
.contact-info h3 { font-family: 'Prata', serif; font-size: 23px; margin: 0 0 10px; }

/* secondary button (hotel page quote link) */
a.btn.btn--ghost { background: transparent; color: #222; border: 1px solid #ccc; }
a.btn.btn--ghost:hover { background: #f4f4f4; }

/* obfuscated e-mail: parts are reversed in the source and un-reversed by CSS until JS rewrites them */
a.eml .eml-u, a.eml .eml-d { unicode-bidi: bidi-override; direction: rtl; display: inline-block; }
a.eml .eml-at::before { content: "@"; }
