/* Visit Ethiopia public travel system, based on the supplied Travlla visual reference.
   Scoped to the public layout; no administrative or staff selectors. */
@import url('https://fonts.googleapis.com/css2?family=Afacad:wght@400;500;600;700&family=Figtree:wght@400;500;600;700;800&family=Kaushan+Script&display=swap');
body.ve-travel-public {
  --vt-teal: #103c34; --vt-aqua: #faf9f4; --vt-panel: #f0f3ed; --vt-lime: #087458; --vt-orange: #d6b66c;
  --ve-green: #103c34; --ve-emerald: #103c34; --ve-gold: #d6b66c; --ve-ivory: #faf9f4; --ve-text: #172b25;
  --ve-ink: #172b25; --ve-muted: #65726c; --ve-border: #dfe5df; --ve-radius: 26px;
  background: var(--vt-aqua); color: #425b50; font: 400 16px/1.7 'Figtree', sans-serif;
}
body.ve-travel-public .bravo_wrap { background: transparent; }
body.ve-travel-public :where(h1,h2,h3,h4,h5,h6) { font-family: 'Afacad', sans-serif; color: var(--vt-teal); font-weight: 700; line-height: 1.12; letter-spacing: -.025em; }
body.ve-travel-public :where(h1) { font-size: clamp(40px,5vw,76px); }
body.ve-travel-public :where(h2) { font-size: clamp(30px,3.2vw,48px); }
body.ve-travel-public :where(a) { color: var(--vt-teal); }
body.ve-travel-public :where(button,input,select,textarea) { font-family: 'Figtree',sans-serif; }
body.ve-travel-public :where(a,button,input,select,textarea):focus-visible { outline: 3px solid #d6b66c; outline-offset: 4px; }
body.ve-travel-public .container { max-width: 1280px; }
body.ve-travel-public :is(.btn-primary,.btn-success,.btn-search,.ve-btn-primary,.ve-btn-green) { background: var(--vt-lime) !important; color: #ffffff !important; border-color: var(--vt-lime) !important; border-radius: 100px !important; box-shadow: none !important; font-weight: 700; }
body.ve-travel-public :is(.btn-primary,.btn-search,.ve-btn-primary):hover { background: #09664e !important; transform: translateY(-2px); }
body.ve-travel-public :is(.form-control,.select2-selection--single) { border: 1px solid #dfe5df; border-radius: 12px; background: #fff; color: #425b50; }
body.ve-travel-public .form-control:focus { border-color: #103c34; box-shadow: 0 0 0 3px #103c3415; }
body.ve-travel-public .bravo_header { background: #fff; border-bottom: 1px solid #f0f3ed; box-shadow: none; }
body.ve-travel-public .bravo_header .ve-header-shell { background: transparent; box-shadow: none; border-radius: 0; }
body.ve-travel-public .bravo_header .ve-brand-title { color: var(--vt-teal); }
body.ve-travel-public .bravo_topbar { background: var(--vt-teal); }
body.ve-travel-public .bravo_header .main-menu > li > a { color: var(--vt-teal); font-family: 'Figtree',sans-serif; }
/* Search and destination pages: panoramic photography, strong title, quiet filter panel. */
body.ve-travel-public :is(.vd-discovery,.ve56-page,.ve-stopover-modern,.ve-stopover-detail,.vd-detail) { background: var(--vt-aqua); color: #425b50; }
body.ve-travel-public .ve56-search-hero { background: #f0f3ed; padding: 0; position: relative; overflow: hidden; border-radius: 0; }
body.ve-travel-public .vd-search-hero-grid { position: relative; min-height: 400px; display: flex; align-items: center; padding-block: 70px; isolation: isolate; }
body.ve-travel-public .vd-search-visual { position: absolute; inset: 0 calc((1280px - 100vw)/2); width: auto; height: 100%; border-radius: 0; z-index: -2; transform: none; box-shadow: none; }
body.ve-travel-public .vd-search-visual img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
body.ve-travel-public .vd-search-visual::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,#053c45e8,#053c4580); }
body.ve-travel-public .vd-visual-caption { display: none; }
body.ve-travel-public .vd-search-copy { position: relative; max-width: 760px; padding: 0; }
body.ve-travel-public .vd-search-copy :is(h1,p,.ve56-eyebrow,.ve56-explore-link) { color: #fff; }
body.ve-travel-public .vd-search-copy h1 { font: 700 clamp(40px,4.7vw,68px)/1.05 'Afacad',sans-serif; }
body.ve-travel-public .ve56-hero-chip { background: #ffffff19; color: #fff; border: 1px solid #ffffff55; border-radius: 100px; }
body.ve-travel-public .ve56-search-shell { padding-block: 64px; background: var(--vt-aqua); }
body.ve-travel-public :is(.bravo_filter,.sidebar-filter,.filter-item,.ve-filter-panel,.ve-list-sidebar) { background: #fff; border: 1px solid #dfe5df; border-radius: 20px; box-shadow: none; }
body.ve-travel-public .bravo-list-item { background: transparent; border: 0; box-shadow: none; padding: 0; overflow: visible; }
body.ve-travel-public .topbar-search { border-bottom: 1px solid #dfe5df; padding-bottom: 22px; }
body.ve-travel-public :is(.ve56-card,.item-loop,.ve-list-card,.ve-stopover-card,.ve-package-card) { border-radius: 24px; border: 1px solid #dfe5df; background: #fff; overflow: hidden; box-shadow: 0 10px 30px #103c3408; transition: transform .3s ease,box-shadow .3s ease; }
body.ve-travel-public .ve56-card { padding: 0; }
body.ve-travel-public .ve56-card__media { border-radius: 24px 24px 0 0; }
body.ve-travel-public .ve56-card__body { padding: 24px; }
body.ve-travel-public .ve56-card__title { font: 700 26px/1.12 'Afacad',sans-serif; }
body.ve-travel-public .ve56-card__footer { border-top: 1px dashed #c6dbdc; padding-top: 18px; }
body.ve-travel-public :is(.ve56-card__price,.g-price .price,.text-price) { color: #103c34; }
body.ve-travel-public .pagination .page-link { border-radius: 50%; width: 44px; height: 44px; display: grid; place-items: center; margin: 4px; border-color: #dfe5df; color: #103c34; }
body.ve-travel-public .pagination .active .page-link { background: #103c34; color: #fff; }
/* Detail, checkout, contact, editorial and information pages. */
body.ve-travel-public :is(.bravo_content,.bravo_detail_space,.bravo_detail_hotel,.bravo_detail_tour,.bravo_detail_car,.bravo_detail_event,.bravo-news,.bravo-contact-block) { background-color: var(--vt-aqua); }
body.ve-travel-public :is(.bravo_banner,.ve-list-hero,.ve-stopover-hero) { border-radius: 0; box-shadow: none; }
body.ve-travel-public :is(.bravo_banner,.ve-list-hero,.ve-stopover-hero,.ve-editorial-hero) :is(h1,h2,.ve-editorial-title) { color: #fff !important; font-family: 'Afacad',sans-serif; text-shadow: 0 3px 18px rgba(0,0,0,0.75) !important; }
body.ve-travel-public :is(.booking-form,.booking-review,.booking-detail,.form-book,.bravo_single_book,.ve-booking-card,.ve-checkout-card,.ve-detail-card,.ve-quick-facts,.contact-form) { border: 1px solid #dfe5df; border-radius: 24px; background: #fff; box-shadow: 0 12px 36px #103c340b; }
body.ve-travel-public :is(.g-overview,.g-itinerary,.g-location,.g-rules,.g-faq,.g-review) { padding-block: 30px; border-bottom: 1px solid #dfe5df; }
body.ve-travel-public :is(.g-overview,.g-itinerary,.g-faq) h3 { font-size: 32px; }
body.ve-travel-public :is(.bravo-news .article,.bravo-news .sidebar-widget) { background: #fff; border: 1px solid #dfe5df; border-radius: 22px; overflow: hidden; }
body.ve-travel-public .bravo-news .article .header { background: transparent; }
body.ve-travel-public .ve-list-hero { min-height: 380px; }
body.ve-travel-public .ve-list-hero-card { border-radius: 26px; background: #ffffffee; color: #103c34; box-shadow: none; }
body.ve-travel-public .ve-quick-facts { margin-top: 24px; }
/* Keep a single common footer across every public page. */
body.ve-travel-public .ve-site-footer { background: #103c34; color: #e4f5f5; }
body.ve-travel-public .ve-site-footer :is(h4,h5,.ve-weather-city,.ve-weather-temp) { color: #fff; font-family: 'Afacad',sans-serif; }
body.ve-travel-public .ve-site-footer a { color: #e4f5f5; }
body.ve-travel-public .ve-footer-subscribe-card { border-radius: 28px; background: radial-gradient(circle at left center, rgba(212, 175, 55, 0.18), transparent 45%), linear-gradient(135deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.03)) !important; border: 1px solid rgba(212, 175, 55, 0.28) !important; color: #ffffff !important; box-shadow: 0 24px 48px rgba(0, 0, 0, 0.25) !important; backdrop-filter: blur(18px); }
body.ve-travel-public .ve-footer-subscribe-card :is(h4,p) { color: #ffffff !important; }
body.ve-travel-public .ve-footer-subscribe-card .btn-submit { background: linear-gradient(135deg, #d4af37 0%, #f9d976 50%, #d4af37 100%) !important; color: #072a23 !important; border-radius: 100px !important; font-weight: 800 !important; box-shadow: 0 8px 24px rgba(212, 175, 55, 0.35) !important; }
body.ve-travel-public .ve-footer-card { border-radius: 24px; }
/* Home: immersive film, oversized script heading and a separate rounded search bar. */
body.ve-travel-public.ve-home .vd-home { --ve-green:#103c34; --ve-emerald:#103c34; --ve-gold:#d6b66c; --ve-ivory:#faf9f4; --ve-text:#103c34; --ve-border:#dfe5df; background:#faf9f4; }
body.ve-travel-public.ve-home .vd-home h2 { font:700 clamp(32px,3.5vw,50px)/1.1 'Afacad',sans-serif; color:#103c34; }
body.ve-travel-public.ve-home .vd-hero { min-height:670px; padding:80px max(40px,calc((100% - 1280px)/2)) 100px; display:flex; align-items:center; }
body.ve-travel-public.ve-home .vd-hero-content { max-width:880px; width:75%; }
body.ve-travel-public.ve-home .vd-home .vd-hero h1 { font:400 clamp(62px,7.3vw,110px)/1.14 'Kaushan Script',cursive; max-width:850px; letter-spacing:-.045em; color:#fff; }
body.ve-travel-public.ve-home .vd-kicker { font:400 28px/1.3 'Kaushan Script',cursive; color:#a5e1dc; letter-spacing:0; margin-bottom:24px; }
body.ve-travel-public.ve-home .vd-hero-content > p { color:#fff; font-size:16px; max-width:530px; }
body.ve-travel-public.ve-home .vd-button-lime { background:#087458; color:#ffffff; border-radius:100px; padding:14px 28px; }
body.ve-travel-public.ve-home .veh-hero-note { display:none; }
body.ve-travel-public.ve-home .vd-cinema-media::after { background:linear-gradient(90deg,#031c27a8,#031c2730 70%),linear-gradient(0deg,#031c2766,transparent 60%); }
body.ve-travel-public.ve-home .vd-home > .veh-search { margin:42px auto 8px; width:calc(100% - 80px); max-width:1280px; border:6px solid #f0f3ed; border-radius:38px; padding:16px 24px; box-shadow:none; }
body.ve-travel-public.ve-home .veh-search-tabs { margin-bottom:8px; border-color:#f0f3ed; }
body.ve-travel-public.ve-home .veh-search-tabs .nav-link.active { background:#103c34; }
body.ve-travel-public.ve-home .bravo_wrap .veh-search .bravo_form .g-button-submit .btn.btn-primary { background:#103c34 !important; border-color:#103c34 !important; color:#fff !important; border-radius:100px; }
body.ve-travel-public.ve-home .veh-identity { border:0; padding-block:24px; }
body.ve-travel-public.ve-home .veh-identity i { background:#f0f3ed; color:#103c34; border-radius:50%; }
body.ve-travel-public.ve-home :is(.veh-section,.vd-booking > .container,.vd-events > .container,.vd-journal > .container,.vr-reading) { padding-block:70px; }
body.ve-travel-public.ve-home :is(.veh-heading,.vd-booking-heading,.vd-collection-head,.vr-heading) { position:relative; justify-content:center; text-align:center; flex-wrap:wrap; margin-bottom:36px; }
body.ve-travel-public.ve-home :is(.veh-heading,.vd-booking-heading,.vd-collection-head,.vr-heading) > div:first-child { flex-basis:100%; }
body.ve-travel-public.ve-home :is(.veh-heading,.vd-booking-heading,.vd-collection-head,.vr-heading) h2 { max-width:none; }
body.ve-travel-public.ve-home .veh-heading > .veh-link { margin-inline:0; }
body.ve-travel-public.ve-home :is(.veh-kicker,.vd-booking-eyebrow,.vd-collection-kicker) { color:#b57500; letter-spacing:.12em; }
body.ve-travel-public.ve-home .veh-destinations { gap:24px; grid-auto-columns:calc((100% - 72px)/4); padding:8px 0 28px; }
body.ve-travel-public.ve-home .veh-photo-card { aspect-ratio:3/4.5; border-radius:30px; border:0; background:#fff; box-shadow:none; }
body.ve-travel-public.ve-home .veh-photo-card  img { height:calc(100% - 76px); border-radius:30px 30px 0 0; }
body.ve-travel-public.ve-home .veh-photo-card::after { display:none; }
body.ve-travel-public.ve-home .veh-photo-card > div { inset: auto 0 0; min-height:88px; padding:18px 18px 14px; background:#fff; border-radius:28px 28px 0 0; text-align:center; }
body.ve-travel-public.ve-home .veh-photo-card h3 { color:#103c34; font:700 26px/1.1 'Afacad',sans-serif; margin:0 0 5px; }
body.ve-travel-public.ve-home .veh-photo-card p { color:#65726c; }
body.ve-travel-public.ve-home .veh-photo-card :is(.veh-photo-index,.veh-round-arrow) { display:none; }
body.ve-travel-public.ve-home .veh-track-controls button { background:#d6b66c; border-color:#d6b66c; color:#fff; }
body.ve-travel-public.ve-home .veh-route-card { border-radius:28px; }
body.ve-travel-public.ve-home .veh-story { background:#f0f3ed; border-radius:0; margin:0; }
body.ve-travel-public.ve-home .veh-story-content { background:#f0f3ed; color:#425b50; border-radius:0; }
body.ve-travel-public.ve-home .veh-story-content :is(h2,p) { color:#103c34; }
body.ve-travel-public.ve-home .veh-story-content .veh-button { background:#087458; color:#ffffff; border-radius:100px; }
body.ve-travel-public.ve-home .vd-booking { background:#f0f3ed; }
body.ve-travel-public.ve-home .vd-booking-grid { display:grid; grid-auto-flow:row; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; overflow:visible; }
body.ve-travel-public.ve-home .ve56-card { border-radius:26px; background:#fff; padding:0; }
body.ve-travel-public.ve-home .ve56-card__media { border-radius:26px 26px 0 0; }
body.ve-travel-public.ve-home .ve56-card__title { font:700 25px/1.15 'Afacad',sans-serif; }
body.ve-travel-public.ve-home .veh-stopover { background:#103c34; margin:48px auto; width:calc(100% - 80px); max-width:1280px; border-radius:36px; overflow:hidden; }
body.ve-travel-public.ve-home .veh-stopover-copy { padding:48px; }
body.ve-travel-public.ve-home .veh-stopover h2 { color:#fff; }
body.ve-travel-public.ve-home .veh-stopover .veh-button { background:#087458; color:#ffffff; }
body.ve-travel-public.ve-home .veh-information-grid a { background:#f0f3ed; border:0; border-radius:22px; }
body.ve-travel-public.ve-home .veh-heritage { background:#faf9f4; }
body.ve-travel-public.ve-home .veh-culture { background:#103c34; }
/* Motion enhances the content without hiding it if JavaScript is unavailable. */
@media (prefers-reduced-motion:no-preference) {
  body.ve-travel-public .vt-visible { animation:vt-enter .65s ease-out; }
  @keyframes vt-enter { from { opacity:.8; translate:0 14px; } to { opacity:1; translate:0 0; } }
}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  body.ve-travel-public :is(.ve56-card,.item-loop,.ve-list-card):hover { transform:translateY(-6px); box-shadow:0 18px 38px #103c3418; }
}
@media (max-width:1279px) {
  body.ve-travel-public .vd-search-visual { inset:0; }
}
@media (max-width:991px) {
  body.ve-travel-public.ve-home .vd-booking-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body.ve-travel-public.ve-home .veh-destinations { grid-auto-columns:calc((100% - 48px)/3); }
  body.ve-travel-public .vd-search-hero-grid { min-height:340px; padding:50px 28px; }
}
@media (max-width:767px) {
  body.ve-travel-public .container { padding-inline:20px; }
  body.ve-travel-public.ve-home .vd-hero { min-height:520px; padding:48px 24px 90px; }
  body.ve-travel-public.ve-home .vd-hero-content { width:100%; }
  body.ve-travel-public.ve-home .vd-home .vd-hero h1 { font-size:clamp(48px,12vw,76px); }
  body.ve-travel-public.ve-home .vd-home > .veh-search { width:calc(100% - 32px); margin-top:24px; padding:14px; border-width:4px; border-radius:26px; }
  body.ve-travel-public.ve-home :is(.veh-section,.vd-booking > .container,.vd-events > .container,.vd-journal > .container,.vr-reading) { padding-block:42px; }
  body.ve-travel-public.ve-home .veh-destinations { grid-auto-columns:78%; }
  body.ve-travel-public.ve-home .vd-booking-grid { grid-template-columns:1fr; }
  body.ve-travel-public.ve-home .veh-stopover { width:calc(100% - 32px); border-radius:28px; }
  body.ve-travel-public.ve-home .veh-stopover-copy { padding:32px 24px; }
  body.ve-travel-public .ve56-search-shell { padding-block:32px; }
  body.ve-travel-public .vd-search-copy h1 { font-size:40px; }
}
@media (prefers-reduced-motion:reduce) {
  body.ve-travel-public *,body.ve-travel-public *::before,body.ve-travel-public *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}
body.ve-travel-public .vt-layout-switch { display:flex; justify-content:flex-end; gap:8px; margin:0 0 26px; }
body.ve-travel-public .vt-layout-switch a { display:inline-flex; gap:8px; align-items:center; padding:10px 18px; border-radius:100px; border:1px solid #dfe5df; background:#fff; color:#103c34; font-size:13px; }
body.ve-travel-public .vt-layout-switch a[aria-current] { background:#103c34; color:#fff; }
body.ve-travel-public :is(.vt-page-banner,.ve56-hotel-search .ve56-search-hero) { padding:85px 0; background:linear-gradient(90deg,#063b44dc,#063b4480),url('/themes/mytravel/img/generated/home-lalibela-hero-v2.png') center/cover; color:#fff; margin-bottom:40px; }
body.ve-travel-public :is(.vt-page-banner,.ve56-hotel-search .ve56-search-hero) :is(h1,p,a,.ve56-eyebrow) { color:#fff; }
body.ve-travel-public .vt-page-banner h1 { margin:14px 0; }
body.ve-travel-public .bravo_form_search_map { background:#f0f3ed; padding:20px; }
body.ve-travel-public .vd-map .results_item { background:#faf9f4; }
@media(max-width:767px) { body.ve-travel-public :is(.vt-page-banner,.ve56-hotel-search .ve56-search-hero) { padding:48px 0; } }
body.ve-travel-public .fa { font-family:FontAwesome; font-weight:normal; }
body.ve-travel-public .ve56-search-hero { margin-top:0; }
body.ve-travel-public .vd-search-hero-grid { padding-inline:32px; }
body.ve-travel-public .ve56-search-hero .vd-search-visual { border-radius:0; }
body.ve-travel-public .ve56-search-hero .ve56-explore-link { background:#087458; color:#ffffff; }
/* CMS embeds may contain desktop-sized width attributes. */
body.ve-travel-public .iframe_map { width:100%; max-width:100%; overflow:hidden; }
body.ve-travel-public .iframe_map iframe { display:block; width:100%; max-width:100%; border:0; }
body.ve-travel-public.ve-home .veh-story { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:48px; padding:70px max(40px,calc((100% - 1280px)/2)); }
body.ve-travel-public.ve-home .veh-story  img { position:static; grid-column:2; grid-row:1; width:100%; max-width:480px; height:auto; aspect-ratio:1; object-fit:contain; border:14px solid #fff; border-radius:50%; margin:auto; box-shadow:0 24px 60px #103c3412; }
body.ve-travel-public.ve-home .veh-story-content { grid-column:1; grid-row:1; width:100%; margin:0; padding:0; }
@media(max-width:767px) {
 body.ve-travel-public.ve-home .veh-story { grid-template-columns:1fr; gap:32px; padding:42px 24px; }
 body.ve-travel-public.ve-home .veh-story  img { grid-column:1; grid-row:2; max-width:340px; }
 body.ve-travel-public .iframe_map iframe { height:320px; }
}
/* The existing stopover module uses !important presentation rules. Match its
   specificity here so public pages share the theme without altering staff views. */
body.ve-travel-public.ve-stopover-shell { --ve-stopover-ink:#103c34; --ve-stopover-green:#103c34; --ve-stopover-gold:#d6b66c; background:#faf9f4 !important; }
body.ve-travel-public.ve-stopover-shell .ve-listing-page { background:#faf9f4 !important; }
body.ve-travel-public.ve-stopover-shell .ve-listing-page :is(h1,h2,h3),
body.ve-travel-public .ve-stopover-detail :is(h1,h2,h3),
body.ve-travel-public .stopover-welcome-page :is(h1,h2,h3) { font-family:'Afacad',sans-serif !important; letter-spacing:-.025em !important; }
body.ve-travel-public.ve-stopover-shell .ve-listing-page .ve-list-hero h1 { font-size:clamp(42px,5vw,70px) !important; line-height:1.08 !important; }
body.ve-travel-public.ve-stopover-shell .ve-listing-page .ve-list-hero-card { background:#faf9f4ee !important; border:1px solid #dfe5df !important; color:#103c34 !important; box-shadow:none !important; border-radius:28px !important; }
body.ve-travel-public.ve-stopover-shell .ve-listing-page .ve-list-hero-card :is(strong,b,small,span) { color:#103c34 !important; }
body.ve-travel-public.ve-stopover-shell .ve-listing-page :is(.ve-filter-card,.ve-result-card) { background:#fff !important; border:1px solid #dfe5df !important; border-radius:26px !important; box-shadow:0 12px 30px #103c340a !important; }
body.ve-travel-public.ve-stopover-shell .ve-listing-page .ve-result-body h2 { color:#103c34 !important; font-size:30px !important; }
body.ve-travel-public.ve-stopover-shell .ve-listing-page :is(.ve-result-book,.ve-list-cart-checkout) { background:#087458 !important; color:#ffffff !important; border-radius:100px !important; }
body.ve-travel-public .stopover-welcome-page { background:#faf9f4; color:#425b50; }
body.ve-travel-public .stopover-welcome-page .stopover-hero h1 { font-size:clamp(48px,5.5vw,80px); }
body.ve-travel-public .stopover-welcome-page .stopover-kicker { color:#b5e4de; }
body.ve-travel-public .bravo-more-menu i { color:#fff; }

/* Brand-preserving repair: independent image boxes prevent original photo
   dimensions from setting grid row heights. Applies to real shared card markup. */
body.ve-travel-public.ve-home .vd-home { background:#faf9f4; }
body.ve-travel-public.ve-home .vd-home::before { display:none; }
body.ve-travel-public.ve-home .vd-hero { min-height:560px; width:calc(100% - 40px); max-width:1440px; padding:64px max(32px,calc((100% - 1280px)/2)) 88px; border-radius:24px; box-shadow:0 12px 34px #103c3414; }
body.ve-travel-public.ve-home .vd-hero-content { margin:0; padding:0; width:min(760px,100%); }
body.ve-travel-public.ve-home .vd-home .vd-hero h1 { font-family:'Figtree',sans-serif !important; font-size:clamp(42px,4.8vw,68px) !important; line-height:1.08 !important; font-weight:750 !important; letter-spacing:-.04em !important; }
body.ve-travel-public.ve-home .vd-kicker { font:600 11px/1.5 'Figtree',sans-serif; letter-spacing:.16em; color:#e5d4a0; }
body.ve-travel-public.ve-home .vd-button-lime { background:#087458; color:#fff !important; border-color:#087458 !important; box-shadow:none; }
body.ve-travel-public.ve-home .vd-home > .veh-search { position:relative; inset:auto; transform:none; width:calc(100% - 64px); max-width:1200px; margin:24px auto 0; border:1px solid #dfe5df; border-radius:18px; padding:20px; box-shadow:0 8px 24px #103c3408; }
body.ve-travel-public.ve-home .veh-search .bravo_form { width:100%; }
body.ve-travel-public.ve-home :is(.veh-section,.vd-booking,.vd-events,.vd-journal,.vr-reading) { box-sizing:border-box; width:calc(100% - 64px); max-width:1280px; margin-inline:auto; padding-block:48px; }
body.ve-travel-public.ve-home :is(.vd-booking,.vd-events,.vd-journal) > .container { width:100%; max-width:none; padding:0; }
body.ve-travel-public.ve-home .vd-booking { background:#f0f3ed; border-radius:22px; padding:36px 24px; }
body.ve-travel-public.ve-home :is(.vd-booking-grid,.vd-events-grid) { display:grid; grid-auto-flow:row; grid-auto-columns:auto; grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px; align-items:stretch; overflow:visible; }
body.ve-travel-public.ve-home .vd-booking-grid-item { display:block; min-width:0; min-height:0; }
body.ve-travel-public .ve56-card { display:flex; flex-direction:column; height:100%; min-width:0; padding:0; border:1px solid #dfe5df; border-radius:18px; overflow:hidden; background:#fff; box-shadow:0 6px 20px #103c3408; }
body.ve-travel-public .ve56-card .ve56-card__media { position:relative; display:block; flex:0 0 auto; width:100%; height:auto; min-height:0; max-height:none; aspect-ratio:4/3; overflow:hidden; border-radius:18px 18px 0 0; padding:0; }
body.ve-travel-public .ve56-card .ve56-card__media > a:first-child { position:absolute; inset:0; display:block; width:100%; height:100%; }
body.ve-travel-public .ve56-card .ve56-card__media img { position:absolute; inset:0; display:block; width:100%; height:100%; max-width:100%; max-height:100%; object-fit:cover; object-position:center; }
body.ve-travel-public .ve56-card .ve56-card__body { display:flex; flex-direction:column; flex:1; min-height:0; gap:12px; padding:20px; }
body.ve-travel-public .ve56-card .ve56-card__title { display:block; font:700 20px/1.3 'Figtree',sans-serif; color:#103c34; overflow-wrap:anywhere; margin:0; }
body.ve-travel-public .ve56-card .ve56-card__meta { display:flex; flex-wrap:wrap; gap:5px; font-size:12px; line-height:1.5; color:#65726c; }
body.ve-travel-public .ve56-specs { display:flex; flex-wrap:wrap; gap:8px 12px; font-size:12px; color:#65726c; }
body.ve-travel-public .ve56-card .ve56-card__footer { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; margin-top:auto; padding-top:14px; border-top:1px solid #edf0ea; }
body.ve-travel-public .ve56-price { display:grid; gap:3px; }
body.ve-travel-public .ve56-price small { font-size:11px; color:#65726c; }
body.ve-travel-public .ve56-price strong { font-size:20px; color:#103c34; }
body.ve-travel-public .ve56-card__cta { color:#087458; font-size:12px; font-weight:700; }
body.ve-travel-public .ve56-badges { position:absolute; z-index:2; top:12px; left:12px; display:flex; gap:6px; }
body.ve-travel-public .ve56-badge { background:#103c34; color:#fff; border-radius:8px; padding:4px 8px; font-size:10px; }
body.ve-travel-public .ve56-card .service-wishlist { position:absolute; z-index:3; right:12px; top:12px; }
body.ve-travel-public.ve-home .veh-destinations { display:grid; grid-auto-flow:row; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:22px; }
body.ve-travel-public.ve-home .veh-destinations > .veh-photo-card:nth-child(n) { display:block; min-height:0; height:330px; aspect-ratio:auto; border-radius:18px; box-shadow:0 6px 20px #103c3408; }
body.ve-travel-public.ve-home .veh-photo-card::before { display:none; }
body.ve-travel-public.ve-home .veh-photo-card  img { height:240px; object-fit:cover; border-radius:18px 18px 0 0; }
body.ve-travel-public.ve-home .veh-photo-card > div { min-height:90px; border-radius:0; padding:16px; }
body.ve-travel-public.ve-home .veh-photo-card h3 { color:#103c34 !important; font-size:19px !important; line-height:1.25 !important; }
body.ve-travel-public.ve-home .veh-photo-card p { color:#65726c !important; font-size:12px; }
body.ve-travel-public.ve-home .veh-story { width:calc(100% - 64px); max-width:1280px; margin:24px auto; padding:40px; min-height:0; border-radius:22px; background:#f0f3ed; gap:40px; }
body.ve-travel-public.ve-home .veh-story::before,body.ve-travel-public.ve-home .veh-story::after { display:none; }
body.ve-travel-public.ve-home .veh-story-content { background:transparent; color:#425b50; min-width:0; }
body.ve-travel-public.ve-home .veh-story-content h2 { color:#103c34 !important; }
body.ve-travel-public.ve-home .veh-story-content p { color:#65726c !important; }
body.ve-travel-public.ve-home .veh-story  img { max-width:340px; border-radius:22px; border:0; box-shadow:none; }
body.ve-travel-public.ve-home :is(.veh-heading,.vd-booking-heading,.vd-collection-head,.vr-heading) h2 { font:700 clamp(26px,2.6vw,36px)/1.2 'Figtree',sans-serif !important; letter-spacing:-.03em !important; }
body.ve-travel-public.ve-home .veh-stopover { background:#103c34; border-radius:22px; box-shadow:0 8px 24px #103c3410; }
body.ve-travel-public.ve-home .veh-stopover h2 { color:#fff !important; }
@media(max-width:991px) {
 body.ve-travel-public.ve-home :is(.vd-booking-grid,.vd-events-grid) { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:767px) {
 body.ve-travel-public.ve-home .vd-hero { width:calc(100% - 24px); padding:56px 24px 80px; min-height:480px; }
 body.ve-travel-public.ve-home .vd-home > .veh-search { width:calc(100% - 32px); padding:16px; }
 body.ve-travel-public.ve-home :is(.veh-section,.vd-events,.vd-journal,.vr-reading,.vd-booking) { width:calc(100% - 32px); padding-block:32px; }
 body.ve-travel-public.ve-home .vd-booking { padding:24px 16px; }
 body.ve-travel-public.ve-home :is(.vd-booking-grid,.vd-events-grid) { display:grid; grid-template-columns:1fr; grid-auto-flow:row; overflow:visible; }
 body.ve-travel-public.ve-home .veh-destinations { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
 body.ve-travel-public.ve-home .veh-destinations > .veh-photo-card:nth-child(n) { height:280px; }
 body.ve-travel-public.ve-home .veh-photo-card  img { height:180px; }
 body.ve-travel-public.ve-home .veh-photo-card > div { min-height:100px; padding:12px; }
 body.ve-travel-public.ve-home .veh-photo-card h3 { font-size:16px !important; }
 body.ve-travel-public.ve-home .veh-story { width:calc(100% - 32px); padding:28px; grid-template-columns:1fr; }
}
@media(prefers-reduced-motion:no-preference) {
 body.ve-travel-public .ve56-card:hover { transform:translateY(-3px); box-shadow:0 10px 24px #103c3410; }
}
body.ve-travel-public.ve-home .veh-skip-link { position:fixed; z-index:10000; top:8px; left:16px; transform:translateY(-150%); background:#fff; padding:12px 18px; }
body.ve-travel-public.ve-home .veh-skip-link:focus { transform:none; }
body.ve-travel-public.ve-home .veh-story .veh-button { color:#fff; }
body.ve-travel-public.ve-home .veh-stopover .veh-button { color:#fff; }
@media(max-width:767px) {
 body.ve-travel-public.ve-home .veh-search .bravo_form { display:flex; flex-direction:column; align-items:stretch; gap:12px; }
 body.ve-travel-public.ve-home .veh-search .g-field-search { width:100%; flex:auto; }
 body.ve-travel-public.ve-home .veh-search .g-field-search > .row { margin:0; }
 body.ve-travel-public.ve-home .veh-search .g-field-search > .row > div { flex:0 0 100%; max-width:100%; padding:10px 0; }
 body.ve-travel-public.ve-home .veh-search .g-button-submit { align-self:stretch !important; width:100%; }
 body.ve-travel-public.ve-home .veh-search .g-button-submit .btn { width:100%; margin:0 !important; }
 body.ve-travel-public.ve-home .veh-search .form-control { max-width:100%; }
}
body.ve-travel-public .vd-event-date { position:absolute; z-index:3; top:12px; right:12px; display:grid; justify-items:center; min-width:48px; padding:8px; border-radius:10px; background:#fff; color:#103c34; box-shadow:0 4px 12px #103c3412; }
body.ve-travel-public .vd-event-date strong { font-size:20px; line-height:1; }
body.ve-travel-public .vd-event-date span { font-size:11px; margin-top:4px; }
body.ve-travel-public.ve-home .veh-search-tabs .nav-link.active { color:#fff !important; background:#103c34 !important; }
body.ve-travel-public.ve-home .veh-stopover .veh-button,
body.ve-travel-public.ve-home .veh-story .veh-button { color:#fff !important; background:#087458 !important; border-color:#087458 !important; }
body.ve-travel-public.ve-home .vd-cinema-bottom { position:absolute; inset: auto 28px 22px; z-index:4; display:flex; justify-content:space-between; align-items:center; }
@media(max-width:767px) { body.ve-travel-public.ve-home .vd-cinema-bottom { display:none; } }
/* The opening film occupies the full viewport, edge to edge. */
body.ve-travel-public.ve-home .vd-hero {
 width:100%; max-width:none; min-height:100svh; margin:0; border-radius:0;
 box-shadow:none; border:0; display:flex; align-items:center;
 padding:80px max(28px,calc((100% - 1280px)/2)) 100px;
}
body.ve-travel-public.ve-home .vd-cinema-media { border-radius:0; }
body.ve-travel-public.ve-home :is(.vd-cinema-media  img,.vd-cinema-video) {
 width:100%; height:100%; object-fit:cover; transform:none; filter:none;
}
body.ve-travel-public.ve-home .veh-hero-photos { position:absolute; inset:0; opacity:1; pointer-events:none; }
body.ve-travel-public.ve-home .veh-banner-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .6s ease; }
body.ve-travel-public.ve-home .veh-banner-photo.is-active { opacity:1; }
body.ve-travel-public.ve-home .vd-cinema-media::after { z-index:1; pointer-events:none; }
body.ve-travel-public.ve-home .vd-cinema-bottom { display:flex; bottom:24px; }
body.ve-travel-public.ve-home .vd-cinema-controls button { width:44px; height:44px; border:1px solid #ffffff80; border-radius:50%; background:#103c3480; color:#fff; }
@media(max-width:767px) {
 body.ve-travel-public.ve-home .vd-hero { min-height:100svh; width:100%; margin:0; padding:72px 24px 100px; border-radius:0; }
 body.ve-travel-public.ve-home .vd-cinema-bottom { inset-inline:24px; }
 body.ve-travel-public.ve-home .vd-cinema-caption,body.ve-travel-public.ve-home .vd-video-label { display:none; }
 body.ve-travel-public.ve-home .vd-cinema-controls { margin-inline-start:auto; }
}
/* Editorial banner: a full-width film, readable typography and a quiet planner. */
body.ve-travel-public.ve-home .vd-hero--editorial {
 min-height:clamp(670px,82svh,840px); height:auto; flex-direction:column;
 align-items:stretch; justify-content:flex-end; gap:20px;
 padding:70px max(28px,calc((100% - 1280px)/2)) 24px;
}
body.ve-travel-public.ve-home .vd-hero--editorial .vd-hero-content { flex:1 0 auto; width:min(780px,100%); margin:0; padding:0 0 12px; }
body.ve-travel-public.ve-home .vd-home .vd-hero--editorial h1 {
 font-family:Georgia,'Times New Roman',serif !important; font-size:clamp(54px,6vw,78px) !important;
 font-weight:400 !important; line-height:1.04 !important; letter-spacing:-.045em !important;
 max-width:12ch; margin:14px 0 16px !important; text-wrap:balance;
}
body.ve-travel-public.ve-home .vd-hero--editorial .vd-kicker { color:#e6ce91; font-size:10px; letter-spacing:.22em; }
body.ve-travel-public.ve-home .vd-hero--editorial .vd-hero-content > p { font-size:15px; line-height:1.8; max-width:48ch; color:#f5f4eb !important; }
body.ve-travel-public.ve-home .vd-hero--editorial .veh-hero-signature { font-family:Georgia,serif; font-style:italic; font-size:23px; color:#e6ce91; transform:none; margin-bottom:18px; }
body.ve-travel-public.ve-home .vd-hero--editorial .vd-cinema-media::after { background:linear-gradient(90deg,#061f19d9 0%,#061f1980 44%,#061f1910 80%),linear-gradient(0deg,#061f19ad,transparent 55%); }
body.ve-travel-public.ve-home .vd-hero--editorial .vd-cinema-media::before { background:none; }
body.ve-travel-public.ve-home .vd-hero--editorial .vd-cinema-top { inset:28px max(28px,calc((100% - 1280px)/2)) auto; font-size:9px; letter-spacing:.2em; color:#ffffffb3; }
body.ve-travel-public.ve-home .vd-hero--editorial .vd-cinema-actions { margin-top:26px; gap:14px; }
body.ve-travel-public.ve-home .vd-hero--editorial :is(.vd-button,.vd-watch-film) { border-radius:6px !important; min-height:48px; padding:0 18px; font-size:12px; font-weight:600; box-shadow:none; }
body.ve-travel-public.ve-home .vd-hero--editorial .vd-watch-film { order:2; background:transparent; border-color:#ffffff70; backdrop-filter:none; }
body.ve-travel-public.ve-home .vd-hero--editorial .vd-watch-film span { width:26px; height:26px; animation:none; }
body.ve-travel-public.ve-home .vd-hero--editorial .vd-button-glass { order:3; border:0; padding-inline:4px; background:transparent; backdrop-filter:none; }
body.ve-travel-public.ve-home .vd-hero--editorial .vd-cinema-bottom {
 position:relative; inset:auto; display:flex; flex-wrap:wrap; gap:16px; justify-content:flex-start;
 padding:16px 0 0; border-top:1px solid #ffffff40; width:100%; pointer-events:auto;
}
body.ve-travel-public.ve-home .vd-hero--editorial .vd-cinema-caption { display:flex; margin-right:auto; gap:5px; }
body.ve-travel-public.ve-home .vd-hero--editorial .vd-cinema-caption > span { color:#e6ce91; letter-spacing:.2em; font-size:8px; }
body.ve-travel-public.ve-home .vd-hero--editorial .vd-cinema-caption strong { font-size:12px; font-weight:500; }
body.ve-travel-public.ve-home .vd-hero--editorial .veh-scene-nav { position:static; display:flex; gap:12px; order:2; }
body.ve-travel-public.ve-home .vd-hero--editorial .veh-scene-nav button { width:44px; height:44px; background:transparent !important; border-color:#ffffff70 !important; }
body.ve-travel-public.ve-home .vd-hero--editorial .vd-cinema-controls { margin:0; order:3; }
body.ve-travel-public.ve-home .vd-hero--editorial .vd-video-label { display:none; }
body.ve-travel-public.ve-home .vd-hero--editorial .veh-scene-dots { order:1; margin-right:16px; }
body.ve-travel-public.ve-home .vd-hero--editorial .veh-scene-dots button { width:18px; height:24px; background:transparent !important; border-radius:0 !important; position:relative; }
body.ve-travel-public.ve-home .vd-hero--editorial .veh-scene-dots button::after { content:''; position:absolute; inset:10px 0; background:#ffffff50; border-radius:2px; }
body.ve-travel-public.ve-home .vd-hero--editorial .veh-scene-dots button.is-active { width:32px; }
body.ve-travel-public.ve-home .vd-hero--editorial .veh-scene-dots button.is-active::after { background:#e6ce91; }
body.ve-travel-public.ve-home .vd-hero--editorial > .veh-search {
 position:relative; inset:auto; transform:none; flex:0 0 auto; align-self:stretch;
 width:100%; max-width:none; margin:0; padding:18px 24px 12px;
 border:1px solid #e5e7de; border-radius:10px; background:#faf9f4;
 box-shadow:0 16px 38px #031f1929; color:#172b25; z-index:6; backdrop-filter:none;
}
body.ve-travel-public.ve-home .vd-hero--editorial .veh-search-tabs { margin:0 0 8px !important; padding:0 0 10px; border-bottom:1px solid #103c341a; gap:8px; }
body.ve-travel-public.ve-home .vd-hero--editorial .veh-search-tabs .nav-link { border-radius:5px; padding:8px 16px !important; font-size:12px; }
body.ve-travel-public.ve-home .vd-hero--editorial .veh-search-tabs .nav-link i { animation:none; }
body.ve-travel-public.ve-home .vd-hero--editorial .veh-search :is(.tab-content,.bravo_form,.form-group) { background:transparent !important; }
body.ve-travel-public.ve-home .vd-hero--editorial .veh-search .bravo_form { align-items:center; gap:16px; }
body.ve-travel-public.ve-home .vd-hero--editorial .veh-search .g-field-search { flex:1; min-width:0; }
body.ve-travel-public.ve-home .vd-hero--editorial .veh-search .g-button-submit { flex-shrink:0; }
body.ve-travel-public.ve-home .vd-hero--editorial .veh-search .g-field-search > .row { margin:0; }
body.ve-travel-public.ve-home .vd-hero--editorial .veh-search .g-field-search > .row > div { min-width:0; }
body.ve-travel-public.ve-home .vd-hero--editorial .veh-search .g-button-submit .btn { border-radius:6px !important; min-height:52px; padding-inline:24px; }
body.ve-travel-public.ve-home .veh-identity { margin-top:0; }
@media(max-width:991px) {
 body.ve-travel-public.ve-home .vd-hero--editorial { min-height:0; padding:78px 24px 24px; }
 body.ve-travel-public.ve-home .vd-hero--editorial > .veh-search { padding:16px; }
}
@media(max-width:767px) {
 body.ve-travel-public.ve-home .vd-hero--editorial { min-height:0; gap:22px; padding:70px 20px 20px; }
 body.ve-travel-public.ve-home .vd-home .vd-hero--editorial h1 { font-size:clamp(46px,10.5vw,68px) !important; max-width:13ch; }
 body.ve-travel-public.ve-home .vd-hero--editorial .vd-cinema-top { inset:24px 20px auto; }
 body.ve-travel-public.ve-home .vd-hero--editorial .vd-cinema-top span:last-child { display:none; }
 body.ve-travel-public.ve-home .vd-hero--editorial .vd-hero-content { padding-bottom:8px; }
 body.ve-travel-public.ve-home .vd-hero--editorial .vd-cinema-actions { gap:10px; }
 body.ve-travel-public.ve-home .vd-hero--editorial .veh-scene-dots { display:none; }
 body.ve-travel-public.ve-home .vd-hero--editorial .vd-cinema-bottom { gap:12px; }
 body.ve-travel-public.ve-home .vd-hero--editorial .veh-scene-nav { gap:8px; }
 body.ve-travel-public.ve-home .vd-hero--editorial .veh-search .bravo_form { align-items:stretch; }
 body.ve-travel-public.ve-home .vd-hero--editorial .veh-search .g-field-search { flex:auto; width:100%; }
 body.ve-travel-public.ve-home .vd-hero--editorial .veh-search-tabs { overflow-x:auto; flex-wrap:nowrap; gap:4px; }
 body.ve-travel-public.ve-home .vd-hero--editorial .veh-search-tabs .nav-link { white-space:nowrap; padding:8px 10px !important; }
}

/* Ethiopian-inspired woven geometry and highland contour artwork.
   Decorative only: never intercepts controls or replaces CMS photography. */
body.ve-travel-public { --ve-art-line:url('../images/brand/ethiopia-woven-line.svg'); --ve-art-contours:url('../images/brand/highland-contours.svg'); }
body.ve-travel-public .vd-hero::after { content:''; position:absolute; inset:0 0 auto; height:10px; background-image:var(--ve-art-line); background-size:96px 24px; background-position:center; opacity:.55; pointer-events:none; z-index:3; }
body.ve-travel-public :is(.veh-story,.ve56-search-shell,.vr-reading) { background-image:var(--ve-art-contours); background-position:right top; background-repeat:no-repeat; background-size:540px auto; }
body.ve-travel-public.ve-home .veh-story { background-image:var(--ve-art-contours); }
body.ve-travel-public .ve-site-footer { border-top:1px solid #d6b66c55; }
body.ve-travel-public .ve-site-footer::after { background-image:var(--ve-art-line); background-repeat:repeat-x; background-position:top; background-size:144px 36px; opacity:.25; mask-image:none; }
body.ve-travel-public :is(.veh-heading,.vd-booking-heading,.vd-collection-head,.vr-heading) h2::after { content:''; display:block; width:108px; height:12px; margin:18px auto 0; background-image:var(--ve-art-line); background-size:48px 12px; opacity:.72; }
body.ve-travel-public .ve56-card { border-color:#103c3412; box-shadow:0 3px 8px #103c3405,0 10px 28px -20px #103c3438; }
body.ve-travel-public .ve56-card__media img { transition:transform .55s ease; }
body.ve-travel-public :is(.ve56-card__cta,.veh-link,.vd-collection-link) { text-underline-offset:5px; }
body.ve-travel-public :is(.ve56-card__cta,.veh-link,.vd-collection-link):focus-visible { border-radius:4px; }
body.ve-travel-public .ve56-card__cta:hover { text-decoration:underline; }
body.ve-travel-public .ve56-card__title { text-wrap:pretty; }
body.ve-travel-public :is(.veh-search,.booking-form,.ve-filter-card) { border-color:#103c3420; }
body.ve-travel-public .veh-search:focus-within { box-shadow:0 0 0 3px #d6b66c25,0 14px 36px #062a2424; }
body.ve-travel-public .form-control::placeholder { color:#738079; opacity:1; }
body.ve-travel-public .ve56-card__media .service-wishlist { min-width:40px; min-height:40px; }
body.ve-travel-public .veh-track-controls button:disabled { opacity:.4; cursor:default; }
body.ve-travel-public :is(.veh-track-controls,.veh-scene-nav)[hidden] { display:none; }
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
 body.ve-travel-public .ve56-card:hover .ve56-card__media img { transform:scale(1.035); }
 body.ve-travel-public .veh-identity a:hover i { transform:translateY(-3px); }
}
@media(max-width:767px) {
 body.ve-travel-public :is(.veh-story,.ve56-search-shell,.vr-reading) { background-size:300px auto; }
 body.ve-travel-public :is(.veh-heading,.vd-booking-heading,.vd-collection-head,.vr-heading) h2::after { margin-top:12px; }
}
@media(prefers-reduced-motion:reduce) { body.ve-travel-public .ve56-card__media img { transition:none; } }

/* Keep the CMS-selected hotel list layout as polished as the grid cards. */
body.ve-travel-public .ve56-listcard { display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1.4fr) minmax(140px, .7fr); margin-bottom:24px; background:#fff; border:1px solid #103c3418; border-radius:20px; overflow:hidden; box-shadow:0 12px 32px -24px #103c3440; }
body.ve-travel-public .ve56-listcard__media { position:relative; min-height:230px; overflow:hidden; }
body.ve-travel-public .ve56-listcard__media > a { display:block; position:absolute; inset:0; }
body.ve-travel-public .ve56-listcard__media img { display:block; width:100%; height:100%; object-fit:cover; }
body.ve-travel-public .ve56-listcard__wish { position:absolute; top:12px; right:12px; width:40px; height:40px; border:0; border-radius:50%; background:#fff; color:var(--ve-forest, #103c34); }
body.ve-travel-public .ve56-listcard__content { padding:24px; min-width:0; overflow-wrap:anywhere; }
body.ve-travel-public .ve56-listcard__aside { display:flex; flex-direction:column; justify-content:center; padding:24px; border-left:1px solid #103c3412; }
body.ve-travel-public .ve56-listcard__tags { display:flex; flex-wrap:wrap; gap:6px; margin-top:14px; }
body.ve-travel-public .ve56-listcard__tag { padding:4px 9px; background:#f0f3ed; border-radius:6px; font-size:12px; }
body.ve-travel-public .pagination { flex-wrap:wrap; justify-content:center; }
body.ve-travel-public .tc .filters { flex-wrap:wrap; }
body.ve-travel-public .tc .filters :is(input,select) { flex:1 1 170px; min-width:0; max-width:100%; background:#fff; }
body.ve-travel-public .tc .filters button { padding:12px 24px; background:#103c34; color:#fff; border:0; border-radius:10px; }
@media(max-width:767px) {
 body.ve-travel-public .ve56-listcard { grid-template-columns:minmax(0,1fr); }
 body.ve-travel-public .ve56-listcard__media { min-height:0; aspect-ratio:4/3; }
 body.ve-travel-public .ve56-listcard__aside { border-left:0; border-top:1px solid #103c3412; padding:20px; }
 body.ve-travel-public .ve56-listcard__content { padding:20px; }
 body.ve-travel-public .tc .filters > * { flex-basis:100%; }
}

/* Collection pages share an editorial rhythm; all selectors stay in the public shell. */
body.ve-travel-public .ve56-search-hero { background:#103c34; }
body.ve-travel-public .vd-search-hero-grid { min-height:460px; padding-block:88px; }
body.ve-travel-public .vd-search-visual { inset:0 calc(min(0px, (1280px - 100vw)/2)); }
body.ve-travel-public .vd-search-copy { z-index:1; }
body.ve-travel-public .vd-search-copy :is(h1,p,.ve56-eyebrow,.ve56-explore-link) { color:#fff !important; }
body.ve-travel-public .vd-search-copy p { max-width:590px; font-size:18px; line-height:1.7; }
body.ve-travel-public .vd-search-copy h1 { max-width:780px; text-wrap:balance; margin-block:18px 24px; }
body.ve-travel-public .ve56-eyebrow { font-size:12px; font-weight:700; letter-spacing:.18em; }
body.ve-travel-public .ve56-explore-link { display:inline-flex; gap:16px; align-items:center; margin-top:16px; border-bottom:1px solid #ffffff80; padding-bottom:7px; }
body.ve-travel-public .ve-collection-content { padding-block:60px 90px; }
body.ve-travel-public :is(.ve-collection-filters,.invest-filter) { display:flex; flex-wrap:wrap; align-items:end; gap:16px; padding:24px; border:1px solid #dfe5df; background:#fff; border-radius:22px; margin-bottom:48px; box-shadow:0 16px 40px #103c3408; }
body.ve-travel-public .ve-collection-filters label { flex:1 1 160px; margin:0; font-size:12px; font-weight:700; color:#425b50; }
body.ve-travel-public :is(.ve-collection-filters,.invest-filter) :is(input,select) { display:block; width:100%; min-width:0; min-height:48px; padding:12px 14px; margin-top:8px; border:1px solid #dfe5df; border-radius:12px; background:#fafbf9; color:#172b25; font-size:14px; }
body.ve-travel-public .invest-filter input { flex:1 1 180px; width:auto; }
body.ve-travel-public :is(.ve-collection-filters,.invest-filter) button { min-height:48px; padding-inline:25px; }
body.ve-travel-public .ve-collection-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:30px; }
body.ve-travel-public .ve-section-kicker,body.ve-travel-public .invest .tag { font-size:11px; letter-spacing:.12em; font-weight:700; text-transform:uppercase; color:#527267; }
body.ve-travel-public .ve-collection-heading h2 { margin:12px 0 0; }
body.ve-travel-public :is(.ve-publication-grid,.invest-grid) { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
body.ve-travel-public :is(.ve-publication-card,.invest-card) { display:flex; flex-direction:column; min-width:0; background:#fff; color:#172b25; border:1px solid #dfe5df; border-radius:22px; overflow:hidden; text-decoration:none; box-shadow:0 8px 28px #103c3406; transition:transform .3s,box-shadow .3s; }
body.ve-travel-public .ve-publication-cover { position:relative; background:#e9eee6; overflow:hidden; border-radius:18px; }
body.ve-travel-public .ve-publication-card .ve-publication-cover { border-radius:0; }
body.ve-travel-public .ve-publication-cover img { width:100%; height:340px; object-fit:contain; padding:24px; transition:transform .5s; }
body.ve-travel-public .invest-card img { width:100%; height:250px; object-fit:cover; transition:transform .5s; }
body.ve-travel-public .ve-cover-placeholder { min-height:250px; padding:40px; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:12px; background:radial-gradient(ellipse at top right,#547e65,transparent),#103c34; color:#f2dfb0; letter-spacing:.16em; font-size:24px; }
body.ve-travel-public .ve-publication-cover .ve-cover-placeholder { min-height:340px; }
body.ve-travel-public .ve-cover-placeholder small { font-size:12px; letter-spacing:.03em; text-align:center; }
body.ve-travel-public .ve-publication-language { position:absolute; right:16px; top:16px; background:#fff; padding:5px 10px; border-radius:20px; font-size:11px; font-weight:700; }
body.ve-travel-public :is(.ve-publication-body,.invest-card section) { padding:26px; flex:1; display:flex; flex-direction:column; align-items:start; }
body.ve-travel-public :is(.ve-publication-body,.invest-card section) h3 { font-size:28px; margin:12px 0; overflow-wrap:anywhere; }
body.ve-travel-public .ve-publication-body p { color:#65726c; }
body.ve-travel-public .ve-publication-link { margin-top:auto; padding-top:20px; display:flex; justify-content:space-between; width:100%; font-weight:700; }
body.ve-travel-public .ve-publication-detail { display:grid; grid-template-columns:minmax(0,340px) minmax(0,1fr); gap:60px; align-items:start; }
body.ve-travel-public .ve-publication-detail .ve-publication-cover img { height:auto; max-height:550px; }
body.ve-travel-public .ve-publication-article h1 { font-size:clamp(36px,4vw,60px); margin-block:18px; overflow-wrap:anywhere; }
body.ve-travel-public .ve-publication-prose { line-height:1.85; margin-top:32px; overflow-wrap:anywhere; }
body.ve-travel-public .ve-publication-prose img { max-width:100%; height:auto; }
body.ve-travel-public .ve-publication-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }
body.ve-travel-public .ve-related-guides { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:18px; margin-top:24px; }
body.ve-travel-public .ve-related-guides a { display:flex; justify-content:space-between; gap:20px; padding:24px; border:1px solid #dfe5df; border-radius:16px; background:#fff; }
body.ve-travel-public .ve-collection-empty { grid-column:1/-1; text-align:center; padding:55px 24px; border:1px dashed #c3cfc3; border-radius:22px; }
body.ve-travel-public :is(.bravo_detail_location,.bravo-location) .bravo_banner { position:relative; background-color:#103c34; }
body.ve-travel-public :is(.ve-editorial-card,.ve-thing-body) { overflow-wrap:anywhere; }
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
 body.ve-travel-public :is(.ve-publication-card,.invest-card,.ve56-card,.item-loop):hover { transform:translateY(-5px); box-shadow:0 20px 45px #103c3414; }
 body.ve-travel-public :is(.ve-publication-card,.invest-card):hover img { transform:scale(1.035); }
}
@media(max-width:991px) {
 body.ve-travel-public :is(.ve-publication-grid,.invest-grid) { grid-template-columns:repeat(2,minmax(0,1fr)); }
 body.ve-travel-public .ve-publication-detail { gap:30px; grid-template-columns:minmax(0,1fr) minmax(0,1.5fr); }
 body.ve-travel-public .vd-search-hero-grid { min-height:380px; padding-block:60px; }
}
@media(max-width:575px) {
 body.ve-travel-public :is(.ve-publication-grid,.invest-grid,.ve-publication-detail) { grid-template-columns:1fr; }
 body.ve-travel-public .ve-collection-content { padding-block:32px 55px; }
 body.ve-travel-public :is(.ve-collection-filters,.invest-filter) { padding:18px; gap:12px; }
 body.ve-travel-public .ve-collection-filters label { flex-basis:100%; }
 body.ve-travel-public .ve-collection-heading { align-items:start; flex-direction:column; gap:8px; }
 body.ve-travel-public .vd-search-copy h1 { font-size:42px; }
 body.ve-travel-public .vd-search-copy p { font-size:16px; }
}
@media(prefers-reduced-motion:reduce) {
 body.ve-travel-public :is(.ve-publication-card,.invest-card,.ve-publication-cover img,.invest-card img) { transition:none; }
}
/* Some existing search pages use a simple hero without the photo wrapper. */
body.ve-travel-public .ve56-search-hero > .container > :is(h1,p,.ve56-eyebrow) { color:#fff; }

/* ==========================================================================
   LUXURY SERVICE SEARCH & DETAIL MODERNIZATION (HOTEL, CAR, EVENT, TOUR, SPACE)
   ========================================================================== */

/* Animated Background Aura & Ethiopian Art Pattern on all Search Heros */
body.ve-travel-public .ve56-search-hero {
    position: relative;
    overflow: hidden;
    background: 
        radial-gradient(circle at 18% 25%, rgba(212, 175, 55, 0.22) 0%, transparent 45%),
        radial-gradient(circle at 82% 75%, rgba(0, 198, 167, 0.20) 0%, transparent 50%),
        linear-gradient(135deg, #07251E 0%, #0C332A 55%, #061B16 100%) !important;
    border-bottom: 1px solid rgba(212, 175, 55, 0.35);
}

body.ve-travel-public .ve56-search-hero::before {
    content: "";
    position: absolute;
    inset: -30px;
    background:
        radial-gradient(circle at 22% 28%, rgba(212, 175, 55, 0.18) 0%, transparent 42%),
        radial-gradient(circle at 78% 72%, rgba(0, 107, 63, 0.25) 0%, transparent 48%),
        radial-gradient(circle at 50% 15%, rgba(245, 206, 98, 0.12) 0%, transparent 35%);
    pointer-events: none;
    z-index: 1;
    animation: veSearchHeroAura 18s ease-in-out infinite alternate;
}

body.ve-travel-public .ve56-search-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg width='120' height='120' viewBox='0 0 120 120' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23d4af37' fill-opacity='0.038'%3E%3Cpath d='M60 10 L65 35 L90 40 L65 45 L60 70 L55 45 L30 40 L55 35 Z M60 75 L63 88 L75 90 L63 92 L60 105 L57 92 L45 90 L57 88 Z'/%3E%3Ccircle cx='60' cy='40' r='3.5'/%3E%3C/g%3E%3C/svg%3E");
    background-repeat: repeat;
    background-size: 120px 120px;
    pointer-events: none;
    z-index: 1;
    animation: veSearchHeroArtDrift 55s linear infinite;
}

@keyframes veSearchHeroAura {
    0% { transform: scale(1) translate(0, 0); opacity: 0.75; }
    50% { transform: scale(1.08) translate(20px, -12px); opacity: 1; }
    100% { transform: scale(1.03) translate(-18px, 14px); opacity: 0.8; }
}

@keyframes veSearchHeroArtDrift {
    0% { background-position: 0 0; }
    100% { background-position: 120px 120px; }
}

body.ve-travel-public .ve56-search-hero .container {
    position: relative;
    z-index: 2;
}

body.ve-travel-public .ve56-search-hero h1 {
    color: #FFFFFF !important;
    text-shadow: 0 4px 20px rgba(0, 0, 0, 0.75), 0 0 30px rgba(212, 175, 55, 0.22) !important;
    font-weight: 900 !important;
    letter-spacing: -0.03em !important;
}

body.ve-travel-public .ve56-search-hero p {
    color: rgba(255, 255, 255, 0.9) !important;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
    font-size: 17px;
    line-height: 1.65;
}

body.ve-travel-public .ve56-eyebrow {
    background: rgba(212, 175, 55, 0.16) !important;
    border: 1px solid rgba(212, 175, 55, 0.45) !important;
    color: #FDB913 !important;
    box-shadow: 0 4px 15px rgba(212, 175, 55, 0.15);
}

body.ve-travel-public .ve56-hero-chip {
    background: rgba(255, 255, 255, 0.12) !important;
    backdrop-filter: blur(10px) !important;
    border: 1px solid rgba(255, 255, 255, 0.22) !important;
    color: #FFFFFF !important;
    font-weight: 700;
    transition: all 0.25s ease;
}

body.ve-travel-public .ve56-hero-chip:hover {
    background: rgba(212, 175, 55, 0.22) !important;
    border-color: #FDB913 !important;
    color: #FDB913 !important;
    transform: translateY(-2px);
}

body.ve-travel-public .ve56-hero-chip i {
    color: #FDB913;
}

body.ve-travel-public .ve56-explore-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: linear-gradient(135deg, #D4AF37 0%, #B8972E 100%) !important;
    color: #07251E !important;
    font-weight: 800;
    padding: 10px 22px;
    border-radius: 999px;
    box-shadow: 0 6px 18px rgba(212, 175, 55, 0.35);
    text-decoration: none !important;
    transition: transform 0.25s, box-shadow 0.25s;
    margin-top: 14px;
}

body.ve-travel-public .ve56-explore-link:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(212, 175, 55, 0.5);
    color: #000000 !important;
}

/* ==========================================================================
   DETAIL PAGE ELEVATION (HOTEL, TOUR, CAR, EVENT, SPACE)
   ========================================================================== */

body.ve-travel-public :is(.ve56-detail-page, .bravo_detail_hotel, .bravo_detail_tour, .bravo_detail_car, .bravo_detail_event, .bravo_detail_space) {
    background: #FAF7F2 !important;
    min-height: 100vh;
}

/* Main Content Card Container */
body.ve-travel-public :is(.ve56-detail-page, .bravo_detail_hotel, .bravo_detail_tour, .bravo_detail_car, .bravo_detail_event, .bravo_detail_space) .bravo_content > .container > .row > .col-lg-9 {
    background: #FFFFFF !important;
    border-radius: 24px !important;
    padding: 36px 32px !important;
    box-shadow: 0 14px 40px rgba(7, 37, 30, 0.06) !important;
    border: 1px solid rgba(16, 60, 52, 0.08) !important;
    margin-bottom: 30px;
}

/* Headings in Detail Pages */
body.ve-travel-public :is(.ve56-detail-page, .bravo_detail_hotel, .bravo_detail_tour, .bravo_detail_car, .bravo_detail_event, .bravo_detail_space) h1,
body.ve-travel-public :is(.ve56-detail-page, .bravo_detail_hotel, .bravo_detail_tour, .bravo_detail_car, .bravo_detail_event, .bravo_detail_space) h2,
body.ve-travel-public :is(.ve56-detail-page, .bravo_detail_hotel, .bravo_detail_tour, .bravo_detail_car, .bravo_detail_event, .bravo_detail_space) h3,
body.ve-travel-public :is(.ve56-detail-page, .bravo_detail_hotel, .bravo_detail_tour, .bravo_detail_car, .bravo_detail_event, .bravo_detail_space) h4,
body.ve-travel-public :is(.ve56-detail-page, .bravo_detail_hotel, .bravo_detail_tour, .bravo_detail_car, .bravo_detail_event, .bravo_detail_space) h5 {
    color: #07251E !important;
    font-weight: 800 !important;
}

body.ve-travel-public :is(.ve56-detail-page, .bravo_detail_hotel, .bravo_detail_tour, .bravo_detail_car, .bravo_detail_event, .bravo_detail_space) h1 {
    font-size: clamp(28px, 3.6vw, 44px) !important;
    line-height: 1.2 !important;
    letter-spacing: -0.02em !important;
}

/* Gallery and Fotorama roundness */
body.ve-travel-public :is(.ve56-detail-page, .bravo_detail_hotel, .bravo_detail_tour, .bravo_detail_car, .bravo_detail_event, .bravo_detail_space) :is(.fotorama__stage, .fotorama__nav-wrap, .travel-slick-carousel, .u-slick) {
    border-radius: 20px !important;
    overflow: hidden !important;
    box-shadow: 0 12px 35px rgba(7, 37, 30, 0.10) !important;
}

/* Sticky Booking Sidebar */
body.ve-travel-public :is(.ve56-detail-page, .bravo_detail_hotel, .bravo_detail_tour, .bravo_detail_car, .bravo_detail_event, .bravo_detail_space) .bravo_content > .container > .row > .col-lg-3 {
    position: sticky !important;
    top: 96px !important;
}

body.ve-travel-public :is(.ve56-detail-page, .bravo_detail_hotel, .bravo_detail_tour, .bravo_detail_car, .bravo_detail_event, .bravo_detail_space) :is(.bravo_single_book, .form-book, .border-color-7, .bravo-form-book) {
    background: #FFFFFF !important;
    border-radius: 24px !important;
    border: 1.5px solid rgba(212, 175, 55, 0.4) !important;
    box-shadow: 0 18px 50px rgba(7, 37, 30, 0.14) !important;
    overflow: hidden !important;
}

/* Price Header in Booking Form */
body.ve-travel-public :is(.ve56-detail-page, .bravo_detail_hotel, .bravo_detail_tour, .bravo_detail_car, .bravo_detail_event, .bravo_detail_space) :is(.form-head, .bravo_single_book_wrap .border-bottom:first-child) {
    background: linear-gradient(135deg, #07251E 0%, #0C332A 100%) !important;
    color: #FFFFFF !important;
    padding: 20px 24px !important;
    border-radius: 22px 22px 0 0 !important;
}

body.ve-travel-public :is(.ve56-detail-page, .bravo_detail_hotel, .bravo_detail_tour, .bravo_detail_car, .bravo_detail_event, .bravo_detail_space) :is(.form-head, .bravo_single_book_wrap .border-bottom:first-child) * {
    color: #FFFFFF !important;
}

body.ve-travel-public :is(.ve56-detail-page, .bravo_detail_hotel, .bravo_detail_tour, .bravo_detail_car, .bravo_detail_event, .bravo_detail_space) :is(.value, .price .text-price) {
    color: #FDB913 !important;
    font-size: 24px !important;
    font-weight: 900 !important;
}

/* Primary CTA Book Buttons */
body.ve-travel-public :is(.ve56-detail-page, .bravo_detail_hotel, .bravo_detail_tour, .bravo_detail_car, .bravo_detail_event, .bravo_detail_space) :is(.btn-primary, .btn-success, .btn-book, .btn-choose-room, button[type="submit"]:not(.btn-link)) {
    background: linear-gradient(135deg, #07251E 0%, #0C332A 60%, #006B3F 100%) !important;
    color: #FFFFFF !important;
    font-weight: 800 !important;
    font-size: 15px !important;
    padding: 14px 24px !important;
    border-radius: 14px !important;
    border: 1px solid rgba(212, 175, 55, 0.4) !important;
    box-shadow: 0 8px 22px rgba(0, 107, 63, 0.3) !important;
    transition: all 0.25s ease !important;
}

body.ve-travel-public :is(.ve56-detail-page, .bravo_detail_hotel, .bravo_detail_tour, .bravo_detail_car, .bravo_detail_event, .bravo_detail_space) :is(.btn-primary, .btn-success, .btn-book, .btn-choose-room, button[type="submit"]:not(.btn-link)):hover {
    transform: translateY(-2px) !important;
    background: linear-gradient(135deg, #D4AF37 0%, #B8972E 100%) !important;
    color: #07251E !important;
    box-shadow: 0 12px 28px rgba(212, 175, 55, 0.45) !important;
}

/* Interactive Map in Detail Pages */
body.ve-travel-public :is(.ve56-detail-page, .bravo_detail_hotel, .bravo_detail_tour, .bravo_detail_car, .bravo_detail_event, .bravo_detail_space) :is(#map_content, .location-map) {
    border-radius: 20px !important;
    overflow: hidden !important;
    border: 1.5px solid rgba(16, 60, 52, 0.12) !important;
    box-shadow: 0 10px 28px rgba(7, 37, 30, 0.08) !important;
}

/* Attributes / Amenities Badges in Detail Pages */
body.ve-travel-public :is(.ve56-detail-page, .bravo_detail_hotel, .bravo_detail_tour, .bravo_detail_car, .bravo_detail_event, .bravo_detail_space) :is(.list-attributes, .hotel-attributes, .car-attributes, .event-attributes) .item {
    background: #FAF7F2 !important;
    border: 1px solid rgba(16, 60, 52, 0.08) !important;
    border-radius: 12px !important;
    padding: 10px 16px !important;
    font-weight: 700 !important;
    color: #07251E !important;
    transition: transform 0.2s ease;
}

body.ve-travel-public :is(.ve56-detail-page, .bravo_detail_hotel, .bravo_detail_tour, .bravo_detail_car, .bravo_detail_event, .bravo_detail_space) :is(.list-attributes, .hotel-attributes, .car-attributes, .event-attributes) .item:hover {
    transform: translateY(-2px);
    border-color: #D4AF37 !important;
}

body.ve-travel-public :is(.ve56-detail-page, .bravo_detail_hotel, .bravo_detail_tour, .bravo_detail_car, .bravo_detail_event, .bravo_detail_space) :is(.list-attributes, .hotel-attributes, .car-attributes, .event-attributes) i {
    color: #006B3F !important;
}

