/* NatGas Central · ngc-access.css: log in, lost / set password, checkout, order received, cart (BUILD_SPEC §6.4, §6.6, §6.7;
   workstream F). Port of the prototype's proto/css/pages/access.css (round 5), class names kept (ac-), re-targeted at the markup
   WooCommerce really prints (its forms, notices, review table and payment block) plus the pieces inc/ngc-woo.php adds at its
   hooks. Loaded after WooCommerce's styles and ngc-woo.css on our WooCommerce templates only. Tokens only.
   Documented differences from the prototype (BUILD_SPEC §1.15 last row): the coupon bar sits above the checkout grid on desktop
   (WooCommerce's coupon form may not nest inside form.checkout); the log-in and coupon forms open under their bars as WooCommerce
   slides them; reCAPTCHA is Google's widget in its fixed 304 x 78 box. */
.ac-strong { font-weight: 600; }
.ac-notices { display: flex; flex-direction: column; gap: 8px; }
.ac-notices:focus { outline: none; }
.ac-notices .n-notice a { color: var(--accent); font-weight: 500; }
.ac-textbtn { display: inline; padding: 0; margin: 0; border: 0; background: none; color: var(--accent); font: inherit; font-weight: 500; cursor: pointer; }
.ac-textbtn:hover { color: var(--accent-hover); text-decoration: underline; text-underline-offset: 3px; }
.ac-inlink { color: var(--t2); text-decoration: underline; text-decoration-color: var(--control); text-underline-offset: 3px; }
body.ngc a.ac-inlink { color: var(--t2); }
.ac-inlink:hover, body.ngc a.ac-inlink:hover { color: var(--t1); text-decoration-color: var(--t2); }
.ac-auth { padding: 64px 0 104px; }
.ac-auth__col { width: 100%; max-width: 460px; margin: 0 auto; display: flex; flex-direction: column; gap: 16px; }
.ac-auth__col > .woocommerce { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.ac-auth__help { max-width: 460px; margin: 20px auto 0; text-align: center; font-size: 13px; color: var(--t3); }
.ac-auth__help .n-email { color: var(--accent); font-weight: 500; }
.ac-card, .ac-auth form.woocommerce-form-login { display: flex; flex-direction: column; gap: 24px; margin: 0; padding: 32px 32px 24px; background: var(--surface); border: 1px solid var(--hair); border-radius: var(--r); text-align: left; }
.ac-card__head { display: flex; flex-direction: column; gap: 16px; }
.ac-card__head > svg, .ac-card__head > img { width: 32px; height: 32px; }
.ac-card__titles { display: flex; flex-direction: column; gap: 8px; }
.ac-card__title { margin: 0; font-size: 28px; font-weight: 600; line-height: 1.2; letter-spacing: -0.015em; color: var(--t1); }
.ac-card__lede { margin: 0; font-size: 15px; line-height: 1.55; color: var(--t2); text-wrap: pretty; }
.ac-card__return { display: flex; align-items: flex-start; gap: 8px; margin-top: 4px; padding: 10px 12px; background: var(--raised); border-radius: var(--r-sm); font-size: 13px; line-height: 1.5; color: var(--t2); }
.ac-card__return svg { margin-top: 2px; color: var(--accent); }
.ac-card__text { font-size: 15px; line-height: 1.6; color: var(--t2); }
.ac-card__actions { display: flex; flex-direction: column; gap: 12px; }
.ac-card__foot { margin: 0 -32px; padding: 20px 32px 0; border-top: 1px solid var(--hair); display: flex; flex-direction: column; gap: 4px; }
.ac-foot__line { margin: 0; font-size: 14px; line-height: 1.5; color: var(--t2); font-variant-numeric: tabular-nums; }
.ac-foot__small { margin: 0; font-size: 13px; line-height: 1.5; color: var(--t3); }
.ac-form__link { margin: 0; padding-top: 2px; font-size: 14px; }
.ac-back { display: inline-flex; align-items: center; gap: 8px; min-height: 24px; }
.ac-card .n-notice { background: var(--raised); }
.ac-card__plan { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-top: 8px; padding: 12px 14px; background: var(--raised); border-radius: var(--r-sm); }
.ac-card__planname { font-size: 15px; font-weight: 600; color: var(--t1); }
.ac-auth .woocommerce > h2, .ac-auth .u-column1 > h2 { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
/* where our card prints its own "Log in" h1, WooCommerce's "Login" h2 goes completely: kept for screen readers it read as a second
   heading, in the wrong order (h2 "Login" before h1 "Log in"). Without the card (or without :has) it stays visually hidden as above. */
.ac-auth .woocommerce:has(> form.woocommerce-form-login .ac-card__title) > h2, .ac-auth .u-column1:has(> form.woocommerce-form-login .ac-card__title) > h2 { display: none !important; }
.ac-auth form.woocommerce-form-login { gap: 16px; }
.ac-auth form.woocommerce-form-login > .ac-card__top { margin-bottom: 8px; }
.ac-auth form.woocommerce-form-login > .form-row:not(.woocommerce-form-row) { gap: 16px; }
/* Remember me = the prototype's .n-check: a 44 px row (§0.1 rule 10), box and words centred, 14 px. body.ngc: ngc-woo.css's
   body.ngc .woocommerce form .form-row label (0,3,3) and its checkbox-label rules (absolute box, 28 px padding) beat .ac-auth alone */
body.ngc .ac-auth form.woocommerce-form-login label.woocommerce-form-login__rememberme { display: flex; align-items: center; gap: 10px; min-height: 44px; margin: -8px 0; padding: 0; font-size: 14px; font-weight: 400; line-height: 1.45; color: var(--t1); }
body.ngc .ac-auth form.woocommerce-form-login label.woocommerce-form-login__rememberme > input { position: static; margin: 0; }
.ac-auth form .required[aria-hidden="true"], .ac-card form .required[aria-hidden="true"] { display: none; }
.ac-auth form.woocommerce-form-login .woocommerce-form-login__submit { width: 100%; height: 48px; font-size: 15px; }
.ac-auth form.woocommerce-form-login .lost_password { margin: 0; padding-top: 2px; font-size: 14px; }
.ac-auth form.woocommerce-form-login .lost_password a { display: inline-flex; align-items: center; font-weight: 500; }
.ac-auth form.woocommerce-form-login > .ac-card__foot { margin-top: 8px; }
.ac-auth .u-columns.col2-set { display: block; width: auto; }
.ac-auth .u-columns.col2-set::before, .ac-auth .u-columns.col2-set::after { content: none; }
.ac-auth .u-columns .u-column1, .ac-auth .u-columns .u-column2 { float: none; width: auto; }
.ac-auth .u-columns .u-column2 { margin-top: 16px; padding: 24px 32px; background: var(--surface); border: 1px solid var(--hair); border-radius: var(--r); }
.ac-auth .u-columns .u-column2 h2 { margin: 0 0 12px; font-size: 18px; }
.ac-auth .u-columns .u-column2 form { display: flex; flex-direction: column; gap: 16px; margin: 0; padding: 0; border: 0; }
body.ngc-hide-register .ac-auth .u-columns .u-column2 { display: none; }
.ac-card form.lost_reset_password { display: flex; flex-direction: column; gap: 16px; margin: 0; padding: 0; border: 0; }
.ac-card form.lost_reset_password > p:first-child { margin: 0; font-size: 15px; line-height: 1.55; color: var(--t2); }
.ac-card form.lost_reset_password .button { width: 100%; height: 48px; font-size: 15px; }
.ac-card form.lost_reset_password .clear { display: none; }
.ac-card > p:not([class]) { margin: 0; font-size: 15px; line-height: 1.6; color: var(--t2); }
.ac-card .g-recaptcha, .ac-card .rcfwc-recaptcha, .ac-card [class*="recaptcha"] > div { max-width: 100%; }
.ac-card .g-recaptcha, .ac-card .rcfwc-recaptcha { width: 304px; min-height: 78px; overflow: hidden; border-radius: var(--r-xs); }
.ac-auth .woocommerce-message:has(+ .ac-card--sent), .ac-auth .woocommerce-notices-wrapper:has(+ .ac-card--sent) { display: none; }
@media (max-width: 699px) {
  .ac-auth { padding: 24px 0 56px; }
  .ac-card, .ac-auth form.woocommerce-form-login { padding: 0; gap: 20px; border: 0; border-radius: 0; background: none; }
  .ac-auth form.woocommerce-form-login { gap: 16px; }
  .ac-card__foot { margin: 0; padding: 16px 0 0; }
  .ac-card__title { font-size: 26px; }
  .ac-auth__help { text-align: left; margin-top: 24px; }
  .ac-auth .u-columns .u-column2 { padding: 20px 16px; }
  .ac-form__link a, .ac-back, .ac-foot__line .ac-textbtn, .ac-foot__line .n-link, .ac-auth form.woocommerce-form-login .lost_password a { display: inline-flex; align-items: center; min-height: 44px; }
  .ac-form__link, .ac-auth form.woocommerce-form-login .lost_password { padding-top: 0; margin: -8px 0; }
}
.ac-co { padding: 48px 0 96px; }
.ac-co__head { display: flex; flex-direction: column; gap: 8px; margin-bottom: 32px; }
.ac-co__lede { margin: 0; font-size: 15px; color: var(--t2); }
.ac-co .woocommerce { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.ac-co .woocommerce > * { min-width: 0; }
.ac-co .woocommerce > script { display: none; }
.ac-co .woocommerce-notices-wrapper .woocommerce-message:has(a.wc-forward) { display: none; }
.ac-co .woocommerce-notices-wrapper:not(:has(> :not(.woocommerce-message:has(a.wc-forward)))) { display: none; }
.ac-co .woocommerce-form-login-toggle .woocommerce-info, .ac-co .woocommerce-form-coupon-toggle .woocommerce-info { display: flex; align-items: flex-start; flex-wrap: wrap; gap: 4px; min-height: 48px; padding: 13px 16px 13px 42px; background: var(--surface); border: 1px solid var(--hair); border-radius: var(--r); color: var(--t2); }
.ac-co .woocommerce-form-login-toggle .woocommerce-info::before, .ac-co .woocommerce-form-coupon-toggle .woocommerce-info::before { top: 16px; left: 16px; background: var(--t3); }
.ac-co .woocommerce-form-login-toggle .woocommerce-info a, .ac-co .woocommerce-form-coupon-toggle .woocommerce-info a { position: relative; font-weight: 500; }
.ac-co form.woocommerce-form-login, .ac-co form.checkout_coupon { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; margin: -12px 0 0; padding: 16px; background: var(--surface); border: 1px solid var(--hair); border-top: 0; border-radius: 0 0 var(--r) var(--r); text-align: left; }
.ac-co form.woocommerce-form-login[style*="none"], .ac-co form.checkout_coupon[style*="none"] { display: none; }
.ac-co form.woocommerce-form-login > p:first-child, .ac-co form.woocommerce-form-login > .form-row:not(.form-row-first):not(.form-row-last),
.ac-co form.woocommerce-form-login > .lost_password, .ac-co form.checkout_coupon > p:not(.form-row) { grid-column: 1 / -1; }
.ac-co form.woocommerce-form-login > p:first-child { margin: 0; font-size: 13px; line-height: 1.45; color: var(--t3); }
.ac-co form.woocommerce-form-login > .form-row:not(.form-row-first):not(.form-row-last) { flex-direction: row; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; }
.ac-co form.woocommerce-form-login > .clear, .ac-co form.checkout_coupon > .clear { display: none; }
.ac-co form.woocommerce-form-login .lost_password { margin: 0; font-size: 14px; }
.ac-co form.checkout_coupon { grid-template-columns: minmax(0, 1fr) auto; align-items: end; }
.ac-co form.checkout_coupon .form-row-last .button { height: 44px; }
.ac-co .woocommerce-form-coupon-toggle + form.checkout_coupon { margin-top: -12px; }
.ac-co #wcpay-express-checkout-wrapper, .ac-co .wcpay-express-checkout-wrapper { margin: 0 0 8px; }
.ac-co #wcpay-express-checkout-button-separator { margin: 12px 0 28px !important; font-size: 13px; color: var(--t3); text-align: center; }
.ac-co .ac-notices .n-notice { background: var(--surface); }
.ac-nlink { white-space: nowrap; }
.ac-co form.checkout { display: grid; grid-template-columns: minmax(0, 1fr); row-gap: 0; margin: 0; min-width: 0; }
.ac-co form.checkout > * { min-width: 0; }
.ac-co form.checkout > .ac-co__side { order: -1; margin-bottom: 32px; }
.ac-co form.checkout > #customer_details { margin: 0; }
.ac-co form.checkout > .ac-step--pay { margin-top: 40px; margin-bottom: 20px; }
.ac-co form.checkout > .ac-assure--box { margin-top: 32px; }
@media (min-width: 1100px) {
  .ac-co .woocommerce { position: relative; }
  .ac-co .woocommerce > *, .ac-co form.checkout { width: calc((100% - 64px) * 7 / 12); }
  .ac-co form.checkout > .ac-co__side { order: 0; position: absolute; top: 0; right: 0; bottom: 0; width: calc((100% - 64px) * 4 / 12); margin: 0; }
  .ac-co--narrow .woocommerce > * { width: auto; }
}
.ac-co__sticky { position: sticky; top: calc(var(--pin-h, 0px) + 24px); display: flex; flex-direction: column; gap: 16px; }
@media (max-width: 1099px), (max-height: 849px) { .ac-co__sticky { position: static; } }
.ac-co .col2-set { display: block; width: auto; }
.ac-co .col2-set::before, .ac-co .col2-set::after { content: none; }
.ac-co .col2-set .col-1, .ac-co .col2-set .col-2 { float: none; width: auto; }
.ac-co .col2-set .col-2:empty, .ac-co .col2-set .col-2:not(:has(.form-row)) { display: none; }
.ac-co .woocommerce-account-fields:not(:has(*)), .ac-co .woocommerce-shipping-fields:not(:has(*)), .ac-co .woocommerce-additional-fields:not(:has(.form-row)) { display: none; }
.ac-co .woocommerce-additional-fields { margin-top: 24px; }
.ac-co .woocommerce-additional-fields h3 { font-size: 15px; margin-bottom: 12px; }
.ac-step, .ac-co .woocommerce-billing-fields > h3 { display: flex; align-items: baseline; gap: 12px; margin: 0; font-size: 20px; font-weight: 600; line-height: 1.3; letter-spacing: -0.005em; color: var(--t1); }
.ac-co .woocommerce-billing-fields > h3 { margin-bottom: 20px; }
.ac-co .woocommerce-billing-fields > h3::before { content: '01'; font-family: var(--mono); font-size: 13px; font-weight: 500; letter-spacing: 0.04em; color: var(--t3); }
.ac-step__n { font-family: var(--mono); font-size: 13px; font-weight: 500; letter-spacing: 0.04em; color: var(--t3); }
.ac-co .woocommerce-billing-fields__field-wrapper { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 20px 16px; }
.ac-co .woocommerce-billing-fields__field-wrapper > .form-row { grid-column: 1 / -1; }
.ac-co .woocommerce-billing-fields__field-wrapper > .form-row-first { grid-column: 1 / span 3; }
.ac-co .woocommerce-billing-fields__field-wrapper > .form-row-last { grid-column: 4 / span 3; }
.ac-co .woocommerce-billing-fields__field-wrapper > #billing_address_2_field { margin-top: -12px; }
.ac-co .woocommerce-billing-fields__field-wrapper > #billing_city_field { grid-column: 1 / span 2; }
.ac-co .woocommerce-billing-fields__field-wrapper > #billing_state_field { grid-column: 3 / span 2; }
.ac-co .woocommerce-billing-fields__field-wrapper > #billing_postcode_field { grid-column: 5 / span 2; }
.ac-co .woocommerce-billing-fields__field-wrapper > #billing_phone_field { grid-column: 1 / span 3; }
.ac-co .woocommerce-billing-fields__field-wrapper > #billing_state_field[style*="none"] ~ #billing_postcode_field { grid-column: 3 / span 4; }
.ac-co #payment .woocommerce-terms-and-conditions-wrapper:not(:has(:not(.woocommerce-privacy-policy-text:empty))) { display: none; }
.ac-co #payment .woocommerce-privacy-policy-text:empty { display: none; }
.ac-legal { margin: 0; font-size: 13px; line-height: 1.6; color: var(--t3); }
.ac-co #payment #place_order { position: relative; width: 100%; height: 48px; gap: 10px; font-size: 15px; white-space: normal; text-align: center; line-height: 1.25; }
.ac-co #payment #place_order::before { content: ''; flex: none; width: 16px; height: 16px; background: currentColor; -webkit-mask: var(--ngc-ic-lock) center / 16px 16px no-repeat; mask: var(--ngc-ic-lock) center / 16px 16px no-repeat; }
.ac-after { margin: 0; font-size: 13px; line-height: 1.5; color: var(--t3); text-align: center; }
.ac-co .blockUI.blockOverlay { background: var(--ground) !important; opacity: .5 !important; }
.ac-sum { overflow: visible; }
.ac-sum > #order_review_heading { display: flex; align-items: center; min-height: 48px; margin: 0; padding: 12px 24px; border-bottom: 1px solid var(--hair); font-size: 16px; font-weight: 600; color: var(--t1); }
.ac-sum > #order_review { display: flex; flex-direction: column; gap: 18px; padding: 20px 24px 24px; }
.ac-sum table.woocommerce-checkout-review-order-table, .ac-sum table.woocommerce-checkout-review-order-table tbody, .ac-sum table.woocommerce-checkout-review-order-table tfoot { display: block; width: 100%; margin: 0; border: 0; border-radius: 0; background: none; overflow: visible; }
.ac-sum table.woocommerce-checkout-review-order-table thead { display: none; }
.ac-sum table.woocommerce-checkout-review-order-table tr { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--hair-soft); font-size: 14px; font-variant-numeric: tabular-nums; }
.ac-sum table.woocommerce-checkout-review-order-table tbody tr:first-child { padding-top: 0; }
.ac-sum table.woocommerce-checkout-review-order-table th, .ac-sum table.woocommerce-checkout-review-order-table td { display: block; padding: 0 !important; border: 0 !important; background: none; font-size: 14px; font-weight: 400; color: var(--t2); text-align: left; }
.ac-sum table.woocommerce-checkout-review-order-table td.product-name { display: block; min-width: 0; }
.ac-sum table.woocommerce-checkout-review-order-table td.product-name .ac-sum__sub { margin-top: 3px; }
.ac-sum table.woocommerce-checkout-review-order-table tr.cart_item td.product-name { font-size: 15px; font-weight: 600; color: var(--t1); }
.ac-sum table.woocommerce-checkout-review-order-table tr.cart_item .ac-sum__v { font-size: 15px; font-weight: 600; }
.ac-sum table.woocommerce-checkout-review-order-table td.product-total, .ac-sum table.woocommerce-checkout-review-order-table tfoot td { text-align: right; white-space: nowrap; color: var(--t1); }
.ac-sum table.woocommerce-checkout-review-order-table tr.ngc-fee-row td.product-name { display: block; }
.ac-sum__sub { display: block; font-size: 12px; line-height: 1.45; color: var(--t3); font-weight: 400; }
.ac-sum__v { color: var(--t1); white-space: nowrap; }
.ac-sum__q { vertical-align: 2px; margin-left: 6px; }
.ac-sum table.woocommerce-checkout-review-order-table tr.cart-subtotal { display: none; }
.ac-sum table.woocommerce-checkout-review-order-table tr.cart-discount td, .ac-sum table.woocommerce-checkout-review-order-table tr.fee td { color: var(--t1); }
.ac-sum table.woocommerce-checkout-review-order-table tr.cart-discount td a { margin-left: 8px; font-size: 13px; font-weight: 500; }
.ac-sum table.woocommerce-checkout-review-order-table tr.order-total { align-items: baseline; padding: 14px 0 0; border-top: 1px solid var(--line); border-bottom: 0; margin-top: -1px; flex-wrap: wrap; }
.ac-sum table.woocommerce-checkout-review-order-table tr.order-total th { font-size: 15px; font-weight: 600; color: var(--t1); }
.ac-sum table.woocommerce-checkout-review-order-table tr.order-total td { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.ac-sum__total, .ac-sum__total strong { font-size: 26px; font-weight: 600; letter-spacing: -0.01em; line-height: 1; color: var(--t1); }
.ac-sum__total small, .ac-sum__total .includes_tax { display: block; margin-top: 4px; font-size: 12px; font-weight: 400; letter-spacing: 0; color: var(--t3); }
.ac-sum__fx { display: block; font-size: 12px; color: var(--t3); font-variant-numeric: tabular-nums; }
.ac-sum table.woocommerce-checkout-review-order-table tr.ngc-then-row { display: block; padding: 18px 0 0; border: 0; }
.ac-sum table.woocommerce-checkout-review-order-table tr.ngc-then-row td { display: flex; flex-direction: column; gap: 18px; white-space: normal; text-align: left; font-weight: 400; color: var(--t2); }
.ac-sum__then { display: flex; align-items: flex-start; gap: 10px; padding: 12px 14px; background: var(--raised); border-radius: var(--r-sm); font-variant-numeric: tabular-nums; }
.ac-sum__then > svg { margin-top: 3px; color: var(--t2); }
.ac-sum__thenline { margin: 0; font-size: 14px; line-height: 1.45; color: var(--t1); }
.ac-sum__thenline b { font-weight: 600; }
.ac-sum__thensub { margin: 4px 0 0; font-size: 13px; line-height: 1.5; color: var(--t2); }
.ac-sum__line { display: flex; align-items: flex-start; gap: 10px; margin: 0; font-size: 13px; line-height: 1.45; color: var(--t2); }
.ac-sum__line svg { margin-top: 1px; color: var(--t3); }
.ac-sum table.woocommerce-checkout-review-order-table tr.recurring-totals, .ac-sum table.woocommerce-checkout-review-order-table tr.recurring-total { display: flex; }
.ac-assure { display: flex; flex-direction: column; gap: 18px; }
.ac-assure--panel { padding-top: 18px; border-top: 1px solid var(--hair-soft); }
.ac-assure--box { padding: 20px; background: var(--surface); border: 1px solid var(--hair); border-radius: var(--r); }
.ac-assure__g { display: flex; align-items: flex-start; gap: 10px; }
.ac-assure__g svg { margin-top: 2px; color: var(--t2); }
.ac-assure__t { margin: 0; font-size: 14px; font-weight: 500; color: var(--t1); }
.ac-assure__s { margin: 4px 0 0; font-size: 13px; line-height: 1.5; color: var(--t2); }
.ac-next { display: flex; flex-direction: column; gap: 10px; }
.ac-next__list { list-style: none; display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; }
.ac-next__list li { display: flex; align-items: flex-start; gap: 12px; font-size: 14px; line-height: 1.5; color: var(--t1); }
.ac-next__n { flex: none; width: 22px; height: 22px; border: 1px solid var(--line); border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; font-family: var(--mono); font-size: 12px; font-weight: 500; color: var(--t2); }
.acct-cp__head { gap: 6px; }
.acct-cp__meta { margin: 0; font-size: 15px; color: var(--t2); }
.acct-cp form#order_review, .ac-co--pay form#order_review { display: flex; flex-direction: column; gap: 24px; margin: 0; }
.ac-co--narrow .ac-co__head, .ac-co--narrow .woocommerce { max-width: 760px; }
.ac-co--pay form#order_review > table.shop_table tfoot tr:last-child > * { font-size: 18px; }
.ac-co--pay .woocommerce > .woocommerce-info, .ac-co--pay .woocommerce > .woocommerce-error { max-width: 760px; }
@media (max-width: 1099px) {
  .ac-co { padding: 32px 0 72px; }
  .ac-co__head { margin-bottom: 24px; }
  .ac-co .woocommerce { max-width: 760px; }
}
@media (max-width: 699px) {
  .ac-co { padding: 24px 0 56px; }
  .ac-co__head { margin-bottom: 20px; }
  .ac-co .woocommerce { gap: 16px; }
  .ac-step, .ac-co .woocommerce-billing-fields > h3 { font-size: 19px; }
  .ac-co form.checkout > .ac-step--pay { margin-top: 32px; }
  .ac-co .woocommerce-billing-fields__field-wrapper { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .ac-co .woocommerce-billing-fields__field-wrapper > .form-row, .ac-co .woocommerce-billing-fields__field-wrapper > .form-row-first,
  .ac-co .woocommerce-billing-fields__field-wrapper > .form-row-last, .ac-co .woocommerce-billing-fields__field-wrapper > #billing_city_field,
  .ac-co .woocommerce-billing-fields__field-wrapper > #billing_phone_field { grid-column: 1 / -1; }
  .ac-co .woocommerce-billing-fields__field-wrapper > #billing_state_field { grid-column: 1; }
  .ac-co .woocommerce-billing-fields__field-wrapper > #billing_postcode_field { grid-column: 2; }
  .ac-co .woocommerce-billing-fields__field-wrapper > #billing_state_field[style*="none"] ~ #billing_postcode_field { grid-column: 1 / -1; }
  .ac-co form.woocommerce-form-login, .ac-co form.checkout_coupon { grid-template-columns: minmax(0, 1fr); }
  .ac-co form.checkout_coupon .form-row-last .button { width: 100%; }
  .ac-sum > #order_review_heading { padding-left: 16px; padding-right: 16px; }
  .ac-sum > #order_review { padding: 16px; }
  .ac-sum__total, .ac-sum__total strong { font-size: 24px; }
  .ac-co .woocommerce-form-login-toggle .woocommerce-info, .ac-co .woocommerce-form-coupon-toggle .woocommerce-info { padding: 13px 14px 13px 40px; }
  .ac-co .woocommerce-form-login-toggle .woocommerce-info a::after, .ac-co .woocommerce-form-coupon-toggle .woocommerce-info a::after { content: ''; position: absolute; inset: -12px -8px; }
  .ac-nlink { position: relative; }
  .ac-nlink::after { content: ''; position: absolute; inset: -12px -4px; }
}
.ac-orpage { padding: 56px 0 104px; }
.ac-orpage .woocommerce-order { display: flex; flex-direction: column; gap: 20px; }
.ac-or__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 32px; align-items: start; }
.ac-or__main { grid-column: 1 / span 7; display: flex; flex-direction: column; gap: 32px; min-width: 0; }
.ac-or__side { grid-column: 9 / span 4; min-width: 0; position: sticky; top: calc(var(--pin-h, 0px) + 24px); }
.ac-or__hero { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.ac-or__hero .n-lede { font-size: 17px; }
.ac-or__check { width: 44px; height: 44px; border-radius: 999px; border: 1px solid var(--line); display: inline-flex; align-items: center; justify-content: center; color: var(--ok); }
.ac-steps { list-style: none; display: flex; flex-direction: column; margin: 0; padding: 0; border-top: 1px solid var(--hair); }
.ac-steps__i { display: flex; gap: 16px; padding: 28px 0; border-bottom: 1px solid var(--hair); }
.ac-steps__n { flex: none; width: 30px; height: 30px; border: 1px solid var(--line); border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; font-family: var(--mono); font-size: 12px; font-weight: 500; color: var(--t2); }
.ac-steps__c { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.ac-steps__t { margin: 0; font-size: 15px; line-height: 1.6; color: var(--t2); max-width: 600px; text-wrap: pretty; }
.ac-steps .n-btnrow { gap: 16px 24px; }
.ac-setpw { display: flex; align-items: flex-start; gap: 14px; padding: 18px 20px; background: var(--surface); border: 1px solid var(--hair); border-radius: var(--r); }
.ac-setpw > svg { margin-top: 2px; color: var(--accent); }
.ac-setpw > div { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.ac-setpw__t { margin: 0; font-size: 15px; font-weight: 600; color: var(--t1); }
.ac-setpw__s { margin: 0; font-size: 14px; line-height: 1.55; color: var(--t2); overflow-wrap: anywhere; }
.ac-fine { display: flex; align-items: flex-start; gap: 10px; margin: 0; font-size: 13px; line-height: 1.55; color: var(--t3); max-width: 620px; }
.ac-fine svg { margin-top: 2px; }
.ac-next--page { padding: 20px; background: var(--surface); border: 1px solid var(--hair); border-radius: var(--r); }
.ac-rcpt__body { display: flex; flex-direction: column; gap: 14px; padding: 18px 22px 20px; }
.ac-rcpt__top { display: flex; flex-direction: column; gap: 6px; padding-bottom: 14px; border-bottom: 1px solid var(--hair); }
.ac-rcpt__plan { margin: 0; font-size: 16px; font-weight: 600; color: var(--t1); }
.ac-rcpt__line { margin: 0; font-size: 13px; line-height: 1.5; color: var(--t2); }
.ac-rcpt__line b { font-weight: 600; color: var(--t1); }
.ac-rcpt__kv .n-kv__row:last-child { border-bottom: 0; }
.ac-rcpt__kv .n-kv__v { overflow-wrap: anywhere; }
.ac-rcpt__foot { flex-direction: column; align-items: flex-start; gap: 12px; padding-top: 14px; padding-bottom: 14px; }
.ac-orpage .woocommerce-order:has(> .ac-or) > .woocommerce-thankyou-order-received,
.ac-orpage .woocommerce-order:has(> .ac-or) > .woocommerce-order-overview,
.ac-orpage .woocommerce-order:has(> .ac-or) > .woocommerce-order-details,
.ac-orpage .woocommerce-order:has(> .ac-or) > .woocommerce-customer-details,
.ac-orpage .woocommerce-order:has(> .ac-or) > section.woocommerce-order-details { display: none; }
.ac-orpage .woocommerce-order > p:not([class]), .ac-orpage .woocommerce-order > ul:not([class]) { max-width: 620px; margin: 0; font-size: 14px; line-height: 1.6; color: var(--t2); }
.ac-orpage .woocommerce-thankyou-order-failed { padding: 14px 16px 14px 42px; font-size: 15px; }
body.ngc .ac-orpage p.woocommerce-thankyou-order-failed-actions { display: flex; flex-wrap: wrap; gap: 12px; min-height: 0; padding: 0; border: 0; background: none; }
body.ngc .ac-orpage p.woocommerce-thankyou-order-failed-actions::before { content: none; }
/* WooCommerce's own h2s (failed-order page); our next-steps (.n-h3, 18 px) and Receipt (.n-h4) headings keep A1's sizes */
body.ngc .ac-orpage .woocommerce-order h2:not(.n-h3):not(.n-h4) { margin: 12px 0 10px; font-size: 16px; font-weight: 600; line-height: 1.35; }
body.ngc .ac-orpage .woocommerce-order address { margin: 0; font-size: 14px; line-height: 1.6; color: var(--t2); }
.ac-orpage .woocommerce-thankyou-order-failed-actions { display: flex; flex-wrap: wrap; gap: 12px; padding: 0; border: 0; background: none; }
.ac-orpage .woocommerce-thankyou-order-failed-actions::before { content: none; }
.ac-orpage .woocommerce-thankyou-order-failed-actions .button.pay:first-child { background: var(--fill); border-color: var(--fill); color: var(--on-fill); font-weight: 600; }
@media (max-width: 1099px) {
  .ac-orpage { padding: 40px 0 72px; }
  .ac-or__grid { grid-template-columns: minmax(0, 1fr); row-gap: 40px; }
  .ac-or__main, .ac-or__side { grid-column: 1 / -1; }
  .ac-or__side { position: static; max-width: 560px; }
}
@media (max-width: 699px) {
  .ac-orpage { padding: 24px 0 56px; }
  .ac-or__main { gap: 24px; }
  .ac-steps__i { gap: 12px; padding: 22px 0; }
  .ac-setpw { padding: 16px; }
  .ac-rcpt__body { padding: 16px; }
  .ac-steps .n-btnrow { flex-direction: column; align-items: flex-start; }
  .ac-or .n-btn { min-height: 44px; }
  .ac-setpw .n-link, .ac-rcpt__foot > a { display: inline-flex; align-items: center; min-height: 44px; }
}
.ac-cart .woocommerce { display: flex; flex-direction: column; gap: 24px; max-width: 960px; }
.ac-cart table.shop_table.cart td.product-thumbnail, .ac-cart table.shop_table.cart th.product-thumbnail { display: none; }
.ac-cart table.shop_table.cart td.product-remove a.remove { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 999px; color: var(--t2) !important; background: transparent; font-size: 20px; font-weight: 400; line-height: 1; text-decoration: none; }
.ac-cart table.shop_table.cart td.product-remove a.remove:hover { background: var(--raised); color: var(--t1) !important; }
.ac-cart table.shop_table.cart td.product-quantity .quantity input { width: 72px; text-align: center; }
.ac-cart table.shop_table.cart td.actions { padding: 12px 16px; text-align: right; }
.ac-cart table.shop_table.cart td.actions .coupon { display: flex; gap: 10px; align-items: center; float: left; }
.ac-cart table.shop_table.cart td.actions .coupon label { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.ac-cart table.shop_table.cart td.actions .coupon .input-text { width: 180px; }
.ac-cart table.shop_table.cart td.actions > .button { float: right; }
.ac-cart .cart-collaterals { display: block; width: auto; }
.ac-cart .cart-collaterals::before, .ac-cart .cart-collaterals::after { content: none; }
.ac-cart .cart-collaterals .cart_totals { float: none; width: auto; max-width: 480px; margin-left: auto; padding: 20px 24px 24px; background: var(--surface); border: 1px solid var(--hair); border-radius: var(--r); }
.ac-cart .cart-collaterals .cart_totals h2 { margin: 0 0 12px; font-size: 16px; }
.ac-cart .cart-collaterals .cart_totals table.shop_table { border: 0; background: none; }
.ac-cart .cart-collaterals .cart_totals table.shop_table th { width: 40%; padding-left: 0; }
.ac-cart .cart-collaterals .cart_totals table.shop_table td { padding-right: 0; text-align: right; }
.ac-cart .wc-proceed-to-checkout { padding: 16px 0 0; }
/* body.ngc: WooCommerce buttons are body.ngc .woocommerce .button { height: 40px } (0,3,1) in ngc-woo.css, which beat .ac-cart alone */
body.ngc .ac-cart .wc-proceed-to-checkout .checkout-button { display: flex; width: 100%; height: 48px; margin: 0; font-size: 15px; }
.ac-cart .cart-empty.woocommerce-info { font-size: 15px; }
.ac-cart .return-to-shop { margin: 0; }
body.ngc .ac-cart .return-to-shop .button { background: var(--fill); border-color: var(--fill); color: var(--on-fill); font-weight: 600; height: 44px; }
@media (max-width: 699px) {
  .ac-cart table.shop_table.cart td.product-remove a.remove { width: 44px; height: 44px; }
  .ac-cart table.shop_table.cart td.actions .coupon { float: none; flex-direction: column; align-items: stretch; width: 100%; }
  .ac-cart table.shop_table.cart td.actions .coupon .input-text { width: 100%; }
  /* the phone table rule gives every cell button flex: 1 1 0 (a row of equal buttons); in the coupon column that is a zero
     height, so "Apply coupon" collapsed to its 2 px border under its own label: a full-width 44 px button instead */
  .ac-cart table.shop_table.cart td.actions .coupon .button { flex: none; width: 100%; height: 44px; margin: 0; }
  .ac-cart table.shop_table.cart td.actions > .button { float: none; width: 100%; margin-top: 10px; }
  /* sold one at a time: the quantity cell holds only a hidden input, so no empty "Quantity" row on phones */
  .ac-cart table.shop_table.cart td.product-quantity:not(:has(input:not([type="hidden"]))) { display: none; }
  .ac-cart .cart-collaterals .cart_totals { padding: 16px; max-width: none; }
  /* Cart totals: each row's own <th> is the label (WooCommerce's small-screen rule that hides it is not loaded here), so one
     label + value line per row, never the th and the td's data-title twice; "Recurring totals" sits left like a sub-heading */
  .ac-cart .cart-collaterals .cart_totals table.shop_table_responsive tr { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 10px 0; }
  .ac-cart .cart-collaterals .cart_totals table.shop_table_responsive tr > th { display: block; width: auto; min-height: 0; padding: 0; text-align: left; }
  .ac-cart .cart-collaterals .cart_totals table.shop_table_responsive tr > td { display: block; width: auto; min-width: 0; min-height: 0; padding: 0; text-align: right; }
  .ac-cart .cart-collaterals .cart_totals table.shop_table_responsive tr > td::before { content: none; display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .ac-co .blockUI.blockOverlay { transition: none; }
}
@media print {
  .ac-co__sticky, .ac-or__side { position: static; }
}
