:root {
  --narvie-blue: #1565d8;
  --narvie-blue-dark: #0b3f91;
  --narvie-blue-soft: #eaf3ff;
  --narvie-green: #17865f;
  --narvie-ink: #132238;
  --narvie-muted: #637083;
  --narvie-line: #dde5ef;
  --narvie-bg: #f4f7fb;
  --narvie-card: #fff;
  --narvie-radius: 18px;
  --narvie-shadow: 0 10px 35px rgba(25, 56, 94, .08);
}

.narvie-mobile-cart { display: none; }

@media (max-width: 1024px) {
  body:not(.woocommerce-cart):not(.woocommerce-checkout) .wd-toolbar {
    height: 62px;
  }
  body:not(.woocommerce-cart):not(.woocommerce-checkout) .wd-toolbar > div {
    width: auto !important;
    min-width: 0 !important;
    flex: 1 1 0 !important;
  }
  body:not(.woocommerce-cart):not(.woocommerce-checkout) .narvie-mobile-cart {
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .narvie-mobile-cart > a {
    position: relative;
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 0;
    height: 62px;
    padding: 4px 3px !important;
    color: #25364d !important;
  }
  .narvie-mobile-cart-icon {
    position: relative;
    display: block;
    width: 24px;
    height: 24px;
  }
  .narvie-mobile-cart-icon svg {
    width: 24px;
    height: 24px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
  }
  .narvie-mobile-cart-count {
    position: absolute;
    top: -7px;
    right: -10px;
    display: grid;
    place-items: center;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    border: 2px solid #fff;
    border-radius: 999px;
    background: var(--narvie-blue);
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
  }
  .narvie-mobile-cart .wd-toolbar-label {
    margin-top: 1px;
    font-size: 10px !important;
    font-weight: 700;
    line-height: 1.1;
  }
  .narvie-mobile-cart-total {
    display: none !important;
  }
  .narvie-mobile-cart-total .woocommerce-Price-currencySymbol { font-size: inherit; }
}

body.woocommerce-cart,
body.woocommerce-checkout {
  background: var(--narvie-bg);
  color: var(--narvie-ink);
}

body.woocommerce-cart .main-page-wrapper,
body.woocommerce-checkout .main-page-wrapper {
  background: linear-gradient(180deg, #eef5ff 0, var(--narvie-bg) 310px);
  padding-top: 34px;
}

body.woocommerce-cart .page-title,
body.woocommerce-checkout .page-title,
body.woocommerce-cart .woocommerce-breadcrumb,
body.woocommerce-checkout .woocommerce-breadcrumb {
  display: none !important;
}

body.woocommerce-cart .site-content,
body.woocommerce-checkout .site-content,
body.woocommerce-cart .container,
body.woocommerce-checkout .container {
  max-width: 1180px;
}

.narvie-checkout-head {
  margin: 0 auto 26px;
}

.narvie-steps {
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 650px;
  margin: 0 auto 30px;
}

.narvie-step {
  position: relative;
  display: flex;
  align-items: center;
  gap: 9px;
  flex: 1;
  color: #8a96a7;
  font-size: 14px;
}

.narvie-step:not(:last-child)::after {
  content: "";
  height: 2px;
  flex: 1;
  margin: 0 12px;
  background: #cfd9e6;
}

.narvie-step span {
  display: grid;
  place-items: center;
  flex: 0 0 30px;
  height: 30px;
  border: 2px solid #c7d1df;
  border-radius: 50%;
  background: #fff;
  font-weight: 800;
}

.narvie-step.is-active,
.narvie-step.is-complete { color: var(--narvie-blue-dark); }
.narvie-step.is-active span,
.narvie-step.is-complete span {
  border-color: var(--narvie-blue);
  background: var(--narvie-blue);
  color: #fff;
}
.narvie-step.is-complete:not(:last-child)::after { background: var(--narvie-blue); }

.narvie-checkout-title {
  text-align: center;
  margin-bottom: 26px;
}

.narvie-eyebrow {
  display: inline-flex;
  padding: 7px 12px;
  margin-bottom: 10px;
  border-radius: 999px;
  background: rgba(21, 101, 216, .1);
  color: var(--narvie-blue-dark);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.narvie-checkout-title h1 {
  margin: 0 0 8px;
  color: var(--narvie-ink);
  font-size: clamp(29px, 4vw, 42px);
  line-height: 1.1;
  font-weight: 800;
}

.narvie-checkout-title p {
  margin: 0;
  color: var(--narvie-muted);
  font-size: 16px;
}

.narvie-service-bar {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  overflow: hidden;
  border: 1px solid var(--narvie-line);
  border-radius: var(--narvie-radius);
  background: rgba(255,255,255,.92);
  box-shadow: var(--narvie-shadow);
}

.narvie-service-bar > div {
  display: flex;
  align-items: center;
  gap: 11px;
  min-width: 0;
  padding: 17px 16px;
}

.narvie-service-bar > div + div { border-left: 1px solid var(--narvie-line); }
.narvie-service-bar svg,
.narvie-payment-heading svg,
.narvie-final-trust svg {
  width: 25px;
  height: 25px;
  flex: 0 0 25px;
  fill: none;
  stroke: var(--narvie-blue);
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.narvie-service-bar span { display: flex; min-width: 0; flex-direction: column; }
.narvie-service-bar strong { color: var(--narvie-ink); font-size: 13px; line-height: 1.3; }
.narvie-service-bar small { overflow: hidden; color: var(--narvie-muted); font-size: 11.5px; text-overflow: ellipsis; white-space: nowrap; }

body.woocommerce-cart .woocommerce,
body.woocommerce-checkout form.checkout.woocommerce-checkout {
  color: var(--narvie-ink);
}

body.woocommerce-cart .woocommerce-cart-form,
body.woocommerce-cart .cart_totals,
body.woocommerce-checkout #customer_details,
body.woocommerce-checkout #order_review {
  border: 1px solid var(--narvie-line) !important;
  border-radius: var(--narvie-radius) !important;
  background: var(--narvie-card) !important;
  box-shadow: var(--narvie-shadow) !important;
}

body.woocommerce-cart .woocommerce-cart-form { padding: 10px 24px; }
body.woocommerce-cart .cart_totals { padding: 25px !important; }
body.woocommerce-cart .cart_totals h2,
body.woocommerce-checkout #order_review_heading,
body.woocommerce-checkout .woocommerce-billing-fields > h3 {
  color: var(--narvie-ink);
  font-size: 21px;
  font-weight: 800;
}

body.woocommerce-cart table.shop_table,
body.woocommerce-checkout table.shop_table {
  border: 0 !important;
  color: var(--narvie-ink);
}

body.woocommerce-cart table.shop_table th,
body.woocommerce-cart table.shop_table td,
body.woocommerce-checkout table.shop_table th,
body.woocommerce-checkout table.shop_table td {
  border-color: var(--narvie-line) !important;
}

body.woocommerce-cart .product-thumbnail img {
  border-radius: 12px;
  background: #f8fafc;
}

body.woocommerce-cart .product-name a,
body.woocommerce-checkout .product-name {
  color: var(--narvie-ink) !important;
  font-weight: 700;
}

body.woocommerce-cart .coupon input,
body.woocommerce-checkout .form-row input.input-text,
body.woocommerce-checkout .form-row textarea,
body.woocommerce-checkout .select2-container--default .select2-selection--single {
  min-height: 50px;
  border: 1px solid #cfd9e6 !important;
  border-radius: 10px !important;
  background: #fff !important;
  box-shadow: none !important;
  color: var(--narvie-ink);
}

body.woocommerce-checkout .form-row input.input-text:focus,
body.woocommerce-checkout .form-row textarea:focus,
body.woocommerce-checkout .select2-container--open .select2-selection--single {
  border-color: var(--narvie-blue) !important;
  box-shadow: 0 0 0 3px rgba(21,101,216,.12) !important;
}

body.woocommerce-checkout .form-row label {
  margin-bottom: 6px;
  color: #344359;
  font-size: 13px;
  font-weight: 700;
}

body.woocommerce-checkout #customer_details { padding: 28px; }
body.woocommerce-checkout #order_review { padding: 25px; }
body.woocommerce-checkout #customer_details,
body.woocommerce-checkout #order_review_heading,
body.woocommerce-checkout #order_review {
  width: auto !important;
  max-width: none !important;
  float: none !important;
  justify-self: stretch !important;
}
body.woocommerce-checkout #order_review_heading,
body.woocommerce-checkout #order_review { min-width: 100% !important; }
body.woocommerce-checkout .checkout-order-review {
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  float: none !important;
}
body.woocommerce-checkout #billing_phone_field .required { display: none !important; }
body.woocommerce-checkout #billing_phone_field label::after {
  content: " (optioneel)";
  color: var(--narvie-muted);
  font-weight: 500;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table { margin-bottom: 18px; }

body.woocommerce-checkout .woocommerce-checkout-payment {
  border: 1px solid var(--narvie-line) !important;
  border-radius: 14px !important;
  background: #f8fafd !important;
}

body.woocommerce-checkout .wc_payment_method {
  margin: 0 !important;
  padding: 15px 17px !important;
  border-bottom: 1px solid var(--narvie-line);
  background: #fff;
}

body.woocommerce-checkout .wc_payment_method:first-child { border-radius: 13px 13px 0 0; }
body.woocommerce-checkout .wc_payment_method label { color: var(--narvie-ink); font-weight: 700; }
body.woocommerce-checkout .payment_box { margin: 12px -17px -15px !important; padding: 15px 17px !important; background: var(--narvie-blue-soft) !important; color: #39506d !important; }

.narvie-payment-heading {
  display: flex;
  gap: 12px;
  align-items: center;
  margin: 8px 0 15px;
}
.narvie-lock-badge {
  display: grid;
  place-items: center;
  width: 43px;
  height: 43px;
  flex: 0 0 43px;
  border-radius: 50%;
  background: var(--narvie-blue-soft);
}
.narvie-payment-heading h3 { margin: 0 0 2px; color: var(--narvie-ink); font-size: 17px; font-weight: 800; }
.narvie-payment-heading p { margin: 0; color: var(--narvie-muted); font-size: 12px; line-height: 1.4; }

body.woocommerce-checkout #place_order,
body.woocommerce-cart .checkout-button {
  min-height: 56px;
  border: 0 !important;
  border-radius: 12px !important;
  background: linear-gradient(135deg, var(--narvie-blue), #0e4ba8) !important;
  box-shadow: 0 9px 22px rgba(21,101,216,.24) !important;
  color: #fff !important;
  font-size: 16px !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
body.woocommerce-checkout #place_order:hover,
body.woocommerce-cart .checkout-button:hover {
  transform: translateY(-1px);
  background: linear-gradient(135deg, #0f56bd, var(--narvie-blue-dark)) !important;
  box-shadow: 0 12px 26px rgba(21,101,216,.3) !important;
}

.narvie-final-trust {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin-top: 14px;
  padding: 13px;
  border-radius: 10px;
  background: #edf8f3;
}
.narvie-final-trust svg { stroke: var(--narvie-green); }
.narvie-final-trust span { display: flex; flex-direction: column; }
.narvie-final-trust strong { color: #155c43; font-size: 13px; }
.narvie-final-trust small { color: #527064; font-size: 11px; line-height: 1.4; }
.narvie-final-trust a { color: #155c43; font-weight: 700; text-decoration: underline; }

.narvie-after-payment {
  margin-top: 16px;
  padding: 16px;
  border: 1px solid var(--narvie-line);
  border-radius: 14px;
  background: #f8fbff;
}
.narvie-after-payment strong { display: block; margin-bottom: 8px; color: var(--narvie-ink); font-size: 14px; }
.narvie-after-payment ol { margin: 0; padding-left: 20px; color: var(--narvie-muted); font-size: 12px; line-height: 1.55; }
.narvie-checkout-service {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 11px;
  align-items: center;
  margin-top: 12px;
  padding: 14px;
  border: 1px solid #cde8d9;
  border-radius: 14px;
  background: #f4fbf7;
}
.narvie-checkout-service svg { width: 24px; height: 24px; fill: none; stroke: #158052; stroke-width: 1.8; }
.narvie-checkout-service strong,
.narvie-checkout-service small { display: block; }
.narvie-checkout-service strong { color: #155c43; font-size: 13px; }
.narvie-checkout-service small { margin-top: 2px; color: #527064; font-size: 11px; line-height: 1.4; }
.narvie-checkout-service a {
  padding: 8px 11px;
  border-radius: 9px;
  background: #1fa463;
  color: #fff !important;
  font-size: 11px;
  font-weight: 800;
}
.narvie-company-proof {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-top: 12px;
  padding: 12px 14px;
  border: 1px solid var(--narvie-line);
  border-radius: 12px;
  color: var(--narvie-muted);
  font-size: 11px;
}
.narvie-company-proof strong { color: var(--narvie-ink); font-size: 12px; }
.narvie-second-tracker {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 12px;
  align-items: center;
  margin-top: 14px;
  padding: 15px;
  border: 1px solid #bfd9fa;
  border-radius: 14px;
  background: #edf6ff;
}
.narvie-second-tracker strong,
.narvie-second-tracker small { display: block; }
.narvie-second-tracker strong { color: var(--narvie-ink); font-size: 13px; }
.narvie-second-tracker small { margin-top: 3px; color: var(--narvie-muted); font-size: 11px; line-height: 1.4; }
.narvie-second-tracker a { padding: 9px 11px; border-radius: 9px; background: var(--narvie-blue); color: #fff !important; font-size: 11px; font-weight: 800; }

.narvie-cart-help {
  margin-top: 16px;
  padding: 16px;
  border: 1px solid var(--narvie-line);
  border-radius: 12px;
  background: #f8fafd;
  text-align: center;
}
.narvie-cart-help strong,
.narvie-cart-help span { display: block; }
.narvie-cart-help strong { color: var(--narvie-ink); font-size: 13px; }
.narvie-cart-help span { margin: 3px 0 8px; color: var(--narvie-muted); font-size: 12px; }
.narvie-cart-help a { color: var(--narvie-blue); font-size: 12px; font-weight: 800; }

body.woocommerce-checkout .woocommerce-privacy-policy-text {
  color: var(--narvie-muted);
  font-size: 12px;
  line-height: 1.55;
}

body.woocommerce-cart .woocommerce-message,
body.woocommerce-checkout .woocommerce-message,
body.woocommerce-checkout .woocommerce-info,
body.woocommerce-checkout .woocommerce-error {
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 6px 20px rgba(25,56,94,.06);
  color: var(--narvie-ink) !important;
  line-height: 1.45;
}

@media (min-width: 992px) {
  body.woocommerce-checkout form.checkout.woocommerce-checkout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 420px;
    column-gap: 28px;
    align-items: start;
  }
  body.woocommerce-checkout #customer_details { grid-column: 1; }
  body.woocommerce-checkout .checkout-order-review { grid-column: 2; align-self: start; }
  body.woocommerce-checkout #order_review_heading { margin: 0 0 12px; }
  body.woocommerce-checkout #order_review { position: sticky; top: 22px; }
}

@media (max-width: 991px) {
  .narvie-service-bar { grid-template-columns: repeat(2, 1fr); }
  .narvie-service-bar > div:nth-child(3) { border-left: 0; border-top: 1px solid var(--narvie-line); }
  .narvie-service-bar > div:nth-child(4) { border-top: 1px solid var(--narvie-line); }
  body.woocommerce-checkout #customer_details { margin-bottom: 22px; }
}

@media (max-width: 575px) {
  .narvie-checkout-service,
  .narvie-second-tracker { grid-template-columns: 1fr; }
  .narvie-checkout-service > span { display: none; }
  .narvie-checkout-service a,
  .narvie-second-tracker a { text-align: center; }
  body.woocommerce-cart .wd-toolbar,
  body.woocommerce-checkout .wd-toolbar { display: none !important; }
  body.woocommerce-cart .main-page-wrapper,
  body.woocommerce-checkout .main-page-wrapper { padding-top: 22px; }
  .narvie-steps { margin-bottom: 23px; }
  .narvie-step { justify-content: center; gap: 5px; font-size: 11px; }
  .narvie-step:not(:last-child)::after { margin: 0 5px; }
  .narvie-step span { flex-basis: 26px; height: 26px; font-size: 11px; }
  .narvie-checkout-title { margin-bottom: 20px; }
  .narvie-checkout-title p { padding: 0 10px; font-size: 14px; }
  .narvie-service-bar { grid-template-columns: 1fr; }
  .narvie-service-bar > div { padding: 13px 15px; }
  .narvie-service-bar > div + div { border-left: 0; border-top: 1px solid var(--narvie-line); }
  .narvie-service-bar small { white-space: normal; }
  body.woocommerce-cart .woocommerce-cart-form,
  body.woocommerce-cart .cart_totals,
  body.woocommerce-checkout #customer_details,
  body.woocommerce-checkout #order_review { padding: 18px !important; border-radius: 14px !important; }
  body.woocommerce-cart .woocommerce-cart-form { overflow-x: auto; }
  body.woocommerce-checkout #place_order,
  body.woocommerce-cart .checkout-button { min-height: 58px; }
}
