centering block body with respect to block title in beamer

I'm trying to write a poster using beamerposter package. I would want to structure it using 3/4 columns, and each column should have a certain number of blocks.

I would want to define my own theme and i desire a rounded beamercolourbox for the block title, while the block body beamercolourbox should be a little narrower than the title one, even if centered with respect to it. The following code produces the block body beamercolourbox ragged left.

\setbeamertemplate{block begin}{
\vskip.75ex %
\begin{beamercolorbox}[rounded=true,leftskip=1cm,colsep*=.75ex]{block title}%
\usebeamerfont*{block title}\insertblocktitle
\end{beamercolorbox}%
\vskip.5ex %
\usebeamerfont{block body}%
\begin{beamercolorbox}[wd=.95\linewidth,colsep*=.75ex,sep=.75ex,vmode]{block body}%
} %
\setbeamertemplate{block end}{ %
\end{beamercolorbox} %
}


I tried enclosing all into a center environment as follows, but nothing has changed:

\setbeamertemplate{block begin}{
\vskip.75ex %
\begin{center}%
\begin{beamercolorbox}[rounded=true,leftskip=1cm,colsep*=.75ex]{block title}%
\usebeamerfont*{block title}\insertblocktitle
\end{beamercolorbox}%
\vskip.5ex %
\usebeamerfont{block body}%
\begin{beamercolorbox}[wd=.95\linewidth,colsep*=.75ex,sep=.75ex,vmode]{block body}%
} %
\setbeamertemplate{block end}{ %
\end{beamercolorbox} %
\end{center}%
}


Then i tried by using \hfill (as follows), but now the position is "better" but not yet centered, as it is slightly down left-positioned with respect to the title beamercolorbox.

\setbeamertemplate{block begin}{
\vskip.75ex %
\begin{beamercolorbox}[rounded=true,leftskip=1cm,colsep*=.75ex]{block title}%
\usebeamerfont*{block title}\insertblocktitle
\end{beamercolorbox}%
\vskip.5ex %
\usebeamerfont{block body}%
\hfill%
\begin{beamercolorbox}[wd=.95\linewidth,colsep*=.75ex,sep=.75ex,vmode]{block body}%
} %
\setbeamertemplate{block end}{ %
\end{beamercolorbox} %
\hfill%
}


Any idea on how to solve this issue? Thank you in advance for your attention. Regards.

-

You could use something like this:

\documentclass{beamer}

\newlength\bodywd
\setlength\bodywd{.95\linewidth}

\setbeamercolor{block title}{fg=olive,bg=olive!20}
\setbeamercolor{block body}{fg=blue,bg=blue!20}

\setbeamertemplate{block begin}{%
\vskip.75ex%
\begin{beamercolorbox}[rounded=true,leftskip=1cm,colsep*=.75ex]{block title}%
\usebeamerfont*{block title}\insertblocktitle%
\end{beamercolorbox}%
\vskip.5ex %
\usebeamerfont{block body}%
\hspace*{.5\dimexpr\linewidth-\bodywd\relax}%
\begin{beamercolorbox}[wd=\bodywd,colsep*=.75ex,sep=.75ex,vmode]{block body}%
}
\setbeamertemplate{block end}{%
\end{beamercolorbox}%
\hfill\null%
}

\begin{document}

\begin{frame}
\begin{block}{The Title}
text
\end{block}
\end{frame}

\end{document}


The idea is to keep the width of body block in an auxiliar length \bodywd and to add, before the block, a horizontal space given by 0.5(\linewidth-\bodywd).

-