/* HIER booking flow — presentation only; native forms and data retained.
 * Requires explicit body classes from the companion PHP proposal:
 * .hier-booking-flow for product/cart/checkout; .hier-booking-product for products.
 * Checkout endpoints and non-native forms must not receive this scope.
 * Live checks required: Astra wrappers, gallery zoom/thumbnails, PH calendars,
 * notices, native cart adjacency, checkout children, gateway/Select2 controls,
 * 320px/390px/768px/desktop layouts and keyboard focus. No fields are hidden,
 * visually reordered, cloned or moved. No payment iframe styling is included.
 */
body.hier-booking-flow #content { background: #f7f8f4; }
body.hier-booking-flow #content > .ast-container {
  max-width: 1168px;
  padding-left: 24px;
  padding-right: 24px;
}
body.hier-booking-flow #primary { margin-top: 32px; margin-bottom: 48px; }
body.hier-booking-flow #main .entry-title,
body.hier-booking-product #main h1.product_title {
  color: #23482d;
  font-size: clamp(26px, 3vw, 32px);
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -.02em;
  margin-bottom: 16px;
}
body.hier-booking-flow #main .woocommerce-breadcrumb {
  margin-bottom: 16px;
  font-size: 13px;
  color: #62695f;
}
body.hier-booking-flow #main :is(a, button, input, select, textarea):focus-visible {
  outline: 3px solid #336611;
  outline-offset: 3px;
}

/* Images only: preserve WooCommerce gallery geometry, zoom and calendar width. */
body.hier-booking-product #main .woocommerce-product-gallery__image img:not(.zoomImg) { border-radius: 16px; }
body.hier-booking-product #main .flex-control-thumbs img { border-radius: 8px; }
body.hier-booking-product #main div.product > .summary.entry-summary > .price {
  color: #34432f;
  font-size: 20px;
  line-height: 1.5;
  margin-bottom: 16px;
}
body.hier-booking-product #main .hier-booking-jump { display: none; clear: both; margin: 0 0 18px; }
body.hier-booking-product #main .hier-booking-jump .button {
  display: inline-flex; align-items: center; min-height: 44px; padding: 9px 16px;
  border: 1px solid #9aa991; border-radius: 8px; color: #23482d;
  background: #fff; font-size: 15px; font-weight: 600; text-decoration: none;
}
body.hier-booking-product #main .hier-booking-jump .button:hover { background: #eef2e8; color: #23482d; }
body.hier-booking-product #main .hier-booking-form-heading {
  scroll-margin-top: 112px; color: #23482d; font-size: 21px; line-height: 1.3; margin: 18px 0 12px;
}
body.hier-booking-product #main div.product.product-type-phive_booking > .summary.entry-summary > form.cart {
  box-sizing: border-box; clear: both; width: 100%; padding: 18px;
  border: 1px solid #dfe6d9; border-radius: 16px; background: #fff;
  box-shadow: 0 4px 18px rgba(20,49,31,.055); margin: 0 0 24px;
}
body.hier-booking-product #main div.product.product-type-phive_booking > .summary.entry-summary > form.cart .single_add_to_cart_button {
  width: 100%; margin: 14px 0 0;
}
body.hier-booking-product #main .product_meta { font-size: 13px; color: #62695f; }
body.hier-booking-product #main .summary form.cart .input-text:not([type="hidden"]),
body.hier-booking-product #main .summary form.cart input.input-person,
body.hier-booking-product #main .summary form.variations_form select {
  box-sizing: border-box; min-height: 44px; padding: 8px 10px;
  border: 1px solid #9aa991; border-radius: 8px; background: #fff; font-size: 16px;
}
body.hier-booking-product #main .related .astra-shop-thumbnail-wrap img { border-radius: 12px; }
body.hier-booking-product #main .woocommerce-tabs { padding-top: 20px; }
body.hier-booking-product #main .woocommerce-tabs h2 { color: #23482d; font-size: 25px; }
body.hier-booking-product #main .woocommerce-tabs h3 { color: #23482d; font-size: 21px; }
body.hier-booking-product #main div.product > .summary.entry-summary > .woocommerce-product-details__short-description {
  color: #46533f;
  font-size: 16px;
  line-height: 1.65;
}
body.hier-booking-product #main div.product > .summary.entry-summary > .woocommerce-product-details__short-description p { margin-bottom: 16px; }
body.hier-booking-product #main .woocommerce-product-details__short-description::after { content: ''; display: table; clear: both; }
body.hier-booking-product #main div.product.product-type-phive_booking > .summary.entry-summary > form.cart + .woocommerce-product-details__short-description {
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid #dce4d5;
}
body.hier-booking-product #main .single_add_to_cart_button,
body.hier-booking-flow.woocommerce-cart #main .checkout-button,
body.hier-booking-flow.woocommerce-checkout #main #place_order {
  box-sizing: border-box;
  min-height: 46px;
  padding: 12px 18px;
  border: 1px solid #336611;
  border-radius: 8px;
  background: #336611;
  color: #fff;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
  text-align: center;
  white-space: normal;
}
body.hier-booking-product #main .single_add_to_cart_button:hover:not(:disabled):not(.disabled),
body.hier-booking-flow.woocommerce-cart #main .checkout-button:hover,
body.hier-booking-flow.woocommerce-checkout #main #place_order:hover:not(:disabled) {
  border-color: #274f0d;
  background: #274f0d;
}

/* Classical cart: native form + native totals. Keep all metadata and notices. */
body.hier-booking-flow.woocommerce-cart #main .woocommerce-cart-form,
body.hier-booking-flow.woocommerce-cart #main .cart_totals {
  box-sizing: border-box;
  min-width: 0;
  padding: 20px;
  border: 1px solid #dfe6d9;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 4px 18px rgba(20, 49, 31, .055);
}
body.hier-booking-flow.woocommerce-cart #main .woocommerce-cart-form table.shop_table {
  margin: 0;
  border: 0;
}
body.hier-booking-flow.woocommerce-cart #main .product-thumbnail img { border-radius: 8px; }
body.hier-booking-flow.woocommerce-cart #main .woocommerce-cart-form .button {
  min-height: 44px;
  border-radius: 8px;
  padding: 10px 14px;
  font-size: 14px;
  line-height: 1.4;
  white-space: normal;
}
body.hier-booking-flow.woocommerce-cart #main .woocommerce-cart-form .input-text {
  min-height: 44px;
  border: 1px solid #9aa991;
  border-radius: 8px;
  background: #fff;
  font-size: 16px;
}
body.hier-booking-flow.woocommerce-cart #main .cart_totals h2 {
  color: #23482d;
  font-size: 22px;
  line-height: 1.3;
}
body.hier-booking-flow.woocommerce-cart #main .wc-proceed-to-checkout { padding-bottom: 0; }
body.hier-booking-flow.woocommerce-cart #main .entry-content > h4 { font-size: 15px; line-height: 1.6; margin: 0 0 20px; font-weight: 400; }
body.hier-booking-flow #main dl.variation { font-size: 14px; line-height: 1.5; margin-top: 10px; display: grid; grid-template-columns: max-content minmax(0,1fr); gap: 2px 6px; }
body.hier-booking-flow #main dl.variation dt,
body.hier-booking-flow #main dl.variation dd { float: none; margin: 0; min-width: 0; }
body.hier-booking-flow #main dl.variation dd p { margin: 0; }
body.hier-booking-flow #main dl.variation dt { font-weight: 600; }
body.hier-booking-flow.woocommerce-cart #main dl.variation { grid-template-columns: minmax(0,1fr); gap: 0; }
body.hier-booking-flow.woocommerce-cart #main dl.variation dd { margin-bottom: 6px; }
body.hier-booking-flow.woocommerce-cart #main .woocommerce-cart-form .product-remove a {
  display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px;
}

/* Classic checkout only. Retain native labels, errors, optional sections and gateways. */
body.hier-booking-flow.woocommerce-checkout #main form.checkout #customer_details,
body.hier-booking-flow.woocommerce-checkout #main form.checkout #order_review {
  box-sizing: border-box;
  min-width: 0;
  padding: 20px;
  border: 1px solid #dfe6d9;
  border-radius: 16px;
  background: #fff;
}
body.hier-booking-flow.woocommerce-checkout #main form.checkout #customer_details > :is(.col-1, .col-2) {
  float: none;
  width: 100%;
}
body.hier-booking-flow.woocommerce-checkout #main form.checkout #customer_details .form-row :is(.input-text, select) {
  box-sizing: border-box;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid #9aa991;
  border-radius: 8px;
  background: #fff;
  color: #253d2b;
  font-size: 16px;
  line-height: 1.4;
}
body.hier-booking-flow.woocommerce-checkout #main #order_review_heading {
  color: #23482d;
  font-size: 22px;
  line-height: 1.3;
  border: 0;
  padding: 0;
  background: transparent;
}
body.hier-booking-flow.woocommerce-checkout #main form.checkout h3 { color: #23482d; font-size: 22px; line-height: 1.3; }
body.hier-booking-flow.woocommerce-checkout #main form.checkout .select2-container .select2-selection--single {
  box-sizing: border-box; min-height: 44px; border: 1px solid #9aa991; border-radius: 8px;
}
body.hier-booking-flow.woocommerce-checkout #main form.checkout .select2-container .select2-selection__rendered { line-height: 42px; padding-left: 12px; }
body.hier-booking-flow.woocommerce-checkout #main form.checkout .select2-container .select2-selection__arrow { height: 42px; }
body.hier-booking-flow.woocommerce-checkout #main form.checkout .woocommerce-billing-fields__field-wrapper label,
body.hier-booking-flow.woocommerce-checkout #main form.checkout .woocommerce-additional-fields__field-wrapper label { font-size: 14px; line-height: 1.5; }
body.hier-booking-flow.woocommerce-checkout #main #payment { border-radius: 12px; }
body.hier-booking-flow.woocommerce-checkout #main #payment .payment_box { border-radius: 8px; }
body.hier-booking-flow.woocommerce-checkout #main #place_order { width: 100%; margin: 12px 0 0; }
body.hier-booking-flow.woocommerce-checkout #main form.checkout #customer_details .form-row { margin-bottom: 14px; }
body.hier-booking-flow .buttonizer-group .buttonizer-head[aria-label] {
  width: 48px !important; min-width: 48px !important; height: 48px !important; min-height: 48px !important;
  border-radius: 50% !important;
}
/* The native aria-label and question icon remain; only the overlapping visual label is hidden. */
body.hier-booking-flow .buttonizer-group .buttonizer-head[aria-label] .buttonizer-label { display: none !important; }
body.hier-booking-flow.woocommerce-checkout #main form.checkout #customer_details .form-row.woocommerce-invalid :is(.input-text, select) {
  border-color: #b32d2e;
}

@media (min-width: 1200px) {
  /* Opt in only for proven direct siblings and no native cross-sell block.
   * A plugin inserting an intervening element keeps the original layout. */
  body.hier-booking-flow.woocommerce-cart #main .woocommerce:has(> form.woocommerce-cart-form + .cart-collaterals):not(:has(.cross-sells)) {
    display: grid;
    grid-template-columns: minmax(0, 1.9fr) minmax(300px, 1fr);
    gap: 24px;
    align-items: start;
  }
  body.hier-booking-flow.woocommerce-cart #main .woocommerce:has(> form.woocommerce-cart-form + .cart-collaterals):not(:has(.cross-sells)) > * { grid-column: 1 / -1; min-width: 0; }
  body.hier-booking-flow.woocommerce-cart #main .woocommerce:has(> form.woocommerce-cart-form + .cart-collaterals):not(:has(.cross-sells))::before,
  body.hier-booking-flow.woocommerce-cart #main .woocommerce:has(> form.woocommerce-cart-form + .cart-collaterals):not(:has(.cross-sells))::after { display: none; }
  body.hier-booking-flow.woocommerce-cart #main .woocommerce:has(> form.woocommerce-cart-form + .cart-collaterals):not(:has(.cross-sells)) > form.woocommerce-cart-form { grid-column: 1; width: 100%; }
  body.hier-booking-flow.woocommerce-cart #main .woocommerce:has(> form.woocommerce-cart-form + .cart-collaterals):not(:has(.cross-sells)) > .cart-collaterals {
    grid-column: 2;
    clear: none;
    width: auto;
    margin-top: 0;
  }
  body.hier-booking-flow.woocommerce-cart #main .woocommerce:has(> form.woocommerce-cart-form + .cart-collaterals):not(:has(.cross-sells)) .cart_totals { float: none; width: 100%; }
}
@media (min-width: 1001px) {
  /* Exact native three-child checkout only; unknown plugin markup falls back.
   * Live DOM confirmation is required before enabling this candidate. */
  body.hier-booking-flow.woocommerce-checkout #main form.checkout:has(> #customer_details:first-child + #order_review_heading + #order_review:last-child) {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr);
    grid-template-rows: min-content 1fr;
    column-gap: 24px;
    align-items: start;
  }
  body.hier-booking-flow.woocommerce-checkout #main form.checkout:has(> #customer_details:first-child + #order_review_heading + #order_review:last-child) > #customer_details { grid-column: 1; grid-row: 1 / span 2; }
  body.hier-booking-flow.woocommerce-checkout #main form.checkout:has(> #customer_details:first-child + #order_review_heading + #order_review:last-child) > :is(#customer_details, #order_review_heading, #order_review) {
    float: none;
    width: 100%;
    min-width: 0;
    margin-left: 0;
    margin-right: 0;
  }
  body.hier-booking-flow.woocommerce-checkout #main form.checkout:has(> #customer_details:first-child + #order_review_heading + #order_review:last-child)::before,
  body.hier-booking-flow.woocommerce-checkout #main form.checkout:has(> #customer_details:first-child + #order_review_heading + #order_review:last-child)::after { display: none; }
  body.hier-booking-flow.woocommerce-checkout #main form.checkout:has(> #customer_details:first-child + #order_review_heading + #order_review:last-child) > #order_review_heading { grid-column: 2; grid-row: 1; margin: 0 0 12px; }
  body.hier-booking-flow.woocommerce-checkout #main form.checkout:has(> #customer_details:first-child + #order_review_heading + #order_review:last-child) > #order_review { grid-column: 2; grid-row: 2; }
}
@media (max-width: 1000px) {
  body.hier-booking-product #main .hier-booking-jump { display: block; }
}
@media (max-width: 1199px) {
  body.hier-booking-flow.woocommerce-cart #main .cart-collaterals .cart_totals { float: none; width: 100%; }
  body.hier-booking-flow.woocommerce-cart #main .cart-collaterals { margin-top: 24px; }
}
@media (max-width: 449px) {
  body.hier-booking-flow.woocommerce-checkout #main dl.variation { grid-template-columns: minmax(0,1fr); gap: 0; }
  body.hier-booking-flow.woocommerce-checkout #main dl.variation dd { margin-bottom: 6px; }
}
@media (max-width: 599px) {
  body.hier-booking-flow #content > .ast-container { padding-left: 16px; padding-right: 16px; }
  body.hier-booking-flow #primary { margin-top: 24px; margin-bottom: 36px; }
  body.hier-booking-product #main h1.product_title { font-size: 26px; }
  body.hier-booking-product #main .woocommerce-product-gallery__image img:not(.zoomImg) {
    max-height: 250px; width: 100%; object-fit: cover;
  }
  body.hier-booking-product #main .flex-control-thumbs img { max-height: 60px; object-fit: cover; }
  body.hier-booking-product #main div.product.product-type-phive_booking > .summary.entry-summary > form.cart { padding: 12px; }
  body.hier-booking-flow.woocommerce-cart #main .woocommerce-cart-form,
  body.hier-booking-flow.woocommerce-cart #main .cart_totals,
  body.hier-booking-flow.woocommerce-checkout #main form.checkout #customer_details,
  body.hier-booking-flow.woocommerce-checkout #main form.checkout #order_review { padding: 16px; }
  body.hier-booking-flow.woocommerce-checkout #main form.checkout #customer_details .form-row { float: none; width: 100%; }
}


/* HIER ruimtepagina — LOCAL CONCEPT, not published.
 * Opt in only when a verified room product has a direct .hier-product-header.
 * Expected native order: header (title/reading button), gallery, booking
 * summary (public overview, original form), description tabs (more info).
 * The original form, gallery and all native handlers remain.
 * No CSS order, duplicate text, hidden reviews or generated product facts.
 */

body.hier-booking-product #main div.product.product-type-phive_booking:has(> .hier-product-header) {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  column-gap: 28px;
  align-items: start;
}
body.hier-booking-product #main div.product.product-type-phive_booking:has(> .hier-product-header) > * {
  grid-column: 1 / -1;
  min-width: 0;
}
body.hier-booking-product #main div.product.product-type-phive_booking:has(> .hier-product-header)::before,
body.hier-booking-product #main div.product.product-type-phive_booking:has(> .hier-product-header)::after {
  display: none;
}
body.hier-booking-product #main .hier-product-header {
  box-sizing: border-box;
  clear: both;
  width: 100%;
  margin: 0 0 20px;
  padding: 0;
  text-align: left;
}
body.hier-booking-product #main .hier-product-header .woocommerce-breadcrumb {
  width: 100%;
  max-width: none;
  margin: 0 0 16px;
  color: #62695f;
  font-size: 13px;
  line-height: 1.5;
}
body.hier-booking-product #main .hier-product-header .hier-product-title-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 20px;
  align-items: start;
  width: 100%;
  margin: 0 0 12px;
}
body.hier-booking-product #main .hier-product-header h1.product_title {
  width: 100%;
  max-width: none;
  margin: 0;
  color: #23482d;
  font-size: clamp(28px, 3vw, 36px);
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -.02em;
  text-align: left;
  overflow-wrap: break-word;
  word-break: normal;
}
body.hier-booking-product #main .hier-product-header > .price {
  margin: 0 0 10px;
  color: #34432f;
  font-size: 20px;
  line-height: 1.5;
}
body.hier-booking-product #main .hier-product-header .hier-product-disclaimer {
  box-sizing: border-box;
  width: 100%;
  max-width: 90ch;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #62695f;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.5;
}
body.hier-booking-product #main .hier-product-header .hier-product-disclaimer a {
  color: #365b29;
  text-decoration: underline;
  text-underline-offset: 3px;
}
body.hier-booking-product #main .hier-product-header .hier-product-booking-link {
  display: none;
  margin: 12px 0 0;
}
body.hier-booking-product #main .hier-product-header .hier-product-booking-link a {
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  min-height: 44px;
  padding: 9px 14px;
  border: 1px solid #336611;
  border-radius: 8px;
  background: #336611;
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
  text-decoration: none;
}
/* A real secondary button in the title's native DOM row. */
body.hier-booking-product #main .hier-product-reading-link {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width: auto;
  min-width: 0;
  margin: 0;
}
body.hier-booking-product #main .hier-product-reading-link a {
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  min-height: 44px;
  padding: 10px 16px;
  border: 1px solid #336611;
  border-radius: 8px;
  background: #fff;
  color: #336611;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
  text-decoration: none;
  white-space: nowrap;
}
body.hier-booking-product #main .hier-product-reading-link a:hover {
  border-color: #274f0d;
  background: #eef2e9;
  color: #23482d;
  text-decoration: none;
}
body.hier-booking-product #main .hier-product-reading-link a:focus-visible,
body.hier-booking-product #main .hier-product-header a:focus-visible {
  outline: 3px solid #336611;
  outline-offset: 3px;
}
body.hier-booking-product #main div.product.product-type-phive_booking:has(> .hier-product-header) > .woocommerce-product-gallery,
body.hier-booking-product #main div.product.product-type-phive_booking:has(> .hier-product-header) > .summary.entry-summary {
  box-sizing: border-box;
  float: none;
  clear: none;
  width: 100%;
  max-width: none;
  min-width: 0;
  margin-top: 0;
}
body.hier-booking-product #main div.product.product-type-phive_booking:has(> .hier-product-header) > .woocommerce-product-gallery {
  margin-bottom: 24px;
}
body.hier-booking-product #main div.product.product-type-phive_booking:has(> .hier-product-header) > .summary.entry-summary {
  position: relative;
  margin-bottom: 0;
}
body.hier-booking-product #main div.product.product-type-phive_booking:has(> .hier-product-header) > .summary.entry-summary > .hier-booking-form-heading {
  /* Keep the real accessible heading at its static position after the public
   * overview and directly before the form. No native field/label is hidden.
   */
  position: absolute;
  top: auto;
  left: auto;
  width: 1px;
  height: 1px;
  margin: 0;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

/* The public overview appears once, above the ORIGINAL booking form. */
body.hier-booking-product #main div.product.product-type-phive_booking:has(> .hier-product-header) > .summary.entry-summary > .hier-product-intro {
  box-sizing: border-box;
  width: 100%;
  margin: 0 0 20px;
  padding: 20px;
  border: 1px solid #dfe6d9;
  border-radius: 16px;
  background: #fff;
  color: #46533f;
  font-size: 15px;
  line-height: 1.6;
}
body.hier-booking-product #main div.product.product-type-phive_booking:has(> .hier-product-header) > .summary.entry-summary > .hier-product-intro h2 {
  margin: 0 0 12px;
  color: #23482d;
  font-size: 22px;
  line-height: 1.3;
}
body.hier-booking-product #main div.product.product-type-phive_booking:has(> .hier-product-header) > .summary.entry-summary > .hier-product-intro :is(p, ul, ol) {
  max-width: none;
  margin-top: 0;
  margin-bottom: 12px;
}
body.hier-booking-product #main div.product.product-type-phive_booking:has(> .hier-product-header) > .summary.entry-summary > .hier-product-intro .hier-product-intro-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
}
body.hier-booking-product #main div.product.product-type-phive_booking:has(> .hier-product-header) > .summary.entry-summary > .hier-product-intro :is(.hier-product-intro-copy, .hier-product-intro-facilities) {
  min-width: 0;
}
body.hier-booking-product #main div.product.product-type-phive_booking:has(> .hier-product-header) > .summary.entry-summary > .hier-product-intro :is(p, ul, ol):last-child {
  margin-bottom: 0;
}
/* The bottom more-info section is one full-width white card. Prevent the old
 * generic description-tab card from adding a second border/padding layer.
 */
body.hier-booking-product #main div.product.product-type-phive_booking:has(> .hier-product-header) #tab-description {
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
body.hier-booking-product #main div.product.product-type-phive_booking:has(> .hier-product-header) #tab-description .hier-product-intro {
  margin-top: 0;
  margin-bottom: 28px;
  border-color: #cbd9c2;
  border-radius: 16px;
  background: #fff;
}
body.hier-booking-product #main div.product.product-type-phive_booking:has(> .hier-product-header) #tab-description .hier-product-details {
  margin: 0 0 24px;
  padding: 24px;
  border: 1px solid #dfe6d9;
  border-radius: 16px;
  background: #fff;
  box-shadow: none;
}
body.hier-booking-product #main div.product.product-type-phive_booking:has(> .hier-product-header) #tab-description :is(.hier-product-intro, .hier-product-details) :is(p, ul, ol) {
  max-width: none;
}
body.hier-booking-product #main div.product.product-type-phive_booking:has(> .hier-product-header) :is(#tab-description, #hier-booking-form) {
  scroll-margin-top: max(112px, var(--hier-header-obstruction, 112px));
}
body.hier-booking-product #main div.product.product-type-phive_booking:has(> .hier-product-header) #tab-description:focus-visible {
  outline: 3px solid #336611;
  outline-offset: 6px;
}
/* A lone description panel is presented directly as information blocks.
 * Its native label stays in the DOM. Any other tab keeps the tab navigation.
 */
body.hier-booking-product #main div.product.product-type-phive_booking:has(> .hier-product-header) .woocommerce-tabs > ul.tabs:has(> .description_tab:only-child) {
  display: none;
}
html:has(body.hier-booking-product .hier-product-header) {
  scroll-behavior: smooth;
}
@media (prefers-reduced-motion: reduce) {
  html:has(body.hier-booking-product .hier-product-header) {
    scroll-behavior: auto;
  }
}

@media (min-width: 922px) {
  body.hier-booking-product #main div.product.product-type-phive_booking:has(> .hier-product-header) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  body.hier-booking-product #main div.product.product-type-phive_booking:has(> .hier-product-header) > .woocommerce-product-gallery {
    grid-column: 1;
  }
  body.hier-booking-product #main div.product.product-type-phive_booking:has(> .hier-product-header) > .summary.entry-summary {
    grid-column: 2;
  }
}
@media (max-width: 921px) {
  body.hier-booking-product #main .hier-product-header .hier-product-booking-link {
    display: block;
  }
}
@media (max-width: 700px) {
  body.hier-booking-product #main .hier-product-header .hier-product-title-row {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 12px;
  }
  body.hier-booking-product #main .hier-product-reading-link {
    justify-content: flex-start;
  }
  body.hier-booking-product #main .hier-product-reading-link a {
    white-space: normal;
  }
}
@media (max-width: 599px) {
  body.hier-booking-product #main .hier-product-header {
    margin-bottom: 16px;
  }
  body.hier-booking-product #main .hier-product-header .woocommerce-breadcrumb {
    margin-bottom: 12px;
  }
  body.hier-booking-product #main .hier-product-header h1.product_title {
    font-size: 28px;
  }
  body.hier-booking-product #main .hier-product-header .hier-product-disclaimer {
    padding: 0;
  }
  body.hier-booking-product #main div.product.product-type-phive_booking:has(> .hier-product-header) > .summary.entry-summary > .hier-product-intro {
    padding: 16px;
  }
  body.hier-booking-product #main div.product.product-type-phive_booking:has(> .hier-product-header) #tab-description .hier-product-intro {
    margin-bottom: 24px;
  }
  body.hier-booking-product #main div.product.product-type-phive_booking:has(> .hier-product-header) #tab-description .hier-product-details {
    padding: 16px;
  }
}
