/* Kera Fine Smart Gift Unlock — responsive frontend */
.kfgu-box{
  --kfgu-ink:#142019;
  --kfgu-muted:#77736b;
  --kfgu-line:#e8e2d9;
  --kfgu-soft:#faf7f1;
  --kfgu-card:#fff;
  --kfgu-radius:20px;
  display:block!important;
  position:relative!important;
  z-index:20!important;
  width:100%!important;
  max-width:1120px!important;
  min-width:0!important;
  margin:0 auto 28px!important;
  padding:clamp(18px,2.2vw,28px)!important;
  border:1px solid var(--kfgu-line)!important;
  border-radius:var(--kfgu-radius)!important;
  background:linear-gradient(145deg,#fffefa,#faf7f1)!important;
  box-shadow:0 14px 38px rgba(32,25,18,.075)!important;
  box-sizing:border-box!important;
  clear:both!important;
  float:none!important;
  grid-column:1/-1!important;
  color:var(--kfgu-ink)!important;
  overflow:hidden;
}
.kfgu-box *{box-sizing:border-box}
.kfgu-checkout-box{width:100%!important;max-width:1120px!important}

/* Header */
.kfgu-topline{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:17px;border-bottom:1px solid var(--kfgu-line)}
.kfgu-topline>div:first-child{display:flex;align-items:center;gap:11px;min-width:0}
.kfgu-emoji{width:40px;height:40px;flex:0 0 40px;border-radius:12px;display:grid;place-items:center;background:#f1eadf;font-size:19px}
.kfgu-topline strong{display:block;font-size:14px;line-height:1.2;letter-spacing:.025em}
.kfgu-topline small{display:block;color:var(--kfgu-muted);font-size:11px;line-height:1.4;margin-top:4px}
.kfgu-tier-pill{flex:0 0 auto;white-space:nowrap;border:1px solid #ddd4c8;background:#fff;padding:8px 12px;border-radius:999px;font-size:11px;font-weight:800;line-height:1}

/* Current tier */
.kfgu-headline{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;padding:18px 0 10px}
.kfgu-headline h3{margin:0!important;font-size:20px!important;line-height:1.2!important;letter-spacing:-.02em}
.kfgu-headline p{margin:0!important;color:var(--kfgu-muted);font-size:11px;line-height:1.45;text-align:right}
.kfgu-progress{height:6px;background:#ebe6de;border-radius:99px;overflow:hidden;margin:4px 0 17px}
.kfgu-progress span{display:block;height:100%;background:var(--kfgu-ink);border-radius:99px;transition:width .35s ease}
.kfgu-progress-label{margin:-10px 0 16px;color:var(--kfgu-muted);font-size:10px;text-align:right}

/* Gift cards — auto-fit keeps the layout balanced for 2–10 gifts */
.kfgu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,175px),1fr));gap:12px;align-items:stretch}
.kfgu-gift{
  appearance:none;
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  border:1px solid var(--kfgu-line)!important;
  background:var(--kfgu-card)!important;
  border-radius:15px!important;
  padding:10px!important;
  cursor:pointer;
  text-align:left;
  position:relative;
  width:100%!important;
  min-width:0!important;
  color:var(--kfgu-ink)!important;
  transition:transform .18s,box-shadow .18s,border-color .18s;
}
.kfgu-gift:hover{transform:translateY(-2px);box-shadow:0 9px 22px rgba(30,24,18,.08);border-color:#c8bfb2!important}
.kfgu-gift.is-selected{border:2px solid var(--kfgu-ink)!important;padding:9px!important;box-shadow:0 9px 24px rgba(30,24,18,.11)}
.kfgu-image{display:block;width:100%;height:clamp(125px,12vw,165px);flex:0 0 auto;background:#faf8f4;border-radius:10px;overflow:hidden}
.kfgu-gift img{display:block;width:100%;height:100%;object-fit:contain}
.kfgu-name{display:block;font-size:12px;font-weight:700;line-height:1.35;margin:10px 2px 0;min-height:33px;overflow-wrap:anywhere}
.kfgu-free{display:inline-block;font-size:9px;font-weight:900;letter-spacing:.09em;margin:6px 2px 0}
.kfgu-check{display:block;font-size:10px;color:var(--kfgu-muted);margin:5px 2px 1px;line-height:1.3}
.kfgu-selected-badge{display:none;position:absolute;top:16px;right:16px;padding:5px 8px;border-radius:999px;background:var(--kfgu-ink);color:#fff;font-size:8px;font-weight:900;letter-spacing:.05em;line-height:1}
.kfgu-gift.is-selected .kfgu-selected-badge{display:block}

/* Confirm row */
.kfgu-actionbar{display:grid;grid-template-columns:auto minmax(170px,220px) minmax(0,1fr);align-items:center;gap:12px;margin-top:16px}
.kfgu-count{display:flex;align-items:baseline;gap:5px;font-size:11px;color:#66625c;white-space:nowrap}
.kfgu-count-number{font-size:19px;color:var(--kfgu-ink)}
.kfgu-save{margin:0!important;border:0!important;border-radius:10px!important;background:var(--kfgu-ink)!important;color:#fff!important;padding:11px 17px!important;font-weight:800!important;font-size:11px!important;min-width:0;width:100%;transition:opacity .2s,transform .2s}
.kfgu-save:not(:disabled):hover{transform:translateY(-1px)}
.kfgu-save:disabled{opacity:.42;cursor:not-allowed}
.kfgu-status{font-size:11px;color:#6b675f;min-width:0;line-height:1.35}
.kfgu-status.is-error{color:#a22b2b}.kfgu-status.is-success{color:#24643c}

/* Next-tier panel */
.kfgu-next-tier{margin-top:22px;padding:17px;border:1px solid var(--kfgu-line);border-radius:15px;background:rgba(255,255,255,.62)}
.kfgu-next-head{display:flex;align-items:center;justify-content:space-between;gap:14px}
.kfgu-next-head>div{display:flex;align-items:center;gap:9px;min-width:0}
.kfgu-next-icon{width:31px;height:31px;flex:0 0 31px;border-radius:9px;background:#f1eadf;display:grid;place-items:center;font-weight:800}
.kfgu-next-head strong{font-size:12px;line-height:1.25}
.kfgu-next-head small{display:block;color:var(--kfgu-muted);font-size:10px;line-height:1.4;margin-top:2px}
.kfgu-next-head>strong{font-size:11px;white-space:nowrap}
.kfgu-next-progress{margin:11px 0 13px;height:5px}
.kfgu-recommend-title{font-size:12px;font-weight:800;margin:16px 0 9px}
.kfgu-recs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.kfgu-rec{display:grid;grid-template-columns:50px minmax(0,1fr) auto;gap:9px;align-items:center;min-width:0;padding:8px;background:#fff;border:1px solid var(--kfgu-line);border-radius:11px}
.kfgu-rec-image{width:50px;height:50px;display:grid;place-items:center;background:#faf8f4;border-radius:8px;overflow:hidden}
.kfgu-rec-image img{display:block;width:100%;height:100%;object-fit:contain}
.kfgu-rec-info{min-width:0}
.kfgu-rec strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:10px;line-height:1.3}
.kfgu-rec .amount{font-size:10px;color:#6f6b64;margin-top:3px;white-space:nowrap}
.kfgu-add{margin:0!important;border:1px solid var(--kfgu-ink)!important;background:#fff!important;color:var(--kfgu-ink)!important;border-radius:8px!important;padding:7px 9px!important;font-size:10px!important;font-weight:800!important;white-space:nowrap}
.kfgu-empty-recs{padding:11px;border:1px dashed #d9d0c4;border-radius:9px;color:var(--kfgu-muted);font-size:11px;line-height:1.4}
.kfgu-config-warning{margin-top:13px;padding:11px;border:1px solid #e2b93b;border-radius:9px;background:#fff8df;font-size:11px;line-height:1.4}

.kfgu-shake{animation:kfguShake .32s ease}
@keyframes kfguShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
.kfgu-cart-gift-badge{display:inline-block;margin-left:6px;padding:3px 7px;border-radius:999px;background:#142019;color:#fff;font-size:8px;font-weight:900;vertical-align:middle}
.kfgu-free-price{font-weight:800}.kfgu-cart-gift-name{font-weight:600}

/* Tablet */
@media(max-width:900px){
  .kfgu-recs{grid-template-columns:1fr 1fr}
  .kfgu-actionbar{grid-template-columns:auto minmax(170px,220px) minmax(0,1fr)}
}
/* Narrow content areas */
@media(max-width:680px){
  .kfgu-box,.kfgu-checkout-box{width:100%!important;max-width:none!important;margin:0 0 20px!important;padding:15px!important;border-radius:15px!important}
  .kfgu-topline{align-items:flex-start;gap:10px}
  .kfgu-topline strong{font-size:12px}.kfgu-topline small{font-size:10px}
  .kfgu-emoji{width:36px;height:36px;flex-basis:36px;border-radius:10px;font-size:17px}
  .kfgu-tier-pill{font-size:9px;padding:7px 9px}
  .kfgu-headline{display:block;padding-top:15px}.kfgu-headline h3{font-size:17px!important}.kfgu-headline p{margin-top:4px!important;text-align:left}
  .kfgu-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .kfgu-image{height:120px}.kfgu-name{font-size:10px;min-height:29px}.kfgu-selected-badge{top:12px;right:12px;font-size:7px}
  .kfgu-actionbar{grid-template-columns:auto 1fr;gap:9px}.kfgu-save{grid-column:2}.kfgu-status{grid-column:1/-1}
  .kfgu-next-head{align-items:flex-start}.kfgu-next-head>strong{font-size:10px}
  .kfgu-recs{grid-template-columns:1fr}
}
/* Very small phones */
@media(max-width:390px){
  .kfgu-grid{grid-template-columns:1fr}
  .kfgu-image{height:145px}
  .kfgu-topline{flex-wrap:wrap}.kfgu-tier-pill{margin-left:auto}
}
@media(prefers-reduced-motion:reduce){.kfgu-gift,.kfgu-save,.kfgu-progress span{transition:none}}

/* v1.2 compact cart entry + dedicated gift suggestions page */
.kfgu-box.kfgu-compact{
  max-width:100%!important;
  margin:0 0 12px!important;
  padding:0!important;
  border:1px solid #e9e4dc!important;
  border-radius:12px!important;
  background:#fff!important;
  box-shadow:none!important;
  overflow:hidden!important;
}
.kfgu-compact-inner{
  min-height:58px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:9px 12px;
}
.kfgu-compact .kfgu-emoji{width:34px;height:34px;flex:0 0 34px;border-radius:9px;font-size:16px}
.kfgu-compact-copy{min-width:0;flex:1;display:flex;flex-direction:column;justify-content:center}
.kfgu-compact-copy strong{font-size:11px;line-height:1.2;letter-spacing:.03em;color:#1d2520}
.kfgu-compact-copy small{font-size:9px;line-height:1.35;margin-top:3px;color:#8a857d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kfgu-compact-arrow{
  width:32px;height:32px;flex:0 0 32px;border-radius:50%;display:grid;place-items:center;
  text-decoration:none!important;font-size:18px;font-weight:700;line-height:1;color:#18221c;
  background:#f7f4ef;border:1px solid #e7e0d6;transition:transform .18s,background .18s
}
.kfgu-compact-arrow:hover{transform:translateX(2px);background:#eee9e1}
.kfgu-suggestions-page{width:100%;padding:42px 18px 70px;box-sizing:border-box}
.kfgu-suggestions-wrap{width:min(1080px,100%);margin:0 auto}
.kfgu-full-page{max-width:none!important;margin:0!important;padding:clamp(20px,3vw,34px)!important;border-radius:20px!important}
.kfgu-page-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px;padding-bottom:15px;border-bottom:1px solid var(--kfgu-line)}
.kfgu-back-link{font-size:11px;font-weight:700;color:var(--kfgu-ink);text-decoration:none}
.kfgu-page-label{font-size:9px;letter-spacing:.14em;color:#8b867d;font-weight:800}
.kfgu-unlocked-banner{margin:18px 0 22px;padding:14px 16px;border:1px solid #e5dfd5;border-radius:13px;background:#faf8f4}
.kfgu-unlocked-banner strong{display:block;font-size:12px;line-height:1.3}
.kfgu-unlocked-banner small{display:block;margin-top:4px;font-size:10px;line-height:1.4;color:#77736b}
.kfgu-section-title{font-size:13px;font-weight:800;margin:0 0 12px;color:#1b241f}
.kfgu-recs-page{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.kfgu-recs-page .kfgu-rec{grid-template-columns:68px minmax(0,1fr) auto;min-height:82px;padding:10px}
.kfgu-recs-page .kfgu-rec-image{width:68px;height:68px}
.kfgu-recs-page .kfgu-rec strong{font-size:11px}
.kfgu-recs-page .kfgu-rec .amount{font-size:10px}
.kfgu-recs-page .kfgu-add{padding:8px 10px!important;font-size:10px!important}
.kfgu-page-note{margin-top:18px;font-size:10px;line-height:1.5;color:#8a857d;text-align:center}
.kfgu-page-card{max-width:760px;margin:0 auto;padding:34px;border:1px solid #e8e2d9;border-radius:20px;background:#fff;text-align:center}
.kfgu-page-card h1{margin:0 0 8px;font-size:24px}.kfgu-page-card p{margin:0 0 18px;color:#77736b}
.kfgu-back{display:inline-block;padding:10px 16px;border-radius:9px;background:#142019;color:#fff;text-decoration:none;font-size:11px;font-weight:800}
@media(max-width:900px){.kfgu-recs-page{grid-template-columns:1fr 1fr}}
@media(max-width:640px){
 .kfgu-suggestions-page{padding:20px 10px 45px}
 .kfgu-full-page{padding:15px!important;border-radius:15px!important}
 .kfgu-page-header{align-items:flex-start;flex-direction:column;gap:8px}
 .kfgu-page-label{order:-1}
 .kfgu-recs-page{grid-template-columns:1fr}
 .kfgu-recs-page .kfgu-rec{grid-template-columns:58px minmax(0,1fr) auto}
 .kfgu-recs-page .kfgu-rec-image{width:58px;height:58px}
}

/* v1.2.2 — direct-to-checkout gift flow */
.kfgu-checkout-flow{
  width:100%!important;
  max-width:1080px!important;
  margin:0 auto 28px!important;
  box-sizing:border-box!important;
}
.kfgu-checkout-flow .kfgu-page-header{margin-bottom:18px}
.kfgu-checkout-flow .kfgu-actionbar{position:sticky;bottom:12px;z-index:4;padding:10px 12px;border:1px solid var(--kfgu-line);border-radius:12px;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);box-shadow:0 8px 24px rgba(30,24,18,.08)}
@media(max-width:640px){
  .kfgu-checkout-flow{margin-bottom:18px!important}
  .kfgu-checkout-flow .kfgu-actionbar{position:static;padding:0;border:0;background:transparent;box-shadow:none;backdrop-filter:none}
}

/* v1.2.4 — one-click gift replacement */
.kfgu-gift{cursor:pointer}
.kfgu-gift.is-selected{cursor:pointer}
.kfgu-status.is-success{font-size:10px;font-weight:600}

/* v1.2.8 — checkout gift selection is one-click. The confirmation button is unnecessary on checkout; selecting/deselecting a card syncs the cart and reloads the checkout. */
body.woocommerce-checkout .kfgu-checkout-flow .kfgu-save{display:none!important}
body.woocommerce-checkout .kfgu-checkout-flow .kfgu-actionbar{grid-template-columns:auto minmax(0,1fr)!important}
body.woocommerce-checkout .kfgu-checkout-flow .kfgu-status{grid-column:2!important}
@media(max-width:640px){body.woocommerce-checkout .kfgu-checkout-flow .kfgu-actionbar{grid-template-columns:1fr!important}body.woocommerce-checkout .kfgu-checkout-flow .kfgu-status{grid-column:1!important}}
