/**
 * North Hill Hotel — YITH Booking Form Styles
 * Overrides YITH defaults to match the site's warm gold palette and Flatsome section aesthetic.
 */

/* ─── 1. Colour token overrides ──────────────────────────────────────────── */
:root {
  --yith-wcbk-primary:          #c9a96e;
  --yith-wcbk-primary-light:    #e4cfa3;
  --yith-wcbk-primary-contrast: #ffffff;
  --yith-wcbk-border-color:     #e0d3be;
  --yith-wcbk-border-color-focus: #c9a96e;
  --yith-wcbk-shadow-focus:     0 0 0 3px rgba(201, 169, 110, 0.18);
  --yith-wcbk-success:          #6b8e5a;

  /* Local tokens */
  --nhh-gold:        #c9a96e;
  --nhh-gold-dark:   #b0903c;
  --nhh-cream:       #faf8f4;
  --nhh-border:      #e2d5c2;
  --nhh-label:       #8a7560;
  --nhh-text:        #4a4040;
}

/* ─── 2. "Reserve Your Stay" section wrapper ─────────────────────────────── */
.nhh-booking-section {
  margin-top: 32px;
  padding-top: 28px;
  border-top: 1px solid var(--nhh-border);
}

.nhh-booking-section__label {
  margin: 0 0 20px;
  font-size: 0.72em;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--nhh-label);
  font-weight: 600;
}

/* ─── 3. Form panel ──────────────────────────────────────────────────────── */
.yith-wcbk-booking-form {
  max-width: none;
  background: var(--nhh-cream);
  border: 1px solid var(--nhh-border);
  border-radius: 3px;
  padding: 24px 26px 20px;
  margin-bottom: 0;
}

/* ─── 4. Form labels ─────────────────────────────────────────────────────── */
.yith-wcbk-booking-form label,
.yith-wcbk-booking-form .yith-wcbk-booking-form__label,
.yith-wcbk-form-section > label {
  font-size: 0.72em;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--nhh-label);
  font-weight: 600;
  display: block;
  margin-bottom: 5px;
}

/* ─── 5. Inputs / selects ────────────────────────────────────────────────── */
.yith-wcbk-booking-form input[type="text"],
.yith-wcbk-booking-form input[type="number"],
.yith-wcbk-booking-form input[type="date"],
.yith-wcbk-booking-form select,
.yith-wcbk-booking-form .yith-wcbk-date-picker-input,
.yith-wcbk-booking-form .hasDatepicker {
  background: #ffffff;
  border: 1px solid var(--nhh-border);
  border-radius: 2px;
  padding: 10px 13px;
  color: var(--nhh-text);
  font-size: 0.9em;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  width: 100%;
}

.yith-wcbk-booking-form input[type="text"]:focus,
.yith-wcbk-booking-form input[type="number"]:focus,
.yith-wcbk-booking-form select:focus,
.yith-wcbk-booking-form .hasDatepicker:focus {
  border-color: var(--nhh-gold);
  box-shadow: var(--yith-wcbk-shadow-focus);
  outline: none;
}

/* ─── 6. People / guest counter ──────────────────────────────────────────── */
.yith-wcbk-people-selector__toggle-handler {
  background: #ffffff;
  border: 1px solid var(--nhh-border) !important;
  border-radius: 2px;
  color: var(--nhh-text);
  font-size: 0.9em;
}

.yith-wcbk-people-selector__toggle-handler:focus,
.yith-wcbk-people-selector__toggle-handler.open {
  border-color: var(--nhh-gold) !important;
}

.yith-wcbk-people-selector__field__plus,
.yith-wcbk-people-selector__field__minus {
  border-color: var(--nhh-gold) !important;
  color: var(--nhh-gold) !important;
  border-radius: 2px;
}

.yith-wcbk-people-selector__field__plus:hover,
.yith-wcbk-people-selector__field__minus:hover {
  background: var(--nhh-gold) !important;
  color: #ffffff !important;
}

/* ─── 7. Calendar month picker ───────────────────────────────────────────── */
.yith-wcbk-month-picker-wrapper .top-actions .prev.enabled:hover,
.yith-wcbk-month-picker-wrapper .top-actions .next.enabled:hover {
  color: var(--nhh-gold);
}

.yith-wcbk-month-picker-wrapper table td:hover {
  background: var(--nhh-gold) !important;
  color: #ffffff !important;
}

.yith-wcbk-month-picker-wrapper table td.selected,
.yith-wcbk-month-picker-wrapper table td.selected:hover {
  background: var(--nhh-gold-dark) !important;
  color: #ffffff !important;
}

/* Date range in/out day */
.yith-wcbk-calendar .yith-wcbk-calendar-day--check-in.selected,
.yith-wcbk-calendar .yith-wcbk-calendar-day--check-out.selected {
  background-color: var(--nhh-gold-dark) !important;
}

.yith-wcbk-calendar .yith-wcbk-calendar-day--selected:not(.yith-wcbk-calendar-day--check-in):not(.yith-wcbk-calendar-day--check-out) {
  background-color: var(--yith-wcbk-primary-light) !important;
  color: var(--nhh-text) !important;
}

/* ─── 8. Pricing display ─────────────────────────────────────────────────── */
.yith-wcbk-booking-form .price,
.yith-wcbk-booking-form .woocommerce-Price-amount,
.yith-wcbk-booking-form .yith-wcbk-price {
  color: var(--nhh-gold-dark);
  font-weight: 600;
}

/* ─── 9. Status messages ─────────────────────────────────────────────────── */
.yith-wcbk-booking-form-message p,
.yith-wcbk-booking-form-message .yith-wcbk-bookable {
  background: transparent;
  font-size: 0.8em;
  letter-spacing: 0.04em;
}

/* ─── 10. Add to Cart / Book button ──────────────────────────────────────── */
.single-product .single_add_to_cart_button,
.single-product button.single_add_to_cart_button,
.single-product .yith-wcbk-booking-form__submit .button {
  background-color: transparent !important;
  color: var(--nhh-gold) !important;
  border: 2px solid var(--nhh-gold) !important;
  border-radius: 2px !important;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  font-size: 0.75em;
  font-weight: 700;
  padding: 14px 30px;
  width: 100%;
  transition: background-color 0.25s ease, color 0.25s ease;
}

.single-product .single_add_to_cart_button:hover,
.single-product button.single_add_to_cart_button:hover,
.single-product .yith-wcbk-booking-form__submit .button:hover {
  background-color: var(--nhh-gold) !important;
  color: #ffffff !important;
}

/* Loading / disabled state */
.single-product .single_add_to_cart_button.loading,
.single-product .single_add_to_cart_button:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

/* ─── 11. Guest details section (theme custom fields) ────────────────────── */
#nhh-guest-details {
  background: #ffffff;
  border: 1px solid var(--nhh-border);
  border-radius: 2px;
  padding: 18px 16px 14px;
  margin-top: 14px;
  margin-bottom: 2px;
}

#nhh-guest-details h4 {
  font-size: 0.72em;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--nhh-label);
  font-weight: 600;
  margin: 0 0 6px;
}

#nhh-guest-details .nhh-guest-hint {
  font-size: 0.8em;
  color: #9a8c7e;
  margin-bottom: 10px !important;
}

#nhh-guest-details input[type="text"] {
  border: 1px solid var(--nhh-border);
  border-radius: 2px;
  padding: 8px 11px;
  font-size: 0.88em;
  width: 100%;
  transition: border-color 0.2s;
}

#nhh-guest-details input[type="text"]:focus {
  border-color: var(--nhh-gold);
  outline: none;
}

/* ─── 12. Booking / order mark elements ─────────────────────────────────── */

/* Strip the browser default yellow highlight from all WooCommerce/YITH marks */
mark.booking-id,
mark.booking-date,
mark.booking-status,
mark.order-number,
mark.order-date,
mark.order-status {
  background: none;
  color: inherit;
  padding: 0;
}

/* Booking/order reference — subtle bold */
mark.booking-id,
mark.order-number {
  font-weight: 700;
  color: var(--nhh-text);
}

/* Date — slightly muted */
mark.booking-date,
mark.order-date {
  font-weight: 600;
  color: #6b5c4a;
}

/* Status — pill badge in the hotel palette */
mark.booking-status,
mark.order-status {
  display: inline-block;
  background: #f5ede0;
  color: #8a6535;
  border: 1px solid #e2c99e;
  border-radius: 20px;
  padding: 2px 12px;
  font-size: 0.8em;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  vertical-align: middle;
}

/* ─── 13. Responsive ─────────────────────────────────────────────────────── */
@media (max-width: 44.375em) {
  .yith-wcbk-booking-form {
    padding: 18px 16px;
  }
  .nhh-booking-section {
    margin-top: 24px;
    padding-top: 22px;
  }
}

/**
 * North Hill Hotel - streamlined WooCommerce checkout.
 */
:root {
  --nhh-checkout-bg: #f7f7f5;
  --nhh-checkout-panel: #ffffff;
  --nhh-checkout-text: #1d1d1b;
  --nhh-checkout-muted: #686864;
  --nhh-checkout-border: #dedbd3;
  --nhh-checkout-soft: #f1eee7;
  --nhh-checkout-accent: #b0903c;
  --nhh-checkout-focus: 0 0 0 3px rgba(176, 144, 60, 0.18);
}

.woocommerce-checkout:not(.woocommerce-order-received) #main,
.woocommerce-checkout:not(.woocommerce-order-received) .page-wrapper {
  background: var(--nhh-checkout-bg);
}

.woocommerce-cart .checkout-page-title,
.woocommerce-checkout:not(.woocommerce-order-received) .checkout-page-title {
  display: none;
}

.woocommerce-checkout:not(.woocommerce-order-received) form.checkout {
  max-width: 1120px;
  margin: 0 auto;
  color: var(--nhh-checkout-text);
}

.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-form-coupon-toggle,
.woocommerce-checkout:not(.woocommerce-order-received) form.checkout_coupon {
  max-width: 1120px;
  margin-right: auto;
  margin-left: auto;
  padding-right: 15px;
  padding-left: 15px;
}

.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-form-coupon-toggle .woocommerce-info {
  margin: 0 0 14px;
}

.woocommerce-cart .nhh-checkout-steps,
.woocommerce-checkout .nhh-checkout-steps {
  max-width: 1120px;
  margin: 0 auto 22px;
  padding: 0 15px;
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 0.86rem;
  color: var(--nhh-checkout-muted);
}

.woocommerce-cart .nhh-checkout-steps a,
.woocommerce-cart .nhh-checkout-steps span,
.woocommerce-checkout .nhh-checkout-steps a,
.woocommerce-checkout .nhh-checkout-steps span {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
}

.woocommerce-cart .nhh-checkout-steps a,
.woocommerce-checkout .nhh-checkout-steps a {
  color: var(--nhh-checkout-muted);
}

.woocommerce-cart .nhh-checkout-steps a:hover,
.woocommerce-checkout .nhh-checkout-steps a:hover {
  color: var(--nhh-checkout-text);
}

.woocommerce-cart .nhh-checkout-steps a::after,
.woocommerce-cart .nhh-checkout-steps span:not(:last-child)::after,
.woocommerce-checkout .nhh-checkout-steps a::after,
.woocommerce-checkout .nhh-checkout-steps span:not(:last-child)::after {
  content: "";
  width: 6px;
  height: 6px;
  margin-left: 10px;
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
  transform: rotate(45deg);
  opacity: 0.55;
}

.woocommerce-cart .nhh-checkout-steps [aria-current="step"],
.woocommerce-checkout .nhh-checkout-steps [aria-current="step"] {
  color: var(--nhh-checkout-text);
  font-weight: 700;
}

.woocommerce-checkout form.checkout > .row {
  align-items: flex-start;
}

.woocommerce-checkout #customer_details,
.woocommerce-checkout .checkout-sidebar {
  background: var(--nhh-checkout-panel);
  border: 1px solid var(--nhh-checkout-border);
  border-radius: 6px;
}

.woocommerce-checkout:not(.woocommerce-order-received) .has-border {
  border: 0 !important;
  padding: 0 !important;
}

.woocommerce-checkout #customer_details {
  padding: 30px;
}

.woocommerce-checkout .checkout-sidebar {
  padding: 24px;
}

.woocommerce-checkout .checkout-sidebar .shop_table,
.woocommerce-checkout .checkout-sidebar table {
  margin-bottom: 18px;
}

.woocommerce-checkout .woocommerce-billing-fields {
  border-top: 0;
  padding-top: 0;
}

.woocommerce-checkout form.checkout h3 {
  margin: 0 0 18px;
  padding-top: 0;
  font-size: 1.2rem;
  line-height: 1.3;
  text-transform: none;
  letter-spacing: 0;
}

.woocommerce-checkout .form-row {
  margin-bottom: 14px;
}

.woocommerce-checkout .form-row label {
  margin-bottom: 6px;
  color: var(--nhh-checkout-muted);
  font-size: 0.84rem;
  font-weight: 700;
  line-height: 1.3;
  text-transform: none;
}

.woocommerce-checkout .required {
  color: var(--nhh-checkout-accent);
  text-decoration: none;
}

.woocommerce-checkout .select2-container .select2-selection--single,
.woocommerce-checkout input[type="text"],
.woocommerce-checkout input[type="email"],
.woocommerce-checkout input[type="tel"],
.woocommerce-checkout input[type="password"],
.woocommerce-checkout textarea,
.woocommerce-checkout select {
  min-height: 48px;
  margin-bottom: 0;
  border: 1px solid var(--nhh-checkout-border);
  border-radius: 4px;
  background: #ffffff;
  color: var(--nhh-checkout-text);
  font-size: 0.98rem;
  box-shadow: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.woocommerce-checkout .select2-container .select2-selection--single {
  display: flex;
  align-items: center;
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
  color: var(--nhh-checkout-text);
  line-height: 48px;
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 48px;
}

.woocommerce-checkout input:focus,
.woocommerce-checkout textarea:focus,
.woocommerce-checkout select:focus,
.woocommerce-checkout .select2-container--open .select2-selection--single {
  border-color: var(--nhh-checkout-accent);
  box-shadow: var(--nhh-checkout-focus);
  outline: none;
}

.woocommerce-checkout #order_review_heading {
  margin-bottom: 16px;
}

.woocommerce-checkout .shop_table th,
.woocommerce-checkout .shop_table td {
  border-color: var(--nhh-checkout-border);
  color: var(--nhh-checkout-text);
  letter-spacing: 0;
}

.woocommerce-checkout .shop_table thead {
  display: none;
}

.woocommerce-checkout .shop_table .cart_item td {
  padding-top: 14px;
  padding-bottom: 14px;
}

.woocommerce-checkout .shop_table .product-name {
  font-weight: 700;
}

.woocommerce-checkout .shop_table .product-total,
.woocommerce-checkout .shop_table tfoot td {
  text-align: right;
}

.woocommerce-checkout .shop_table tfoot th {
  color: var(--nhh-checkout-muted);
  font-weight: 600;
}

.woocommerce-checkout .shop_table .order-total th,
.woocommerce-checkout .shop_table .order-total td {
  padding-top: 18px;
  border-top-width: 2px;
  font-size: 1.08rem;
}

.woocommerce-checkout .payment_methods {
  border: 1px solid var(--nhh-checkout-border);
  border-radius: 6px;
  background: #ffffff;
  overflow: hidden;
}

.woocommerce-checkout .payment_methods li {
  padding: 14px 16px;
}

.woocommerce-checkout .payment_methods li + li {
  border-top: 1px solid var(--nhh-checkout-border);
}

.woocommerce-checkout .payment_methods label {
  margin-bottom: 0;
  color: var(--nhh-checkout-text);
  font-weight: 700;
}

.woocommerce-checkout .payment_box {
  margin: 12px 0 0;
  padding: 14px;
  border-radius: 4px;
  background: var(--nhh-checkout-soft);
  color: var(--nhh-checkout-muted);
}

.woocommerce-checkout .woocommerce-privacy-policy-text {
  color: var(--nhh-checkout-muted);
  font-size: 0.84rem;
  line-height: 1.5;
}

.woocommerce-checkout button#place_order {
  min-height: 52px;
  margin-top: 12px;
  border-radius: 4px !important;
  background: var(--nhh-checkout-text) !important;
  color: #ffffff !important;
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.woocommerce-checkout button#place_order:hover,
.woocommerce-checkout button#place_order:focus {
  background: var(--nhh-checkout-accent) !important;
  box-shadow: var(--nhh-checkout-focus);
}

.widget_shopping_cart .woocommerce-mini-cart-item {
  position: relative;
  padding: 0 0 16px !important;
  border-bottom: 1px solid var(--nhh-checkout-border);
}

.widget_shopping_cart .woocommerce-mini-cart-item + .woocommerce-mini-cart-item {
  margin-top: 16px;
}

.widget_shopping_cart .woocommerce-mini-cart-item > .remove {
  display: flex;
  top: 10px;
  right: 10px;
  z-index: 2;
  width: 26px;
  height: 26px;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(84, 96, 116, 0.22);
  background: rgba(255, 255, 255, 0.92);
  color: var(--nhh-checkout-muted);
  font-size: 16px;
  line-height: 1;
  text-align: center;
}

.widget_shopping_cart ul.product_list_widget li > a:not(.remove) {
  display: none;
}

.widget_shopping_cart .nhh-mini-cart-image,
.widget_shopping_cart ul.product_list_widget li img {
  display: none !important;
}

.widget_shopping_cart .variation-Guests {
  display: none !important;
}

.widget_shopping_cart .nhh-mini-cart-card {
  display: block;
}

.widget_shopping_cart .nhh-mini-cart-summary {
  color: var(--nhh-checkout-text);
}

.widget_shopping_cart .nhh-mini-cart-title {
  display: block;
  margin: 0 28px 9px 0;
  color: var(--nhh-checkout-text);
  font-size: 1rem;
  line-height: 1.25;
  font-weight: 700;
}

.widget_shopping_cart .nhh-mini-cart-meta dl {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  gap: 8px 10px;
  align-items: baseline;
  margin: 0;
  color: var(--nhh-checkout-text);
  font-size: 0.86rem;
  line-height: 1.25;
}

.widget_shopping_cart .nhh-mini-cart-meta dt,
.widget_shopping_cart .nhh-mini-cart-meta dd {
  display: block;
  margin: 0;
  min-width: 0;
}

.widget_shopping_cart .nhh-mini-cart-meta dt {
  color: var(--nhh-checkout-muted);
  font-weight: 700;
  white-space: nowrap;
}

.widget_shopping_cart .nhh-mini-cart-meta p {
  margin: 0;
  line-height: inherit;
}

.widget_shopping_cart .nhh-mini-cart-quantity {
  display: block;
  margin-top: 14px;
  margin-bottom: 14px;
  color: var(--nhh-checkout-muted);
  font-size: 0.9rem;
  font-weight: 700;
  line-height: 1.25;
}

.woocommerce-mini-cart-item .ux-mini-cart-qty {
  margin-top: 10px;
  margin-right: -30px;
}

@media (min-width: 850px) {
  .woocommerce-checkout .checkout-sidebar {
    position: sticky;
    top: 24px;
  }
}

@media (max-width: 849px) {
  .woocommerce-cart .nhh-checkout-steps,
  .woocommerce-checkout .nhh-checkout-steps {
    margin-bottom: 14px;
    overflow-x: auto;
    white-space: nowrap;
  }

  .woocommerce-checkout form.checkout > .row {
    display: flex;
    flex-direction: column;
  }

  .woocommerce-checkout form.checkout > .row > .large-5.col {
    order: -1;
  }

  .woocommerce-checkout #customer_details,
  .woocommerce-checkout .checkout-sidebar {
    padding: 20px;
    border-radius: 4px;
  }
}

@media (max-width: 549px) {
  .woocommerce-checkout #customer_details,
  .woocommerce-checkout .checkout-sidebar {
    padding: 16px;
  }

  .woocommerce-checkout form.checkout h3 {
    font-size: 1.08rem;
  }

  .woocommerce-checkout .form-row-first,
  .woocommerce-checkout .form-row-last {
    float: none;
    width: 100%;
    margin-right: 0;
  }
}

/**
 * North Hill Hotel - streamlined WooCommerce cart.
 */
.woocommerce-cart {
  --nhh-cart-bg: #f7f7f5;
  --nhh-cart-panel: #ffffff;
  --nhh-cart-text: #1d1d1b;
  --nhh-cart-muted: #686864;
  --nhh-cart-border: #dedbd3;
  --nhh-cart-soft: #f1eee7;
  --nhh-cart-accent: #b0903c;
}

.woocommerce-cart #main,
.woocommerce-cart .page-wrapper {
  background: var(--nhh-cart-bg);
}

.woocommerce-cart .checkout-page-title {
  padding: 26px 0 8px;
  background: var(--nhh-cart-bg);
}

.woocommerce-cart .checkout-breadcrumbs {
  font-size: 1rem;
  letter-spacing: 0;
  text-transform: none;
}

.woocommerce-cart .checkout-breadcrumbs a {
  color: var(--nhh-cart-muted);
}

.woocommerce-cart .checkout-breadcrumbs a.current {
  color: var(--nhh-cart-text);
}

.woocommerce-cart .cart-container {
  max-width: 1180px;
  padding-top: 18px;
}

.woocommerce-cart .woocommerce.row {
  align-items: flex-start;
}

.woocommerce-cart .cart-wrapper,
.woocommerce-cart .cart-sidebar {
  background: var(--nhh-cart-panel);
  border: 1px solid var(--nhh-cart-border);
  border-radius: 6px;
}

.woocommerce-cart .cart-wrapper {
  padding: 4px 22px 18px;
  overflow: visible;
}

.woocommerce-cart .cart-sidebar {
  padding: 24px;
}

.woocommerce-cart .shop_table.cart {
  display: block;
  margin-bottom: 0;
}

.woocommerce-cart .shop_table.cart thead {
  display: none;
}

.woocommerce-cart .shop_table.cart tbody {
  display: block;
}

.woocommerce-cart .shop_table.cart tr.cart_item {
  position: relative;
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr) auto;
  grid-template-areas:
    "image name remove"
    "image price qty"
    "image subtotal subtotal";
  gap: 8px 18px;
  padding: 18px 0;
  border-bottom: 1px solid var(--nhh-cart-border);
}

.woocommerce-cart .shop_table.cart tr.cart_item td {
  display: block;
  padding: 0;
  border: 0;
}

.woocommerce-cart .shop_table.cart .product-remove {
  grid-area: remove;
  align-self: start;
  justify-self: center;
}

.woocommerce-cart .shop_table.cart .product-remove a.remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  line-height: 1 !important;
  border: 1px solid var(--nhh-cart-border);
  border-radius: 50%;
  color: var(--nhh-cart-muted);
  font-size: 18px;
  text-align: center;
}

.woocommerce-cart .shop_table.cart .product-remove a.remove:hover {
  border-color: var(--nhh-cart-text);
  background: var(--nhh-cart-text);
  color: #ffffff;
}

.woocommerce-cart .shop_table.cart .product-thumbnail {
  grid-area: image;
}

.woocommerce-cart .shop_table.cart .product-thumbnail img {
  width: 96px;
  height: 96px;
  border-radius: 4px;
  object-fit: cover;
  background: var(--nhh-cart-soft);
}

.woocommerce-cart .shop_table.cart .product-name {
  grid-area: name;
  color: var(--nhh-cart-text);
  font-size: 0.95rem;
  line-height: 1.4;
}

.woocommerce-cart .shop_table.cart .product-name > a,
.woocommerce-cart .shop_table.cart .product-name .yith-wcbk-booking-of + a {
  display: inline-block;
  margin-bottom: 8px;
  color: var(--nhh-cart-text);
  font-size: 1rem;
  font-weight: 700;
}

.woocommerce-cart .shop_table.cart .yith-wcbk-booking-of {
  display: block;
  margin-bottom: 2px;
  color: var(--nhh-cart-muted);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.woocommerce-cart .shop_table.cart dl.variation {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
  font-size: 0.82rem;
  text-transform: none;
}

.woocommerce-cart .shop_table.cart dl.variation dt,
.woocommerce-cart .shop_table.cart dl.variation dd {
  float: none;
  margin: 0;
  padding: 5px 8px;
  border-radius: 999px;
  background: var(--nhh-cart-soft);
  color: var(--nhh-cart-muted);
  line-height: 1.2;
}

.woocommerce-cart .shop_table.cart dl.variation dt {
  padding-right: 0;
  background: transparent;
  font-weight: 700;
}

.woocommerce-cart .shop_table.cart dl.variation dd {
  margin-right: 4px;
}

.woocommerce-cart .shop_table.cart dl.variation p {
  margin: 0;
}

.woocommerce-cart .shop_table.cart .product-price {
  grid-area: price;
  align-self: end;
  color: var(--nhh-cart-muted);
  font-size: 0.9rem;
}

.woocommerce-cart .shop_table.cart .product-quantity {
  grid-area: qty;
  align-self: end;
}

.woocommerce-cart .shop_table.cart .product-subtotal {
  grid-area: subtotal;
  justify-self: end;
  color: var(--nhh-cart-text);
  font-size: 1rem;
  font-weight: 700;
}

.woocommerce-cart .shop_table.cart .actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  padding: 18px 0 0;
}

.woocommerce-cart .shop_table.cart .actions::before,
.woocommerce-cart .shop_table.cart .actions::after {
  display: none;
}

.woocommerce-cart .continue-shopping {
  float: none !important;
  display: flex;
  align-items: stretch;
  margin: 0;
}

.woocommerce-cart .button-continue-shopping,
.woocommerce-cart .shop_table.cart button[name="update_cart"] {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  height: 42px;
  min-height: 42px;
  padding: 0 18px !important;
  margin: 0;
  border-radius: 4px !important;
  font-size: 0.84rem;
  line-height: 1 !important;
  letter-spacing: 0.06em;
  vertical-align: top;
}

.woocommerce-cart .button-continue-shopping span {
  line-height: 1;
}

.woocommerce-cart .cart_totals > table:first-child {
  display: none;
}

.woocommerce-cart .cart_totals h2 {
  display: block;
  margin: 0 0 18px;
  color: var(--nhh-cart-text);
  font-size: 1.2rem;
  line-height: 1.3;
  text-transform: none;
  letter-spacing: 0;
}

.woocommerce-cart .cart_totals .shop_table {
  margin-bottom: 16px;
}

.woocommerce-cart .cart_totals .shop_table th,
.woocommerce-cart .cart_totals .shop_table td {
  padding: 10px 0;
  border-color: var(--nhh-cart-border);
  color: var(--nhh-cart-text);
  letter-spacing: 0;
  text-transform: none;
}

.woocommerce-cart .cart_totals .shop_table td {
  text-align: right;
}

.woocommerce-cart .cart_totals .order-total th,
.woocommerce-cart .cart_totals .order-total td {
  padding-top: 16px;
  border-top-width: 2px;
  font-size: 1.08rem;
}

.woocommerce-cart .wc-proceed-to-checkout {
  margin: 18px 0 0;
}

.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  width: 100%;
  padding: 0 22px !important;
  margin: 0;
  border-radius: 4px !important;
  background: var(--nhh-cart-text) !important;
  color: #ffffff !important;
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover,
.woocommerce-cart .wc-proceed-to-checkout .checkout-button:focus {
  background: var(--nhh-cart-accent) !important;
}

.woocommerce-cart .ux-cart-coupon {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--nhh-cart-border);
}

.woocommerce-cart .ux-cart-coupon .widget-title {
  margin-bottom: 10px;
  color: var(--nhh-cart-muted);
  font-size: 0.84rem;
  letter-spacing: 0;
  text-transform: none;
}

.woocommerce-cart .ux-cart-coupon .coupon {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
}

.woocommerce-cart .ux-cart-coupon .widget-title {
  grid-column: 1 / -1;
}

.woocommerce-cart .ux-cart-coupon input,
.woocommerce-cart .ux-cart-coupon button {
  min-height: 42px;
  margin: 0;
  border-radius: 4px !important;
}

.woocommerce-cart .ux-cart-coupon button {
  padding-right: 16px !important;
  padding-left: 16px !important;
}

.woocommerce-cart .nhh-cart-reassurance {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--nhh-cart-border);
  color: var(--nhh-cart-muted);
  font-size: 0.6rem;
  line-height: 1.35;
}

.woocommerce-cart .nhh-cart-reassurance p {
  margin: 0 0 6px;
  color: var(--nhh-cart-text);
  font-weight: 700;
}

.woocommerce-cart .nhh-cart-reassurance ul {
  margin: 0;
}

.woocommerce-cart .nhh-cart-reassurance li {
  margin: 0 0 4px;
  list-style: none;
}

.woocommerce-cart .nhh-cart-reassurance li::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 10px;
  margin-right: 8px;
  border-right: 2px solid var(--nhh-cart-accent);
  border-bottom: 2px solid var(--nhh-cart-accent);
  transform: rotate(40deg);
}

.nhh-cart-mobile-cta {
  display: none;
}

.woocommerce-MyAccount-content h3 {
  margin: 0 0 18px;
  color: var(--nhh-checkout-text);
  font-size: 1.3rem;
  line-height: 1.25;
  text-transform: none;
  letter-spacing: 0;
}

.nhh-account-booking-tabs {
  display: grid;
  gap: 14px;
}

.nhh-account-booking-tabs__input {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}

.nhh-account-booking-tabs__nav {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: min(100%, 360px);
  max-width: 100%;
  gap: 4px;
  padding: 4px;
  border: 1px solid var(--nhh-checkout-border);
  border-radius: 6px;
  background: #ffffff;
}

.nhh-account-booking-tabs__nav label {
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 0;
  padding: 0 14px;
  border-radius: 4px;
  color: var(--nhh-checkout-muted);
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
}

.nhh-account-booking-tabs__label {
  overflow: hidden;
  text-overflow: ellipsis;
}

.nhh-account-booking-tabs__count {
  min-width: 24px;
  padding: 5px 7px;
  border-radius: 999px;
  background: var(--nhh-checkout-soft);
  color: var(--nhh-checkout-text);
  font-size: 0.72rem;
  line-height: 1;
  text-align: center;
}

.nhh-account-booking-tabs__input--upcoming:checked ~ .nhh-account-booking-tabs__nav label[data-tab="upcoming"],
.nhh-account-booking-tabs__input--past:checked ~ .nhh-account-booking-tabs__nav label[data-tab="past"] {
  background: var(--nhh-checkout-text);
  color: #ffffff;
}

.nhh-account-booking-tabs__input--upcoming:checked ~ .nhh-account-booking-tabs__nav label[data-tab="upcoming"] .nhh-account-booking-tabs__count,
.nhh-account-booking-tabs__input--past:checked ~ .nhh-account-booking-tabs__nav label[data-tab="past"] .nhh-account-booking-tabs__count {
  background: rgba(255, 255, 255, 0.16);
  color: #ffffff;
}

.nhh-account-booking-panel {
  display: none;
  gap: 14px;
}

.nhh-account-booking-tabs__input--upcoming:checked ~ .nhh-account-booking-panel--upcoming,
.nhh-account-booking-tabs__input--past:checked ~ .nhh-account-booking-panel--past {
  display: grid;
}

.nhh-account-booking-next,
.nhh-account-booking-empty {
  padding: 14px 16px;
  border-radius: 6px;
  background: var(--nhh-checkout-soft);
  color: var(--nhh-checkout-text);
}

.nhh-account-booking-next {
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: space-between;
}

.nhh-account-booking-next span {
  color: var(--nhh-checkout-muted);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.2;
  text-transform: uppercase;
}

.nhh-account-booking-next strong {
  color: var(--nhh-checkout-text);
  font-size: 1rem;
  line-height: 1.25;
}

.nhh-account-bookings {
  display: grid;
  gap: 14px;
}

.nhh-account-booking-card {
  display: grid;
  gap: 16px;
  padding: 18px;
  border: 1px solid var(--nhh-checkout-border);
  border-radius: 6px;
  background: #ffffff;
  box-shadow: 0 8px 22px rgba(29, 29, 27, 0.05);
}

.nhh-account-booking-card__main {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  justify-content: space-between;
}

.nhh-account-booking-card__eyebrow {
  margin: 0 0 4px;
  color: var(--nhh-checkout-muted);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.2;
  text-transform: uppercase;
}

.nhh-account-booking-card__title {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.28;
}

.nhh-account-booking-card__title a {
  color: var(--nhh-checkout-text);
}

.nhh-account-booking-card__status {
  flex: 0 0 auto;
  min-width: 86px;
  padding: 7px 10px;
  border-radius: 999px;
  background: rgba(42, 95, 31, 0.1);
  color: #2a5f1f;
  font-size: 0.76rem;
  font-weight: 700;
  line-height: 1;
  text-align: center;
}

.nhh-account-booking-card--cancelled .nhh-account-booking-card__status,
.nhh-account-booking-card--cancelled_by_user .nhh-account-booking-card__status,
.nhh-account-booking-card--cancelled-by-user .nhh-account-booking-card__status {
  background: rgba(104, 104, 100, 0.13);
  color: var(--nhh-checkout-muted);
}

.nhh-account-booking-card__details {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.nhh-account-booking-card__details div {
  min-height: 70px;
  padding: 12px;
  border-radius: 4px;
  background: var(--nhh-checkout-soft);
}

.nhh-account-booking-card__details span {
  display: block;
  margin-bottom: 5px;
  color: var(--nhh-checkout-muted);
  font-size: 0.74rem;
  font-weight: 700;
  line-height: 1.2;
}

.nhh-account-booking-card__details strong,
.nhh-account-booking-card__details a {
  color: var(--nhh-checkout-text);
  font-size: 0.94rem;
  line-height: 1.25;
}

.nhh-account-booking-card__extras {
  display: grid;
  gap: 10px;
}

.nhh-account-booking-card__extras div {
  padding: 12px;
  border-left: 3px solid var(--nhh-checkout-accent);
  border-radius: 4px;
  background: #ffffff;
  box-shadow: inset 0 0 0 1px var(--nhh-checkout-border);
}

.nhh-account-booking-card__extras span {
  display: block;
  margin-bottom: 5px;
  color: var(--nhh-checkout-muted);
  font-size: 0.74rem;
  font-weight: 700;
  line-height: 1.2;
}

.nhh-account-booking-card__extras p {
  margin: 0;
  color: var(--nhh-checkout-text);
  font-size: 0.94rem;
  line-height: 1.45;
}

.nhh-account-booking-card__actions {
  display: flex;
  justify-content: flex-end;
}

.nhh-account-booking-card__actions .yith-wcbk-booking-actions {
  display: flex;
  gap: 8px;
}

.nhh-account-booking-card__actions .button {
  min-height: 40px;
  margin: 0;
  padding: 0 18px;
  border-radius: 4px;
  background: var(--nhh-checkout-text);
  color: #ffffff;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 40px;
  text-transform: uppercase;
}

.nhh-account-orders {
  display: grid;
  gap: 14px;
}

.nhh-account-order-card,
.nhh-account-order-view {
  display: grid;
  gap: 16px;
  padding: 18px;
  border: 1px solid var(--nhh-checkout-border);
  border-radius: 6px;
  background: #ffffff;
  box-shadow: 0 8px 22px rgba(29, 29, 27, 0.05);
}

.nhh-account-order-card__main,
.nhh-account-order-view__hero {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  justify-content: space-between;
}

.nhh-account-order-card__eyebrow,
.nhh-account-order-view__eyebrow {
  margin: 0 0 4px;
  color: var(--nhh-checkout-muted);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.2;
  text-transform: uppercase;
}

.nhh-account-order-card__title,
.nhh-account-order-view__title {
  margin: 0;
  color: var(--nhh-checkout-text);
  font-size: 1.05rem;
  line-height: 1.28;
}

.nhh-account-order-card__title a {
  color: var(--nhh-checkout-text);
}

.nhh-account-order-card__summary {
  margin: 7px 0 0;
  color: var(--nhh-checkout-text);
  font-size: 0.96rem;
  font-weight: 700;
  line-height: 1.35;
}

.nhh-account-order-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  margin: 6px 0 0;
  color: var(--nhh-checkout-muted);
  font-size: 0.82rem;
  line-height: 1.35;
}

.nhh-account-order-card__meta span {
  display: inline-flex;
  align-items: center;
}

.nhh-account-order-card__meta span + span::before {
  width: 4px;
  height: 4px;
  margin-right: 10px;
  border-radius: 999px;
  background: currentColor;
  content: "";
  opacity: 0.45;
}

.nhh-account-order-card__status,
.nhh-account-order-view__status {
  flex: 0 0 auto;
  min-width: 96px;
  padding: 7px 10px;
  border-radius: 999px;
  background: rgba(42, 95, 31, 0.1);
  color: #2a5f1f;
  font-size: 0.76rem;
  font-weight: 700;
  line-height: 1;
  text-align: center;
}

.nhh-account-order-card--cancelled .nhh-account-order-card__status,
.nhh-account-order-card--failed .nhh-account-order-card__status,
.nhh-account-order-card--refunded .nhh-account-order-card__status,
.nhh-account-order-view--cancelled .nhh-account-order-view__status,
.nhh-account-order-view--failed .nhh-account-order-view__status,
.nhh-account-order-view--refunded .nhh-account-order-view__status {
  background: rgba(104, 104, 100, 0.13);
  color: var(--nhh-checkout-muted);
}

.nhh-account-order-card--pending .nhh-account-order-card__status,
.nhh-account-order-card--on-hold .nhh-account-order-card__status,
.nhh-account-order-view--pending .nhh-account-order-view__status,
.nhh-account-order-view--on-hold .nhh-account-order-view__status {
  background: rgba(225, 184, 111, 0.22);
  color: #8a5c15;
}

.nhh-account-order-card__details,
.nhh-account-order-view__stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.nhh-account-order-view__stats {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.nhh-account-order-card__details div,
.nhh-account-order-view__stats div {
  min-height: 70px;
  padding: 12px;
  border-radius: 4px;
  background: var(--nhh-checkout-soft);
}

.nhh-account-order-card__details span,
.nhh-account-order-view__stats span {
  display: block;
  margin-bottom: 5px;
  color: var(--nhh-checkout-muted);
  font-size: 0.74rem;
  font-weight: 700;
  line-height: 1.2;
}

.nhh-account-order-card__details strong,
.nhh-account-order-view__stats strong {
  color: var(--nhh-checkout-text);
  font-size: 0.94rem;
  line-height: 1.25;
}

.nhh-account-order-card__details .amount,
.nhh-account-order-view__stats .amount {
  display: inline-flex;
  gap: 3px;
  align-items: baseline;
}

.nhh-account-order-card__details .woocommerce-Price-currencySymbol,
.nhh-account-order-view__stats .woocommerce-Price-currencySymbol {
  display: inline-block;
}

.nhh-account-order-card__actions {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
}

.nhh-account-order-card__actions .button,
.nhh-account-order-view .order-actions-button {
  min-height: 40px;
  margin: 0;
  padding: 0 18px;
  border-radius: 4px;
  background: var(--nhh-checkout-text);
  color: #ffffff;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 40px;
  text-transform: uppercase;
}

.nhh-account-order-view__updates {
  padding: 14px;
  border-left: 3px solid var(--nhh-checkout-accent);
  border-radius: 4px;
  background: #ffffff;
  box-shadow: inset 0 0 0 1px var(--nhh-checkout-border);
}

.nhh-account-order-view__updates h4 {
  margin: 0 0 10px;
  color: var(--nhh-checkout-text);
  font-size: 1rem;
  line-height: 1.3;
}

.nhh-account-order-view__updates .woocommerce-OrderUpdates {
  margin: 0;
}

.nhh-account-order-view__body {
  display: grid;
  gap: 16px;
}

.nhh-account-order-view .woocommerce-order-details,
.nhh-account-order-view .woocommerce-customer-details {
  margin: 0;
  padding: 18px;
  border: 1px solid var(--nhh-checkout-border);
  border-radius: 6px;
  background: #ffffff;
}

.nhh-account-order-view .woocommerce-order-details__title,
.nhh-account-order-view .woocommerce-column__title,
.nhh-account-order-view .woocommerce-order-details h2 {
  margin: 0 0 14px;
  color: var(--nhh-checkout-text);
  font-size: 1.05rem;
  line-height: 1.3;
  text-transform: none;
  letter-spacing: 0;
}

.nhh-account-order-view .woocommerce-table--order-details {
  margin: 0;
  border: 0;
}

.nhh-account-order-view .woocommerce-table--order-details th,
.nhh-account-order-view .woocommerce-table--order-details td {
  padding: 12px 0;
  border-color: var(--nhh-checkout-border);
  color: var(--nhh-checkout-text);
}

.nhh-account-order-view .woocommerce-table--order-details thead th {
  color: var(--nhh-checkout-muted);
  font-size: 0.74rem;
  font-weight: 700;
  text-transform: uppercase;
}

.nhh-account-order-view .woocommerce-table--order-details .product-total,
.nhh-account-order-view .woocommerce-table--order-details tfoot td {
  text-align: right;
}

.nhh-account-order-view .woocommerce-table--order-details tfoot th,
.nhh-account-order-view .woocommerce-table--order-details tfoot td {
  font-weight: 700;
}

.nhh-account-order-view .woocommerce-customer-details address {
  margin: 0;
  padding: 14px;
  border: 0;
  border-radius: 4px;
  background: var(--nhh-checkout-soft);
  color: var(--nhh-checkout-text);
  font-style: normal;
  line-height: 1.55;
}

.nhh-account-order-view .woocommerce-customer-details--phone,
.nhh-account-order-view .woocommerce-customer-details--email {
  margin: 8px 0 0;
}

@media (min-width: 850px) {
  .woocommerce-cart .cart-sidebar {
    position: sticky;
    top: 24px;
  }
}

@media (max-width: 849px) {
  .nhh-account-booking-card__details,
  .nhh-account-order-card__details,
  .nhh-account-order-view__stats {
    grid-template-columns: 1fr;
  }

  .nhh-account-booking-card__details div,
  .nhh-account-order-card__details div,
  .nhh-account-order-view__stats div {
    min-height: 0;
  }

  .nhh-account-booking-tabs__nav {
    width: 100%;
  }

  .nhh-account-booking-next {
    display: grid;
    gap: 5px;
  }

  .woocommerce-cart .cart-container {
    padding-top: 10px;
  }

  .woocommerce-cart .woocommerce.row {
    display: flex;
    flex-direction: column;
  }

  .woocommerce-cart .cart-collaterals {
    order: -1;
  }

  .woocommerce-cart .cart-wrapper,
  .woocommerce-cart .cart-sidebar {
    padding: 18px;
    border-radius: 4px;
  }

  .woocommerce-cart .cart-sidebar {
    margin-bottom: 18px;
  }
}

@media (max-width: 549px) {
  .woocommerce-cart .shop_table.cart tr.cart_item {
    grid-template-columns: 78px minmax(0, 1fr) 30px;
    grid-template-areas:
      "image name remove"
      "image subtotal subtotal";
    gap: 8px 12px;
  }

  .woocommerce-cart .shop_table.cart .product-thumbnail img {
    width: 78px;
    height: 78px;
  }

  .woocommerce-cart .shop_table.cart .product-price,
  .woocommerce-cart .shop_table.cart .product-quantity {
    display: none;
  }

  .woocommerce-cart .shop_table.cart .product-subtotal {
    justify-self: start;
  }

  .woocommerce-cart .shop_table.cart dl.variation {
    gap: 4px;
    font-size: 0.78rem;
  }

  .woocommerce-cart .shop_table.cart .actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .woocommerce-cart .button-continue-shopping,
  .woocommerce-cart .shop_table.cart button[name="update_cart"] {
    width: 100%;
  }

  .woocommerce-cart .ux-cart-coupon .coupon {
    grid-template-columns: 1fr;
  }

  .woocommerce-cart .cart-container {
    padding-bottom: 104px;
  }

  .nhh-cart-mobile-cta {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 99;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 12px 14px;
    border-top: 1px solid var(--nhh-cart-border);
    background: #ffffff;
    box-shadow: 0 -6px 20px rgba(0, 0, 0, 0.08);
  }

  .nhh-cart-mobile-cta span {
    display: block;
    color: var(--nhh-cart-muted);
    font-size: 0.74rem;
    line-height: 1.2;
  }

  .nhh-cart-mobile-cta strong {
    display: block;
    color: var(--nhh-cart-text);
    font-size: 1rem;
    line-height: 1.3;
  }

  .nhh-cart-mobile-cta a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 0 18px;
    border-radius: 4px;
    background: var(--nhh-cart-text);
    color: #ffffff;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
  }
}
