/* =====================================================================
   Marbella Golf Pass — Rediseño (Figma node 50:7750)
   Navbar + Login card + Campos colaboradores + Footer
   Tokens: Oscuro #111605 · Verde #B7FE00 · Blanco #FFFFFF · Claro #E6ECD6
   ===================================================================== */

:root {
    --gp-oscuro: #111605;
    --gp-verde:  #b7fe00;
    --gp-blanco: #ffffff;
    --gp-claro:  #e6ecd6;
    --main-color: #111605;
    --primary-color: #b7fe00;
    --secondary-color: #b7fe00;
    --terciary-color: #67768e;
    --text-color: #111605;
}

/* Geist en toda la web (override del `* { font-family: Jost !important }` de golfpass.css) */
* { font-family: 'Geist', sans-serif !important; }
.gp-font { font-family: 'Geist', sans-serif !important; }

/* Contenedor común: ancho máximo 1400px centrado */
.gp-container { width: 100%; max-width: 1400px; margin: 0 auto; }

/* Full-bleed: neutraliza el padding/max-width de los contenedores Bootstrap
   para que la sección de login llene el ancho con su fondo claro. */
#content:has(.gp-bleed) { background: var(--gp-claro); }
.container-main:has(.gp-bleed),
.container-main-sidebar:has(.gp-bleed) { padding: 0 !important; }
.container-fluid:has(.gp-bleed) {
    padding: 0 !important;
    max-width: none !important;
    width: 100%;
    display: block !important;
}

.golfpass-modal-btn {
    color: var(--text-color);
    border-radius: 56px;
    border: none;
}

.golfpass-teetime-time-text {
    font-weight: 600;
    color: var(--primary-color);
    margin: 0px;
    font-size: 20px;
}
.golfpass-teetime-time {
    background-color: var(--text-color);
}
.golfpass-player-counter {
    color: var(--text-color);
}
.head-month.head-month {
    color: var(--text-color);
}

.btn-booking * {
    color: var(--text-color) !important;
}

tbody td:hover, .selected {
    color:  var(--text-color);
}

.playersBtn.players-selected {
    color: var(--text-color);
    background-color: initial;
    border-bottom: 2px var(--primary-color) solid;
}

.playersBtn {
    border: none;
    border-radius: 0px;
}

.playersBtn:hover {
    border-bottom: 2px var(--primary-color) solid;
    background-color: initial;
    color: var(--text-color);
}

/* ============================ NAVBAR ============================ */
.gp-navbar-wrap {
    background-color: var(--gp-claro);
    display: flex;
    justify-content: center;
    padding: 32px 20px 0;
    width: 100%;
}

.gp-navbar {
    background-color: var(--gp-blanco);
    border-radius: 8px;
    width: 100%;
    max-width: 1400px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 12px;
    gap: 16px;
}

/* Logo (SVG) */
.gp-navbar-logo {
    display: flex;
    align-items: center;
    line-height: 0;
    padding-left: 4px;
}
.gp-navbar-logo img {
    height: 43px;
    width: auto;
    display: block;
}

/* Collapse (fila en desktop, columna en mobile) */
.gp-navbar-collapse {
    display: flex;
    align-items: center;
    gap: 32px;
}

/* Menu */
.gp-navbar-menu {
    display: flex;
    align-items: center;
    gap: 32px;
    list-style: none;
    margin: 0;
    padding: 0;
}
.gp-navbar-menu li { margin: 0; }
.gp-nav-link {
    font-family: 'Geist', sans-serif !important;
    font-weight: 600;
    font-size: 16px;
    color: var(--gp-oscuro) !important;
    text-decoration: none;
    white-space: nowrap;
    letter-spacing: normal;
    padding: 8px 0;
    transition: opacity .2s ease;
}
.gp-nav-link:hover { opacity: .65; color: var(--gp-oscuro) !important; text-decoration: none; }

/* CTA pill (oscuro / verde) */
.gp-btn-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 56px;
    padding: 8px 32px;
    font-family: 'Geist', sans-serif !important;
    font-weight: 600;
    font-size: 16px;
    line-height: normal;
    letter-spacing: normal;
    text-decoration: none;
    white-space: nowrap;
    border: none;
    cursor: pointer;
    transition: transform .15s ease, opacity .2s ease;
}
.gp-btn-pill--dark  { background: var(--gp-oscuro); color: var(--gp-verde) !important; }
.gp-btn-pill--green { background: var(--gp-verde);  color: var(--gp-oscuro) !important; width: 100%; border: 2px var(--primary-color) solid; }
.gp-btn-pill:hover  { 
    text-decoration: none; 
    opacity: .92; 
}
.gp-btn-pill--green:hover  { 
    text-decoration: none; 
    opacity: .92; 
    color: var(--primary-color) !important;
    background: none; 
}

/* Idioma + logout integrados (preservan función ?lang= y sesión) */
.gp-navbar-utils { display: flex; align-items: center; gap: 12px; }
.gp-navbar-utils a { line-height: 0; }
.gp-navbar-utils .flag-icon { height: 18px; width: 24px; border-radius: 3px; }
.gp-navbar-utils .gp-logout svg { width: 20px; height: 20px; }
.gp-navbar-utils .gp-logout path { fill: var(--gp-oscuro); }

.gp-navbar-toggler {
    display: none;
    border: none;
    background: transparent;
    font-size: 22px;
    color: var(--gp-oscuro);
    cursor: pointer;
}

/* ============================ LOGIN SECTION ============================ */
.gp-login-section {
    background-color: var(--gp-claro);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 80px 20px;
    width: 100%;
}
.gp-login-section .gp-container {
    display: flex;
    justify-content: center;
}

.gp-card {
    background-color: var(--gp-oscuro);
    border-radius: 16px;
    padding: 32px;
    width: 554px;
    max-width: 100%;
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.gp-card-title {
    font-family: 'Geist', sans-serif !important;
    font-weight: 400;
    font-size: 48px;
    line-height: 1;
    letter-spacing: -0.02em;
    color: var(--gp-blanco);
    text-align: center;
    margin: 0;
}
.gp-card-title .gp-accent { color: var(--gp-verde); }

.gp-card-subtitle {
    font-family: 'Geist', sans-serif !important;
    font-weight: 400;
    font-size: 16px;
    line-height: 1.2;
    color: var(--gp-blanco);
    text-align: center;
    margin: 0;
}

.gp-field {
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 100%;
}
.gp-field label {
    font-family: 'Geist', sans-serif !important;
    font-weight: 400;
    font-size: 14px;
    line-height: 1.2;
    color: var(--gp-blanco);
    margin: 0;
}
.gp-field input {
    background: var(--gp-blanco);
    border: 1px solid rgba(17, 22, 5, 0.4);
    border-radius: 4px;
    height: 43px;
    padding: 8px 16px;
    font-family: 'Geist', sans-serif !important;
    font-size: 14px;
    color: var(--gp-oscuro);
    width: 100%;
    outline: none;
}
.gp-field input:focus { box-shadow: 0 0 0 2px rgba(183, 254, 0, 0.35); }

.gp-forgot {
    font-family: 'Geist', sans-serif !important;
    font-size: 13px;
    color: var(--gp-verde) !important;
    text-decoration: none;
    align-self: flex-start;
}
.gp-forgot:hover { text-decoration: underline; color: var(--gp-verde) !important; }

.gp-field-error {
    font-family: 'Geist', sans-serif !important;
    font-size: 13px;
    color: #ff6b6b;
    margin: 0;
}

/* ============================ HERO CAMPOS ============================ */
.gp-footer-block { display: flex; flex-direction: column; width: 100%; }

.gp-hero {
    position: relative;
    min-height: 650px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 56px 20px;
    overflow: hidden;
}
.gp-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url('../img/golfpass-redesign/hero-bg.png');
    background-size: cover;
    background-position: center -80px;
    z-index: 0;
}
.gp-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, var(--gp-oscuro) 20%, rgba(54, 104, 56, 0) 57%);
    z-index: 1;
}
.gp-hero-inner {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 100%;
}
.gp-hero-title {
    font-family: 'Geist', sans-serif !important;
    font-weight: 400;
    font-size: 48px;
    line-height: 1;
    letter-spacing: -0.02em;
    color: var(--gp-verde);
    margin: 0;
}
.gp-hero-divider {
    height: 2px;
    width: 100%;
    background: var(--gp-blanco);
    border-radius: 86px;
}
.gp-hero-logos {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    gap: 24px;
    flex-wrap: wrap;
}
.gp-hero-logos img {
    height: 64px;
    width: auto;
    object-fit: contain;
}

/* ============================ FOOTER OSCURO ============================ */
.gp-footer {
    background-color: var(--gp-oscuro);
    padding: 56px 20px;
}
.gp-footer-inner {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    gap: 48px;
    flex-wrap: wrap;
}
.gp-footer-left {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 128px;
}
.gp-footer-tagline {
    font-family: 'Geist', sans-serif !important;
    font-weight: 400;
    font-size: 16px;
    line-height: 1;
    letter-spacing: -0.02em;
    color: var(--gp-blanco);
    width: 356px;
    max-width: 100%;
    margin: 0;
}
.gp-footer-wordmark { height: 80px; width: auto; }

.gp-footer-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: space-between;
    gap: 32px;
}
.gp-footer-links {
    display: flex;
    flex-direction: column;
    gap: 16px;
    align-items: flex-end;
}
.gp-footer-links-row {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    justify-content: flex-end;
}
.gp-btn-outline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 2px solid var(--gp-blanco);
    border-radius: 56px;
    padding: 4px 16px;
    font-family: 'Geist', sans-serif !important;
    font-weight: 400;
    font-size: 14px;
    letter-spacing: -0.02em;
    color: var(--gp-blanco) !important;
    text-decoration: none;
    white-space: nowrap;
    transition: background .2s ease, color .2s ease;
}
.gp-btn-outline:hover {
    background: var(--gp-blanco);
    color: var(--gp-oscuro) !important;
    text-decoration: none;
}
.gp-footer-copyright {
    font-family: 'Geist', sans-serif !important;
    font-weight: 400;
    font-size: 12px;
    line-height: 1;
    letter-spacing: -0.02em;
    color: var(--gp-blanco);
    margin: 0;
}
.gp-footer-copyright a {
    color: var(--gp-verde) !important;
    text-decoration: none;
}
.gp-footer-copyright a:hover { text-decoration: underline; }

/* ============================ RESPONSIVE ============================ */
@media (max-width: 1200px) {
    .gp-login-section { padding: 64px 24px; }
    .gp-hero   { padding: 48px 24px; }
    .gp-footer { padding: 48px 24px; }
}

@media (max-width: 992px) {
    .gp-navbar { flex-wrap: wrap; }
    .gp-navbar-toggler { display: inline-flex; }
    .gp-navbar-collapse {
        display: none;
        flex-basis: 100%;
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
        padding: 12px 4px 8px;
    }
    .gp-navbar-collapse.open { display: flex; }
    .gp-navbar-menu { flex-direction: column; align-items: flex-start; gap: 16px; width: 100%; }
    .gp-btn-pill--dark { width: 100%; }
}

@media (max-width: 768px) {
    .gp-card-title  { font-size: 36px; }
    .gp-hero-title  { font-size: 36px; }
    .gp-hero-logos  { justify-content: center; gap: 32px; }
    .gp-footer-inner { flex-direction: column; gap: 48px; }
    .gp-footer-left { gap: 48px; }
    .gp-footer-right { align-items: flex-start; }
    .gp-footer-links { align-items: flex-start; }
    .gp-footer-links-row { justify-content: flex-start; }
}

@media (max-width: 480px) {
    .gp-login-section { padding: 40px 16px; }
    .gp-card { padding: 24px; }
    .gp-card-title { font-size: 30px; }
    .gp-hero { padding: 32px 20px; }
    .gp-footer { padding: 40px 20px; }
}

/* ============================ HOME (Green fee paso 1) ============================ */
.gp-home-section {
    background-color: var(--gp-claro);
    padding: 80px 20px;
    width: 100%;
}
.gp-home-grid {
    display: flex;
    gap: 24px;
    align-items: flex-start;
}
.gp-home-courses {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

/* --- Card de campo (oscura) --- */
.gp-course-card {
    background-color: var(--gp-oscuro);
    border-radius: 8px;
    padding: 24px 16px;
    display: flex;
    gap: 32px;
    align-items: stretch;
}
.gp-course-card.is-disabled { opacity: .6; }
.gp-course-card__img {
    width: 261px;
    flex-shrink: 0;
    align-self: stretch;
    min-height: 158px;
    border-radius: 8px;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
.gp-course-card__body {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.gp-course-card__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}
.gp-course-card__name {
    font-family: 'Geist', sans-serif !important;
    font-weight: 400;
    font-size: 20px;
    line-height: 1.1;
    letter-spacing: -0.4px;
    color: var(--gp-blanco);
    margin: 0;
}
.gp-course-card__count {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}
.gp-course-card__count img { width: 24px; height: 24px; display: block; }
.gp-course-card__count span {
    font-family: 'Geist', sans-serif !important;
    font-weight: 700;
    font-size: 16px;
    color: var(--gp-verde);
}
.gp-course-card__sub {
    font-family: 'Geist', sans-serif !important;
    font-weight: 600;
    font-size: 16px;
    line-height: 1.2;
    letter-spacing: -0.32px;
    text-transform: uppercase;
    color: var(--gp-blanco);
    margin: 0;
}
.gp-course-card__actions {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: auto;
    width: 100%;
}
/* botón secundario (Selecciona tu recorrido) */
.gp-btn-pill--ghost {
    background: transparent;
    border: 2px solid var(--gp-verde);
    color: var(--gp-verde) !important;
    width: 100%;
    padding: 14px 32px;
}
.gp-btn-pill--ghost:hover { background: var(--gp-verde); color: var(--gp-oscuro) !important; }
.gp-course-card__actions .gp-btn-pill[disabled],
.gp-course-card__actions .gp-btn-pill:disabled { opacity: .5; pointer-events: none; }

/* --- Card de reservas confirmadas (clara) --- */
.gp-resume-card {
    background-color: var(--gp-blanco);
    border-radius: 8px;
    padding: 32px;
    width: 356px;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 24px;
    position: sticky;
    top: 32px;
}
.gp-resume-title {
    font-family: 'Geist', sans-serif !important;
    font-weight: 600;
    font-size: 16px;
    line-height: 1;
    letter-spacing: -0.32px;
    text-transform: uppercase;
    color: #000;
    margin: 0;
}
.gp-resume-divider {
    height: 1px;
    width: 100%;
    background: var(--gp-oscuro);
    border-radius: 86px;
    border: 0;
}
.gp-resume-divider--soft { background: rgba(17, 22, 5, 0.4); }
.gp-resume-item {
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 100%;
}
.gp-resume-course {
    font-family: 'Geist', sans-serif !important;
    font-weight: 400;
    font-size: 20px;
    line-height: 1.1;
    letter-spacing: -0.4px;
    color: var(--gp-oscuro);
    margin: 0;
}
.gp-resume-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    flex-wrap: wrap;
}
.gp-resume-chip { display: flex; align-items: center; gap: 8px; }
.gp-resume-chip__ic {
    width: 24px;
    height: 24px;
    border-radius: 80px;
    background: var(--gp-verde);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.gp-resume-chip__ic img { width: 16px; height: 16px; display: block; }
.gp-resume-chip span {
    font-family: 'Geist', sans-serif !important;
    font-weight: 400;
    font-size: 16px;
    color: #000;
}
.gp-resume-empty {
    font-family: 'Geist', sans-serif !important;
    font-size: 14px;
    color: rgba(17, 22, 5, 0.5);
    text-align: center;
    margin: 0;
}

@media (max-width: 992px) {
    .gp-home-grid { flex-direction: column; }
    .gp-resume-card { width: 100%; position: static; order: -1; }
}
@media (max-width: 768px) {
    .gp-home-section { padding: 48px 24px; }
    .gp-course-card { flex-direction: column; gap: 16px; padding: 16px; }
    .gp-course-card__img { width: 100%; min-height: 180px; }
}
@media (max-width: 480px) {
    .gp-home-section { padding: 40px 16px; }
}

/* ============================ LOADER ============================ */
/* Logo de la pantalla de carga más grande (override del max-height: 13% legacy) */
.loader-golfpass-logo {
    max-height: none !important;
    width: clamp(260px, 32vw, 460px);
    height: auto;
}
/* Apila logo + spinner en columna y saca el spinner del centrado fijo
   (scopeado a .loader-background para no afectar otros .loader) */
.loader-background .logo-container {
    flex-direction: column;
    gap: 40px;
    padding-bottom: 0;
}
.loader-background .loader {
    position: static !important;
    top: auto !important;
    left: auto !important;
    transform: none !important;
    margin: 0 !important;
}
