/*
 Theme Name:   Listingpro Child
 Theme URI:    http://studio.cridio.com/listingpro/
 Description:  Listingpro Child Theme
 Author:       cridio team
 Author URI:   http://cridio.com/
 Template:     listingpro
 Version:      1.0.11
 Tags:         listingpro, directory, listing, right-sidebar, responsive-layout, accessibility-ready
 Text Domain:  listingpro-child
*/


/* =================== YoNinja Custom Search Widget Styling =================== */
/*
About: This adds a custom search field widget in the sidebar on article pages.
This search bar allows users to search through yoninja's pages/posts (articles, blog posts, etc.) instead of listings.
*/

.yns { font: inherit; }
.yns__inner { display:flex; align-items:stretch; gap:8px; width:100%; max-width:720px; margin:0 auto; }
.yns__input {
  flex:1 1 auto; border:1px solid #e6e8eb; background:#fff;
  padding:12px 16px; border-radius:999px; outline:none;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.yns__input:focus { border-color:#41A6DF; box-shadow:0 0 0 3px rgba(65,166,223,.15); }
.yns__btn {
  flex:0 0 auto; border:none; cursor:pointer; border-radius:999px;
  padding:12px 18px; font-weight:600; background:#41A6DF; color:#fff;
  box-shadow:0 2px 6px rgba(65,166,223,.25); transition:transform .06s ease, box-shadow .2s ease;
}
.yns__btn:hover { box-shadow:0 4px 10px rgba(65,166,223,.35); }
.yns__btn:active { transform:translateY(1px); }

/* Accessibly-hidden label */
.yns__label { position:absolute; left:-9999px; }

/* =================== END YoNinja Custom Search Widget Styling =================== */


/* ======================= Listing Pro Code Fixes ===================== */

/* ===== "What" Field Width Fix ===== */
/* About: This fixes the "What" field not being 100% on mobile screens. LP devs forgot to include this in their responsive.css file. 
It fixes the "What" field not displaying as 100% on small mobile screens (under 480px width). This code overwrites the code in main-new.css around line 9284 which outputs: width: 52% !important; */

@media (max-width: 480px) {
  .lp-menu-bar.header-bg-color-class .fullwidth-header .lp-search-chnage-styles-st .header-filter .input-group.width-49-percent.margin-right-15 {
    width: 100% !important;
  }
}


/* ===== Fix: Google Ad Overlapping Header Text on Archive / Search Results Pages on Mobile Views ====== */

/* Self-contained ad block */
.ad-slot{
  
	display: flow-root;      /* own formatting context */
  clear: both;
  width: 100%;
  margin-top: 10px;
  padding: 0;
  text-align: center;
  line-height: 0;
  position: relative;
  isolation: isolate;      /* isolates stacking/positioning contexts */
	
}

/* Mobile: neutralize the theme's negative margin when the listing header follows an ad */
@media (max-width: 480px) {
  /* If the .listing-style-1 block is the immediate next sibling after the ad */
  .ad-slot + .listing-style-1 .filter-top-section.pos-relative.row .lp-title.col-md-10.col-sm-10 {
    margin-top: 10px !important;
    padding-top: 16px;          /* small visual buffer in place of the negative margin */
  }

  /* If there's one wrapper between the ad and .listing-style-1 (common in ListingPro) */
  .ad-slot + * .listing-style-1 .filter-top-section.pos-relative.row .lp-title.col-md-10.col-sm-10 {
    margin-top: 0 !important;
    padding-top: 16px;
  }

  /* Give the ad a tiny "speed bump" so any residual negative margin can't intrude */
  .ad-slot::after {
    content: "";
    display: block;
	height: 60px;
  }
}

/* ===== END of Fix: Google Ad Overlapping Header Text on Archive / Search Results Pages on Mobile Views ===== */



/* ======= OTHER CUSTOMIZATIONS ========= */

/* Force the review form section to load expanded */
#review-section form {
display: block !important;
}

/* BEGIN Customize Review Form */

/* Keep review form expanded for all users */
.review-form form {
  display: block !important;
}

/* Disable toggle click */
.review-form #reply-title {
  pointer-events: none;
}

/* Hide the caret toggle icon */
.review-form #reply-title .fa-caret-down {
  display: none !important;
}

/* END Customize Review Form */



/* Hides the listing count on the featured cities images on the homepage */
.lp-listing-quantity {visibility: hidden;}

/* Hides the posted date on Popular Listings and Hotel listings on the front page */
.vc_custom_heading.vc_gitem-post-data.vc_gitem-post-data-source-post_date {display: none !important;}

/* Hides the floating Google ReCaptcha Badge in the bottom right corner */
/* ReCaptcha was re-enabled in Oct 2026, to help fight spam registrations on the legacy user registration page (not listingpro). However, not sure this is needed, as we also  blocked access to the user registration page now via the .htaccess file. 
*/
.grecaptcha-badge { visibility: hidden; }


/* Reviews/Comments Section Style Formatting Fix
The default Listing Pro font used in reviews is ugly. This improves the look. 
*/
.lp-listing-review .lp-review-right .lp-review-right-top strong {
    font-family: open sans !important;
    font-weight: bold;
} 

/* Listing Pro Fix for URL overflowing the sidebar widget area
Description: If the listing's website / URL (e.g., their homepage) is very long, it will overflow in the description box in the sidebar on the listing detail page. This has yet to be addressed by the lazy Listing Pro developers. This code wraps the URL.
*/
.lp-user-web { 
    word-break: break-all !important; 
}	


/* ======== START of Tagline code fixes ======== */

/* Listing Pro Fix for Taglines on Edit/Add pages
On add/edit listing pages, the below code hides the checkbox and text and just displays the tagline field always
*/

/* Always show tagline field */
.with-title-cond {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* Add breathing room above the Tagline field */
.with-title-cond {
    margin-top: 1px !important;
}

/* Hide the “Does your business have a tagline?” checkbox section */
.lp-tagline-submit-tagline {
    display: none !important;
}

/* Floats the tagline checkbox text to the left instead of right
Update: this is no longer needed as we now hide this checkbox 
.lp-tagline-submit-tagline {float:left; margin-left:1em; margin-bottom:3em; }
*/

/* ======== END of Tagline code fixes ======== */


/* Fix spacing on numbered lists in posts/pages
Adds space between the number and text for numbered lists 
*/
ol li {
  padding-left: 0.5em;
}


/* Nearby Listings Fix:
This code fix hides the entire Nearby Listings widget when it has no nearby listings to display.
*/
[id^="listingpro_nearby-4"]:not(:has(.lp-sidebar-nearby)) {
  display: none !important;
}

/* ======================= END of Listing Pro Code Fixes ===================== */
/* Japan Tours service-page refresh. Scoped to post 21298 only. */
body.single-post .blog-content.popup-gallery {
  max-width: 860px;
  margin: 0 auto;
  padding: 48px 56px 56px;
  font-family: system-ui, sans-serif;
  font-size: 17px;
  line-height: 1.8;
  color: #4b5563;
}

body.single-post .blog-content.popup-gallery p {
  margin: 0 0 1.25em;
  font-family: system-ui, sans-serif;
  font-size: 17px;
  line-height: 1.8;
  color: #4b5563;
}

body.single-post .blog-content.popup-gallery .wp-block-cover p {
  color: #fff;
}

body.single-post .blog-content.popup-gallery h2 {
  margin: 2.1em 0 0.7em;
  font-family: system-ui, sans-serif;
  font-size: clamp(1.55rem, 2vw, 2rem);
  font-weight: 700;
  line-height: 1.22;
  letter-spacing: -0.025em;
  color: #1f2937;
}

body.single-post .blog-content.popup-gallery ul,
body.single-post .blog-content.popup-gallery ol {
  margin: 0 0 1.65em;
  padding-left: 1.35em;
}

body.single-post .blog-content.popup-gallery li {
  margin: 0.38em 0;
  padding-left: 0.25em;
  font-family: system-ui, sans-serif;
  font-size: 17px;
  line-height: 1.8;
  color: #4b5563;
}

body.single-post .blog-content.popup-gallery ol li::marker {
  color: #1b6f9e;
  font-weight: 700;
}

body.single-post .blog-content.popup-gallery a:not(.lp-button) {
  color: #176b9b;
  font-weight: 600;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

@media (max-width: 767px) {
  body.single-post .blog-content.popup-gallery {
    padding: 32px 26px 38px;
    font-size: 16px;
    line-height: 1.72;
  }

  body.single-post .blog-content.popup-gallery h2 {
    margin-top: 1.8em;
  }
}

/* Standard WP Pages (full-width page template) - mirrors single-post modern typography */
body.page-template-template-page-full-width .post-content.blog-test-page {
  max-width: 860px;
  margin: 0 auto;
  padding: 48px 56px 56px;
  font-family: system-ui, sans-serif;
  font-size: 17px;
  line-height: 1.8;
  color: #4b5563;
}

body.page-template-template-page-full-width .post-content.blog-test-page p {
  margin: 0 0 1.25em;
  font-family: system-ui, sans-serif;
  font-size: 17px;
  line-height: 1.8;
  color: #4b5563;
}

body.page-template-template-page-full-width .post-content.blog-test-page .wp-block-cover p {
  color: #fff;
}

body.page-template-template-page-full-width .post-content.blog-test-page h2 {
  margin: 2.1em 0 0.7em;
  font-family: system-ui, sans-serif;
  font-size: clamp(1.55rem, 2vw, 2rem);
  font-weight: 700;
  line-height: 1.22;
  letter-spacing: -0.025em;
  color: #1f2937;
}

body.page-template-template-page-full-width .post-content.blog-test-page ul,
body.page-template-template-page-full-width .post-content.blog-test-page ol {
  margin: 0 0 1.65em;
  padding-left: 1.35em;
}

body.page-template-template-page-full-width .post-content.blog-test-page li {
  margin: 0.38em 0;
  padding-left: 0.25em;
  font-family: system-ui, sans-serif;
  font-size: 17px;
  line-height: 1.8;
  color: #4b5563;
}

body.page-template-template-page-full-width .post-content.blog-test-page ol li::marker {
  color: #1b6f9e;
  font-weight: 700;
}

body.page-template-template-page-full-width .post-content.blog-test-page a:not(.lp-button) {
  color: #176b9b;
  font-weight: 600;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

body.page-template-template-page-full-width .post-content.blog-test-page .lp-button.button {
  display: inline-block;
  font-family: system-ui, sans-serif;
  margin-top: 0.35em;
  padding: 0.78em 1.25em;
  border: 0;
  border-radius: 6px;
  background: #176b9b;
  box-shadow: 0 6px 14px rgba(23, 107, 155, 0.18);
  color: #fff !important;
  font-size: 0.94rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  line-height: 1.2;
  text-decoration: none;
  transition: background-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

body.page-template-template-page-full-width .post-content.blog-test-page .lp-button.button:hover,
body.page-template-template-page-full-width .post-content.blog-test-page .lp-button.button:focus {
  background: #125a82;
  box-shadow: 0 9px 20px rgba(23, 107, 155, 0.24);
  color: #fff !important;
  transform: translateY(-1px);
}

@media (max-width: 767px) {
  body.page-template-template-page-full-width .post-content.blog-test-page {
    padding: 32px 26px 38px;
    font-size: 16px;
    line-height: 1.72;
  }

  body.page-template-template-page-full-width .post-content.blog-test-page h2 {
    margin-top: 1.8em;
  }
}
/* Standard WordPress Pages using ListingPro's full-width page template.
   ListingPro globally removes list markers; restore normal content markers here. */
body.page-template-template-page-full-width .post-content.blog-test-page ul {
  list-style: disc;
}

body.page-template-template-page-full-width .post-content.blog-test-page ol {
  list-style: decimal;
}


/* Add breathing room above ListingPro listing hero images only */
body.single-listing .listing-second-view > .pos-relative {
  padding-top: 20px;
  background: #fff;
}

/* Featured homepage article card: align the text and image columns at desktop widths.
 * ListingPro caps the wrapper but otherwise lets the image retain its intrinsic height. */
@media (min-width: 1025px) {
  .lp-blog-grid-box-container-first-post {
    display: flex;
    height: 406px;
    max-height: none;
  }

  .lp-blog-grid-box-container-first-post > .lp-blog-style2-outer,
  .lp-blog-grid-box-container-first-post > .lp-blog-grid-box-thumb {
    float: none;
  }

  .lp-blog-grid-box-container-first-post > .lp-blog-grid-box-thumb,
  .lp-blog-grid-box-container-first-post > .lp-blog-grid-box-thumb > a {
    display: block;
    height: 100%;
    overflow: hidden;
  }

  .lp-blog-grid-box-container-first-post > .lp-blog-grid-box-thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}

/* Listing detail gallery (style1 slider): the PrettyPhoto lightbox popup
 * should only be clickable on desktop/tablet. On mobile, tapping a gallery
 * photo should do nothing - same behavior already established for single-
 * image listings, now applied consistently to multi-image listings too.
 * Scoped to this specific slider so it does not affect other PrettyPhoto
 * galleries on the site (e.g. blog post image galleries). */
@media (max-width: 767px) {
  .single-page-slider-container.style1 a[rel^="prettyPhoto"] {
    pointer-events: none;
  }
}

/* Nearby Listings sidebar: the in-feed ad block isn't a listing card, so it
 * doesn't get the 10px bottom margin that .grid_view2 cards get (see
 * .lp-sidebar-nearby .grid_view2 margin-bottom rule). Match that spacing
 * here so the ad doesn't sit flush against the next card. */
.lp-sidebar-nearby-ad {
  margin-bottom: 10px;
}

/* WPBakery post grids: make the full image link and Read more action
 * immediately legible, while retaining the existing Visual Composer markup.
 * This applies to every vc_basic_grid post archive, including Travel Guides,
 * Tips and Resources, and Language Guides. */
body:not(.home) .vc_basic_grid .vc_grid-item-mini {
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 7px rgba(22, 43, 55, 0.12);
  transition: transform 180ms ease, box-shadow 180ms ease;
}

body:not(.home) .vc_basic_grid .vc_gitem-zone-a {
  transition: transform 260ms ease;
}

body:not(.home) .vc_basic_grid .vc_gitem-zone-a::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(13, 34, 46, 0.08) 20%, rgba(13, 34, 46, 0.38) 100%);
  content: "";
  opacity: 0.65;
  pointer-events: none;
  transition: opacity 180ms ease;
}

body:not(.home) .vc_basic_grid .vc_gitem-zone-a .vc_gitem-link {
  cursor: pointer;
  z-index: 3;
}

body:not(.home) .vc_basic_grid .vc_gitem-zone-a .vc_gitem-link::after {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;
  padding: 12px 18px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 6px 18px rgba(8, 25, 35, 0.28);
  color: #173f57;
  content: "Read article \2192";
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.01em;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, calc(-50% + 12px));
  transition: opacity 180ms ease, transform 180ms ease;
}

/* Keep the Travel Guides wording that was already approved. */
.page-id-237 .vc_basic_grid .vc_gitem-zone-a .vc_gitem-link::after {
  content: "Read guide \2192";
}

body:not(.home) .vc_basic_grid .vc_gitem-post-data-source-post_excerpt {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 6;
}

body:not(.home) .vc_basic_grid .vc_btn3 {
  border: 1px solid #d93c38 !important;
  box-shadow: 0 3px 8px rgba(166, 38, 35, 0.18);
  font-weight: 700;
  transition: background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease !important;
}

@media (hover: hover) {
  body:not(.home) .vc_basic_grid .vc_grid-item-mini:hover,
  body:not(.home) .vc_basic_grid .vc_grid-item-mini:focus-within {
    box-shadow: 0 12px 24px rgba(22, 43, 55, 0.22);
    transform: translateY(-3px);
  }

  body:not(.home) .vc_basic_grid .vc_grid-item-mini:hover .vc_gitem-zone-a,
  body:not(.home) .vc_basic_grid .vc_grid-item-mini:focus-within .vc_gitem-zone-a {
    transform: scale(1.045);
  }

  body:not(.home) .vc_basic_grid .vc_grid-item-mini:hover .vc_gitem-zone-a::after,
  body:not(.home) .vc_basic_grid .vc_grid-item-mini:focus-within .vc_gitem-zone-a::after {
    opacity: 1;
  }

  body:not(.home) .vc_basic_grid .vc_grid-item-mini:hover .vc_gitem-zone-a .vc_gitem-link::after,
  body:not(.home) .vc_basic_grid .vc_grid-item-mini:focus-within .vc_gitem-zone-a .vc_gitem-link::after {
    opacity: 1;
    transform: translate(-50%, -50%);
  }

  body:not(.home) .vc_basic_grid .vc_btn3:hover,
  body:not(.home) .vc_basic_grid .vc_btn3:focus-visible {
    background-color: #c9322e !important;
    border-color: #ad2926 !important;
    box-shadow: 0 6px 14px rgba(166, 38, 35, 0.28);
    color: #fff !important;
    transform: translateY(-1px);
  }
}

body:not(.home) .vc_basic_grid .vc_gitem-link:focus-visible,
body:not(.home) .vc_basic_grid .vc_btn3:focus-visible {
  outline: 3px solid #164d6d;
  outline-offset: 3px;
}

/* Homepage listing grids retain their original card styling, with only the
 * requested listing-specific overlay cue added to their existing image links. */
.home .vc_basic_grid .vc_gitem-zone-a .vc_gitem-link {
  cursor: pointer;
  z-index: 200;
}

/* The original ListingPro caption treatment ended at 86% opacity, which
 * made the listing photography and the requested control unnecessarily dark.
 * Preserve a readable title gradient while letting the image remain primary. */
body.home.page-id-17 .vc_basic_grid.vc_custom_1791351609924 .vc_gitem-zone-b,
body.home.page-id-17 .vc_basic_grid.vc_custom_1791304551229 .vc_gitem-zone-b {
  background: linear-gradient(rgba(17, 30, 38, 0) 55%, rgba(17, 30, 38, 0.5) 100%) !important;
  background-color: transparent !important;
}

.home .vc_basic_grid .vc_gitem-zone-a .vc_gitem-link::after {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;
  padding: 12px 18px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 6px 18px rgba(8, 25, 35, 0.28);
  color: #173f57;
  content: "View Listing";
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.01em;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, calc(-50% + 12px));
  transition: opacity 180ms ease, transform 180ms ease;
}

@media (hover: hover) {
  .home .vc_basic_grid .vc_grid-item-mini:hover .vc_gitem-zone-a .vc_gitem-link::after,
  .home .vc_basic_grid .vc_grid-item-mini:focus-within .vc_gitem-zone-a .vc_gitem-link::after {
    opacity: 1;
    transform: translate(-50%, -50%);
  }
}

.home .vc_basic_grid .vc_gitem-link:focus-visible {
  outline: 3px solid #164d6d;
  outline-offset: 3px;
}

@media (hover: none) {
  body:not(.home) .vc_basic_grid .vc_grid-item-mini:active {
    transform: scale(0.985);
  }
}

@media (prefers-reduced-motion: reduce) {
  body:not(.home) .vc_basic_grid .vc_grid-item-mini,
  body:not(.home) .vc_basic_grid .vc_gitem-zone-a,
  body:not(.home) .vc_basic_grid .vc_gitem-zone-a .vc_gitem-link::after,
  body:not(.home) .vc_basic_grid .vc_gitem-zone-a::after,
  body:not(.home) .vc_basic_grid .vc_btn3 {
    transition: none !important;
  }

  .home .vc_basic_grid .vc_gitem-zone-a .vc_gitem-link::after {
    transition: none !important;
  }
}
