/* Construct Match Footer: front doors, links, the sheet's title block and the
   wordmark drawn full width under a dimension line, like the foot of a drawing */
.cm.ftr { position: relative; padding-top: clamp(64px, 7vw, 100px); background-color: var(--ink); color: rgba(255, 255, 255, .68); font-size: 15px; overflow: hidden; }
.cm.ftr.has-grid { background-image: linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px); background-size: 48px 48px; background-position: -1px -1px; }
.cm.ftr h3 { margin-bottom: 16px; font: 500 12.5px/1 var(--mono); color: var(--silver); }

.cm .ftr__doors { display: grid; grid-template-columns: repeat(var(--n, 2), minmax(0, 1fr)); gap: 16px; margin-bottom: clamp(56px, 6vw, 88px); }
.cm .door { position: relative; display: grid; gap: 10px; align-content: start; min-height: 230px; padding: clamp(26px, 3vw, 40px); padding-right: 110px; border: 1px solid transparent; border-radius: var(--r-lg); background: var(--navy); color: rgba(255, 255, 255, .8); text-decoration: none; overflow: hidden; transition: background-color .3s, border-color .3s; }
.cm .door small { font: 500 12.5px/1 var(--mono); color: var(--silver); }
.cm .door b { font: 650 clamp(28px, 3vw, 44px)/1.05 var(--cm-display); font-stretch: 112%; letter-spacing: -.03em; color: #fff; }
.cm .door span { max-width: 40ch; line-height: 1.55; }
.cm .door__go { position: absolute; right: clamp(22px, 3vw, 36px); bottom: clamp(22px, 3vw, 36px); display: grid; place-items: center; width: 60px; height: 60px; border-radius: 50%; background: #fff; color: var(--navy); transition: transform .4s var(--ease); }
.cm .door__go svg { width: 24px; height: 24px; stroke-width: 2; }
.cm a.door:hover { background: var(--navy-3); }
.cm a.door:hover .door__go { transform: translateX(4px) rotate(-45deg); }
.cm .door--line { background: transparent; border-color: rgba(255, 255, 255, .2); }
.cm a.door--line:hover { background: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .45); }
.cm .door--line .door__go { background: transparent; border: 1px solid rgba(255, 255, 255, .45); color: #fff; }

.cm .ftr__grid { display: grid; grid-template-columns: 1.5fr repeat(3, 1fr) 1.1fr; gap: 32px; padding-bottom: clamp(48px, 5vw, 72px); }
.cm .ftr__brand p { margin: 18px 0 22px; max-width: 26ch; font-size: 16px; color: #fff; }
.cm .ftr__promise { display: grid; gap: 9px; }
.cm .ftr__promise li { display: flex; align-items: center; gap: 10px; font-size: 14px; }
.cm .ftr__promise li::before { content: ""; width: 16px; height: 16px; flex: none; border-radius: 50%; background: var(--silver) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230F1C33' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4L18 8'/%3E%3C/svg%3E") center / 10px no-repeat; }
.cm.ftr nav { display: grid; gap: 11px; align-content: start; }
.cm.ftr nav a { width: fit-content; color: rgba(255, 255, 255, .72); text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: color .2s, background-size .35s var(--ease); }
.cm.ftr nav a:hover { color: #fff; background-size: 100% 1px; }
.cm .ftr__area ul { display: grid; gap: 8px; }
.cm .ftr__area li { display: flex; align-items: baseline; gap: 12px; padding: 10px 14px; border: 1px solid rgba(255, 255, 255, .14); border-radius: 8px; font-size: 13.5px; }
.cm .ftr__area li b { min-width: 44px; font: 650 15px/1 var(--cm-display); font-stretch: 112%; color: #fff; }

/* title block */
.cm .tb { display: grid; grid-template-columns: var(--tb-cols, 1.6fr repeat(4, 1fr) auto); border: 1px solid rgba(255, 255, 255, .22); }
.cm .tb__cell { display: grid; gap: 8px; align-content: center; padding: 16px 18px; border-left: 1px solid rgba(255, 255, 255, .22); }
.cm .tb__cell:first-child { border-left: 0; }
.cm .tb__cell small { font: 400 11px/1 var(--mono); color: rgba(255, 255, 255, .45); }
.cm .tb__cell b { font: 500 14px/1.25 var(--mono); color: #fff; }
.cm .tb__cell--wide b { font: 650 18px/1.1 var(--cm-display); font-stretch: 112%; letter-spacing: -.01em; }
.cm .tb__north { justify-items: center; gap: 2px; width: 84px; color: var(--silver); }
.cm .tb__north svg { width: 34px; height: 34px; stroke-width: 1.3; }
.cm .tb__north b { font-size: 11px; }

/* the wordmark, full bleed */
.cm .ftr__credit { margin: 18px 0 0; font-size: 13.5px; text-align: right; color: rgba(255, 255, 255, .55); }
.cm .ftr__credit a { color: inherit; text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: color .2s, background-size .35s var(--ease); }
.cm .ftr__credit a:hover { color: #fff; background-size: 100% 1px; }
.cm .ftr__big { padding: clamp(36px, 4vw, 56px) 0 0; }
.cm .ftr__dim { display: flex; align-items: center; gap: 14px; margin: 0 var(--pad) 10px; font: 400 11.5px/1 var(--mono); color: rgba(255, 255, 255, .4); white-space: nowrap; }
.cm .ftr__dim i { position: relative; flex: 1; height: 1px; background: rgba(255, 255, 255, .3); }
.cm .ftr__dim i::before { content: ""; position: absolute; top: -6px; width: 1px; height: 13px; background: rgba(255, 255, 255, .45); }
.cm .ftr__dim i:first-child::before { left: 0; }
.cm .ftr__dim i:last-child::before { right: 0; }
.cm .ftr__word { margin: 0 var(--pad); font: 800 calc(145vw / var(--chars, 14))/.78 var(--cm-display); font-stretch: 116%; letter-spacing: -.055em; color: transparent; -webkit-text-stroke: 1.4px rgba(255, 255, 255, .32); white-space: nowrap; transform: translateY(6%); user-select: none; }
.cm .ftr__word b { font-weight: 800; color: var(--navy-3); -webkit-text-stroke: 0; }

@media (max-width: 1120px) {
	.cm .ftr__grid { grid-template-columns: repeat(3, 1fr); }
	.cm .ftr__brand, .cm .ftr__area { grid-column: 1 / -1; }
	.cm .ftr__area ul { grid-template-columns: repeat(3, 1fr); }
	.cm .tb { grid-template-columns: repeat(3, 1fr); }
	.cm .tb__cell:nth-child(3n + 1) { border-left: 0; }
	.cm .tb__cell:nth-child(n + 4) { border-top: 1px solid rgba(255, 255, 255, .22); }
	.cm .tb__north { width: auto; }
}
@media (max-width: 600px) {
	.cm .ftr__doors { grid-template-columns: 1fr; }
	.cm .door { min-height: 0; padding-right: 26px; padding-bottom: 96px; }
	.cm .ftr__grid { grid-template-columns: 1fr 1fr; gap: 32px 20px; }
	.cm .ftr__area ul { grid-template-columns: 1fr; }
	.cm .tb { grid-template-columns: 1fr 1fr; }
	.cm .tb__cell { padding: 14px; border-left: 0; border-top: 1px solid rgba(255, 255, 255, .22); }
	.cm .tb__cell--wide { grid-column: 1 / -1; border-top: 0; }
	.cm .tb__cell:nth-child(odd):not(:first-child) { border-left: 1px solid rgba(255, 255, 255, .22); }
	.cm .tb__north { display: none; }
	.cm .ftr__word { -webkit-text-stroke-width: 1px; }
}
