/* WooCommerce keeps the commerce logic; the theme gives every route the MMO shell. */
.woocommerce { color: var(--mmo-ink); }
.woocommerce .woocommerce-breadcrumb { margin: 0 0 20px; color: var(--mmo-muted); font-size: .82rem; }
.woocommerce :where(h1,h2,h3) { color: var(--mmo-blue-dark); font-family: Georgia,'Times New Roman',serif; }
.woocommerce-page .page-shell > .wrap > h1:first-child,.woocommerce-page .woocommerce > h1:first-child { margin: 0 0 26px; color: var(--mmo-blue-dark); font: 700 clamp(2rem,4vw,3rem)/1.1 Georgia,'Times New Roman',serif; letter-spacing: -.025em; }
.woocommerce ul.products li.product,.woocommerce div.product,.woocommerce-cart-form,.woocommerce-checkout-review-order,.woocommerce-MyAccount-content,.woocommerce .woocommerce-MyAccount-navigation { padding: 22px; border: 1px solid var(--mmo-line); border-radius: 12px; background: #fff; }
.woocommerce table.shop_table { width: 100%; border: 1px solid var(--mmo-line); border-radius: 8px; border-collapse: separate; border-spacing: 0; overflow: hidden; }
.woocommerce table.shop_table th { color: var(--mmo-blue-dark); background: #f0f7fb; }
.woocommerce table.shop_table :is(th,td) { padding: 14px 16px; border-color: var(--mmo-line); }
.woocommerce span.onsale { background: var(--mmo-cyan); }
.woocommerce .woocommerce-MyAccount-navigation ul { margin: 0; padding: 0; list-style: none; }
.woocommerce .woocommerce-MyAccount-navigation li { padding: 9px 0; border-bottom: 1px solid var(--mmo-line); }
.woocommerce .woocommerce-MyAccount-navigation li:last-child { border: 0; }
.woocommerce .woocommerce-MyAccount-navigation a { color: #355c72; text-decoration: none; }
.woocommerce .woocommerce-MyAccount-navigation .is-active a { color: var(--mmo-blue); font-weight: 800; }
.woocommerce :is(a.button,button.button,input.button,#respond input#submit) { min-height: 44px; padding: 11px 17px; border: 1px solid transparent; border-radius: 7px; background: var(--mmo-blue); color: #fff; font: 700 .86rem/1.3 Arial,sans-serif; text-decoration: none; }
.woocommerce :is(a.button,button.button,input.button,#respond input#submit):hover { background: var(--mmo-blue-dark); color: #fff; }
.woocommerce .button.alt,.woocommerce .button.alt:hover { background: var(--mmo-blue-dark); }
.woocommerce form .form-row { margin-bottom: 16px; }
.woocommerce form .form-row label { margin-bottom: 7px; color: var(--mmo-blue-dark); font-size: .82rem; font-weight: 700; }
.woocommerce form .form-row .required { color: #b43d4b; text-decoration: none; }
.woocommerce form :is(input.input-text,textarea,select) { width: 100%; min-height: 46px; padding: 11px 13px; border: 1px solid #bdceda; border-radius: 7px; background: #fff; color: var(--mmo-ink); font: inherit; font-size: .88rem; }
.woocommerce form textarea { min-height: 110px; resize: vertical; }
.woocommerce form :is(input.input-text,textarea,select):focus { border-color: var(--mmo-cyan); outline: 3px solid rgb(0 160 255 / 18%); outline-offset: 2px; }
.woocommerce .select2-container .select2-selection--single { height: 46px; border: 1px solid #bdceda; border-radius: 7px; }
.woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 44px; padding-left: 13px; color: var(--mmo-ink); }
.woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow { height: 44px; right: 8px; }
.woocommerce :is(.woocommerce-message,.woocommerce-info,.woocommerce-error) { padding: 16px 18px; border: 1px solid #cde3ef; border-radius: 8px; background: var(--mmo-soft-blue); color: #244e67; line-height: 1.6; }
.woocommerce .woocommerce-error { border-color: #e7c6c9; background: #fff5f5; color: #77313a; }
.woocommerce :is(.woocommerce-message,.woocommerce-info,.woocommerce-error)::before { display: none; }
.woocommerce-checkout .woocommerce form.checkout { display: grid; grid-template-columns: minmax(0,1.12fr) minmax(320px,.88fr); align-items: start; gap: 0 30px; }
.woocommerce-checkout #customer_details { grid-column: 1; grid-row: 1 / span 2; min-width: 0; }
.woocommerce-checkout #customer_details .col-1,.woocommerce-checkout #customer_details .col-2 { float: none; width: 100%; }
.woocommerce-checkout #customer_details .col-2 { margin-top: 18px; }
.woocommerce-checkout #order_review_heading { grid-column: 2; grid-row: 1; margin: 0 0 12px; padding: 20px 22px 0; border: 1px solid var(--mmo-line); border-bottom: 0; border-radius: 12px 12px 0 0; background: #fff; font-size: 1.25rem; }
.woocommerce-checkout #order_review { grid-column: 2; grid-row: 2; position: sticky; top: 20px; min-width: 0; padding: 0 22px 22px; border: 1px solid var(--mmo-line); border-top: 0; border-radius: 0 0 12px 12px; background: #fff; }
.woocommerce-checkout #order_review .shop_table { margin: 0 0 20px; }
.woocommerce-checkout #payment { border: 1px solid var(--mmo-line); border-radius: 8px; background: #f7fafc; }
.woocommerce-checkout #payment ul.payment_methods { padding: 18px; border-color: var(--mmo-line); }
.woocommerce-checkout #payment .payment_box { border-radius: 7px; background: #eaf5fb; color: #385a6d; }
.woocommerce-checkout #payment .payment_box::before { border-bottom-color: #eaf5fb; }
.woocommerce-cart .cart-collaterals .cart_totals { float: none; width: min(100%,520px); margin: 24px 0 0 auto; padding: 22px; border: 1px solid var(--mmo-line); border-radius: 12px; background: #fff; }
.woocommerce-account .woocommerce-MyAccount-content address { padding: 18px; border: 1px solid var(--mmo-line); border-radius: 8px; background: #f7fafc; line-height: 1.7; }
.job-manager-form fieldset label,.job-manager-form label { color: var(--mmo-blue-dark); font-weight: 700; }
.job-manager-form input[type="text"],.job-manager-form input[type="email"],.job-manager-form input[type="url"],.job-manager-form input[type="password"],.job-manager-form input[type="number"],.job-manager-form select,.job-manager-form textarea { width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid var(--mmo-line); border-radius: 6px; background: #fff; color: var(--mmo-ink); }
.job-manager-form input:focus,.job-manager-form select:focus,.job-manager-form textarea:focus { border-color: var(--mmo-cyan); outline: 3px solid rgb(0 160 255 / 16%); }
.job_packages { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,230px),1fr)); gap: 14px; margin: 18px 0 24px; padding: 0; list-style: none; }
.job_packages .job-package,.job_packages .user-job-package { position: relative; min-width: 0; padding: 18px; border: 1px solid var(--mmo-line); border-radius: 10px; background: #fff; box-shadow: 0 4px 18px rgb(0 65 110 / 6%); }
.job_packages .job-package-featured,.job_packages .user-job-package-featured { border-color: var(--mmo-cyan); box-shadow: 0 5px 22px rgb(0 130 190 / 12%); }
.job_packages input[type="radio"] { width: 18px; height: 18px; margin: 0 8px 0 0; accent-color: var(--mmo-blue); }
.job_packages label { display: inline-flex; align-items: center; gap: 8px; color: var(--mmo-blue-dark); font-size: 1.08rem; font-weight: 800; cursor: pointer; }
.job_packages .price,.job_packages .amount { color: var(--mmo-blue); font-size: 1.25rem; font-weight: 800; }
.job_packages .package-features { margin: 14px 0 0; padding-left: 19px; color: var(--mmo-muted); }
.job_packages .package-description { margin-top: 12px; color: var(--mmo-muted); font-size: .88rem; }
.job-package-selection__submit { margin-top: 8px; }
@media(max-width:850px) { .woocommerce-checkout .woocommerce form.checkout { grid-template-columns: minmax(0,1fr); gap: 20px; } .woocommerce-checkout #customer_details,.woocommerce-checkout #order_review_heading,.woocommerce-checkout #order_review { grid-column: 1; grid-row: auto; } .woocommerce-checkout #order_review { position: static; } }
@media(max-width:680px) { .woocommerce ul.products li.product,.woocommerce div.product,.woocommerce-cart-form,.woocommerce-checkout-review-order,.woocommerce-MyAccount-content,.woocommerce .woocommerce-MyAccount-navigation { padding: 16px; } .woocommerce .woocommerce-MyAccount-navigation,.woocommerce .woocommerce-MyAccount-content { width: 100%; float: none; margin-bottom: 14px; } .woocommerce table.shop_table :is(th,td) { padding: 11px 9px; font-size: .78rem; } .woocommerce-checkout #order_review_heading { padding: 16px 16px 0; } .woocommerce-checkout #order_review { padding: 0 16px 16px; } }

/* Branded checkout: quiet canvas, clear form panel, and one continuous order card. */
body.woocommerce-checkout { background:#f4f8fb; }
.woocommerce-checkout .page-shell { padding-block:34px 64px; }
.woocommerce-checkout .page-shell > .wrap { width:min(1120px,calc(100% - 52px)); }
.woocommerce-checkout .woocommerce-breadcrumb { margin-bottom:17px; color:#71818c; font-size:.78rem; }
.woocommerce-checkout .page-shell > .wrap > h1:first-child { margin-bottom:30px; font-size:clamp(2.1rem,4vw,2.8rem); }
.woocommerce-checkout .woocommerce form.checkout { grid-template-columns:minmax(0,1.08fr) minmax(330px,.92fr); gap:0 26px; }
.woocommerce-checkout #customer_details { padding:26px 28px 20px; border:1px solid #dce7ed; border-radius:14px; background:#fff; box-shadow:0 8px 26px rgb(23 67 92 / 5%); }
.woocommerce-checkout #customer_details h3 { margin:0 0 20px; font-size:1.24rem; letter-spacing:-.01em; }
.woocommerce-checkout #customer_details .col-2 { margin-top:20px; padding-top:19px; border-top:1px solid #e7eef2; }
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper { display:flow-root; }
.woocommerce-checkout .form-row { margin-bottom:17px!important; }
.woocommerce-checkout .form-row label { margin-bottom:6px!important; color:#38586c!important; font-size:.76rem!important; font-weight:700!important; }
.woocommerce-checkout .form-row .optional { color:#8696a1; font-size:.72rem; font-weight:400; }
.woocommerce-checkout .woocommerce form :is(input.input-text,textarea,select) { min-height:46px; padding:11px 13px; border-color:#cbd9e1; border-radius:7px; background:#fbfdfe; box-shadow:none; font-size:.86rem; transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease; }
.woocommerce-checkout .woocommerce form :is(input.input-text,textarea,select):focus { border-color:#1688c4; background:#fff; outline:0; box-shadow:0 0 0 3px rgb(0 135 199 / 13%); }
.woocommerce-checkout .woocommerce form .select2-container--default .select2-selection--single { border-color:#cbd9e1; background:#fbfdfe; }
.woocommerce-checkout #order_review_heading { margin:0; padding:21px 23px 16px; border:1px solid #dce7ed; border-bottom:0; border-radius:14px 14px 0 0; background:#fff; box-shadow:0 8px 26px rgb(23 67 92 / 5%); font-size:1.22rem; }
.woocommerce-checkout #order_review { padding:0 22px 20px; border:1px solid #dce7ed; border-top:0; border-radius:0 0 14px 14px; background:#fff; box-shadow:0 8px 26px rgb(23 67 92 / 5%); }
.woocommerce-checkout #order_review .shop_table { margin:0 0 17px; border:1px solid #e0eaf0; border-radius:9px; }
.woocommerce-checkout #order_review .shop_table th { background:#edf6fb; }
.woocommerce-checkout #order_review .shop_table :is(th,td) { padding:12px 13px; font-size:.82rem; }
.woocommerce-checkout #order_review .shop_table .order-total th,.woocommerce-checkout #order_review .shop_table .order-total td { background:#f4f9fc; color:#164b61; font-size:.93rem; font-weight:800; }
.woocommerce-checkout #payment { overflow:hidden; border:1px solid #dce7ed; border-radius:10px; background:#fff; }
.woocommerce-checkout #payment ul.payment_methods { display:grid; gap:9px; padding:13px; border:0; }
.woocommerce-checkout #payment ul.payment_methods li { position:relative; padding:13px 13px 13px 39px; border:1px solid #e0e9ee; border-radius:8px; background:#fff; color:#314d5f; font-size:.86rem; }
.woocommerce-checkout #payment ul.payment_methods li:has(input:checked) { border-color:#77b9d8; background:#f1f9fc; }
.woocommerce-checkout #payment ul.payment_methods li input { position:absolute; top:16px; left:13px; accent-color:#0879b5; }
.woocommerce-checkout #payment ul.payment_methods li label { display:flex; align-items:center; justify-content:space-between; gap:10px; font-weight:700; }
.woocommerce-checkout #payment ul.payment_methods li label img { width:auto; max-width:112px; max-height:34px; object-fit:contain; }
.woocommerce-checkout #payment .payment_box { margin:12px 0 0; padding:12px 13px; border:1px solid #dcecf4; background:#f4f9fc; color:#496273; font-size:.8rem; line-height:1.6; }
.woocommerce-checkout #payment .payment_box::before { display:none; }
.woocommerce-checkout #payment .payment_box :is(input,select) { min-height:44px; border-radius:6px; }
.woocommerce-checkout #payment .place-order { margin:0!important; padding:0 13px 15px!important; }
.woocommerce-checkout #payment .place-order .woocommerce-terms-and-conditions-wrapper { margin-bottom:13px; color:#667984; font-size:.75rem; line-height:1.55; }
.woocommerce-checkout #payment #place_order { width:100%; min-height:52px; border-radius:8px; background:#0879b5; box-shadow:0 5px 14px rgb(0 91 150 / 17%); font-size:.9rem; }
.woocommerce-checkout #payment #place_order:hover { transform:translateY(-1px); background:#075f91; box-shadow:0 7px 17px rgb(0 91 150 / 22%); }
.woocommerce-checkout .woocommerce-info,.woocommerce-checkout .woocommerce-error { margin-bottom:20px; border-radius:9px; }
.woocommerce-checkout .woocommerce-breadcrumb,.woocommerce-checkout .breadcrumbs { display:none!important; }
/* The gateway description and its phone field are emitted by the M-Pesa plugin.
   Normalize its WooCommerce fieldset so plugin/theme defaults cannot reorder it. */
.woocommerce-checkout #payment div.payment_box { margin:10px 0 0!important; padding:6px 0 0!important; border:0!important; background:transparent!important; color:#496273!important; }
.woocommerce-checkout #payment div.payment_box p { margin:0 0 9px; }
.woocommerce-checkout #payment div.payment_box fieldset.wc-payment-form { display:flow-root; width:100%!important; max-width:100%!important; margin:12px 0 0!important; padding:0!important; border:0!important; background:transparent!important; }
.woocommerce-checkout #payment div.payment_box fieldset.wc-payment-form .form-row { display:flex!important; flex-direction:column; align-items:stretch; gap:6px; float:none!important; width:100%!important; max-width:100%!important; margin:0!important; padding:0!important; background:transparent!important; }
.woocommerce-checkout #payment div.payment_box fieldset.wc-payment-form .form-row label { display:block; order:0; margin:0!important; color:#38586c!important; font-size:.76rem!important; }
.woocommerce-checkout #payment div.payment_box fieldset.wc-payment-form .form-row input[name="wc_mpesa_number"] { position:static!important; inset:auto!important; display:block; order:1; flex:1 1 auto; box-sizing:border-box!important; width:100%!important; max-width:100%!important; min-height:46px; margin:0!important; padding:11px 13px; border:1px solid #cbd9e1!important; border-radius:7px; background:#fff!important; color:#202124; box-shadow:none!important; font:inherit; }
.woocommerce-checkout #payment div.payment_box fieldset.wc-payment-form .form-row input[name="wc_mpesa_number"]:focus { border-color:#1688c4!important; outline:0; box-shadow:0 0 0 3px rgb(0 135 199 / 13%)!important; }
@media(max-width:850px) {
 .woocommerce-checkout .page-shell > .wrap { width:min(720px,calc(100% - 34px)); }
 .woocommerce-checkout .woocommerce form.checkout { grid-template-columns:minmax(0,1fr); gap:18px; }
 .woocommerce-checkout #customer_details,.woocommerce-checkout #order_review_heading,.woocommerce-checkout #order_review { grid-column:1; grid-row:auto; }
 .woocommerce-checkout #order_review_heading { border-bottom:0; }
 .woocommerce-checkout #order_review_heading { margin-bottom:-18px; }
 .woocommerce-checkout #order_review { border-top:0; }
}
@media(max-width:560px) {
 .woocommerce-checkout .page-shell { padding-block:22px 42px; }
 .woocommerce-checkout .page-shell > .wrap { width:calc(100% - 28px); }
 .woocommerce-checkout .page-shell > .wrap > h1:first-child { margin-bottom:21px; }
 .woocommerce-checkout #customer_details { padding:19px 17px 12px; }
 .woocommerce-checkout #order_review_heading { padding:18px 17px 13px; }
 .woocommerce-checkout #order_review { padding:0 16px 16px; }
 .woocommerce-checkout #order_review .shop_table :is(th,td) { padding:10px 9px; font-size:.76rem; }
 .woocommerce-checkout #payment ul.payment_methods { padding:10px; }
 .woocommerce-checkout #payment .place-order { padding-inline:10px!important; }
}

/* Keep the order heading and its table as one uninterrupted unit on mobile.
   The checkout form's row gap belongs before the order card, not inside it. */
@media(max-width:850px) {
 .woocommerce-checkout .woocommerce form.checkout { row-gap:0; }
 .woocommerce-checkout #customer_details { margin-bottom:18px; }
 .woocommerce-checkout #order_review_heading { margin-bottom:0!important; padding-bottom:0!important; }
}
/* WooCommerce's more-specific payment-box pseudo-element otherwise leaves a
   detached pointer when a gateway panel has a transparent background. */
.woocommerce-checkout #payment div.payment_box::before { display:none!important; content:none!important; }
