/* TRU Contact Details. */
.tru-contact {
	--tru-contact-icon: var(--tru-accent-text);
	display: flex;
	flex-direction: column;
	gap: var(--tru-s6);
	color: var(--tru-text);
}

.tru-contact__block {
	display: flex;
	flex-direction: column;
	gap: var(--tru-s3);
}

.tru-contact__label {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin: 0;
	font: 500 var(--tru-fs-label) / 1.4 var(--tru-font-text);
	letter-spacing: var(--tru-track-label);
	text-transform: uppercase;
	color: var(--tru-accent-text);
}

.tru-contact__label svg {
	width: 1.25rem;
	height: 1.25rem;
	color: var(--tru-contact-icon);
}

.tru-contact address {
	margin: 0;
	font-style: normal;
	font-size: var(--tru-fs-lead);
	line-height: 1.6;
}

.tru-contact__list {
	display: grid;
	gap: 0.35rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tru-site a.tru-contact__link {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	min-height: 44px;
	color: var(--tru-text);
	font-size: var(--tru-fs-body);
	text-decoration: none;
	background: linear-gradient(currentColor, currentColor) 0 calc(100% - 8px) / 0 1px no-repeat;
	transition: background-size var(--tru-dur) var(--tru-ease), color var(--tru-dur-fast) var(--tru-ease);
}

.tru-site a.tru-contact__link:hover,
.tru-site a.tru-contact__link:focus-visible {
	color: var(--tru-accent-text);
	background-size: 100% 1px;
}

.tru-contact__link svg {
	width: 1.2rem;
	height: 1.2rem;
	flex: none;
	color: var(--tru-contact-icon);
}

.tru-hours {
	width: 100%;
	max-width: 24rem;
	border-collapse: collapse;
	font-size: var(--tru-fs-small);
}

.tru-hours th,
.tru-hours td {
	padding: 0.45rem 0;
	border: 0;
	border-bottom: 1px solid var(--tru-line);
	text-align: left;
	font-weight: 400;
	background: none;
}

/* Themes and Kits style every table (outer borders, cell borders, zebra rows): reset them all. */
.tru-site table.tru-hours {
	margin: 0;
	border: 0;
	background: none;
}

.tru-site table.tru-hours tbody > tr > :is(th, td),
.tru-site table.tru-hours tbody > tr:hover > :is(th, td) {
	border-top: 0;
	border-left: 0;
	border-right: 0;
	background: none;
}

.tru-hours td {
	text-align: right;
	font-variant-numeric: tabular-nums;
}

.tru-hours tr.is-closed td {
	color: var(--tru-text-muted);
}

.tru-hours tr.is-today th,
.tru-hours tr.is-today td {
	font-weight: 600;
	color: var(--tru-text);
}

.tru-hours tr.is-today th::after {
	content: " · " attr(data-today-label);
	font-weight: 400;
	font-size: 0.8125rem;
	letter-spacing: 0.06em;
	color: var(--tru-accent-text);
}

.tru-contact__socials {
	display: flex;
	gap: 0.6rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tru-site a.tru-contact__social {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border: 1px solid var(--tru-line-strong);
	border-radius: 50%;
	color: var(--tru-text);
	transition: background-color var(--tru-dur-fast) var(--tru-ease), color var(--tru-dur-fast) var(--tru-ease), border-color var(--tru-dur-fast) var(--tru-ease);
}

.tru-site a.tru-contact__social:hover,
.tru-site a.tru-contact__social:focus-visible {
	background: var(--tru-champagne);
	border-color: var(--tru-champagne);
	color: var(--tru-ink);
}

.tru-contact__social svg {
	width: 1.25rem;
	height: 1.25rem;
}

/* Layouts */
.tru-contact--columns {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--tru-s6) var(--tru-s5);
}

.tru-contact--columns .tru-contact__block:last-child {
	grid-column: 1 / -1;
}

.tru-contact--footer {
	gap: var(--tru-s5);
}

.tru-contact--footer .tru-contact__label {
	display: none;
}

.tru-contact--footer address {
	font-size: var(--tru-fs-small);
	color: #e8e5e0;
}

.tru-contact--footer a.tru-contact__link {
	min-height: 36px;
	color: var(--tru-ivory);
	font-size: var(--tru-fs-small);
}

/* Footer opening hours: a quiet panel with a hairline frame and the current day picked out in champagne. */
.tru-contact--footer .tru-contact__block--hours {
	margin-top: var(--tru-s2);
	padding: var(--tru-s4) var(--tru-s5) var(--tru-s3);
	border: 1px solid rgb(245 244 240 / 0.14);
	background: rgb(245 244 240 / 0.03);
}

.tru-contact--footer .tru-contact__block--hours .tru-contact__label {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin: 0 0 var(--tru-s2);
	font: 500 var(--tru-fs-label) / 1.5 var(--tru-font-text);
	letter-spacing: var(--tru-track-label);
	text-transform: uppercase;
	color: var(--tru-champagne);
}

.tru-contact--footer .tru-contact__block--hours .tru-contact__label svg {
	width: 1.1rem;
	height: 1.1rem;
}

.tru-contact--footer .tru-hours {
	max-width: 100%;
	color: #e8e5e0;
}

.tru-site .tru-contact--footer table.tru-hours tbody > tr > :is(th, td) {
	padding: 0.55rem 0;
	border-bottom: 1px dotted rgb(245 244 240 / 0.18);
	color: #e8e5e0;
}

.tru-site .tru-contact--footer table.tru-hours tbody > tr:last-child > :is(th, td) {
	border-bottom: 0;
}

.tru-site .tru-contact--footer table.tru-hours tr.is-closed td {
	font-style: italic;
	color: rgb(232 229 224 / 0.6);
}

.tru-site .tru-contact--footer table.tru-hours tr.is-today > :is(th, td) {
	color: var(--tru-champagne);
	font-weight: 500;
}

.tru-contact--footer .tru-hours tr.is-today th::after {
	content: attr(data-today-label);
	display: inline-block;
	margin-left: 0.6rem;
	padding: 0.1rem 0.55rem;
	border: 1px solid rgb(201 195 186 / 0.55);
	border-radius: var(--tru-radius-pill);
	font-size: 0.6875rem;
	font-style: normal;
	line-height: 1.5;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	vertical-align: 0.1em;
	color: var(--tru-champagne);
}

.tru-tone--ink .tru-contact {
	--tru-contact-icon: var(--tru-champagne);
}

@media (max-width: 767px) {
	.tru-contact--columns {
		grid-template-columns: minmax(0, 1fr);
	}
}
