@import url('https://fonts.googleapis.com/css2?family=League+Spartan:wght@300;400;500;600;700;800&display=swap');

.gpb-keeterButton {
    display: block;
    position: relative;
    height: 240px;
    width: 419px;
    max-width: 100%;
    margin-left:auto;
    margin-right:auto;
}

.gpb-keeterButton.square {
    width: 275px;
    max-width: 100%;
    aspect-ratio: 1/1;
}



.gpb-keeterButton img {
    position: absolute;
    object-fit: cover;
    height: 100%;
    width: 100%;
    z-index: 0;
}

.gpb-keeterButton-gradient {
    position: absolute;
    z-index: 1;
    left: 0;
    top: 0;
    height: 100%;
    width: 100%;
    background: rgba(0,0,0,0.6);
    background: linear-gradient(90deg, rgba(0,0,0,0.8743872549019608) 0%, rgba(0,0,0,0.1881127450980392) 100%);
}

.gpb-keeterButton.square .gpb-keeterButton-body {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
}

.gpb-keeterButton:not(.square) .gpb-keeterButton-body {
    padding: 0 25px 30px 25px;
}

.gpb-keeterButton-body span {
    display: block;
    font-family: 'League Spartan', sans-serif;
    font-weight: 400;
    font-size: clamp(1.125rem, 3vw, 1.5625rem);
    color: white;
    text-transform: uppercase;
    letter-spacing: 3px;
    margin-right: 25px;
    border-bottom: 3px solid white;
}

.gpb-keeterButton-body p {
    display: block;
    width: 100%;
    font-family: 'League Spartan', sans-serif;
    font-weight: 400;
    font-size: clamp(1.125rem, 3vw, 1.5625rem);
    color: white;
    letter-spacing: 1px;
    margin-right: 25px;
    text-shadow: 0 0 10px black;
}

.gpb-keeterButton.square .gpb-keeterButton-body p,
.gpb-keeterButton.square .gpb-keeterButton-body span {
    max-width: calc(100% - 20px);
    word-wrap: break-word;
    margin: 0 10px;
}

.gpb-keeterButton.rectangle.px120 {
    height: 120px;
}

.gpb-keeterButton.rectangle.px180 {
    height: 180px;
}

.gpb-keeterButton.rectangle.px120 span {
    font-size: clamp(0.875rem, 2.5vw, 1.125rem);
}

.gpb-keeterButton.rectangle.px180 span {
    font-size: clamp(1rem, 2.5vw, 1.375rem);
}

.gpb-keeterButton.rectangle.px120 p {
    font-size: clamp(0.75rem, 2vw, 1rem);
    bottom: 15px;
}

.gpb-keeterButton.rectangle.px180 p {
    font-size: clamp(0.875rem, 2vw, 1.125rem);
    bottom: 15px;
}

.gpb-keeterButton.square .gpb-keeterButton-body {
    width: auto;
    height: auto;
    width: 100%;
    top: 50%;
    transform: translateY(-50%);
    text-align: center;
}

.gpb-keeterButton.square span {
    display: inline-block;
    padding: 0 10px;
    font-family: 'League Spartan', sans-serif;
    font-weight: 400;
    font-size: clamp(0.875rem, 2.5vw, 1.125rem);
    color: white;
    text-transform: uppercase;
    letter-spacing: 3px;
    border-bottom: 3px solid white;
}

.gpb-keeterButton.rectangle span {
    word-wrap: break-word;
}

.gpb-keeterButton.square p {
    font-family: 'League Spartan', sans-serif;
    font-weight: 400;
    font-size: clamp(0.75rem, 2vw, 1rem);
    color: white;
    letter-spacing: 1px;
    text-shadow: 0 0 10px black;
    padding: 0 10px;
}

.gpb-keeterButton.rectangle .gpb-keeterButton-body {
    height: 100%;
}

.gpb-keeterButton.rectangle p {
    bottom: 31px;
    position: absolute;
    margin-bottom: 0;
    word-wrap: break-word;
    left: 0;
    padding: 0 25px;
}

.gpb-keeterButton::before,
.gpb-keeterButton::after {
    content: '';
    width: 0;
    height: 0;
    position: absolute;
    z-index: 3;
}

.gpb-keeterButton::before {
    top: 2%;
    left: 0;
    border-top: 1px solid transparent;
    border-right: 1px solid transparent;
}

.gpb-keeterButton::after {
    bottom: 2%;
    right: 0;
    border-bottom: 1px solid transparent;
    border-left: 1px solid transparent;
}

.gpb-keeterButton:hover::before,
.gpb-keeterButton:hover::after {
    width: 99%;
    height: 100%;
}

.gpb-keeterButton:hover::before,
.gpb-keeterButton:focus::before {
    border-top: 1px solid white;
    border-right: 1px solid white;
    transition: width 0.2s ease-out, height 0.2s ease-out 0.2s;
}

.gpb-keeterButton:hover::after,
.gpb-keeterButton:focus::after {
    border-bottom: 1px solid white;
    border-left: 1px solid white;
    transition: width 0.2s ease-out, height 0.2s ease-out 0.2s;
}

/*Transition Animations for Square*/

.gpb-keeterButton.square::before {
    top: 1%;
    left: -0.5%;
    border-top: 1px solid transparent;
    border-right: 1px solid transparent;
}

.gpb-keeterButton.square::after {
    bottom: 1%;
    right: -0.5%;
    border-bottom: 1px solid transparent;
    border-left: 1px solid transparent;
}

.gpb-keeterButton.square:hover::before,
.gpb-keeterButton.square:hover::after,
.gpb-keeterButton.square:focus::before,
.gpb-keeterButton.square:focus::after {
    width: 99%;
    height: 99%;
}

.gpb-keeterButton.square:hover::before,
.gpb-keeterButton.square:focus::before {
    border-top: 1px solid white;
    border-right: 1px solid white;
    transition: width 0.2s ease-out, height 0.2s ease-out 0.2s;
}

.gpb-keeterButton.square:hover::after,
.gpb-keeterButton.square:focus::after {
    border-bottom: 1px solid white;
    border-left: 1px solid white;
    transition: width 0.2s ease-out, height 0.2s ease-out 0.2s;
}

@media (max-width: 1199px) {
    .actionCard p, .actionCard span {
        font-size: clamp(1rem, 2.5vw, 1.375rem);
    }
}

/* 02.07.00: Keeter card, refreshed. These rules come after the originals and win for rectangle cards.
   Same look as today: photo with the name in League Spartan capitals and a white underline at the top,
   the tagline at the bottom, and a thin white frame that draws in on hover. What changes:
   - the card keeps one shape (6:5, about today's height) at every width instead of a fixed 240 x 419 px box
   - name, underline and tagline sit together at the bottom (option B, Seth 2026-10-13), so a long
     tagline can never run into the name
   - a bottom shade replaces the heavy left-to-right gradient: the top of the photo stays clear
   - text sizes are fixed steps instead of growing with the browser width
   - the hover frame sits evenly 10px inside the card, and keyboard focus gets the same frame */

.gpb-keeterButton.rectangle {
    display: block;
    position: relative;
    width: 100%;
    max-width: 460px;
    height: auto;
    aspect-ratio: 6 / 5;
    margin: 0 auto;
    overflow: hidden;
    color: #fff;
    text-decoration: none;
    background: #3d2a18;
}
.gpb-keeterButton.rectangle.px120 { aspect-ratio: 12 / 5; }
.gpb-keeterButton.rectangle.px180 { aspect-ratio: 8 / 5; }

.gpb-keeterButton.rectangle img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s ease;
}

/* Shade only behind the words at the bottom; the top of the photo stays clear. */
.gpb-keeterButton.rectangle .gpb-keeterButton-gradient {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(180deg, rgba(20, 12, 5, 0) 30%, rgba(20, 12, 5, .35) 55%, rgba(20, 12, 5, .85) 100%);
}

.gpb-keeterButton.rectangle .gpb-keeterButton-body {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 10px;
    height: 100%;
    padding: 22px 26px 24px;
}

.gpb-keeterButton.rectangle .gpb-keeterButton-body span {
    align-self: flex-start;
    margin: 0;
    padding-bottom: 6px;
    border-bottom: 2px solid #fff;
    font: 500 24px/1.15 'League Spartan', Arial, sans-serif;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #fff;
}

.gpb-keeterButton.rectangle .gpb-keeterButton-body p {
    position: static;
    margin: 0;
    padding: 0;
    max-width: 30ch;
    font: 400 18px/1.35 'League Spartan', Arial, sans-serif;
    letter-spacing: .02em;
    color: #fff;
    text-shadow: 0 1px 6px rgba(0, 0, 0, .55);
    overflow-wrap: break-word;
}

.gpb-keeterButton.rectangle.px120 .gpb-keeterButton-body { padding: 12px 16px; }
.gpb-keeterButton.rectangle.px120 .gpb-keeterButton-body span { font-size: 16px; }
.gpb-keeterButton.rectangle.px120 .gpb-keeterButton-body p { font-size: 14px; }
.gpb-keeterButton.rectangle.px180 .gpb-keeterButton-body { padding: 16px 20px 18px; }
.gpb-keeterButton.rectangle.px180 .gpb-keeterButton-body span { font-size: 19px; }
.gpb-keeterButton.rectangle.px180 .gpb-keeterButton-body p { font-size: 16px; }

/* Hover and keyboard focus: the thin white frame draws in, evenly 10px inside the edge. */
.gpb-keeterButton.rectangle::before,
.gpb-keeterButton.rectangle::after {
    content: '';
    position: absolute;
    z-index: 3;
    width: 0;
    height: 0;
    border: 0 solid #fff;
    pointer-events: none;
}
.gpb-keeterButton.rectangle::before { top: 10px; left: 10px; }
.gpb-keeterButton.rectangle::after { bottom: 10px; right: 10px; }
.gpb-keeterButton.rectangle:hover::before,
.gpb-keeterButton.rectangle:focus-visible::before {
    width: calc(100% - 20px);
    height: calc(100% - 20px);
    border-top-width: 1px;
    border-right-width: 1px;
    transition: width .2s ease-out, height .2s ease-out .2s;
}
.gpb-keeterButton.rectangle:hover::after,
.gpb-keeterButton.rectangle:focus-visible::after {
    width: calc(100% - 20px);
    height: calc(100% - 20px);
    border-bottom-width: 1px;
    border-left-width: 1px;
    transition: width .2s ease-out, height .2s ease-out .2s;
}
.gpb-keeterButton.rectangle:hover img,
.gpb-keeterButton.rectangle:focus-visible img { transform: scale(1.04); }
.gpb-keeterButton.rectangle:focus-visible { outline: none; }

@media (max-width: 575px) {
    .gpb-keeterButton.rectangle .gpb-keeterButton-body { padding: 18px 20px 20px; }
    .gpb-keeterButton.rectangle .gpb-keeterButton-body span { font-size: 19px; }
    .gpb-keeterButton.rectangle .gpb-keeterButton-body p { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) {
    .gpb-keeterButton.rectangle img,
    .gpb-keeterButton.rectangle::before,
    .gpb-keeterButton.rectangle::after { transition: none !important; }
}
