/*!
Theme Name: Bhutan Voyages
Theme URI: https://bhutanvoyages.com/
Author: Bhutan Voyages
Author URI: https://bhutanvoyages.com/
Description: Bhutan Voyages tour theme, built on Underscores (_s) with Bootstrap 5.3 and WooCommerce. Tours are WooCommerce products; tour details use ACF Pro fields.
Version: 1.0.0
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: bhutanvoyages
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready, e-commerce

Bhutan Voyages is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.
*/

/*--------------------------------------------------------------
Design styles live in assets/css (bootstrap, common, style, responsive) copied
from the static HTML. This file only adds WordPress and WooCommerce styles.

>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# WordPress core
# Posts and pages
# Contact Form 7
# WooCommerce
--------------------------------------------------------------*/

/*--------------------------------------------------------------
# WordPress core
--------------------------------------------------------------*/
.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}
.screen-reader-text:focus {
  background-color: #fff;
  clip: auto !important;
  clip-path: none;
  color: var(--bs-navy);
  display: block;
  font-size: .875rem;
  font-weight: 700;
  height: auto;
  left: 5px;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
}
#primary[tabindex="-1"]:focus { outline: 0; }

.alignleft { float: left; margin: 0 1.5em 1.5em 0; }
.alignright { float: right; margin: 0 0 1.5em 1.5em; }
.aligncenter { clear: both; display: block; margin-left: auto; margin-right: auto; margin-bottom: 1.5em; }
.wp-caption { margin-bottom: 1.5em; max-width: 100%; }
.wp-caption-text { font-size: .95rem; color: var(--bs-secondary-color); text-align: center; margin: .5em 0; }
.gallery { display: grid; gap: 1rem; margin-bottom: 1.5em; }
.sticky, .bypostauthor { display: block; }
.custom-logo-link { display: inline-block; }

/*--------------------------------------------------------------
# Posts and pages
--------------------------------------------------------------*/
.entry-content > *:last-child { margin-bottom: 0; }
.page-content-html > section:first-child { padding-top: 3rem; }
.pagination .page-numbers { display: block; padding: .375rem .75rem; border: 1px solid var(--bs-border-color); margin-left: -1px; color: var(--bs-primary); text-decoration: none; }
.pagination .page-numbers.current { background: var(--bs-primary); border-color: var(--bs-primary); color: #fff; }
.pagination li:first-child .page-numbers { border-radius: .25rem 0 0 .25rem; }
.pagination li:last-child .page-numbers { border-radius: 0 .25rem .25rem 0; }

.comment-list { list-style: none; padding-left: 0; }
.comment-list .children { list-style: none; padding-left: 1.5rem; }
.comment-body { border-bottom: 1px solid var(--bs-border-color); padding: 1rem 0; }
.comment-meta { font-size: .95rem; color: var(--bs-secondary-color); }
/* Blog comment form (tour review forms use the Bootstrap classes of the static HTML). */
.comments-area .comment-form label { display: block; font-family: var(--bs-font-heading); font-size: .8rem; font-weight: 600; color: var(--bs-navy); margin-bottom: .5rem; }
.comments-area .comment-form input[type="text"],
.comments-area .comment-form input[type="email"],
.comments-area .comment-form input[type="url"],
.comments-area .comment-form textarea {
  display: block;
  width: 100%;
  font-size: 1.05rem;
  padding: .65rem .9rem;
  border: 1px solid var(--bs-border-color);
  border-radius: .375rem;
  background: #fff;
}

/*--------------------------------------------------------------
# Contact Form 7
--------------------------------------------------------------*/
.wpcf7-form-control-wrap { display: block; }
.wpcf7-not-valid-tip { margin-top: .35rem; font-size: .95rem; color: var(--bs-red); }
.wpcf7-form-control.wpcf7-not-valid { border-color: var(--bs-red); }
.wpcf7-form.row > .wpcf7-response-output { width: calc(100% - var(--bs-gutter-x)); margin: 1rem calc(var(--bs-gutter-x) * .5) 0; padding: .75rem 1rem; border-radius: .375rem; }
.wpcf7 .wpcf7-spinner { vertical-align: middle; }

/*--------------------------------------------------------------
# WooCommerce
WooCommerce stylesheets are not loaded; cart, checkout and tour templates
use the static HTML markup. These rules cover WooCommerce's own elements.
--------------------------------------------------------------*/
/* Notices */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  list-style: none;
  margin: 0 0 1.5rem;
  padding: 1rem 1.25rem;
  border-left: 4px solid var(--bs-primary);
  border-radius: .375rem;
  background: var(--bs-cream);
  color: var(--bs-body-color);
}
.woocommerce-error { border-left-color: var(--bs-red); }
.woocommerce-error li + li { margin-top: .25rem; }
/* Text on the left, action button (printed first by WooCommerce) on the right; no floats. */
.woocommerce-message,
.woocommerce-info { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1.5rem; }
.woocommerce-message .button,
.woocommerce-info .button { order: 2; margin-left: auto; }
/* WooCommerce moves focus to the first notice for screen readers; no browser focus ring around it. */
.woocommerce-message:focus,
.woocommerce-info:focus,
.woocommerce-error:focus { outline: 0; }
.woocommerce-store-notice, p.demo_store { background-color: var(--bs-navy); color: #fff; }

/* WooCommerce's own buttons (account pages, notices); theme buttons use the .btn classes. */
.woocommerce a.button:not(.btn),
.woocommerce button.button:not(.btn),
.woocommerce input.button:not(.btn) {
  display: inline-block;
  font-family: var(--bs-font-heading);
  font-weight: 600;
  font-size: .875rem;
  letter-spacing: .04em;
  padding: .7rem 1.5rem;
  border: 0;
  border-radius: .25rem;
  background-color: var(--bs-primary);
  color: #fff;
  text-decoration: none;
}
.woocommerce a.button:not(.btn):hover,
.woocommerce button.button:not(.btn):hover,
.woocommerce input.button:not(.btn):hover { background-color: var(--bs-primary-dark); color: #fff; }

/* AJAX loading overlay */
.blockUI.blockOverlay { background: #fff !important; opacity: .6 !important; cursor: wait; }

/* Checkout fields (WooCommerce prints them as p.form-row) */
.woocommerce-checkout .form-row { margin-bottom: 0; }
.woocommerce-checkout .woocommerce-input-wrapper { display: block; }
.woocommerce-checkout .form-row .required { color: var(--bs-red); text-decoration: none; border: 0; }
.woocommerce-checkout .form-row.woocommerce-invalid .form-control,
.woocommerce-checkout .form-row.woocommerce-invalid .form-select { border-color: var(--bs-red); }
.woocommerce-checkout .payment_box { margin-top: .5rem; }
.woocommerce-checkout .payment_box p:last-child { margin-bottom: 0; }

/* Quantity input in the cart */
.cart-section .quantity .qty { width: 100%; }

/* Reviews */
.woocommerce-Reviews .commentlist { list-style: none; padding-left: 0; }
.woocommerce .star-rating span::before { color: var(--bs-gold); }

/* Account pages (login, register, dashboard) and order details */
.woocommerce-account .woocommerce h2,
.woocommerce-order h2 { font-family: var(--bs-font-heading); font-weight: 600; font-size: var(--bs-font-24); color: var(--bs-navy); margin-bottom: 1rem; }
.woocommerce-form-login,
.woocommerce-form-register,
.woocommerce-ResetPassword,
.woocommerce-EditAccountForm { max-width: 32rem; }
.woocommerce-account .form-row { margin-bottom: 1rem; }
.woocommerce-account .form-row label { display: block; margin-bottom: .4rem; font-family: var(--bs-font-heading); font-size: var(--bs-font-14); font-weight: 600; color: var(--bs-navy); }
.woocommerce-account .form-row .required { color: var(--bs-red); text-decoration: none; border: 0; }
.woocommerce-account .input-text,
.woocommerce-account select {
  display: block;
  width: 100%;
  padding: .65rem .9rem;
  font-size: 1rem;
  line-height: 1.5;
  color: var(--bs-body-color);
  background-color: #fff;
  border: 1px solid var(--bs-border-color);
  border-radius: .375rem;
}
.woocommerce-account .input-text:focus { border-color: var(--bs-primary); outline: 0; box-shadow: 0 0 0 .2rem rgba(var(--bs-primary-rgb), .2); }
.woocommerce-account .password-input { position: relative; display: block; }
.woocommerce-account .show-password-input { position: absolute; top: 50%; right: .75rem; transform: translateY(-50%); padding: 0; border: 0; background: none; color: var(--bs-primary); font-size: var(--bs-font-14); cursor: pointer; }
.woocommerce-account .show-password-input::after { content: "Show"; }
.woocommerce-account .show-password-input.display-password::after { content: "Hide"; }
.woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: .4rem; margin-right: 1rem; font-weight: 400 !important; font-family: inherit !important; }
.woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 2rem; padding: 0; list-style: none; }
.woocommerce-MyAccount-navigation a { display: block; padding: .45rem 1rem; border: 1px solid var(--bs-primary); border-radius: .25rem; font-family: var(--bs-font-heading); font-size: var(--bs-font-14); font-weight: 600; text-decoration: none; }
.woocommerce-MyAccount-navigation .is-active a,
.woocommerce-MyAccount-navigation a:hover { background: var(--bs-primary); color: #fff; }
.woocommerce table.shop_table:not(.table) { width: 100%; margin-bottom: 1.5rem; border-collapse: collapse; }
.woocommerce table.shop_table:not(.table) th,
.woocommerce table.shop_table:not(.table) td { padding: .75rem; border-bottom: 1px solid var(--bs-border-color); text-align: left; vertical-align: top; }
.woocommerce ul.order_details { display: flex; flex-wrap: wrap; gap: 1rem 2rem; margin: 0 0 2rem; padding: 1.25rem; list-style: none; background: var(--bs-cream); border-radius: .375rem; }
.woocommerce ul.order_details strong { display: block; color: var(--bs-navy); }
.woocommerce-customer-details address { font-style: normal; padding: 1rem; border: 1px solid var(--bs-border-color); border-radius: .375rem; }

/* Tour sidebar. The design CSS makes the booking box sticky without a background, so the help box
   scrolled over the booking form. The booking box now has a background and sits above the help box;
   on tall screens both boxes stick together, on short screens nothing sticks (the Book Now button stays reachable). */
@media (min-width: 992px) {
  .tour-detail .booking-box { position: sticky; z-index: 2; background-color: var(--bs-white, #fff); }
  .admin-bar .tour-detail .booking-box { top: calc(6.25rem + 32px); }
}
@media (min-width: 992px) and (min-height: 960px) {
  .tour-detail .booking-sticky { position: sticky; top: 6.25rem; }
  .admin-bar .tour-detail .booking-sticky { top: calc(6.25rem + 32px); }
  .tour-detail .booking-sticky .booking-box { position: static; }
}
@media (min-width: 992px) and (max-height: 759px) {
  .tour-detail .booking-box { position: static; }
}
