body.grv-purchase-page { margin: 0; background: #f6f7f4; }

.grv-purchase .purchase-masthead { padding-block: clamp(3.8rem, 6vw, 6.5rem); overflow: hidden; background: var(--ink); color: var(--white); }
.grv-purchase .purchase-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(390px, .72fr); gap: clamp(3rem, 7vw, 7rem); align-items: end; }
.grv-purchase .purchase-heading h1 { margin: .3rem 0 1.3rem; color: var(--white); font-family: var(--serif); font-size: clamp(4rem, 7vw, 7.2rem); line-height: .88; letter-spacing: -.055em; }
.grv-purchase .purchase-heading > div > p:last-child { max-width: 56ch; margin: 0; color: rgba(255,255,255,.7); font-size: clamp(1rem, 1.35vw, 1.14rem); line-height: 1.7; }
.grv-purchase .purchase-progress { margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); list-style: none; border-top: 1px solid rgba(255,255,255,.2); }
.grv-purchase .purchase-progress li { position: relative; min-width: 0; padding: 1.15rem .7rem 0 0; color: rgba(255,255,255,.38); }
.grv-purchase .purchase-progress li::before { content: ""; position: absolute; top: -2px; left: 0; width: 0; height: 3px; background: var(--ticket); }
.grv-purchase .purchase-progress li.is-complete, .grv-purchase .purchase-progress li.is-current { color: var(--white); }
.grv-purchase .purchase-progress li.is-complete::before, .grv-purchase .purchase-progress li.is-current::before { width: 100%; }
.grv-purchase .purchase-progress li.is-current::before { background: #8fd6e3; }
.grv-purchase .purchase-progress span { display: block; color: var(--ticket); font-family: var(--serif); font-size: .92rem; }
.grv-purchase .purchase-progress strong { display: block; margin-top: .15rem; font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }

.grv-purchase .purchase-content { padding-block: clamp(3.5rem, 7vw, 7rem); }
.grv-purchase .purchase-content > .woocommerce,
.grv-purchase .purchase-content > .wp-block-woocommerce-cart,
.grv-purchase .purchase-content > .wp-block-woocommerce-checkout { margin: 0; }
.grv-purchase .woocommerce-notices-wrapper:empty { display: none; }
.grv-purchase .woocommerce-error, .grv-purchase .woocommerce-info, .grv-purchase .woocommerce-message,
.grv-purchase .wc-block-components-notice-banner { margin: 0 0 1.5rem; padding: 1rem 1.15rem; border: 0; border-left: 4px solid var(--blue); border-radius: 0; background: var(--white); color: var(--ink); box-shadow: 0 8px 24px rgba(7,23,37,.07); }
.grv-purchase .woocommerce-error { border-left-color: var(--ticket-deep); }
.grv-purchase .woocommerce-message { border-left-color: #3f8b6e; }
.grv-purchase .woocommerce-error::before, .grv-purchase .woocommerce-info::before, .grv-purchase .woocommerce-message::before { display: none; }

/* Shared form controls and buttons. */
.grv-purchase .woocommerce input.input-text, .grv-purchase .woocommerce textarea, .grv-purchase .woocommerce select,
.grv-purchase .wc-block-components-text-input input, .grv-purchase .wc-block-components-textarea,
.grv-purchase .wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input { min-height: 50px; padding: .75rem .85rem; border: 1px solid rgba(7,23,37,.24); border-radius: 0; outline: 0; background: var(--white); color: var(--ink); font: inherit; box-shadow: none; }
.grv-purchase .woocommerce textarea, .grv-purchase .wc-block-components-textarea { min-height: 120px; resize: vertical; }
.grv-purchase .woocommerce input.input-text:focus, .grv-purchase .woocommerce textarea:focus, .grv-purchase .woocommerce select:focus,
.grv-purchase .wc-block-components-text-input input:focus, .grv-purchase .wc-block-components-textarea:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(46,168,197,.16); }
.grv-purchase .woocommerce form .form-row label, .grv-purchase .wc-block-components-form .wc-block-components-text-input label { color: #52646f; font-size: .76rem; font-weight: 700; }
.grv-purchase .woocommerce a.button, .grv-purchase .woocommerce button.button, .grv-purchase .woocommerce input.button,
.grv-purchase .wc-block-components-button { min-height: 50px; padding: .85rem 1.3rem; border: 1px solid transparent; border-radius: 0; background: var(--ink); color: var(--white); font-size: .76rem; font-weight: 850; letter-spacing: .07em; line-height: 1.2; text-transform: uppercase; box-shadow: none; transition: transform .2s ease, background .2s ease; }
.grv-purchase .woocommerce a.button:hover, .grv-purchase .woocommerce button.button:hover, .grv-purchase .woocommerce input.button:hover,
.grv-purchase .wc-block-components-button:hover { background: var(--blue); color: var(--white); transform: translateY(-2px); }
.grv-purchase .woocommerce a.checkout-button, .grv-purchase .woocommerce button#place_order,
.grv-purchase .wc-block-cart__submit-button, .grv-purchase .wc-block-components-checkout-place-order-button { background: var(--ticket); color: var(--ink); }
.grv-purchase .woocommerce a.checkout-button:hover, .grv-purchase .woocommerce button#place_order:hover,
.grv-purchase .wc-block-cart__submit-button:hover, .grv-purchase .wc-block-components-checkout-place-order-button:hover { background: #f0aa7e; color: var(--ink); }

/* Classic WooCommerce basket. */
.grv-purchase .woocommerce-cart-form { width: calc(66% - 1.5rem); float: left; }
.grv-purchase .woocommerce-cart-form table.shop_table { margin: 0; border: 0; border-collapse: collapse; background: var(--white); box-shadow: 0 18px 45px rgba(7,23,37,.09); }
.grv-purchase .woocommerce-cart-form table.shop_table th { padding: .9rem 1rem; border: 0; border-bottom: 1px solid var(--line); color: var(--blue); font-size: .67rem; letter-spacing: .1em; text-transform: uppercase; }
.grv-purchase .woocommerce-cart-form table.shop_table td { padding: 1.15rem 1rem; border: 0; border-bottom: 1px solid rgba(7,23,37,.1); color: #52636e; }
.grv-purchase .woocommerce-cart-form .product-thumbnail img { width: 74px; height: 105px; object-fit: contain; background: var(--sky); }
.grv-purchase .woocommerce-cart-form .product-name a { color: var(--ink); font-family: var(--serif); font-size: 1.1rem; font-weight: 700; }
.grv-purchase .woocommerce-cart-form .product-remove a { color: #8a3a25!important; font-size: 1.35rem; }
.grv-purchase .woocommerce-cart-form .quantity .qty { width: 74px; min-height: 46px; }
.grv-purchase .woocommerce-cart-form .coupon { display: flex; gap: .65rem; }
.grv-purchase .woocommerce-cart-form .coupon .input-text { width: 150px!important; }
.grv-purchase .cart-collaterals { width: 34%; padding-left: 2rem; float: right; }
.grv-purchase .cart-collaterals .cart_totals { width: 100%; padding: 2rem; border-top: 4px solid var(--ticket); background: var(--white); box-shadow: 0 18px 45px rgba(7,23,37,.09); }
.grv-purchase .cart-collaterals .cart_totals h2 { margin: 0 0 1rem; color: var(--ink); font-family: var(--serif); font-size: 2rem; }
.grv-purchase .cart-collaterals table.shop_table { margin: 0 0 1.25rem; border: 0; border-collapse: collapse; }
.grv-purchase .cart-collaterals table.shop_table th, .grv-purchase .cart-collaterals table.shop_table td { padding: .9rem 0; border: 0; border-bottom: 1px solid var(--line); }
.grv-purchase .cart-collaterals table.shop_table td { text-align: right; }
.grv-purchase .cart-collaterals .woocommerce-shipping-destination,
.grv-purchase .cart-collaterals .shipping-calculator-button,
.grv-purchase .cart-collaterals .shipping-calculator-form { display: none!important; }
.grv-purchase .wc-proceed-to-checkout { padding: 1.2rem 0 0; }
.grv-purchase .wc-proceed-to-checkout .checkout-button { margin: 0; width: 100%; }
.grv-purchase .woocommerce::after { content: ""; display: table; clear: both; }

/* WooCommerce basket block. */
.grv-purchase .wc-block-cart .wc-block-components-sidebar-layout { gap: clamp(2rem, 4vw, 4rem); }
.grv-purchase .wc-block-cart .wc-block-components-main { padding-right: 0; }
.grv-purchase .wc-block-cart-items { border-collapse: collapse; background: var(--white); box-shadow: 0 18px 45px rgba(7,23,37,.09); }
.grv-purchase .wc-block-cart-items th, .grv-purchase .wc-block-cart-items td { border-color: var(--line)!important; }
.grv-purchase .wc-block-cart-item__image img { max-height: 150px; object-fit: contain; background: var(--sky); }
.grv-purchase .wc-block-components-product-name { color: var(--ink); font-family: var(--serif); font-size: 1.15rem; font-weight: 700; }
.grv-purchase .wc-block-cart .wc-block-components-sidebar { align-self: start; padding: 2rem; border-top: 4px solid var(--ticket); background: var(--white); box-shadow: 0 18px 45px rgba(7,23,37,.09); }
.grv-purchase .wc-block-components-totals-wrapper { padding: 1rem 0; border-color: var(--line); }

/* Classic checkout. */
.grv-purchase .woocommerce-form-coupon-toggle, .grv-purchase .woocommerce-form-login-toggle { max-width: 760px; }
.grv-purchase form.checkout.woocommerce-checkout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(430px, .85fr); column-gap: clamp(2.5rem, 6vw, 6rem); align-items: start; }
.grv-purchase form.checkout #customer_details { grid-column: 1; grid-row: 1 / span 3; }
.grv-purchase form.checkout #customer_details,
.grv-purchase form.checkout #order_review_heading,
.grv-purchase form.checkout #order_review { width: 100%!important; max-width: none!important; margin-left: 0!important; margin-right: 0!important; float: none!important; clear: none!important; }
.grv-purchase form.checkout #customer_details .col-1, .grv-purchase form.checkout #customer_details .col-2 { width: 100%!important; max-width: none!important; float: none!important; }
.grv-purchase form.checkout #customer_details .col-2 { margin-top: 2.2rem; }
.grv-purchase form.checkout h3 { margin: 0 0 1.25rem; color: var(--ink); font-family: var(--serif); font-size: 2rem; }
.grv-purchase form.checkout #order_review_heading { grid-column: 2; margin-top: 0; }
.grv-purchase form.checkout #order_review { grid-column: 2; padding: 1.8rem; border-top: 4px solid var(--ticket); background: var(--white); box-shadow: 0 18px 45px rgba(7,23,37,.09); }
.grv-purchase form.checkout table.shop_table { width: 100%; margin: 0 0 1.5rem; border: 0; border-collapse: collapse; table-layout: auto; }
.grv-purchase form.checkout table.shop_table .product-name { width: 68%; }
.grv-purchase form.checkout table.shop_table .product-total { width: 32%; }
.grv-purchase form.checkout table.shop_table th, .grv-purchase form.checkout table.shop_table td { padding: .85rem .35rem; border: 0; border-bottom: 1px solid var(--line); }
.grv-purchase form.checkout table.shop_table td:last-child, .grv-purchase form.checkout table.shop_table th:last-child { text-align: right; }
.grv-purchase #payment { border-radius: 0; background: #edf4f5; }
.grv-purchase #payment ul.payment_methods { padding: 1rem; border-bottom-color: var(--line); }
.grv-purchase #payment div.payment_box { border-radius: 0; background: var(--white); color: #52636e; font-size: .82rem; }
.grv-purchase #payment div.form-row { padding: 1rem; }
.grv-purchase #payment #place_order { width: 100%; }

/* WooCommerce checkout block. */
.grv-purchase .wc-block-checkout .wc-block-components-sidebar-layout { gap: clamp(2.5rem, 5vw, 5rem); }
.grv-purchase .wc-block-checkout .wc-block-components-main { padding-right: 0; }
.grv-purchase .wc-block-checkout__form { padding: clamp(1.5rem, 3vw, 2.5rem); background: var(--white); box-shadow: 0 18px 45px rgba(7,23,37,.09); }
.grv-purchase .wc-block-checkout .wc-block-components-sidebar { align-self: start; padding: 1.8rem; border-top: 4px solid var(--ticket); background: var(--white); box-shadow: 0 18px 45px rgba(7,23,37,.09); }
.grv-purchase .wc-block-components-checkout-step { margin: 0 0 2rem; padding: 0 0 2rem; border-bottom: 1px solid var(--line); }
.grv-purchase .wc-block-components-checkout-step__heading h2 { color: var(--ink); font-family: var(--serif); font-size: 1.85rem; }
.grv-purchase .wc-block-components-checkout-step__container { padding-left: 0; }
.grv-purchase .wc-block-components-checkout-step__content { padding: 0; }
.grv-purchase .wc-block-components-radio-control__option { border-color: var(--line); }

/* Empty basket and order confirmation. */
.grv-purchase .cart-empty, .grv-purchase .wp-block-woocommerce-empty-cart-block,
.grv-purchase-received .woocommerce-order { padding: clamp(2rem, 5vw, 4rem); border-top: 4px solid var(--ticket); background: var(--white); box-shadow: 0 18px 45px rgba(7,23,37,.09); }
.grv-purchase .cart-empty { margin: 0 0 1.5rem; text-align: center; }
.grv-purchase .return-to-shop { text-align: center; }
.grv-purchase .woocommerce-order-overview { margin: 1.5rem 0 2rem; padding: 1.25rem; background: var(--sky); }
.grv-purchase .woocommerce-order-details h2, .grv-purchase .woocommerce-customer-details h2 { color: var(--ink); font-family: var(--serif); }

.grv-purchase .purchase-reassurance { clear: both; margin-top: clamp(3.5rem, 6vw, 6rem); display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.grv-purchase .purchase-reassurance div { padding: 1.6rem 2rem 1.6rem 0; display: grid; grid-template-columns: auto 1fr; column-gap: 1rem; }
.grv-purchase .purchase-reassurance div + div { padding-left: 2rem; border-left: 1px solid var(--line); }
.grv-purchase .purchase-reassurance span { grid-row: 1 / span 2; color: var(--ticket-deep); font-family: var(--serif); font-size: 1rem; }
.grv-purchase .purchase-reassurance strong { color: var(--ink); font-size: .86rem; }
.grv-purchase .purchase-reassurance small { margin-top: .15rem; color: #687881; font-size: .72rem; }

@media (max-width: 980px) {
  .grv-purchase .purchase-heading { grid-template-columns: 1fr; gap: 3rem; }
  .grv-purchase .purchase-progress { max-width: 620px; }
  .grv-purchase .woocommerce-cart-form, .grv-purchase .cart-collaterals { width: 100%; float: none; }
  .grv-purchase .cart-collaterals { margin-top: 2rem; padding-left: 0; }
  .grv-purchase form.checkout.woocommerce-checkout { grid-template-columns: 1fr; }
  .grv-purchase form.checkout #customer_details, .grv-purchase form.checkout #order_review_heading, .grv-purchase form.checkout #order_review { grid-column: 1; grid-row: auto; }
  .grv-purchase form.checkout #order_review_heading { margin-top: 2.5rem; }
  .grv-purchase .wc-block-components-sidebar-layout { flex-direction: column; }
  .grv-purchase .wc-block-components-sidebar-layout .wc-block-components-main, .grv-purchase .wc-block-components-sidebar-layout .wc-block-components-sidebar { width: 100%; }
}

@media (max-width: 700px) {
  .grv-purchase .purchase-progress strong { font-size: .58rem; letter-spacing: .04em; }
  .grv-purchase .woocommerce-cart-form table.shop_table_responsive tr { padding: 1rem; border-bottom: 1px solid var(--line); }
  .grv-purchase .woocommerce-cart-form table.shop_table_responsive td { padding: .55rem 0; border: 0; }
  .grv-purchase .woocommerce-cart-form .coupon { flex-direction: column; }
  .grv-purchase .woocommerce-cart-form .coupon .input-text, .grv-purchase .woocommerce-cart-form .coupon .button { width: 100%!important; }
  .grv-purchase .purchase-reassurance { grid-template-columns: 1fr; }
  .grv-purchase .purchase-reassurance div, .grv-purchase .purchase-reassurance div + div { padding: 1.2rem 0; border-top: 1px solid var(--line); border-left: 0; }
}
