/* ============ THEME: brand palette layered onto Bootstrap 5.3 CSS variables ============ */
:root{
  --sf-ink:#1c2422;
  --sf-ink-soft:#4c5650;
  --sf-paper:#FBF7EF;
  --sf-paper-alt:#F3EBDA;
  --sf-marigold:#E85A1F;
  --sf-marigold-deep:#C2470F;
  --sf-teal:#0E7052;
  --sf-teal-deep:#123A4A;
  --sf-leaf:#2E8562;
  --sf-line:#E4DCC8;

  /* Bootstrap theme overrides */
  --bs-primary: var(--sf-marigold);
  --bs-primary-rgb: 232,90,31;
  --bs-secondary: var(--sf-teal-deep);
  --bs-secondary-rgb: 18,58,74;
  --bs-success: var(--sf-teal);
  --bs-success-rgb: 14,112,82;
  --bs-body-color: var(--sf-ink);
  --bs-body-bg: var(--sf-paper);
  --bs-link-color: var(--sf-marigold-deep);
  --bs-link-hover-color: var(--sf-marigold);
  --bs-border-color: var(--sf-line);
  --bs-body-font-family: 'Inter', sans-serif;
  --bs-border-radius: .8rem;
  --bs-border-radius-sm: .6rem;
  --bs-border-radius-lg: 1.1rem;
  --bs-border-radius-pill: 999px;
}
body{ background:var(--sf-paper); color:var(--sf-ink); overflow-x:hidden; }
h1,h2,h3,h4,.font-display{ font-family:'Fraunces',serif; letter-spacing:-.01em; color:var(--sf-teal-deep); }
.text-marigold{ color:var(--sf-marigold-deep)!important; }
.bg-paper-alt{ background:var(--sf-paper-alt)!important; }
.bg-teal-deep{ background:var(--sf-teal-deep)!important; }
.section-py{ padding-top:4.4rem; padding-bottom:4.4rem; scroll-margin-top:160px; }

/* Buttons */
.btn{ border-radius:999px; font-weight:700; transition:all .18s; }
.custom-pills .nav-link{ padding:.4rem 1rem !important; }
.btn-primary{ color:#fff; }
.btn-outline-dark{ border-width:1.5px; }

/* Eyebrow label */
.eyebrow{
  display:inline-flex; align-items:center; gap:.45rem; font-size:.8rem; font-weight:700;
  letter-spacing:.08em; text-transform:uppercase; color:var(--sf-marigold-deep); margin-bottom:.5rem;
}
.eyebrow .petal{ width:8px; height:8px; border-radius:60% 0 60% 0; background:var(--sf-marigold); transform:rotate(45deg); display:inline-block; flex-shrink:0; }

/* Top notice bar (scrolling marquee) */
.topbar-notice{
  background:var(--sf-teal-deep); color:#fff; display:flex; align-items:center; justify-content:space-between;
  padding:.45rem 1rem; font-size:.82rem; gap:1rem; position:relative; z-index:1031;
}
.topbar-scroll{
  flex:1; min-width:0; overflow:hidden; white-space:nowrap;
  mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);
}
.topbar-track{ display:inline-flex; gap:5rem; animation:topbarMarquee 22s linear infinite; will-change:transform; }
.topbar-notice:hover .topbar-track{ animation-play-state:paused; }
.topbar-track a{ color:var(--sf-marigold)!important; text-decoration:underline!important; font-weight:600; margin-left:.35rem; }
.topbar-sep{ opacity:.5; margin:0 1.75rem; }
@keyframes topbarMarquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
.topbar-contact{ display:flex; gap:1.25rem; white-space:nowrap; flex-shrink:0; }
.topbar-contact a{ color:#fff!important; text-decoration:none!important; font-weight:500; }
.topbar-contact a:hover{ color:var(--sf-marigold)!important; }
.topbar-contact i{ margin-right:.35rem; color:var(--sf-marigold); }
@media (prefers-reduced-motion: reduce){
  .topbar-track{ animation:none; }
  .topbar-track span[aria-hidden]{ display:none; }
}
@media (max-width:576px){ .topbar-notice{ font-size:.72rem; padding:.4rem .75rem; } }

/* Navbar & Header */
header.sticky-top{ position:sticky; top:0; z-index:1030; background:var(--sf-paper); box-shadow:0 2px 14px rgba(0,0,0,.07); }
.navbar{ background:var(--sf-paper); border-bottom:1px solid var(--sf-line); }
.navbar-brand{ padding-top:0; padding-bottom:0; display:flex; align-items:center; }
.navbar-brand img{ height:56px; max-height:56px; width:auto; object-fit:contain; display:block; }
.navbar-nav .nav-link{ font-weight:600; color:var(--sf-ink-soft); padding-bottom:4px; }
.navbar-nav .nav-link:hover{ color:var(--sf-marigold-deep); }
.navbar-nav .nav-link.active{ color:var(--sf-teal-deep); border-bottom:2px solid var(--sf-marigold); }

/* City pills row */
.city-bar{ background:var(--sf-teal-deep); }
.city-bar .nav-pills{ flex-wrap:nowrap; overflow-x:auto; -ms-overflow-style:none; scrollbar-width:none; }
.city-bar .nav-pills::-webkit-scrollbar{ display:none; }
.city-bar .nav-pills .nav-link{ color:#cfe3e0; font-weight:600; font-size:.86rem; border:1px solid rgba(255,255,255,.18); white-space:nowrap; border-radius:999px; padding:.35rem 1rem; }
.city-bar .nav-pills .nav-link:hover{ color:#fff; border-color:var(--sf-marigold); background:rgba(232,90,31,.18); }
.city-bar .nav-pills .nav-link.active{ background:var(--sf-marigold)!important; color:#fff; border-color:var(--sf-marigold); }

/* Cards */
.card{ border-color:var(--sf-line); transition:transform .15s, box-shadow .15s; }
.card-title{ font-family:'Fraunces',serif; }
.card-accent-top{ border-top:3px solid var(--sf-marigold)!important; }
.hover-lift:hover{ transform:translateY(-3px); box-shadow:0 8px 24px rgba(0,0,0,.09)!important; }

/* Photo placeholders */
.ph-gradient-1{ background:linear-gradient(135deg,var(--sf-marigold),var(--sf-teal)); }
.ph-gradient-2{ background:linear-gradient(135deg,var(--sf-teal),var(--sf-leaf)); }
.ph-gradient-3{ background:linear-gradient(150deg,var(--sf-leaf),var(--sf-marigold-deep)); }
.ph-gradient-4{ background:linear-gradient(135deg,var(--sf-marigold-deep),var(--sf-teal-deep)); }
.ratio-people{ aspect-ratio:1/1; border-radius:1rem; }

/* Person card */
.person-card{ position:relative; cursor:pointer; }

/* Auto-sliding person carousel (Trustees/Directors/Members, home page) */
.person-carousel .carousel-item{ transition:transform .6s ease-in-out; }
.person-carousel-indicators{
  position:static; margin:1.25rem 0 0; display:flex; justify-content:center; gap:.4rem;
}
.person-carousel-indicators [data-bs-target]{
  width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,.35); border:0;
  opacity:1; text-indent:-9999px; transition:background .2s, transform .2s;
}
.person-carousel-indicators [data-bs-target].active{ background:var(--sf-marigold); transform:scale(1.2); }

/* Welcome popup modal art */
.popup-art{
  height:180px;
  background:linear-gradient(135deg,var(--sf-teal-deep) 0%,#2d6a4f 40%,var(--sf-marigold-deep) 100%);
  border-radius:0;
}
#welcomeModal .modal-content{ border-radius:1rem !important; overflow:hidden; }
#welcomeModal .modal-body h3{ font-family:'Fraunces',serif; color:var(--sf-teal-deep); font-size:1.3rem; }
#welcomeModal .btn-outline-secondary{ border-color:#ccc; color:var(--sf-ink); border-radius:999px; font-weight:600; }
#welcomeModal .btn-outline-secondary:hover{ background:#f5f5f0; }


/* Hero Carousel */
.hero-carousel{ position:relative; }
.hero-carousel .carousel-inner{ height:78vh; min-height:460px; max-height:640px; }
.hero-carousel .carousel-item{ height:100%; position:relative; overflow:hidden; }
.hero-carousel .slide-bg{ position:absolute; inset:0; background-size:cover; background-position:center; z-index:1; }
/* Vertical centering wrapper inside slide */
.hero-carousel .slide-inner{
  position:absolute;
  inset:0;
  z-index:3;
  display:flex;
  align-items:center;
}
.hero-carousel .slide-caption{ max-width:600px; color:#fff; }
.hero-carousel .slide-caption h1{ color:#fff !important; font-family:'Fraunces',serif; }
.hero-carousel .slide-caption em{ font-style:italic; color:var(--sf-marigold) !important; }
.hero-carousel .slide-caption p{ color:rgba(255,255,255,.72); }
.hero-carousel .carousel-control-prev,
.hero-carousel .carousel-control-next{ width:48px; height:48px; top:50%; transform:translateY(-50%); bottom:auto; background:rgba(255,255,255,.18); border-radius:50%; margin:0 14px; opacity:.9; z-index:10; }
.hero-carousel .carousel-control-prev{ left:0; }
.hero-carousel .carousel-control-next{ right:0; }
.hero-carousel .carousel-control-prev:hover,
.hero-carousel .carousel-control-next:hover{ opacity:1; background:rgba(255,255,255,.25); }
.hero-carousel .carousel-indicators{ bottom:16px; }
.hero-carousel .carousel-indicators [data-bs-target]{ width:28px; height:3px; border-radius:2px; background:rgba(255,255,255,.6); border:0; }
.hero-carousel .carousel-indicators .active{ background:#fff; width:36px; }





/* News cards */
.news-card-img{ height:145px; overflow:hidden; flex-shrink:0; }

/* News card share button + popover */
.news-share-wrap{ z-index:5; }
.news-share-btn{
  width:32px; height:32px; border-radius:50%; border:0; display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.92); color:var(--sf-teal-deep); font-size:.85rem; box-shadow:0 3px 8px rgba(0,0,0,.22);
  transition:all .18s;
}
.news-share-btn:hover{ background:var(--sf-marigold); color:#fff; transform:scale(1.08); }
.news-share-popover{
  position:absolute; top:calc(100% + 8px); right:0; display:flex; gap:.4rem; background:#fff; padding:.45rem;
  border-radius:999px; box-shadow:0 8px 22px rgba(0,0,0,.18); opacity:0; visibility:hidden; transform:translateY(-6px);
  transition:all .18s ease;
}
.news-share-popover.show{ opacity:1; visibility:visible; transform:translateY(0); }
@media (hover:hover){
  .news-share-wrap:hover .news-share-popover{ opacity:1; visibility:visible; transform:translateY(0); }
}
.news-share-popover .share-icon{
  width:32px; height:32px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  color:#fff!important; font-size:.85rem; flex-shrink:0; transition:transform .15s; border:0; padding:0; cursor:pointer;
}
.news-share-popover .share-icon:hover{ transform:scale(1.12); }
.share-fb{ background:#1877F2; }
.share-ig{ background:radial-gradient(circle at 30% 110%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%); }
.share-wa{ background:#25D366; }

/* About section person cards on dark background */
.bg-teal-deep .person-card .ratio-people{ border-radius:1rem; }
.bg-teal-deep .card-title{ color:#fff; }
.bg-teal-deep .nav-pills .nav-link{
  color:rgba(255,255,255,.75);
  background:transparent;
  border:1px solid rgba(255,255,255,.2);
  border-radius:999px;
  padding:.4rem 1.25rem;
  font-weight:600;
  transition:all .18s;
}
.bg-teal-deep .nav-pills .nav-link:hover{
  color:#fff;
  border-color:var(--sf-marigold);
  background:rgba(232,90,31,.18);
}
.bg-teal-deep .nav-pills .nav-link.active{
  background-color:var(--sf-marigold)!important;
  color:#fff!important;
  border-color:var(--sf-marigold)!important;
}

/* Impact stats — flat condensed style with animated counters */
.impact-flat-heading{
  font-family:'Anton', sans-serif; text-transform:uppercase; letter-spacing:.02em;
  font-size:2rem; color:var(--sf-ink); text-align:center; margin-bottom:2.75rem;
}
.impact-flat{ text-align:center; padding:0 .5rem; }
.impact-flat .impact-number{ font-family:'Anton', sans-serif; font-size:clamp(2.4rem,5vw,3.4rem); line-height:1; color:var(--sf-marigold); }
.impact-flat .impact-short{
  font-family:'Anton', sans-serif; text-transform:uppercase; letter-spacing:.03em;
  font-size:1.05rem; color:var(--sf-marigold-deep); margin-top:.4rem;
}
.impact-flat .impact-desc{ font-size:.85rem; color:var(--sf-ink-soft); max-width:190px; margin:.45rem auto 0; line-height:1.45; }
@media (max-width:767px){
  .impact-flat{ margin-bottom:1.75rem; }
}

/* Sustainable Development Goals — hexagon icons */
.sdg-heading-small{
  font-family:'Anton', sans-serif; text-transform:uppercase; color:var(--sf-ink-soft);
  font-size:1.1rem; letter-spacing:.05em; margin-bottom:.15rem;
}
.sdg-hex{
  width:190px; height:220px;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M41.06,4.47 Q50,0 58.94,4.47 L91.06,20.53 Q100,25 100,35 L100,65 Q100,75 91.06,79.47 L58.94,95.53 Q50,100 41.06,95.53 L8.94,79.47 Q0,75 0,65 L0,35 Q0,25 8.94,20.53 Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M41.06,4.47 Q50,0 58.94,4.47 L91.06,20.53 Q100,25 100,35 L100,65 Q100,75 91.06,79.47 L58.94,95.53 Q50,100 41.06,95.53 L8.94,79.47 Q0,75 0,65 L0,35 Q0,25 8.94,20.53 Z'/%3E%3C/svg%3E");
  -webkit-mask-size:100% 100%; mask-size:100% 100%;
  -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  color:#fff; padding:1.25rem 1rem; text-align:center; transition:transform .2s ease;
}
.sdg-hex:hover{ transform:translateY(-4px); }
.sdg-hex i{ font-size:2.3rem; margin-bottom:.7rem; }
.sdg-hex-label{ font-family:'Anton', sans-serif; text-transform:uppercase; font-size:.92rem; line-height:1.25; letter-spacing:.01em; }
.sdg-hex-num{ font-family:'Anton', sans-serif; font-size:1.3rem; margin-top:.6rem; opacity:.92; }
@media (max-width:576px){
  .sdg-hex{ width:150px; height:175px; padding:1rem .75rem; }
  .sdg-hex i{ font-size:1.8rem; margin-bottom:.4rem; }
  .sdg-hex-label{ font-size:.78rem; }
  .sdg-hex-num{ font-size:1.05rem; margin-top:.35rem; }
}

/* Programmes — flat two-column list with a colour per programme */
.prog-icon-blob{
  width:68px; height:68px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  flex-shrink:0; overflow:hidden;
}
.prog-icon-blob i{ font-size:1.7rem; }
.prog-icon-blob img{ width:100%; height:100%; object-fit:cover; }
.prog-title{
  font-family:'Anton', sans-serif; text-transform:uppercase; font-size:1.1rem; letter-spacing:.02em;
  display:inline-block; border-bottom:3px solid; padding-bottom:.2rem; margin-bottom:.5rem;
}
.prog-desc, .prog-row:hover .prog-desc{ color:var(--sf-ink-soft); font-size:.92rem; margin-bottom:0; line-height:1.5; }
@media (max-width:767px){
  .prog-row{ margin-bottom:.5rem; }
}

/* Partner logo carousel (Corporate Partnership / Supporters) */
.partner-logo-row{ gap:2.75rem; min-height:130px; padding:0 1rem; }
.partner-logo-wrap img{ max-height:96px; max-width:220px; object-fit:contain; filter:grayscale(0%); transition:transform .18s; }
.partner-logo-wrap:hover img{ transform:scale(1.06); }
.partner-carousel-indicators{
  position:static; margin:1.5rem 0 0; display:flex; justify-content:center; gap:.4rem;
}
.partner-carousel-indicators [data-bs-target]{
  width:10px; height:10px; border-radius:50%; background:#ccc; border:0; opacity:1; text-indent:-9999px;
}
.partner-carousel-indicators [data-bs-target].active{ background:var(--sf-marigold); }
@media (max-width:576px){
  .partner-logo-row{ gap:1.5rem; min-height:90px; }
  .partner-logo-wrap img{ max-height:64px; max-width:150px; }
}

/* Media Partner logo grid */
.media-partner-section.section-py{ padding-bottom:2.75rem; }
.media-partner-section{ background:#B9D4CD; }
.media-partner-row{ gap:1.5rem 3.5rem; }
.media-partner-cell{
  width:170px; flex:0 0 auto;
  padding-bottom:1rem; border-bottom:1px solid rgba(0,0,0,.15);
  display:flex; align-items:center; justify-content:center; min-height:110px;
}
.media-partner-cell img{ max-height:100px; max-width:100%; object-fit:contain; }
@media (max-width:576px){
  .media-partner-row{ gap:1rem 2rem; }
  .media-partner-cell{ width:130px; min-height:70px; }
  .media-partner-cell img{ max-height:64px; }
}

/* Ongoing Campaigns cards */
.campaign-card{ background:#EFEFEF; border-radius:1.1rem; padding:1.25rem; }
.campaign-card-img{ width:100%; height:220px; border-radius:.85rem; margin-bottom:1.25rem; background-color:var(--sf-line); }
.campaign-card h3{ font-family:'Fraunces', serif; font-weight:700; font-size:1.35rem; color:var(--sf-ink); margin-bottom:.65rem; line-height:1.3; }
.campaign-card p{ color:var(--sf-ink-soft); font-size:.92rem; line-height:1.6; margin-bottom:1.5rem; }
.campaign-donate-btn{
  display:flex; align-items:center; justify-content:center; gap:.6rem; border-radius:999px;
  padding:.9rem 1.5rem; color:#fff!important; font-weight:700; text-decoration:none!important;
  position:relative; transition:filter .15s;
}
.campaign-donate-btn:hover{ filter:brightness(0.92); }
.campaign-donate-icon{ font-size:1.1rem; opacity:.85; }

/* Campaign detail — donation pledge widget */
.donate-widget{
  background:#F7F3EA; border-radius:1.25rem; padding:1.75rem;
  box-shadow:0 4px 18px rgba(0,0,0,.07); border:1px solid var(--sf-line);
}
.pledge-toggle-btn{
  border:2px solid var(--sf-line); background:#fff; color:var(--sf-ink); font-weight:700;
  border-radius:999px; padding:.65rem 1rem; font-size:.86rem; transition:all .15s;
}
.pledge-toggle-btn.active{ background:var(--sf-marigold); border-color:var(--sf-marigold); color:#fff; }
.pledge-amount-btn{
  border:2px solid var(--sf-marigold); background:#fff; color:var(--sf-marigold-deep); font-weight:700;
  border-radius:.65rem; padding:.75rem; font-size:1rem; transition:all .15s;
}
.pledge-amount-btn.active{ background:var(--sf-marigold); border-color:var(--sf-marigold); color:#fff; }

/* How We Work — icon + heading + paragraph rows */
.hww-icon{ flex-shrink:0; width:60px; text-align:center; }
.hww-icon i{ font-size:2.1rem; color:var(--sf-leaf); }
.hww-title{
  font-family:'Anton', sans-serif; text-transform:uppercase; color:var(--sf-leaf);
  font-size:1.25rem; letter-spacing:.02em; margin-bottom:.6rem;
}
.hww-desc{ color:var(--sf-ink-soft); font-size:.95rem; line-height:1.75; max-width:760px; margin-bottom:0; }
@media (max-width:576px){
  .hww-icon{ width:44px; }
  .hww-icon i{ font-size:1.6rem; }
  .hww-title{ font-size:1.05rem; }
}


/* Lifecycle Approach — solid colour cards */
.lifecycle-card{
  border-radius:1rem; padding:2rem 1.25rem; color:#fff; min-height:250px;
  display:flex; flex-direction:column; align-items:center; justify-content:flex-start;
  transition:transform .2s ease, box-shadow .2s ease;
}
.lifecycle-card:hover{ transform:translateY(-5px); box-shadow:0 14px 30px rgba(0,0,0,.18); }
.lifecycle-card-icon{ font-size:3rem; color:#fff; margin-bottom:1rem; display:block; }
.lifecycle-card-title{
  font-family:'Anton', sans-serif; text-transform:uppercase; color:#fff; font-size:1.1rem;
  letter-spacing:.02em; margin-bottom:.75rem;
}
.lifecycle-card-desc{ color:rgba(255,255,255,.92); font-size:.87rem; line-height:1.6; margin-bottom:0; }
@media (max-width:767px){
  .lifecycle-card{ min-height:auto; padding:2rem 1rem; }
}

/* Sticky sub-nav offset (sits right below main sticky navbar at 87px) */
.sticky-top-nav{ top: 87px !important; z-index: 1020; box-shadow: 0 4px 12px rgba(0,0,0,.04); }
.sticky-top-nav .nav-link{ color:var(--sf-ink-soft); transition:all .15s; border-radius:999px; }
.sticky-top-nav .nav-link:hover{ color:var(--sf-marigold-deep); background:var(--sf-paper-alt); }

/* Lightbox */
.lightbox-caption{ background:var(--sf-teal-deep); color:#fff; }
.lightbox-caption .font-display{ color:#fff; }

/* misc */
.rounded-4xl{ border-radius: 1.25rem; }
.hover-lift{ transition:.15s; }

/* Bootstrap overrides */
a{ color: var(--sf-marigold-deep); text-decoration: none !important; }
a:hover{ color: var(--sf-marigold); text-decoration: none !important; }
.person-card a{ text-decoration: none !important; }
.btn-primary{ --bs-btn-bg:var(--sf-marigold); --bs-btn-border-color:var(--sf-marigold); --bs-btn-hover-bg:var(--sf-marigold-deep); --bs-btn-hover-border-color:var(--sf-marigold-deep); --bs-btn-active-bg:var(--sf-marigold-deep); --bs-btn-active-border-color:var(--sf-marigold-deep); }
.btn-secondary{ --bs-btn-bg:var(--sf-teal-deep); --bs-btn-border-color:var(--sf-teal-deep); --bs-btn-hover-bg:var(--sf-teal); --bs-btn-hover-border-color:var(--sf-teal); }
.btn-outline-secondary{ --bs-btn-color:var(--sf-ink-soft); --bs-btn-border-color:var(--sf-line); --bs-btn-hover-bg:var(--sf-marigold); --bs-btn-hover-border-color:var(--sf-marigold); --bs-btn-hover-color:#fff; }
.btn-outline-dark{ --bs-btn-color:var(--sf-ink); --bs-btn-border-color:var(--sf-ink); --bs-btn-hover-bg:var(--sf-marigold); --bs-btn-hover-border-color:var(--sf-marigold); --bs-btn-hover-color:#fff; }
.btn-outline-light{ --bs-btn-hover-bg:var(--sf-marigold); --bs-btn-hover-border-color:var(--sf-marigold); }
.badge.bg-primary{ background-color:var(--sf-marigold)!important; }
.badge.bg-success{ background-color:var(--sf-teal)!important; }
.badge.bg-secondary{ background-color:var(--sf-teal-deep)!important; }
.nav-pills .nav-link.active, .nav-pills .show>.nav-link{ background-color:var(--sf-marigold)!important; }
.progress-bar{ background-color:var(--sf-marigold); }
.pagination{ --bs-pagination-active-bg:var(--sf-marigold); --bs-pagination-active-border-color:var(--sf-marigold); --bs-pagination-color:var(--sf-marigold-deep); --bs-pagination-hover-color:var(--sf-marigold-deep); }
.accordion-button:not(.collapsed){ background-color:var(--sf-paper-alt); color:var(--sf-marigold-deep); box-shadow:none; }
.accordion-button:focus{ box-shadow:0 0 0 .2rem rgba(232,90,31,.15); }
.form-control:focus, .form-select:focus{ border-color:var(--sf-marigold); box-shadow:0 0 0 .2rem rgba(232,90,31,.15); }
.list-group-item-action:hover, .list-group-item-action:focus{ background-color:var(--sf-paper-alt); }
.text-primary{ color:var(--sf-marigold)!important; }

/* Responsive */
@media (max-width: 991px) {
  .navbar-nav { background: var(--sf-paper); padding: 1rem 0; border-top:1px solid var(--sf-line); }
  .city-bar .nav-pills { padding-bottom: 2px; }
}
@media (max-width: 768px) {
  .hero-carousel .carousel-inner { height: 62vh; min-height: 330px; max-height: 330px; }
  .hero-carousel .carousel-item { height: 100%; }
  .section-py { padding-top: 2.8rem; padding-bottom: 2.8rem; }
  .hero-carousel .slide-caption h1 { font-size: 1.85rem; }
}
@media (max-width: 576px) {
  .hero-carousel .carousel-item { height: 70vh; max-height: 330px; }
  .hero-carousel .carousel-control-prev,
  .hero-carousel .carousel-control-next { width:38px; height:38px; margin:0 6px; }
  .hero-carousel .slide-caption .d-flex.flex-wrap { flex-wrap: nowrap !important; gap: .5rem !important; }
  .hero-carousel .slide-caption .btn { padding: .5rem .9rem; font-size: .82rem; white-space: nowrap; }
}
/* Site-wide scroll-reveal animation */
@keyframes fadeUpIn{ from{ opacity:0; transform:translateY(28px); } to{ opacity:1; transform:translateY(0); } }
.reveal{ opacity:0; }
.reveal.in-view{ animation:fadeUpIn .7s cubic-bezier(.22,.68,.35,1) forwards; }
@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1; animation:none!important; transform:none!important; }
}

/* About page hero entrance */
@keyframes heroFadeIn{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:translateY(0); } }
.hero-enter{ animation:heroFadeIn .8s ease both; }

/* Our Story accent */
.story-accent-bar{ width:56px; height:5px; border-radius:999px; background:linear-gradient(90deg,var(--sf-marigold),var(--sf-teal)); margin-bottom:1.25rem; }

/* Our Story — image with floating badge */
.story-img-wrap{ position:relative; }
.story-img{ width:100%; height:420px; object-fit:cover; border-radius:1.5rem; box-shadow:0 20px 40px rgba(0,0,0,.12); display:block; }
.story-badge{
  position:absolute; bottom:-1.4rem; right:-1rem; background:#fff; border-radius:1.1rem; padding:1rem 1.4rem;
  box-shadow:0 10px 28px rgba(0,0,0,.16); text-align:center; border:1px solid var(--sf-line);
}
.story-badge-num{ font-family:'Anton', sans-serif; font-size:1.8rem; color:var(--sf-marigold); line-height:1; }
.story-badge-label{ font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:var(--sf-ink-soft); margin-top:.3rem; }
@media (max-width:991px){
  .story-img{ height:300px; }
  .story-badge{ right:1rem; bottom:-1.1rem; padding:.75rem 1.1rem; }
}

/* Vision & Mission — unified split card */
.vm-split{
  display:flex; flex-wrap:wrap; border-radius:1.5rem; overflow:hidden;
  box-shadow:0 8px 30px rgba(0,0,0,.06); border:1px solid var(--sf-line);
}
.vm-split-half{
  flex:1 1 300px; background:#fff; padding:2.75rem 2.5rem; border-top:4px solid var(--vm-color);
  transition:background .2s ease;
}
.vm-split-half:hover{ background:color-mix(in srgb, var(--vm-color) 6%, #fff); }
.vm-split-half + .vm-split-half{ border-left:1px solid var(--sf-line); }
@media (max-width:767px){
  .vm-split-half + .vm-split-half{ border-left:0; border-top:1px solid var(--sf-line); }
}
.vm-icon{
  width:60px; height:60px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  margin-bottom:1.15rem;
}
.vm-icon i{ font-size:1.5rem; }
.vm-title{ font-family:'Fraunces', serif; font-weight:700; font-size:1.4rem; color:var(--sf-teal-deep); margin-bottom:.6rem; }
.vm-desc{ color:var(--sf-ink-soft); margin-bottom:0; line-height:1.65; }

@media (min-width: 1920px) {
  .container { max-width: 1440px; }
}

/* Footer newsletter message — brighter tones for readability on the dark footer */
#footerSubscribeMsg.text-success{ color:#6fcf97!important; }
#footerSubscribeMsg.text-danger{ color:#ff8a80!important; }
