The Problem
How to adjust the gap between just two columns in a tabular environment while automatically retaining the centering of headings?
I know the length columnsep is used to adjust the separation between all the columns in a tabular but I just want to increase the gap between two while keeping the correct centering of the column headers and footers.
I have seen this answer and this answer. The answer to the latter breaks row coloring and I couldn't work out how to save then restore the column gap correctly. The answer to the former uses a manually inserted, fixed \hspace* to force one heading to center which is presumably the result of a manual calculation or trial and error. I am seriously hoping to have LaTeX or TeX calculate the centering because the headings and footers will differ between tables and there will be a lot of tables in the finished document. I have included my attempts at utilizing those answers below.
Requirements
I believe that vertical lines in tables are an abomination unto Nuggan and costs you 42 reputation points, so whitespace between columns is the way forward.
I wish to avoid having a dummy column because I'll be copying and pasting a lot of data into a lot of tables. For the same reason I wish to avoid having to manually calculate an \hspace* for at least one heading in every table. Some, probably many, tables will have more logical groups of columns.
For many tables, one or more rows of data will be colored. For this example I have colored the first line of the heading for simplicity. Row coloring must still work without creating a vertical gap between columns. A white gap probably wouldn't matter for headings but it will matter for the rows of data. All the columns apply to the same piece of data occupying an entire row. The gap is to visually separate logical groups of columns.
The full document uses LuaLaTeX with fontspec. I tried XeTeX for a while but had a meltdown with the fonts especially for math. Fixing the tables in LuaLaTeX seemed a much smaller problem.
MWE
\PassOptionsToPackage{table,usenames,svgnames}{xcolor}
\documentclass[oneside,11pt]{article}
\usepackage{array,booktabs,xcolor}
\usepackage[mode=math]{siunitx}
\setlength{\columnsep}{2em}
\newlength{\interclasscolspace}\setlength{\interclasscolspace}{48pt}
\newcommand{\clscolsp}{\hspace*{\interclasscolspace}}
\begin{document}
\begin{table}[!htp]
\centering
\caption[Basic table]{The basic table with equal distances between
all columns. How to increase the gap between column 1C and 2A?
Extra~1 and Extra~2 should remain centered under their respective
B~columns and First Group and Second Group should remain centered
over their three columns.}
\label{basic}
\small
\begin{tabular}{c*{6}{S[table-format=1.3]}}
\toprule
\rowcolor{lightgray}
& \multicolumn{3}{c}{\textbf{First Group}} &
\multicolumn{3}{c}{\textbf{Second Group}}\\
{\textbf{Rank}} &
{\textbf{1A}} &
{\textbf{1B}} &
{\textbf{1C}} &
{\textbf{2A}} &
{\textbf{2B}} &
{\textbf{2C}}\\
\midrule
\enspace1 & 0.657 & 0.913 & 0.733 & 0.830 & 0.387 & 0.893\\
\enspace2 & 0.343 & 0.537 & 0.655 & 0.690 & 0.471 & 0.333\\
\enspace9 & 0.783 & 0.885 & 0.015 & 0.306 & 0.643 & 0.263\\
10 & 0.161 & 0.708 & 0.386 & 0.257 & 0.074 & 0.336\\
\midrule
& \multicolumn{3}{c}{\textbf{Extra~1}} &
\multicolumn{3}{c}{\textbf{Extra~2}}\\
\bottomrule
\end{tabular}
\end{table}
\begin{table}[!htp]
\centering
\caption[exclaim table]{This table uses ! with
\texttt{\textbackslash{}qquad}. It creates the coloring and column
spacing correctly but breaks the centering of the First Group
headings and footers.}
\label{exclaim-command}
\small
\begin{tabular}{c*{3}{S[table-format=1.3]}%
!{\qquad}S[table-format=1.3]%
*{2}{S[table-format=1.3]}}
\toprule
\rowcolor{lightgray}
& \multicolumn{3}{c}{\textbf{First Group}} &
\multicolumn{3}{c}{\textbf{Second Group}}\\
{\textbf{Rank}} &
{\textbf{1A}} &
{\textbf{1B}} &
{\textbf{1C}} &
{\textbf{2A}} &
{\textbf{2B}} &
{\textbf{2C}}\\
\midrule
\enspace1 & 0.657 & 0.913 & 0.733 & 0.830 & 0.387 & 0.893\\
\enspace2 & 0.343 & 0.537 & 0.655 & 0.690 & 0.471 & 0.333\\
\enspace9 & 0.783 & 0.885 & 0.015 & 0.306 & 0.643 & 0.263\\
10 & 0.161 & 0.708 & 0.386 & 0.257 & 0.074 & 0.336\\
\midrule
& \multicolumn{3}{c}{\textbf{Extra~1}} &
\multicolumn{3}{c}{\textbf{Extra~2}}\\
\bottomrule
\end{tabular}
\end{table}
\begin{table}[!htp]
\centering
\caption[at-command table]{This table uses @ with
\texttt{\textbackslash{}extracolsep}. It breaks the row coloring,
all of the centering and the gap between 2B and 2C. Ideally it
should save the initial extracolsep before changing it then
restore it but I don't know how.}
\label{at-command}
\small
\begin{tabular}{c*{3}{S[table-format=1.3]}%
@{\extracolsep{3em}}S[table-format=1.3]%
@{\extracolsep{1em}}S[table-format=1.3]%
S[table-format=1.3]}
\toprule
\rowcolor{lightgray}
& \multicolumn{3}{c}{\textbf{First Group}} &
\multicolumn{3}{c}{\textbf{Second Group}}\\
{\textbf{Rank}} &
{\textbf{1A}} &
{\textbf{1B}} &
{\textbf{1C}} &
{\textbf{2A}} &
{\textbf{2B}} &
{\textbf{2C}}\\
\midrule
\enspace1 & 0.657 & 0.913 & 0.733 & 0.830 & 0.387 & 0.893\\
\enspace2 & 0.343 & 0.537 & 0.655 & 0.690 & 0.471 & 0.333\\
\enspace9 & 0.783 & 0.885 & 0.015 & 0.306 & 0.643 & 0.263\\
10 & 0.161 & 0.708 & 0.386 & 0.257 & 0.074 & 0.336\\
\midrule
& \multicolumn{3}{c}{\textbf{Extra~1}} &
\multicolumn{3}{c}{\textbf{Extra~2}}\\
\bottomrule
\end{tabular}
\end{table}
\end{document}
Output
Other attempts
I have tried using > and < but they create one Overfull \hbox message for every table row plus they complete mess up the centering. I have also tried adding \hspace and \hspace* to the column headings but that also messes up the centering.
Bonus material
If there any optimizations I can make to the LaTeX code please let me know. Having \enspace before single digits to make them right align to double digits in a centered column seems a likely candidate.
Some system details
LuaHBTeX, Version 1.12.0 (MiKTeX 2.9.7440 64-bit)array2019/08/31 v2.4lbooktabs2020/01/12 v1.61803398fontspec2020/02/21 v2.7ixcolor2016/05/11 v2.12
Update
Using @Bernard's solution but with a colored row:

\PassOptionsToPackage{table,svgnames}{xcolor}
\documentclass[oneside,11pt]{article}
\usepackage{array,booktabs,xcolor}
\usepackage[mode=math]{siunitx}
\setlength{\columnsep}{2em}
\begin{document}
\begin{table}[!htp]
\centering\setlength{\extrarowheight}{2pt}
\arrayrulecolor{LightSlateGray}
\caption[exclaim table]{This table uses ! with
\texttt{\textbackslash{}qquad}. It creates the colouring and column
spacing correctly and compensates the centring of the First Group
headings and footers.}
\label{exclaim-command}
\small
\begin{tabular}{S[table-format=2.0]*{3}{S[table-format=1.3]}%
!{\qquad}S[table-format=1.3]%
*{2}{S[table-format=1.3]}}
\toprule
& \multicolumn{3}{c}{\textbf{First Group}\qquad\null} &
\multicolumn{3}{c}{\textbf{Second Group}}\\
\addlinespace[0.5ex]
{\textbf{Rank}} &
{\textbf{1A}} &
{\textbf{1B}} &
{\textbf{1C}} &
{\textbf{2A}} &
{\textbf{2B}} &
{\textbf{2C}}\\
\midrule
1 & 0.657 & 0.913 & 0.733 & 0.830 & 0.387 & 0.893\\
\rowcolor{LightSlateGray!25!Lavender}%{Gainsboro!70!Lavender}
2 & 0.343 & 0.537 & 0.655 & 0.690 & 0.471 & 0.333\\
9 & 0.783 & 0.885 & 0.015 & 0.306 & 0.643 & 0.263\\
10 & 0.161 & 0.708 & 0.386 & 0.257 & 0.074 & 0.336\\
\midrule
& \multicolumn{3}{c}{\textbf{Extra~1}\qquad\null} &
\multicolumn{3}{
c}{\textbf{Extra~2}}\\
\bottomrule
\end{tabular}
\end{table}
\end{document}






