/* ==========================================================================
   KEF Elementor Addons — brand tokens + utility classes
   Attach these classes to any Elementor FREE widget via
   Advanced tab -> CSS Classes. Documented in the build guide.
   ========================================================================== */

:root{
  --kef-paper:#FBF8F0;
  --kef-surface:#FFFFFF;
  --kef-surface-2:#F3EDDC;
  --kef-ink:#242A20;
  --kef-ink-dim:#6B7460;
  --kef-forest:#1A3317;
  --kef-gold:#AD7E29;
  --kef-gold-deep:#8A6420;
  --kef-river:#4E7477;
  --kef-line:rgba(26,51,23,.16);
  --kef-line-strong:rgba(26,51,23,.30);
}

/* eyebrow / kicker label — pair with a Heading or Text Editor widget */
.kef-eyebrow{
  font-family:'Barlow Condensed', sans-serif;
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-size:.8rem;
  color:var(--kef-gold-deep);
  display:inline-block;
}

/* pill badge — wrap short phrases, e.g. <span class="kef-badge">Guwahati, Assam</span> */
.kef-badge{
  display:inline-block;
  font-family:'Barlow Condensed', sans-serif;
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-size:.78rem;
  padding:.5em 1em;
  border:1px solid var(--kef-line-strong);
  border-radius:999px;
  color:var(--kef-ink);
  background:var(--kef-surface);
  margin:.2em .3em .2em 0;
}

/* dashed image-placeholder frame — apply to a Container/Column wrapping an Image widget,
   or leave the shipped placeholder PNGs as-is (they already include the frame). */
.kef-img-placeholder{
  border:1.5px dashed var(--kef-line-strong) !important;
  background:var(--kef-surface-2) !important;
  border-radius:8px;
}

/* outlined numeral, e.g. for a manually-built objective card's number Heading widget */
.kef-num-outline{
  font-family:'Fraunces', Georgia, serif;
  font-weight:700;
  color:transparent;
  -webkit-text-stroke:1.2px var(--kef-gold);
  text-stroke:1.2px var(--kef-gold);
}

/* secondary / outline button look — apply to a Button widget's wrapper via CSS Classes
   in addition to setting its own Style tab colors (this class is a convenience fallback) */
.kef-btn-line .elementor-button{
  background:transparent;
  color:var(--kef-forest);
  border:1.5px solid var(--kef-line-strong);
}
.kef-btn-line .elementor-button:hover{
  border-color:var(--kef-gold);
  color:var(--kef-gold-deep);
  background:var(--kef-surface-2);
}

/* gold top+bottom rule for a callout / banner Section — apply to the Section itself */
.kef-gold-rule-section{
  border-top:3px solid var(--kef-gold);
  border-bottom:3px solid var(--kef-gold);
}

/* =========================== shortcode components =========================== */

/* [kef_pillars] */
.kef-pillars{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem;
}
@media (max-width:920px){.kef-pillars{grid-template-columns:repeat(2,1fr);}}
@media (max-width:520px){.kef-pillars{grid-template-columns:1fr;}}
.kef-pillar{
  background:var(--kef-surface);border:1px solid var(--kef-line);border-radius:6px;
  padding:1.8em 1.5em;box-shadow:0 16px 36px -24px rgba(20,32,16,.28);
}
.kef-pillar svg{width:38px;height:38px;color:var(--kef-gold);margin-bottom:1em;display:block;}
.kef-pillar h3{font-family:'Fraunces',serif;font-weight:600;font-size:1.12rem;color:var(--kef-ink);margin:0 0 .5em;}
.kef-pillar p{color:var(--kef-ink-dim);font-size:.95rem;margin:0;font-family:'Public Sans',sans-serif;}

/* [kef_involve] */
.kef-involve-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;}
@media (max-width:820px){.kef-involve-grid{grid-template-columns:1fr;}}
.kef-involve-card{background:var(--kef-surface);border:1px solid var(--kef-line);border-radius:6px;padding:1.7em;}
.kef-involve-card svg{width:32px;height:32px;color:var(--kef-gold);margin-bottom:.9em;display:block;}
.kef-involve-card h4{font-family:'Fraunces',serif;font-weight:600;font-size:1.06rem;color:var(--kef-ink);margin:0 0 .5em;}
.kef-involve-card p{color:var(--kef-ink-dim);font-size:.94rem;margin:0;font-family:'Public Sans',sans-serif;}

/* [kef_meaning] */
.kef-meaning-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.6rem;}
@media (max-width:760px){.kef-meaning-grid{grid-template-columns:1fr;}}
.kef-meaning-item{display:flex;gap:1.1em;align-items:flex-start;}
.kef-meaning-num{
  font-family:'Barlow Condensed',sans-serif;font-weight:700;color:var(--kef-gold-deep);
  font-size:1.3rem;border:1.5px solid var(--kef-gold);width:2.1em;height:2.1em;border-radius:50%;
  display:flex;align-items:center;justify-content:center;flex:none;
}
.kef-meaning-item h4{font-family:'Fraunces',serif;font-weight:600;font-size:1.08rem;color:var(--kef-ink);margin:0 0 .4em;}
.kef-meaning-item p{color:var(--kef-ink-dim);font-size:.96rem;margin:0;font-family:'Public Sans',sans-serif;}

/* [kef_objectives] */
.kef-obj-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem;}
@media (max-width:760px){.kef-obj-grid{grid-template-columns:1fr;}}
.kef-obj-card{display:flex;gap:1.1em;padding:1.5em;border:1px solid var(--kef-line);border-radius:6px;background:var(--kef-surface);}
.kef-obj-num{font-family:'Fraunces',serif;font-weight:700;font-size:2.1rem;line-height:1;flex:none;color:transparent;-webkit-text-stroke:1.2px var(--kef-gold);}
.kef-obj-card h4{font-family:'Fraunces',serif;font-weight:600;font-size:1.02rem;color:var(--kef-ink);margin:0 0 .4em;}
.kef-obj-card p{color:var(--kef-ink-dim);font-size:.92rem;margin:0;font-family:'Public Sans',sans-serif;}

/* [kef_sdg_list] */
.kef-sdg-grid{display:flex;flex-wrap:wrap;gap:.9rem;}
.kef-sdg-chip{
  display:inline-flex;align-items:center;gap:.6em;padding:.5em .9em .5em .5em;border-radius:999px;color:#fff;
  font-family:'Barlow Condensed',sans-serif;font-weight:600;letter-spacing:.03em;font-size:.85rem;
}
.kef-sdg-num{
  width:1.9em;height:1.9em;border-radius:50%;background:rgba(255,255,255,.24);
  display:inline-flex;align-items:center;justify-content:center;font-weight:700;flex:none;
}

/* [kef_founders] */
.kef-founder-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;}
@media (max-width:920px){.kef-founder-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:620px){.kef-founder-grid{grid-template-columns:1fr;}}
.kef-founder-card{background:var(--kef-surface);border:1px solid var(--kef-line);border-radius:8px;padding:1.6em;box-shadow:0 16px 36px -24px rgba(20,32,16,.28);}
.kef-founder-photo{aspect-ratio:1/1;border-radius:50%;overflow:hidden;margin-bottom:1.2em;width:100%;}
.kef-founder-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.kef-founder-name{font-family:'Fraunces',serif;font-weight:600;font-size:1.1rem;color:var(--kef-ink);margin:0;}
.kef-founder-role{
  font-family:'Barlow Condensed',sans-serif;letter-spacing:.09em;text-transform:uppercase;
  color:var(--kef-gold-deep);font-size:.82rem;font-weight:600;margin-top:.2em;display:block;
}
.kef-founder-bio{margin-top:.9em;color:var(--kef-ink-dim);font-size:.92rem;font-family:'Public Sans',sans-serif;}
.kef-founder-bio p{margin:0 0 .8em;}

/* [kef_partners type="sponsor|partner"] */
.kef-logo-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;}
@media (max-width:760px){.kef-logo-tiles{grid-template-columns:repeat(2,1fr);}}
.kef-logo-tile{
  aspect-ratio:2/1;border:1.5px dashed var(--kef-line-strong);border-radius:6px;background:var(--kef-surface);
  display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.kef-logo-tile img{max-width:82%;max-height:82%;object-fit:contain;}
