/* ================================================================
   The Good Harvest — Trainings (public) styles
   ================================================================ */
:root{
  --trn-forest:#1B4332; --trn-forest-d:#0C1F17; --trn-gold:#C9900C; --trn-gold-l:#E9B84A;
  --trn-cream:#FAF7F0; --trn-ink:#1A1A18; --trn-line:rgba(27,67,50,.12); --trn-muted:#5C6B73;
}
.trn-empty{text-align:center;color:var(--trn-muted);padding:60px 20px;font-size:1rem}

/* ---- Catalog grid ---- */
.trn-cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px;margin-bottom:48px}
.trn-card{display:flex;flex-direction:column;border:1px solid var(--trn-line);border-radius:18px;background:#fff;overflow:hidden;text-decoration:none;color:inherit;box-shadow:0 4px 20px rgba(12,31,23,.06);transition:transform .25s,box-shadow .25s}
.trn-card:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(12,31,23,.14)}
.trn-card__cover{height:150px;background:linear-gradient(135deg,#1B4332,#0C1F17) center/cover no-repeat;position:relative;display:flex;align-items:flex-start;gap:8px;padding:12px}
.trn-card__badge{background:var(--trn-gold);color:var(--trn-forest-d);font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:20px}
.trn-card__badge--exclusive{background:var(--trn-forest-d);color:var(--trn-gold-l);border:1px solid var(--trn-gold)}
.trn-card__body{padding:18px 20px 20px;display:flex;flex-direction:column;flex:1}
.trn-card__cat{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--trn-gold);margin-bottom:6px}
.trn-card__title{font-family:Fraunces,serif;font-size:1.3rem;color:var(--trn-forest);margin:0 0 6px;line-height:1.2}
.trn-card__sub{font-size:.9rem;color:var(--trn-muted);line-height:1.5;margin:0 0 16px;flex:1}
.trn-card__foot{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--trn-line);padding-top:14px;font-size:.82rem;color:var(--trn-muted)}
.trn-card__price{font-family:Fraunces,serif;font-weight:700;font-size:1.15rem;color:var(--trn-forest)}
.trn-free{color:#1F9D6B;font-weight:800}

/* ---- Redeem strip (catalog) ---- */
.trn-redeem{max-width:560px;margin:0 auto 60px;background:#fff;border:1px solid var(--trn-line);border-radius:16px;padding:24px;text-align:center;box-shadow:0 4px 20px rgba(12,31,23,.05)}
.trn-redeem h3{font-family:Fraunces,serif;color:var(--trn-forest);margin:0 0 6px}
.trn-redeem p{color:var(--trn-muted);font-size:.9rem;margin:0 0 14px}
.trn-redeem__row{display:flex;gap:10px}
.trn-redeem__row input{flex:1;padding:11px 14px;border:1px solid var(--trn-line);border-radius:10px;font:inherit;text-transform:uppercase;letter-spacing:.05em}

/* ---- Detail hero ---- */
.trn-hero{background:linear-gradient(160deg,#143728,#1B4332 55%,#0C1F17);color:#fff;padding:120px 6vw 56px;position:relative;overflow:hidden}
.trn-hero__inner{max-width:1100px;margin:0 auto;position:relative;z-index:2}
.trn-back{color:var(--trn-gold-l);text-decoration:none;font-size:.85rem;font-weight:600}
.trn-back:hover{text-decoration:underline}
.trn-hero__cat{margin-top:18px;font-size:.74rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--trn-gold-l)}
.trn-hero h1{font-family:Fraunces,serif;font-size:clamp(2rem,5vw,3.2rem);line-height:1.08;margin:10px 0 12px;color:#fff}
.trn-hero__sub{font-size:1.1rem;color:rgba(255,255,255,.8);max-width:640px;margin:0 0 20px}
.trn-hero__meta{display:flex;gap:20px;flex-wrap:wrap;font-size:.92rem;color:rgba(255,255,255,.75)}
.trn-enrolled{margin-top:20px;display:inline-block;background:rgba(31,157,107,.18);border:1px solid rgba(31,157,107,.5);color:#7ee0b3;padding:9px 16px;border-radius:10px;font-weight:600;font-size:.9rem}

/* ---- Detail body ---- */
.trn-detail-grid{display:grid;grid-template-columns:1fr 360px;gap:36px;max-width:1100px;margin:0 auto;align-items:start}
.trn-h2{font-family:Fraunces,serif;color:var(--trn-forest);font-size:1.5rem;margin:0 0 14px}
.trn-about{color:var(--trn-ink);line-height:1.7;margin-bottom:34px;white-space:pre-line}
.trn-detail-main h2:not(:first-child){margin-top:30px}

/* sessions */
.trn-sess{display:flex;gap:16px;border:1px solid var(--trn-line);border-radius:14px;padding:16px 18px;margin-bottom:14px;background:#fff}
.trn-sess__no{flex-shrink:0;width:38px;height:38px;border-radius:50%;background:var(--trn-forest);color:#fff;display:flex;align-items:center;justify-content:center;font-family:Fraunces,serif;font-weight:700}
.trn-sess__body{flex:1}
.trn-sess__title{font-weight:700;color:var(--trn-forest);font-size:1.05rem}
.trn-sess__when{font-size:.85rem;color:var(--trn-muted);margin:3px 0 6px}
.trn-sess__desc{font-size:.9rem;color:var(--trn-ink);line-height:1.55;margin-bottom:8px}
.trn-sess__zoom{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:8px}
.trn-sess__zid{font-size:.78rem;color:var(--trn-muted)}
.trn-sess__locked{margin-top:6px;font-size:.84rem;color:#9a6c06;background:#FBF1D6;display:inline-block;padding:5px 12px;border-radius:8px}

/* buy box */
.trn-detail-side{position:sticky;top:90px}
.trn-buy{border:1px solid var(--trn-line);border-radius:18px;padding:22px;background:#fff;box-shadow:0 8px 30px rgba(12,31,23,.08)}
.trn-buy__price{font-family:Fraunces,serif;font-size:2rem;font-weight:700;color:var(--trn-forest);margin-bottom:14px}
.trn-buy__price span{font-size:.95rem;color:var(--trn-muted);font-family:'Plus Jakarta Sans',sans-serif;font-weight:500}
.trn-buy .btn{width:100%;justify-content:center;margin-bottom:10px}
.trn-buy__note{font-size:.8rem;color:var(--trn-muted);line-height:1.5;margin:8px 0 0}
.trn-buy__enrolled{font-family:Fraunces,serif;font-size:1.4rem;color:#1F9D6B;margin-bottom:6px}
.trn-bulk{border-top:1px solid var(--trn-line);margin-top:16px;padding-top:16px}
.trn-bulk__label{font-weight:700;color:var(--trn-forest);font-size:.9rem;margin-bottom:8px}
.trn-bulk__row{display:flex;align-items:center;gap:8px;font-size:.9rem;color:var(--trn-muted);margin-bottom:10px}
.trn-bulk__row input{width:64px;padding:8px;border:1px solid var(--trn-line);border-radius:8px;font:inherit}
.trn-bulk__total{margin-left:auto;font-family:Fraunces,serif;font-weight:700;color:var(--trn-forest)}
.trn-redeem2{border-top:1px solid var(--trn-line);margin-top:16px;padding-top:16px}
.trn-redeem2__label{font-weight:700;color:var(--trn-forest);font-size:.88rem;margin-bottom:8px}
.trn-redeem2__row{display:flex;gap:8px}
.trn-redeem2__row input{flex:1;padding:9px 12px;border:1px solid var(--trn-line);border-radius:8px;font:inherit;text-transform:uppercase}

/* my codes */
.trn-mycodes{border:1px solid var(--trn-line);border-radius:18px;padding:22px;background:#FBFDFC;margin-top:18px}
.trn-mycodes h3{font-family:Fraunces,serif;color:var(--trn-forest);margin:0 0 4px;font-size:1.15rem}
.trn-codeitem{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--trn-line)}
.trn-code{font-family:monospace;font-weight:700;letter-spacing:.06em;background:#f1f5f4;padding:4px 10px;border-radius:7px}
.trn-codepill{font-size:.7rem;font-weight:700;padding:2px 9px;border-radius:20px;background:#EDF1F2;color:var(--trn-muted)}
.trn-codepill.used{background:#E3F5EC;color:#1F9D6B}
.trn-codepill.sent{background:#FBF1D6;color:#9a6c06}
.trn-copy{margin-left:auto;border:1px solid var(--trn-line);background:#fff;border-radius:7px;padding:4px 12px;font:inherit;font-size:.78rem;font-weight:600;color:var(--trn-forest);cursor:pointer}
.trn-copy:hover{background:#f6faf8}
.trn-share{display:flex;gap:8px;margin-top:14px}
.trn-share input{flex:1;padding:9px 12px;border:1px solid var(--trn-line);border-radius:8px;font:inherit}

/* toast */
.trn-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--trn-forest);color:#fff;padding:12px 22px;border-radius:12px;font-size:.9rem;z-index:4000;opacity:0;transition:opacity .25s;pointer-events:none;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.trn-toast.show{opacity:1}
.trn-toast.err{background:#b91c1c}

@media (max-width:860px){
  .trn-detail-grid{grid-template-columns:1fr}
  .trn-detail-side{position:static}
}
