/* Footer band under the contact details (_blog/build.py footer_block): about, pages, guides, social.
   Same language as the theme footer: Geist, ink #21272a, grey titles #bcbebf, hairlines, square corners. */
.gd-foot { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, .9fr) minmax(0, 1.4fr) minmax(0, 1.1fr); gap: 2.5rem clamp(1.5rem, 3vw, 3.5rem); padding: clamp(2.5rem, 4vw, 3.75rem) 0; border-bottom: 1px solid #bcbebf; color: #21272a; font-size: 14px; line-height: 1.5; }
.gd-foot, .gd-foot * { border-radius: 0 !important; }
.gd-foot ul { list-style: none !important; margin: 0; padding: 0; }
.gd-foot li { margin: 0; padding: 0; }
.gd-foot li::before, .gd-foot li::marker { content: none !important; }

.gd-foot__lead { margin: 0; max-width: 38ch; font-size: clamp(1rem, 1.15vw, 1.15rem); line-height: 1.45; letter-spacing: -.01em; }
.gd-foot__id { margin: 1.4rem 0 0; font-size: 12px; letter-spacing: .02em; color: #8a8f92; }
.gd-foot__title { margin: 0 0 1rem; color: #bcbebf; font-size: 14px; }

/* page + guide links: an underline that draws in from the left */
.gd-foot__col li + li { margin-top: .55rem; }
.gd-foot__col a:not(.gd-social a) { color: #21272a; text-decoration: none; background: linear-gradient(#4caf50, #4caf50) left bottom / 0 1px no-repeat; padding-bottom: 2px; transition: background-size .45s cubic-bezier(.2, .7, .2, 1), color .25s; }
.gd-foot__col a:not(.gd-social a):hover, .gd-foot__col a:not(.gd-social a):focus-visible { background-size: 100% 1px; color: #2e7d32; }
.gd-foot__more { margin-top: 1rem !important; }
.gd-foot__more a { color: #2e7d32 !important; }

/* social: the brand colour rises from the bottom, the icon rolls out the top and back in from below */
.gd-social li + li { margin-top: .75rem; }
.gd-social a { display: flex; align-items: center; gap: .9rem; color: #21272a; text-decoration: none; }
.gd-social__icon { position: relative; flex: none; display: grid; place-items: center; width: 2.9rem; height: 2.9rem; border: 1px solid #bcbebf; color: #21272a; overflow: hidden; isolation: isolate; transition: border-color .35s, color .35s; }
.gd-social__icon::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--gd-brand); transform: translateY(101%); transition: transform .5s cubic-bezier(.2, .7, .2, 1); }
.gd-social__icon svg { display: block; width: 1.25rem; height: 1.25rem; }
.gd-social__text { display: flex; flex-direction: column; min-width: 0; }
.gd-social__name { display: inline-flex; align-items: center; gap: .35rem; font-weight: 500; }
.gd-social__arrow { display: inline-block; color: #4caf50; opacity: 0; transform: translate(-4px, 4px); transition: opacity .3s, transform .4s cubic-bezier(.2, .7, .2, 1); }
.gd-social__handle { font-size: 12px; color: #8a8f92; overflow-wrap: anywhere; transition: color .3s; }
.gd-social a:hover .gd-social__icon, .gd-social a:focus-visible .gd-social__icon { border-color: transparent; color: #fff; }
.gd-social a:hover .gd-social__icon::before, .gd-social a:focus-visible .gd-social__icon::before { transform: none; }
.gd-social a:hover .gd-social__icon svg, .gd-social a:focus-visible .gd-social__icon svg { animation: gd-icon-roll .6s cubic-bezier(.2, .7, .2, 1); }
.gd-social a:hover .gd-social__arrow, .gd-social a:focus-visible .gd-social__arrow { opacity: 1; transform: none; }
.gd-social a:hover .gd-social__handle { color: #21272a; }
.gd-social a:focus-visible { outline: 2px solid #4caf50; outline-offset: 4px; }
.gd-social__item.--linkedin { --gd-brand: #0a66c2; }
.gd-social__item.--facebook { --gd-brand: #1877f2; }
.gd-social__item.--instagram { --gd-brand: linear-gradient(45deg, #f9ce34 0%, #ee2a7b 50%, #6228d7 100%); }
@keyframes gd-icon-roll { 0% { transform: translateY(0); } 45% { transform: translateY(-170%); } 46% { transform: translateY(170%); } 100% { transform: translateY(0); } }

/* "Powered by Shiner" under the copyright: a light sweeps across the wordmark; on hover the mark turns and the sweep runs */
.c-footer__copyrights-imk { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .4rem 1.25rem; }
.gd-powered { display: inline-flex; align-items: center; gap: .45rem; color: #8a8f92; font-size: 12px; letter-spacing: .02em; text-decoration: none; }
.gd-powered__logo { display: inline-flex; align-items: center; gap: .3rem; color: #21272a; font-weight: 600; font-size: 13px; letter-spacing: -.01em; }
.gd-powered__mark { display: block; width: 15px; height: 15px; transition: transform .7s cubic-bezier(.2, .7, .2, 1), color .3s; }
.gd-powered__word { position: relative; display: inline-block; color: #21272a; }
.gd-powered__word::after {
  content: attr(data-text); position: absolute; inset: 0; color: transparent; pointer-events: none;
  background: linear-gradient(100deg, transparent 0%, transparent 35%, rgba(255, 255, 255, .95) 50%, transparent 65%, transparent 100%) no-repeat;
  background-size: 250% 100%; background-position: 150% 0; -webkit-background-clip: text; background-clip: text;
  animation: gd-shine 4.5s ease-in-out 1.5s infinite;
}
.gd-powered__word::before { content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .45s cubic-bezier(.2, .7, .2, 1); }
.gd-powered:hover .gd-powered__mark, .gd-powered:focus-visible .gd-powered__mark { transform: rotate(360deg) scale(1.12); color: #4caf50; }
.gd-powered:hover .gd-powered__word::before, .gd-powered:focus-visible .gd-powered__word::before { transform: scaleX(1); }
.gd-powered:hover .gd-powered__word::after { animation-duration: 1.2s; animation-delay: 0s; }
.gd-powered:hover .gd-powered__by { color: #21272a; }
.gd-powered__by { transition: color .3s; }
.gd-powered:focus-visible { outline: 2px solid #4caf50; outline-offset: 4px; }
@keyframes gd-shine { 0%, 55% { background-position: 150% 0; } 100% { background-position: -50% 0; } }

@media (max-width: 999px) {
  .gd-foot { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gd-foot__about { grid-column: 1 / -1; }
}
@media (max-width: 559px) {
  .gd-foot { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
}
@media (prefers-reduced-motion: reduce) {
  .gd-foot *, .gd-foot *::before, .gd-powered *, .gd-powered *::before, .gd-powered *::after { transition: none !important; animation: none !important; }
}
