.genacol-footer { background: var(--g-surface); border-top: 1px solid var(--g-chrome-border); }
.genacol-footer__inner { padding-top: clamp(48px,6vw,80px); padding-bottom: 32px; display: flex; flex-direction: column; gap: clamp(40px,5vw,64px); }
.genacol-footer__grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,200px),1fr)); gap: clamp(28px,4vw,48px); }
.genacol-footer__grid > * { min-width: 0; }
.genacol-footer__brand { display: flex; flex-direction: column; gap: 18px; }
.genacol-footer__brand img { height: 48px; max-width: 100%; }
.genacol-footer__brand .genacol-brand__text { min-height: 48px; }
.genacol-footer__brand p { font-size: 14px; line-height: 1.6; color: var(--g-description-text); max-width: 300px; }
.genacol-footer__heading { font-family: var(--g-font-body); font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--g-dark); }
.genacol-footer__navigation { display: flex; flex-direction: column; gap: 12px; font-size: 15px; }
.genacol-footer__navigation .genacol-footer__heading { margin-bottom: 4px; }
.genacol-footer__navigation .genacol-menu { display: flex; flex-direction: column; gap: 12px; }
.genacol-footer__navigation .genacol-menu a, .genacol-footer__navigation .genacol-pending { color: var(--g-link-text); }
.genacol-footer a:hover, .genacol-footer a:focus-visible { color: var(--g-secondary); }
.genacol-newsletter { display: flex; flex-direction: column; gap: 14px; }
.genacol-newsletter p { font-size: 14px; line-height: 1.55; color: var(--g-description-text); }
/* Genacol Club form (approved reference: one bordered row, email field + dark JOIN button). */
.genacol-newsletter__form { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.genacol-newsletter__field { display: flex; min-width: 0; border: 1px solid rgba(0,75,72,.3); border-radius: var(--g-radius); overflow: hidden; background: #FFFFFF; }
.genacol-newsletter__field:has(input:focus) { border-color: var(--g-primary); box-shadow: 0 0 0 1px var(--g-primary); } /* Focus thickens the one border; no second ring. */
.genacol-newsletter__field:has(input[aria-invalid="true"]) { border-color: #A3352B; box-shadow: 0 0 0 1px #A3352B; }
.genacol-newsletter__field input { flex: 1; min-width: 0; height: 48px; padding: 0 14px; border: 0; border-radius: 0; background: transparent; color: var(--g-text); font: inherit; font-size: 14px; }
.genacol-newsletter__field input:focus-visible { outline: none; } /* The field draws the ring. */
.genacol-newsletter__field input::placeholder { color: #6B746E; opacity: 1; }
.genacol-newsletter__field button { flex: none; min-width: 64px; padding: 0 18px; border: 0; border-radius: 0; background: var(--g-dark); color: #FFFFFF; font: inherit; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; transition: background-color .2s ease; }
.genacol-newsletter__field button:hover { background: var(--g-primary-hover); }
.genacol-newsletter__field button:focus-visible { outline: 2px solid #FFFFFF; outline-offset: -5px; }
.genacol-newsletter__field button:disabled { cursor: progress; opacity: .75; }
.genacol-newsletter__consent { display: flex; gap: 8px; align-items: flex-start; font-size: 12px; line-height: 1.5; color: var(--g-description-text); cursor: pointer; }
.genacol-newsletter__consent input { flex: none; width: 16px; height: 16px; margin: 1px 0 0; accent-color: var(--g-primary); cursor: pointer; }
.genacol-newsletter__consent input:focus-visible { outline: 2px solid var(--g-primary); outline-offset: 2px; }
.genacol-newsletter__consent input[aria-invalid="true"] { outline: 2px solid #A3352B; outline-offset: 2px; }
.genacol-newsletter :is(.genacol-newsletter__consent, .genacol-newsletter__feedback) a { color: var(--g-dark); text-decoration: underline; text-underline-offset: 2px; }
.genacol-newsletter .genacol-newsletter__feedback { min-height: calc(1.5em * 2); margin: 0; font-size: 12.5px; line-height: 1.5; color: var(--g-description-text); overflow-wrap: anywhere; }
.genacol-newsletter .genacol-newsletter__feedback.is-success { color: var(--g-primary); font-weight: 600; }
.genacol-newsletter .genacol-newsletter__feedback.is-error { color: #A3352B; font-weight: 600; }
.genacol-newsletter__hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
@media (prefers-reduced-motion: reduce) { .genacol-newsletter__field button { transition: none; } }
.genacol-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; border-top: 1px solid var(--g-chrome-border); padding-top: 24px; font-size: 12px; color: var(--g-legal-text); }
.genacol-footer__legal, .genacol-footer__legal .genacol-menu { display: flex; flex-wrap: wrap; gap: 20px; }
.genacol-footer__legal a, .genacol-footer__legal .genacol-pending { color: var(--g-description-text); }
.genacol-payment-pending { color: var(--g-text-muted); }
