
.gym-template-page{padding:2rem 0}
.gym-template-inner{max-width:1200px;margin:0 auto;padding:0 1rem}
.gym-catalog-wrap,.gym-single-wrap{display:grid;gap:1.25rem}
.gym-catalog-intro{display:flex;align-items:end;justify-content:space-between;gap:1rem}
.gym-section-title{margin:0;font-size:clamp(1.6rem,2vw,2.2rem);line-height:1.15}
.gym-section-subtitle{margin:.35rem 0 0;color:#6b7280}
.gym-filters{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.75rem;padding:1rem;background:#fff;border:1px solid #e5e7eb;border-radius:20px;box-shadow:0 10px 30px rgba(15,23,42,.05)}
.gym-filters input,.gym-filters select,.gym-filters button,.gym-review-form input,.gym-review-form select,.gym-review-form textarea,.gym-rating-form input,.gym-rating-form select,.gym-rating-form textarea{width:100%;box-sizing:border-box;padding:.8rem .9rem;border:1px solid #d1d5db;border-radius:12px;background:#fff}
.gym-filter-check{display:flex;align-items:center;gap:.45rem;padding:.8rem .9rem;border:1px solid #d1d5db;border-radius:12px;background:#fff;white-space:nowrap}
.gym-filters button,.gym-button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.8rem 1rem;border-radius:12px;border:0;background:#111827;color:#fff;font-weight:600;text-decoration:none;cursor:pointer}
.gym-button-secondary{background:#f3f4f6;color:#111827;border:1px solid #e5e7eb}
.gym-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:1rem;align-items:start}
.gym-list{display:grid;gap:1rem}
.gym-results-bar{display:flex;justify-content:flex-end}
.gym-results-label{display:inline-flex;align-items:center;padding:.45rem .8rem;border-radius:999px;background:#eef2ff;color:#3730a3;font-size:.9rem;font-weight:600}
.gym-catalog-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}
.gym-card{border:1px solid #e5e7eb;border-radius:20px;padding:1rem;background:linear-gradient(180deg,#fff, #fbfdff);box-shadow:0 10px 30px rgba(15,23,42,.05)}
.gym-card-header{display:grid;grid-template-columns:auto 1fr auto;gap:.9rem;align-items:start}
.gym-card-headtext h3{margin:0 0 .2rem;font-size:1.15rem;line-height:1.25}
.gym-card-headtext h3 a{text-decoration:none;color:#111827}
.gym-card-headtext h3 a:hover{color:#2563eb}
.gym-card-logo{width:72px;height:72px;object-fit:cover;border-radius:18px;border:1px solid #e5e7eb;background:#fff}
.gym-card-logo.placeholder{display:flex;align-items:center;justify-content:center;font-size:1.8rem;background:#f8fafc}
.gym-card-logo.large{width:120px;height:120px;font-size:3rem}
.gym-meta{color:#6b7280;font-size:.96rem}
.gym-type-badge{display:inline-flex;margin-top:.4rem;padding:.35rem .65rem;border-radius:999px;background:#ecfeff;color:#155e75;font-size:.82rem;font-weight:700}
.gym-excerpt{margin:.9rem 0 1rem;color:#374151}
.gym-highlights{display:flex;flex-wrap:wrap;gap:.5rem}
.gym-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.42rem .72rem;border-radius:999px;background:#f9fafb;border:1px solid #e5e7eb;font-size:.88rem;line-height:1.2}
.gym-card-actions{margin-top:1rem;display:flex;justify-content:flex-end}
.gym-favorite-btn{border:1px solid #e5e7eb;background:#fff;font-size:1.1rem;width:42px;height:42px;border-radius:12px;cursor:pointer;box-shadow:0 2px 8px rgba(15,23,42,.05)}
.gym-favorite-btn.active{background:#fff1f2;border-color:#fecdd3;transform:scale(1.05)}
.gym-rating-badge{display:inline-flex;align-items:center;gap:.45rem;margin-top:.5rem;padding:.38rem .7rem;border-radius:999px;background:#fff7ed;color:#9a3412;font-size:.88rem;font-weight:600}
.gym-stars-small,.gym-stars{letter-spacing:.05em}
.gym-map{width:100%;height:560px;border-radius:20px;overflow:hidden;background:#f3f4f6;border:1px solid #e5e7eb;position:sticky;top:1.25rem}
.gym-map.single{position:relative;top:auto;height:380px}
.gym-empty{padding:1rem 1.1rem;background:#fff;border:1px dashed #d1d5db;border-radius:16px;color:#6b7280}
.gym-country-links,.gym-type-links{display:flex;flex-wrap:wrap;gap:.75rem}
.gym-country-links a,.gym-type-links a{text-decoration:none;padding:.6rem .9rem;border:1px solid #e5e7eb;border-radius:999px;background:#fff;color:#111827}
.gym-single-wrap{max-width:1100px;margin:0 auto}
.gym-single-header{display:grid;grid-template-columns:auto 1fr;gap:1.25rem;align-items:center;padding:1.2rem;background:linear-gradient(180deg,#ffffff,#f8fbff);border:1px solid #e5e7eb;border-radius:24px;box-shadow:0 12px 34px rgba(15,23,42,.06)}
.gym-single-header h1{margin:0 0 .4rem;font-size:clamp(1.8rem,2.3vw,2.8rem);line-height:1.1}
.gym-single-content,.gym-info-grid,.gym-single-wrap>section,.gym-rating-section{padding:1.2rem;background:#fff;border:1px solid #e5e7eb;border-radius:20px;box-shadow:0 10px 30px rgba(15,23,42,.04)}
.gym-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.gym-hours-table{width:100%;border-collapse:collapse}
.gym-hours-table th,.gym-hours-table td{padding:.75rem;border-bottom:1px solid #eef2f7;text-align:left}
.gym-pre{white-space:pre-wrap;font-family:inherit;margin:0}
.gym-gallery,.gym-gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem}
.gym-gallery img,.gym-gallery-grid img,.gym-single-logo img,.gym-logo img{width:100%;height:auto;border-radius:16px}
.gym-review-summary-wrap,.gym-review-list-wrap{margin-top:1rem}
.gym-reviews-list{display:grid;gap:.75rem}
.gym-review-item{padding:.9rem 1rem;border:1px solid #e5e7eb;border-radius:16px;background:#fcfcfd}
.gym-review-head{display:flex;justify-content:space-between;gap:1rem;margin-bottom:.35rem}
.gym-review-date{color:#6b7280;font-size:.88rem;margin-top:.35rem}
.gym-rating-summary{display:flex;align-items:center;gap:1rem;padding:.9rem 1rem;border-radius:16px;background:#fff7ed;border:1px solid #fed7aa}
.gym-rating-number{font-size:2rem;font-weight:800;line-height:1}
.taxonomy-description{margin:.75rem 0 1rem;color:#4b5563}
@media (max-width: 1024px){.gym-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.gym-layout{grid-template-columns:1fr}.gym-map{position:relative;top:auto;height:420px}.gym-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width: 640px){.gym-template-inner{padding:0 .85rem}.gym-filters{grid-template-columns:1fr}.gym-card-header,.gym-single-header{grid-template-columns:1fr}.gym-card-logo,.gym-card-logo.large{width:84px;height:84px}.gym-favorite-btn{justify-self:end}.gym-info-grid{grid-template-columns:1fr}.gym-map{height:340px}}
.gym-breadcrumb{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center;padding:.85rem 1rem;background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 8px 24px rgba(15,23,42,.04)}
.gym-breadcrumb a{text-decoration:none;color:#2563eb;font-weight:600}
.gym-breadcrumb .sep{color:#9ca3af}
.gym-admin-note{padding:1rem 1.1rem;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:16px;color:#475569}


.gym-template-inner{max-width:1380px;margin:0 auto;padding:0 1.25rem}
.gym-catalog-wrap{gap:1.5rem}
.gym-filters{grid-template-columns:2fr 1.25fr 1.25fr 1.15fr 1.15fr 1.15fr auto auto;align-items:center;padding:1.1rem 1.1rem 1rem;border-radius:24px;background:linear-gradient(180deg,#ffffff,#fbfdff)}
.gym-filters input,.gym-filters select{min-height:50px}
.gym-filter-check{min-height:50px;align-self:stretch}
.gym-filters button{min-height:50px;padding:0 1.25rem}
.gym-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(360px,.95fr);gap:1.25rem;align-items:start}
.gym-list-panel,.gym-map-panel{display:grid;gap:1rem;align-self:start}
.gym-results-bar{justify-content:space-between;align-items:center}
.gym-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.gym-card{display:grid;grid-template-rows:auto 1fr auto auto;min-height:100%;padding:1.1rem 1.1rem 1rem;border-radius:22px}
.gym-card-header{grid-template-columns:88px minmax(0,1fr) auto;gap:1rem}
.gym-card-media{display:flex;align-items:flex-start;justify-content:center}
.gym-card-logo{width:88px;height:88px;border-radius:20px;box-shadow:0 4px 14px rgba(15,23,42,.06)}
.gym-card-logo.placeholder{font-size:2rem}
.gym-card-topline{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;margin-bottom:.45rem}
.gym-card-headtext h3{font-size:1.2rem;margin:0 0 .28rem}
.gym-meta{line-height:1.45}
.gym-type-badge{margin-top:0}
.gym-excerpt{margin:.95rem 0 1rem;line-height:1.6;color:#334155}
.gym-highlights{margin-top:auto}
.gym-card-actions{padding-top:.85rem;border-top:1px solid #edf2f7}
.gym-card-actions .gym-button{width:100%}
.gym-favorite-btn{width:44px;height:44px;border-radius:14px}
.gym-map-panel{position:sticky;top:1.25rem}
.gym-map-toolbar{display:flex;justify-content:space-between;align-items:center;padding:.9rem 1rem;border:1px solid #e5e7eb;border-radius:18px;background:#fff;box-shadow:0 10px 24px rgba(15,23,42,.04)}
.gym-map{height:calc(100vh - 210px);min-height:560px;border-radius:24px;box-shadow:0 14px 34px rgba(15,23,42,.08)}
.gym-map-empty{min-height:220px;display:flex;align-items:center;justify-content:center;text-align:center}
@media (max-width: 1280px){.gym-filters{grid-template-columns:repeat(4,minmax(0,1fr))}.gym-layout{grid-template-columns:1fr}.gym-map-panel{position:relative;top:auto}.gym-map{height:520px;min-height:520px}.gym-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width: 820px){.gym-card-grid{grid-template-columns:1fr}.gym-card-header{grid-template-columns:72px minmax(0,1fr) auto}.gym-card-logo{width:72px;height:72px}.gym-filters{grid-template-columns:1fr 1fr}.gym-map{height:420px;min-height:420px}}
@media (max-width: 640px){.gym-template-inner{padding:0 .9rem}.gym-filters{grid-template-columns:1fr}.gym-results-bar{justify-content:flex-start}.gym-card-header{grid-template-columns:1fr}.gym-card-media{justify-content:flex-start}.gym-favorite-btn{justify-self:end}.gym-map{height:340px;min-height:340px}}


.gym-catalog-wrap.is-loading{opacity:.72;transition:opacity .2s ease}
.gym-results-bar{gap:1rem;flex-wrap:wrap}
.gym-view-switch{display:inline-flex;gap:.35rem;padding:.3rem;background:#fff;border:1px solid #e5e7eb;border-radius:999px;box-shadow:0 6px 20px rgba(15,23,42,.04)}
.gym-view-btn{border:0;background:transparent;color:#475569;font-weight:600;padding:.5rem .85rem;border-radius:999px;cursor:pointer}
.gym-view-btn.active{background:#0f172a;color:#fff}
.gym-card{transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease}
.gym-card:hover,.gym-card.is-highlighted{transform:translateY(-2px);box-shadow:0 16px 36px rgba(15,23,42,.10);border-color:#bfdbfe}
.gym-layout{grid-template-columns:minmax(0,1.55fr) minmax(380px,.9fr)}
.gym-list-panel{min-width:0}
.gym-map-panel{min-width:0}
.gym-compact-view .gym-card-grid{grid-template-columns:1fr}
.gym-compact-view .gym-card{padding:.9rem 1rem;border-radius:18px}
.gym-compact-view .gym-card-header{grid-template-columns:64px minmax(0,1fr) auto;gap:.85rem}
.gym-compact-view .gym-card-logo{width:64px;height:64px;border-radius:16px}
.gym-compact-view .gym-card-headtext h3{font-size:1.05rem;margin-bottom:.15rem}
.gym-compact-view .gym-excerpt{margin:.65rem 0 .75rem;line-height:1.45}
.gym-compact-view .gym-highlights{gap:.35rem}
.gym-compact-view .gym-chip{padding:.32rem .6rem;font-size:.8rem}
.gym-map-toolbar strong{font-size:1rem}
.gym-map-toolbar span{font-size:.92rem;color:#475569}
.gym-map .leaflet-popup-content-wrapper{border-radius:14px}
.gym-map .marker-cluster-small,.gym-map .marker-cluster-medium,.gym-map .marker-cluster-large{background:rgba(30,64,175,.18)}
.gym-map .marker-cluster div{background:#1d4ed8;color:#fff;font-weight:700}
@media (max-width: 1280px){.gym-layout{grid-template-columns:1fr}.gym-map-panel{order:-1}.gym-map{height:460px;min-height:460px}}
