/* ---------- Local fonts (assets/fonts/) ---------- */
@font-face{font-family:"July";src:url("../fonts/July-Bold.ttf") format("truetype");font-weight:normal;font-style:normal;font-display:swap}
@font-face{font-family:"July Regular";src:url("../fonts/July-Regular.ttf") format("truetype");font-weight:normal;font-style:normal;font-display:swap}
@font-face{font-family:"Abu Sayed";src:url("../fonts/Abu-Sayed.ttf") format("truetype");font-weight:normal;font-style:normal;font-display:swap}
@font-face{font-family:"Shadhinata";src:url("../fonts/Shadhinata.ttf") format("truetype");font-weight:normal;font-style:normal;font-display:swap}

:root{--info-gap:18px;--green:#006a4e;--red:#e8112d;--red-dark:#c40d25;--ink:#17181a;--mint:#d3f0e1;--paper:#f3f3f3}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--paper);font-family:"July Regular",system-ui,sans-serif;color:var(--ink)}

.hero{position:relative;overflow:hidden;isolation:isolate;min-height:min(680px,100vh);width:calc(100% - 2 * clamp(12px,3vw,40px));max-width:calc(1546px - 2 * clamp(12px,3vw,40px));margin:clamp(12px,3vw,40px) auto clamp(24px,4vw,56px);border-radius:clamp(24px,3vw,44px);display:grid;grid-template-columns:1.05fr 1fr;align-items:end}
.hero__bg{position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,#e6e6e6,#fafafa 60%,#d9d9d9) center/cover no-repeat;filter:grayscale(1)}
.hero__bg::after{content:"";position:absolute;inset:0;background:rgba(255,255,255,.72)}

.hero__people{align-self:end;justify-self:center;width:100%;max-width:720px;margin-left:4%}
.hero__people img{display:block;width:100%;height:auto;max-height:620px;object-fit:contain;object-position:bottom;-webkit-mask-image:linear-gradient(#000 80%,transparent);mask-image:linear-gradient(#000 80%,transparent)}
.ph{aspect-ratio:4/3;border:2px dashed #b8b8b8;border-radius:12px;display:grid;place-items:center;color:#777;font:500 15px/1.4 system-ui,sans-serif;text-align:center;margin-bottom:24px;background:rgba(255,255,255,.5)}

.hero__info{padding:clamp(24px,5vw,64px) clamp(20px,5vw,72px) clamp(40px,7vw,80px) 0;display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--info-gap)}
.logo{width:clamp(110px,11vw,150px);height:auto}

/* slogan → July-Bold */
.slogan{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:6px 0 0;padding:0;list-style:none}
.slogan li{background:var(--mint);color:#0b5d3f;border-radius:999px;padding:4px 14px;font-family:"July",sans-serif;font-weight:normal;font-synthesis:none;font-size:clamp(13px,1.1vw,15px)}

/* party → Abu-Sayed */
.party{margin:4px 0 0;font-family:"Abu Sayed",sans-serif;font-weight:normal;font-synthesis:none;font-size:clamp(38px,5.4vw,70px);line-height:1;color:var(--red)}

/* committee → Shadhinata */
.committee{margin:calc(var(--info-gap) * -1) 0 0; /* cancels the flex gap: party↔committee = 0 */ font-family:"Shadhinata",sans-serif;font-weight:normal;font-synthesis:none;font-size:clamp(26px,3.3vw,42px);line-height:1}

.actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:clamp(16px,4vw,48px)}

/* btn → Shadhinata */
.btn{display:inline-block;background:var(--red);color:#fff;text-decoration:none;font-family:"Shadhinata",sans-serif;font-weight:normal;font-synthesis:none;font-size:clamp(15px,1.3vw,18px);line-height:1;padding:12px 22px;border-radius:999px;transition:background .15s,transform .15s}
.btn:hover{background:var(--red-dark);transform:translateY(-2px)}
.btn:focus-visible{outline:3px solid var(--green);outline-offset:3px}

@media(max-width:860px){
  .hero{grid-template-columns:1fr;min-height:0}
  .hero__info{order:-1;padding:28px 20px 8px}
  .hero__people{margin:0;max-width:520px}
}

/* ---------- Press release section ---------- */
.press{max-width:1546px;margin:clamp(24px,4vw,56px) auto;padding:0 clamp(12px,3vw,40px)}
.press__box{position:relative;overflow:hidden;isolation:isolate;display:flex;height:clamp(460px,44vw,630px);padding:clamp(14px,2vw,28px) clamp(14px,8vw,126px);border-radius:clamp(24px,3vw,44px);background:#071a13}
.press__bg{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#0a2a1f,#14452f) center/cover no-repeat}
.press__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#030907 0%,rgba(3,9,7,.88) 28%,rgba(3,9,7,0) 62%)}

.press__card{width:min(485px,100%);display:flex;flex-direction:column;padding:16px;background:#fff;border-radius:28px}
.press__head{margin:0 0 12px;padding:8px 12px;text-align:center;background:var(--mint);color:#0b6b46;border-radius:14px;font:normal clamp(22px,2.2vw,28px)/1.2 "July",sans-serif;font-synthesis:none}
.press__list{flex:1;min-height:0;margin:0;padding:0 6px 0 0;list-style:none;display:flex;flex-direction:column;gap:10px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#bdbdbd transparent}
.press__list:focus-visible{outline:3px solid var(--green);outline-offset:2px}

.press__item{display:flex;align-items:center;gap:14px;padding:12px 16px;color:var(--ink);text-decoration:none;background:#efefef;border-radius:16px;transition:background .15s}
.press__item:hover{background:#dff3e8}
.press__item:focus-visible{outline:3px solid var(--green);outline-offset:2px}
.press__icon{flex:none;width:52px;height:52px;color:#c2c2c2}
.press__list li{min-width:0}
.press__text{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.press__title{display:block;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font:normal clamp(15px,1.3vw,18px)/1.3 "July",sans-serif;font-synthesis:none}
.press__date{display:flex;align-items:center;gap:6px;font:normal 14px/1 "July Regular",sans-serif;font-synthesis:none;color:#555}

@media(max-width:600px){
  /* mobile: no background image, the white card fills the section width */
  .press__box{padding:0;background:none;border-radius:0;overflow:visible}
  .press__bg{display:none}
  .press__card{width:100%;border-radius:clamp(24px,3vw,44px)}
  .press__icon{width:42px;height:42px}
  .press__item{padding:10px 12px;gap:10px}
}

/* ---------- Banner section (image + points below) ---------- */
.banner{max-width:1546px;margin:clamp(24px,4vw,56px) auto;padding:0 clamp(12px,3vw,40px)}
.banner__box{overflow:hidden;border-radius:clamp(24px,3vw,44px);background:var(--green)}
.banner__media{overflow:hidden;border-radius:0 0 clamp(24px,3vw,44px) clamp(24px,3vw,44px);background:#071a13}
.banner__media img{display:block;width:100%;height:auto;aspect-ratio:71/30;object-fit:cover}
.banner__ph{aspect-ratio:71/30;display:grid;place-items:center;text-align:center;color:#9fc9b6;font:500 15px/1.6 system-ui,sans-serif;padding:16px;word-break:break-all}

/* points → July-Bold */
.banner__points{margin:0;padding:clamp(12px,1.4vw,20px) clamp(16px,3vw,44px);list-style:none;display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px clamp(16px,3vw,48px);color:#fff;font:normal clamp(16px,1.9vw,28px)/1.25 "July",sans-serif;font-synthesis:none}
.banner__points li{display:flex;align-items:center;gap:.45em}
.banner__check{flex:none;width:1.5em;height:1.5em;color:#3ee07f}

@media(max-width:1100px){
  .banner__points{justify-content:center}
}
@media(max-width:600px){
  .banner__media img,.banner__ph{aspect-ratio:4/5}
  .banner__points{flex-direction:column;align-items:flex-start;gap:10px;padding:16px 18px;font-size:17px}
}

/* ---------- Team section (আমরা যারা) ---------- */
.team{max-width:1546px;margin:clamp(32px,5vw,72px) auto;padding:0 clamp(12px,3vw,40px)}
.team__head{margin:0 0 clamp(14px,2vw,24px);text-align:center;color:var(--green);font:normal clamp(30px,4vw,52px)/1.1 "Abu Sayed",sans-serif;font-synthesis:none}

/* tab bar: scrolls sideways when it doesn't fit */
.team__tabs{display:flex;gap:10px;width:fit-content;max-width:100%;margin:0 auto clamp(18px,2.5vw,32px);padding:8px;background:#fff;border-radius:999px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.team__tabs::-webkit-scrollbar{display:none}
.team__tab{flex:none;scroll-snap-align:center;border:0;cursor:pointer;white-space:nowrap;padding:10px 22px;border-radius:999px;background:var(--mint);color:#0b5d3f;font:normal clamp(15px,1.4vw,19px)/1.2 "July",sans-serif;font-synthesis:none;transition:background .15s,color .15s}
.team__tab:hover{background:#bfe8d2}
.team__tab[aria-selected="true"]{background:var(--green);color:#fff}
.team__tab:focus-visible{outline:3px solid var(--red);outline-offset:2px}

.team__panel[hidden]{display:none}
.team__empty{text-align:center;color:#666;margin:32px 0}
.team__grid{margin:0 0 clamp(12px,1.8vw,24px);padding:0;list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(12px,1.8vw,24px)}

/* name card: large photo on top */
.member{width:clamp(160px,22vw,270px);display:flex;flex-direction:column;overflow:hidden;background:#fff;border-radius:clamp(16px,2vw,24px);box-shadow:0 2px 10px rgba(0,0,0,.06);animation:member-in .3s ease both}
@keyframes member-in{from{opacity:0;transform:translateY(10px)}}
.member__photo{aspect-ratio:1/1;background:linear-gradient(160deg,#eef1f0,#dfe5e2);display:grid;place-items:end center;overflow:hidden}
.member__photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:top center}
.member__photo svg{display:block;width:100%;height:100%;color:#fff;opacity:.85}
.member__body{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding:12px 12px 14px;border-top:4px solid var(--red)}
.member__name{margin:0;font:normal clamp(17px,1.6vw,22px)/1.25 "July",sans-serif;font-synthesis:none}
.member__post{margin:0;color:var(--green);font:normal clamp(14px,1.2vw,16px)/1.3 "July Regular",sans-serif;font-synthesis:none}
.member__links{margin-top:auto;padding-top:6px;display:flex;justify-content:center;gap:4px}
.member__link{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;color:#8a9199;transition:color .15s,background .15s}
.member__link svg{width:18px;height:18px}
.member__link--fb:hover{color:#1877f2;background:rgba(24,119,242,.1)}
.member__link--wa:hover{color:#1faf54;background:rgba(31,175,84,.1)}
.member__link:focus-visible{outline:3px solid var(--green);outline-offset:2px}

@media(max-width:600px){
  .team__tabs{width:auto;margin-left:-4px;margin-right:-4px}
  .team__tab{padding:9px 16px}
  .member{width:calc(50% - 6px)}
}
@media(prefers-reduced-motion:reduce){.member{animation:none}}

/* ---------- Navbar (hidden over the hero, slides in after it, fixed at top) ---------- */
html{scroll-behavior:smooth;scroll-padding-top:76px}
.nav{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);box-shadow:0 2px 14px rgba(0,0,0,.1);transform:translateY(-110%);visibility:hidden;transition:transform .3s ease,visibility 0s .3s}
.nav.is-visible{transform:none;visibility:visible;transition:transform .3s ease}
.nav__in{max-width:1546px;margin:0 auto;height:64px;padding:0 clamp(12px,3vw,40px);display:flex;align-items:center;justify-content:space-between;gap:16px}
.nav__logo{flex:none;display:flex;align-items:center;color:var(--green);text-decoration:none;font:normal 18px/1 "July",sans-serif}
.nav__logo img{display:block;height:48px;width:auto}
.nav__menu{display:flex;align-items:center;gap:clamp(4px,1vw,14px)}

/* links → July-Regular, bold link → July-Bold */
.nav__link{padding:8px 10px;border-radius:999px;color:var(--ink);text-decoration:none;white-space:nowrap;font:normal clamp(15px,1.25vw,18px)/1.2 "July Regular",sans-serif;font-synthesis:none;transition:background .15s,color .15s}
.nav__link:hover{background:var(--mint);color:#0b5d3f}
.nav__link:focus-visible,.nav__logo:focus-visible,.nav__toggle:focus-visible{outline:3px solid var(--green);outline-offset:2px}
.nav__link--bold{font-family:"July",sans-serif;color:var(--red)}
.nav__link--bold:hover{background:var(--red);color:#fff}

/* thana / ward dropdowns */
.nav__in{position:relative}
.nav__item{align-self:stretch;display:flex;align-items:center}
.nav__drop{display:inline-flex;align-items:center;gap:6px;border:0;background:none;cursor:pointer}
.nav__caret{width:12px;height:12px;transition:transform .2s}
.nav__item.is-open .nav__caret{transform:rotate(180deg)}
.nav__sub{display:none;position:absolute;top:100%;right:clamp(12px,3vw,40px);width:min(560px,calc(100% - 24px));max-height:calc(100vh - 90px);overflow-y:auto;padding:16px;background:#fff;border-radius:0 0 20px 20px;box-shadow:0 14px 28px rgba(0,0,0,.14)}
.nav__item--ward .nav__sub{width:min(760px,calc(100% - 24px))}
.nav__item.is-open .nav__sub{display:block}
@media(hover:hover) and (min-width:901px){
  .nav__item:hover .nav__sub{display:block}
  .nav__item:hover .nav__caret{transform:rotate(180deg)}
  .nav__item:hover .nav__drop{background:var(--mint);color:#0b5d3f}
}
.nav__note{margin:0 0 12px;padding:8px 12px;text-align:center;background:var(--mint);color:#0b6b46;border-radius:12px;font:normal 16px/1.3 "July",sans-serif;font-synthesis:none}
.nav__sublist{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.nav__item--ward .nav__sublist{grid-template-columns:repeat(6,1fr)}
.nav__sublist a{display:block;padding:9px 10px;text-align:center;white-space:nowrap;color:var(--ink);text-decoration:none;background:#f3f3f3;border-radius:10px;font:normal 15px/1.2 "July Regular",sans-serif;font-synthesis:none;transition:background .15s,color .15s}
.nav__sublist a:hover{background:var(--green);color:#fff}
.nav__sublist a:focus-visible{outline:3px solid var(--green);outline-offset:2px}

.nav__toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:0 10px;border:0;border-radius:12px;background:var(--mint);cursor:pointer}
.nav__toggle span{display:block;height:3px;border-radius:3px;background:var(--green);transition:transform .2s,opacity .2s}
.nav.is-open .nav__toggle span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.nav.is-open .nav__toggle span:nth-child(2){opacity:0}
.nav.is-open .nav__toggle span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

@media(max-width:900px){
  .nav__in{height:56px}
  .nav__logo img{height:40px}
  .nav__toggle{display:flex}
  .nav__menu{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:2px;padding:10px 12px 14px;background:#fff;box-shadow:0 10px 14px rgba(0,0,0,.1)}
  .nav.is-open .nav__menu{display:flex}
  .nav__link{padding:12px 14px;font-size:17px;border-radius:12px}
  .nav__menu{max-height:calc(100vh - 56px);overflow-y:auto}
  .nav__item{display:block}
  .nav__drop{width:100%;justify-content:space-between;text-align:left}
  .nav__sub,.nav__item--ward .nav__sub{position:static;width:auto;max-height:none;padding:6px 4px 10px;border-radius:0;box-shadow:none}
  .nav__item.is-open .nav__sub{display:block}
  .nav__sublist{grid-template-columns:repeat(2,1fr)}
  .nav__item--ward .nav__sublist{grid-template-columns:repeat(3,1fr)}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.nav,.nav.is-visible{transition:none}}

/* ---------- Footer (dark) ---------- */
.footer{margin-top:clamp(40px,6vw,88px);background:#0d1512;color:#c9d4cf;border-top:4px solid var(--green)}
.footer__in{max-width:1546px;margin:0 auto;padding:clamp(32px,4.5vw,64px) clamp(16px,3vw,40px);display:grid;grid-template-columns:1.4fr 1fr 1.2fr;gap:clamp(24px,4vw,64px)}
.footer p{margin:0}
.footer__logo{display:block;width:84px;height:auto;margin-bottom:14px}
.footer__party{color:#fff;font:normal clamp(26px,2.6vw,36px)/1.1 "Abu Sayed",sans-serif;font-synthesis:none}
.footer__committee{color:#3ee07f;font:normal clamp(18px,1.7vw,22px)/1.2 "Shadhinata",sans-serif;font-synthesis:none}
.footer__about{margin-top:14px !important;max-width:36ch;font-size:16px;line-height:1.6}

.footer__h{margin:0 0 14px;padding-bottom:10px;color:#fff;border-bottom:1px solid rgba(255,255,255,.14);font:normal clamp(18px,1.6vw,22px)/1.2 "July",sans-serif;font-synthesis:none}
.footer__col ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px;font:normal 16px/1.4 "July Regular",sans-serif;font-synthesis:none}
.footer a{color:inherit;text-decoration:none;transition:color .15s}
.footer a:hover{color:#3ee07f}
.footer a:focus-visible{outline:3px solid #3ee07f;outline-offset:3px;border-radius:4px}
.footer__contact li{display:flex;align-items:flex-start;gap:10px}
.footer__contact svg{flex:none;width:20px;height:20px;margin-top:1px;color:#3ee07f}
.footer__contact a{overflow-wrap:anywhere}

.footer__social{display:flex;gap:10px;margin-top:18px}
.footer__social a{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.1);color:#fff;transition:background .15s,transform .15s}
.footer__social a:hover{background:var(--red);color:#fff;transform:translateY(-2px)}
.footer__social svg{width:20px;height:20px}

.footer__bar{border-top:1px solid rgba(255,255,255,.1);padding:16px clamp(16px,3vw,40px);text-align:center;color:#8d9a94;font-size:14px;line-height:1.5}

@media(max-width:860px){
  .footer__in{grid-template-columns:1fr 1fr}
  .footer__brand{grid-column:1/-1}
}
@media(max-width:520px){
  .footer__in{grid-template-columns:1fr}
}
.footer__credit{margin-top:6px !important;font-size:13px}
.footer__credit a{color:#c9d4cf;text-decoration:underline;text-underline-offset:3px}

/* ---------- Thana / ward pages (placeholder until designed) ---------- */
.area{max-width:1546px;margin:0 auto;padding:calc(64px + clamp(24px,4vw,56px)) clamp(12px,3vw,40px) 0}
.area__box{padding:clamp(40px,8vw,110px) 20px;text-align:center;background:var(--green);color:#fff;border-radius:clamp(24px,3vw,44px)}
.area__kicker{margin:0 0 10px;color:var(--mint);font:normal clamp(16px,1.6vw,20px)/1.3 "July Regular",sans-serif;font-synthesis:none}
.area__title{margin:0;font:normal clamp(36px,5.4vw,70px)/1.1 "Abu Sayed",sans-serif;font-synthesis:none}
.area__soon{margin:18px 0 0;font:normal clamp(16px,1.5vw,20px)/1.4 "July Regular",sans-serif;font-synthesis:none;opacity:.9}
.area__back{margin-top:22px}

/* ---------- Content pages (activities.php, goals.php) ---------- */
.page__intro{max-width:62ch;margin:18px auto 0;font-size:clamp(16px,1.5vw,19px);line-height:1.7;opacity:.95}
.page__grid{margin:clamp(20px,3vw,40px) 0 0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:clamp(12px,1.8vw,24px)}
.page__card{padding:clamp(18px,2vw,26px);background:#fff;border-radius:clamp(16px,2vw,24px);box-shadow:0 2px 10px rgba(0,0,0,.06)}
.page__card p{margin:0;font-size:16px;line-height:1.7;color:#3a3d40}
.page__num{display:grid;place-items:center;width:40px;height:40px;margin-bottom:12px;border-radius:50%;background:var(--mint);color:#0b5d3f;font:normal 20px/1 "July",sans-serif;font-synthesis:none}
.page__h{margin:0 0 8px;color:var(--green);font:normal clamp(19px,1.8vw,23px)/1.3 "July",sans-serif;font-synthesis:none}
.page__local{margin-top:clamp(20px,3vw,40px);padding:clamp(20px,3vw,40px);background:#fff;border-radius:clamp(24px,3vw,44px);border-top:4px solid var(--red)}
.page__local-h,.page__cta-h{margin:0 0 16px;text-align:center;color:var(--green);font:normal clamp(24px,3vw,38px)/1.2 "Abu Sayed",sans-serif;font-synthesis:none}
.page__local ul{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:10px}
.page__local li{padding:12px 16px 12px 40px;position:relative;background:var(--paper);border-radius:14px;font:normal 16px/1.5 "July Regular",sans-serif;font-synthesis:none}
.page__local li::before{content:"";position:absolute;left:16px;top:19px;width:10px;height:10px;border-radius:50%;background:var(--red)}
.page__cta{margin-top:clamp(20px,3vw,40px);padding:clamp(24px,4vw,48px) 20px;text-align:center;background:var(--mint);border-radius:clamp(24px,3vw,44px)}
.page__cta p{margin:0 0 18px;font-size:17px;line-height:1.6}
.page__cta .actions{margin-top:0}
.page .press{max-width:none;padding:0;margin:clamp(20px,3vw,40px) 0 0}

/* ---------- Thana / ward page ---------- */
.area--rest{padding-top:0}
.area__box .actions{margin-top:22px}
.area__crumb{display:flex;flex-wrap:wrap;gap:6px;margin:0 4px 12px;color:#666;font:normal 15px/1.4 "July Regular",sans-serif;font-synthesis:none}
.area__crumb a{color:var(--green);text-decoration:none}
.area__crumb a:hover{text-decoration:underline}
.area__parent{margin:10px 0 0;font:normal 17px/1.3 "July Regular",sans-serif;font-synthesis:none}
.area__parent a{color:#fff}
.team__none{max-width:60ch;margin:0 auto;padding:clamp(20px,3vw,36px);text-align:center;background:#fff;border-radius:clamp(16px,2vw,24px);border:2px dashed #c9d6cf;color:#444;font-size:17px;line-height:1.7}
.team__tabs[hidden]{display:none}
.area__h{margin:0 0 14px;color:var(--green);font:normal clamp(22px,2.4vw,30px)/1.2 "Abu Sayed",sans-serif;font-synthesis:none}
.area__info{display:grid;grid-template-columns:1.7fr 1fr;gap:clamp(12px,1.8vw,24px);align-items:start}
.area__info--single{grid-template-columns:1fr}
.area__map,.area__contact,.area__list{padding:clamp(16px,2vw,28px);background:#fff;border-radius:clamp(24px,3vw,44px)}
.area__mapframe{overflow:hidden;border-radius:clamp(14px,2vw,24px);background:var(--mint);aspect-ratio:16/10}
.area__info--single .area__mapframe{aspect-ratio:16/7}
.area__mapframe iframe,.area__mapframe img{display:block;width:100%;height:100%;border:0;object-fit:cover}
.area__cap{margin:10px 0 0;color:#666;font-size:14px}
.area__contact ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:14px;font:normal 16px/1.5 "July Regular",sans-serif;font-synthesis:none}
.area__contact li{display:flex;align-items:flex-start;gap:10px}
.area__contact svg{flex:none;width:20px;height:20px;margin-top:2px;color:var(--green)}
.area__contact a{color:var(--ink);text-decoration:none;overflow-wrap:anywhere}
.area__contact a:hover{color:var(--green)}
.area__list{margin-top:clamp(12px,1.8vw,24px)}
.area__chips{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:8px}
.area__chips a{display:block;padding:8px 14px;color:#0b5d3f;text-decoration:none;background:var(--mint);border-radius:999px;font:normal 15px/1.2 "July Regular",sans-serif;font-synthesis:none;transition:background .15s,color .15s}
.area__chips a:hover,.area__chips a[aria-current]{background:var(--green);color:#fff}
.area__pager{display:flex;justify-content:space-between;gap:12px;margin-top:16px;padding-top:14px;border-top:1px solid #e6e6e6;font:normal 16px/1.3 "July",sans-serif;font-synthesis:none}
.area__pager a{color:var(--red);text-decoration:none}
.area__pager a:hover{text-decoration:underline}
@media(max-width:860px){
  .area__info{grid-template-columns:1fr}
  .area__mapframe,.area__info--single .area__mapframe{aspect-ratio:4/3}
}
.area__official{margin:14px 0 0}

/* ---------- Refinements ---------- */
.skip{position:absolute;left:12px;top:-60px;z-index:200;padding:10px 16px;background:var(--green);color:#fff;border-radius:0 0 12px 12px;text-decoration:none;transition:top .15s}
.skip:focus{top:0}
.nav__link[aria-current],.nav__drop.is-current{background:var(--mint);color:#0b5d3f}
.nav__all{display:block;margin-top:12px;text-align:center;color:var(--red);text-decoration:none;font:normal 15px/1.3 "July",sans-serif;font-synthesis:none}
.nav__all:hover{text-decoration:underline}
.area__cards{margin:clamp(20px,3vw,40px) 0 0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:clamp(10px,1.4vw,18px)}
.area__cards a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 20px;color:var(--ink);text-decoration:none;background:#fff;border-radius:18px;box-shadow:0 2px 10px rgba(0,0,0,.06);font:normal clamp(16px,1.4vw,19px)/1.3 "July",sans-serif;font-synthesis:none;transition:background .15s,color .15s,transform .15s}
.area__cards a span{color:var(--red);font-size:22px;line-height:1}
.area__cards a:hover{background:var(--green);color:#fff;transform:translateY(-2px)}
.area__cards a:hover span{color:#fff}
.area__cards a:focus-visible,.area__chips a:focus-visible,.area__pager a:focus-visible,.area__crumb a:focus-visible{outline:3px solid var(--green);outline-offset:2px}


/* ---------- Motion (assets/js/motion.js adds .is-in; html.js is set in includes/head.php) ---------- */
:root{--ease:cubic-bezier(.2,.7,.2,1)}
@keyframes rise{from{opacity:0;transform:translateY(24px)}}
@keyframes pop{from{opacity:0;transform:scale(.8)}}
@keyframes slide-in{from{opacity:0;transform:translateX(-18px)}}
@keyframes zoom-out{from{transform:scale(1.1)}}
@keyframes drop{from{opacity:0;transform:translateY(-8px)}}
@keyframes float{50%{translate:0 -8px}}
@keyframes drift{to{background-position:100% 100%}}

/* hero: entrance on load */
.hero__bg{animation:zoom-out 1.8s ease-out both}
.hero__people{animation:rise 1.1s var(--ease) .15s both}
.hero__info>*{animation:rise .8s var(--ease) both}
.hero__info>.logo{animation:pop .9s var(--ease) .1s both,float 6s ease-in-out 1.2s infinite}
.hero__info>.slogan{animation:none}
.slogan li{animation:pop .6s var(--ease) both}
.slogan li:nth-child(1){animation-delay:.3s}
.slogan li:nth-child(2){animation-delay:.4s}
.slogan li:nth-child(3){animation-delay:.5s}
.hero__info>.party{animation-delay:.45s}
.hero__info>.committee{animation-delay:.55s}
.hero__info>.actions{animation-delay:.7s}

/* scroll reveal */
.js :is(.press__box,.banner__box,.team__head,.team__tabs,.team__none,.member,.area__crumb,.area__box,.page__card,.page__local,.page__cta,.area__map,.area__contact,.area__list,.area__cards li,.footer__brand,.footer__col){opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease) var(--d,0ms),transform .7s var(--ease) var(--d,0ms),translate .25s,box-shadow .25s}
.js :is(.press__box,.banner__box,.team__head,.team__tabs,.team__none,.member,.area__crumb,.area__box,.page__card,.page__local,.page__cta,.area__map,.area__contact,.area__list,.area__cards li,.footer__brand,.footer__col).is-in{opacity:1;transform:none}
.js .member{animation:none}

/* inside revealed sections */
.js .press__box.is-in .press__list li{animation:slide-in .5s var(--ease) both}
.js .press__box.is-in .press__list li:nth-child(1){animation-delay:.15s}
.js .press__box.is-in .press__list li:nth-child(2){animation-delay:.22s}
.js .press__box.is-in .press__list li:nth-child(3){animation-delay:.29s}
.js .press__box.is-in .press__list li:nth-child(4){animation-delay:.36s}
.js .press__box.is-in .press__list li:nth-child(5){animation-delay:.43s}
.js .press__box.is-in .press__list li:nth-child(n+6){animation-delay:.5s}
.js .banner__box.is-in .banner__media img{animation:zoom-out 1.6s ease-out both}
.js .banner__box.is-in .banner__points li{animation:rise .6s var(--ease) both}
.js .banner__box.is-in .banner__points li:nth-child(1){animation-delay:.3s}
.js .banner__box.is-in .banner__points li:nth-child(2){animation-delay:.45s}
.js .banner__box.is-in .banner__points li:nth-child(n+3){animation-delay:.6s}

/* buttons: lift, glow, light sweep */
.btn{position:relative;overflow:hidden;transition:background .2s,transform .2s,box-shadow .2s}
.btn::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translateX(-120%);transition:transform .6s}
.btn:hover{box-shadow:0 8px 20px rgba(232,17,45,.3)}
.btn:hover::after{transform:translateX(120%)}
.btn:active{transform:scale(.97)}

/* hover touches */
.member__photo img{transition:transform .5s var(--ease)}
.press__item{transition:background .2s,transform .2s}
.press__icon{transition:color .2s}
.page__num{transition:background .2s,color .2s}
.area__chips a{transition:background .15s,color .15s,transform .15s}
nav.footer__col a{display:inline-block;transition:color .15s,transform .2s}
@media(hover:hover){
  .member:hover{translate:0 -6px;box-shadow:0 14px 30px rgba(0,0,0,.12)}
  .member:hover .member__photo img{transform:scale(1.06)}
  .press__item:hover{transform:translateX(4px)}
  .press__item:hover .press__icon{color:var(--green)}
  .page__card:hover{translate:0 -4px;box-shadow:0 12px 26px rgba(0,0,0,.1)}
  .page__card:hover .page__num{background:var(--green);color:#fff}
  .area__chips a:hover{transform:translateY(-2px)}
  nav.footer__col a:hover{transform:translateX(4px)}
}

/* menus open with a soft drop */
.nav__item.is-open .nav__sub,.nav.is-open .nav__menu{animation:drop .22s ease both}
@media(hover:hover) and (min-width:901px){.nav__item:hover .nav__sub{animation:drop .22s ease both}}

/* green page headers: slow moving glow */
.area__box{background:radial-gradient(circle at 20% 20%,rgba(62,224,127,.3),transparent 45%),radial-gradient(circle at 85% 90%,rgba(232,17,45,.24),transparent 40%),var(--green);background-size:160% 160%;animation:drift 14s ease-in-out infinite alternate}

/* scroll progress bar */
.progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:150;pointer-events:none;background:linear-gradient(90deg,var(--green),#3ee07f,var(--red));transform-origin:0 50%;transform:scaleX(0)}

/* smooth cross-fade between pages (browsers that support it) */
@media(prefers-reduced-motion:no-preference){@view-transition{navigation:auto}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none !important;transition:none !important}}
