/* WooCommerce: shop, product, cart, checkout, account, notices, forms.
   WooCommerce's own CSS is disabled (inc/woocommerce.php); everything here. */

/* =======================================================
   Buttons
   ======================================================= */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
.woocommerce a.added_to_cart, .wc-block-components-button {
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  background:var(--gold); color:var(--ink);
  text-decoration:none; cursor:pointer;
  padding:13px 28px;
  border-radius:100px;
  font-family:var(--sans); font-weight:700; font-size:.96rem; line-height:1.2;
  border:2px solid var(--ink);
  box-shadow:4px 4px 0 var(--ink);
  transition:transform .16s ease, box-shadow .16s ease, background .16s ease;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce #respond input#submit:hover, .woocommerce a.added_to_cart:hover{
  transform:translate(3px,3px); box-shadow:1px 1px 0 var(--ink); background:var(--gold); color:var(--ink);
}
.woocommerce button.button:disabled, .woocommerce button.button.disabled, .woocommerce a.button.disabled{
  opacity:.45; cursor:not-allowed; transform:none; box-shadow:4px 4px 0 var(--ink);
}
/* secondary actions: outline */
.woocommerce button[name="update_cart"], .woocommerce button[name="apply_coupon"], .woocommerce a.button.wc-backward,
.woocommerce .woocommerce-MyAccount-content a.button.view, .woocommerce a.button.view{
  background:transparent; box-shadow:none;
}
.woocommerce button[name="update_cart"]:hover, .woocommerce button[name="apply_coupon"]:hover, .woocommerce a.button.wc-backward:hover,
.woocommerce a.button.view:hover{
  transform:none; background:var(--ink); color:var(--cream); box-shadow:none;
}
.woocommerce a.added_to_cart{ margin-left:10px; background:transparent; box-shadow:none; }
.woocommerce a.button.loading, .woocommerce button.button.loading{ opacity:.6; pointer-events:none; }

/* =======================================================
   Notices
   ======================================================= */
.woocommerce-notices-wrapper{ margin-bottom:24px; }
.woocommerce-message, .woocommerce-info, .woocommerce-error{
  display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap;
  list-style:none; margin:0 0 20px; padding:18px 24px;
  background:var(--paper); color:var(--ink);
  border:1px solid var(--line); border-left:4px solid var(--gold-deep);
  border-radius:0 22px 0 22px;
  font-size:.98rem; line-height:1.55;
}
.woocommerce-error{ border-left-color:#b3261e; display:block; }
.woocommerce-error li + li{ margin-top:6px; }
.woocommerce-message a.button, .woocommerce-info a.button{ order:2; padding:9px 20px; font-size:.88rem; }
.woocommerce-message a:not(.button), .woocommerce-info a:not(.button), .woocommerce-error a{ color:var(--navy); font-weight:700; }
.woocommerce-info .showcoupon, .woocommerce-info .showlogin{ text-decoration:underline; text-decoration-color:var(--gold-deep); text-underline-offset:3px; }

/* =======================================================
   Breadcrumb, ordering, result count, pagination
   ======================================================= */
.woocommerce-breadcrumb{ font-size:.86rem; color:rgba(31,42,51,.6); margin:0 0 26px; }
.woocommerce-breadcrumb a{ color:inherit; text-decoration:none; border-bottom:1px solid transparent; }
.woocommerce-breadcrumb a:hover{ color:var(--navy); border-bottom-color:var(--gold-deep); }

.woocommerce-result-count{ float:left; margin:0 0 28px; font-size:.92rem; color:rgba(31,42,51,.62); line-height:48px; }
.woocommerce-ordering{ float:right; margin:0 0 28px; }
.woocommerce-ordering select{ width:auto; min-width:220px; padding:11px 16px; border-radius:100px; font-weight:600; }

.woocommerce-pagination{ margin-top:56px; }
.woocommerce-pagination ul{ display:flex; flex-wrap:wrap; gap:8px; justify-content:center; list-style:none; margin:0; padding:0; }
.woocommerce-pagination li{ margin:0; }

/* =======================================================
   Product loop (shop / archives / related) – card
   ======================================================= */
ul.products{
  clear:both;
  display:grid; grid-template-columns:repeat(3,1fr); gap:34px 28px;
  list-style:none; margin:0; padding:0;
}
@media (max-width:900px){ ul.products{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ ul.products{ grid-template-columns:1fr; } }

ul.products li.product{
  position:relative;
  display:flex; flex-direction:column;
  background:var(--paper);
  border:1px solid var(--line); border-radius:0 40px 0 40px;
  padding:14px 14px 28px; margin:0;
  transition:transform .3s cubic-bezier(.19,1,.22,1), box-shadow .3s ease;
}
ul.products li.product:hover{ transform:translateY(-4px); box-shadow:0 18px 40px rgba(31,42,51,.1); }
ul.products li.product a.woocommerce-LoopProduct-link{ display:block; color:inherit; text-decoration:none; }
ul.products li.product img{
  width:100%; aspect-ratio:4/3; object-fit:cover;
  border-radius:0 var(--r-event) 0 var(--r-event);
  background:var(--navy);
}
ul.products li.product .woocommerce-loop-product__title{
  font-family:var(--serif); font-weight:700; font-size:1.18rem; line-height:1.38;
  color:var(--navy); margin:22px 12px 8px; padding:0;
}
ul.products li.product .price{ display:block; margin:0 12px 18px; }
ul.products li.product .button{ margin:auto 12px 0; align-self:flex-start; padding:11px 24px; font-size:.9rem; box-shadow:3px 3px 0 var(--ink); }

/* price + sale */
.woocommerce .price, .woocommerce .amount{ font-family:var(--serif); font-weight:700; color:var(--navy); }
.woocommerce .price{ font-size:1.12rem; }
.woocommerce .price del{ opacity:.5; font-weight:400; margin-right:6px; }
.woocommerce .price ins{ text-decoration:none; }
.woocommerce span.onsale{
  position:absolute; top:26px; left:26px; z-index:2;
  background:var(--ink); color:var(--gold);
  border-radius:100px; padding:6px 14px;
  font-size:.78rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; line-height:1.2;
}

/* =======================================================
   Single product
   ======================================================= */
.section--product{ padding-top:0; }
.single-product div.product{
  position:relative;
  display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); gap:24px 72px; align-items:start;
}
@media (max-width:900px){ .single-product div.product{ grid-template-columns:1fr; gap:32px; } }
.single-product div.product > .woocommerce-product-gallery, .single-product div.product > .images{ grid-column:1; }
.single-product div.product > .summary{ grid-column:2; grid-row:1 / span 2; }
.single-product div.product > .woocommerce-tabs, .single-product div.product > .event-lecturers, .single-product div.product > .related, .single-product div.product > .upsells{ grid-column:1 / -1; }
@media (max-width:900px){
  .single-product div.product > .summary{ grid-column:1; grid-row:auto; }
}
.woocommerce-product-gallery{ position:relative; margin:0; }
.woocommerce-product-gallery__wrapper{ margin:0; }
.woocommerce-product-gallery__image img, .woocommerce-product-gallery img.wp-post-image{
  width:100%; aspect-ratio:1/1; object-fit:cover;
  border-radius:var(--r-main) 0 var(--r-main) 0;
  background:var(--navy);
}
.woocommerce-product-gallery .flex-control-thumbs{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; list-style:none; margin:14px 0 0; padding:0; }
.woocommerce-product-gallery .flex-control-thumbs img{ aspect-ratio:1/1; object-fit:cover; border-radius:0 14px 0 14px; cursor:pointer; opacity:.7; }
.woocommerce-product-gallery .flex-control-thumbs img.flex-active, .woocommerce-product-gallery .flex-control-thumbs img:hover{ opacity:1; }
.woocommerce-product-gallery__trigger{
  position:absolute; top:18px; right:18px; z-index:3;
  width:44px; height:44px; border-radius:50%;
  background:var(--paper); border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center; text-decoration:none; font-size:0; overflow:hidden;
}
.woocommerce-product-gallery__trigger::before{ content:"⤢"; font-size:1.1rem; color:var(--ink); }

.summary .product_title{
  font-family:var(--serif); font-weight:700; font-size:clamp(1.8rem,3.2vw,2.6rem); line-height:1.14; letter-spacing:-.012em;
  color:var(--navy); margin:0 0 16px;
}
.summary .price{ font-size:1.6rem; margin:0 0 20px; display:block; }
.summary .woocommerce-product-details__short-description{ font-size:1.02rem; line-height:1.75; color:rgba(31,42,51,.76); margin-bottom:28px; }
.summary .stock{ display:inline-flex; margin:0 0 20px; padding:7px 16px; border-radius:100px; font-size:.84rem; font-weight:700; background:rgba(159,207,202,.35); color:#1d5b54; }
.summary .stock.out-of-stock{ background:var(--ink); color:var(--gold); }
.summary form.cart{ display:flex; align-items:center; gap:18px; flex-wrap:wrap; margin:0 0 28px; }
.summary .product_meta{ border-top:1px solid var(--line); padding-top:20px; font-size:.9rem; color:rgba(31,42,51,.62); display:grid; gap:6px; }
.summary .product_meta a{ color:var(--navy); font-weight:600; }

/* Variable products (ticket types): selector on its own row, quantity + button below */
.summary form.variations_form{ display:block; }
.variations{ width:100%; border-collapse:collapse; margin:0 0 20px; }
.variations th, .variations td{ display:block; padding:0; text-align:left; }
.variations th.label{ margin-bottom:8px; }
.variations th.label label{ font-size:.78rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:rgba(31,42,51,.5); }
.variations td.value{ display:flex; align-items:center; flex-wrap:wrap; gap:14px; }
.variations select{ width:auto; min-width:260px; max-width:100%; padding:12px 18px; border-radius:100px; font-weight:600; }
.reset_variations{ font-size:.86rem; color:rgba(31,42,51,.6); }
.single_variation_wrap .woocommerce-variation-price .price{ display:block; font-size:1.3rem; margin:0 0 14px; }
.single_variation_wrap .woocommerce-variation-add-to-cart{ display:flex; align-items:center; flex-wrap:wrap; gap:18px; }

/* quantity is a hidden input when only one seat is left: no empty flex item pushing the button right */
.woocommerce .quantity.hidden, .quantity:has(input[type="hidden"]){ display:none; }
.event-closed{
  margin:0 0 28px; padding:18px 24px;
  background:var(--paper); color:var(--ink);
  border:1px solid var(--line); border-left:4px solid var(--gold-deep);
  border-radius:0 22px 0 22px;
  font-weight:600; line-height:1.55;
}

.quantity input.qty{
  width:84px; padding:12px 10px; text-align:center; font-weight:700; border-radius:100px;
}

/* Training facts (date, format, place, seats, tickets) in the summary */
.event-facts{ margin:0 0 26px; border-top:1px solid var(--line); }
.event-fact{ display:grid; grid-template-columns:110px 1fr; gap:16px; align-items:baseline; padding:13px 0; border-bottom:1px solid var(--line); }
.event-fact dt{ font-size:.78rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:rgba(31,42,51,.5); }
.event-fact dd{ margin:0; font-size:.98rem; line-height:1.55; color:rgba(31,42,51,.86); }
.event-fact dd b{ color:var(--navy); }
.event-fact dd a{ color:var(--navy); font-weight:600; text-decoration-color:var(--gold-deep); text-underline-offset:3px; text-decoration-thickness:2px; }
.event-fact dd a:hover{ background:var(--gold); }
.event-tickets{ list-style:none; margin:0; padding:0; display:grid; gap:6px; }
.event-tickets .amount{ font-family:var(--serif); font-weight:700; color:var(--navy); }
@media (max-width:560px){ .event-fact{ grid-template-columns:1fr; gap:4px; } }

.woocommerce-tabs{ margin-top:30px; }
.woocommerce-tabs ul.tabs{ display:flex; flex-wrap:wrap; gap:10px; list-style:none; margin:0 0 -1px; padding:0; }
.woocommerce-tabs ul.tabs li{ margin:0; }
.woocommerce-tabs ul.tabs li a{
  display:block; padding:10px 22px; border-radius:100px; border:1.5px solid var(--line);
  background:var(--paper); color:var(--ink); text-decoration:none; font-weight:600; font-size:.92rem;
}
.woocommerce-tabs ul.tabs li.active a{ background:var(--gold); border-color:var(--ink); }
.woocommerce-tabs .panel{ padding:32px 0 0; font-size:1.02rem; line-height:1.8; color:rgba(31,42,51,.82); max-width:76ch; }
.woocommerce-tabs .panel h2{ font-family:var(--serif); color:var(--navy); font-size:1.4rem; margin:0 0 14px; }

section.related.products, section.upsells.products{ margin-top:72px; }
section.related.products > h2, section.upsells.products > h2{ font-family:var(--serif); color:var(--navy); font-size:clamp(1.5rem,2.6vw,2rem); margin:0 0 28px; }

/* =======================================================
   Form fields
   ======================================================= */
.woocommerce form .form-row{ margin:0 0 20px; padding:0; }
.woocommerce form .form-row label{ display:block; font-size:.9rem; margin-bottom:7px; color:var(--navy); }
.woocommerce form .form-row .required, .woocommerce form .form-row abbr.required{ color:#b3261e; text-decoration:none; border:0; }
.woocommerce form .form-row .optional{ font-weight:400; color:rgba(31,42,51,.5); }
.woocommerce form .form-row .description{ display:block; margin-top:6px; font-size:.84rem; line-height:1.5; color:rgba(31,42,51,.62); }
.woocommerce form .form-row-first, .woocommerce form .form-row-last{ width:calc(50% - 10px); float:left; }
.woocommerce form .form-row-last{ float:right; }
.woocommerce form .form-row-wide, .woocommerce form .clear{ clear:both; }
.woocommerce form .form-row::after{ content:""; display:table; clear:both; }
@media (max-width:640px){ .woocommerce form .form-row-first, .woocommerce form .form-row-last{ width:100%; float:none; } }
.woocommerce form .woocommerce-form__label-for-checkbox, .woocommerce form .form-row label.checkbox{
  display:flex; align-items:center; gap:10px; font-weight:600;
}
.woocommerce-invalid input.input-text, .woocommerce-invalid select, .woocommerce-invalid .select2-selection{ border-color:#b3261e; }
.woocommerce .password-input{ position:relative; display:block; }
.woocommerce .show-password-input{
  position:absolute; right:14px; top:50%; transform:translateY(-50%);
  width:26px; height:26px; background:none; border:0; cursor:pointer; opacity:.55;
}
.woocommerce .show-password-input::after{ content:"👁"; font-size:1rem; }
.woocommerce form .password-input input{ padding-right:48px; }
.woocommerce-form-login__rememberme{ display:flex !important; }
.lost_password{ margin-top:14px; font-size:.92rem; }
.lost_password a{ color:var(--navy); font-weight:600; }

/* select2 (country / state) */
.select2-container--default .select2-selection--single{
  height:auto; border:1.5px solid var(--line); border-radius:14px; background:var(--paper); padding:10px 8px;
}
.select2-container--default .select2-selection--single .select2-selection__rendered{ line-height:1.5; color:var(--ink); padding-left:8px; font-family:var(--sans); }
.select2-container--default .select2-selection--single .select2-selection__arrow{ height:100%; right:8px; }
.select2-container--default.select2-container--open .select2-selection--single, .select2-container--default.select2-container--focus .select2-selection--single{ border-color:var(--ink); box-shadow:3px 3px 0 var(--gold); }
.select2-dropdown{ border:1.5px solid var(--ink); border-radius:14px; overflow:hidden; font-family:var(--sans); }
.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted[data-selected]{ background:var(--gold); color:var(--ink); }
.select2-search--dropdown .select2-search__field{ border:1.5px solid var(--line); border-radius:10px; padding:8px 12px; }

/* =======================================================
   Tables (cart, order review, orders, order details)
   ======================================================= */
.woocommerce table.shop_table{
  width:100%; border-collapse:separate; border-spacing:0;
  background:var(--paper); border:1px solid var(--line); border-radius:0 32px 0 32px; overflow:hidden;
  margin:0 0 28px; font-size:.96rem;
}
.woocommerce table.shop_table th, .woocommerce table.shop_table td{ padding:18px 22px; text-align:left; border-bottom:1px solid var(--line); vertical-align:middle; }
.woocommerce table.shop_table thead th{ font-size:.76rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:rgba(31,42,51,.5); background:rgba(251,248,240,.6); }
.woocommerce table.shop_table tbody tr:last-child td, .woocommerce table.shop_table tbody tr:last-child th, .woocommerce table.shop_table tfoot tr:last-child th, .woocommerce table.shop_table tfoot tr:last-child td{ border-bottom:0; }
.woocommerce table.shop_table .product-name a{ font-family:var(--serif); font-weight:700; color:var(--navy); text-decoration:none; font-size:1.04rem; }
.woocommerce table.shop_table .product-name a:hover{ text-decoration:underline; text-decoration-color:var(--gold-deep); text-underline-offset:4px; }
.woocommerce table.shop_table .product-thumbnail{ width:96px; padding-right:0; }
.woocommerce table.shop_table .product-thumbnail img{ width:76px; min-width:76px; height:76px; object-fit:cover; border-radius:0 18px 0 18px; }
.woocommerce table.shop_table .product-remove{ width:44px; padding-right:0; }
.woocommerce a.remove{
  display:flex; align-items:center; justify-content:center;
  width:32px; height:32px; border-radius:50%;
  border:1px solid var(--line); background:var(--paper); color:var(--ink) !important;
  text-decoration:none; font-size:1.2rem; line-height:1;
}
.woocommerce a.remove:hover{ background:var(--ink); color:var(--cream) !important; border-color:var(--ink); }
.woocommerce table.shop_table td.actions{ padding:22px; }
.woocommerce .coupon{ display:flex; gap:12px; float:left; flex-wrap:wrap; }
.woocommerce .coupon input#coupon_code{ width:220px; border-radius:100px; padding:12px 20px; }
.woocommerce table.shop_table td.actions > button[name="update_cart"]{ float:right; }
.woocommerce table.shop_table td.actions::after{ content:""; display:table; clear:both; }

/* order review (checkout) & totals: less chrome */
.woocommerce table.shop_table tfoot th{ font-weight:600; color:rgba(31,42,51,.7); }
.woocommerce table.shop_table .order-total th, .woocommerce table.shop_table .order-total td{ font-size:1.1rem; color:var(--navy); }
.woocommerce table.shop_table .order-total .amount{ font-size:1.3rem; }

/* responsive tables: stack cells, show data-title */
@media (max-width:768px){
  .woocommerce table.shop_table_responsive thead{ display:none; }
  .woocommerce table.shop_table_responsive tr{ display:block; border-bottom:1px solid var(--line); padding:8px 0; }
  .woocommerce table.shop_table_responsive tr:last-child{ border-bottom:0; }
  .woocommerce table.shop_table_responsive td, .woocommerce table.shop_table_responsive tbody th{
    display:flex; justify-content:space-between; align-items:center; gap:16px;
    text-align:right; border:0; padding:10px 20px;
  }
  .woocommerce table.shop_table_responsive td::before{ content:attr(data-title); font-weight:700; font-size:.82rem; color:rgba(31,42,51,.55); text-align:left; }
  .woocommerce table.shop_table_responsive td.product-remove::before, .woocommerce table.shop_table_responsive td.product-thumbnail::before, .woocommerce table.shop_table_responsive td.actions::before{ display:none; }
  .woocommerce table.shop_table_responsive td.product-remove, .woocommerce table.shop_table_responsive td.actions{ display:block; text-align:left; width:auto; }
  .woocommerce table.shop_table_responsive td.product-thumbnail{ justify-content:center; }
  .woocommerce table.shop_table_responsive td.woocommerce-orders-table__cell-order-actions{ flex-wrap:wrap; justify-content:flex-end; } /* unpaid order: Pay / View / Cancel / pro-forma do not fit in one row */
  .woocommerce table.shop_table_responsive td.woocommerce-orders-table__cell-order-actions::before{ margin-right:auto; }
  .cart_totals table.shop_table_responsive tr{ display:flex; justify-content:space-between; align-items:center; padding:0; }
  .cart_totals table.shop_table_responsive th, .cart_totals table.shop_table_responsive td{ padding:14px 0; display:block; }
  .cart_totals table.shop_table_responsive td::before{ display:none; }
  .woocommerce .coupon{ float:none; width:100%; }
  .woocommerce .coupon input#coupon_code{ flex:1 1 160px; width:auto; }
  .woocommerce table.shop_table td.actions > button[name="update_cart"]{ float:none; width:100%; margin-top:14px; }
}

/* =======================================================
   Cart
   ======================================================= */
.woocommerce-cart .entry-wc > .woocommerce{ display:grid; grid-template-columns:minmax(0,1fr) 380px; gap:0 40px; align-items:start; }
.woocommerce-cart .woocommerce-notices-wrapper{ grid-column:1 / -1; }
.woocommerce-cart .woocommerce-cart-form{ grid-column:1; }
.woocommerce-cart .cart-collaterals{ grid-column:2; }
@media (max-width:1000px){
  .woocommerce-cart .entry-wc > .woocommerce{ grid-template-columns:minmax(0,1fr); }
  .woocommerce-cart .cart-collaterals{ grid-column:1; }
}
.cart_totals{
  background:var(--paper); border:1px solid var(--line); border-radius:0 40px 0 40px; padding:30px 28px 28px;
}
.cart_totals h2{ font-family:var(--serif); font-size:1.3rem; color:var(--navy); margin:0 0 18px; }
.cart_totals table.shop_table{ border:0; border-radius:0; margin:0 0 20px; background:none; }
.cart_totals table.shop_table th, .cart_totals table.shop_table td{ padding:14px 0; }
.wc-proceed-to-checkout a.checkout-button{ display:flex; width:100%; justify-content:center; padding:16px 28px; font-size:1.02rem; }
.cart-empty.woocommerce-info{ margin-bottom:28px; }
.return-to-shop{ margin:0; }

/* Cart: participants, one group per ticket (inc/attendees.php) */
.uze-attendees{ margin:0 0 28px; }
.uze-attendees__title{ font-family:var(--serif); font-weight:700; font-size:1.35rem; line-height:1.25; color:var(--navy); margin:36px 0 8px; }
.uze-attendees__lead{ margin:0 0 22px; font-size:.96rem; line-height:1.6; color:rgba(31,42,51,.7); }
.uze-attendees__training{ background:var(--paper); border:1px solid var(--line); border-radius:0 32px 0 32px; padding:26px 28px; margin:0 0 20px; }
.uze-attendees__training-title{ font-family:var(--serif); font-weight:700; font-size:1.1rem; line-height:1.35; color:var(--navy); margin:0 0 18px; }
.uze-attendee + .uze-attendee{ border-top:1px dashed var(--line); margin-top:22px; padding-top:22px; }
.uze-attendee__title{ margin:0 0 12px; font-size:.78rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:rgba(31,42,51,.5); }
.uze-attendee__fields{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 20px; }
@media (max-width:560px){ .uze-attendee__fields{ grid-template-columns:1fr; } }
.uze-attendee__field label{ display:block; font-size:.9rem; margin-bottom:7px; color:var(--navy); }
.uze-attendee__field abbr.required{ color:#b3261e; text-decoration:none; border:0; }
.uze-attendee__field input[aria-invalid="true"]{ border-color:#b3261e; }
.uze-attendees__error{ margin:0 0 20px; padding:14px 22px; background:var(--paper); border:1px solid var(--line); border-left:4px solid #b3261e; border-radius:0 22px 0 22px; font-weight:600; line-height:1.5; }
.uze-attendees__error[hidden]{ display:none; }

/* =======================================================
   Checkout
   ======================================================= */
form.woocommerce-checkout{
  display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  grid-template-areas:"details heading" "details review";
  grid-template-rows:auto 1fr;
  gap:0 48px; align-items:start;
}
form.woocommerce-checkout #customer_details{ grid-area:details; }
form.woocommerce-checkout #order_review_heading{ grid-area:heading; }
form.woocommerce-checkout #order_review{ grid-area:review; }
@media (max-width:1000px){
  form.woocommerce-checkout{ grid-template-columns:1fr; grid-template-rows:none; grid-template-areas:"details" "heading" "review"; }
}
.woocommerce-checkout h3, .woocommerce-account h2, .woocommerce-account h3, .woocommerce-Address-title h3{
  font-family:var(--serif); font-weight:700; color:var(--navy); font-size:1.35rem; line-height:1.25; margin:0 0 20px;
}
.woocommerce-checkout .col2-set .col-1, .woocommerce-checkout .col2-set .col-2{ float:none; width:auto; margin-bottom:34px; }
#order_review_heading{ margin-top:0; }
#order_review{
  background:var(--paper); border:1px solid var(--line); border-radius:0 40px 0 40px; padding:28px; position:sticky; top:120px;
}
#order_review table.shop_table{ border:0; border-radius:0; background:none; margin-bottom:18px; }
#order_review table.shop_table th, #order_review table.shop_table td{ padding:12px 0; }
#order_review table.shop_table thead th{ background:none; }
#order_review table.shop_table td.product-total{ vertical-align:top; }

/* line item data (ticket type in the cart, participants at checkout) */
dl.variation{ display:grid; grid-template-columns:auto 1fr; gap:2px 8px; margin:8px 0 0; font-size:.88rem; line-height:1.5; color:rgba(31,42,51,.7); }
dl.variation dt{ font-weight:700; }
dl.variation dd{ margin:0; }
dl.variation dd p{ margin:0; }

#payment ul.wc_payment_methods{ list-style:none; margin:0 0 20px; padding:0; display:grid; gap:10px; }
#payment ul.wc_payment_methods li{ border:1.5px solid var(--line); border-radius:16px; padding:14px 18px; background:var(--cream); }
#payment ul.wc_payment_methods li label{ display:inline; margin-left:8px; cursor:pointer; }
#payment .payment_box{ margin-top:12px; font-size:.92rem; line-height:1.6; color:rgba(31,42,51,.72); }
#payment .payment_box p{ margin:0; }
#payment .place-order{ margin:0; padding:0; }
#payment #place_order{ width:100%; padding:16px 28px; font-size:1.04rem; float:none; }
.woocommerce-terms-and-conditions-wrapper, .woocommerce-privacy-policy-text{ font-size:.86rem; line-height:1.6; color:rgba(31,42,51,.62); margin-bottom:18px; }
.woocommerce-privacy-policy-text a, .woocommerce-terms-and-conditions-wrapper a{ color:var(--navy); font-weight:600; }

/* checkout login / coupon toggles */
.woocommerce-form-login-toggle, .woocommerce-form-coupon-toggle{ margin-bottom:8px; }
form.checkout_coupon, form.woocommerce-form-login{
  background:var(--paper); border:1px solid var(--line); border-radius:0 28px 0 28px; padding:26px 28px; margin:0 0 28px;
}

/* order received */
.woocommerce-order-overview{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:20px;
  list-style:none; margin:0 0 32px; padding:24px 28px;
  background:var(--paper); border:1px solid var(--line); border-radius:0 32px 0 32px;
}
.woocommerce-order-overview li{ font-size:.8rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:rgba(31,42,51,.5); }
.woocommerce-order-overview li strong{ display:block; margin-top:6px; font-size:1.05rem; letter-spacing:0; text-transform:none; color:var(--navy); font-family:var(--serif); }
.woocommerce-thankyou-order-received{ font-family:var(--serif); font-size:1.2rem; color:var(--navy); margin-bottom:24px; }

/* =======================================================
   My account
   ======================================================= */
.woocommerce-account .entry-wc > .woocommerce{ display:grid; grid-template-columns:260px minmax(0,1fr); gap:0 48px; align-items:start; }
.woocommerce-account .woocommerce-notices-wrapper{ grid-column:1 / -1; }
.woocommerce-account .entry-wc > .woocommerce > #customer_login,
.woocommerce-account .entry-wc > .woocommerce > .woocommerce-ResetPassword,
.woocommerce-account .entry-wc > .woocommerce > form.login,
.woocommerce-account .entry-wc > .woocommerce > .lost_reset_password{ grid-column:1 / -1; }
@media (max-width:900px){ .woocommerce-account .entry-wc > .woocommerce{ grid-template-columns:minmax(0,1fr); gap:28px; } }
.woocommerce-MyAccount-navigation{ min-width:0; }

.woocommerce-MyAccount-navigation ul{
  list-style:none; margin:0; padding:12px;
  background:var(--paper); border:1px solid var(--line); border-radius:0 32px 0 32px;
  display:grid; gap:4px;
}
.woocommerce-MyAccount-navigation a{
  display:block; padding:11px 18px; border-radius:100px;
  color:var(--ink); text-decoration:none; font-weight:600; font-size:.95rem;
  transition:background .18s ease;
}
.woocommerce-MyAccount-navigation a:hover{ background:var(--cream); }
.woocommerce-MyAccount-navigation .is-active a{ background:var(--gold); }
@media (max-width:900px){
  .woocommerce-MyAccount-navigation ul{ display:flex; overflow-x:auto; gap:6px; border-radius:100px; padding:8px; scrollbar-width:none; }
  .woocommerce-MyAccount-navigation ul::-webkit-scrollbar{ display:none; }
  .woocommerce-MyAccount-navigation a{ white-space:nowrap; }
}
.woocommerce-MyAccount-content{ font-size:1.02rem; line-height:1.75; color:rgba(31,42,51,.82); min-width:0; }
.woocommerce-MyAccount-content p{ margin-top:0; }
.woocommerce-MyAccount-content a:not(.button){ color:var(--navy); font-weight:600; text-decoration-color:var(--gold-deep); text-underline-offset:3px; }
.woocommerce-MyAccount-content fieldset{ border:1px solid var(--line); border-radius:0 28px 0 28px; padding:24px 26px 6px; margin:12px 0 26px; background:var(--paper); }
.woocommerce-MyAccount-content legend{ font-family:var(--serif); font-weight:700; color:var(--navy); padding:0 10px; font-size:1.1rem; }
.woocommerce-Addresses{ display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
@media (max-width:700px){ .woocommerce-Addresses{ grid-template-columns:1fr; } }
.woocommerce-Addresses .u-column1, .woocommerce-Addresses .u-column2{ float:none; width:auto; }
.woocommerce-Address{ background:var(--paper); border:1px solid var(--line); border-radius:0 32px 0 32px; padding:26px 28px; }
.woocommerce-Address-title{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin-bottom:8px; }
.woocommerce-Address-title h3{ margin:0; font-size:1.15rem; }
.woocommerce-Address address{ font-style:normal; line-height:1.7; }

/* login / register (logged out) */
.woocommerce-account #customer_login{ display:grid; grid-template-columns:repeat(2,1fr); gap:32px; }
@media (max-width:800px){ .woocommerce-account #customer_login{ grid-template-columns:1fr; } }
.woocommerce-account #customer_login .u-column1, .woocommerce-account #customer_login .u-column2{ float:none; width:auto; }
.woocommerce-form-login, .woocommerce-form-register, .woocommerce-ResetPassword, .woocommerce form.lost_reset_password{
  background:var(--paper); border:1px solid var(--line); border-radius:0 40px 0 40px; padding:34px 32px 30px; margin:0;
}
.woocommerce-account .woocommerce-ResetPassword{ max-width:560px; }
.woocommerce-form-login .button, .woocommerce-form-register .button{ margin-top:6px; }
.woocommerce-form-login__submit{ margin-right:16px !important; }
.woocommerce-LostPassword{ margin:18px 0 0; }

/* =======================================================
   Reviews / misc
   ======================================================= */
.woocommerce #reviews #comments ol.commentlist{ list-style:none; padding:0; }
.woocommerce .star-rating{ color:var(--gold-deep); font-size:.9rem; letter-spacing:2px; }
.woocommerce-store-notice{ position:fixed; bottom:0; left:0; right:0; z-index:90; background:var(--ink); color:var(--cream); padding:14px 22px; text-align:center; margin:0; }
.woocommerce-store-notice a{ color:var(--gold); }

/* WooCommerce focuses notices for screen readers; keep the focus ring subtle */
.woocommerce-message:focus, .woocommerce-info:focus, .woocommerce-error:focus{ outline:2px solid var(--gold-deep); outline-offset:2px; }
