/* Training extends TGI's Foundation grid, square cards and blue/navy/teal palette. */
.tgi-training { --training-line: #d4dce3; }
.tgi-training .page-hero .copy { max-width: 62ch; }
.tgi-training .page-hero-photo { aspect-ratio: 16 / 10; object-fit: cover; width: 100%; }
.training-online-page .page-hero-photo { aspect-ratio: auto; height: auto; object-fit: contain; }
.training-course-media { position: relative; width: 100%; aspect-ratio: 16 / 10; background: var(--tgi-navy); }
.training-course-video { aspect-ratio: 16 / 9; }
.training-course-video.is-portrait { width: min(100%, 330px); aspect-ratio: 9 / 16; margin-inline: auto; }
.training-course-media iframe,
.training-course-media video,
.training-course-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.training-course-video iframe,
.training-course-video video { border: 0; }
.training-course-carousel { overflow: hidden; }
.training-course-carousel-track { display: flex; height: 100%; transition: transform .3s ease; }
.training-course-carousel-slide { flex: 0 0 100%; margin: 0; height: 100%; }
.training-course-carousel-controls { position: absolute; right: 0; bottom: 0; display: flex; align-items: center; background: var(--tgi-navy); color: white; }
.training-course-carousel-controls button { min-height: 44px; padding: 10px 14px; border: 0; border-radius: 0; background: var(--tgi-blue); color: white; font: inherit; font-size: 13px; font-weight: 800; cursor: pointer; }
.training-course-carousel-controls button:hover,
.training-course-carousel-controls button:focus-visible { background: var(--tgi-teal); color: var(--tgi-navy); }
.training-course-carousel-controls span { min-width: 64px; padding-inline: 10px; text-align: center; font-size: 13px; font-weight: 800; }
.tgi-training .hero-actions .text-link { color: white; font-weight: 700; max-width: 36ch; }
.tgi-training h2 { max-width: 30ch; margin-bottom: 1.6rem; text-wrap: balance; }
.training-breadcrumbs { padding-block: 22px; font-size: 14px; }
.training-breadcrumbs ol { list-style: none; margin: 0; display: flex; flex-wrap: wrap; gap: 12px; }
.training-breadcrumbs li + li::before { content: '/'; margin-right: 12px; color: #596570; }
.training-breadcrumbs a { color: var(--tgi-blue); text-decoration: underline; }
.training-intro { max-width: 70ch; margin-bottom: 30px; }
.training-card-grid { row-gap: 30px; margin-top: 34px; }
.training-card { height: auto; }
.training-card .card-image { aspect-ratio: 2.3; }
.training-card .card-body { padding: 26px; }
.training-card .card-body h3 { margin: 0 0 14px; font-size: clamp(20px, 1.55vw, 27px); line-height: 1.25; }
.training-card h3 a { color: var(--tgi-navy); text-decoration: none; }
.training-card h3 a:hover { text-decoration: underline; text-underline-offset: 4px; }
.training-card p { font-size: 17px; line-height: 1.45; }
.training-card .tgi-content-category { font-size: 12px; }
.training-card .button { margin-top: auto; padding: 12px 18px; font-size: 14px; min-height: 44px; }
.training-card .training-price { font-weight: 800; margin-bottom: 8px; }
.training-card .training-card-meta { color: #4c5964; font-size: 15px; margin-bottom: 14px; }
.training-card .training-event-date { margin: 8px 0 4px; color: var(--tgi-navy); font-size: 19px; font-weight: 900; line-height: 1.35; }
.training-event-card .training-price { margin: 8px 0 3px; }
.training-event-card .training-availability { margin-bottom: 18px; }
.training-price { color: var(--tgi-navy); font-size: 21px; font-weight: 800; }
.training-availability { color: var(--tgi-teal-text); font-size: 14px; font-weight: 700; }
.training-availability.low { color: #805000; }
.training-section-action { margin-top: 40px; text-align: center; }
.training-group-card .card-image { aspect-ratio: 1.9; }
.training-group-card .training-group-description { margin-bottom: 22px; color: #35434e; }
.training-steps, .training-topics { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: 25px; margin-top: 32px; }
.training-steps article { background: #f2f2f2; padding: 30px; display: flex; flex-direction: column; align-items: flex-start; }
.band-grey .training-steps article { background: white; }
.training-feature-icon, .training-topic-icon { display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; margin-bottom: 20px; padding: 10px; background: var(--tgi-pale); color: var(--tgi-navy); }
.training-steps h3 { font-size: 23px; color: var(--tgi-navy); margin-bottom: 16px; }
.training-steps p { font-size: 18px; max-width: 65ch; }
.training-steps a { margin-top: auto; padding: 10px 0; font-size: 16px; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.training-topics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.training-topics a { border: 2px solid var(--tgi-blue); padding: 26px; color: var(--tgi-navy); text-decoration: none; display: flex; flex-direction: column; align-items: flex-start; }
.training-topics a:hover { background: var(--tgi-pale); }
.training-topics h3 { font-size: 22px; }
.training-topics p { font-size: 16px; }
.training-topics .training-topic-link { margin-top: auto; font-size: 15px; font-weight: 700; text-decoration: underline; }
.training-coming-soon { margin-top: 58px; padding-top: 36px; border-top: 1px solid var(--training-line); }
.training-coming-soon > h3 { color: var(--tgi-navy); font-size: 26px; }
.training-filter-section { padding-bottom: 32px; }
.training-filters { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 18px; margin-block: 28px 12px; }
.training-filters label { flex: 1 1 180px; min-width: 0; color: var(--tgi-navy); font-size: 14px; font-weight: 700; }
.training-filters select { margin: 9px 0 0; height: 50px; border: 1px solid #8b98a3; background-color: white; color: var(--tgi-navy); font: inherit; font-weight: 400; padding-left: 12px; box-shadow: none; }
.training-filter-actions { display: flex; align-items: center; gap: 20px; flex: 1 1 100%; }
.training-filter-actions .button { margin: 0; min-height: 46px; padding: 13px 22px; font-size: 14px; }
.training-filter-actions a { font-size: 15px; text-decoration: underline; }
.training-result-count { font-weight: 700; margin: 0; }
.training-empty { padding: 35px; border: 2px solid var(--tgi-blue); background: white; margin-block: 26px; }
.training-empty p { max-width: 64ch; }
.training-dates-table { border-collapse: collapse; width: 100%; margin: 35px 0 28px; font-size: 16px; table-layout: fixed; }
.training-dates-table thead { background: var(--tgi-navy); color: white; border: 0; }
.training-dates-table th, .training-dates-table td { padding: 19px 16px; text-align: left; vertical-align: middle; overflow-wrap: anywhere; }
.training-dates-table th:first-child { width: 19%; }
.training-dates-table th:nth-child(2) { width: 27%; }
.training-dates-table th:nth-child(3) { width: 15%; }
.training-dates-table th:nth-child(4) { width: 22%; }
.training-dates-table th:last-child { width: 17%; }
.training-dates-table tbody { border: 0; }
.training-dates-table tbody tr { border-bottom: 1px solid var(--training-line); }
.training-dates-table tbody tr:nth-child(even) { background: #f2f2f2; }
.training-dates-table small { display: block; font-size: 13px; margin-top: 7px; }
.training-dates-table .button { margin: 0; padding: 12px 15px; min-height: 44px; font-size: 13px; }
.training-dates-help { font-size: 16px; }
.training-dates-help a { text-decoration: underline; }
.training-syllabus { list-style: none; counter-reset: syllabus; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 48px; margin: 32px 0 0; }
.training-syllabus li { counter-increment: syllabus; position: relative; padding-left: 65px; min-height: 44px; }
.training-syllabus li::before { content: counter(syllabus, decimal-leading-zero); position: absolute; left: 0; top: 0; padding: 10px; border: 1px solid #9ba8b2; font-size: 16px; color: var(--tgi-navy); }
.training-syllabus h3 { font-size: 21px; padding-top: 8px; margin-bottom: 14px; }
.training-syllabus p { font-size: 17px; }
.training-description-layout.has-quote { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(280px, 1fr); gap: clamp(32px, 5vw, 80px); align-items: start; }
.training-description-item + .training-description-item { margin-top: 2rem; }
.training-description-item h3 { color: var(--tgi-navy); font-size: 21px; margin-bottom: 14px; }
.training-description-item .copy p { margin-bottom: 1.25rem; }
.training-description-item .copy p:last-child { margin-bottom: 0; }
.training-description-quote { position: relative; margin: 0; padding: 10px 0 0 56px; border: 0; }
.training-description-quote .quote-mark { position: absolute; left: 0; top: 0; color: var(--tgi-blue); font: 700 72px/1 Georgia, serif; }
.training-description-quote p { color: var(--tgi-navy); font-size: clamp(19px, 1.5vw, 26px); font-weight: 700; line-height: 1.4; }
.training-description-quote cite { display: block; color: var(--tgi-teal-text); font-size: 14px; font-style: normal; font-weight: 700; }
.training-suitability { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.training-suitability > div { padding: 30px; background: white; }
.training-suitability h3 { font-size: 21px; }
.training-suitability .tgi-checklist { display: block; }
.training-suitability .tgi-checklist li { font-weight: 400; }
.training-not-suitable .tgi-checklist li::before { border: 0; background: linear-gradient(45deg, transparent 45%, #b4232f 45%, #b4232f 55%, transparent 55%), linear-gradient(-45deg, transparent 45%, #b4232f 45%, #b4232f 55%, transparent 55%); }
.training-not-suitable .tgi-checklist li::after { content: none; }
.training-faqs details { margin-top: 12px; background: #f2f2f2; border: 1px solid #d4dce3; }
.training-faqs summary { cursor: pointer; font-size: 18px; font-weight: 700; color: var(--tgi-navy); padding: 21px 25px; }
.training-faqs details > div { padding: 0 25px 20px; max-width: none; }
.training-faqs summary:hover { color: var(--tgi-blue); }
.training-faqs summary:focus-visible, .training-filters select:focus-visible { outline: 3px solid var(--tgi-blue); outline-offset: 3px; }
/* Keep vendor markup and behaviour; scope the brand treatment to commerce surfaces. */
.training-booking { max-width: 1300px; margin: auto; }
.training-booking .training-breadcrumbs { padding-inline: 0; }
.training-booking #tribe-events-content { margin: 0; }
.training-event-heading { background: var(--tgi-navy); color: white; padding: clamp(26px, 4vw, 60px); margin-bottom: 35px; }
.training-event-heading h1 { font-size: clamp(30px, 3vw, 48px); max-width: 28ch; color: white; margin: 0 0 22px; }
.training-event-heading .tgi-content-category { color: #a9e2e4; }
.training-event-heading .training-price, .training-event-heading a { color: white; }
.training-event-heading a { text-decoration: underline; font-size: 16px; }
.training-native-booking { margin-block: 35px; }
.training-native-booking > p { max-width: 70ch; }
.training-native-booking h2 { font-size: 30px; }
.training-booking .tribe-events-single-event-description { max-width: 78ch; }
.tribe-tickets__tickets-wrapper { max-width: 100%; }
.tribe-common .tribe-common-c-btn, .tribe-common a.tribe-common-c-btn,
.tribe-tickets__tickets-buy.tribe-common-c-btn, .tribe-tickets__attendee-tickets-submit { border-radius: 0; background-color: var(--tgi-blue); font-family: var(--tgi-body); }
.tribe-common .tribe-common-c-btn:hover { background-color: var(--tgi-navy); }
.tribe-common input, .tribe-common select { border-radius: 0; }
.single-tribe_events .tribe-common, .tgi-commerce .tribe-common {
  --tec-color-accent-primary: var(--tgi-blue);
  --tec-color-accent-primary-hover: var(--tgi-navy);
  --tec-color-button-primary: var(--tgi-blue);
  --tec-color-button-primary-hover: var(--tgi-navy);
  --tec-border-radius-default: 0;
}
.single-tribe_events .tribe-common button.tribe-common-c-btn { background-color: var(--tgi-blue); border-radius: 0; }
.single-tribe_events .tribe-common button.tribe-common-c-btn:hover { background-color: var(--tgi-navy); }
.single-tribe_events .tribe-common .tribe-tickets__tickets-form { max-width: 100%; }
.tgi-commerce .entry-content { max-width: 1200px; }
.tgi-commerce .standard-page { max-width: 1400px; padding-top: clamp(30px, 5vw, 68px); padding-bottom: clamp(55px, 7vw, 96px); }
.tgi-commerce h1 { font-size: clamp(30px, 3vw, 48px); margin-bottom: clamp(30px, 4vw, 52px); }
.tgi-commerce h1::after { content: ''; display: block; width: 68px; height: 4px; margin-top: 18px; background: var(--tgi-blue); }
.tgi-commerce .entry-content > .alignwide,
.tgi-commerce .entry-content > .wp-block-woocommerce-cart,
.tgi-commerce .entry-content > .wp-block-woocommerce-checkout { width: 100%; max-width: 100%; margin-inline: 0; }
.tgi-commerce .wc-block-components-title { color: var(--tgi-navy); font-family: var(--tgi-body); font-size: clamp(20px, 2vw, 24px); font-weight: 900; letter-spacing: 0; }
.tgi-commerce .wc-block-components-button {
  border: 0;
  border-radius: 0;
  background: var(--tgi-blue);
  color: white;
  font-family: inherit;
  font-weight: 800;
  min-height: 54px;
  transition: background-color .18s ease, color .18s ease;
}
.tgi-commerce .wc-block-components-button:hover { background: var(--tgi-navy); color: white; }
.tgi-commerce .wc-block-components-button:focus-visible,
.tgi-commerce .wc-block-components-checkout-step__container button:focus-visible { outline: 3px solid var(--tgi-teal); outline-offset: 3px; }

/* Block cart and checkout: retain WooCommerce behaviour and give each decision a clear TGI panel. */
.tgi-commerce .wc-block-cart { margin: 0; }
.tgi-commerce .wc-block-cart__main { padding-right: clamp(24px, 4vw, 54px); }
.tgi-commerce .wc-block-cart-items { border-top: 5px solid var(--tgi-blue); }
.tgi-commerce .wc-block-cart-items__row { border-bottom: 2px solid var(--training-line); }
.tgi-commerce .wc-block-cart-item__image img { border: 2px solid var(--tgi-pale); }
.tgi-commerce .wc-block-cart-item__product .wc-block-components-product-name { color: var(--tgi-navy); font-weight: 900; }
.tgi-commerce .wc-block-cart__sidebar { box-sizing: border-box; padding: clamp(22px, 2.5vw, 30px); border: 3px solid var(--tgi-blue); background: var(--tgi-soft, #f2f2f2); }
.tgi-commerce .wc-block-cart__sidebar .wc-block-cart__totals-title { padding-top: 0; color: var(--tgi-navy); font-weight: 900; text-align: left; }
.tgi-commerce .wc-block-cart__submit-button { font-size: 16px; text-transform: uppercase; }
.tgi-commerce .wc-block-components-quantity-selector { border: 2px solid var(--training-line); border-radius: 0; }
.tgi-commerce .wc-block-components-quantity-selector::after { border: 0; border-radius: 0; }
.tgi-commerce .wc-block-components-product-badge { border-radius: 0; }
.tgi-commerce .wc-block-components-totals-coupon__button { border: 2px solid var(--tgi-blue); background: #fff; color: var(--tgi-blue); }
.tgi-commerce .wc-block-components-totals-coupon__button:hover { background: var(--tgi-navy); color: #fff; }
.tgi-commerce .wc-block-checkout { margin: 0; }
.tgi-commerce .wc-block-checkout__main { padding-right: clamp(24px, 4vw, 64px); }
.tgi-commerce form.wc-block-checkout__form > .wc-block-components-checkout-step {
  background: #fff;
  border: 2px solid var(--tgi-pale);
  margin: 0 0 22px;
  padding: clamp(22px, 3vw, 32px);
}
.tgi-commerce .wc-block-components-checkout-step__heading { margin-bottom: 20px; padding-bottom: 16px; border-bottom: 3px solid var(--tgi-blue); }
.tgi-commerce .wc-block-components-checkout-step__description,
.tgi-commerce .wc-block-components-checkout-step__content,
.tgi-commerce .wc-block-components-checkbox__label,
.tgi-commerce .wc-block-components-radio-control__label { color: var(--tgi-ink); }
.tgi-commerce .wc-block-components-text-input input,
.tgi-commerce .wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input,
.tgi-commerce .wc-block-components-textarea {
  border: 2px solid #d4dce3;
  border-radius: 0;
  box-shadow: none;
  color: var(--tgi-ink);
  font-family: var(--tgi-body);
}
.tgi-commerce .wc-block-components-text-input input:focus,
.tgi-commerce .wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input:focus,
.tgi-commerce .wc-block-components-textarea:focus {
  border-color: var(--tgi-blue);
  box-shadow: 0 0 0 1px var(--tgi-blue);
  outline: 0;
}
.tgi-commerce .wc-block-components-checkbox .wc-block-components-checkbox__input,
.tgi-commerce .wc-block-components-radio-control__input {
  border-color: var(--tgi-navy);
  border-radius: 0;
}
.tgi-commerce .wc-block-components-radio-control-accordion-option {
  background: white;
  border: 2px solid #d4dce3;
  border-radius: 0;
}
.tgi-commerce .wc-block-components-radio-control-accordion-option--checked-option-highlighted {
  border-color: var(--tgi-blue);
  box-shadow: none;
}
.tgi-commerce .wc-block-checkout__actions_row .wc-block-components-checkout-place-order-button {
  font-size: 16px;
  min-height: 58px;
  text-transform: uppercase;
}
.tgi-commerce .wc-block-components-order-summary {
  background: white;
  border: 0;
}
.tgi-commerce .wc-block-checkout__sidebar {
  border: 3px solid var(--tgi-blue);
  background: #f2f2f2;
  box-sizing: border-box;
  padding: clamp(22px, 2.5vw, 30px);
}
.tgi-commerce .wc-block-components-totals-wrapper { border-color: #d4dce3; }
.tgi-commerce .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.tgi-commerce .wc-block-components-totals-footer-item .wc-block-components-totals-item__value { color: var(--tgi-navy); font-weight: 900; }
.tgi-commerce .wc-block-components-notice-banner { border-radius: 0; }
.tgi-commerce .wc-block-components-validation-error { color: var(--tgi-navy); font-weight: 700; }
.tgi-commerce .wc-block-components-checkout-return-to-cart-button,
.tgi-commerce .wc-block-components-panel__button,
.tgi-commerce .wc-block-components-address-form__address_2-toggle { color: var(--tgi-blue); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

/* Classic fragments are still used by some gateways and order/account screens. */
.tgi-commerce .woocommerce form .form-row input.input-text,
.tgi-commerce .woocommerce form .form-row textarea,
.tgi-commerce .woocommerce form .form-row select { border: 2px solid #d4dce3; border-radius: 0; box-shadow: none; min-height: 48px; padding: 10px 13px; }
.tgi-commerce .woocommerce button.button,
.tgi-commerce .woocommerce a.button,
.tgi-commerce .woocommerce input.button { background: var(--tgi-blue); border-radius: 0; color: white; font-weight: 800; }
.tgi-commerce .woocommerce button.button:hover,
.tgi-commerce .woocommerce a.button:hover,
.tgi-commerce .woocommerce input.button:hover { background: var(--tgi-navy); color: white; }
.tgi-commerce .woocommerce-order-details { margin-top: 38px; }
.tgi-commerce .woocommerce table.shop_table { font-size: 16px; }
/* WooCommerce uses a row header for the order number; retain it on mobile. */
@media (max-width: 768px) {
  .tgi-commerce .woocommerce table.shop_table_responsive tbody th.woocommerce-orders-table__cell-order-number { display: flex; justify-content: space-between; }
  .tgi-commerce .woocommerce table.shop_table_responsive tbody th.woocommerce-orders-table__cell-order-number::before { content: attr(data-title) ": "; }
  .tgi-commerce .wc-block-cart__main, .tgi-commerce .wc-block-checkout__main { padding-right: 0; }
  .tgi-commerce form.wc-block-checkout__form > .wc-block-components-checkout-step { padding: 20px 18px; }
  .tgi-commerce .wc-block-checkout__sidebar { padding: 20px 18px; }
}
@media (max-width: 1023px) {
  .training-card-grid.large-up-3 > .cell, .training-card-grid.large-up-4 > .cell { width: calc(50% - 30px); }
  .training-topics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .training-dates-table { table-layout: auto; font-size: 14px; }
  .training-dates-table th, .training-dates-table td { padding: 14px 10px; }
}
@media (max-width: 767px) {
  .training-dates-table, .training-dates-table tbody, .training-dates-table tr, .training-dates-table td { display: block; width: 100%; }
  .training-dates-table thead { position: absolute; width: 1px; height: 1px; clip-path: inset(50%); overflow: hidden; }
  .training-dates-table tr { padding: 14px 18px; border: 1px solid var(--training-line); margin-bottom: 18px; }
  .training-dates-table td { padding: 10px 0; display: grid; grid-template-columns: 105px minmax(0, 1fr); column-gap: 14px; font-size: 15px; }
  .training-dates-table td::before { content: attr(data-label); font-weight: 700; color: var(--tgi-navy); grid-row: span 2; }
  .training-dates-table td small { grid-column: 2; }
  .training-dates-table .button { justify-self: start; }
  .training-syllabus, .training-suitability { grid-template-columns: minmax(0, 1fr); }
  .training-description-layout.has-quote { grid-template-columns: minmax(0, 1fr); }
  .training-booking .training-breadcrumbs { font-size: 13px; }
  .training-event-heading { margin-inline: 0; }
}
@media (max-width: 639px) {
  .training-card-grid.large-up-3 > .cell, .training-card-grid.large-up-4 > .cell { width: calc(100% - 30px); }
  .training-card-grid { row-gap: 22px; }
  .training-card .card-body { padding: 24px; }
  .training-topics { grid-template-columns: minmax(0, 1fr); }
  .training-filters label { flex-basis: 100%; }
  .training-event-heading h1 { font-size: 28px; }
  .training-faqs summary { font-size: 16px; padding: 18px; }
  .training-steps article { padding: 24px; }
}

/* Single event — branded booking layout */
/* TEC wraps the single event in #tribe-events-pg-template (max-width 1048, auto margins).
   Release it so our full-bleed bands span the page; .grid-container caps inner width. */
.single-tribe_events #tribe-events-pg-template { max-width: none; width: auto; margin: 0; padding: 0; border: 0; }
.single-event .event-notices { padding-top: 18px; }
/* TEC draws a 1px grey rule above .tribe-events-event-meta (:before) and its following
   sibling divs; it reads as a stray line in our layout, so remove it. */
.single-tribe_events .tribe-events-event-meta::before,
.single-tribe_events .tribe-events-event-meta ~ div:not(.tribe-events-event-meta):not(.event-tickets) {
  border-top: 0;
}
.single-event .event-hero .event-facts { margin: 1.5rem 0 0; display: grid; gap: 0; max-width: 62ch; }
.single-event .event-facts > div { display: grid; grid-template-columns: 130px 1fr; gap: 16px; padding: 13px 0; border-top: 1px solid rgba(255,255,255,.2); }
.single-event .event-facts > div:last-child { border-bottom: 1px solid rgba(255,255,255,.2); }
.single-event .event-facts dt { margin: 0; font-weight: 700; text-transform: uppercase; font-size: 12px; letter-spacing: .06em; color: #a9e2e4; align-self: center; }
.single-event .event-facts dd { margin: 0; font-weight: 700; }
.single-event .event-facts dd.is-low { color: #ffd27a; }
.single-event .event-hero .hero-actions { margin-top: 1.9rem; display: flex; flex-wrap: wrap; align-items: center; gap: 24px; }
.single-event .event-body .grid-x { align-items: flex-start; }
.single-event .event-main { padding-right: 24px; }
.single-event .event-main .entry-content { max-width: none; }
.single-event .event-main > h2:first-of-type { margin-top: 0; }
.single-event .event-details { margin-top: 3rem; }
.single-event .event-details .tribe-events-event-meta.secondary { display: block; }
.single-event .event-details .tribe-events-event-meta { color: #263744; font-family: var(--tgi-body); font-size: 16px; line-height: 1.55; }
.single-event .event-details .tribe-events-meta-group { margin-bottom: 1.8rem; float: none; width: 100%; padding: 0; }
.single-event .event-details .tribe-events-venue-map { float: none; width: 100%; margin: 0; padding: 0; }
.single-event .event-details .tribe-events-venue-map iframe { display: block; width: 100%; max-width: none; }
.single-event .event-details .tribe-events-single-section-title { margin: 0 0 1rem; color: var(--tgi-navy); font-family: var(--tgi-body); font-size: 21px; font-weight: 900; line-height: 1.25; letter-spacing: 0; text-transform: none; }
.single-event .event-details .tribe-events-meta-list { margin: 0; padding: 0; list-style: none; }
.single-event .event-details .tribe-events-meta-item { margin: 0 0 .7rem; color: #263744; font: inherit; }
.single-event .event-details .tribe-events-meta-group-details .tribe-events-meta-item { display: grid; grid-template-columns: 125px minmax(0, 1fr); gap: 12px; }
.single-event .event-details .tribe-events-meta-label { color: var(--tgi-navy); font-weight: 800; }
.single-event .event-details .tribe-events-meta-value,
.single-event .event-details .tribe-events-address { color: inherit; font: inherit; }
.single-event .event-details .tribe-venue { color: var(--tgi-navy); font-weight: 800; }
.single-event .event-details a { color: var(--tgi-blue); font: inherit; text-decoration: underline; text-underline-offset: 3px; }
.single-event .event-details a:hover { color: var(--tgi-navy); }
.single-event .event-details a:focus-visible { outline: 3px solid var(--tgi-blue); outline-offset: 3px; }
.single-event .event-details .tribe-events-gmap { display: inline-block; margin-top: .55rem; }
.event-venue-information { margin-top: 2rem; }
.event-venue-information h3 { color: var(--tgi-navy); font-size: 21px; margin-bottom: 1rem; }
.event-venue-information-copy p { margin-bottom: 1.25rem; }
.event-venue-information-copy img { display: block; max-width: 100%; height: auto; }
.event-booking { border: 2px solid var(--tgi-blue); background: #fff; padding: clamp(1.5rem, 2.5vw, 2.2rem); position: sticky; top: 20px; }
.event-booking .event-booking-head { border-bottom: 2px solid #e2e6ea; padding-bottom: 18px; margin-bottom: 18px; }
.event-booking .training-price { font-size: 30px; margin: 0; line-height: 1.1; }
.event-booking .training-price .per-place { display: block; font-size: 14px; font-weight: 400; color: #5a6570; margin-top: 4px; }
.event-booking .training-availability { margin: 12px 0 0; font-size: 15px; }
.event-booking .training-availability.low { color: #805000; }
.event-booking h2 { font-size: 23px; margin: 0 0 10px; }
.event-booking-note { font-size: 15px; color: #3a464f; margin-bottom: 18px; }
.event-booking-state { font-weight: 900; font-size: 21px; color: var(--tgi-navy); margin-bottom: 12px; }
.event-booking .tribe-tickets, .event-booking .tribe-common { margin: 0; }
.event-other-dates .training-dates-table { margin-top: 28px; }
.event-other-dates .training-dates-table th:first-child { width: 22%; }
.event-other-dates .training-dates-table th:nth-child(2) { width: 34%; }
.event-other-dates .training-dates-table th:nth-child(3) { width: 26%; }
.event-other-dates .training-dates-table th:last-child { width: 18%; }
@media (max-width: 767px) {
  .single-event .event-main { padding-right: 0; margin-bottom: 2.5rem; }
  .event-booking { position: static; }
  .single-event .event-facts > div { grid-template-columns: 110px 1fr; }
  .single-event .event-details .tribe-events-meta-group-details .tribe-events-meta-item { grid-template-columns: 95px minmax(0, 1fr); gap: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  .training-course-carousel-track { transition: none; }
}

/* Event Tickets attendee-registration modal (Get Tickets) — brand styling */
.tribe-modal__wrapper--ar {
  max-width: 820px !important;
  width: min(820px, 94vw) !important;
  margin: auto !important;
  padding: clamp(24px, 3vw, 40px) !important;
  border: 3px solid var(--tgi-blue);
  border-top: 8px solid var(--tgi-teal);
  background: #fff;
  font-family: var(--tgi-body);
}
.tribe-modal--ar__title {
  font-family: var(--tgi-body);
  font-weight: 900;
  color: var(--tgi-navy);
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.2;
  letter-spacing: 0;
}
.tribe-modal__wrapper--ar .tribe-modal__close-button { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border: 2px solid var(--tgi-blue); background: var(--tgi-pale); color: var(--tgi-navy); opacity: 1; }
.tribe-modal__wrapper--ar .tribe-modal__close-button:hover { background: var(--tgi-blue); color: #fff; }
.tribe-modal__wrapper--ar .tribe-modal__close-button svg { width: 18px; height: 18px; }
.tribe-modal__wrapper--ar .tribe-tickets__tickets-item { padding: 15px 0; border-top: 2px solid var(--training-line); border-bottom: 2px solid var(--training-line); }
.tribe-modal__wrapper--ar .tribe-tickets__tickets-item-content-title,
.tribe-modal__wrapper--ar .tribe-tickets__tickets-item-quantity-number { color: var(--tgi-navy); font-weight: 900; }
.tribe-modal__wrapper--ar .tribe-tickets__attendee-tickets-item {
  border: 2px solid var(--tgi-pale);
  padding: clamp(18px, 2vw, 28px);
  margin-top: 18px;
  background: #fff;
}
.tribe-modal__wrapper--ar .tribe-tickets__attendee-tickets-item-header,
.tribe-modal__wrapper--ar .tribe-tickets__attendee-tickets-item-title {
  color: var(--tgi-navy);
  font-weight: 900;
  font-size: 18px;
}
.tribe-modal__wrapper--ar .tribe-tickets__form-field {
  flex-direction: column !important;
  align-items: stretch !important;
  margin-bottom: 18px;
}
.tribe-modal__wrapper--ar .tribe-tickets__form-field-label {
  width: auto !important;
  max-width: none !important;
  flex: none !important;
  margin: 0 0 7px !important;
  padding: 0 !important;
  font-weight: 700;
  color: var(--tgi-navy);
  text-transform: none;
}
.tribe-modal__wrapper--ar .tribe-tickets__form-field-input-wrapper { width: 100% !important; max-width: none !important; flex: none !important; }
.tribe-modal__wrapper--ar .tribe-tickets__form-field-input {
  border: 2px solid #cdd4da !important;
  border-radius: 0 !important;
  padding: 13px 16px !important;
  font: inherit;
  width: 100%;
  color: var(--tgi-ink);
}
.tribe-modal__wrapper--ar .tribe-tickets__form-field-input:focus {
  border-color: var(--tgi-navy) !important;
  box-shadow: inset 0 0 0 1px var(--tgi-navy) !important;
  outline: none;
}

/* Event Tickets' full attendee-registration page appears between basket and checkout. */
.tgi-attendee-registration .standard-page { max-width: 1320px; padding-top: clamp(32px, 5vw, 68px); }
.tgi-attendee-registration .standard-page > article > h1 { display: none; }
.tgi-attendee-registration .entry-content { max-width: none; }
.tgi-attendee-registration .tribe-tickets__registration { max-width: 1180px; margin-inline: auto; }
.tgi-attendee-registration .tribe-tickets__registration-actions { margin-bottom: 18px; }
.tgi-attendee-registration .tribe-tickets__registration-back-to-cart { color: var(--tgi-blue); font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.tgi-attendee-registration .tribe-tickets__registration-page-title { margin-bottom: clamp(30px, 4vw, 48px); color: var(--tgi-navy); font-family: var(--tgi-display); font-size: clamp(30px, 3vw, 48px); font-weight: 800; letter-spacing: var(--tgi-display-tracking); text-transform: uppercase; }
.tgi-attendee-registration .tribe-tickets__registration-page-title::after { content: ''; display: block; width: 68px; height: 4px; margin-top: 18px; background: var(--tgi-blue); }
.tgi-attendee-registration .tribe-tickets__registration-grid { gap: clamp(28px, 5vw, 64px); padding-top: clamp(28px, 3vw, 40px); }
.tgi-attendee-registration .tribe-tickets__registration-event { color: var(--tgi-blue); font-weight: 800; }
.tgi-attendee-registration .tribe-tickets__registration-title,
.tgi-attendee-registration .tribe-tickets__registration-title a { color: var(--tgi-navy); font-weight: 900; line-height: 1.22; }
.tgi-attendee-registration .tribe-tickets__registration-summary { margin-bottom: 28px; padding-bottom: 22px; border-bottom: 2px solid var(--training-line); }
.tgi-attendee-registration .tribe-tickets__mini-cart { box-sizing: border-box; margin-top: 0; padding: clamp(22px, 2.8vw, 30px); border: 3px solid var(--tgi-blue); background: #f2f2f2; }
.tgi-attendee-registration .tribe-tickets__mini-cart-title { padding-bottom: 16px; border-bottom: 3px solid var(--tgi-blue); color: var(--tgi-navy); font-family: var(--tgi-body); font-weight: 900; }
.tgi-attendee-registration .tribe-tickets__tickets-item { border-color: var(--training-line); }
.tgi-attendee-registration .tribe-tickets__tickets-item-content-title,
.tgi-attendee-registration .tribe-tickets__tickets-sale-price,
.tgi-attendee-registration .tribe-tickets__tickets-item-total { color: var(--tgi-navy); font-weight: 900; }
.tgi-attendee-registration .tribe-tickets__attendee-tickets-item { margin-top: 22px; padding: clamp(20px, 3vw, 30px); border: 2px solid var(--tgi-pale); background: #fff; }
.tgi-attendee-registration .tribe-tickets__attendee-tickets-item-title { color: var(--tgi-navy); font-size: 18px; font-weight: 900; }
.tgi-attendee-registration .tribe-tickets__form-field { flex-direction: column !important; align-items: stretch !important; gap: 7px; margin-bottom: 18px; }
.tgi-attendee-registration .tribe-tickets__form-field-label,
.tgi-attendee-registration .tribe-tickets__form-field-input-wrapper { width: 100% !important; max-width: none !important; flex: none !important; }
.tgi-attendee-registration .tribe-tickets__form-field-label { width: 100% !important; max-width: none !important; flex: none !important; margin: 0 0 2px !important; color: var(--tgi-navy); font-weight: 800; }
.tgi-attendee-registration .tribe-tickets__form-field-input { box-sizing: border-box; width: 100%; min-height: 52px; padding: 12px 15px; border: 2px solid var(--training-line); border-radius: 0; box-shadow: none; color: var(--tgi-ink); font: inherit; }
.tgi-attendee-registration .tribe-tickets__form-field-input:focus { border-color: var(--tgi-blue); box-shadow: inset 0 0 0 1px var(--tgi-blue); outline: 0; }
.tgi-attendee-registration .tribe-tickets__registration-submit { min-height: 56px; padding-inline: 26px; border-radius: 0 !important; background-color: var(--tgi-blue) !important; color: #fff !important; font-family: var(--tgi-body); font-weight: 900; text-transform: uppercase; }
.tgi-attendee-registration .tribe-tickets__registration-submit:hover { background-color: var(--tgi-navy) !important; }

@media (max-width: 640px) {
  .tribe-modal__wrapper--ar { padding: 22px !important; }
  .tribe-modal__wrapper--ar .tribe-modal__close-button { width: 38px; height: 38px; }
  .tgi-attendee-registration .tribe-tickets__registration-page-title { font-size: 30px; }
  .tgi-attendee-registration .tribe-tickets__mini-cart { padding: 20px 18px; }
  .tgi-attendee-registration .tribe-tickets__mini-cart .tribe-tickets__tickets-item { display: grid !important; grid-template-columns: minmax(0, 1fr) auto auto !important; gap: 12px; align-items: end; }
  .tgi-attendee-registration .tribe-tickets__mini-cart .tribe-tickets__tickets-item-content-title-container { grid-column: 1 / -1 !important; grid-row: auto !important; }
  .tgi-attendee-registration .tribe-tickets__mini-cart .tribe-tickets__tickets-item-extra { grid-column: 1 !important; grid-row: auto !important; }
  .tgi-attendee-registration .tribe-tickets__mini-cart .tribe-ticket-quantity { grid-column: 2 !important; grid-row: auto !important; }
  .tgi-attendee-registration .tribe-tickets__mini-cart .tribe-tickets__tickets-item-total-wrap { grid-column: 3 !important; grid-row: auto !important; }
  .tgi-attendee-registration .tribe-tickets__attendee-tickets-item { padding: 20px 18px; }
}

/* ==========================================================================
   Booking journey: places panel, modal cart, checkout summary, order details.
   Event Tickets and WooCommerce Blocks both ship their own neutral look; these
   rules bring the four customer-facing steps onto the TGI card language.
   ========================================================================== */

/* --- Places panel on the event page --------------------------------------
   Event Tickets ships its rules under `.entry .entry-content .event-tickets`,
   so the stepper below is scoped tightly enough to win on specificity rather
   than on stylesheet order. */
.event-booking .tribe-tickets__tickets-wrapper,
.event-booking .tribe-tickets__tickets-form { border: 0; padding: 0; }
.event-booking .tribe-tickets__tickets-title {
  font-family: var(--tgi-display);
  letter-spacing: var(--tgi-display-tracking);
  text-transform: uppercase;
  color: var(--tgi-navy);
  font-size: clamp(17px, 1.25vw, 20px);
  font-weight: 800;
  margin: 0 0 6px;
}
.event-booking .tribe-tickets__tickets-title::after {
  content: ''; display: block; width: 46px; height: 3px;
  margin-top: 12px; background: var(--tgi-blue);
}

/* The default grid centres the title against a top-aligned price, which is
   what makes the row look untidy. Align every column to the same top edge and
   give the stepper room to breathe. */
.event-booking .tribe-tickets__tickets-item,
.tribe-modal__wrapper--ar .tribe-tickets__tickets-item {
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: start;
  column-gap: clamp(12px, 1.5vw, 24px);
  row-gap: 6px;
  padding: 20px 0;
}
.event-booking .tribe-tickets__tickets-item + .tribe-tickets__tickets-item { border-top: 2px solid var(--training-line); }
.single-tribe_events .event-booking .tribe-common.event-tickets .tribe-tickets__tickets-item-content-title-container { grid-area: 1 / 1 / span 2; align-self: start; }
.single-tribe_events .event-booking .tribe-common.event-tickets .tribe-tickets__tickets-item-extra { grid-area: 1 / 2 / span 2; align-self: start; text-align: right; }
.single-tribe_events .event-booking .tribe-common.event-tickets .tribe-tickets__tickets-item-quantity { grid-area: 1 / 3 / span 2; align-self: start; }
.event-booking .tribe-tickets__tickets-item-content-title {
  color: var(--tgi-navy); font-weight: 800; font-size: 17px; line-height: 1.35;
}
.event-booking .tribe-tickets__tickets-sale-price,
.tribe-modal__wrapper--ar .tribe-tickets__tickets-sale-price { color: var(--tgi-navy); font-weight: 800; white-space: nowrap; }
.event-booking .tribe-tickets__tickets-item-extra-available { color: var(--tgi-teal-text); font-size: 14px; font-weight: 700; }

/* Event Tickets sizes the price column from the shorter availability line and
   clips the tax suffix. Give the complete desktop price control of that column. */
@media (min-width: 1200px) {
  .single-tribe_events .event-booking .tribe-common.event-tickets .tribe-tickets__tickets-item-extra {
    min-width: max-content;
    overflow: visible;
  }
  .single-tribe_events .event-booking .tribe-common.event-tickets .tribe-tickets__tickets-sale-price {
    display: inline-flex;
    align-items: baseline;
    gap: .3em;
  }
}

/* Stepper: real controls rather than grey glyphs. */
.single-tribe_events .event-booking .tribe-common.event-tickets .tribe-tickets__tickets-item-quantity,
.tribe-modal__wrapper--ar .tribe-common .tribe-tickets__tickets-item-quantity {
  display: flex; align-items: stretch; gap: 0; min-height: 52px;
  border: 2px solid var(--tgi-blue); background: #fff;
}
.single-tribe_events .event-booking .tribe-common.event-tickets .tribe-tickets__tickets-item-quantity-remove,
.single-tribe_events .event-booking .tribe-common.event-tickets .tribe-tickets__tickets-item-quantity-add,
.tribe-modal__wrapper--ar .tribe-common .tribe-tickets__tickets-item-quantity-remove,
.tribe-modal__wrapper--ar .tribe-common .tribe-tickets__tickets-item-quantity-add {
  box-sizing: border-box; width: 40px; height: 48px !important; min-height: 48px; margin: 0; border: 0; padding: 0;
  background: var(--tgi-pale); color: var(--tgi-navy);
  font-size: 22px; font-weight: 800; line-height: 1;
  display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer; transition: background-color .18s ease, color .18s ease;
}
.single-tribe_events .event-booking .tribe-common.event-tickets .tribe-tickets__tickets-item-quantity-remove:hover,
.single-tribe_events .event-booking .tribe-common.event-tickets .tribe-tickets__tickets-item-quantity-add:hover,
.tribe-modal__wrapper--ar .tribe-common .tribe-tickets__tickets-item-quantity-remove:hover,
.tribe-modal__wrapper--ar .tribe-common .tribe-tickets__tickets-item-quantity-add:hover { background: var(--tgi-blue); color: #fff; }
.event-booking .tribe-tickets__tickets-item-quantity-number,
.tribe-modal__wrapper--ar .tribe-tickets__tickets-item-quantity-number { display: flex; }
.single-tribe_events .event-booking .tribe-common.event-tickets .tribe-tickets__tickets-item-quantity-number-input,
.tribe-modal__wrapper--ar .tribe-common .tribe-tickets__tickets-item-quantity-number-input {
  box-sizing: border-box; width: 56px; height: 48px !important; min-height: 48px; margin: 0; padding: 0;
  border: 0; border-inline: 2px solid var(--tgi-blue); border-radius: 0;
  background: #fff; box-shadow: none;
  color: var(--tgi-navy); font-size: 19px; font-weight: 800; text-align: center;
  -moz-appearance: textfield;
}
.event-booking .tribe-tickets__tickets-item-quantity-number-input::-webkit-outer-spin-button,
.event-booking .tribe-tickets__tickets-item-quantity-number-input::-webkit-inner-spin-button,
.tribe-modal__wrapper--ar .tribe-tickets__tickets-item-quantity-number-input::-webkit-outer-spin-button,
.tribe-modal__wrapper--ar .tribe-tickets__tickets-item-quantity-number-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* Footer: totals read as a summary line, not as small print. */
.event-booking .tribe-tickets__tickets-footer {
  flex-wrap: wrap; align-items: center; gap: 10px 18px;
  border-top: 2px solid var(--training-line); margin-top: 4px; padding-top: 20px;
}
.event-booking .tribe-tickets__tickets-footer-quantity,
.event-booking .tribe-tickets__tickets-footer-total { color: var(--tgi-navy); font-size: 15px; }
.event-booking .tribe-tickets__tickets-footer-quantity-number,
.event-booking .tribe-tickets__tickets-footer-total-wrap { font-weight: 800; }
.event-booking .tribe-tickets__tickets-footer-total { margin-right: auto; }
.event-booking .tribe-tickets__tickets-buy.tribe-common-c-btn {
  text-transform: uppercase; font-weight: 800; letter-spacing: .02em;
  min-height: 52px; padding-inline: 26px; width: 100%;
}


/* --- Delegate details modal ---------------------------------------------- */
/* Event Tickets sets font-size and line-height on this heading with
   !important, and 20px/20px collides badly once the title is uppercase and
   wraps onto three lines. Those two declarations are the only ones here that
   need to match it; the rest win on specificity alone. */
.tribe-dialog__wrapper.tribe-modal__wrapper--ar h2.tribe-modal--ar__title {
  font-family: var(--tgi-display);
  letter-spacing: var(--tgi-display-tracking);
  text-transform: uppercase;
  color: var(--tgi-navy);
  font-size: clamp(15px, 1.15vw, 18px) !important;
  font-weight: 800;
  line-height: 1.35 !important;
  margin: 0 0 4px;
  padding-bottom: 16px;
  border-bottom: 3px solid var(--tgi-blue);
}
/* Event Tickets repeats the place name as a heading above the delegate
   fields, directly under the cart row that already shows it. With a single
   kind of place that is the same sentence twice; with two or more it is what
   separates one group of delegate fields from the next, so it only goes when
   there is nothing to separate. The standalone attendee-registration page is
   left alone, where the heading distinguishes different events. */
.tribe-modal__wrapper--ar .tribe-tickets__attendee-tickets-form:not(:has(> .tribe-tickets__attendee-tickets-container ~ .tribe-tickets__attendee-tickets-container)) .tribe-ticket__tickets-heading { display: none; }
.tribe-modal__wrapper--ar .tribe-tickets__tickets-item { align-items: center; column-gap: 16px; }
.tribe-modal__wrapper--ar .tribe-tickets__tickets-item-content-title { font-size: 16px; line-height: 1.35; }
.tribe-modal__wrapper--ar .tribe-tickets__tickets-item-total,
.tribe-modal__wrapper--ar .tribe-tickets__tickets-item-total-wrap { color: var(--tgi-navy); font-weight: 800; text-align: right; }
.tribe-modal__wrapper--ar .tribe-tickets__tickets-item-extra { text-align: right; }
.tribe-modal__wrapper--ar .tribe-tickets__tickets-footer,
.tribe-modal__wrapper--ar .tribe-modal__cart { color: var(--tgi-navy); }
.tribe-modal__wrapper--ar .tribe-tickets__tickets-footer-quantity-number,
.tribe-modal__wrapper--ar .tribe-tickets__tickets-footer-total-wrap { font-weight: 800; }

/* --- Checkout: order summary --------------------------------------------
   The summary was the one panel on checkout still wearing WooCommerce's own
   look, so it read as a different product from the branded steps beside it. */
.tgi-commerce .wc-block-checkout__sidebar { background: #fff; }
.tgi-commerce .wc-block-components-checkout-order-summary__title {
  margin: 0 0 20px;
  padding: 0 0 16px;
  border-bottom: 3px solid var(--tgi-blue);
  pointer-events: none;
}
.tgi-commerce .wc-block-components-checkout-order-summary__title-text,
.tgi-commerce .wc-block-components-checkout-order-summary__title .wc-block-components-title {
  font-family: var(--tgi-display);
  letter-spacing: var(--tgi-display-tracking);
  text-transform: uppercase;
  color: var(--tgi-navy);
  font-size: clamp(17px, 1.3vw, 20px);
  font-weight: 800;
}
.tgi-commerce .wc-block-components-checkout-order-summary__title-icon { display: none; }
/* WooCommerce draws its own faint box and side padding inside our bordered
   sidebar, which reads as a panel within a panel. */
.tgi-commerce .wp-block-woocommerce-checkout-order-summary-block { border: 0; }
.tgi-commerce .wc-block-components-order-summary { padding-inline: 0; }
.tgi-commerce .wc-block-components-order-summary__content { background: transparent; padding: 0; }
.tgi-commerce .wc-block-components-order-summary-item { padding-block: 18px; border-bottom: 2px solid var(--training-line, #d4dce3); }
.tgi-commerce .wc-block-components-order-summary-item:last-child { border-bottom: 0; }

/* Places have no product photo, so WooCommerce falls back to a broken-looking
   placeholder. Drop it and let the quantity badge sit against the name. */
.tgi-commerce .wc-block-components-order-summary-item__image > img { display: none; }
.tgi-commerce .wc-block-components-order-summary-item__image {
  width: 34px; min-width: 34px; flex: 0 0 34px; margin-right: 12px;
}
.tgi-commerce .wc-block-components-order-summary-item__quantity {
  position: static;
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 30px; height: 30px; padding: 0 8px;
  border: 0; border-radius: 0;
  background: var(--tgi-navy); color: #fff;
  font-size: 14px; font-weight: 800;
}
.tgi-commerce .wc-block-components-product-name { color: var(--tgi-navy); font-weight: 800; font-size: 15px; line-height: 1.35; }
.tgi-commerce .wc-block-components-order-summary-item__total-price,
.tgi-commerce .wc-block-components-product-price__value { color: var(--tgi-navy); font-weight: 800; }
.tgi-commerce .wc-block-components-product-metadata,
.tgi-commerce .wc-block-components-product-details { color: #4c5964; font-size: 13px; line-height: 1.45; }
.tgi-commerce .wc-block-components-product-details__name { color: var(--tgi-navy); font-weight: 700; }
.tgi-commerce .wc-block-components-product-details li { margin-bottom: 2px; }
.tgi-commerce .wc-block-components-totals-item__label { color: var(--tgi-ink); }
.tgi-commerce .wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-size: clamp(20px, 1.7vw, 25px); }

/* --- Order received: order details --------------------------------------- */
.tgi-commerce .woocommerce-order-details__title,
.tgi-commerce .woocommerce-column__title { font-size: clamp(22px, 2.2vw, 30px); }
.tgi-commerce .woocommerce table.shop_table {
  border: 2px solid var(--tgi-blue);
  border-radius: 0;
  border-collapse: collapse;
  width: 100%;
}
.tgi-commerce .woocommerce table.shop_table thead th {
  background: var(--tgi-navy);
  color: #fff;
  font-family: var(--tgi-display);
  letter-spacing: .04em;
  text-transform: uppercase;
  font-size: 13px;
  font-weight: 800;
  padding: 14px 18px;
  border: 0;
}
.tgi-commerce .woocommerce table.shop_table tbody td,
.tgi-commerce .woocommerce table.shop_table tfoot td,
.tgi-commerce .woocommerce table.shop_table tfoot th {
  padding: 16px 18px;
  border-top: 1px solid var(--training-line, #d4dce3);
  vertical-align: top;
}
.tgi-commerce .woocommerce table.shop_table tbody tr:nth-child(odd) td { background: #fff; }
.tgi-commerce .woocommerce table.shop_table tbody tr:nth-child(even) td { background: #f7f9fa; }
.tgi-commerce .woocommerce-table__product-name { color: var(--tgi-navy); font-weight: 800; line-height: 1.4; }
.tgi-commerce .woocommerce-table__product-name a { color: var(--tgi-blue); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.tgi-commerce .woocommerce-table__product-name .tribe-event-details {
  display: block; margin-top: 8px;
  color: #4c5964; font-size: 14px; font-weight: 400; line-height: 1.6;
}
.tgi-commerce .woocommerce-table__product-name .tribe-event-details em { font-style: normal; }
.tgi-commerce .woocommerce-table__product-name .tribe-event-details .event-title { display: inline-block; margin-bottom: 4px; font-size: 15px; }
.tgi-commerce .woocommerce-table__product-name .product-quantity { color: var(--tgi-navy); }
.tgi-commerce .tgi-order-grand-total { font-size: clamp(19px, 1.6vw, 23px); }
.tgi-commerce .woocommerce-table__product-name .wc-item-meta { margin: 10px 0 0; padding: 0; list-style: none; font-weight: 400; }
.tgi-commerce .woocommerce-table__product-name .wc-item-meta li { display: flex; gap: 8px; margin: 0 0 3px; font-size: 14px; color: #4c5964; }
.tgi-commerce .woocommerce-table__product-name .wc-item-meta-label { color: var(--tgi-navy); font-weight: 700; min-width: 0; }
.tgi-commerce .woocommerce-table__product-name .wc-item-meta p { margin: 0; }
.tgi-commerce .woocommerce-table__product-total,
.tgi-commerce table.shop_table tfoot td { color: var(--tgi-navy); font-weight: 800; white-space: nowrap; }
.tgi-commerce table.shop_table tfoot th { color: var(--tgi-ink); font-weight: 700; text-align: left; }
.tgi-commerce table.shop_table tfoot tr:last-child th,
.tgi-commerce table.shop_table tfoot tr:last-child td { border-top: 2px solid var(--tgi-navy); }
.tgi-commerce .woocommerce-order-overview {
  list-style: none; margin: 0 0 34px; padding: 22px clamp(18px, 2.4vw, 28px);
  border: 2px solid var(--tgi-pale); background: #fff;
  display: flex; flex-wrap: wrap; gap: 18px clamp(24px, 3vw, 46px);
}
.tgi-commerce .woocommerce-order-overview li { border: 0; padding: 0; margin: 0; font-size: 13px; text-transform: uppercase; letter-spacing: .04em; color: #4c5964; }
.tgi-commerce .woocommerce-order-overview li strong { display: block; margin-top: 5px; font-size: 17px; text-transform: none; letter-spacing: 0; color: var(--tgi-navy); font-weight: 800; }
.tgi-commerce .woocommerce-customer-details address { border: 2px solid var(--tgi-pale); border-radius: 0; padding: clamp(18px, 2.4vw, 26px); font-style: normal; line-height: 1.7; }

@media (max-width: 640px) {
  .tgi-commerce .woocommerce table.shop_table thead { display: none; }
  .tgi-commerce .woocommerce table.shop_table tbody td,
  .tgi-commerce .woocommerce table.shop_table tfoot td,
  .tgi-commerce .woocommerce table.shop_table tfoot th { padding: 12px 14px; }
}

/* The booking panel is a narrow sidebar column from the medium breakpoint up
   until the viewport is genuinely wide, and three columns do not fit in it.
   Put the place name on its own row and pair the price with the stepper. */
@media (max-width: 1199px) {
  .single-tribe_events .event-booking .tribe-common.event-tickets .tribe-tickets__tickets-item { grid-template-columns: minmax(0, 1fr) auto; row-gap: 14px; }
  .single-tribe_events .event-booking .tribe-common.event-tickets .tribe-tickets__tickets-item-content-title-container { grid-area: 1 / 1 / 2 / -1; }
  .single-tribe_events .event-booking .tribe-common.event-tickets .tribe-tickets__tickets-item-extra { grid-area: 2 / 1 / 3 / 2; text-align: left; align-self: center; }
  .single-tribe_events .event-booking .tribe-common.event-tickets .tribe-tickets__tickets-item-quantity { grid-area: 2 / 2 / 3 / 3; justify-self: end; }
  /* Let the "+ VAT" suffix wrap rather than run under the stepper. */
  .single-tribe_events .event-booking .tribe-common.event-tickets .tribe-tickets__tickets-item-extra { min-width: 0; }
  .single-tribe_events .event-booking .tribe-common.event-tickets .tribe-tickets__tickets-sale-price { white-space: normal; }
}
