
/* KIRAN Society — final layout, card alignment and programme-detail polish */
:root{--polish-red:#9f231f;--polish-gold:#f3bf67;--polish-green:#486f52;--polish-ink:#20231f;--polish-muted:#687069;--polish-line:rgba(32,35,31,.11);--polish-soft:0 10px 32px rgba(44,35,26,.07);--polish-shadow:0 22px 65px rgba(44,35,26,.11)}

/* Prevent long text/buttons from forcing grid columns wider than intended. */
.container,.hero-grid,.section-head,.section-heading,.program-layout,.card-grid,.news-grid,.projects-grid,.jobs-grid,.people-grid,.events-grid,.contact-grid,.location-grid,.report-grid,.campaign-grid,.reach-summary-cards,.home-event-grid,.media-explorer-grid{min-width:0}
.section-head>*,.section-heading>*,.hero-grid>*,.program-layout>*{min-width:0}
.section-head h2,.section-heading h2,.page-hero h1{text-wrap:balance}
.section-head p,.section-heading p{margin-top:0}

/* Equal-height card systems across the whole site. */
.card-grid,.news-grid,.projects-grid,.jobs-grid,.people-grid,.location-grid,.report-grid,.campaign-grid,.contact-grid,.home-event-grid,.reach-summary-cards,.media-explorer-grid{align-items:stretch}
.card-grid>.card{height:100%;display:flex;flex-direction:column;min-width:0}
.card-grid>.card .card-link{margin-top:auto;padding-top:16px}
.card-grid>.card p{overflow-wrap:anywhere}
.news-card,.location-card,.contact-office,.report-card,.media-explorer-card{height:100%;min-width:0}
.news-card{display:flex;flex-direction:column}
.news-card p{flex:1}
.project-card{height:100%;min-width:0;display:flex;flex-direction:column}
.project-copy{display:flex;flex-direction:column;flex:1;min-width:0}
.project-copy .card-link,.project-copy .project-more{margin-top:auto;padding-top:14px;align-self:flex-start}
.job-card{height:100%;display:flex;flex-direction:column;min-width:0}
.job-card .job-actions{margin-top:auto;padding-top:18px}
.person-card{height:100%;min-width:0;align-items:flex-start}
.person-info{min-width:0;flex:1}
.person-info h3,.person-info p,.person-meta{overflow-wrap:anywhere}
.home-event-grid>article{height:100%;display:flex;flex-direction:column;min-width:0}
.home-event-grid>article .btn,.home-event-grid>article a{margin-top:auto}
.reach-summary-cards>article{height:100%}

/* Home page cards/sliders. */
.focus-square-grid{align-items:stretch}
.focus-square-card{height:100%;min-width:0}
.award-card{height:100%;display:flex;flex-direction:column;min-width:0}
.award-card .award-meta{flex:1}
.partner-card{height:100%;min-width:0}
.intro-band>*{min-width:0}

/* Donation campaign alignment. */
.fundraising-grid,.fund-grid{align-items:stretch}
.fund-card{height:100%;display:flex;flex-direction:column;min-width:0}
.fund-card-body{display:flex!important;flex-direction:column;flex:1;min-width:0}
.fund-card-body .fund-donate-btn{margin-top:auto}

/* Safer form alignment on narrow laptop/tablet widths. */
.form-grid>*{min-width:0}
.form-card input,.form-card select,.form-card textarea,.mini-form input,.mini-form select{max-width:100%}

/* Program detail section */
.programme-depth{background:linear-gradient(180deg,#fffdf8 0%,#fff 55%,#f7f4ec 100%)}
.programme-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;align-items:stretch}
.programme-photo-card{min-width:0;height:100%;display:flex;flex-direction:column;background:#fff;border:1px solid var(--polish-line);border-radius:22px;overflow:hidden;box-shadow:var(--polish-soft);transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;position:relative}
.programme-photo-card:hover{transform:translateY(-7px);box-shadow:var(--polish-shadow);border-color:rgba(159,35,31,.22)}
.programme-photo-media{aspect-ratio:4/3;overflow:hidden;position:relative;background:#eef2eb}
.programme-photo-media img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.8,.2,1),filter .4s ease}
.programme-photo-card:hover .programme-photo-media img{transform:scale(1.055);filter:saturate(1.06)}
.programme-photo-media:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(18,21,18,.42),transparent 58%);pointer-events:none}
.programme-photo-tag{position:absolute;z-index:2;left:12px;bottom:12px;padding:6px 9px;border-radius:999px;background:rgba(18,21,18,.46);border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(8px);color:#fff;font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.programme-photo-copy{padding:19px 18px 18px;display:flex;flex-direction:column;flex:1;min-width:0}
.programme-photo-copy h3{font-size:1.16rem!important;margin:0 0 8px}
.programme-photo-copy>p{font-size:.84rem!important;line-height:1.6;flex:1}
.programme-photo-copy details{margin-top:15px;padding-top:12px;border-top:1px solid var(--polish-line)}
.programme-photo-copy summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--polish-red);font-size:.76rem;font-weight:800}
.programme-photo-copy summary::-webkit-details-marker{display:none}
.programme-photo-copy summary i{transition:.25s}
.programme-photo-copy details[open] summary i{transform:rotate(45deg)}
.programme-photo-copy details p{font-size:.78rem!important;line-height:1.55;margin-top:9px}

.programme-pathway{margin-top:28px;padding:28px;border-radius:24px;background:linear-gradient(135deg,#253e2d,#486f52);color:#fff;box-shadow:var(--polish-shadow);overflow:hidden;position:relative}
.programme-pathway:after{content:"";position:absolute;width:320px;height:320px;border-radius:50%;right:-100px;top:-160px;border:1px solid rgba(255,255,255,.12);box-shadow:0 0 0 55px rgba(255,255,255,.035),0 0 0 110px rgba(255,255,255,.02)}
.programme-pathway-head{position:relative;z-index:2;display:grid;grid-template-columns:1fr .75fr;gap:28px;align-items:end;margin-bottom:24px}
.programme-pathway-head h3{font-size:1.65rem!important;color:#fff}
.programme-pathway-head p{color:rgba(255,255,255,.7);font-size:.88rem}
.programme-pathway-grid{position:relative;z-index:2;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.programme-step{padding:18px;border-radius:16px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.065)}
.programme-step b{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--polish-gold);color:var(--polish-ink);font-family:"Libre Baskerville",serif;margin-bottom:13px}
.programme-step strong{display:block;font-size:.87rem;margin-bottom:5px}
.programme-step span{display:block;color:rgba(255,255,255,.66);font-size:.75rem;line-height:1.5}
.programme-audience{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.programme-audience span{padding:7px 10px;border-radius:999px;background:#fff;border:1px solid var(--polish-line);font-size:.74rem;color:var(--polish-muted);font-weight:800}

/* Focus Areas visual programme directory. */
.programme-directory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch}
.programme-directory-card{height:100%;display:flex;flex-direction:column;min-width:0;border:1px solid var(--polish-line);border-radius:22px;background:#fff;overflow:hidden;box-shadow:var(--polish-soft);transition:.3s ease}
.programme-directory-card:hover{transform:translateY(-7px);box-shadow:var(--polish-shadow);border-color:rgba(159,35,31,.2)}
.programme-directory-card img{width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform .65s ease}
.programme-directory-card:hover img{transform:scale(1.045)}
.programme-directory-copy{padding:20px;display:flex;flex-direction:column;flex:1}
.programme-directory-copy>span{font-size:.68rem;text-transform:uppercase;letter-spacing:.07em;color:var(--polish-red);font-weight:800}
.programme-directory-copy h3{margin:5px 0 8px}
.programme-directory-copy p{font-size:.84rem;line-height:1.58;flex:1}
.programme-directory-copy .card-link{margin-top:15px}

/* Alignment for field / media cards. */
.field-slide>div{min-width:0}
.field-slide h3{overflow-wrap:anywhere}
.media-explorer-copy{display:flex;flex-direction:column;min-height:150px}
.media-explorer-copy p{flex:1}

/* About/Home heading gap refinements retained from earlier request. */
.home-about-heading{width:100%;max-width:920px;margin:0 auto 38px!important;text-align:center!important}
.home-about-heading .eyebrow{justify-content:center}
.home-about-heading h2{max-width:none!important}

@media(max-width:1100px){
 .programme-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .programme-directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .programme-pathway-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
 .section-head,.section-heading{grid-template-columns:1fr!important;gap:16px!important}
 .section-head p,.section-heading p{justify-self:start!important;max-width:760px!important}
 .program-layout{grid-template-columns:1fr!important}
 .support-side{position:relative!important;top:auto!important}
 .programme-pathway-head{grid-template-columns:1fr}
}
@media(max-width:620px){
 .programme-photo-grid,.programme-directory-grid,.programme-pathway-grid{grid-template-columns:1fr}
 .programme-pathway{padding:22px 18px}
 .programme-photo-card{border-radius:19px}
 .card-grid,.news-grid,.projects-grid,.jobs-grid,.people-grid,.location-grid,.report-grid,.campaign-grid,.contact-grid,.media-explorer-grid{grid-template-columns:1fr!important}
 .home-about-heading{text-align:left!important;margin-bottom:28px!important}
 .home-about-heading .eyebrow{justify-content:flex-start}
}

/* ==========================================================
   KIRAN V4 — responsive sizing, card alignment & new modules
   ========================================================== */
html{max-width:100%;overflow-x:hidden}
body{width:100%;max-width:100%;overflow-x:hidden}
main{width:100%;min-width:0}
section{max-width:100%;min-width:0}
.container{max-width:1180px;min-width:0}
img,svg,video,iframe{max-width:100%}

/* Main navigation: Contact Us is now a first-class destination. */
.nav-contact{color:var(--red,var(--kiran-red,#9f231f))!important}
.mobile-contact-link{gap:9px;color:var(--red,var(--kiran-red,#9f231f))!important}
.mobile-contact-link i{width:20px;text-align:center}

/* Prevent uneven columns / content overflow in every recurring grid system. */
.card-grid,.jobs-grid,.people-grid,.events-grid,.projects-grid,.news-grid,.report-grid,.campaign-grid,.location-grid,.contact-grid,.impact-grid,.involve-grid,.promise-grid,.choice-grid,.fund-grid,.stories-grid,.stories-detail-grid,.about-grid,.home-about-grid,.split-grid,.gift-strip-grid,.programme-directory-grid,.programme-photo-grid,.media-explorer-grid,.reach-summary-cards,.home-event-grid{
  grid-auto-rows:1fr;
}
.card,.job-card,.person-card,.event-card,.project-card,.news-card,.report-card,.campaign-card,.location-card,.contact-office,.impact-card,.involve-card,.promise-card,.choice-card,.fund-card,.story-card,.story-detail-card,.programme-directory-card,.programme-photo-card,.media-explorer-card,.reach-summary-cards>article,.home-event-grid>article{
  min-width:0;
  max-width:100%;
}
.card h3,.job-card h3,.person-card h3,.event-card h3,.project-card h3,.news-card h3,.report-card h3,.campaign-card h3,.location-card h3,.impact-card h3,.programme-directory-card h3,.programme-photo-card h3,.story-detail-card h3{
  overflow-wrap:anywhere;
  word-break:normal;
}
.card p,.job-card p,.person-card p,.event-card p,.project-card p,.news-card p,.report-card p,.campaign-card p,.location-card p,.programme-directory-card p,.programme-photo-card p,.story-detail-card p{
  overflow-wrap:anywhere;
}
.job-actions,.hero-actions,.filters,.filterbar,.status-filter-row,.tabs{max-width:100%}
.job-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.job-actions .btn,.job-actions .text-btn{max-width:100%}

/* Forms should never force a page wider than the viewport. */
.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.form-grid label,.form-card label,.mini-form label{min-width:0}
.form-card input,.form-card select,.form-card textarea,.mini-form input,.mini-form select,.mini-form textarea{width:100%;min-width:0}
input[type=file]{font-size:.82rem}

/* Career vacancy status: persistent controls, combined filter state, clear count. */
.status-filter-row{position:relative;z-index:2;padding:12px 14px;border:1px solid var(--polish-line);border-radius:14px;background:#fff;box-shadow:0 8px 22px rgba(44,35,26,.045)}
.status-filter{cursor:pointer;white-space:nowrap}
.vacancy-count{margin-left:auto;color:var(--polish-green);font-size:.76rem;font-weight:800}
.job-card.job-filter-hidden{display:none!important}
.job-card.open{box-shadow:0 18px 55px rgba(44,35,26,.12);border-color:rgba(159,35,31,.22)}
.job-full{max-height:0;overflow:hidden;opacity:0;transition:max-height .42s ease,opacity .3s ease,padding .3s ease;margin-top:0;padding-top:0;border-top:0 solid var(--polish-line)}
.job-card.open .job-full{max-height:1000px;opacity:1;margin-top:18px;padding-top:18px;border-top-width:1px}
.job-detail[aria-expanded="true"]{background:var(--polish-red);color:#fff;border-color:var(--polish-red)}

/* Student Ambassador — richer, interactive benefit storytelling. */
.ambassador-benefits-section{padding-bottom:34px}
.ambassador-benefit-banner{display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:30px;align-items:center;padding:28px;border-radius:28px;background:linear-gradient(135deg,#fff8e9,#fff 55%,#eef5ef);border:1px solid var(--polish-line);box-shadow:var(--polish-shadow);overflow:hidden}
.ambassador-benefit-copy{padding:12px 4px 12px 12px;min-width:0}
.ambassador-benefit-copy h2{font-size:clamp(2rem,3.3vw,3.35rem);margin-bottom:14px}
.ambassador-benefit-banner>img{width:100%;border-radius:22px;box-shadow:0 18px 40px rgba(32,35,31,.16)}
.ambassador-benefit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}
.amb-benefit-card{height:100%;padding:24px;border-radius:20px;background:#fff;border:1px solid var(--polish-line);box-shadow:var(--polish-soft);transition:.28s ease;position:relative;overflow:hidden}
.amb-benefit-card:after{content:"";position:absolute;inset:auto 0 0;height:3px;background:linear-gradient(90deg,var(--polish-red),var(--polish-gold),var(--polish-green));transform:scaleX(.15);transform-origin:left;transition:.3s}
.amb-benefit-card:hover{transform:translateY(-6px);box-shadow:var(--polish-shadow)}
.amb-benefit-card:hover:after{transform:scaleX(1)}
.amb-benefit-card i{width:50px;height:50px;border-radius:15px;display:grid;place-items:center;background:#fff1d4;color:var(--polish-red);font-size:1.2rem;margin-bottom:18px}
.amb-benefit-card h3{margin-bottom:8px;font-size:1.16rem}
.amb-benefit-card p{font-size:.84rem;line-height:1.62}
.ambassador-journey{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:stretch;counter-reset:journey}
.ambassador-journey article{height:100%;padding:22px;border-radius:20px;background:#fff;border:1px solid var(--polish-line);box-shadow:var(--polish-soft);position:relative}
.ambassador-journey article b{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--polish-red);color:#fff;font-family:"Libre Baskerville",serif;margin-bottom:18px}
.ambassador-journey article h3{font-size:1.12rem;margin-bottom:7px}
.ambassador-journey article p{font-size:.82rem;line-height:1.6}
.ambassador-ideas{margin-top:22px;padding:28px;border-radius:22px;background:linear-gradient(125deg,#253e2d,#486f52);color:#fff;display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;box-shadow:var(--polish-shadow)}
.ambassador-ideas span{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--polish-gold);font-weight:800}
.ambassador-ideas h3{color:#fff;margin:5px 0 8px}
.ambassador-ideas p{color:rgba(255,255,255,.72);font-size:.85rem}

/* Stories of Change: clickable explorer and accessible detail modal. */
.story-explorer-intro{display:grid;grid-template-columns:1fr .8fr;gap:28px;align-items:end;margin:8px 0 22px}
.story-explorer-intro h3{font-size:clamp(1.45rem,2.2vw,2rem)}
.story-explorer-intro p{justify-self:end;max-width:520px}
.story-explorer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:38px;align-items:stretch}
.story-explorer-card{appearance:none;text-align:left;padding:0;border:1px solid var(--polish-line);background:#fff;border-radius:22px;overflow:hidden;box-shadow:var(--polish-soft);cursor:pointer;transition:.3s ease;color:var(--polish-ink);display:flex;flex-direction:column;min-width:0}
.story-explorer-card:hover,.story-explorer-card:focus-visible{transform:translateY(-7px);box-shadow:var(--polish-shadow);border-color:rgba(159,35,31,.25);outline:none}
.story-explorer-card img{width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform .55s ease}
.story-explorer-card:hover img{transform:scale(1.045)}
.story-explorer-card>span,.story-explorer-card>h3,.story-explorer-card>p,.story-explorer-card>b{margin-left:20px;margin-right:20px}
.story-explorer-card>span{margin-top:18px;color:var(--polish-red);font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.story-explorer-card>h3{margin-top:6px;margin-bottom:8px}
.story-explorer-card>p{font-size:.82rem;line-height:1.58;flex:1}
.story-explorer-card>b{margin-top:16px;margin-bottom:20px;color:var(--polish-red);font-size:.78rem;display:flex;align-items:center;gap:7px}
.story-explorer-card:hover>b i{transform:translateX(4px)}
.story-explorer-card b i{transition:.2s}
.story-open-self{margin-top:18px}
.story-modal{position:fixed;inset:0;z-index:2400;display:grid;place-items:center;padding:24px;opacity:0;visibility:hidden;pointer-events:none;transition:.25s ease}
.story-modal.open{opacity:1;visibility:visible;pointer-events:auto}
.story-modal-backdrop{position:absolute;inset:0;background:rgba(18,20,18,.66);backdrop-filter:blur(7px)}
.story-modal-dialog{position:relative;z-index:2;width:min(920px,100%);max-height:min(88vh,900px);overflow:auto;border-radius:26px;background:#fffdf8;box-shadow:0 30px 100px rgba(0,0,0,.28);padding:28px}
.story-modal-close{position:sticky;float:right;top:0;z-index:3;width:42px;height:42px;border:0;border-radius:50%;background:#fff;box-shadow:var(--polish-soft);cursor:pointer;color:var(--polish-red)}
.story-modal-content .story-detail-card{display:grid!important;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr)!important;gap:24px!important;border:0!important;box-shadow:none!important;background:transparent!important;padding:0!important}
.story-modal-content .story-open-self{display:none!important}
.story-modal-content .story-visual,.story-modal-content .story-copy{min-width:0}
body.story-modal-open{overflow:hidden}

/* Footer quick links stay balanced even with six items. */
.footer-links{align-content:start}

@media(max-width:1100px){
  .ambassador-benefit-banner{grid-template-columns:1fr}
  .ambassador-benefit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ambassador-journey{grid-template-columns:repeat(2,minmax(0,1fr))}
  .story-explorer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
  .vacancy-count{width:100%;margin-left:0}
  .story-explorer-intro{grid-template-columns:1fr;gap:10px}
  .story-explorer-intro p{justify-self:start}
  .story-modal-content .story-detail-card{grid-template-columns:1fr!important}
  .ambassador-ideas{grid-template-columns:1fr}
}
@media(max-width:760px){
  .form-grid{grid-template-columns:1fr!important}
  .jobs-grid,.people-grid,.events-grid,.projects-grid,.news-grid,.report-grid,.campaign-grid,.location-grid,.contact-grid,.impact-grid,.involve-grid,.promise-grid,.choice-grid,.fund-grid,.stories-grid,.stories-detail-grid,.about-grid,.home-about-grid,.split-grid,.gift-strip-grid{grid-template-columns:1fr!important}
  .job-actions .btn,.job-actions .text-btn{flex:1 1 100%;width:100%}
}
@media(max-width:620px){
  .ambassador-benefit-grid,.ambassador-journey,.story-explorer-grid{grid-template-columns:1fr}
  .ambassador-benefit-banner{padding:18px;border-radius:22px}
  .ambassador-benefit-copy{padding:2px}
  .ambassador-ideas{padding:22px 18px}
  .story-modal{padding:10px}
  .story-modal-dialog{padding:18px;border-radius:20px;max-height:92vh}
  .status-filter-row{align-items:stretch}
  .status-filter-row>span{width:100%}
  .status-filter{flex:1 1 auto}
}
