/* Purpose: WooCommerce store page styling (shop, single product, cart, checkout).
   Built on the design system — never stock Woo styling. Filled per Woo template build. */

.shop { padding-block: var(--space-16); }
.shop__inner { display: grid; gap: var(--grid-gap); }

/* TODO: two-column checkout, product grid filters. */

/* =========================================================
   SINGLE PRODUCT — branded layout (gallery | summary), tabs
   ========================================================= */
.single-product .shop__inner { display: block; }

.woocommerce div.product {
  display: grid; gap: var(--space-10) var(--space-12);
  grid-template-columns: 1fr; align-items: start;
  margin-block: var(--space-8);
}
@media (min-width: 900px) { .woocommerce div.product { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); } }
.woocommerce div.product .product_title { text-wrap: pretty; }
.woocommerce div.product > * { min-width: 0; }
.related-trips, .related-trips__wrap, .itin, .itin__wrap, .map-delivery, .map-delivery__wrap { min-width: 0; }
.woocommerce div.product .woocommerce-product-details__short-description, .woocommerce div.product .woocommerce-product-details__short-description p { max-width: none; }

/* Sale flash — themed pill (matches card sale tag) */
.woocommerce span.onsale {
  position: absolute; top: var(--space-4); left: var(--space-4); z-index: 2; min-height: 0; min-width: 0;
  margin: 0; padding: var(--space-1) var(--space-3); line-height: 1.4;
  font-family: var(--font-mono); font-size: var(--text-xs); font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-wide); text-transform: uppercase;
  background: var(--color-error); color: var(--color-text-invert);
  border-radius: var(--radius-full); box-shadow: var(--shadow-sm);
}

/* Gallery (col 1) — fill the column */
.woocommerce div.product .woocommerce-product-gallery { float: none; width: 100% !important; margin: 0; position: relative; }
.woocommerce div.product .woocommerce-product-gallery__wrapper { width: 100%; margin: 0; }
.woocommerce div.product .woocommerce-product-gallery__image { width: 100%; }
.woocommerce div.product .woocommerce-product-gallery__image img,
.woocommerce div.product div.images img {
  width: 100%; height: auto; border-radius: var(--radius-xl); box-shadow: var(--shadow-lg);
  aspect-ratio: 4 / 3; object-fit: cover;
}
.woocommerce div.product .woocommerce-product-gallery__trigger {
  top: var(--space-4); right: var(--space-4);
  width: 2.5rem; height: 2.5rem; background: var(--color-surface); border-radius: var(--radius-full);
  display: grid; place-items: center; box-shadow: var(--shadow-sm); text-indent: 0;
}
.woocommerce div.product .flex-control-thumbs { display: flex; gap: var(--space-2); margin-top: var(--space-3); padding: 0; }
.woocommerce div.product .flex-control-thumbs li { width: 64px; float: none; }
.woocommerce div.product .flex-control-thumbs img { border-radius: var(--radius-md); }

/* Summary (col 2) */
.woocommerce div.product .summary,
.woocommerce div.product .summary.entry-summary { float: none !important; width: 100% !important; max-width: none !important; margin: 0; display: grid; gap: var(--space-4); }
.woocommerce div.product .product_title {
  font-family: var(--font-heading); font-size: var(--text-2xl); line-height: var(--leading-snug);
  letter-spacing: var(--tracking-tight); margin: 0; text-wrap: pretty;
}
@media (min-width: 900px) { .woocommerce div.product .product_title { font-size: var(--text-3xl); } }
.woocommerce div.product p.price, .woocommerce div.product span.price {
  font-family: var(--font-heading); font-size: var(--text-2xl); font-weight: var(--weight-semibold);
  color: var(--color-accent-dark); margin: 0;
}
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--color-text-muted); max-width: none; }
.woocommerce div.product .woocommerce-product-details__short-description p { margin: 0; }

/* Quantity + add to cart */
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: center; margin: var(--space-2) 0 0; }
.woocommerce .quantity .qty {
  width: 4.5rem; height: 3rem; padding: var(--space-2); text-align: center;
  border: var(--border-thin); border-radius: var(--radius-full); background: var(--color-surface); font-size: var(--text-base);
}
/* All Woo buttons → brand yellow (incl. .alt which Woo styles more specifically) */
.woocommerce #respond input#submit,
.woocommerce a.button, .woocommerce button.button,
.woocommerce a.button.alt, .woocommerce button.button.alt,
.woocommerce .single_add_to_cart_button,
.woocommerce button.single_add_to_cart_button.alt,
.woocommerce input.button, .woocommerce input.button.alt {
  background-color: var(--color-accent); color: var(--color-text);
  font-family: var(--font-body); font-weight: var(--weight-semibold); font-size: var(--text-base);
  border: 0; border-radius: var(--radius-full); padding: var(--space-3) var(--space-8); min-height: 3rem;
  transition: background-color var(--duration-base) var(--ease-out), transform var(--duration-fast) var(--ease-out);
}
.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover,
.woocommerce .single_add_to_cart_button:hover,
.woocommerce input.button:hover, .woocommerce input.button.alt:hover {
  background-color: var(--color-accent-dark); color: var(--color-text);
}
.woocommerce a.button:active, .woocommerce button.button:active { transform: translateY(1px); }

/* Category / meta */
.woocommerce div.product .product_meta { font-size: var(--text-sm); color: var(--color-text-muted); margin-top: var(--space-2); }
.woocommerce div.product .product_meta a { color: var(--color-primary); }

/* Full-width children below the gallery/summary row */
.woocommerce div.product > .woocommerce-tabs,
.woocommerce div.product > .itin,
.woocommerce div.product > .map-delivery,
.woocommerce div.product > .related-trips,
.woocommerce div.product > .related,
.woocommerce div.product > .upsells { grid-column: 1 / -1; }

/* Tabs — themed */
.woocommerce div.product .woocommerce-tabs { margin-top: var(--space-8); }
.woocommerce div.product .woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: var(--space-2); padding: 0; margin: 0 0 var(--space-6); border-bottom: var(--border-thin); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li,
.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
  background: transparent; border: 0; border-radius: 0; padding: 0; margin: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after,
.woocommerce div.product .woocommerce-tabs ul.tabs li.active::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li.active::after { display: none; content: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  display: inline-block; padding: var(--space-3) var(--space-5); font-weight: var(--weight-medium);
  color: var(--color-text-muted); border-bottom: 2px solid transparent;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover { color: var(--color-text); border-bottom-color: var(--color-accent); }
.woocommerce div.product .woocommerce-Tabs-panel h2 { font-size: var(--text-xl); margin-bottom: var(--space-3); }

/* =========================================================
   MY ACCOUNT — themed (no default Woo look)
   ========================================================= */
/* Logged-in dashboard: sidebar nav + content */
.woocommerce-account.logged-in .woocommerce { display: grid; gap: var(--space-8); margin-block: var(--space-8); }
.woocommerce-account.logged-in .woocommerce::before, .woocommerce-account.logged-in .woocommerce::after { content: none !important; display: none !important; }
@media (min-width: 900px) { .woocommerce-account.logged-in .woocommerce { grid-template-columns: 250px minmax(0, 1fr); align-items: start; } }

/* Logged-out: centred login / register card(s) */
.woocommerce-account:not(.logged-in) .woocommerce { max-width: 920px; margin: var(--space-8) auto 0; }
.woocommerce-account .u-columns, .woocommerce-account .col2-set { display: grid; gap: var(--space-6); }
/* Woo's clearfix pseudos become stray grid cells — remove them */
.woocommerce-account .u-columns::before, .woocommerce-account .u-columns::after,
.woocommerce-account .col2-set::before, .woocommerce-account .col2-set::after { content: none !important; display: none !important; }
@media (min-width: 768px) { .woocommerce-account .u-columns, .woocommerce-account .col2-set { grid-template-columns: 1fr 1fr; } }
.woocommerce-account .col-1, .woocommerce-account .col-2 { width: 100% !important; float: none !important; margin: 0 !important; }
.woocommerce-account .woocommerce > h2, .woocommerce-account .u-column1 > h2, .woocommerce-account .u-column2 > h2 { font-size: var(--text-xl); margin-bottom: var(--space-4); }
.woocommerce form.login, .woocommerce form.register {
  border: var(--border-thin); border-radius: var(--radius-lg); padding: var(--space-8);
  margin: 0; background: var(--color-surface);
}
.woocommerce form.login .button, .woocommerce form.register .button { width: 100%; }
.woocommerce form.login .woocommerce-form-login__rememberme { display: inline-flex; gap: var(--space-2); align-items: center; margin-bottom: var(--space-4); }
.woocommerce .show-password-input { top: 50%; transform: translateY(-50%); right: var(--space-3); }
.woocommerce-form-login__submit, .woocommerce-LostPassword { margin-top: var(--space-2); }
.woocommerce-LostPassword a { color: var(--color-primary); }

.woocommerce-account .woocommerce-MyAccount-navigation { width: 100%; float: none; background: var(--color-surface); border: var(--border-thin); border-radius: var(--radius-lg); padding: var(--space-3); }
.woocommerce-MyAccount-navigation ul { width: 100%; list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.woocommerce-MyAccount-navigation li { width: 100%; margin: 0; border: 0; }
.woocommerce-MyAccount-navigation li a {
  display: block; width: 100%; box-sizing: border-box;
  padding: var(--space-3) var(--space-4); border-radius: var(--radius-md);
  color: var(--color-text); font-weight: var(--weight-medium); font-size: var(--text-sm);
}
.woocommerce-MyAccount-navigation li a:hover { background: var(--color-surface-alt); }
.woocommerce-MyAccount-navigation li.is-active a { background: var(--color-primary); color: var(--color-text-invert); }

.woocommerce-MyAccount-content { background: var(--color-surface); border: var(--border-thin); border-radius: var(--radius-lg); padding: var(--space-8); }

/* Themed dashboard quick links */
.hp-dash__hi { font-size: var(--text-md); margin-bottom: var(--space-6); }
.hp-dash__grid { display: grid; gap: var(--space-4); grid-template-columns: repeat(2, 1fr); }
@media (min-width: 1100px) { .hp-dash__grid { grid-template-columns: repeat(3, 1fr); } }
.hp-dash__card { display: grid; gap: var(--space-2); padding: var(--space-5); border: var(--border-thin); border-radius: var(--radius-lg); background: var(--color-surface); transition: transform var(--duration-base) var(--ease-out), border-color var(--duration-base) var(--ease-out); }
.hp-dash__card:hover { transform: translateY(-3px); border-color: var(--color-accent); }
.hp-dash__icon { width: 2.5rem; height: 2.5rem; display: grid; place-items: center; border-radius: var(--radius-md); background: var(--color-accent-soft); color: var(--color-accent-dark); }
.hp-dash__icon .hp-icon { width: 1.3rem; height: 1.3rem; }
.hp-dash__label { font-family: var(--font-heading); font-weight: var(--weight-semibold); }
.hp-dash__note { font-size: var(--text-sm); color: var(--color-text-muted); }
.woocommerce-MyAccount-content h2, .woocommerce-MyAccount-content h3 { font-size: var(--text-xl); margin-bottom: var(--space-4); }
.woocommerce-MyAccount-content .woocommerce-Address { margin-bottom: var(--space-6); }

/* Account forms / inputs */
.woocommerce form .form-row { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-1); margin-bottom: var(--space-4); position: relative; }
.woocommerce form .password-input { position: relative; display: block; }
.woocommerce form .password-input input { padding-right: var(--space-10); }
.woocommerce form .form-row label { font-size: var(--text-sm); font-weight: var(--weight-medium); color: var(--color-text-muted); }
.woocommerce form input.input-text, .woocommerce form input[type=email], .woocommerce form input[type=password], .woocommerce form input[type=text], .woocommerce form input[type=tel], .woocommerce form select, .woocommerce textarea {
  width: 100%; padding: var(--space-3) var(--space-4); border: var(--border-thin); border-radius: var(--radius-md);
  background: var(--color-surface); font: inherit;
}
.woocommerce form input:focus, .woocommerce form select:focus, .woocommerce textarea:focus { outline: none; border-color: var(--color-primary); box-shadow: var(--shadow-focus); }

/* Orders table */
.woocommerce table.shop_table { border-radius: var(--radius-lg); border: var(--border-thin); border-collapse: collapse; overflow: hidden; }
.woocommerce table.shop_table th { background: var(--color-surface-alt); font-family: var(--font-mono); font-size: var(--text-xs); text-transform: uppercase; letter-spacing: var(--tracking-wide); }
.woocommerce table.shop_table td, .woocommerce table.shop_table th { padding: var(--space-3) var(--space-4); }

/* Product reviews */
.woocommerce #reviews #comments h2 { font-size: var(--text-xl); margin-bottom: var(--space-5); }
.woocommerce #reviews .commentlist { display: grid; gap: var(--space-5); margin: 0 0 var(--space-8); padding: 0; }
.woocommerce #reviews .commentlist li { padding: 0; margin: 0; background: none; }
.woocommerce #reviews .commentlist li .comment_container { display: flex; gap: var(--space-4); padding: var(--space-5); border: var(--border-thin); border-radius: var(--radius-lg); background: var(--color-surface); }
.woocommerce #reviews .commentlist li img.avatar { position: static; width: 44px; height: 44px; border-radius: var(--radius-full); border: 0; padding: 0; float: none; }
.woocommerce #reviews .comment-text { margin: 0; border: 0; padding: 0; }
.woocommerce .star-rating { color: var(--color-accent-dark); }
.woocommerce #review_form #respond { padding: var(--space-6); border: var(--border-thin); border-radius: var(--radius-lg); background: var(--color-surface-alt); }
.woocommerce #review_form #respond input, .woocommerce #review_form #respond textarea { width: 100%; padding: var(--space-3) var(--space-4); border: var(--border-thin); border-radius: var(--radius-md); background: var(--color-surface); }
.woocommerce .comment-form-rating .stars a { color: var(--color-accent-dark); }

/* ---------------------------------------------------------------------
   NOTICES (added to cart, errors, info) — themed
   --------------------------------------------------------------------- */
.woocommerce-notices-wrapper:not(:empty) { margin-bottom: var(--space-6); }
.woocommerce-message, .woocommerce-info, .woocommerce-error {
  display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-2) var(--space-4);
  padding: var(--space-4) var(--space-5); border: var(--border-thin); border-left-width: 4px;
  border-radius: var(--radius-md); background: var(--color-surface); list-style: none;
  font-size: var(--text-sm);
}
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { display: none; }
.woocommerce-message { border-left-color: var(--color-success); }
.woocommerce-info    { border-left-color: var(--color-secondary); }
.woocommerce-error   { border-left-color: var(--color-error); }
.woocommerce-message .button, .woocommerce-info .button { margin-left: auto; min-height: 2.4rem; padding: var(--space-2) var(--space-5); font-size: var(--text-sm); }

/* (mini-cart / drawer styles moved to cart-drawer.css — loads sitewide for a consistent drawer) */

/* ---------------------------------------------------------------------
   CART PAGE
   --------------------------------------------------------------------- */
.woocommerce-cart .shop { padding-block: var(--space-10); }
.woocommerce-cart table.cart img { width: 64px; border-radius: var(--radius-md); }
.woocommerce-cart table.cart .product-thumbnail { width: 80px; }
.woocommerce a.remove { color: var(--color-text-muted) !important; border-radius: var(--radius-full); }
.woocommerce a.remove:hover { background: var(--color-error); color: var(--color-text-invert) !important; }
.woocommerce .cart-collaterals, .woocommerce-cart .cart-collaterals { width: 100%; }
.woocommerce-cart .cart-collaterals .cart_totals { float: none; width: 100%; max-width: 420px; margin-left: auto; }
.cart_totals h2 { font-size: var(--text-xl); margin-bottom: var(--space-4); }
.cart_totals table { border: var(--border-thin); border-radius: var(--radius-lg); overflow: hidden; }
.woocommerce .cart .actions .coupon { display: flex; gap: var(--space-2); align-items: center; flex-wrap: wrap; }
.woocommerce .coupon .input-text, .woocommerce #coupon_code { width: auto; min-width: 200px; border-radius: var(--radius-full); padding: var(--space-3) var(--space-5); }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { width: 100%; text-align: center; }

/* ---------------------------------------------------------------------
   CHECKOUT PAGE
   --------------------------------------------------------------------- */
.woocommerce-checkout .col2-set { display: grid; gap: var(--space-6); }
@media (min-width: 900px) { .woocommerce-checkout #customer_details.col2-set { grid-template-columns: 1fr 1fr; } }
.woocommerce-checkout .col-1, .woocommerce-checkout .col-2 { width: 100% !important; float: none !important; }
.woocommerce-checkout .col2-set::before, .woocommerce-checkout .col2-set::after { content: none !important; display: none !important; }
.woocommerce-checkout h3 { font-size: var(--text-lg); margin-bottom: var(--space-4); }
.woocommerce-checkout #order_review_heading { font-size: var(--text-xl); margin: var(--space-8) 0 var(--space-4); }
.woocommerce-checkout #order_review { border: var(--border-thin); border-radius: var(--radius-lg); padding: var(--space-6); background: var(--color-surface); }
.woocommerce-checkout .woocommerce-checkout-review-order-table { border: 0; }
.woocommerce-checkout #payment { background: var(--color-surface-alt); border-radius: var(--radius-lg); padding: var(--space-5); }
.woocommerce-checkout #payment ul.payment_methods { border: 0; padding: 0; }
.woocommerce-checkout #place_order { width: 100%; }
@media (min-width: 900px) {
  .woocommerce-checkout form.checkout { display: block; }
  .woocommerce-checkout form.checkout::after { content: ''; display: table; clear: both; }
  .woocommerce-checkout form.checkout #customer_details { float: left; width: 56%; }
  .woocommerce-checkout form.checkout #order_review_heading { float: right; width: 40%; clear: right; margin: 0 0 var(--space-4); }
  .woocommerce-checkout form.checkout #order_review { float: right; width: 40%; clear: right; position: sticky; top: calc(var(--header-h) + var(--space-5)); }
}
.woocommerce-checkout #customer_details .col2-set { display: grid; gap: var(--space-8); }
.woocommerce-checkout .woocommerce-billing-fields h3, .woocommerce-checkout .woocommerce-additional-fields h3 { margin-bottom: var(--space-4); }
.woocommerce-checkout .form-row { margin-bottom: var(--space-4); }

/* ---- Single itinerary / tour delivery ---- */
.itin { padding-block: var(--space-12); border-top: var(--border-thin); margin-top: var(--space-10); }
.itin__who h2, .itin__days-head h2 { font-size: var(--text-2xl); margin-bottom: var(--space-3); }
.itin__previewgrid { display: grid; gap: var(--space-8); margin-top: var(--space-8); }
@media (min-width: 768px) { .itin__previewgrid { grid-template-columns: 1.4fr 1fr; } }
.itin__included h3, .itin__previewgrid h3 { font-size: var(--text-lg); margin-bottom: var(--space-3); }
.itin__included ul { display: grid; gap: var(--space-2); }
.itin__included li { display: flex; align-items: center; gap: var(--space-2); }
.itin__included .hp-icon { width: 1.05rem; height: 1.05rem; color: var(--color-success); flex: none; }

.itin__days { margin-top: var(--space-12); }
.itin__days-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: var(--space-6); }
.itin__days-count { font-family: var(--font-mono); font-size: var(--text-sm); color: var(--color-text-muted); }

.itin-day { padding: var(--space-6); border: var(--border-thin); border-radius: var(--radius-lg); margin-bottom: var(--space-4); background: var(--color-surface); }
.itin-day__head { display: flex; align-items: center; gap: var(--space-3); margin-bottom: var(--space-3); }
.itin-day__num { width: 2rem; height: 2rem; flex: none; display: grid; place-items: center; border-radius: var(--radius-full); background: var(--color-primary); color: var(--color-text-invert); font-family: var(--font-mono); font-size: var(--text-sm); }
.itin-day__title { font-size: var(--text-lg); }
.itin-day.is-locked { background: var(--color-surface-alt); border-style: dashed; }
.itin-day__locked { color: var(--color-text-muted); font-size: var(--text-sm); }
.itin-day__summary { margin-bottom: var(--space-3); }
.itin-day__slots { display: grid; gap: var(--space-2); margin-bottom: var(--space-3); }
.itin-slot { display: flex; gap: var(--space-3); }
.itin-slot__label { flex: none; width: 80px; font-size: var(--text-sm); color: var(--color-text-muted); text-transform: uppercase; letter-spacing: var(--tracking-wide); }
.itin-day__meta { display: flex; flex-wrap: wrap; gap: var(--space-4); font-size: var(--text-sm); color: var(--color-text-muted); margin-bottom: var(--space-3); }
.itin-day__meta .hp-icon { width: 1rem; height: 1rem; vertical-align: -0.15em; }
.itin-day .btn .hp-icon { width: 1rem; height: 1rem; }

.itin__unlock { margin-top: var(--space-6); padding: var(--space-8); text-align: center; border-radius: var(--radius-lg); background: var(--color-accent-soft); display: grid; gap: var(--space-4); justify-items: center; }
.itin__unlock p { max-width: 52ch; }

.itin__extras { margin-top: var(--space-12); display: grid; gap: var(--space-8); }

/* ---- Map product ---- */
.map-highlight { background: var(--color-primary-dark); color: var(--color-text-invert); padding: var(--space-4) var(--space-5); border-radius: var(--radius-md); font-size: var(--text-sm); line-height: var(--leading-snug); }
.map-highlight strong { color: var(--color-accent); }
.map-delivery { padding-block: var(--space-12); border-top: var(--border-thin); margin-top: var(--space-10); }
.map-facts { display: grid; gap: var(--space-3); grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); margin-bottom: var(--space-6); max-width: 760px; }
/* In the product summary (right column): compact fact boxes. */
.woocommerce div.product .summary .map-facts--summary { grid-template-columns: repeat(2, 1fr); gap: var(--space-2); margin: var(--space-4) 0; max-width: none; }
.woocommerce div.product .summary .map-facts--summary .map-fact { padding: var(--space-3); }
.itin__included--summary { margin: var(--space-4) 0; }
.itin__included--summary h3 { font-size: var(--text-md); margin-bottom: var(--space-2); }
.itin__included--summary ul { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--space-2); }
.itin__included--summary li { display: flex; align-items: center; gap: var(--space-2); font-size: var(--text-sm); }
.itin__included--summary li .hp-icon { width: 1rem; height: 1rem; color: var(--color-primary); flex: none; }
.map-fact { display: grid; gap: 2px; padding: var(--space-4); border: var(--border-thin); border-radius: var(--radius-md); background: var(--color-surface); }
.map-fact .hp-icon { width: 1.2rem; height: 1.2rem; color: var(--color-primary); }
.map-fact__label { font-size: var(--text-xs); text-transform: uppercase; letter-spacing: var(--tracking-wide); color: var(--color-text-muted); }
.map-fact__val { font-weight: var(--weight-semibold); }
.map-delivery__title { font-size: var(--text-2xl); margin-bottom: var(--space-2); }
.map-delivery__intro { color: var(--color-text-muted); max-width: 60ch; margin-bottom: var(--space-6); }
.map-delivery__note { color: var(--color-text-muted); font-size: var(--text-sm); max-width: 60ch; margin-bottom: var(--space-5); }

/* Major stops */
.map-stops { margin-bottom: var(--space-8); }
.map-stops__title, .map-plan__title { font-size: var(--text-xl); margin-bottom: var(--space-4); }
.map-stops__list { display: flex; flex-wrap: wrap; gap: var(--space-2); list-style: none; padding: 0; margin: 0; }
.map-stops__item { display: inline-flex; align-items: center; gap: var(--space-1); padding: var(--space-2) var(--space-3); border: var(--border-thin); border-radius: var(--radius-full); background: var(--color-surface); font-size: var(--text-sm); }
.map-stops__item .hp-icon { width: 1rem; height: 1rem; color: var(--color-primary); }

/* Day-by-day plan */
.map-plan { margin-bottom: var(--space-8); }
.map-plan__list { display: grid; gap: var(--space-3); list-style: none; padding: 0; margin: 0; counter-reset: hp-day; }
.map-plan__day { position: relative; display: grid; gap: 2px; padding: var(--space-4) var(--space-5); border: var(--border-thin); border-left: 3px solid var(--color-primary); border-radius: var(--radius-md); background: var(--color-surface); }
.map-plan__label { font-weight: var(--weight-semibold); font-family: var(--font-heading); }
.map-plan__detail { color: var(--color-text-muted); font-size: var(--text-sm); }
.map-delivery__locked { padding: var(--space-8); border: 2px dashed var(--color-border-strong); border-radius: var(--radius-lg); display: grid; gap: var(--space-4); justify-items: start; background: var(--color-accent-soft); }
.map-links { display: grid; gap: var(--space-3); }
.map-link { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); padding: var(--space-4) var(--space-5); border: var(--border-thin); border-radius: var(--radius-md); background: var(--color-surface); }
.map-link__label { display: inline-flex; align-items: center; gap: var(--space-2); font-weight: var(--weight-semibold); }
.map-link__label .hp-icon { width: 1.1rem; height: 1.1rem; color: var(--color-primary); }

/* ---------------------------------------------------------------------
   PRODUCT REVIEWS — redesigned summary + list
   --------------------------------------------------------------------- */
.hp-reviews { max-width: 820px; }
.hp-reviews__summary { display: grid; gap: var(--space-6); padding: var(--space-6); border: var(--border-thin); border-radius: var(--radius-lg); background: var(--color-surface); margin-bottom: var(--space-8); }
@media (min-width: 600px) { .hp-reviews__summary { grid-template-columns: auto 1fr; align-items: center; gap: var(--space-8); } }
.hp-reviews__score { text-align: center; display: grid; gap: var(--space-1); }
.hp-reviews__avg { font-family: var(--font-heading); font-size: var(--text-4xl); font-weight: var(--weight-bold); line-height: 1; }
.hp-reviews__stars { color: var(--color-accent-dark); letter-spacing: 2px; font-size: var(--text-lg); }
.hp-reviews__count { font-size: var(--text-sm); color: var(--color-text-muted); }
.hp-reviews__bars { display: grid; gap: var(--space-2); }
.hp-reviews__bar { display: grid; grid-template-columns: 2.2rem 1fr 1.6rem; align-items: center; gap: var(--space-3); font-size: var(--text-sm); }
.hp-reviews__bar-label { color: var(--color-text-muted); font-family: var(--font-mono); }
.hp-reviews__bar-track { height: 8px; border-radius: var(--radius-full); background: var(--color-surface-alt); overflow: hidden; }
.hp-reviews__bar-fill { display: block; height: 100%; width: var(--pct, 0%); background: var(--color-accent); border-radius: var(--radius-full); }
.hp-reviews__bar-n { text-align: right; color: var(--color-text-muted); font-family: var(--font-mono); }
.hp-reviews__title { font-size: var(--text-xl); margin-bottom: var(--space-5); }
.hp-reviews__list { list-style: none; margin: 0 0 var(--space-8); padding: 0; display: grid; gap: var(--space-5); }
.hp-reviews__list .comment_container { display: flex; gap: var(--space-4); padding: var(--space-5); border: var(--border-thin); border-radius: var(--radius-lg); background: var(--color-surface); }
.hp-reviews__list .comment_container img.avatar { width: 48px; height: 48px; border-radius: var(--radius-full); object-fit: cover; flex: none; margin: 0; }
.hp-reviews__list .comment-text { flex: 1; min-width: 0; }
.hp-reviews__list .woocommerce-review__author { font-weight: var(--weight-semibold); font-style: normal; }
.hp-reviews__list .woocommerce-review__dash { display: none; }
.hp-reviews__list .woocommerce-review__published-date { color: var(--color-text-muted); font-size: var(--text-sm); display: block; margin-bottom: var(--space-2); }
.hp-reviews__list .star-rating { color: var(--color-accent-dark); margin-bottom: var(--space-2); }
.hp-reviews__list .description p { margin: 0; }
.hp-reviews__empty { color: var(--color-text-muted); margin-bottom: var(--space-6); }
.hp-reviews__formwrap { padding: var(--space-6); border: var(--border-thin); border-radius: var(--radius-lg); background: var(--color-surface-alt); }
.hp-reviews__formtitle { font-size: var(--text-lg); font-weight: var(--weight-semibold); }
.hp-reviews .comment-form-rating select, .hp-reviews #comment { width: 100%; padding: var(--space-3) var(--space-4); border: var(--border-thin); border-radius: var(--radius-md); background: var(--color-surface); font: inherit; margin-top: var(--space-2); }
.hp-reviews .comment-form label { font-weight: var(--weight-semibold); font-size: var(--text-sm); }
.hp-reviews .comment-form-comment { margin-top: var(--space-4); }

/* Reviews pagination now reuses the sitewide .pagination markup (matches archive pages). */
.hp-reviews .pagination { margin-top: var(--space-8); }
/* review remove control */
.hp-reviews .hp-del { margin-top: var(--space-2); }

/* ---------------------------------------------------------------------
   MY ACCOUNT — polished forms, addresses, full-width content
   --------------------------------------------------------------------- */
/* Content column fills the grid track fully */
.woocommerce-account .woocommerce-MyAccount-content { width: 100% !important; float: none !important; }
.woocommerce-MyAccount-content > * { max-width: none; }

/* Custom dropdown arrow on all Woo selects (right margin, themed) */
.woocommerce form select {
  -webkit-appearance: none; appearance: none; padding-right: var(--space-9);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B5E48' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right var(--space-4) center; background-size: 1.05rem;
}

/* Account details — two-column grid, not a plain stacked form */
.woocommerce-EditAccountForm.edit-account { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4) var(--space-5); align-items: start; }
.woocommerce-EditAccountForm .form-row { margin-bottom: 0; }
.woocommerce-EditAccountForm .form-row { width: 100%; float: none; grid-template-columns: minmax(0, 1fr); }
.woocommerce-EditAccountForm .form-row input, .woocommerce-EditAccountForm .form-row select { width: 100%; }
.woocommerce-EditAccountForm .form-row-first, .woocommerce-EditAccountForm .form-row-last { width: 100% !important; float: none !important; }
.woocommerce-EditAccountForm > .form-row-first { grid-column: 1; }
.woocommerce-EditAccountForm > .form-row-last  { grid-column: 2; }
.woocommerce-EditAccountForm > .form-row-wide,
.woocommerce-EditAccountForm > fieldset,
.woocommerce-EditAccountForm > .clear,
.woocommerce-EditAccountForm > p:last-of-type { grid-column: 1 / -1; }
.woocommerce-EditAccountForm fieldset { border: var(--border-thin); border-radius: var(--radius-lg); padding: var(--space-5) var(--space-6) var(--space-6); margin: var(--space-2) 0 0; }
.woocommerce-EditAccountForm legend { font-family: var(--font-heading); font-weight: var(--weight-semibold); font-size: var(--text-md); padding: 0 var(--space-2); }
.woocommerce-EditAccountForm > p:last-of-type { margin-top: var(--space-4); }
/* Traveller-profile fieldset: gender + dob side by side, rest full */
.hp-profile-fields { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4) var(--space-5); }
.hp-profile-fields legend { grid-column: 1 / -1; }
.hp-profile-fields .form-row { grid-column: 1 / -1; }
.hp-profile-fields .hp-half { grid-column: span 1; }
.hp-profile-photo-current { display: inline-block; margin-top: var(--space-2); }
.hp-profile-photo-current img { width: 64px; height: 64px; border-radius: var(--radius-md); object-fit: cover; }

/* Addresses — clean two-card layout */
.woocommerce-Addresses.col2-set { display: grid; gap: var(--space-5); grid-template-columns: 1fr; margin-top: var(--space-5); }
@media (min-width: 700px) { .woocommerce-Addresses.col2-set { grid-template-columns: 1fr 1fr; } }
.woocommerce-Address { margin: 0; padding: var(--space-6); border: var(--border-thin); border-radius: var(--radius-lg); background: var(--color-surface); display: grid; gap: var(--space-3); align-content: start; }
.woocommerce-Address-title.title { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); margin: 0; }
.woocommerce-Address-title.title h3 { font-size: var(--text-lg); margin: 0; }
.woocommerce-Address-title .edit {
  display: inline-flex; align-items: center; gap: var(--space-1); flex: none;
  padding: var(--space-2) var(--space-4); border: 1px solid var(--color-border-strong); border-radius: var(--radius-full);
  font-size: var(--text-sm); font-weight: var(--weight-semibold); color: var(--color-text); white-space: nowrap;
}
.woocommerce-Address-title .edit:hover { border-color: var(--color-primary); color: var(--color-primary); }
.woocommerce-Address address { font-style: normal; text-align: left; color: var(--color-text-muted); line-height: var(--leading-normal); margin: 0; }
.woocommerce-Addresses + .woocommerce-Address, .my_account_orders { margin-top: var(--space-4); }
.woocommerce-MyAccount-content .addresses-intro, .woocommerce-MyAccount-content > p:first-child { color: var(--color-text-muted); }
