:root {
  --icc-ape-navy: #052846;
  --icc-ape-navy-deep: #031d34;
  --icc-ape-navy-soft: #0b416f;
  --icc-ape-red: #e31b36;
  --icc-ape-red-dark: #c5142d;
  --icc-ape-ink: #10273d;
  --icc-ape-copy: #53687b;
  --icc-ape-muted: #7890a5;
  --icc-ape-line: #dce6ee;
  --icc-ape-surface: #ffffff;
  --icc-ape-bg: #f4f7fa;
  --icc-ape-success: #17785a;
  --icc-ape-radius: 22px;
  --icc-ape-shadow: 0 22px 55px rgba(5, 40, 70, .12);
}

body.icc-ape-page {
  background: var(--icc-ape-bg) !important;
}

body.icc-ape-page .site-main,
body.icc-ape-page #main,
body.icc-ape-page #primary,
body.icc-ape-page .entry-content,
body.icc-ape-page .woocommerce {
  max-width: none;
}

body.icc-ape-page .icc-footer__cta {
  display: none !important;
}

body.icc-ape-page .icc-footer__main {
  padding-top: clamp(34px, 4vw, 52px) !important;
}

body.icc-ape-page .page-header,
body.icc-ape-page .entry-header,
body.icc-ape-page > .site > .site-main > .page-header,
body.icc-ape-page .woocommerce-products-header,
body.icc-ape-page .woocommerce-breadcrumb {
  display: none !important;
}

.icc-ape-shell,
.icc-ape-shell *,
.icc-ape-checkout-container .woocommerce,
.icc-ape-checkout-container .woocommerce * {
  box-sizing: border-box;
}

.icc-ape-shell {
  width: 100%;
  color: var(--icc-ape-ink);
  background:
    radial-gradient(circle at 88% 10%, rgba(11, 65, 111, .045), transparent 26%),
    linear-gradient(180deg, #f8fafc 0%, #f3f7fa 100%);
  font-family: "Inter", "Segoe UI", Arial, sans-serif;
}

.icc-ape-wrap {
  width: min(calc(100% - 48px), 1320px);
  margin-inline: auto;
}

.icc-ape-kicker {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 13px;
  color: var(--icc-ape-red);
  font-size: 11px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.icc-ape-kicker::before {
  content: "";
  width: 30px;
  height: 2px;
  border-radius: 999px;
  background: var(--icc-ape-red);
}

.icc-ape-button {
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 11px;
  padding: 13px 19px;
  border: 1px solid transparent;
  border-radius: 11px;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.2;
  text-decoration: none !important;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease;
}

.icc-ape-button span[aria-hidden="true"] {
  font-size: 18px;
  line-height: 1;
  transition: transform .2s ease;
}

.icc-ape-button:hover span[aria-hidden="true"] {
  transform: translateX(3px);
}

.icc-ape-button:hover {
  transform: translateY(-2px);
}

.icc-ape-button--primary {
  color: #fff !important;
  background: linear-gradient(145deg, var(--icc-ape-red), var(--icc-ape-red-dark));
  box-shadow: 0 13px 28px rgba(227, 27, 54, .24);
}

.icc-ape-button--primary:hover {
  color: #fff !important;
  box-shadow: 0 17px 34px rgba(227, 27, 54, .32);
}

.icc-ape-button--secondary {
  color: var(--icc-ape-navy) !important;
  border-color: #cddae4;
  background: #fff;
}

.icc-ape-button--secondary:hover {
  color: var(--icc-ape-navy) !important;
  border-color: #9fb5c7;
  box-shadow: 0 10px 22px rgba(5, 40, 70, .08);
}

.icc-ape-button--wide {
  width: 100%;
}

.icc-ape-text-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--icc-ape-navy) !important;
  font-size: 13px;
  font-weight: 750;
  line-height: 1.4;
  text-decoration: underline;
  text-decoration-color: rgba(5, 40, 70, .24);
  text-underline-offset: 4px;
}

.icc-ape-text-link:hover {
  color: var(--icc-ape-red) !important;
  text-decoration-color: rgba(227, 27, 54, .45);
}

/* Progress */
.icc-ape-progress {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin-top: 34px;
}

.icc-ape-progress__step {
  position: relative;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 9px;
  padding-right: 16px;
  color: rgba(255, 255, 255, .56);
}

.icc-ape-progress__step:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 17px;
  right: 6px;
  width: calc(100% - 130px);
  min-width: 22px;
  height: 1px;
  background: rgba(255, 255, 255, .16);
}

.icc-ape-progress__step > span {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: 50%;
  color: rgba(255, 255, 255, .65);
  background: rgba(255, 255, 255, .04);
  font-size: 12px;
  font-weight: 800;
}

.icc-ape-progress__step strong {
  overflow: hidden;
  font-size: 11px;
  font-weight: 750;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.icc-ape-progress__step.is-current,
.icc-ape-progress__step.is-complete {
  color: #fff;
}

.icc-ape-progress__step.is-current > span {
  border-color: rgba(255, 255, 255, .85);
  color: #fff;
  background: var(--icc-ape-red);
  box-shadow: 0 8px 18px rgba(227, 27, 54, .25);
}

.icc-ape-progress__step.is-complete > span {
  border-color: rgba(255,255,255,.28);
  color: #fff;
  background: rgba(255,255,255,.13);
}

/* Application fee landing */
.icc-ape-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(circle at 86% 8%, rgba(30, 110, 165, .32), transparent 28%),
    linear-gradient(135deg, var(--icc-ape-navy-deep) 0%, var(--icc-ape-navy) 62%, #0a3c68 100%);
}

.icc-ape-hero::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  right: 0;
  left: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--icc-ape-red) 0 28%, #fff 28% 34%, #1988bd 34% 100%);
}

.icc-ape-hero__pattern {
  position: absolute;
  z-index: -1;
  top: -170px;
  right: -80px;
  width: 620px;
  height: 620px;
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 50%;
  pointer-events: none;
}

.icc-ape-hero__pattern::after {
  content: "";
  position: absolute;
  inset: 90px;
  border: 1px solid rgba(255,255,255,.055);
  border-radius: 50%;
}

.icc-ape-hero__grid {
  min-height: 550px;
  display: grid;
  grid-template-columns: minmax(0, 1.13fr) minmax(390px, .87fr);
  align-items: center;
  gap: clamp(54px, 7vw, 100px);
  padding-block: clamp(58px, 6vw, 82px);
}

.icc-ape-hero__copy {
  max-width: 745px;
}

.icc-ape-hero__copy h1 {
  max-width: 720px;
  margin: 0;
  color: #fff;
  font-size: clamp(2.5rem, 4.8vw, 4.9rem);
  font-weight: 760;
  line-height: .99;
  letter-spacing: -.055em;
}

.icc-ape-hero__copy > p {
  max-width: 680px;
  margin: 23px 0 0;
  color: #c5d5e3;
  font-size: clamp(1rem, 1.45vw, 1.2rem);
  font-weight: 500;
  line-height: 1.72;
}

.icc-ape-payment-card {
  position: relative;
  padding: clamp(27px, 3vw, 36px);
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: var(--icc-ape-radius);
  background:
    linear-gradient(145deg, rgba(255,255,255,.13), rgba(255,255,255,.065));
  box-shadow: 0 28px 65px rgba(0,0,0,.18);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.icc-ape-payment-card::before {
  content: "";
  position: absolute;
  top: 0;
  right: 26px;
  width: 54px;
  height: 3px;
  background: var(--icc-ape-red);
}

.icc-ape-payment-card__eyebrow {
  display: block;
  margin-bottom: 8px;
  color: #ff8da0;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.icc-ape-payment-card__amount {
  margin-bottom: 12px;
  color: #fff;
  font-size: clamp(2rem, 3vw, 3.25rem);
  font-weight: 800;
  line-height: 1;
  letter-spacing: -.04em;
}

.icc-ape-payment-card > p {
  margin: 0 0 20px;
  color: #c7d7e4;
  font-size: 13px;
  line-height: 1.7;
}

.icc-ape-check-list {
  display: grid;
  gap: 10px;
  margin: 0 0 24px;
  padding: 17px 0 18px;
  border-top: 1px solid rgba(255,255,255,.12);
  border-bottom: 1px solid rgba(255,255,255,.12);
  list-style: none;
}

.icc-ape-check-list li {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  color: #ecf4f9;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.45;
}

.icc-ape-check-list li span {
  color: #ff8394;
}

.icc-ape-payment-card .icc-ape-button + .icc-ape-button {
  margin-top: 9px;
}

.icc-ape-payment-card .icc-ape-button--secondary {
  color: #fff !important;
  border-color: rgba(255,255,255,.2);
  background: rgba(255,255,255,.06);
}

.icc-ape-payment-card .icc-ape-button--secondary:hover {
  color: #fff !important;
  border-color: rgba(255,255,255,.35);
  background: rgba(255,255,255,.1);
}

.icc-ape-secure-note {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-top: 18px;
  color: #aec2d2;
  font-size: 11px;
  line-height: 1.45;
}

.icc-ape-secure-note > span {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border: 1px solid rgba(255,255,255,.17);
  border-radius: 50%;
}

.icc-ape-secure-note p {
  margin: 0;
}

.icc-ape-secure-note strong,
.icc-ape-secure-note a {
  color: #fff !important;
}

.icc-ape-support-strip {
  border-bottom: 1px solid #e3eaf0;
  background: #fff;
}

.icc-ape-support-strip__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  padding-block: 30px;
}

.icc-ape-support-strip__grid > div {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  gap: 13px;
  padding: 4px 28px;
  border-right: 1px solid #e4ebf0;
}

.icc-ape-support-strip__grid > div:first-child {
  padding-left: 0;
}

.icc-ape-support-strip__grid > div:last-child {
  padding-right: 0;
  border-right: 0;
}

.icc-ape-support-strip__grid > div > span {
  color: var(--icc-ape-red);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
}

.icc-ape-support-strip__grid p {
  margin: 0;
}

.icc-ape-support-strip__grid strong,
.icc-ape-support-strip__grid small {
  display: block;
}

.icc-ape-support-strip__grid strong {
  margin-bottom: 4px;
  color: var(--icc-ape-navy);
  font-size: 13px;
  font-weight: 800;
}

.icc-ape-support-strip__grid small {
  color: var(--icc-ape-copy);
  font-size: 11px;
  line-height: 1.55;
}

/* Premium cart fallback */
.icc-ape-cart-panel {
  padding: clamp(60px, 7vw, 92px) 0;
}

.icc-ape-cart-panel__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(360px, .85fr);
  gap: clamp(46px, 7vw, 90px);
  align-items: center;
}

.icc-ape-cart-panel__copy h1 {
  max-width: 760px;
  margin: 0;
  color: var(--icc-ape-navy-deep);
  font-size: clamp(2.3rem, 4.6vw, 4.2rem);
  font-weight: 760;
  line-height: 1.03;
  letter-spacing: -.05em;
}

.icc-ape-cart-panel__copy > p {
  max-width: 710px;
  margin: 21px 0 0;
  color: var(--icc-ape-copy);
  font-size: 16px;
  line-height: 1.75;
}

.icc-ape-cart-panel .icc-ape-progress {
  max-width: 720px;
}

.icc-ape-cart-panel .icc-ape-progress__step {
  color: #75899c;
}

.icc-ape-cart-panel .icc-ape-progress__step:not(:last-child)::after {
  background: #dce5ec;
}

.icc-ape-cart-panel .icc-ape-progress__step > span {
  border-color: #d1dce5;
  color: #75899c;
  background: #fff;
}

.icc-ape-cart-panel .icc-ape-progress__step.is-current,
.icc-ape-cart-panel .icc-ape-progress__step.is-complete {
  color: var(--icc-ape-navy);
}

.icc-ape-cart-panel .icc-ape-progress__step.is-current > span {
  color: #fff;
  border-color: var(--icc-ape-red);
  background: var(--icc-ape-red);
}

.icc-ape-cart-panel .icc-ape-progress__step.is-complete > span {
  color: var(--icc-ape-navy);
  border-color: #b9cad7;
  background: #edf4f8;
}

.icc-ape-cart-summary {
  padding: clamp(28px, 3vw, 38px);
  border: 1px solid #d9e3ea;
  border-radius: var(--icc-ape-radius);
  background: #fff;
  box-shadow: var(--icc-ape-shadow);
}

.icc-ape-cart-summary > span {
  display: block;
  color: var(--icc-ape-red);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.icc-ape-cart-summary > strong {
  display: block;
  margin: 8px 0 7px;
  color: var(--icc-ape-navy-deep);
  font-size: clamp(2rem, 3vw, 3.1rem);
  font-weight: 800;
  line-height: 1;
  letter-spacing: -.04em;
}

.icc-ape-cart-summary > p {
  margin: 0 0 24px;
  color: var(--icc-ape-copy);
  font-size: 13px;
  line-height: 1.55;
}

.icc-ape-cart-summary .icc-ape-text-link {
  margin-top: 17px;
}

/* Checkout */
.icc-ape-checkout-shell {
  /* Keep the admissions hero visually connected to the global ICC header. */
  margin-top: 0 !important;
  padding: clamp(20px, 2.2vw, 30px) 0 clamp(60px, 7vw, 92px) !important;
}

body.icc-ape-checkout #primary.icc-ape-checkout-shell,
body.icc-ape-thankyou #primary.icc-ape-checkout-shell {
  margin-block-start: 0 !important;
}

.icc-ape-checkout-container {
  max-width: 1180px;
}

.icc-ape-checkout-container > .woocommerce {
  width: 100%;
}

.icc-ape-checkout-intro {
  position: relative;
  overflow: hidden;
  margin-bottom: 28px;
  padding: clamp(30px, 4vw, 46px);
  border-radius: var(--icc-ape-radius);
  color: #fff;
  background:
    radial-gradient(circle at 90% 10%, rgba(29, 109, 164, .3), transparent 27%),
    linear-gradient(135deg, var(--icc-ape-navy-deep), var(--icc-ape-navy));
  box-shadow: 0 18px 42px rgba(5, 40, 70, .14);
}

.icc-ape-checkout-intro::after {
  content: "";
  position: absolute;
  top: -120px;
  right: -60px;
  width: 340px;
  height: 340px;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 50%;
  pointer-events: none;
}

.icc-ape-checkout-intro > div {
  position: relative;
  z-index: 1;
  max-width: 760px;
}

.icc-ape-checkout-intro h1 {
  margin: 0;
  color: #fff;
  font-size: clamp(2rem, 4vw, 3.7rem);
  font-weight: 760;
  line-height: 1.03;
  letter-spacing: -.045em;
}

.icc-ape-checkout-intro p {
  max-width: 720px;
  margin: 16px 0 0;
  color: #c5d5e2;
  font-size: 15px;
  line-height: 1.7;
}

.icc-ape-checkout-intro .icc-ape-progress {
  position: relative;
  z-index: 1;
  max-width: 760px;
}

.icc-ape-checkout-container .woocommerce-notices-wrapper,
.icc-ape-checkout-container .woocommerce-form-coupon-toggle,
.icc-ape-checkout-container .woocommerce-form-login-toggle {
  margin-bottom: 18px;
}

.icc-ape-checkout-container .woocommerce-error,
.icc-ape-checkout-container .woocommerce-info,
.icc-ape-checkout-container .woocommerce-message {
  margin: 0 0 18px !important;
  padding: 15px 18px 15px 48px !important;
  border: 1px solid #d7e2ea !important;
  border-top: 0 !important;
  border-radius: 12px !important;
  color: var(--icc-ape-ink) !important;
  background: #fff !important;
  box-shadow: 0 9px 22px rgba(5,40,70,.06) !important;
  font-size: 13px !important;
  line-height: 1.55 !important;
}

.icc-ape-checkout-container form.checkout {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(360px, .82fr) !important;
  gap: 28px !important;
  align-items: start !important;
}

.icc-ape-checkout-container form.checkout > .col2-set,
.icc-ape-checkout-container form.checkout > #order_review_heading,
.icc-ape-checkout-container form.checkout > #order_review {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
}

.icc-ape-checkout-container form.checkout > .col2-set {
  grid-column: 1;
  grid-row: 1 / span 2;
  padding: clamp(24px, 3vw, 34px);
  border: 1px solid #d9e3ea;
  border-radius: var(--icc-ape-radius);
  background: #fff;
  box-shadow: 0 15px 36px rgba(5,40,70,.08);
}

.icc-ape-checkout-container .col2-set .col-1,
.icc-ape-checkout-container .col2-set .col-2 {
  float: none !important;
  width: 100% !important;
}

.icc-ape-checkout-container .col2-set .col-2 {
  display: none !important;
}

.icc-ape-checkout-container .woocommerce-billing-fields > h3 {
  margin: 0 0 8px !important;
  color: var(--icc-ape-navy-deep) !important;
  font-size: 24px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  letter-spacing: -.025em !important;
}

.icc-ape-checkout-container .woocommerce-billing-fields > h3::after {
  content: "Use the same email and phone number you used for your ICC application.";
  display: block;
  max-width: 600px;
  margin-top: 8px;
  color: var(--icc-ape-copy);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.55;
  letter-spacing: 0;
}

.icc-ape-checkout-container .woocommerce-billing-fields__field-wrapper {
  display: flow-root;
  margin-top: 24px;
}

.icc-ape-checkout-container .form-row {
  margin: 0 0 17px !important;
  padding: 0 !important;
}

.icc-ape-checkout-container .form-row label {
  display: block !important;
  margin: 0 0 7px !important;
  color: var(--icc-ape-navy) !important;
  font-size: 12px !important;
  font-weight: 750 !important;
  line-height: 1.35 !important;
}

.icc-ape-checkout-container .form-row .required {
  color: var(--icc-ape-red) !important;
}

.icc-ape-checkout-container .input-text,
.icc-ape-checkout-container input[type="text"],
.icc-ape-checkout-container input[type="email"],
.icc-ape-checkout-container input[type="tel"],
.icc-ape-checkout-container select,
.icc-ape-checkout-container .select2-container .select2-selection--single {
  width: 100% !important;
  min-height: 52px !important;
  margin: 0 !important;
  padding: 0 14px !important;
  border: 1px solid #cfdbe4 !important;
  border-radius: 10px !important;
  outline: 0 !important;
  color: var(--icc-ape-ink) !important;
  background: #fbfcfd !important;
  box-shadow: none !important;
  font-family: inherit !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease !important;
}

.icc-ape-checkout-container .input-text:focus,
.icc-ape-checkout-container input[type="text"]:focus,
.icc-ape-checkout-container input[type="email"]:focus,
.icc-ape-checkout-container input[type="tel"]:focus,
.icc-ape-checkout-container select:focus {
  border-color: var(--icc-ape-navy) !important;
  background: #fff !important;
  box-shadow: 0 0 0 4px rgba(5,40,70,.08) !important;
}

.icc-ape-checkout-container form.checkout > #order_review_heading {
  grid-column: 2;
  grid-row: 1;
  align-self: end;
  padding: 0 5px;
  color: var(--icc-ape-navy-deep) !important;
  font-size: 22px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  letter-spacing: -.025em !important;
}

.icc-ape-checkout-container form.checkout > #order_review_heading::before {
  content: "Payment summary";
  font-size: inherit;
}

.icc-ape-checkout-container form.checkout > #order_review_heading {
  font-size: 0 !important;
}

.icc-ape-checkout-container form.checkout > #order_review_heading::before {
  font-size: 22px !important;
}

.icc-ape-checkout-container form.checkout > #order_review {
  position: sticky;
  top: 92px;
  grid-column: 2;
  grid-row: 2;
  padding: clamp(23px, 2.6vw, 30px) !important;
  border: 1px solid #d9e3ea;
  border-radius: var(--icc-ape-radius);
  background: #fff;
  box-shadow: var(--icc-ape-shadow);
}

.icc-ape-checkout-container .woocommerce-checkout-review-order-table {
  width: 100% !important;
  margin: 0 0 22px !important;
  border: 0 !important;
  border-collapse: collapse !important;
  background: transparent !important;
}

.icc-ape-checkout-container .woocommerce-checkout-review-order-table th,
.icc-ape-checkout-container .woocommerce-checkout-review-order-table td {
  padding: 12px 0 !important;
  border: 0 !important;
  border-bottom: 1px solid #e6edf2 !important;
  color: var(--icc-ape-ink) !important;
  background: transparent !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
}

.icc-ape-checkout-container .woocommerce-checkout-review-order-table th {
  color: var(--icc-ape-copy) !important;
  font-weight: 650 !important;
}

.icc-ape-checkout-container .woocommerce-checkout-review-order-table td:last-child,
.icc-ape-checkout-container .woocommerce-checkout-review-order-table th:last-child {
  text-align: right !important;
}

.icc-ape-checkout-container .woocommerce-checkout-review-order-table .order-total th,
.icc-ape-checkout-container .woocommerce-checkout-review-order-table .order-total td {
  padding-top: 17px !important;
  border-bottom: 0 !important;
  color: var(--icc-ape-navy-deep) !important;
  font-size: 16px !important;
  font-weight: 800 !important;
}

.icc-ape-checkout-container #payment {
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
}

.icc-ape-checkout-container #payment ul.payment_methods {
  margin: 0 !important;
  padding: 0 0 17px !important;
  border-bottom: 1px solid #e5edf2 !important;
  list-style: none !important;
}

.icc-ape-checkout-container #payment ul.payment_methods li {
  margin: 0 !important;
  padding: 14px !important;
  border: 1px solid #dce5ec;
  border-radius: 11px;
  background: #f8fafc;
}

.icc-ape-checkout-container #payment ul.payment_methods li + li {
  margin-top: 9px !important;
}

.icc-ape-checkout-container #payment ul.payment_methods li label {
  color: var(--icc-ape-navy-deep) !important;
  font-size: 13px !important;
  font-weight: 800 !important;
}

.icc-ape-checkout-container #payment .payment_box {
  margin: 12px 0 0 !important;
  padding: 12px !important;
  border-radius: 8px !important;
  color: var(--icc-ape-copy) !important;
  background: #fff !important;
  font-size: 11px !important;
  line-height: 1.55 !important;
}

.icc-ape-checkout-container #payment .payment_box::before {
  display: none !important;
}

.icc-ape-checkout-container #payment .place-order {
  margin: 0 !important;
  padding: 18px 0 0 !important;
}

.icc-ape-checkout-container #payment #place_order {
  width: 100% !important;
  min-height: 56px !important;
  float: none !important;
  margin: 0 !important;
  padding: 14px 17px !important;
  border: 1px solid var(--icc-ape-red) !important;
  border-radius: 11px !important;
  color: #fff !important;
  background: linear-gradient(145deg, var(--icc-ape-red), var(--icc-ape-red-dark)) !important;
  box-shadow: 0 13px 27px rgba(227,27,54,.22) !important;
  font-family: inherit !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
  text-transform: none !important;
  cursor: pointer !important;
}

.icc-ape-checkout-container #payment #place_order:hover {
  transform: translateY(-2px);
  box-shadow: 0 17px 32px rgba(227,27,54,.3) !important;
}

.icc-ape-checkout-container #payment .woocommerce-privacy-policy-text,
.icc-ape-checkout-container #payment .form-row.terms {
  color: var(--icc-ape-copy) !important;
  font-size: 10px !important;
  line-height: 1.55 !important;
}

.icc-ape-checkout-container #payment::after {
  content: "Secure payment · Payment confirmation · Admissions processing";
  display: block;
  margin-top: 14px;
  color: var(--icc-ape-muted);
  font-size: 9.5px;
  font-weight: 650;
  line-height: 1.4;
  text-align: center;
  letter-spacing: .025em;
}

/* Thank-you / payment status */
body.icc-ape-thankyou .icc-ape-checkout-shell {
  padding-block: clamp(54px, 7vw, 92px);
}

body.icc-ape-thankyou .icc-ape-checkout-container {
  max-width: 980px;
}

body.icc-ape-thankyou .woocommerce-order > .woocommerce-notice,
body.icc-ape-thankyou .woocommerce-order > .woocommerce-order-overview,
body.icc-ape-thankyou .woocommerce-order-details,
body.icc-ape-thankyou .woocommerce-customer-details,
body.icc-ape-thankyou .woocommerce-order-downloads {
  display: none !important;
}

.icc-ape-confirmation {
  position: relative;
  padding: clamp(34px, 5vw, 58px);
  overflow: hidden;
  border: 1px solid #d9e3ea;
  border-radius: 26px;
  background: #fff;
  box-shadow: 0 24px 58px rgba(5,40,70,.12);
}

.icc-ape-confirmation::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--icc-ape-success), #1b81b7);
}

.icc-ape-confirmation.is-pending::before {
  background: linear-gradient(90deg, var(--icc-ape-red), #d98b21);
}

.icc-ape-confirmation__mark {
  width: 62px;
  height: 62px;
  display: grid;
  place-items: center;
  margin-bottom: 22px;
  border-radius: 50%;
  color: #fff;
  background: var(--icc-ape-success);
  box-shadow: 0 12px 26px rgba(23,120,90,.22);
  font-size: 28px;
  font-weight: 800;
}

.icc-ape-confirmation.is-pending .icc-ape-confirmation__mark {
  background: #d98b21;
  box-shadow: 0 12px 26px rgba(217,139,33,.22);
}

.icc-ape-confirmation h1 {
  max-width: 760px;
  margin: 0;
  color: var(--icc-ape-navy-deep);
  font-size: clamp(2.2rem, 4.5vw, 4.1rem);
  font-weight: 760;
  line-height: 1.02;
  letter-spacing: -.05em;
}

.icc-ape-confirmation__lead {
  max-width: 760px;
  margin: 19px 0 0;
  color: var(--icc-ape-copy);
  font-size: 15px;
  line-height: 1.72;
}

.icc-ape-confirmation__summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  margin-top: 30px;
  overflow: hidden;
  border: 1px solid #dce5ec;
  border-radius: 16px;
  background: #dce5ec;
}

.icc-ape-confirmation__summary > div {
  min-width: 0;
  padding: 17px 19px;
  background: #f9fbfc;
}

.icc-ape-confirmation__summary span,
.icc-ape-confirmation__summary strong {
  display: block;
}

.icc-ape-confirmation__summary span {
  margin-bottom: 5px;
  color: var(--icc-ape-muted);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.icc-ape-confirmation__summary strong {
  overflow-wrap: anywhere;
  color: var(--icc-ape-navy-deep);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.4;
}

.icc-ape-next-steps {
  margin-top: 31px;
  padding-top: 27px;
  border-top: 1px solid #e2e9ef;
}

.icc-ape-next-steps__label {
  display: block;
  margin-bottom: 14px;
  color: var(--icc-ape-red);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.icc-ape-next-steps ol {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 13px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.icc-ape-next-steps li {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  padding: 16px;
  border: 1px solid #e0e8ee;
  border-radius: 12px;
  background: #fbfcfd;
}

.icc-ape-next-steps li > b {
  width: 29px;
  height: 29px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 50%;
  color: #fff;
  background: var(--icc-ape-navy);
  font-size: 10px;
}

.icc-ape-next-steps li span,
.icc-ape-next-steps li strong,
.icc-ape-next-steps li small {
  display: block;
}

.icc-ape-next-steps li strong {
  margin-bottom: 4px;
  color: var(--icc-ape-navy-deep);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.35;
}

.icc-ape-next-steps li small {
  color: var(--icc-ape-copy);
  font-size: 10px;
  line-height: 1.5;
}

.icc-ape-confirmation__actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 11px 16px;
  margin-top: 30px;
}

/* Block checkout fallback styling. If ICC later switches the checkout page to blocks,
   the payment flow remains visually coherent even though block field configuration is
   managed by WooCommerce itself. */
body.icc-ape-checkout .wc-block-checkout,
body.icc-ape-checkout .wp-block-woocommerce-checkout {
  width: 100% !important;
  max-width: none !important;
}

body.icc-ape-checkout .wc-block-components-sidebar-layout {
  gap: 28px !important;
}

body.icc-ape-checkout .wc-block-components-sidebar,
body.icc-ape-checkout .wc-block-components-main {
  padding: 26px !important;
  border: 1px solid #d9e3ea !important;
  border-radius: var(--icc-ape-radius) !important;
  background: #fff !important;
  box-shadow: 0 15px 36px rgba(5,40,70,.08) !important;
}

body.icc-ape-checkout .wc-block-components-button:not(.is-link) {
  min-height: 54px !important;
  border-radius: 11px !important;
  color: #fff !important;
  background: var(--icc-ape-red) !important;
  font-weight: 800 !important;
  text-transform: none !important;
}

/* Responsive */
@media (max-width: 1024px) {
  .icc-ape-hero__grid,
  .icc-ape-cart-panel__inner {
    grid-template-columns: 1fr;
  }

  .icc-ape-hero__grid {
    min-height: 0;
    gap: 36px;
  }

  .icc-ape-payment-card,
  .icc-ape-cart-summary {
    max-width: 720px;
  }

  .icc-ape-checkout-container form.checkout {
    grid-template-columns: 1fr !important;
  }

  .icc-ape-checkout-container form.checkout > .col2-set,
  .icc-ape-checkout-container form.checkout > #order_review_heading,
  .icc-ape-checkout-container form.checkout > #order_review {
    grid-column: 1 !important;
    grid-row: auto !important;
  }

  .icc-ape-checkout-container form.checkout > #order_review_heading {
    margin-top: 4px !important;
  }

  .icc-ape-checkout-container form.checkout > #order_review {
    position: static;
  }
}

@media (max-width: 767px) {
  .icc-ape-wrap {
    width: min(calc(100% - 30px), 1320px);
  }

  .icc-ape-hero__grid {
    padding-block: 42px 46px;
  }

  .icc-ape-hero__copy h1 {
    font-size: clamp(2.25rem, 11vw, 3.5rem);
    line-height: 1.01;
  }

  .icc-ape-hero__copy > p {
    margin-top: 18px;
    font-size: 14px;
    line-height: 1.7;
  }

  .icc-ape-payment-card {
    padding: 23px 19px;
    border-radius: 17px;
  }

  .icc-ape-progress {
    display: flex;
    overflow-x: auto;
    gap: 14px;
    margin-top: 26px;
    padding-bottom: 3px;
    scrollbar-width: none;
  }

  .icc-ape-progress::-webkit-scrollbar {
    display: none;
  }

  .icc-ape-progress__step {
    min-width: max-content;
    padding-right: 0;
  }

  .icc-ape-progress__step::after {
    display: none;
  }

  .icc-ape-progress__step strong {
    font-size: 10px;
  }

  .icc-ape-support-strip__grid {
    grid-template-columns: 1fr;
    gap: 0;
    padding-block: 18px;
  }

  .icc-ape-support-strip__grid > div,
  .icc-ape-support-strip__grid > div:first-child,
  .icc-ape-support-strip__grid > div:last-child {
    padding: 15px 0;
    border-right: 0;
    border-bottom: 1px solid #e5ebf0;
  }

  .icc-ape-support-strip__grid > div:last-child {
    border-bottom: 0;
  }

  .icc-ape-cart-panel {
    padding: 43px 0 52px;
  }

  .icc-ape-cart-panel__inner {
    gap: 30px;
  }

  .icc-ape-cart-panel__copy h1 {
    font-size: clamp(2.15rem, 10vw, 3rem);
  }

  .icc-ape-cart-panel__copy > p {
    font-size: 14px;
    line-height: 1.7;
  }

  .icc-ape-cart-summary {
    padding: 23px 19px;
    border-radius: 17px;
  }

  .icc-ape-checkout-shell {
    padding: 14px 0 52px !important;
  }

  .icc-ape-checkout-intro {
    margin-bottom: 19px;
    padding: 27px 20px;
    border-radius: 17px;
  }

  .icc-ape-checkout-intro h1 {
    font-size: clamp(2rem, 9vw, 2.8rem);
  }

  .icc-ape-checkout-intro p {
    font-size: 13px;
    line-height: 1.65;
  }

  .icc-ape-checkout-container form.checkout {
    gap: 17px !important;
  }

  .icc-ape-checkout-container form.checkout > .col2-set,
  .icc-ape-checkout-container form.checkout > #order_review {
    padding: 21px 17px !important;
    border-radius: 16px;
  }

  .icc-ape-checkout-container .woocommerce-billing-fields > h3 {
    font-size: 21px !important;
  }

  .icc-ape-checkout-container .form-row-first,
  .icc-ape-checkout-container .form-row-last {
    float: none !important;
    width: 100% !important;
  }

  .icc-ape-checkout-container form.checkout > #order_review_heading::before {
    font-size: 20px !important;
  }

  .icc-ape-confirmation {
    padding: 28px 19px;
    border-radius: 18px;
  }

  .icc-ape-confirmation h1 {
    font-size: clamp(2.05rem, 10vw, 3rem);
  }

  .icc-ape-confirmation__lead {
    font-size: 13px;
    line-height: 1.68;
  }

  .icc-ape-confirmation__summary {
    grid-template-columns: 1fr;
  }

  .icc-ape-next-steps ol {
    grid-template-columns: 1fr;
  }

  .icc-ape-confirmation__actions {
    align-items: stretch;
    flex-direction: column;
  }

  .icc-ape-confirmation__actions .icc-ape-button,
  .icc-ape-confirmation__actions .icc-ape-text-link {
    width: 100%;
    justify-content: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .icc-ape-button,
  .icc-ape-button span[aria-hidden="true"],
  .icc-ape-checkout-container #payment #place_order {
    transition: none !important;
  }
}

/* v1.0.2 — CartFlows-aware application checkout */
body.icc-ape-checkout { background:#f5f8fb !important; }
body.icc-ape-checkout .icc-footer__cta { display:none !important; }
body.icc-ape-checkout .icc-ape-checkout-container form.checkout { display:grid !important; grid-template-columns:minmax(0,1.06fr) minmax(390px,.82fr) !important; gap:28px !important; align-items:start !important; width:100% !important; margin:0 !important; padding:0 !important; background:transparent !important; border:0 !important; box-shadow:none !important; }
body.icc-ape-checkout .icc-ape-checkout-container form.checkout > .wcf-col2-set,
body.icc-ape-checkout .icc-ape-checkout-container form.checkout > #customer_details,
body.icc-ape-checkout .icc-ape-checkout-container form.checkout > .col2-set { grid-column:1 !important; grid-row:1 !important; float:none !important; width:100% !important; margin:0 !important; padding:clamp(26px,3vw,36px) !important; border:1px solid #dce6ed !important; border-radius:20px !important; background:#fff !important; box-shadow:0 16px 44px rgba(4,39,69,.08) !important; }
body.icc-ape-checkout .icc-ape-checkout-container form.checkout > .wcf-order-wrap { position:sticky !important; top:96px !important; grid-column:2 !important; grid-row:1 !important; width:100% !important; margin:0 !important; padding:clamp(24px,2.5vw,30px) !important; border:1px solid #dce6ed !important; border-radius:20px !important; background:#fff !important; box-shadow:0 18px 48px rgba(4,39,69,.1) !important; }
body.icc-ape-checkout .wcf-col-1, body.icc-ape-checkout .wcf-col-2, body.icc-ape-checkout .col-1, body.icc-ape-checkout .col-2 { float:none !important; width:100% !important; margin:0 !important; }
body.icc-ape-checkout .wcf-col-2, body.icc-ape-checkout .woocommerce-shipping-fields, body.icc-ape-checkout .woocommerce-additional-fields, body.icc-ape-checkout .wcf-customer-shipping, body.icc-ape-checkout .wcf-bump-order-grid-wrap, body.icc-ape-checkout .wcf-all-bump-order-wrap { display:none !important; }
body.icc-ape-checkout #billing_fields_heading, body.icc-ape-checkout #order_review_heading { margin:0 !important; padding:0 !important; color:#042c50 !important; background:transparent !important; border:0 !important; font-size:24px !important; font-weight:800 !important; line-height:1.15 !important; letter-spacing:-.03em !important; text-transform:none !important; }
body.icc-ape-checkout #order_review_heading { margin-bottom:18px !important; }
body.icc-ape-checkout .icc-ape-fields-note { max-width:560px; margin:8px 0 24px !important; color:#617284 !important; font-size:13px !important; line-height:1.55 !important; }
body.icc-ape-checkout .woocommerce-billing-fields > h3::after { content:none !important; }
body.icc-ape-checkout .woocommerce-billing-fields__field-wrapper { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:17px 16px !important; margin:0 !important; }
body.icc-ape-checkout .woocommerce-billing-fields__field-wrapper .form-row { float:none !important; width:100% !important; margin:0 !important; padding:0 !important; }
body.icc-ape-checkout .form-row label { display:block !important; margin:0 0 8px !important; color:#173e5f !important; font-size:12px !important; font-weight:750 !important; }
body.icc-ape-checkout .woocommerce-input-wrapper { display:block !important; width:100% !important; }
body.icc-ape-checkout input.input-text, body.icc-ape-checkout input[type=text], body.icc-ape-checkout input[type=email], body.icc-ape-checkout input[type=tel] { display:block !important; width:100% !important; height:54px !important; min-height:54px !important; margin:0 !important; padding:0 15px !important; border:1px solid #cfdbe4 !important; border-radius:11px !important; outline:0 !important; color:#102f49 !important; background:#f8fafc !important; box-shadow:none !important; font-size:14px !important; font-weight:600 !important; appearance:none !important; -webkit-appearance:none !important; }
body.icc-ape-checkout input.input-text:focus, body.icc-ape-checkout input[type=text]:focus, body.icc-ape-checkout input[type=email]:focus, body.icc-ape-checkout input[type=tel]:focus { border-color:#0c4c7a !important; background:#fff !important; box-shadow:0 0 0 4px rgba(5,40,70,.08) !important; }
body.icc-ape-checkout .wcf-order-wrap #order_review { position:static !important; width:100% !important; margin:0 !important; padding:0 !important; border:0 !important; background:transparent !important; box-shadow:none !important; }
body.icc-ape-checkout .icc-ape-purpose { margin:0 0 18px; padding:16px 17px; border:1px solid #e1e8ee; border-radius:13px; background:#f7fafc; }
body.icc-ape-checkout .icc-ape-purpose span { display:block; margin-bottom:5px; color:#e31b36; font-size:9px; font-weight:850; letter-spacing:.13em; }
body.icc-ape-checkout .icc-ape-purpose strong { display:block; color:#052846; font-size:14px; font-weight:800; }
body.icc-ape-checkout .icc-ape-purpose small { display:block; margin-top:4px; color:#6d7e8e; font-size:11px; line-height:1.5; }
body.icc-ape-checkout table.shop_table.woocommerce-checkout-review-order-table { width:100% !important; margin:0 0 21px !important; border:0 !important; border-collapse:collapse !important; background:transparent !important; box-shadow:none !important; }
body.icc-ape-checkout table.shop_table thead { display:none !important; }
body.icc-ape-checkout table.shop_table th, body.icc-ape-checkout table.shop_table td { padding:12px 0 !important; border:0 !important; border-bottom:1px solid #e5edf2 !important; color:#233f56 !important; background:transparent !important; font-size:13px !important; }
body.icc-ape-checkout table.shop_table td:last-child, body.icc-ape-checkout table.shop_table th:last-child { text-align:right !important; white-space:nowrap !important; }
body.icc-ape-checkout .wcf-product-thumbnail { display:none !important; }
body.icc-ape-checkout .wcf-product-name { color:#052846 !important; font-size:14px !important; font-weight:800 !important; }
body.icc-ape-checkout .icc-ape-hidden-row, body.icc-ape-checkout .product-quantity { display:none !important; }
body.icc-ape-checkout table.shop_table .order-total th, body.icc-ape-checkout table.shop_table .order-total td { padding-top:17px !important; padding-bottom:0 !important; border-bottom:0 !important; color:#052846 !important; font-size:17px !important; font-weight:850 !important; }
body.icc-ape-checkout #payment.woocommerce-checkout-payment { margin:0 !important; padding:0 !important; border:0 !important; background:transparent !important; }
body.icc-ape-checkout #payment ul.payment_methods { margin:0 !important; padding:0 !important; border:0 !important; list-style:none !important; }
body.icc-ape-checkout #payment li.wc_payment_method { margin:0 0 16px !important; padding:16px !important; border:1px solid #dce5ec !important; border-radius:13px !important; background:#f8fafc !important; }
body.icc-ape-checkout #payment li.wc_payment_method label { display:flex !important; align-items:center !important; justify-content:space-between !important; gap:15px !important; margin:0 !important; color:#052846 !important; font-size:13px !important; font-weight:800 !important; }
body.icc-ape-checkout #payment li.wc_payment_method label img { width:auto !important; max-width:138px !important; max-height:28px !important; margin:0 0 0 auto !important; object-fit:contain !important; }
body.icc-ape-checkout #payment .payment_box { margin:12px 0 0 !important; padding:12px 13px !important; border:0 !important; border-radius:9px !important; color:#617284 !important; background:#fff !important; box-shadow:none !important; font-size:11px !important; line-height:1.55 !important; }
body.icc-ape-checkout #payment .payment_box::before { display:none !important; }
body.icc-ape-checkout .woocommerce-terms-and-conditions-wrapper { margin:0 0 16px !important; padding:0 !important; }
body.icc-ape-checkout .woocommerce-privacy-policy-text, body.icc-ape-checkout .woocommerce-privacy-policy-text p { margin:0 !important; color:#718292 !important; font-size:10px !important; line-height:1.55 !important; }
body.icc-ape-checkout #payment .place-order { margin:0 !important; padding:0 !important; }
body.icc-ape-checkout #place_order { width:100% !important; min-height:58px !important; float:none !important; margin:0 !important; padding:15px 18px !important; border:1px solid #e31b36 !important; border-radius:12px !important; color:#fff !important; background:linear-gradient(135deg,#e31b36 0%,#c8112d 100%) !important; box-shadow:0 14px 28px rgba(227,27,54,.24) !important; font-size:14px !important; font-weight:850 !important; text-transform:none !important; cursor:pointer !important; }
body.icc-ape-checkout #place_order:hover { transform:translateY(-2px) !important; box-shadow:0 18px 34px rgba(227,27,54,.31) !important; }
body.icc-ape-checkout .icc-ape-security-note { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:6px 14px; margin-top:13px; color:#7a8997; font-size:9.5px; font-weight:650; }
body.icc-ape-checkout .icc-ape-security-note span { position:relative; }
body.icc-ape-checkout .icc-ape-security-note span + span::before { content:"•"; position:absolute; left:-9px; color:#e31b36; }
body.icc-ape-checkout #payment::after { content:none !important; }
@media(max-width:980px){ body.icc-ape-checkout .icc-ape-checkout-container form.checkout{grid-template-columns:1fr !important;gap:18px !important} body.icc-ape-checkout .icc-ape-checkout-container form.checkout>.wcf-col2-set,body.icc-ape-checkout .icc-ape-checkout-container form.checkout>#customer_details,body.icc-ape-checkout .icc-ape-checkout-container form.checkout>.col2-set,body.icc-ape-checkout .icc-ape-checkout-container form.checkout>.wcf-order-wrap{grid-column:1 !important;grid-row:auto !important} body.icc-ape-checkout .icc-ape-checkout-container form.checkout>.wcf-order-wrap{position:static !important} }
@media(max-width:620px){ body.icc-ape-checkout .icc-ape-checkout-container form.checkout>.wcf-col2-set,body.icc-ape-checkout .icc-ape-checkout-container form.checkout>#customer_details,body.icc-ape-checkout .icc-ape-checkout-container form.checkout>.col2-set,body.icc-ape-checkout .icc-ape-checkout-container form.checkout>.wcf-order-wrap{padding:20px 16px !important;border-radius:16px !important} body.icc-ape-checkout .woocommerce-billing-fields__field-wrapper{grid-template-columns:1fr !important;gap:15px !important} body.icc-ape-checkout #billing_fields_heading,body.icc-ape-checkout #order_review_heading{font-size:21px !important} body.icc-ape-checkout #payment li.wc_payment_method label{align-items:flex-start !important;flex-direction:column !important} body.icc-ape-checkout #payment li.wc_payment_method label img{margin-left:0 !important} }


/* v1.0.3 — CartFlows applicant-card layout hardening.
   CartFlows keeps width/flex rules on .wcf-col-* and .form-row elements even
   after the checkout is recomposed. Reset that scaffold so the four essential
   applicant fields own the full card width instead of collapsing into a narrow
   vertical strip. */
body.icc-ape-checkout .icc-ape-checkout-form #customer_details.icc-ape-applicant-card,
body.icc-ape-checkout .icc-ape-checkout-form #customer_details.wcf-col2-set,
body.icc-ape-checkout .icc-ape-checkout-form .icc-ape-applicant-card.wcf-col2-set {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: clamp(26px, 3vw, 34px) !important;
  float: none !important;
  clear: both !important;
  flex: none !important;
}

body.icc-ape-checkout .icc-ape-checkout-form #customer_details .wcf-col-1,
body.icc-ape-checkout .icc-ape-checkout-form #customer_details .col-1,
body.icc-ape-checkout .icc-ape-checkout-form #customer_details .woocommerce-billing-fields,
body.icc-ape-checkout .icc-ape-checkout-form #customer_details .woocommerce-billing-fields__field-wrapper {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  clear: both !important;
  flex: none !important;
}

body.icc-ape-checkout .icc-ape-checkout-form #customer_details .wcf-col-1,
body.icc-ape-checkout .icc-ape-checkout-form #customer_details .col-1 {
  display: block !important;
  flex-basis: 100% !important;
}

body.icc-ape-checkout .icc-ape-checkout-form #customer_details .wcf-col-2,
body.icc-ape-checkout .icc-ape-checkout-form #customer_details .col-2,
body.icc-ape-checkout .icc-ape-checkout-form .wcf-customer-shipping,
body.icc-ape-checkout .icc-ape-checkout-form .woocommerce-shipping-fields,
body.icc-ape-checkout .icc-ape-checkout-form .woocommerce-additional-fields {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

body.icc-ape-checkout .icc-ape-checkout-form #billing_fields_heading {
  width: 100% !important;
  max-width: none !important;
  margin: 0 0 8px !important;
}

/* v1.0.2 added real helper text in the DOM. Avoid also rendering the older
   pseudo-element helper, which created duplicate/competing copy. */
body.icc-ape-checkout .icc-ape-checkout-form #billing_fields_heading::after {
  content: none !important;
  display: none !important;
}

body.icc-ape-checkout .icc-ape-checkout-form .icc-ape-fields-note {
  display: block !important;
  width: 100% !important;
  max-width: 520px !important;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--icc-ape-copy) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  line-height: 1.6 !important;
  letter-spacing: 0 !important;
  white-space: normal !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
}

body.icc-ape-checkout .icc-ape-checkout-form #customer_details .woocommerce-billing-fields__field-wrapper {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 18px 16px !important;
  margin-top: 24px !important;
  align-items: start !important;
}

body.icc-ape-checkout .icc-ape-checkout-form #customer_details .woocommerce-billing-fields__field-wrapper > .form-row,
body.icc-ape-checkout .icc-ape-checkout-form #billing_first_name_field,
body.icc-ape-checkout .icc-ape-checkout-form #billing_last_name_field,
body.icc-ape-checkout .icc-ape-checkout-form #billing_email_field,
body.icc-ape-checkout .icc-ape-checkout-form #billing_phone_field {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  clear: none !important;
  flex: none !important;
}

body.icc-ape-checkout .icc-ape-checkout-form #customer_details .woocommerce-input-wrapper {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
}

body.icc-ape-checkout .icc-ape-checkout-form #customer_details .form-row label {
  width: auto !important;
  max-width: none !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
}

body.icc-ape-checkout .icc-ape-checkout-form #customer_details input.input-text {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  min-height: 54px !important;
}

/* Keep the left card visually balanced with the payment card without forcing
   a synthetic minimum height. */
body.icc-ape-checkout .icc-ape-checkout-form .icc-ape-applicant-card {
  align-self: start !important;
}

@media (max-width: 767px) {
  body.icc-ape-checkout .icc-ape-checkout-form #customer_details.icc-ape-applicant-card,
  body.icc-ape-checkout .icc-ape-checkout-form #customer_details.wcf-col2-set {
    padding: 22px 18px !important;
  }

  body.icc-ape-checkout .icc-ape-checkout-form #customer_details .woocommerce-billing-fields__field-wrapper {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 15px !important;
    margin-top: 20px !important;
  }

  body.icc-ape-checkout .icc-ape-checkout-form .icc-ape-fields-note {
    max-width: none !important;
    font-size: 12.5px !important;
  }
}


/* v1.0.4 — Premium Paystack handoff / order-pay state.
   WooCommerce Paystack inserts an intermediate receipt screen after the
   checkout order is created. Keep the gateway mechanics intact while turning
   its raw order-details + Pay Now markup into an ICC admissions payment step. */
body.icc-ape-handoff .icc-ape-checkout-shell {
  padding-bottom: clamp(48px, 6vw, 78px);
}

body.icc-ape-handoff .icc-ape-checkout-intro {
  margin-bottom: 22px;
}

body.icc-ape-handoff .icc-ape-checkout-container > .woocommerce,
body.icc-ape-handoff .icc-ape-paystack-receipt {
  width: min(100%, 920px) !important;
  margin: 0 auto !important;
  padding: 0 !important;
  background: transparent !important;
}

body.icc-ape-handoff .icc-ape-paystack-receipt > .woocommerce-notices-wrapper:empty {
  display: none !important;
}

body.icc-ape-handoff .icc-ape-paystack-receipt ul.order_details {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 0 !important;
  width: 100% !important;
  margin: 0 0 18px !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 1px solid #dce6ed !important;
  border-radius: 18px !important;
  background: #fff !important;
  box-shadow: 0 14px 38px rgba(4,39,69,.07) !important;
  list-style: none !important;
}

body.icc-ape-handoff .icc-ape-paystack-receipt ul.order_details::before,
body.icc-ape-handoff .icc-ape-paystack-receipt ul.order_details::after {
  display: none !important;
  content: none !important;
}

body.icc-ape-handoff .icc-ape-paystack-receipt ul.order_details li {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  gap: 5px !important;
  float: none !important;
  width: auto !important;
  min-width: 0 !important;
  min-height: 82px !important;
  margin: 0 !important;
  padding: 17px 19px !important;
  border: 0 !important;
  border-right: 1px solid #e7edf2 !important;
  color: #052846 !important;
  background: #fff !important;
  font-size: 12px !important;
  line-height: 1.35 !important;
  text-transform: none !important;
}

body.icc-ape-handoff .icc-ape-paystack-receipt ul.order_details li:last-child {
  border-right: 0 !important;
}

body.icc-ape-handoff .icc-ape-receipt-label {
  display: block !important;
  color: #708191 !important;
  font-size: 9px !important;
  font-weight: 800 !important;
  letter-spacing: .09em !important;
  line-height: 1.35 !important;
  text-transform: uppercase !important;
}

body.icc-ape-handoff .icc-ape-receipt-value,
body.icc-ape-handoff .icc-ape-paystack-receipt ul.order_details li strong {
  display: block !important;
  margin: 0 !important;
  color: #052846 !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  line-height: 1.35 !important;
  letter-spacing: -.01em !important;
  text-transform: none !important;
  overflow-wrap: anywhere !important;
}

body.icc-ape-handoff #wc-paystack-form.icc-ape-paystack-card {
  position: relative !important;
  width: 100% !important;
  margin: 0 !important;
  padding: clamp(24px, 3.5vw, 34px) !important;
  overflow: hidden !important;
  border: 1px solid #d9e4ec !important;
  border-radius: 20px !important;
  background:
    radial-gradient(circle at 100% 0%, rgba(20,90,137,.08), transparent 27%),
    #fff !important;
  box-shadow: 0 20px 50px rgba(4,39,69,.10) !important;
}

body.icc-ape-handoff #wc-paystack-form.icc-ape-paystack-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 4px;
  height: 100%;
  background: #e31b36;
}

body.icc-ape-handoff .icc-ape-paystack-card__head {
  display: flex !important;
  align-items: center !important;
  gap: 13px !important;
  margin: 0 0 17px !important;
}

body.icc-ape-handoff .icc-ape-paystack-card__icon {
  width: 44px !important;
  height: 44px !important;
  display: grid !important;
  place-items: center !important;
  flex: 0 0 auto !important;
  border: 1px solid #d9e5ed !important;
  border-radius: 12px !important;
  color: #052846 !important;
  background: #f6f9fb !important;
}

body.icc-ape-handoff .icc-ape-paystack-card__icon svg {
  width: 22px !important;
  height: 22px !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 1.7 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}

body.icc-ape-handoff .icc-ape-paystack-card__head > span:last-child {
  display: flex !important;
  flex-direction: column !important;
  gap: 3px !important;
}

body.icc-ape-handoff .icc-ape-paystack-card__head small {
  color: #e31b36 !important;
  font-size: 9px !important;
  font-weight: 850 !important;
  letter-spacing: .12em !important;
  line-height: 1.3 !important;
}

body.icc-ape-handoff .icc-ape-paystack-card__head strong {
  color: #052846 !important;
  font-size: 19px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  letter-spacing: -.025em !important;
}

body.icc-ape-handoff #wc-paystack-form > p {
  max-width: 660px !important;
  margin: 0 0 22px !important;
  color: #5f7182 !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  line-height: 1.7 !important;
}

body.icc-ape-handoff #paystack_form {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: 11px !important;
  align-items: center !important;
  width: 100% !important;
  margin: 0 !important;
}

body.icc-ape-handoff #paystack_form form#order_review {
  display: none !important;
}

body.icc-ape-handoff #paystack-payment-button {
  grid-column: 1 !important;
  width: 100% !important;
  min-height: 58px !important;
  margin: 0 !important;
  padding: 15px 20px !important;
  border: 1px solid #e31b36 !important;
  border-radius: 12px !important;
  color: #fff !important;
  background: linear-gradient(135deg, #e31b36 0%, #c8112d 100%) !important;
  box-shadow: 0 14px 30px rgba(227,27,54,.24) !important;
  font-family: inherit !important;
  font-size: 14px !important;
  font-weight: 850 !important;
  line-height: 1.2 !important;
  text-transform: none !important;
  text-decoration: none !important;
  cursor: pointer !important;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease !important;
}

body.icc-ape-handoff #paystack-payment-button:hover,
body.icc-ape-handoff #paystack-payment-button:focus-visible {
  color: #fff !important;
  background: linear-gradient(135deg, #ef2341 0%, #cf1735 100%) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 18px 36px rgba(227,27,54,.31) !important;
}

body.icc-ape-handoff #paystack-cancel-payment-button {
  grid-column: 2 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 58px !important;
  margin: 0 !important;
  padding: 14px 18px !important;
  border: 1px solid #d7e1e9 !important;
  border-radius: 12px !important;
  color: #36536c !important;
  background: #fff !important;
  box-shadow: none !important;
  font-family: inherit !important;
  font-size: 12px !important;
  font-weight: 750 !important;
  line-height: 1.2 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

body.icc-ape-handoff #paystack-cancel-payment-button:hover,
body.icc-ape-handoff #paystack-cancel-payment-button:focus-visible {
  color: #052846 !important;
  border-color: #bfcdd8 !important;
  background: #f8fafc !important;
}

body.icc-ape-handoff .icc-ape-paystack-note {
  grid-column: 1 / -1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-wrap: wrap !important;
  gap: 6px 18px !important;
  margin-top: 3px !important;
  color: #7a8997 !important;
  font-size: 9.5px !important;
  font-weight: 650 !important;
  line-height: 1.4 !important;
}

body.icc-ape-handoff .icc-ape-paystack-note span {
  position: relative !important;
}

body.icc-ape-handoff .icc-ape-paystack-note span + span::before {
  content: "•";
  position: absolute;
  left: -11px;
  color: #e31b36;
}

body.icc-ape-handoff .icc-ape-paystack-receipt > .clear {
  display: none !important;
}

@media (max-width: 820px) {
  body.icc-ape-handoff .icc-ape-paystack-receipt ul.order_details {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.icc-ape-handoff .icc-ape-paystack-receipt ul.order_details li:nth-child(2) {
    border-right: 0 !important;
  }

  body.icc-ape-handoff .icc-ape-paystack-receipt ul.order_details li:nth-child(-n+2) {
    border-bottom: 1px solid #e7edf2 !important;
  }
}

@media (max-width: 560px) {
  body.icc-ape-handoff .icc-ape-checkout-intro--handoff h1 {
    font-size: clamp(1.95rem, 9.5vw, 2.55rem) !important;
  }

  body.icc-ape-handoff .icc-ape-paystack-receipt ul.order_details {
    grid-template-columns: 1fr !important;
    border-radius: 15px !important;
  }

  body.icc-ape-handoff .icc-ape-paystack-receipt ul.order_details li,
  body.icc-ape-handoff .icc-ape-paystack-receipt ul.order_details li:nth-child(2) {
    min-height: 0 !important;
    padding: 15px 17px !important;
    border-right: 0 !important;
    border-bottom: 1px solid #e7edf2 !important;
  }

  body.icc-ape-handoff .icc-ape-paystack-receipt ul.order_details li:last-child {
    border-bottom: 0 !important;
  }

  body.icc-ape-handoff #wc-paystack-form.icc-ape-paystack-card {
    padding: 22px 18px !important;
    border-radius: 16px !important;
  }

  body.icc-ape-handoff .icc-ape-paystack-card__head strong {
    font-size: 17px !important;
  }

  body.icc-ape-handoff #paystack_form {
    grid-template-columns: 1fr !important;
  }

  body.icc-ape-handoff #paystack-payment-button,
  body.icc-ape-handoff #paystack-cancel-payment-button {
    grid-column: 1 !important;
    width: 100% !important;
  }

  body.icc-ape-handoff .icc-ape-paystack-note {
    align-items: flex-start !important;
    justify-content: flex-start !important;
    flex-direction: column !important;
    gap: 7px !important;
  }

  body.icc-ape-handoff .icc-ape-paystack-note span {
    padding-left: 12px !important;
  }

  body.icc-ape-handoff .icc-ape-paystack-note span::before {
    content: "";
    position: absolute;
    left: 0;
    top: .55em;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: #e31b36;
  }

  body.icc-ape-handoff .icc-ape-paystack-note span + span::before {
    left: 0;
    color: transparent;
  }
}


/* v1.0.5 — Header-to-checkout spacing refinement.
 * CartFlows/Twenty Twenty-One can contribute page-level spacing around #primary.
 * Keep the premium admissions hero close to the global navigation while
 * preserving comfortable breathing room on desktop and mobile.
 */
body.icc-ape-checkout .icc-next-header ~ #primary.icc-ape-checkout-shell,
body.icc-ape-thankyou .icc-next-header ~ #primary.icc-ape-checkout-shell {
  margin-top: 0 !important;
}

/* v1.1.0 — verified application gate */
.icc-ape-verify-form{display:grid;gap:14px;margin-top:18px}
.icc-ape-verify-form label{display:grid;gap:7px;font-size:13px;font-weight:700;color:#17324c;text-align:left}
.icc-ape-verify-form input{box-sizing:border-box;width:100%;min-height:49px;padding:12px 14px;border:1px solid rgba(5,40,70,.16);border-radius:12px;background:#fff;color:#0b2740;font:inherit;font-size:16px;outline:0;transition:border-color .18s ease,box-shadow .18s ease}
.icc-ape-verify-form input:focus{border-color:#0a5ca8;box-shadow:0 0 0 3px rgba(10,92,168,.1)}
.icc-ape-verification-required{margin:14px 0 4px;padding:11px 13px;border-radius:11px;background:#fff5f6;color:#9f1930;font-size:13px;line-height:1.45;border:1px solid rgba(227,27,54,.14)}
.icc-ape-verification-privacy{margin:12px 0 16px!important;color:#607286!important;font-size:12px!important;line-height:1.55!important}
.icc-ape-verify-status{min-height:0;font-size:12px;line-height:1.5;color:#607286}
.icc-ape-verify-status.is-working{color:#315a7b}
.icc-ape-verify-status.is-error{padding:10px 12px;border-radius:10px;background:#fff5f6;color:#a31d32}
.icc-ape-verify-status.is-success{padding:10px 12px;border-radius:10px;background:#f0faf5;color:#17603c}
.icc-ape-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.icc-ape-verified-application{display:flex;align-items:center;gap:12px;margin:13px 0 16px;padding:13px 14px;border-radius:14px;background:linear-gradient(135deg,#f1f8ff,#f6fbf8);border:1px solid rgba(5,40,70,.08);text-align:left}
.icc-ape-verified-application__mark{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:50%;background:#0d7a50;color:#fff;font-weight:800}
.icc-ape-verified-application div{display:grid;gap:3px;min-width:0}
.icc-ape-verified-application strong{font-size:14px;color:#052846;line-height:1.35}
.icc-ape-verified-application small{font-size:12px;color:#63778b}
.icc-ape-paid-note{display:grid;gap:4px;margin:14px 0;padding:13px 14px;border-radius:12px;background:#eef9f4;border:1px solid rgba(13,122,80,.14);text-align:left}
.icc-ape-paid-note.is-pending{background:#f2f7fc;border-color:rgba(10,92,168,.14)}
.icc-ape-paid-note strong{font-size:13px;color:#0b5138}.icc-ape-paid-note.is-pending strong{color:#174b77}
.icc-ape-paid-note span{font-size:12px;line-height:1.5;color:#607286}
.icc-ape-verify-success{display:flex;gap:12px;align-items:flex-start;padding:15px;border-radius:13px;background:#eef9f4;border:1px solid rgba(13,122,80,.14);text-align:left}
.icc-ape-verify-success>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#0d7a50;color:#fff;font-weight:800;flex:0 0 30px}
.icc-ape-verify-success strong{display:block;color:#0b5138;font-size:14px}.icc-ape-verify-success p{margin:4px 0 0!important;font-size:12px!important;line-height:1.5!important;color:#607286!important}
.icc-ape-verified-inline{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:12px;font-size:12px}.icc-ape-verified-inline strong{color:#052846}.icc-ape-verified-inline span{color:#607286}
@media(max-width:640px){.icc-ape-verify-form{gap:12px}.icc-ape-verify-form input{font-size:16px;min-height:48px}}
