/* Fann.co modern checkout page */
.fann-checkout-page {
  --fann-checkout-shell: 1380px;
  --fann-checkout-border: #e5e7eb;
  --fann-checkout-muted: #73767e;
  --fann-checkout-ink: #171717;
  --fann-checkout-soft: #f7f8fa;
  color: var(--fann-checkout-ink);
  background:#fff;
  min-height:65vh;
}
.fann-checkout-shell { width:min(var(--fann-checkout-shell),calc(100% - 40px)); margin-inline:auto; }
.fann-checkout-hero { padding:32px 0 28px; border-bottom:1px solid #e9ebee; background:linear-gradient(135deg,#fff9df 0%,#fff 58%,#f5f6f8 100%); }
.fann-checkout-hero__crumbs { display:flex; align-items:center; gap:8px; margin-bottom:20px; color:#7c7f87; font-size:13px; }
.fann-checkout-hero__crumbs a:hover { color:#111; }
.fann-checkout-hero__row { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; }
.fann-checkout-hero__eyebrow { display:inline-block; color:#8b6a00; font-size:12px; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }
.fann-checkout-hero h1 { margin:5px 0 0; font-size:clamp(32px,4vw,50px); line-height:1.05; letter-spacing:-.045em; }
.fann-checkout-hero p { margin:9px 0 0; max-width:620px; color:#6f7279; }
.fann-checkout-security { display:flex; align-items:center; gap:10px; }
.fann-checkout-security span { display:flex; align-items:center; gap:7px; min-height:38px; padding:0 13px; border:1px solid #e1e3e6; border-radius:999px; background:#fff; color:#52555c; font-size:12px; font-weight:700; }
.fann-checkout-security svg { width:16px; height:16px; fill:none; stroke:#111; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.fann-checkout-progress { display:flex; align-items:center; max-width:550px; margin-top:24px; }
.fann-checkout-progress span { display:flex; align-items:center; gap:8px; color:#92959c; font-size:12px; font-weight:750; white-space:nowrap; }
.fann-checkout-progress span i { width:29px; height:29px; display:grid; place-items:center; border:1px solid #d8dade; border-radius:50%; background:#fff; color:#6d7078; font-style:normal; }
.fann-checkout-progress span.is-done,.fann-checkout-progress span.is-active { color:#171717; }
.fann-checkout-progress span.is-done i { background:#111; border-color:#111; color:#fff; }
.fann-checkout-progress span.is-active i { background:var(--fann-accent,#FEC30F); border-color:var(--fann-accent,#FEC30F); color:#111; }
.fann-checkout-progress b { height:1px; flex:1; min-width:36px; margin:0 10px; background:#d9dbdf; }
.fann-checkout-notices { padding-top:22px; }
.fann-checkout-notices:empty { display:none; }
.fann-checkout-page .woocommerce-error,
.fann-checkout-page .woocommerce-message,
.fann-checkout-page .woocommerce-info { list-style:none; margin:0 0 16px; padding:13px 16px; border:1px solid #e2e4e7; border-left:4px solid var(--fann-accent,#FEC30F); border-radius:13px; background:#fff; color:#2d2f34; box-shadow:0 8px 25px rgba(0,0,0,.04); }
.fann-checkout-page .woocommerce-error { border-left-color:#d92d20; }
.fann-checkout-page .woocommerce-error li { margin:0; }
.fann-checkout-page .woocommerce-form-login-toggle,
.fann-checkout-page .woocommerce-form-coupon-toggle { margin-bottom:12px; }
.fann-checkout-page .woocommerce-form-login,
.fann-checkout-page .woocommerce-form-coupon { margin:0 0 18px; padding:18px; border:1px solid var(--fann-checkout-border); border-radius:16px; background:#fff; }
.fann-checkout-grid { display:grid; grid-template-columns:minmax(0,1fr) 430px; gap:30px; align-items:start; padding:36px 0 74px; }
.fann-checkout-main { display:grid; gap:22px; min-width:0; }
.fann-checkout-customer-details { display:grid; gap:22px; }
.fann-checkout-panel,
.fann-checkout-review-card { border:1px solid var(--fann-checkout-border); border-radius:22px; background:#fff; box-shadow:0 14px 42px rgba(18,18,18,.045); }
.fann-checkout-panel { padding:28px; }
.fann-checkout-panel__head { display:flex; gap:14px; align-items:flex-start; margin-bottom:24px; padding-bottom:20px; border-bottom:1px solid #eceef1; }
.fann-checkout-panel__step { width:34px; height:34px; flex:0 0 34px; display:grid; place-items:center; border-radius:11px; background:var(--fann-accent,#FEC30F); color:#111; font-size:13px; font-weight:850; }
.fann-checkout-panel__head h2 { margin:0; font-size:22px; line-height:1.25; letter-spacing:-.025em; }
.fann-checkout-panel__head p { margin:5px 0 0; color:#7b7e85; font-size:13px; }
.fann-checkout-fields-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.fann-checkout-page .form-row { margin:0; padding:0; float:none; width:auto; }
.fann-checkout-page .fann-checkout-field--full,
.fann-checkout-page .form-row-wide { grid-column:1/-1; }
.fann-checkout-page .fann-checkout-field--half { grid-column:auto; }
.fann-checkout-page .form-row label { display:block; margin:0 0 7px; color:#282a2e; font-size:13px; font-weight:700; }
.fann-checkout-page .form-row label .required { color:#d92d20; text-decoration:none; }
.fann-checkout-page .input-text,
.fann-checkout-page input[type="text"],
.fann-checkout-page input[type="email"],
.fann-checkout-page input[type="tel"],
.fann-checkout-page input[type="password"],
.fann-checkout-page input[type="number"],
.fann-checkout-page select,
.fann-checkout-page textarea,
.fann-checkout-page .select2-container .select2-selection--single { width:100%; min-height:50px; border:1px solid #dfe2e6; border-radius:13px; background:#fff; color:#171717; outline:0; box-shadow:none; transition:.18s ease; }
.fann-checkout-page .input-text,
.fann-checkout-page input[type="text"],
.fann-checkout-page input[type="email"],
.fann-checkout-page input[type="tel"],
.fann-checkout-page input[type="password"],
.fann-checkout-page input[type="number"],
.fann-checkout-page select { padding:0 14px; }
.fann-checkout-page textarea { min-height:120px; padding:12px 14px; resize:vertical; }
.fann-checkout-page .input-text:focus,
.fann-checkout-page input:focus,
.fann-checkout-page select:focus,
.fann-checkout-page textarea:focus,
.fann-checkout-page .select2-container--open .select2-selection--single { border-color:#d4a900; box-shadow:0 0 0 3px rgba(254,195,15,.16); }
.fann-checkout-page .select2-container .select2-selection--single { display:flex; align-items:center; }
.fann-checkout-page .select2-container--default .select2-selection--single .select2-selection__rendered { padding-left:14px; line-height:48px; color:#171717; }
.fann-checkout-page .select2-container--default .select2-selection--single .select2-selection__arrow { height:48px; right:10px; }
.fann-checkout-page .woocommerce-invalid input,
.fann-checkout-page .woocommerce-invalid select,
.fann-checkout-page .woocommerce-invalid .select2-selection { border-color:#d92d20!important; }
.fann-checkout-page .woocommerce-validated input,
.fann-checkout-page .woocommerce-validated select { border-color:#54a56b; }
.fann-checkout-account-fields { margin-top:20px; padding-top:18px; border-top:1px solid #eceef1; }
.fann-checkout-page .woocommerce-form__label-for-checkbox { display:flex!important; align-items:center; gap:9px; cursor:pointer; font-weight:650!important; }
.fann-checkout-page input[type="checkbox"],
.fann-checkout-page input[type="radio"] { accent-color:var(--fann-accent,#FEC30F); }
.fann-checkout-shipping-fields h3 { margin:0 0 16px; font-size:15px; }
.fann-checkout-shipping-fields .shipping_address { margin-top:18px; }
.fann-checkout-additional-fields { margin-top:22px; padding-top:20px; border-top:1px solid #eceef1; }
.fann-checkout-additional-fields h3 { margin:0 0 14px; font-size:16px; }
.fann-checkout-sidebar { position:sticky; top:110px; }
.fann-checkout-review-card { overflow:hidden; }
.fann-checkout-review-card__head { padding:24px 24px 20px; border-bottom:1px solid #eceef1; }
.fann-checkout-review-card__head span { color:#8c8f96; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.1em; }
.fann-checkout-review-card__head h2 { margin:4px 0 0; font-size:22px; letter-spacing:-.025em; }
.fann-checkout-order-items { display:grid; gap:0; max-height:340px; overflow:auto; padding:8px 22px; scrollbar-width:thin; }
.fann-checkout-order-item { display:grid; grid-template-columns:58px minmax(0,1fr) auto; gap:11px; align-items:center; padding:13px 0; border-bottom:1px solid #eef0f2; }
.fann-checkout-order-item:last-child { border-bottom:0; }
.fann-checkout-order-item__image { position:relative; width:58px; height:58px; display:grid; place-items:center; border:1px solid #eceef0; border-radius:13px; background:#fafafa; }
.fann-checkout-order-item__image img { width:100%; height:100%; object-fit:contain; padding:4px; border-radius:12px; }
.fann-checkout-order-item__image > span { position:absolute; right:-6px; top:-7px; min-width:20px; height:20px; padding:0 5px; display:grid; place-items:center; border-radius:999px; background:#111; color:#fff; font-size:10px; font-weight:800; }
.fann-checkout-order-item__content { min-width:0; }
.fann-checkout-order-item__content strong { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; font-size:13px; line-height:1.35; }
.fann-checkout-order-item__content small { display:block; margin-top:3px; color:#8a8d94; font-size:10px; }
.fann-checkout-order-item__content dl { margin:0; }
.fann-checkout-order-item__content dt,.fann-checkout-order-item__content dd { display:inline; margin:0 4px 0 0; }
.fann-checkout-order-item__price { font-size:13px; font-weight:700; white-space:nowrap; }
.fann-checkout-totals { padding:18px 22px 20px; border-top:1px solid #eceef1; }
.fann-checkout-totals > div { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin-bottom:10px; color:#64676e; font-size:13px; }
.fann-checkout-totals > div strong { color:#202124; text-align:right; }
.fann-checkout-totals .is-discount strong { color:#159447; }
.fann-checkout-shipping-totals > div { text-align:right; color:#222; }
.fann-checkout-shipping-totals ul { list-style:none; margin:0; padding:0; }
.fann-checkout-shipping-totals li { margin:0 0 5px; }
.fann-checkout-shipping-totals label { font-size:12px; }
.fann-checkout-order-total { margin:16px 0 0!important; padding-top:15px; border-top:1px solid #e8eaed; align-items:flex-end!important; color:#111!important; }
.fann-checkout-order-total span { font-size:16px; font-weight:800; }
.fann-checkout-order-total strong { font-size:22px; line-height:1.1; }
.fann-checkout-payment-section { padding:0 22px 18px; }
.fann-checkout-payment-section__title { display:flex; align-items:center; gap:10px; padding:17px 0 13px; border-top:1px solid #eceef1; }
.fann-checkout-payment-section__title > span { width:34px; height:34px; display:grid; place-items:center; border-radius:10px; background:#fff4bd; }
.fann-checkout-payment-section__title svg { width:17px; height:17px; fill:none; stroke:#111; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.fann-checkout-payment-section__title strong { display:block; font-size:14px; }
.fann-checkout-payment-section__title small { display:block; margin-top:1px; color:#85888f; font-size:10px; }
.fann-checkout-page .wc_payment_methods { list-style:none; margin:0; padding:0; display:grid; gap:9px; }
.fann-checkout-page .wc_payment_method { border:1px solid #e2e4e7; border-radius:14px; background:#fff; overflow:hidden; transition:.18s ease; }
.fann-checkout-page .wc_payment_method.is-active { border-color:#dfb300; box-shadow:0 0 0 3px rgba(254,195,15,.12); }
.fann-checkout-page .wc_payment_method > input { margin-left:14px; }
.fann-checkout-page .wc_payment_method > label { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:0; padding:13px 14px; font-size:13px; font-weight:700; cursor:pointer; }
.fann-checkout-page .wc_payment_method > label img { max-height:25px; width:auto; }
.fann-checkout-page .payment_box { margin:0; padding:12px 14px 14px; background:#fafafa; color:#676a71; font-size:12px; }
.fann-checkout-page .payment_box p { margin:0; }
.fann-checkout-place-order { padding:20px 22px 24px!important; border-top:1px solid #eceef1; }
.fann-checkout-page .woocommerce-terms-and-conditions-wrapper { color:#6d7077; font-size:11px; }
.fann-checkout-page .woocommerce-privacy-policy-text p { margin:0 0 12px; }
.fann-checkout-page .woocommerce-terms-and-conditions-checkbox-text a,
.fann-checkout-page .woocommerce-privacy-policy-text a { color:#8b6b00; text-decoration:underline; text-underline-offset:2px; }
.fann-place-order-button { width:100%; min-height:54px; padding:0 18px 0 21px!important; display:flex!important; align-items:center; justify-content:space-between; border:0!important; border-radius:999px!important; background:var(--fann-accent,#FEC30F)!important; color:#111!important; font-weight:850!important; box-shadow:0 10px 25px rgba(254,195,15,.26); transition:.2s ease; }
.fann-place-order-button:hover { background:#111!important; color:#fff!important; transform:translateY(-1px); }
.fann-place-order-button svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.fann-place-order-button:disabled { opacity:.55; cursor:not-allowed; transform:none; }
.fann-checkout-trust-note { display:flex; align-items:center; justify-content:center; gap:7px; margin-top:12px; color:#7a7d84; font-size:10px; }
.fann-checkout-trust-note svg { width:15px; height:15px; fill:none; stroke:#111; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.fann-checkout-page .blockUI.blockOverlay { background:#fff!important; opacity:.65!important; }
.fann-checkout-empty { margin:40px 0 70px; padding:54px 24px; text-align:center; border:1px solid #e6e8eb; border-radius:22px; }
.fann-checkout-empty h2 { margin:0 0 7px; }
.fann-checkout-empty p { margin:0; color:#777a82; }
.fann-checkout-empty a { display:inline-flex; align-items:center; justify-content:center; margin-top:20px; min-height:48px; padding:0 22px; border-radius:999px; background:#111; color:#fff; font-weight:800; }
.fann-order-extra { width:min(1200px,calc(100% - 32px)); margin:25px auto; }

/* SelectWoo dropdown polish */
.select2-container--default .select2-dropdown { border:1px solid #dedfe2; border-radius:12px; overflow:hidden; box-shadow:0 15px 35px rgba(0,0,0,.12); }
.select2-container--default .select2-search--dropdown .select2-search__field { border:1px solid #dedfe2; border-radius:9px; padding:8px 10px; }
.select2-container--default .select2-results__option--highlighted[aria-selected] { background:#111; color:#fff; }

@media (max-width: 1080px) {
  .fann-checkout-grid { grid-template-columns:minmax(0,1fr) 380px; gap:20px; }
}
@media (max-width: 900px) {
  .fann-checkout-hero__row { align-items:flex-start; flex-direction:column; }
  .fann-checkout-security { flex-wrap:wrap; }
  .fann-checkout-grid { grid-template-columns:1fr; }
  .fann-checkout-sidebar { position:static; }
  .fann-checkout-review-card { display:flex; flex-direction:column; }
}
@media (max-width: 640px) {
  .fann-checkout-shell { width:min(100% - 24px,var(--fann-checkout-shell)); }
  .fann-checkout-hero { padding:22px 0 24px; }
  .fann-checkout-hero__crumbs { margin-bottom:14px; font-size:12px; }
  .fann-checkout-hero h1 { font-size:34px; }
  .fann-checkout-hero p { font-size:14px; }
  .fann-checkout-security span { min-height:34px; padding:0 10px; font-size:10px; }
  .fann-checkout-progress span { font-size:0; gap:0; }
  .fann-checkout-progress span i { font-size:11px; }
  .fann-checkout-progress b { margin:0 7px; min-width:20px; }
  .fann-checkout-grid { padding:24px 0 55px; }
  .fann-checkout-panel,.fann-checkout-review-card { border-radius:18px; }
  .fann-checkout-panel { padding:18px; }
  .fann-checkout-panel__head { margin-bottom:18px; padding-bottom:16px; }
  .fann-checkout-panel__head h2 { font-size:19px; }
  .fann-checkout-panel__head p { font-size:12px; }
  .fann-checkout-fields-grid { grid-template-columns:1fr; gap:13px; }
  .fann-checkout-page .fann-checkout-field--half { grid-column:1/-1; }
  .fann-checkout-review-card__head { padding:20px 18px 16px; }
  .fann-checkout-order-items { padding:8px 18px; max-height:none; }
  .fann-checkout-totals,.fann-checkout-payment-section,.fann-checkout-place-order { padding-left:18px!important; padding-right:18px!important; }
  .fann-checkout-order-item { grid-template-columns:52px minmax(0,1fr) auto; gap:9px; }
  .fann-checkout-order-item__image { width:52px; height:52px; }
  .fann-checkout-order-item__price { font-size:12px; }
}
.fann-checkout-shipping-methods { display:grid; gap:7px; min-width:170px; }
.fann-checkout-shipping-method { display:flex; align-items:center; justify-content:flex-end; gap:7px; cursor:pointer; color:#232427; font-size:12px; }
.fann-checkout-shipping-method input { flex:0 0 auto; }
.fann-checkout-shipping-methods small { color:#8a8d94; font-size:11px; line-height:1.35; }

/* v2.1.1: checkout feedback stays in the Fann.co bottom-left toast UI. */
.fann-checkout-page .woocommerce-NoticeGroup,
.fann-checkout-page .woocommerce-NoticeGroup-checkout,
.fann-checkout-page .woocommerce-notices-wrapper {
  display:none!important;
}
.fann-checkout-page .woocommerce-error::before,
.fann-checkout-page .woocommerce-message::before,
.fann-checkout-page .woocommerce-info::before,
.fann-checkout-page .woocommerce-error::after,
.fann-checkout-page .woocommerce-message::after,
.fann-checkout-page .woocommerce-info::after {
  display:none!important;
  content:none!important;
}

.fann-checkout-toast-stack {
  position:fixed;
  left:22px;
  bottom:22px;
  z-index:1000002;
  width:min(420px,calc(100vw - 44px));
  display:flex;
  flex-direction:column;
  gap:10px;
  pointer-events:none;
}
.fann-checkout-toast {
  position:relative;
  min-height:52px;
  padding:12px 42px 12px 16px;
  display:flex;
  align-items:center;
  border:1px solid rgba(255,255,255,.12);
  border-left:4px solid var(--fann-accent,#FEC30F);
  border-radius:13px;
  background:#111;
  color:#fff;
  box-shadow:0 14px 38px rgba(0,0,0,.22);
  opacity:0;
  transform:translate3d(0,12px,0);
  transition:opacity .2s ease,transform .2s ease;
  pointer-events:auto;
}
.fann-checkout-toast.is-visible { opacity:1; transform:none; }
.fann-checkout-toast--error { border-left-color:#ef4444; background:#8f1d18; }
.fann-checkout-toast--info { border-left-color:#d7a700; }
.fann-checkout-toast__mark { display:none; }
.fann-checkout-toast__text { font-size:13px; line-height:1.45; font-weight:620; }
.fann-checkout-toast__close {
  position:absolute;
  right:10px;
  top:50%;
  width:28px;
  height:28px;
  padding:0;
  display:grid;
  place-items:center;
  transform:translateY(-50%);
  border:0;
  border-radius:50%;
  background:rgba(255,255,255,.1);
  color:#fff;
  font:400 21px/1 Arial,sans-serif;
  cursor:pointer;
}
.fann-checkout-toast__close:hover { background:rgba(255,255,255,.18); }

/* Keep WooCommerce legal/payment content inside the review card instead of
   allowing its legacy floats to squeeze text beside the Place order button. */
.fann-checkout-place-order {
  display:block!important;
  float:none!important;
  clear:both!important;
  width:100%!important;
  box-sizing:border-box;
}
.fann-checkout-page .woocommerce-terms-and-conditions-wrapper,
.fann-checkout-page .woocommerce-privacy-policy-text,
.fann-checkout-page .woocommerce-terms-and-conditions {
  display:block!important;
  float:none!important;
  clear:both!important;
  width:100%!important;
  max-width:none!important;
  box-sizing:border-box;
  line-height:1.55;
}
.fann-checkout-page .woocommerce-privacy-policy-text p,
.fann-checkout-page .woocommerce-terms-and-conditions-wrapper p {
  margin:0 0 14px!important;
  padding:0!important;
  max-width:none!important;
  font-size:11px;
  line-height:1.6;
}
.fann-checkout-page #place_order,
.fann-checkout-page .fann-place-order-button {
  float:none!important;
  clear:both!important;
  width:100%!important;
  margin:0!important;
}
.fann-checkout-trust-note {
  float:none!important;
  clear:both!important;
  width:100%!important;
  margin:12px 0 0!important;
  line-height:1.45;
  white-space:normal;
  text-align:center;
}

/* Neutral no-payment state: no WooCommerce pseudo-icon / classic notice UI. */
.fann-checkout-page .fann-checkout-payment-empty {
  list-style:none!important;
  margin:0!important;
  padding:13px 14px!important;
  border:1px solid #e5e7eb;
  border-radius:12px;
  background:#f8f9fa;
  color:#5f636b;
  font-size:12px;
  line-height:1.55;
  box-shadow:none;
}
.fann-checkout-page .fann-checkout-payment-empty::before,
.fann-checkout-page .fann-checkout-payment-empty::after { display:none!important; content:none!important; }

@media (max-width:520px) {
  .fann-checkout-toast-stack { left:12px; bottom:14px; width:calc(100vw - 24px); gap:8px; }
  .fann-checkout-toast { min-height:50px; padding:11px 40px 11px 14px; border-radius:12px; }
  .fann-checkout-toast__text { font-size:12.5px; }
}

/* =========================================================
   v2.1.3 — Fann.co checkout structure + payment card selector
   ========================================================= */
.fann-checkout-page {
  --fann-accent:#FEC30F;
  --fann-checkout-ink:#141414;
  --fann-checkout-muted:#6f737a;
  --fann-checkout-border:#e3e5e8;
  --fann-checkout-soft:#f8f8f8;
}

/* Use the WooCommerce payment fragment as a transparent grid wrapper so its
   native AJAX refresh still works while the choices live under the form and
   the submit/terms block stays under the order summary. */
.fann-checkout-page #payment.fann-checkout-payment {
  display:contents!important;
}
.fann-checkout-grid {
  grid-template-columns:minmax(0,1fr) 430px;
  grid-template-areas:
    "main summary"
    "payment order";
  gap:24px 26px;
}
.fann-checkout-main { grid-area:main; }
.fann-checkout-sidebar { grid-area:summary; position:sticky; top:105px; }
.fann-checkout-payment-section { grid-area:payment; }
.fann-checkout-place-order { grid-area:order; }

/* Cleaner delivery-information card, following the supplied checkout layout. */
.fann-checkout-panel,
.fann-checkout-review-card,
.fann-checkout-payment-section,
.fann-checkout-place-order {
  border:1px solid var(--fann-checkout-border);
  border-radius:18px;
  background:#fff;
  box-shadow:0 8px 28px rgba(17,17,17,.035);
}
.fann-checkout-panel { padding:24px; }
.fann-checkout-panel__head {
  margin-bottom:20px;
  padding-bottom:0;
  border-bottom:0;
  gap:0;
}
.fann-checkout-panel__step { display:none; }
.fann-checkout-panel__head h2,
.fann-checkout-review-card__head h2,
.fann-checkout-payment-section__title h2 {
  margin:0;
  color:#111;
  font-size:21px;
  line-height:1.25;
  font-weight:800;
  letter-spacing:-.025em;
}
.fann-checkout-panel__head p,
.fann-checkout-payment-section__title p {
  margin:6px 0 0;
  color:#7b7f86;
  font-size:12.5px;
  line-height:1.5;
}
.fann-checkout-review-card__head {
  padding:24px 24px 18px;
}
.fann-checkout-review-card__head span { display:none; }

/* Form controls stay simple and professional. */
.fann-checkout-page .input-text,
.fann-checkout-page input[type="text"],
.fann-checkout-page input[type="email"],
.fann-checkout-page input[type="tel"],
.fann-checkout-page input[type="password"],
.fann-checkout-page input[type="number"],
.fann-checkout-page select,
.fann-checkout-page textarea,
.fann-checkout-page .select2-container .select2-selection--single {
  min-height:46px;
  border-radius:9px;
  border-color:#dfe1e4;
}
.fann-checkout-page textarea { min-height:108px; }
.fann-checkout-page .input-text:focus,
.fann-checkout-page input:focus,
.fann-checkout-page select:focus,
.fann-checkout-page textarea:focus,
.fann-checkout-page .select2-container--open .select2-selection--single {
  border-color:#d8a900;
  box-shadow:0 0 0 3px rgba(254,195,15,.16);
}

/* Payment Method becomes a dedicated left-column card. */
.fann-checkout-payment-section {
  padding:24px;
  overflow:visible;
}
.fann-checkout-payment-section__title {
  display:block;
  margin:0 0 17px;
  padding:0;
}
.fann-checkout-payment-section__title > span { display:none!important; }
.fann-checkout-page .wc_payment_methods {
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin:0!important;
  padding:0!important;
  list-style:none!important;
}
.fann-checkout-page .wc_payment_methods::before,
.fann-checkout-page .wc_payment_methods::after {
  display:none!important;
  content:none!important;
}
.fann-checkout-page .wc_payment_method.fann-payment-option {
  position:relative;
  min-width:0;
  margin:0!important;
  padding:0!important;
  overflow:visible;
  border:0!important;
  border-radius:12px;
  background:transparent!important;
  box-shadow:none!important;
}
.fann-checkout-page .wc_payment_method.fann-payment-option > input.input-radio {
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  opacity:0!important;
  pointer-events:none;
  margin:0!important;
}
.fann-checkout-page .fann-payment-card {
  position:relative;
  min-height:82px;
  padding:13px 38px 12px 13px!important;
  display:flex!important;
  flex-direction:column;
  align-items:flex-start!important;
  justify-content:center!important;
  gap:8px!important;
  border:1px solid #e3e5e8;
  border-radius:8px;
  background:#fff;
  color:#555a61;
  font-size:13px!important;
  font-weight:500!important;
  line-height:1.35;
  cursor:pointer;
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,background .18s ease;
}
.fann-checkout-page .fann-payment-card:hover {
  border-color:#cfd2d6;
  transform:translateY(-1px);
  box-shadow:0 7px 18px rgba(17,17,17,.055);
}
.fann-checkout-page .wc_payment_method.is-active .fann-payment-card {
  border-color:var(--fann-accent,#FEC30F);
  background:#fffdf5;
  box-shadow:0 0 0 1px rgba(254,195,15,.16);
  color:#2d2f33;
}
.fann-payment-card__icon {
  width:26px;
  height:26px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  color:#777b80;
}
.fann-checkout-page .wc_payment_method.is-active .fann-payment-card__icon { color:#d69900; }
.fann-payment-card__icon svg {
  width:25px;
  height:25px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.65;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.fann-payment-card__icon img {
  display:block;
  width:auto!important;
  max-width:62px!important;
  height:auto!important;
  max-height:26px!important;
  margin:0!important;
}
.fann-payment-card__title {
  display:block;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
}
.fann-payment-card__radio {
  position:absolute;
  top:8px;
  right:8px;
  width:17px;
  height:17px;
  display:grid;
  place-items:center;
  border:2px solid #c9ccd0;
  border-radius:50%;
  background:#fff;
}
.fann-payment-card__radio i {
  width:7px;
  height:7px;
  border-radius:50%;
  background:#a8abb0;
  transition:.18s ease;
}
.fann-checkout-page .wc_payment_method.is-active .fann-payment-card__radio {
  border-color:#e5ad00;
}
.fann-checkout-page .wc_payment_method.is-active .fann-payment-card__radio i {
  background:var(--fann-accent,#FEC30F);
}

/* Gateway-specific fields appear as a compact continuation of that card. */
.fann-checkout-page .wc_payment_method.fann-payment-option .payment_box {
  margin:8px 0 0!important;
  padding:12px!important;
  border:1px solid #eceef0;
  border-radius:9px;
  background:#fafafa!important;
  color:#666a71;
  font-size:12px;
  line-height:1.5;
}
.fann-checkout-page .wc_payment_method.fann-payment-option .payment_box::before,
.fann-checkout-page .wc_payment_method.fann-payment-option .payment_box::after {
  display:none!important;
  content:none!important;
}

/* No-payment state remains a plain text panel with no legacy Woo icon. */
.fann-checkout-page .fann-checkout-payment-empty {
  grid-column:1/-1;
  padding:14px 15px!important;
  border:1px solid #e4e6e9!important;
  border-left:3px solid var(--fann-accent,#FEC30F)!important;
  border-radius:10px!important;
  background:#fafafa!important;
  color:#5d6168!important;
  font-size:12.5px!important;
  line-height:1.55!important;
}

/* Place order is a clean right-column card, visually part of Order Summary. */
.fann-checkout-place-order {
  padding:20px 22px 22px!important;
  border-top:1px solid var(--fann-checkout-border)!important;
}
.fann-checkout-page .woocommerce-terms-and-conditions-wrapper {
  margin:0 0 14px!important;
  color:#6d7077;
  font-size:11px;
}
.fann-checkout-page .woocommerce-privacy-policy-text p,
.fann-checkout-page .woocommerce-terms-and-conditions-wrapper p {
  margin:0 0 12px!important;
  font-size:11px;
  line-height:1.55;
}
.fann-place-order-button {
  min-height:49px;
  border-radius:999px!important;
  background:var(--fann-accent,#FEC30F)!important;
  color:#111!important;
  box-shadow:0 8px 20px rgba(254,195,15,.22);
}
.fann-place-order-button:hover {
  background:#111!important;
  color:#fff!important;
}
.fann-checkout-trust-note { margin-top:10px!important; font-size:10.5px; }

/* Order Summary details align with the reference: strong totals, clean rows. */
.fann-checkout-totals > div {
  align-items:center;
  margin-bottom:12px;
  color:#555a61;
  font-size:13px;
}
.fann-checkout-totals .order-total {
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid #e5e7ea;
  color:#151515;
  font-size:15px;
  font-weight:800;
}
.fann-checkout-totals .order-total strong { font-size:16px; }

@media (max-width:1080px) {
  .fann-checkout-grid {
    grid-template-columns:minmax(0,1fr) 380px;
    gap:20px;
  }
  .fann-checkout-page .wc_payment_methods { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:900px) {
  .fann-checkout-grid {
    grid-template-columns:1fr;
    grid-template-areas:
      "main"
      "payment"
      "summary"
      "order";
  }
  .fann-checkout-main,
  .fann-checkout-sidebar,
  .fann-checkout-payment-section,
  .fann-checkout-place-order { grid-column:1!important; }
  .fann-checkout-sidebar { position:static; }
}

@media (max-width:640px) {
  .fann-checkout-panel,
  .fann-checkout-payment-section { padding:18px; }
  .fann-checkout-page .wc_payment_methods { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
  .fann-checkout-page .fann-payment-card {
    min-height:78px;
    padding:11px 30px 10px 11px!important;
    font-size:12px!important;
  }
  .fann-payment-card__icon { width:23px; height:23px; }
  .fann-payment-card__icon svg { width:22px; height:22px; }
  .fann-payment-card__radio { top:7px; right:7px; width:15px; height:15px; }
  .fann-payment-card__radio i { width:6px; height:6px; }
}

@media (max-width:410px) {
  .fann-checkout-page .wc_payment_methods { grid-template-columns:1fr 1fr; }
  .fann-checkout-review-card__head { padding:18px 16px 14px; }
}

/* v2.1.3 delivery-method cards — keep native Woo inputs alive but present a
   cleaner visual selector in the left checkout column. */
.fann-checkout-grid {
  grid-template-areas:
    "main summary"
    "payment order"
    "delivery order";
}
.fann-checkout-delivery-section {
  grid-area:delivery;
  padding:24px;
  border:1px solid var(--fann-checkout-border);
  border-radius:18px;
  background:#fff;
  box-shadow:0 8px 28px rgba(17,17,17,.035);
}
.fann-checkout-delivery-section__title { margin:0 0 17px; }
.fann-checkout-delivery-section__title h2 {
  margin:0;
  color:#111;
  font-size:21px;
  line-height:1.25;
  font-weight:800;
  letter-spacing:-.025em;
}
.fann-checkout-delivery-section__title p {
  margin:6px 0 0;
  color:#7b7f86;
  font-size:12.5px;
  line-height:1.5;
}
.fann-checkout-delivery-cards {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.fann-delivery-card {
  position:relative;
  min-height:76px;
  padding:12px 38px 11px 13px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:7px;
  border:1px solid #e3e5e8;
  border-radius:8px;
  background:#fff;
  color:#555a61;
  cursor:pointer;
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,background .18s ease;
}
.fann-delivery-card:hover {
  border-color:#cfd2d6;
  transform:translateY(-1px);
  box-shadow:0 7px 18px rgba(17,17,17,.055);
}
.fann-delivery-card.is-active {
  border-color:var(--fann-accent,#FEC30F);
  background:#fffdf5;
  box-shadow:0 0 0 1px rgba(254,195,15,.16);
  color:#2d2f33;
}
.fann-delivery-card__icon {
  width:25px;
  height:25px;
  color:#777b80;
}
.fann-delivery-card.is-active .fann-delivery-card__icon { color:#d69900; }
.fann-delivery-card__icon svg {
  width:25px;
  height:25px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.65;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.fann-delivery-card__title {
  display:block;
  max-width:100%;
  font-size:12.5px;
  line-height:1.35;
  font-weight:500;
}
.fann-delivery-card__radio {
  position:absolute;
  top:8px;
  right:8px;
  width:17px;
  height:17px;
  display:grid;
  place-items:center;
  border:2px solid #c9ccd0;
  border-radius:50%;
  background:#fff;
}
.fann-delivery-card__radio i {
  width:7px;
  height:7px;
  border-radius:50%;
  background:#a8abb0;
}
.fann-delivery-card.is-active .fann-delivery-card__radio { border-color:#e5ad00; }
.fann-delivery-card.is-active .fann-delivery-card__radio i { background:var(--fann-accent,#FEC30F); }
.fann-checkout-delivery-cards__empty {
  grid-column:1/-1;
  margin:0;
  padding:13px 14px;
  border:1px solid #e4e6e9;
  border-left:3px solid var(--fann-accent,#FEC30F);
  border-radius:10px;
  background:#fafafa;
  color:#5d6168;
  font-size:12.5px;
}

/* Native shipping radios remain in the checkout form for WooCommerce AJAX,
   but are visually replaced by the cards above. */
.fann-checkout-page [data-fann-native-shipping-methods] {
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.fann-checkout-shipping-totals {
  position:relative;
}
.fann-checkout-delivery-total {
  white-space:nowrap;
}

@media (max-width:1080px) {
  .fann-checkout-delivery-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:900px) {
  .fann-checkout-grid {
    grid-template-areas:
      "main"
      "payment"
      "delivery"
      "summary"
      "order";
  }
  .fann-checkout-delivery-section { grid-column:1!important; }
}
@media (max-width:640px) {
  .fann-checkout-delivery-section { padding:18px; }
  .fann-checkout-delivery-cards { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
  .fann-delivery-card { min-height:74px; padding:11px 30px 10px 11px; }
  .fann-delivery-card__title { font-size:12px; }
  .fann-delivery-card__radio { top:7px; right:7px; width:15px; height:15px; }
  .fann-delivery-card__radio i { width:6px; height:6px; }
}

/* =========================================================
   v2.1.4 — sticky Order Summary + Place Order stack
   ========================================================= */
@media (min-width:901px) {
  .fann-checkout-grid {
    grid-template-areas:
      "main summary"
      "payment summary"
      "delivery summary";
  }

  .fann-checkout-sidebar {
    grid-area:summary;
    position:sticky;
    top:105px;
    align-self:start;
    display:flex;
    flex-direction:column;
    gap:14px;
    min-width:0;
  }

  .fann-checkout-place-order-slot {
    display:block;
    min-width:0;
  }

  .fann-checkout-place-order-slot:empty {
    display:none;
  }

  .fann-checkout-place-order-slot .fann-checkout-place-order {
    position:relative;
    z-index:1;
    width:100%!important;
    margin:0!important;
    border:1px solid var(--fann-checkout-border)!important;
    border-radius:18px!important;
    background:#fff;
    box-shadow:0 8px 28px rgba(17,17,17,.035);
  }
}

/* Keep the checkout product name visually light and clean. */
.fann-checkout-order-item__content strong {
  font-weight:400!important;
}

/* Prevent the legal/place-order card from visually entering the totals card. */
.fann-checkout-review-card {
  position:relative;
  z-index:1;
  overflow:hidden;
}
.fann-checkout-place-order {
  box-sizing:border-box;
  min-width:0;
}
.fann-checkout-page .woocommerce-terms-and-conditions-wrapper,
.fann-checkout-page .woocommerce-privacy-policy-text {
  overflow-wrap:anywhere;
  word-break:normal;
}

@media (max-width:900px) {
  .fann-checkout-grid {
    grid-template-areas:
      "main"
      "payment"
      "delivery"
      "summary";
  }
  .fann-checkout-sidebar {
    display:block;
    position:static;
  }
  .fann-checkout-place-order-slot {
    margin-top:14px;
  }
  .fann-checkout-place-order-slot:empty {
    display:none;
  }
}


/* ==============================================================
   v2.8.4 — Payment gateway details open in a real modal popup.
   COD remains a simple selectable card with no popup/content panel.
   ============================================================== */
.fann-checkout-page .wc_payment_method.fann-payment-option .payment_box.fann-payment-popup {
  position:fixed!important;
  inset:0!important;
  z-index:2147482500!important;
  width:100%!important;
  height:100%!important;
  margin:0!important;
  padding:18px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:#2b2d31!important;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:auto;
  box-sizing:border-box;
}
.fann-checkout-page .wc_payment_method.fann-payment-option .payment_box.fann-payment-popup.fann-payment-popup--closed {
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
.fann-payment-popup__backdrop {
  position:fixed!important;
  inset:0!important;
  z-index:0!important;
  width:100%!important;
  height:100%!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:rgba(17,17,17,.58)!important;
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  cursor:pointer!important;
}
.fann-payment-popup__dialog {
  position:relative;
  z-index:1;
  width:min(520px,100%);
  max-height:min(760px,calc(100vh - 36px));
  overflow:auto;
  border:1px solid rgba(17,17,17,.08);
  border-radius:18px;
  background:#fff;
  box-shadow:0 26px 80px rgba(17,17,17,.26);
  animation:fannPaymentPopupIn .22s ease both;
  -webkit-overflow-scrolling:touch;
}
.fann-payment-popup__header {
  position:sticky;
  top:0;
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-height:68px;
  padding:14px 16px 14px 18px;
  border-bottom:1px solid #eceef1;
  background:rgba(255,255,255,.97);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.fann-payment-popup__heading {
  min-width:0;
  display:flex;
  align-items:center;
  gap:11px;
  color:#171719;
  font-size:16px;
  line-height:1.3;
}
.fann-payment-popup__gateway-icon {
  width:32px;
  height:32px;
  flex:0 0 32px;
  display:grid;
  place-items:center;
  border-radius:9px;
  background:#fff8d7;
  color:#d99c00;
}
.fann-payment-popup__gateway-icon img {
  display:block;
  max-width:27px!important;
  max-height:27px!important;
  width:auto!important;
  height:auto!important;
  margin:0!important;
}
.fann-payment-popup__gateway-icon svg {
  width:22px;
  height:22px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.65;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.fann-payment-popup__close {
  width:36px!important;
  height:36px!important;
  flex:0 0 36px;
  display:grid!important;
  place-items:center!important;
  margin:0!important;
  padding:0!important;
  border:1px solid #e5e7ea!important;
  border-radius:50%!important;
  background:#f8f8f8!important;
  color:#1f2023!important;
  cursor:pointer!important;
  transition:.18s ease;
}
.fann-payment-popup__close:hover {
  border-color:#d8aa00!important;
  background:#fff8d7!important;
  transform:rotate(4deg);
}
.fann-payment-popup__close svg {
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
}
.fann-payment-popup__content {
  padding:18px;
  color:#3e4147;
  font-size:14px;
  line-height:1.6;
}
.fann-payment-popup__content > :first-child { margin-top:0!important; }
.fann-payment-popup__content > :last-child { margin-bottom:0!important; }
.fann-payment-popup__content p { margin:0 0 12px!important; }
.fann-payment-popup__content ul,
.fann-payment-popup__content ol { margin:12px 0 16px!important; padding-left:20px!important; }
.fann-payment-popup__content label { display:block; margin:0 0 6px!important; color:#25272b!important; font-size:13px!important; font-weight:600!important; }
.fann-payment-popup__content input[type="text"],
.fann-payment-popup__content input[type="email"],
.fann-payment-popup__content input[type="tel"],
.fann-payment-popup__content input[type="number"],
.fann-payment-popup__content select,
.fann-payment-popup__content textarea {
  width:100%!important;
  min-height:46px!important;
  padding:10px 12px!important;
  border:1px solid #dfe2e6!important;
  border-radius:10px!important;
  background:#fff!important;
  box-shadow:none!important;
  color:#25272b!important;
  font-size:14px!important;
  outline:0!important;
}
.fann-payment-popup__content input:focus,
.fann-payment-popup__content select:focus,
.fann-payment-popup__content textarea:focus {
  border-color:var(--fann-accent,#FEC30F)!important;
  box-shadow:0 0 0 3px rgba(254,195,15,.15)!important;
}
body.fann-payment-popup-open { overflow:hidden!important; }
@keyframes fannPaymentPopupIn {
  from { opacity:0; transform:translateY(14px) scale(.985); }
  to { opacity:1; transform:translateY(0) scale(1); }
}
@media (max-width:767px) {
  .fann-checkout-page .wc_payment_method.fann-payment-option .payment_box.fann-payment-popup {
    align-items:flex-end;
    padding:0!important;
  }
  .fann-payment-popup__dialog {
    width:100%;
    max-height:min(82vh,720px);
    border-radius:20px 20px 0 0;
    border-bottom:0;
    animation:fannPaymentPopupMobileIn .24s ease both;
  }
  .fann-payment-popup__header { min-height:62px; padding:12px 14px 12px 16px; }
  .fann-payment-popup__content { padding:16px; }
  @keyframes fannPaymentPopupMobileIn {
    from { opacity:0; transform:translateY(28px); }
    to { opacity:1; transform:translateY(0); }
  }
}
