:root {
  --rrm-front-teal: #0F5C5E;
  --rrm-front-gold: #F4A621;
  --rrm-front-text: #183432;
  --rrm-front-muted: #526a67;
  --rrm-front-border: #dce5e1;
  --rrm-front-soft: #f5f9f7;
  --rrm-front-white: #ffffff;
}

/*
 * Room product surface reset.
 * Some themes/child themes apply the site's primary colour to WooCommerce
 * product containers. Room listings deliberately use a white reading surface
 * so the title, description and property facts always retain good contrast.
 */
body.single-product.rrm-room-product,
body.single-product.rrm-room-product .site-main,
body.single-product.rrm-room-product main,
body.single-product.rrm-room-product .woocommerce,
body.single-product.rrm-room-product div.product,
body.single-product.rrm-room-product div.product .summary,
body.single-product.rrm-room-product div.product .woocommerce-product-gallery,
body.single-product.rrm-room-product .rrm-single-summary-details,
body.single-product.rrm-room-product .rrm-single-summary-details section {
  background: var(--rrm-front-white) !important;
}

body.single-product.rrm-room-product div.product,
body.single-product.rrm-room-product div.product .summary {
  color: var(--rrm-front-text) !important;
}

body.single-product.rrm-room-product div.product .summary h1,
body.single-product.rrm-room-product div.product .summary h1.product_title,
body.single-product.rrm-room-product div.product .summary .product_title {
  color: var(--rrm-front-text) !important;
  -webkit-text-fill-color: var(--rrm-front-text) !important;
}

body.single-product.rrm-room-product div.product .summary p,
body.single-product.rrm-room-product div.product .summary li,
body.single-product.rrm-room-product div.product .summary span:not(.amount),
body.single-product.rrm-room-product div.product .summary td {
  color: var(--rrm-front-muted) !important;
}

body.single-product.rrm-room-product div.product .summary .price,
body.single-product.rrm-room-product div.product .summary .price .amount,
body.single-product.rrm-room-product div.product .summary .price bdi {
  color: var(--rrm-front-gold) !important;
  -webkit-text-fill-color: var(--rrm-front-gold) !important;
}

body.single-product.rrm-room-product .summary .rrm-single-summary-details {
  margin: 18px 0 22px;
  color: var(--rrm-front-text) !important;
}

body.single-product.rrm-room-product .rrm-single-summary-details section + section {
  margin-top: 18px;
}

body.single-product.rrm-room-product .rrm-single-summary-details h2 {
  margin: 0 0 9px;
  color: var(--rrm-front-teal) !important;
  -webkit-text-fill-color: var(--rrm-front-teal) !important;
  font-size: clamp(18px, 1.5vw, 22px);
  line-height: 1.25;
  font-weight: 700;
}

body.single-product.rrm-room-product .rrm-single-description-copy,
body.single-product.rrm-room-product .rrm-single-description-copy p {
  color: var(--rrm-front-muted) !important;
  -webkit-text-fill-color: var(--rrm-front-muted) !important;
  font-size: 15px;
  line-height: 1.7;
}

.rrm-single-description-copy > :first-child { margin-top: 0; }
.rrm-single-description-copy > :last-child { margin-bottom: 0; }

body.single-product.rrm-room-product .rrm-room-info-table {
  width: 100%;
  margin: 0;
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
  border: 1px solid var(--rrm-front-border) !important;
  border-radius: 10px;
  background: var(--rrm-front-white) !important;
  font-size: 14px;
}

body.single-product.rrm-room-product .rrm-room-info-table th,
body.single-product.rrm-room-product .rrm-room-info-table td {
  padding: 9px 12px;
  border: 0;
  border-bottom: 1px solid var(--rrm-front-border) !important;
  vertical-align: top;
  text-align: left;
  line-height: 1.45;
}

body.single-product.rrm-room-product .rrm-room-info-table tr:last-child th,
body.single-product.rrm-room-product .rrm-room-info-table tr:last-child td { border-bottom: 0 !important; }

body.single-product.rrm-room-product .rrm-room-info-table th {
  width: 34%;
  color: var(--rrm-front-text) !important;
  -webkit-text-fill-color: var(--rrm-front-text) !important;
  background: var(--rrm-front-soft) !important;
  font-weight: 700;
}

body.single-product.rrm-room-product .rrm-room-info-table td {
  color: var(--rrm-front-muted) !important;
  -webkit-text-fill-color: var(--rrm-front-muted) !important;
  background: var(--rrm-front-white) !important;
}

/* SKU/reference is internal only. Also protects against themes re-rendering it. */
body.single-product.rrm-room-product .sku_wrapper,
body.single-product.rrm-room-product .product_meta .sku,
body.single-product.rrm-room-product .rrm-product-meta {
  display: none !important;
}

@media (max-width: 767px) {
  body.single-product.rrm-room-product .summary .rrm-single-summary-details { margin-top: 14px; }
  body.single-product.rrm-room-product .rrm-room-info-table { font-size: 13px; }
  body.single-product.rrm-room-product .rrm-room-info-table th,
  body.single-product.rrm-room-product .rrm-room-info-table td { padding: 8px 9px; }
  body.single-product.rrm-room-product .rrm-room-info-table th { width: 40%; }
}

@media (max-width: 420px) {
  body.single-product.rrm-room-product .rrm-room-info-table,
  body.single-product.rrm-room-product .rrm-room-info-table tbody,
  body.single-product.rrm-room-product .rrm-room-info-table tr,
  body.single-product.rrm-room-product .rrm-room-info-table th,
  body.single-product.rrm-room-product .rrm-room-info-table td { display: block; width: 100%; }
  body.single-product.rrm-room-product .rrm-room-info-table tr { border-bottom: 1px solid var(--rrm-front-border); }
  body.single-product.rrm-room-product .rrm-room-info-table tr:last-child { border-bottom: 0; }
  body.single-product.rrm-room-product .rrm-room-info-table th { border-bottom: 0 !important; padding-bottom: 3px; }
  body.single-product.rrm-room-product .rrm-room-info-table td { border-bottom: 0 !important; padding-top: 3px; }
}
