/* ==========================================================================
   SHOP — WooCommerce styled to the site design system.
   Loaded only on product, cart, checkout and account pages.
   ========================================================================== */

.shop-body{background:var(--white)}
.shop-body--product{padding-top:80px}
.shop-body .wrap{max-width:1160px}

/* ---------- product layout ---------- */
.woocommerce div.product{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.woocommerce div.product div.images,
.woocommerce div.product div.summary{width:auto;float:none;margin:0}
.woocommerce div.product div.images img{width:100%;display:block}
.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .related,
.woocommerce div.product .upsells{grid-column:1 / -1}

@media(max-width:900px){
  .woocommerce div.product{grid-template-columns:1fr;gap:38px}
}

/* ---------- titles and price ---------- */
.woocommerce div.product .product_title{font-family:var(--display);text-transform:uppercase;
     letter-spacing:.04em;font-weight:300;font-size:clamp(1.5rem,3vw,2.2rem);line-height:1.2;margin-bottom:18px}
.woocommerce div.product p.price,
.woocommerce div.product span.price{color:var(--ink);font-family:var(--display);
     font-size:1.7rem;font-weight:400;margin-bottom:22px}
.woocommerce div.product p.price del{opacity:.45;font-size:1.1rem;margin-right:10px}
.woocommerce div.product p.price ins{text-decoration:none}

.woocommerce div.product .woocommerce-product-details__short-description{font-size:18px;
     line-height:1.85;color:#4a4a4a;margin-bottom:28px}

/* ---------- variation selector ---------- */
.woocommerce div.product form.cart .variations{margin-bottom:24px;border:0}
.woocommerce div.product form.cart .variations th,
.woocommerce div.product form.cart .variations td{padding:0 0 14px;border:0;display:block;text-align:left}
.woocommerce div.product form.cart .variations label{font-family:var(--body);text-transform:uppercase;
     letter-spacing:.18em;font-size:.68rem;font-weight:500;color:var(--ink);margin-bottom:10px;display:block}
.woocommerce div.product form.cart .variations select,
.woocommerce .quantity input[type=number],
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page form .form-row input.input-text,
.woocommerce table.cart td.actions .coupon .input-text{
     font-family:var(--body);font-size:18px;color:var(--ink);background:var(--bg);
     border:1px solid rgba(34,34,34,.16);border-radius:0;padding:13px 15px;width:100%;
     transition:border-color .25s ease,background .25s ease}
.woocommerce div.product form.cart .variations select:focus,
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row select:focus{outline:none;border-color:var(--magenta);background:var(--white)}
.woocommerce div.product form.cart .reset_variations{font-family:var(--body);text-transform:uppercase;
     letter-spacing:.18em;font-size:.62rem;color:var(--gray);text-decoration:none}

.woocommerce div.product form.cart{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end}
.woocommerce div.product form.cart .variations{flex:1 1 100%}
.woocommerce .quantity{flex:0 0 110px}
.woocommerce .quantity input[type=number]{text-align:center}

/* ---------- buttons ---------- */
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt{
     background:var(--magenta);color:#fff;border:0;border-radius:0;
     font-family:var(--body);text-transform:uppercase;letter-spacing:.22em;
     font-size:.7rem;font-weight:500;padding:18px 34px;line-height:1;
     transition:background .25s ease,transform .25s ease}
.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover{background:var(--magenta-deep);color:#fff;transform:translateY(-2px)}
.woocommerce button.button:disabled,
.woocommerce button.button.alt:disabled{background:var(--gray);opacity:1}

/* ---------- tabs ---------- */
.woocommerce div.product .woocommerce-tabs{margin-top:70px}
.woocommerce div.product .woocommerce-tabs ul.tabs{padding:0;margin:0 0 30px;border-bottom:1px solid rgba(34,34,34,.14)}
.woocommerce div.product .woocommerce-tabs ul.tabs::before{display:none}
.woocommerce div.product .woocommerce-tabs ul.tabs li{background:transparent;border:0;border-radius:0;
     margin:0 26px 0 0;padding:0}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after{display:none}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{font-family:var(--body);text-transform:uppercase;
     letter-spacing:.2em;font-size:.68rem;font-weight:500;color:var(--gray);padding:0 0 14px;display:block}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{color:var(--ink);
     box-shadow:inset 0 -2px 0 var(--magenta)}
.woocommerce div.product .woocommerce-tabs .panel h2{font-size:1.2rem;letter-spacing:.06em;margin-bottom:16px}
.woocommerce div.product .woocommerce-tabs .panel p,
.woocommerce div.product .woocommerce-tabs .panel li{font-size:18px;line-height:1.85;color:#4a4a4a}

/* ---------- tables: cart, order review, attributes ---------- */
.woocommerce table.shop_table,
.woocommerce table.shop_attributes{border:0;border-radius:0;border-collapse:collapse;width:100%}
.woocommerce table.shop_table th,
.woocommerce table.shop_attributes th{font-family:var(--body);text-transform:uppercase;
     letter-spacing:.18em;font-size:.66rem;font-weight:500;color:var(--ink);
     padding:16px 12px;border-bottom:1px solid rgba(34,34,34,.14);text-align:left}
.woocommerce table.shop_table td,
.woocommerce table.shop_attributes td{font-size:18px;color:#4a4a4a;padding:18px 12px;
     border-bottom:1px solid rgba(34,34,34,.08)}
.woocommerce table.shop_attributes td{font-style:normal}

/* ---------- notices ---------- */
.woocommerce-message,.woocommerce-info,.woocommerce-error{
     border-top:0;border-left:3px solid var(--magenta);background:var(--blush);
     font-size:18px;color:var(--ink);border-radius:0;padding:20px 24px}
.woocommerce-message::before,.woocommerce-info::before,.woocommerce-error::before{display:none}
.woocommerce-error{border-left-color:#b3261e}

/* ---------- checkout / account ---------- */
.woocommerce form .form-row label,
.woocommerce-page form .form-row label{font-family:var(--body);text-transform:uppercase;
     letter-spacing:.18em;font-size:.66rem;font-weight:500;color:var(--ink);margin-bottom:8px}
.woocommerce #payment,
.woocommerce-checkout #payment{background:var(--bg);border-radius:0}
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-page .cart-collaterals .cart_totals{background:var(--blush);padding:30px 28px}
.woocommerce .cart-collaterals h2,
.woocommerce-checkout h3{font-size:1.15rem;letter-spacing:.06em;margin-bottom:18px}

/* ---------- product grid (shop / related) ---------- */
.woocommerce ul.products{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin:0}
.woocommerce ul.products::before,.woocommerce ul.products::after{display:none}
.woocommerce ul.products li.product{width:auto;margin:0;float:none;text-align:center}
.woocommerce ul.products li.product a img{margin-bottom:18px}
.woocommerce ul.products li.product .woocommerce-loop-product__title{font-family:var(--display);
     text-transform:uppercase;letter-spacing:.05em;font-size:1.05rem;font-weight:400;padding:0 0 10px}
.woocommerce ul.products li.product .price{color:var(--ink);font-family:var(--display);font-size:1.15rem}
@media(max-width:900px){.woocommerce ul.products{grid-template-columns:1fr 1fr;gap:22px}}
@media(max-width:560px){.woocommerce ul.products{grid-template-columns:1fr}}

/* related products heading */
.woocommerce .related > h2,
.woocommerce .upsells > h2{font-size:clamp(1.3rem,2.4vw,1.8rem);font-weight:300;
     letter-spacing:.05em;margin:70px 0 30px;text-align:center}

/* ---------- gallery ---------- */
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper{margin:0}
.woocommerce div.product div.images .flex-control-thumbs{display:grid;
     grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0 0;padding:0;list-style:none}
.woocommerce div.product div.images .flex-control-thumbs li{width:auto;margin:0;float:none}
.woocommerce div.product div.images .flex-control-thumbs img{opacity:.55;transition:opacity .25s ease}
.woocommerce div.product div.images .flex-control-thumbs img.flex-active,
.woocommerce div.product div.images .flex-control-thumbs img:hover{opacity:1}
.woocommerce div.product div.images .woocommerce-product-gallery__trigger{background:var(--white);
     border:1px solid rgba(34,34,34,.14);border-radius:50%}

/* variation price block that appears once a ticket is chosen */
.woocommerce div.product .woocommerce-variation-price{margin-bottom:18px}
.woocommerce div.product .woocommerce-variation-price .price{font-size:1.5rem}
.woocommerce div.product .woocommerce-variation-availability{font-size:16px;color:var(--gray)}
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart{display:flex;gap:14px;
     align-items:flex-end;flex:1 1 100%}
