:root{
  --black:#050505;
  --red:#F04424;
  --white:#FFF;
  --grey-light:#F5F5F5;
  --grey-mid:#6B7280;
  --grey-dark:#171717;
  --line:#E4E4E4;
  --maxw:1160px;
}
*{margin:0;padding:0;box-sizing:border-box;min-width:0;}
html{scroll-behavior:smooth;}
html,body{overflow-x:hidden;width:100%;}
body{
  font-family:'Manrope',-apple-system,'Segoe UI',sans-serif;
  color:var(--black);
  background:var(--white);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img,svg{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;overflow-wrap:anywhere;}
ul{list-style:none;}
p,h1,h2,h3,h4,span{overflow-wrap:anywhere;}
input,textarea,select{max-width:100%;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;width:100%;}
@media (max-width:640px){ .wrap{padding:0 20px;} }
h1,h2,h3{font-weight:700;letter-spacing:-0.01em;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:8px;
  font-size:15px;font-weight:600;padding:13px 24px;border-radius:8px;
  border:1.5px solid transparent;cursor:pointer;
  transition:transform .15s ease, background .15s ease, border-color .15s ease;
  white-space:nowrap;font-family:inherit;
}
.btn:hover{transform:translateY(-1px);}
.btn-primary{background:var(--red);color:var(--white);}
.btn-primary:hover{background:#d8391c;}
.btn-secondary{background:transparent;color:var(--black);border-color:var(--black);}
.btn-secondary:hover{background:var(--black);color:var(--white);}
.btn-dark{background:var(--black);color:var(--white);}
.btn-dark:hover{background:var(--grey-dark);}

/* ---------- Nav ---------- */
header{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,.92);backdrop-filter:blur(8px);
  border-bottom:1px solid transparent;transition:border-color .2s ease;
}
header.scrolled{border-bottom-color:var(--line);}
nav{max-width:var(--maxw);margin:0 auto;padding:18px 32px;display:flex;align-items:center;justify-content:space-between;gap:20px;}
.logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:18px;letter-spacing:-0.01em;}
.logo-mark{width:26px;height:26px;flex-shrink:0;}
.nav-links{display:flex;gap:28px;font-size:14.5px;font-weight:500;}
.nav-links a{color:var(--grey-dark);transition:color .15s ease;white-space:nowrap;}
.nav-links a.active{color:var(--black);font-weight:700;}
.nav-links a:hover{color:var(--black);}
.nav-right{display:flex;align-items:center;gap:18px;}
.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:6px;flex-shrink:0;}
@media (max-width:960px){
  .nav-links{display:none;}
  .nav-right .btn-primary{display:none;}
  .nav-toggle{display:flex;}
}

section{padding:96px 0;}
@media (max-width:760px){ section{padding:60px 0;} }

.section-head{max-width:560px;margin-bottom:52px;}
.section-head h2{font-size:clamp(28px,3.4vw,38px);}
.section-head p{font-size:16px;color:var(--grey-mid);margin-top:12px;}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}

/* ---------- Image placeholders ---------- */
.img-placeholder{
  background:var(--grey-light);
  border:1.5px dashed #C9C9C9;
  border-radius:16px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:10px;
  color:var(--grey-mid);
  text-align:center;
  padding:24px;
  width:100%;
}
.img-placeholder svg{width:30px;height:30px;stroke:#B0B0B0;}
.img-placeholder .ph-label{font-size:12.5px;font-weight:600;color:var(--grey-mid);}
.img-placeholder .ph-note{font-size:11.5px;color:#9CA3AF;max-width:220px;}
.ph-square{aspect-ratio:1/1;}
.ph-wide{aspect-ratio:16/9;}
.ph-tall{aspect-ratio:3/4;}
.ph-banner{aspect-ratio:21/8;}

/* ---------- Real image frames (replaces .img-placeholder once photos are in) ---------- */
.img-frame{border-radius:16px;overflow:hidden;width:100%;background:var(--grey-light);}
.img-frame img{width:100%;height:100%;object-fit:cover;display:block;}

/* ---------- Page hero (inner pages) ---------- */
.page-hero{padding:72px 0 56px;border-bottom:1px solid var(--line);}
.eyebrow-tag{
  display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--red);
  background:#FDEDE9;padding:7px 14px;border-radius:100px;margin-bottom:22px;
}
.eyebrow-tag .dot{width:6px;height:6px;border-radius:50%;background:var(--red);}
.page-hero h1{font-size:clamp(34px,5vw,54px);line-height:1.1;max-width:760px;margin-bottom:20px;}
.page-hero p.lead{font-size:18px;color:var(--grey-mid);max-width:560px;}

/* ---------- Footer ---------- */
footer{background:var(--black);color:var(--white);padding-top:64px;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px;padding-bottom:48px;border-bottom:1px solid #262626;}
@media (max-width:760px){ .footer-grid{grid-template-columns:1fr 1fr;row-gap:36px;} }
.footer-logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:17px;margin-bottom:14px;}
.footer-logo .logo-mark{width:24px;height:24px;}
.footer-grid p.desc{font-size:14px;color:#A3A3A3;max-width:260px;}
.footer-col h4{font-size:13px;font-weight:700;color:#A3A3A3;margin-bottom:16px;letter-spacing:.02em;}
.footer-col a{display:block;font-size:14.5px;color:#D4D4D4;margin-bottom:12px;}
.footer-col a:hover{color:var(--white);}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding:26px 0;font-size:13px;color:#737373;flex-wrap:wrap;gap:10px;}

/* ---------- Mobile menu ---------- */
.hidden-mobile-menu{display:none;position:fixed;inset:0;background:var(--white);z-index:60;padding:24px 24px;flex-direction:column;overflow-y:auto;}
.hidden-mobile-menu.open{display:flex;}
.hidden-mobile-menu .close-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;}
.hidden-mobile-menu a{font-size:20px;font-weight:600;padding:12px 0;border-bottom:1px solid var(--line);}
.hidden-mobile-menu .btn{margin-top:20px;justify-content:center;}

/* =====================================================
   HOMEPAGE-SPECIFIC
   ===================================================== */
.hero{padding-top:88px;padding-bottom:72px;}
.hero-grid{display:grid;grid-template-columns:1.05fr 0.95fr;gap:56px;align-items:center;}
@media (max-width:900px){ .hero-grid{grid-template-columns:1fr;} }
.hero h1{font-size:clamp(38px,5.4vw,60px);line-height:1.08;margin-bottom:22px;}
.hero p.lead{font-size:18px;color:var(--grey-mid);max-width:480px;margin-bottom:34px;}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;}

.shield-panel{position:relative;}
.shield-card{
  background:var(--grey-light);border-radius:24px;padding:48px;
  display:flex;align-items:center;justify-content:center;aspect-ratio:1/1;
  position:relative;overflow:hidden;
}
.shield-svg{width:100%;}
.float-chip{
  position:absolute;background:var(--white);border:1px solid var(--line);border-radius:10px;
  padding:9px 13px;font-size:12.5px;font-weight:600;display:flex;align-items:center;gap:7px;
  box-shadow:0 6px 20px rgba(0,0,0,.06);animation:drift 6s ease-in-out infinite;
}
.float-chip .status-dot{width:7px;height:7px;border-radius:50%;}
.chip-1{top:10%;left:4%;animation-delay:0s;}
.chip-1 .status-dot{background:#22C55E;}
.chip-2{bottom:14%;right:2%;animation-delay:1.4s;}
.chip-2 .status-dot{background:var(--red);}
.chip-3{top:44%;right:-2%;animation-delay:2.8s;}
.chip-3 .status-dot{background:#22C55E;}
@keyframes drift{0%,100%{transform:translateY(0);}50%{transform:translateY(-8px);}}
@media (prefers-reduced-motion: reduce){ .float-chip{animation:none;} }
@media (max-width:900px){ .float-chip{display:none;} }

.trust{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:44px 0;}
.trust-head{font-size:14px;font-weight:700;color:var(--grey-mid);text-align:center;margin-bottom:36px;}
.trust-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;}
@media (max-width:760px){ .trust-grid{grid-template-columns:repeat(2,1fr);} }
.trust-item{display:flex;align-items:flex-start;gap:14px;}
.trust-num{font-size:13px;font-weight:700;color:var(--red);border:1.5px solid var(--red);
  width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.trust-item span.label{font-size:15px;font-weight:600;}

.about-teaser-grid{display:grid;grid-template-columns:0.9fr 1.1fr;gap:64px;align-items:center;}
@media (max-width:860px){ .about-teaser-grid{grid-template-columns:1fr;gap:36px;} }
.about-teaser-grid h2{font-size:clamp(28px,3.4vw,38px);margin-bottom:18px;}
.about-teaser-grid p.body-lg{font-size:17px;color:var(--grey-mid);max-width:440px;margin-bottom:24px;}

.principles{display:flex;flex-direction:column;}
.principle{display:flex;gap:20px;padding:26px 0;border-top:1px solid var(--line);}
.principle:last-child{border-bottom:1px solid var(--line);}
.principle-mark{width:40px;height:40px;border-radius:10px;background:var(--black);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.principle-mark svg{width:19px;height:19px;stroke:var(--white);}
.principle h3{font-size:18px;margin-bottom:5px;}
.principle p{font-size:15px;color:var(--grey-mid);max-width:400px;}

.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
@media (max-width:900px){ .services-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:620px){ .services-grid{grid-template-columns:1fr;} }
.service-card{border:1px solid var(--line);border-radius:16px;padding:28px 24px;display:flex;flex-direction:column;
  transition:transform .18s ease, border-color .18s ease;position:relative;}
.service-card:hover{transform:translateY(-4px);border-color:var(--black);}
.service-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px;}
.service-num{font-size:13px;font-weight:700;color:var(--grey-mid);}
.service-icon{width:36px;height:36px;border-radius:9px;background:var(--grey-light);display:flex;align-items:center;justify-content:center;}
.service-icon svg{width:18px;height:18px;stroke:var(--red);}
.service-card h3{font-size:17px;margin-bottom:8px;}
.service-card p{font-size:14.5px;color:var(--grey-mid);flex-grow:1;margin-bottom:18px;}
.service-link{font-size:14px;font-weight:600;display:inline-flex;align-items:center;gap:6px;}
.service-link svg{width:14px;height:14px;transition:transform .15s ease;}
.service-card:hover .service-link svg{transform:translateX(3px);}

.threats{background:var(--black);color:var(--white);}
.threats .section-head p{color:#A3A3A3;}
.threats .section-head h2{color:var(--white);}
.threat-list{display:flex;flex-direction:column;}
.threat-row{display:grid;grid-template-columns:200px 1fr;gap:24px;padding:24px 0;border-top:1px solid #262626;align-items:baseline;}
.threat-row:last-child{border-bottom:1px solid #262626;}
@media (max-width:640px){ .threat-row{grid-template-columns:1fr;gap:6px;} }
.threat-name{font-size:16px;font-weight:700;letter-spacing:.02em;}
.threat-desc{font-size:15px;color:#A3A3A3;}

.interactive-card{background:var(--grey-light);border-radius:24px;padding:56px;max-width:600px;margin:0 auto;text-align:center;}
@media (max-width:640px){ .interactive-card{padding:32px 22px;} }
.msg-bubble{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:22px 24px;text-align:left;margin-bottom:28px;font-size:15px;}
.msg-bubble .subject{font-weight:700;color:var(--red);margin-bottom:6px;}
.click-actions{display:flex;gap:14px;justify-content:center;margin-bottom:8px;}
.click-btn{padding:12px 32px;border-radius:8px;font-weight:700;font-size:15px;border:1.5px solid var(--black);cursor:pointer;background:var(--white);
  transition:background .15s ease, color .15s ease;font-family:inherit;}
.click-btn:hover{background:var(--black);color:var(--white);}
.result{margin-top:24px;padding:18px;border-radius:12px;font-size:14.5px;text-align:left;display:none;}
.result.show{display:block;animation:fadein .25s ease;}
@keyframes fadein{from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:translateY(0);}}
.result.bad{background:#FDEDE9;border:1px solid #F5C4B8;}
.result.good{background:#EAF7EE;border:1px solid #B9E6C3;}
.result strong{display:block;margin-bottom:4px;font-size:15px;}

.stats{background:var(--black);color:var(--white);}
.stats-head{font-size:clamp(24px,3vw,32px);font-weight:700;max-width:520px;margin-bottom:56px;}
.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;}
@media (max-width:700px){ .stats-grid{grid-template-columns:1fr;gap:36px;} }
.stat-num{font-size:clamp(40px,5vw,56px);font-weight:800;color:var(--red);line-height:1;margin-bottom:10px;}
.stat-label{font-size:15px;color:#A3A3A3;}

.resource-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
@media (max-width:700px){ .resource-grid{grid-template-columns:1fr;} }
.resource-card{border:1px solid var(--line);border-radius:16px;padding:22px 24px;display:flex;justify-content:space-between;align-items:center;gap:16px;
  transition:border-color .15s ease, background .15s ease;}
.resource-card:hover{border-color:var(--black);background:var(--grey-light);}
.resource-card h3{font-size:15.5px;font-weight:600;}
.resource-card svg{width:16px;height:16px;flex-shrink:0;}
.resources-cta{margin-top:36px;text-align:center;}

.cta-section{background:var(--black);color:var(--white);text-align:center;}
.cta-section h2{font-size:clamp(28px,4vw,42px);max-width:640px;margin:0 auto 16px;}
.cta-section p{font-size:16px;color:#A3A3A3;max-width:460px;margin:0 auto 32px;}
.cta-tagline{margin-top:40px;font-size:14px;color:#7A7A7A;letter-spacing:.02em;}
.cta-section.light{background:var(--grey-light);color:var(--black);}
.cta-section.light p{color:var(--grey-mid);}

/* =====================================================
   ABOUT PAGE
   ===================================================== */
.mission-grid{display:grid;grid-template-columns:0.85fr 1.15fr;gap:64px;align-items:start;}
@media (max-width:860px){ .mission-grid{grid-template-columns:1fr;gap:36px;} }
.mission-grid h2{font-size:clamp(26px,3.2vw,34px);margin-bottom:16px;}
.mission-grid p.body-lg{font-size:17px;color:var(--grey-mid);max-width:420px;}
.mission-copy p{font-size:16px;color:var(--grey-dark);margin-bottom:18px;}
.mission-copy p:last-child{margin-bottom:0;}

.mv-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:48px;}
@media (max-width:760px){ .mv-grid{grid-template-columns:1fr;} }
.mv-card{border:1px solid var(--line);border-radius:16px;padding:32px;}
.mv-card .mv-icon{width:38px;height:38px;border-radius:10px;background:var(--black);display:flex;align-items:center;justify-content:center;margin-bottom:20px;}
.mv-card .mv-icon svg{width:18px;height:18px;stroke:var(--white);}
.mv-card h3{font-size:19px;margin-bottom:10px;}
.mv-card p{font-size:15px;color:var(--grey-mid);}

.approach{background:var(--black);color:var(--white);}
.approach .section-head p{color:#A3A3A3;margin-top:12px;max-width:520px;}
.steps{display:flex;flex-direction:column;margin-top:48px;}
.step-row{display:grid;grid-template-columns:64px 1fr;gap:24px;padding:28px 0;border-top:1px solid #262626;}
.step-row:last-child{border-bottom:1px solid #262626;}
.step-num{font-size:14px;font-weight:700;color:var(--red);}
.step-row h3{font-size:18px;margin-bottom:6px;}
.step-row p{font-size:15px;color:#A3A3A3;max-width:520px;}

.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:48px;}
@media (max-width:860px){ .values-grid{grid-template-columns:1fr;} }
.value-card{border:1px solid var(--line);border-radius:16px;padding:28px 24px;}
.value-icon{width:36px;height:36px;border-radius:9px;background:var(--grey-light);display:flex;align-items:center;justify-content:center;margin-bottom:18px;}
.value-icon svg{width:18px;height:18px;stroke:var(--red);}
.value-card h3{font-size:16.5px;margin-bottom:8px;}
.value-card p{font-size:14.5px;color:var(--grey-mid);}

/* =====================================================
   GALLERY PAGE
   ===================================================== */
.gallery-filter{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:40px;}
.filter-pill{border:1.5px solid var(--line);border-radius:100px;padding:9px 18px;font-size:13.5px;font-weight:600;
  background:var(--white);cursor:pointer;transition:border-color .15s ease, background .15s ease, color .15s ease;font-family:inherit;}
.filter-pill.active, .filter-pill:hover{border-color:var(--black);background:var(--black);color:var(--white);}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
@media (max-width:860px){ .gallery-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .gallery-grid{grid-template-columns:1fr;} }
.gallery-item{grid-column:span 1;}
.gallery-item.tall{grid-row:span 1;}
.gallery-caption{margin-top:10px;}
.gallery-caption .g-title{font-size:14.5px;font-weight:600;}
.gallery-caption .g-cat{font-size:12.5px;color:var(--grey-mid);}

/* =====================================================
   FORM PAGES (Partner / Volunteer / Contact)
   ===================================================== */
.form-layout{display:grid;grid-template-columns:0.8fr 1.2fr;gap:56px;align-items:start;}
@media (max-width:900px){ .form-layout{grid-template-columns:1fr;gap:40px;} }
.form-intro h2{font-size:clamp(24px,3vw,30px);margin-bottom:14px;}
.form-intro p{font-size:15.5px;color:var(--grey-mid);margin-bottom:28px;}
.form-info-list{display:flex;flex-direction:column;gap:18px;margin-top:8px;}
.form-info-item{display:flex;gap:14px;align-items:flex-start;}
.form-info-item .fi-icon{width:34px;height:34px;border-radius:9px;background:var(--grey-light);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.form-info-item .fi-icon svg{width:16px;height:16px;stroke:var(--red);}
.form-info-item h4{font-size:14.5px;font-weight:700;margin-bottom:2px;}
.form-info-item p{font-size:14px;color:var(--grey-mid);margin:0;}

.form-card{background:var(--grey-light);border-radius:20px;padding:36px;}
@media (max-width:560px){ .form-card{padding:24px;} }
fieldset{border:none;margin-bottom:30px;}
fieldset:last-of-type{margin-bottom:0;}
legend{font-size:13px;font-weight:700;color:var(--red);text-transform:uppercase;letter-spacing:.04em;margin-bottom:18px;padding:0;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media (max-width:560px){ .form-row{grid-template-columns:1fr;} }
.field{margin-bottom:18px;}
.field:last-child{margin-bottom:0;}
.field label{display:block;font-size:14px;font-weight:600;margin-bottom:7px;}
.field .req{color:var(--red);}
.field input[type=text], .field input[type=email], .field input[type=tel], .field input[type=url], .field textarea, .field select{
  width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:9px;font-size:14.5px;font-family:inherit;
  background:var(--white);color:var(--black);transition:border-color .15s ease;
}
.field input:focus, .field textarea:focus, .field select:focus{outline:none;border-color:var(--black);}
.field textarea{resize:vertical;min-height:90px;}
.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;}
@media (max-width:560px){ .check-grid{grid-template-columns:1fr;} }
.check-item{display:flex;align-items:center;gap:9px;font-size:14.5px;}
.check-item input{width:16px;height:16px;accent-color:var(--red);flex-shrink:0;}
.radio-row{display:flex;flex-direction:column;gap:10px;}
.consent-row{display:flex;align-items:flex-start;gap:10px;font-size:13.5px;color:var(--grey-dark);margin-top:6px;}
.consent-row input{width:16px;height:16px;accent-color:var(--red);flex-shrink:0;margin-top:2px;}
.file-drop{
  border:1.5px dashed #C9C9C9;border-radius:10px;padding:24px;text-align:center;
  font-size:13.5px;color:var(--grey-mid);background:var(--white);cursor:pointer;
}
.file-drop svg{width:22px;height:22px;stroke:#B0B0B0;margin:0 auto 8px;}
.form-submit{width:100%;justify-content:center;margin-top:8px;}
.form-success{display:none;background:#EAF7EE;border:1px solid #B9E6C3;border-radius:12px;padding:20px;font-size:14.5px;margin-top:18px;}
.form-success.show{display:block;animation:fadein .25s ease;}
.form-success strong{display:block;margin-bottom:4px;}

/* =====================================================
   FAQ (Contact page)
   ===================================================== */
.faq-list{display:flex;flex-direction:column;max-width:760px;}
.faq-item{border-top:1px solid var(--line);}
.faq-item:last-child{border-bottom:1px solid var(--line);}
.faq-q{
  width:100%;text-align:left;background:none;border:none;cursor:pointer;font-family:inherit;
  display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px 0;
  font-size:16px;font-weight:600;color:#fff;
}
.faq-q .plus{width:22px;height:22px;flex-shrink:0;position:relative;}
.faq-q .plus::before, .faq-q .plus::after{content:"";position:absolute;background:var(--black);border-radius:2px;transition:transform .2s ease;}
.faq-q .plus::before{width:14px;height:2px;top:10px;left:4px;}
.faq-q .plus::after{width:2px;height:14px;top:4px;left:10px;}
.faq-item.open .plus::after{transform:rotate(90deg);opacity:0;}
.faq-a{max-height:0;overflow:hidden;transition:max-height .25s ease;}
.faq-a p{font-size:15px;color:var(--grey-mid);padding-bottom:22px;max-width:680px;}

/* =====================================================
   CONTACT INFO CARDS
   ===================================================== */
.contact-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:64px;}
@media (max-width:760px){ .contact-cards{grid-template-columns:1fr;} }
.contact-card{border:1px solid var(--line);border-radius:16px;padding:26px 24px;}
.contact-card .cc-icon{width:36px;height:36px;border-radius:9px;background:var(--grey-light);display:flex;align-items:center;justify-content:center;margin-bottom:16px;}
.contact-card .cc-icon svg{width:17px;height:17px;stroke:var(--red);}
.contact-card h3{font-size:15px;margin-bottom:6px;}
.contact-card p, .contact-card a{font-size:14.5px;color:var(--grey-mid);display:block;}
.contact-card a:hover{color:var(--black);}
