:root {
--fm-green:      #203731;
--fm-green-deep: #07130D;
--fm-gold:       #FFB612;
--fm-gold-dim:   rgba(255, 182, 18, .18);
--fm-gold-dark:  #D4940A;
--fm-cream:      #F8F5EE;
--fm-text:       #1A1A1A;
--fm-muted:      #555;
--fm-card-bg:    #FFFFFF;
--fm-border:     rgba(32, 55, 49, .10);
--fm-radius:     10px;
--fm-transition: .22s ease;
} .gbp-fm-page { background: var(--fm-cream); position: relative; z-index: 0; } .gbp-fm-hero {
position: relative;
min-height: 82vh;
display: flex;
align-items: flex-start;
overflow: hidden;
background: var(--fm-green-deep);
color: #fff;
}
@media (max-width: 768px) { .gbp-fm-hero { min-height: 65vh; } }
.gbp-fm-hero__bg { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.gbp-fm-hero__overlay {
position: absolute; inset: 0;
background:
radial-gradient(ellipse at 55% 30%, rgba(32,55,49,.7) 0%, #07130D 65%),
linear-gradient(to top, rgba(2,6,3,.98) 0%, rgba(2,6,3,.45) 55%, transparent 100%);
}
.gbp-fm-hero__img {
position: absolute; inset: 0;
background-size: cover;
background-position: center 40%;
opacity: .45;
}
.gbp-fm-hero__lines {
position: absolute; inset: 0;
background: repeating-linear-gradient(0deg, transparent 79px, rgba(255,182,18,.03) 80px);
}
.gbp-fm-hero__g-watermark {
position: absolute; right: -3%; bottom: -5%;
font-family: 'Barlow Condensed', sans-serif;
font-weight: 900;
font-size: clamp(16rem, 34vw, 40rem);
line-height: 1;
color: rgba(255,182,18,.04);
pointer-events: none; user-select: none;
}
.gbp-fm-hero__grain {
position: absolute; inset: 0; opacity: .032;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
background-repeat: repeat;
}
.gbp-fm-hero__inner {
position: relative; z-index: 2;
padding-top: clamp(120px, 18vh, 200px);
padding-bottom: clamp(60px, 8vh, 80px);
}
.gbp-fm-hero__content { max-width: 660px; }
.gbp-fm-hero__eyebrow {
display: inline-block;
font-family: 'Barlow Condensed', sans-serif;
font-size: .78rem; font-weight: 600;
letter-spacing: .18em; text-transform: uppercase;
color: var(--fm-gold);
margin-bottom: 18px;
padding: 4px 12px;
border: 1px solid var(--fm-gold-dim); border-radius: 2px;
}
.gbp-fm-hero__title {
font-family: 'Barlow Condensed', sans-serif;
font-size: clamp(2.8rem, 6.5vw, 5.5rem);
font-weight: 800; text-transform: uppercase;
line-height: .95; letter-spacing: -.01em;
color: #fff; margin: 0 0 8px;
}
.gbp-fm-hero__title-accent { display: inline; color: var(--fm-gold); }
.gbp-fm-hero__divider {
width: 56px; height: 3px;
background: linear-gradient(90deg, var(--fm-gold), transparent);
margin: 22px 0;
}
.gbp-fm-hero__sub {
font-family: 'Barlow Condensed', sans-serif;
font-size: clamp(1.1rem, 2vw, 1.4rem);
font-weight: 600; letter-spacing: .04em;
color: rgba(255,255,255,.95); margin: 0 0 12px;
}
.gbp-fm-hero__desc {
font-family: 'Inter', sans-serif;
font-size: clamp(.9rem, 1.4vw, 1rem);
line-height: 1.75; color: rgba(255,255,255,.75);
margin: 0 0 28px; max-width: 540px;
}
.gbp-fm-hero__cta-wrap { margin-top: 8px; }
.gbp-fm-hero__scroll {
position: absolute; bottom: 32px; left: 50%; transform: translateX(-50%);
display: flex; flex-direction: column; align-items: center; gap: 6px;
color: rgba(255,255,255,.35); font-size: .7rem; letter-spacing: .1em;
text-transform: uppercase; z-index: 2;
animation: gbp-fm-bounce 2s ease-in-out infinite;
}
.gbp-fm-hero__scroll span { width: 1px; height: 28px; background: currentColor; }
@keyframes gbp-fm-bounce {
0%, 100% { transform: translateX(-50%) translateY(0); }
50%       { transform: translateX(-50%) translateY(6px); }
} .gbp-fm-btn {
display: inline-flex; align-items: center; gap: 8px;
font-family: 'Barlow Condensed', sans-serif;
font-size: .88rem; font-weight: 600;
letter-spacing: .06em; text-transform: uppercase;
padding: 12px 22px; border-radius: 4px;
border: none; cursor: pointer;
transition: background var(--fm-transition), color var(--fm-transition), opacity var(--fm-transition);
text-decoration: none;
}
.gbp-fm-btn--gold   { background: var(--fm-gold); color: #07130D; }
.gbp-fm-btn--gold:hover { background: #ffc52a; }
.gbp-fm-btn--outline { background: transparent; color: var(--fm-gold); border: 1px solid var(--fm-gold-dim); }
.gbp-fm-btn--outline:hover { background: var(--fm-gold-dim); }
.gbp-fm-btn--ghost  { background: transparent; color: var(--fm-muted); border: 1px solid var(--fm-border); }
.gbp-fm-btn--ghost:hover { background: rgba(32,55,49,.06); }
.gbp-fm-btn--danger { background: transparent; color: #c0392b; border: 1px solid rgba(192,57,43,.3); }
.gbp-fm-btn--danger:hover { background: rgba(192,57,43,.08); }
.gbp-fm-btn--sm     { padding: 8px 14px; font-size: .8rem; } .gbp-fm-map-section {
padding: 48px 0 0;
background: var(--fm-cream);
} .gbp-fm-filters {
--fm-ctrl-h: 46px;
display: flex; flex-wrap: wrap; align-items: flex-start;
gap: 22px 34px;
padding: 26px 30px 28px;
background: var(--fm-card-bg);
border: 1px solid var(--fm-border);
border-radius: var(--fm-radius);
margin-bottom: 20px;
box-shadow: 0 2px 12px rgba(0,0,0,.04);
}
.gbp-fm-filters__group { display: flex; flex-direction: column; gap: 10px; }
.gbp-fm-filters__group--radius .gbp-fm-radius-row {
display: flex; gap: 10px; align-items: flex-start;
}
.gbp-fm-filters__label {
font-family: 'Barlow Condensed', sans-serif;
font-size: .95rem; font-weight: 700;
letter-spacing: .1em; text-transform: uppercase;
color: var(--fm-green);
line-height: 1;
} .gbp-fm-filters__radios {
display: flex; gap: 18px; flex-wrap: wrap;
align-items: center;
min-height: var(--fm-ctrl-h);
}
.gbp-fm-radio {
display: flex; align-items: center; gap: 7px;
font-family: 'Inter', sans-serif; font-size: .92rem;
cursor: pointer; color: var(--fm-text);
}
.gbp-fm-radio input {
accent-color: var(--fm-green);
width: 17px; height: 17px;
cursor: pointer;
} .gbp-fm-select {
font-family: 'Inter', sans-serif; font-size: .92rem;
height: var(--fm-ctrl-h);
padding: 0 32px 0 14px;
border: 1.5px solid var(--fm-border);
border-radius: 7px;
background: var(--fm-cream);
color: var(--fm-text);
appearance: none;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23203731' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
background-repeat: no-repeat;
background-position: right 10px center;
cursor: pointer;
min-width: 160px;
transition: border-color var(--fm-transition);
}
.gbp-fm-select--sm { min-width: 210px; }
.gbp-fm-select--xs { min-width: 96px; max-width: 96px; text-align: center; }
.gbp-fm-select:hover { border-color: rgba(32,55,49,.25); }
.gbp-fm-select:focus {
outline: none;
border-color: var(--fm-gold);
box-shadow: 0 0 0 3px rgba(255,182,18,.2);
} .gbp-fm-center-input {
background-image: none;
cursor: text;
padding-right: 14px;
} .gbp-fm-center-wrap {
position: relative;
display: flex;
flex-direction: column;
}
.gbp-fm-center-status {
position: absolute;
top: calc(var(--fm-ctrl-h) + 5px);
left: 3px;
white-space: nowrap;
font-size: .76rem;
font-weight: 500;
color: var(--fm-green);
opacity: .8;
} .gbp-fm-filters .gbp-fm-btn--ghost {
height: var(--fm-ctrl-h);
margin-top: calc(.95rem + 10px);
border-width: 1.5px;
border-radius: 7px;
padding: 0 20px;
font-size: .85rem;
}
@media (max-width: 720px) {
.gbp-fm-filters { gap: 18px; padding: 22px 20px 24px; }
.gbp-fm-filters__group,
.gbp-fm-filters__group--radius .gbp-fm-radius-row { width: 100%; }
.gbp-fm-filters__radios { min-height: 0; }
.gbp-fm-center-wrap { flex: 1; }
.gbp-fm-select--sm { min-width: 0; width: 100%; }
.gbp-fm-filters .gbp-fm-btn--ghost {
margin-top: 0; width: 100%; justify-content: center;
}
} .gbp-fm-map-wrap {
position: relative;
border-radius: var(--fm-radius);
overflow: hidden;
border: 1px solid var(--fm-border);
box-shadow: 0 4px 24px rgba(0,0,0,.08);
}
#gbp-fm-map {
width: 100%;
height: 540px;
}
@media (max-width: 768px) { #gbp-fm-map { height: 380px; } }
.gbp-fm-map-loading {
position: absolute; inset: 0;
display: flex; align-items: center; justify-content: center; gap: 10px;
background: rgba(248,245,238,.85);
font-family: 'Inter', sans-serif; font-size: .9rem; color: var(--fm-muted);
z-index: 500;
transition: opacity .3s ease;
}
.gbp-fm-map-loading.hidden { opacity: 0; pointer-events: none; }
.gbp-fm-spinner {
width: 18px; height: 18px;
border: 2px solid rgba(32,55,49,.15);
border-top-color: var(--fm-green);
border-radius: 50%;
animation: gbp-fm-spin .7s linear infinite;
display: inline-block;
}
@keyframes gbp-fm-spin { to { transform: rotate(360deg); } } .gbp-fm-stats {
display: flex;
margin-top: 1.25rem;
background: var(--fm-green);
border-radius: var(--fm-radius);
overflow: hidden;
}
.gbp-fm-stat {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
padding: 1.4rem 1rem 1.2rem;
text-align: center;
transition: background var(--fm-transition);
}
.gbp-fm-stat + .gbp-fm-stat {
border-left: 1px solid rgba(255,255,255,.1);
}
.gbp-fm-stat__num {
font-family: 'Barlow Condensed', sans-serif;
font-size: 2.8rem;
font-weight: 800;
color: var(--fm-gold);
line-height: 1;
display: block;
transition: transform .25s ease;
}
.gbp-fm-stat__label {
font-size: .72rem;
font-weight: 600;
color: rgba(255,255,255,.65);
text-transform: uppercase;
letter-spacing: .07em;
margin-top: .4rem;
display: block;
}
@media (max-width: 500px) {
.gbp-fm-stat__num  { font-size: 2rem; }
.gbp-fm-stat       { padding: 1rem .5rem; }
} .gbp-fm-city-dot {
width: 10px; height: 10px;
background: var(--fm-gold);
border: 2px solid var(--fm-green);
border-radius: 50%;
cursor: pointer;
transition: transform .15s ease;
}
.gbp-fm-city-dot:hover { transform: scale(1.5); } .gbp-fm-city-popup {
font-family: 'Inter', sans-serif;
display: flex; flex-direction: column; gap: 10px;
padding: 4px 2px;
}
.gbp-fm-city-popup strong {
font-size: .88rem; color: var(--fm-green);
}
.gbp-fm-city-popup__btn {
background: var(--fm-green);
color: var(--fm-gold);
border: none; border-radius: 4px;
padding: 7px 12px;
font-family: 'Barlow Condensed', sans-serif;
font-size: .8rem; font-weight: 600;
letter-spacing: .06em; text-transform: uppercase;
cursor: pointer;
transition: background .2s ease;
}
.gbp-fm-city-popup__btn:hover { background: var(--fm-gold); color: var(--fm-green); } #gbp-fm-map .leaflet-control-zoom a {
background: var(--fm-green);
color: var(--fm-gold);
border-color: rgba(255,182,18,.3);
font-weight: 700;
}
#gbp-fm-map .leaflet-control-zoom a:hover {
background: var(--fm-gold);
color: var(--fm-green);
}
#gbp-fm-map .leaflet-control-zoom {
border: none;
box-shadow: 0 2px 8px rgba(0,0,0,.15);
} #gbp-fm-map.gbp-fm-map--pick {
cursor: crosshair;
} .gbp-fm-map-pick-hint {
display: flex;
align-items: center;
gap: .55rem;
padding: .65rem 1rem;
background: rgba(32, 55, 49, .07);
border-left: 3px solid var(--fm-green);
border-radius: 4px;
font-size: .84rem;
color: var(--fm-green);
font-weight: 500;
margin-bottom: 1rem;
}
.gbp-fm-map-pick-hint svg { flex-shrink: 0; opacity: .7; } .gbp-fm-input--map-fill {
background: rgba(32, 55, 49, .04);
border-style: dashed;
color: var(--fm-green);
font-weight: 600;
cursor: default;
}
.gbp-fm-input--map-fill::placeholder { font-weight: 400; color: var(--fm-muted); }  .gbp-fm-marker {
width: 20px; height: 20px;
background: var(--fm-green);
border: 2px solid var(--fm-gold);
border-radius: 50% 50% 50% 0;
transform: rotate(-45deg);
box-shadow: 0 1px 5px rgba(0,0,0,.3);
transition: transform .15s ease;
} .gbp-fm-marker--mine {
width: 24px; height: 24px;
background: var(--fm-gold);
border-color: var(--fm-green);
box-shadow: 0 1px 6px rgba(0,0,0,.35), 0 0 0 3px rgba(255,182,18,.25);
}
.leaflet-marker-icon:hover .gbp-fm-marker {
transform: rotate(-45deg) scale(1.15);
} .leaflet-popup-content-wrapper {
border-radius: 8px !important;
box-shadow: 0 8px 32px rgba(0,0,0,.15) !important;
padding: 0 !important;
overflow: hidden;
}
.leaflet-popup-content { margin: 0 !important; min-width: 200px; }
.leaflet-popup-tip-container { margin-top: -1px; }
.gbp-fm-popup {
font-family: 'Inter', sans-serif;
}
.gbp-fm-popup__header {
background: var(--fm-green);
color: #fff;
padding: 12px 16px 10px;
}
.gbp-fm-popup__nick {
font-family: 'Barlow Condensed', sans-serif;
font-size: 1.1rem; font-weight: 700;
margin: 0 0 2px;
}
.gbp-fm-popup__city {
font-size: .75rem; color: rgba(255,255,255,.65);
}
.gbp-fm-popup__body { padding: 12px 16px; }
.gbp-fm-popup__contacts { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.gbp-fm-popup__contact a {
display: flex; align-items: center; gap: 7px;
font-size: .82rem; color: var(--fm-green);
text-decoration: none;
}
.gbp-fm-popup__contact a:hover { color: var(--fm-gold-dark); }
.gbp-fm-popup__no-contacts {
font-size: .8rem; color: var(--fm-muted); font-style: italic; margin: 0;
} .gbp-fm-list-section {
padding: 60px 0 20px;
background: var(--fm-cream);
}
.gbp-fm-section-header { margin-bottom: 36px; }
.gbp-fm-section-kicker {
display: inline-block;
font-family: 'Barlow Condensed', sans-serif;
font-size: .72rem; font-weight: 600;
letter-spacing: .18em; text-transform: uppercase;
color: var(--fm-gold-dark);
margin-bottom: 10px;
padding: 3px 10px;
border: 1px solid rgba(212,148,10,.3); border-radius: 2px;
}
.gbp-fm-section-title {
font-family: 'Barlow Condensed', sans-serif;
font-size: clamp(1.8rem, 3.5vw, 2.6rem);
font-weight: 800; text-transform: uppercase;
color: var(--fm-green); margin: 0;
}
.gbp-fm-section-sub {
margin: .5rem 0 0;
font-size: .85rem;
color: var(--fm-muted);
} .gbp-fm-list {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 12px;
align-items: start;
}
@media (max-width: 1024px) {
.gbp-fm-list { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 620px) {
.gbp-fm-list { grid-template-columns: 1fr; }
} .gbp-fm-list-more {
display: flex;
justify-content: center;
align-items: center;
flex-wrap: wrap;
gap: 10px;
margin-top: 22px;
}
.gbp-fm-more-btn {
display: inline-flex; align-items: center; gap: 7px;
padding: 11px 22px;
background: var(--fm-green);
color: #fff;
border: 1.5px solid var(--fm-green);
border-radius: 7px;
font-family: 'Barlow Condensed', sans-serif;
font-size: .88rem; font-weight: 600;
letter-spacing: .07em; text-transform: uppercase;
cursor: pointer;
transition: background var(--fm-transition), color var(--fm-transition);
}
.gbp-fm-more-btn:hover { background: #2c4a41; }
.gbp-fm-more-btn--all,
.gbp-fm-more-btn--less {
background: transparent;
color: var(--fm-green);
}
.gbp-fm-more-btn--all:hover,
.gbp-fm-more-btn--less:hover {
background: var(--fm-green);
color: #fff;
}
@media (max-width: 620px) {
.gbp-fm-list-more { flex-direction: column; }
.gbp-fm-more-btn { width: 100%; justify-content: center; }
} .gbp-fm-card {
background: var(--fm-card-bg);
border: 1px solid var(--fm-border);
border-radius: 8px;
overflow: hidden;
transition: box-shadow var(--fm-transition), border-color var(--fm-transition);
}
.gbp-fm-card:hover { box-shadow: 0 3px 14px rgba(0,0,0,.07); }
.gbp-fm-card--mine { border-color: var(--fm-gold); }
.gbp-fm-card--open { box-shadow: 0 4px 18px rgba(0,0,0,.09); }
.gbp-fm-card__row {
display: flex; align-items: center; gap: 10px;
width: 100%;
padding: 9px 12px;
background: none; border: none;
cursor: pointer; text-align: left;
font: inherit;
}
.gbp-fm-card__avatar {
width: 34px; height: 34px; border-radius: 50%;
background: var(--fm-green);
display: flex; align-items: center; justify-content: center;
flex-shrink: 0; overflow: hidden;
}
.gbp-fm-card--mine .gbp-fm-card__avatar { background: var(--fm-gold); }
.gbp-fm-card__avatar-img {
width: 100%; height: 100%;
object-fit: cover; display: block;
}
.gbp-fm-card__avatar-letter {
font-family: 'Barlow Condensed', sans-serif;
font-size: 1rem; font-weight: 800; color: #fff;
}
.gbp-fm-card--mine .gbp-fm-card__avatar-letter { color: var(--fm-green); }
.gbp-fm-card__meta {
display: flex; flex-direction: column; gap: 1px;
min-width: 0; flex: 1;
}
.gbp-fm-card__nick {
font-family: 'Barlow Condensed', sans-serif;
font-size: 1rem; font-weight: 700;
color: var(--fm-green);
line-height: 1.2;
white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.gbp-fm-card__location {
font-size: .76rem; color: var(--fm-muted);
white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.gbp-fm-card__chevron {
flex-shrink: 0; color: var(--fm-muted);
transition: transform var(--fm-transition);
}
.gbp-fm-card--open .gbp-fm-card__chevron { transform: rotate(180deg); }
.gbp-fm-card__mine-badge {
display: inline-block;
font-family: 'Barlow Condensed', sans-serif;
font-size: .6rem; font-weight: 700;
letter-spacing: .1em; text-transform: uppercase;
color: var(--fm-green); background: var(--fm-gold);
padding: 1px 5px; border-radius: 2px;
margin-left: 5px;
vertical-align: middle;
}
.gbp-fm-card__panel {
padding: 4px 12px 11px;
border-top: 1px solid var(--fm-border);
margin-top: 2px;
}
.gbp-fm-card__contacts {
display: flex; flex-direction: column; gap: 5px;
padding-top: 7px;
}
.gbp-fm-card__contact a {
display: flex; align-items: center; gap: 7px;
font-size: .8rem; color: var(--fm-muted);
text-decoration: none;
white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.gbp-fm-card__contact a:hover { color: var(--fm-green); }
.gbp-fm-card__contact svg { flex-shrink: 0; }
.gbp-fm-card__no-contacts {
font-size: .78rem; color: #aaa; font-style: italic;
}
.gbp-fm-card__locate {
display: flex; align-items: center; gap: 5px;
margin-top: 9px;
padding: 5px 9px;
background: rgba(32,55,49,.05);
border: none; border-radius: 4px;
font-family: 'Barlow Condensed', sans-serif;
font-size: .74rem; font-weight: 600;
letter-spacing: .05em; text-transform: uppercase;
color: var(--fm-green);
cursor: pointer;
transition: background var(--fm-transition);
}
.gbp-fm-card__locate:hover { background: rgba(32,55,49,.11); }
.gbp-fm-card__flag { font-size: .9rem; } .gbp-fm-empty {
display: flex; flex-direction: column; align-items: center; gap: 12px;
padding: 60px 20px;
text-align: center;
font-family: 'Inter', sans-serif; font-size: .9rem; color: var(--fm-muted);
} .gbp-fm-register-section {
padding: 72px 0 100px;
background: linear-gradient(to bottom, var(--fm-cream) 0%, #f0ece3 100%);
} .gbp-fm-login-prompt {
text-align: center;
padding: 60px 40px;
background: var(--fm-card-bg);
border: 1px solid var(--fm-border);
border-radius: var(--fm-radius);
max-width: 480px;
margin: 0 auto;
}
.gbp-fm-login-prompt__icon {
display: flex;
align-items: center;
justify-content: center;
width: 72px; height: 72px;
background: var(--fm-green);
border-radius: 50%;
margin: 0 auto 20px;
color: var(--fm-gold);
}
.gbp-fm-login-prompt__title {
font-family: 'Barlow Condensed', sans-serif;
font-size: 1.5rem; font-weight: 800; text-transform: uppercase;
color: var(--fm-green); margin: 0 0 10px;
}
.gbp-fm-login-prompt__text {
font-family: 'Inter', sans-serif;
font-size: .9rem; color: var(--fm-muted);
margin: 0 0 24px;
}
.gbp-fm-login-prompt__btns {
display: flex;
flex-direction: column;
gap: .7rem;
align-items: center;
}
.gbp-fm-login-prompt__btns .gbp-fm-btn {
width: 100%;
max-width: 320px;
justify-content: center;
} .gbp-fm-form-wrap {
background: var(--fm-card-bg);
border: 1px solid var(--fm-border);
border-radius: var(--fm-radius);
overflow: hidden;
box-shadow: 0 4px 28px rgba(0,0,0,.07);
}
.gbp-fm-form-header {
padding: 36px 40px 24px;
border-bottom: 1px solid var(--fm-border);
}
@media (max-width: 600px) { .gbp-fm-form-header { padding: 28px 20px 20px; } }
.gbp-fm-form-intro {
font-family: 'Inter', sans-serif;
font-size: .88rem; color: var(--fm-muted);
margin: 8px 0 0;
}
.gbp-fm-form { padding: 32px 40px 40px; display: flex; flex-direction: column; gap: 32px; }
@media (max-width: 600px) { .gbp-fm-form { padding: 24px 20px; } } .gbp-fm-fieldset {
border: none; margin: 0; padding: 0;
display: flex; flex-direction: column; gap: 18px;
}
.gbp-fm-fieldset__legend {
display: block;
width: 100%;
font-family: 'Barlow Condensed', sans-serif;
font-size: 1.5rem; font-weight: 800;
letter-spacing: .04em; text-transform: uppercase;
line-height: 1.1;
color: var(--fm-green);
margin: 0 0 6px;
padding: 0 0 12px;
border-bottom: 1px solid var(--fm-border);
position: relative;
}
.gbp-fm-fieldset__legend::after {
content: '';
position: absolute;
left: 0; bottom: -1px;
width: 52px; height: 3px;
background: var(--fm-gold);
border-radius: 2px;
}
.gbp-fm-fieldset__hint {
font-family: 'Inter', sans-serif;
font-size: .85rem; color: var(--fm-muted);
margin: -8px 0 4px; line-height: 1.55;
}
.gbp-fm-legend-note {
font-family: 'Inter', sans-serif;
font-weight: 400; font-size: .5em;
text-transform: none; letter-spacing: 0;
color: var(--fm-muted);
vertical-align: middle;
margin-left: 4px;
} .gbp-fm-field { display: flex; flex-direction: column; gap: 6px; }
.gbp-fm-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 560px) { .gbp-fm-field-row { grid-template-columns: 1fr; } }
.gbp-fm-label {
font-family: 'Barlow Condensed', sans-serif;
font-size: .92rem; font-weight: 700;
letter-spacing: .07em; text-transform: uppercase;
color: var(--fm-green);
}
.gbp-fm-required { color: var(--fm-gold-dark); }
.gbp-fm-input {
font-family: 'Inter', sans-serif; font-size: .9rem;
padding: 10px 14px;
border: 1px solid var(--fm-border);
border-radius: 6px; background: var(--fm-cream);
color: var(--fm-text);
transition: border-color var(--fm-transition);
width: 100%; box-sizing: border-box;
}
.gbp-fm-input:focus { outline: none; border-color: var(--fm-green); box-shadow: 0 0 0 3px rgba(32,55,49,.1); }
.gbp-fm-input.error { border-color: #c0392b; } .gbp-fm-contact-row {
display: grid;
grid-template-columns: 28px 1fr auto;
align-items: center; gap: 12px;
padding: 14px 16px;
background: var(--fm-cream);
border: 1px solid var(--fm-border);
border-radius: 8px;
}
@media (max-width: 520px) {
.gbp-fm-contact-row { grid-template-columns: 28px 1fr; grid-template-rows: auto auto; }
.gbp-fm-toggle { grid-column: 2; grid-row: 2; }
}
.gbp-fm-contact-icon { color: var(--fm-green); opacity: .6; flex-shrink: 0; }
.gbp-fm-contact-input-wrap { display: flex; flex-direction: column; gap: 4px; }
.gbp-fm-contact-input-wrap .gbp-fm-label { font-size: .82rem; letter-spacing: .06em; }
.gbp-fm-contact-input-wrap .gbp-fm-input { font-size: .85rem; padding: 7px 10px; } .gbp-fm-toggle {
display: flex; flex-direction: column; align-items: center; gap: 4px;
cursor: pointer; flex-shrink: 0;
}
.gbp-fm-toggle input { position: absolute; opacity: 0; width: 0; height: 0; }
.gbp-fm-toggle__track {
width: 36px; height: 20px;
background: #ddd;
border-radius: 10px;
position: relative;
transition: background var(--fm-transition);
}
.gbp-fm-toggle__track::after {
content: ''; position: absolute;
top: 3px; left: 3px;
width: 14px; height: 14px;
background: #fff; border-radius: 50%;
transition: left var(--fm-transition);
box-shadow: 0 1px 3px rgba(0,0,0,.2);
}
.gbp-fm-toggle input:checked ~ .gbp-fm-toggle__track { background: var(--fm-green); }
.gbp-fm-toggle input:checked ~ .gbp-fm-toggle__track::after { left: 19px; }
.gbp-fm-toggle__label {
font-family: 'Inter', sans-serif;
font-size: .65rem; color: var(--fm-muted);
white-space: nowrap;
} .gbp-fm-gdpr {
padding: 16px;
background: rgba(32,55,49,.04);
border-radius: 8px;
border: 1px solid rgba(32,55,49,.08);
}
.gbp-fm-checkbox-label {
display: flex; gap: 12px; align-items: flex-start;
font-family: 'Inter', sans-serif; font-size: .82rem;
color: var(--fm-muted); line-height: 1.6; cursor: pointer;
}
.gbp-fm-checkbox-label input { position: absolute; opacity: 0; }
.gbp-fm-checkbox-box {
width: 18px; height: 18px; flex-shrink: 0;
border: 2px solid var(--fm-border); border-radius: 4px;
background: var(--fm-cream); margin-top: 1px;
transition: background var(--fm-transition), border-color var(--fm-transition);
position: relative;
}
.gbp-fm-checkbox-label input:checked ~ .gbp-fm-checkbox-box {
background: var(--fm-green); border-color: var(--fm-green);
}
.gbp-fm-checkbox-label input:checked ~ .gbp-fm-checkbox-box::after {
content: '✓'; position: absolute; top: -1px; left: 3px;
font-size: .8rem; color: #fff; font-weight: 700;
} .gbp-fm-form-actions { display: flex; gap: 12px; flex-wrap: wrap; } .gbp-fm-msg {
padding: 12px 16px;
border-radius: 6px;
font-family: 'Inter', sans-serif; font-size: .88rem;
}
.gbp-fm-msg--success { background: rgba(32,55,49,.08); color: var(--fm-green); border: 1px solid rgba(32,55,49,.15); }
.gbp-fm-msg--error   { background: rgba(192,57,43,.07); color: #c0392b; border: 1px solid rgba(192,57,43,.2); } .gbp-fm-hotspots {
margin-top: 1.5rem;
background: var(--fm-card-bg);
border: 1px solid var(--fm-border);
border-radius: var(--fm-radius);
overflow: hidden;
}
.gbp-fm-hs__header {
display: flex;
align-items: baseline;
gap: .75rem;
padding: .9rem 1.2rem .7rem;
border-bottom: 1px solid var(--fm-border);
background: rgba(32,55,49,.03);
}
.gbp-fm-hs__title {
font-family: 'Barlow Condensed', sans-serif;
font-size: 1rem; font-weight: 700;
text-transform: uppercase;
letter-spacing: .06em;
color: var(--fm-green);
}
.gbp-fm-hs__sub {
font-size: .72rem; color: var(--fm-muted);
} .gbp-fm-hs__list { list-style: none; margin: 0; padding: 0; }
.gbp-fm-hs__item { border-bottom: 1px solid var(--fm-border); }
.gbp-fm-hs__item:last-child { border-bottom: none; } .gbp-fm-hs__row {
width: 100%;
display: flex;
align-items: center;
gap: .6rem;
padding: .7rem 1.2rem;
background: none;
border: none;
cursor: pointer;
text-align: left;
transition: background var(--fm-transition);
font-family: 'Inter', sans-serif;
}
.gbp-fm-hs__row:hover { background: rgba(32,55,49,.04); }
.gbp-fm-hs__rank {
font-family: 'Barlow Condensed', sans-serif;
font-size: 1rem; font-weight: 700;
color: var(--fm-gold-dark);
min-width: 1.4rem;
text-align: right;
}
.gbp-fm-hs__flag  { font-size: 1.1rem; }
.gbp-fm-hs__city  { flex: 1; font-size: .88rem; font-weight: 600; color: var(--fm-green); }
.gbp-fm-hs__bar-wrap {
flex: 2;
height: 6px;
background: rgba(32,55,49,.1);
border-radius: 3px;
overflow: hidden;
min-width: 60px;
}
.gbp-fm-hs__bar {
height: 100%;
background: var(--fm-gold);
border-radius: 3px;
transition: width .4s ease;
}
.gbp-fm-hs__count {
font-family: 'Barlow Condensed', sans-serif;
font-size: 1.1rem; font-weight: 700;
color: var(--fm-green);
min-width: 2rem;
text-align: right;
}
.gbp-fm-hs__chevron {
color: var(--fm-muted);
transition: transform .2s ease;
flex-shrink: 0;
} .gbp-fm-hs__fans {
padding: .5rem 1.2rem .75rem 3.6rem;
display: flex;
flex-direction: column;
gap: .4rem;
background: rgba(32,55,49,.025);
border-top: 1px solid var(--fm-border);
}
.gbp-fm-hs__fan {
display: flex;
align-items: center;
gap: .5rem;
flex-wrap: wrap;
font-size: .82rem;
}
.gbp-fm-hs__fan--mine .gbp-fm-hs__fan-nick { color: var(--fm-gold-dark); font-weight: 700; }
.gbp-fm-hs__fan-nick  { color: var(--fm-green); font-weight: 500; flex-shrink: 0; }
.gbp-fm-hs__fan-contacts { display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; } .gbp-fm-hs__clink {
display: inline-flex; align-items: center; gap: .3rem;
padding: 2px 8px;
border-radius: 20px;
background: rgba(32,55,49,.06);
color: var(--fm-green);
font-size: .75rem;
text-decoration: none;
transition: background var(--fm-transition), color var(--fm-transition);
}
.gbp-fm-hs__clink:hover { background: var(--fm-green); color: #fff; }
.gbp-fm-hs__clink svg { flex-shrink: 0; } .gbp-fm-hs__cval {
display: inline-flex; align-items: center; gap: .3rem;
padding: 2px 8px;
border-radius: 20px;
background: rgba(255,182,18,.14);
color: var(--fm-text);
font-size: .75rem;
user-select: all;
}
.gbp-fm-hs__cval svg { flex-shrink: 0; color: var(--fm-gold-dark); }
.gbp-fm-hs__no-contacts { color: var(--fm-muted); font-size: .75rem; font-style: italic; } .gbp-fm-cval {
display: flex; align-items: center; gap: 7px;
font-size: .8rem; color: var(--fm-muted);
user-select: all;
white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.gbp-fm-cval svg { flex-shrink: 0; } .gbp-fm-hs__more {
display: block;
width: 100%;
padding: .65rem 1.2rem;
background: none;
border: none;
border-top: 1px solid var(--fm-border);
font-size: .8rem;
color: var(--fm-green);
cursor: pointer;
text-align: center;
font-weight: 600;
transition: background var(--fm-transition);
}
.gbp-fm-hs__more:hover { background: rgba(32,55,49,.04); }
@media (max-width: 500px) {
.gbp-fm-hs__bar-wrap { display: none; }
.gbp-fm-hs__fans { padding-left: 1.2rem; }
} .gbp-fm-modal {
position: fixed;
inset: 0;
z-index: 9000;
display: flex;
align-items: center;
justify-content: center;
padding: 1rem;
}
.gbp-fm-modal__backdrop {
position: absolute;
inset: 0;
background: rgba(7, 19, 13, .72);
backdrop-filter: blur(3px);
}
.gbp-fm-modal__box {
position: relative;
background: var(--fm-card-bg);
border-radius: 14px;
padding: 2.5rem 2rem 2rem;
max-width: 380px;
width: 100%;
text-align: center;
box-shadow: 0 24px 64px rgba(0,0,0,.35);
animation: gbp-fm-modal-in .22s ease;
}
@keyframes gbp-fm-modal-in {
from { opacity: 0; transform: translateY(16px) scale(.97); }
to   { opacity: 1; transform: none; }
}
.gbp-fm-modal__close {
position: absolute;
top: .85rem; right: .85rem;
background: none; border: none;
cursor: pointer;
color: var(--fm-muted);
padding: 4px;
border-radius: 4px;
transition: color var(--fm-transition);
}
.gbp-fm-modal__close:hover { color: var(--fm-green); }
.gbp-fm-modal__icon {
width: 64px; height: 64px;
background: var(--fm-green);
border-radius: 50%;
display: flex; align-items: center; justify-content: center;
margin: 0 auto 1.2rem;
color: var(--fm-gold);
}
.gbp-fm-modal__title {
font-family: 'Barlow Condensed', sans-serif;
font-size: 1.6rem; font-weight: 800;
text-transform: uppercase;
color: var(--fm-green);
margin: 0 0 .75rem;
}
.gbp-fm-modal__text {
font-size: .88rem;
color: var(--fm-muted);
line-height: 1.6;
margin: 0 0 1.6rem;
}
.gbp-fm-modal__actions {
display: flex;
flex-direction: column;
gap: .7rem;
}
body.gbp-fm-modal-open { overflow: hidden; } .gbp-fm-popup__locked,
.gbp-fm-card__locked {
font-size: .78rem;
color: var(--fm-muted);
font-style: italic;
}
.gbp-fm-popup__locked a,
.gbp-fm-card__locked a {
color: var(--fm-gold-dark);
font-weight: 600;
text-decoration: underline;
} .gbp-fm-auth-wall {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
padding: 2.5rem 1.5rem;
background: var(--fm-cream);
border: 1.5px dashed rgba(32,55,49,.2);
border-radius: var(--fm-radius-lg);
margin: .5rem 0;
}
.gbp-fm-auth-wall__icon {
width: 64px; height: 64px;
background: var(--fm-green);
border-radius: 50%;
display: flex; align-items: center; justify-content: center;
color: var(--fm-gold);
margin: 0 auto 1.2rem;
}
.gbp-fm-auth-wall__title {
font-family: 'Barlow Condensed', sans-serif;
font-size: 1.45rem; font-weight: 800;
text-transform: uppercase;
color: var(--fm-green);
margin: 0 0 .5rem;
}
.gbp-fm-auth-wall__sub {
font-size: .87rem;
color: var(--fm-muted);
line-height: 1.6;
margin: 0 0 1.6rem;
max-width: 340px;
}
.gbp-fm-auth-wall__btns {
display: flex;
flex-direction: column;
gap: .75rem;
align-items: center;
width: 100%;
}
.gbp-fm-auth-wall__btn {
width: 100%;
max-width: 300px;
justify-content: center;
text-align: center;
}
.gbp-fm-auth-wall__btn--reg {
background: transparent;
color: var(--fm-green);
border: 2px solid var(--fm-green);
}
.gbp-fm-auth-wall__btn--reg:hover {
background: var(--fm-green);
color: #fff;
} .gbp-fm-hs__locked {
padding: .65rem 1rem;
font-size: .82rem;
color: var(--fm-muted);
font-style: italic;
text-align: center;
}
.gbp-fm-hs__locked a {
color: var(--fm-gold-dark);
font-weight: 600;
text-decoration: underline;
} .gbp-fm-login-prompt__perks {
list-style: none;
margin: 0 0 1.6rem;
padding: 0;
text-align: left;
display: inline-flex;
flex-direction: column;
gap: .5rem;
}
.gbp-fm-login-prompt__perks li {
display: flex;
align-items: center;
gap: .5rem;
font-size: .88rem;
color: var(--fm-text);
line-height: 1.4;
}
.gbp-fm-login-prompt__perks svg {
flex-shrink: 0;
color: var(--fm-gold-dark);
} .gbp-fm-loc-box {
display: flex;
flex-direction: column;
gap: 8px;
padding: 13px 16px;
background: var(--fm-cream);
border: 1px solid var(--fm-border);
border-left: 3px solid var(--fm-green);
border-radius: 7px;
}
.gbp-fm-loc-box__row {
display: flex;
align-items: center;
gap: 10px;
flex-wrap: wrap;
}
.gbp-fm-loc-box__row > svg { color: var(--fm-green); flex-shrink: 0; }
.gbp-fm-loc-box__text {
font-size: .86rem;
color: var(--fm-muted);
flex: 1;
min-width: 150px;
}
.gbp-fm-loc-btn {
display: inline-flex; align-items: center; gap: 6px;
padding: 8px 16px;
background: var(--fm-green);
color: #fff;
border: 1.5px solid var(--fm-green);
border-radius: 6px;
font-family: 'Barlow Condensed', sans-serif;
font-size: .82rem; font-weight: 600;
letter-spacing: .06em; text-transform: uppercase;
cursor: pointer;
white-space: nowrap;
transition: background var(--fm-transition), color var(--fm-transition);
}
.gbp-fm-loc-btn:hover { background: #2c4a41; }
.gbp-fm-loc-btn--active {
background: var(--fm-gold);
border-color: var(--fm-gold);
color: #07130D;
}
.gbp-fm-loc-btn--active:hover { background: #ffc52a; }
.gbp-fm-loc-hint {
font-size: .82rem;
font-weight: 500;
color: var(--fm-gold-dark);
}
@media (max-width: 560px) {
.gbp-fm-loc-btn { width: 100%; justify-content: center; }
}