/* PadelBlox shared site system - Phase 1 */
:root {
  --cp-black: #1d1d1f;
  --cp-gray-1: #f5f5f7;
  --cp-gray-2: #e8e8ed;
  --cp-gray-3: #d2d2d7;
  --cp-gray-4: #86868b;
  --cp-gray-5: #6e6e73;
  --cp-green: #1a7a4a;
  --cp-green-bg: #f2f9f5;
  --cp-green-lt: #e4f4eb;
  --cp-border: rgba(0,0,0,0.08);
  --cp-radius: 12px;
  --cp-max: 1160px;
  --cp-shadow: 0 4px 24px rgba(0,0,0,.05);
}

.cp-wrap {max-width: var(--cp-max); margin: 0 auto; padding: 0 40px;}
.cp-section {padding: 64px 0;}
.cp-section--alt {background: var(--cp-gray-1);}
.cp-section-head {display:flex; justify-content:space-between; align-items:end; gap:20px; margin-bottom:24px;}
.cp-section-head > * {margin:0;}
.cp-eyebrow,.cp-section-kicker {font-size:11.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--cp-green); margin:0 0 14px;}
.cp-lead,.cp-section-head p,.cp-card p,.cp-hero-card p,.cp-cta-panel p,.cp-form-shell p,.cp-tool-card p,.cp-article-card p {color:var(--cp-gray-5); font-size:17px; line-height:1.7;}
.cp-home-hero h1,.cp-section h1,.cp-section h2,.cp-section-head h2,.cp-hero-card h2,.cp-cta-panel h2,.cp-email-panel h2 {color:var(--cp-black); letter-spacing:-.03em; line-height:1.08; margin:0 0 16px;}
.cp-home-hero h1 {font-size:clamp(36px,5vw,60px); max-width:760px;}
.cp-section h1 {font-size:clamp(40px,6vw,64px); line-height:1.05; letter-spacing:-.04em; max-width:820px;}
.cp-section h2,.cp-section-head h2,.cp-hero-card h2,.cp-cta-panel h2,.cp-email-panel h2 {font-size:clamp(28px,4vw,44px);}
.cp-section h3,.cp-card h3,.cp-article-card h3,.cp-tool-card h3 {font-size:clamp(20px,2.3vw,24px); line-height:1.2; letter-spacing:-.02em; margin:0 0 12px; color:var(--cp-black); font-weight:700;}

.cp-buttons,.cp-button-row {display:flex; gap:14px; flex-wrap:wrap; margin-top:28px;}
.cp-btn {display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:0 22px; border-radius:999px; text-decoration:none; font-size:14px; font-weight:600; line-height:1; transition:all .18s ease; border:1px solid var(--cp-gray-3); background:#fff; color:var(--cp-black);}
.cp-btn:hover {transform:translateY(-1px); text-decoration:none;}
.cp-btn-solid,.cp-btn-primary,.cp-btn--primary {background:var(--cp-black); color:#fff; border-color:var(--cp-black);}
.cp-btn-outline,.cp-btn-secondary,.cp-btn--secondary {border:1px solid var(--cp-gray-3); color:var(--cp-black); background:transparent;}
.cp-text-link {color:var(--cp-green); font-weight:600; text-decoration:none;}
.cp-text-link:hover {text-decoration:underline;}

.cp-grid,.cp-card-grid {display:grid; gap:20px;}
.cp-grid-2 {grid-template-columns:repeat(2,minmax(0,1fr));}
.cp-grid-3,.cp-card-grid--3 {grid-template-columns:repeat(3,minmax(0,1fr));}
.cp-grid-4 {grid-template-columns:repeat(4,minmax(0,1fr));}

.cp-hero,.cp-hero-card,.cp-card,.cp-article-card,.cp-tool-card,.cp-cta-panel,.cp-email-panel,.cp-form-shell {
  background:#fff; border:1px solid var(--cp-border); border-radius:var(--cp-radius); box-shadow:var(--cp-shadow);
}
.cp-card,.cp-article-card,.cp-tool-card,.cp-form-shell,.cp-cta-panel,.cp-email-panel,.cp-hero-card {padding:26px;}
.cp-card-number,.cp-article-tag {display:inline-flex; align-items:center; min-height:24px; padding:0 10px; border-radius:999px; background:var(--cp-green-bg); color:var(--cp-green); font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; margin:0 0 14px;}

.cp-hero {padding:56px 0 40px;}
.cp-hero__inner,.cp-home-hero {display:grid; grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr); gap:28px; align-items:center;}
.cp-hero--simple .cp-hero__inner {grid-template-columns:1fr;}
.cp-hero--tool .cp-hero__inner {grid-template-columns:minmax(0,1fr) minmax(340px,.9fr);}
.cp-hero__body > *:last-child {margin-bottom:0;}
.cp-hero__actions {display:flex; gap:14px; flex-wrap:wrap; margin-top:26px;}
.cp-hero__aside {min-height:100%;}

.cp-cta-panel,.cp-email-panel {padding:30px;}
.cp-form-shell {padding:28px;}
.cp-form-shell .clubpadel-quote-form,
.cp-form-shell form {margin-top:18px;}

.cp-hub-grid {display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px;}
.cp-hub-card {height:100%;}

@media (max-width: 960px) {
  .cp-wrap {padding:0 24px;}
  .cp-section {padding:52px 0;}
  .cp-section-head,.cp-hero__inner,.cp-home-hero,.cp-hub-grid,.cp-grid-4,.cp-grid-3,.cp-card-grid--3,.cp-grid-2 {grid-template-columns:1fr; display:grid;}
}
@media (max-width: 640px) {
  .cp-wrap {padding:0 18px;}
  .cp-card,.cp-article-card,.cp-tool-card,.cp-form-shell,.cp-cta-panel,.cp-email-panel,.cp-hero-card {padding:22px;}
}

.cp-btn--dark {background:var(--cp-black); color:#fff; border-color:var(--cp-black);}
.cp-btn--outline {background:#fff; color:var(--cp-black); border-color:var(--cp-gray-3);}
.cp-filter-bar {display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin:0 0 24px;}
.cp-filter-bar select {min-height:44px; padding:0 14px; border:1px solid var(--cp-gray-3); border-radius:999px; background:#fff; color:var(--cp-black);}
.cp-inline-check {display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:0 10px;}
.cp-badge {display:inline-flex; align-items:center; min-height:24px; padding:0 10px; border-radius:999px; background:var(--cp-green-bg); color:var(--cp-green); font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;}
.cp-badge--dark {background:var(--cp-black); color:#fff;}
.cp-card__body > *:last-child {margin-bottom:0;}
.cp-card__title {margin:0 0 10px;}
.cp-card__title a {color:inherit; text-decoration:none;}
.cp-card__title a:hover {text-decoration:underline;}
.cp-card__meta {font-size:14px; color:var(--cp-gray-4); margin:0 0 10px;}
.cp-card__eyebrow {display:flex; flex-wrap:wrap; gap:8px; margin:0 0 12px;}
.cp-card__footer {display:flex; gap:10px; flex-wrap:wrap; padding:0 26px 26px;}
.cp-spec-list {list-style:none; margin:14px 0 0; padding:0; display:grid; gap:10px;}
.cp-spec-list li {padding-top:10px; border-top:1px solid var(--cp-border); color:var(--cp-gray-5);}
.cp-rich-text > *:last-child {margin-bottom:0;}
.cp-empty-state {padding:26px; background:#fff; border:1px dashed var(--cp-gray-3); border-radius:var(--cp-radius);}

/* Phase 4 clubs polish */
.cp-filter-bar--clubs {margin-bottom: 14px;}
.cp-results-bar {display:flex; align-items:center; justify-content:space-between; gap:14px; margin:0 0 18px;}
.cp-results-bar__count {margin:0; color:var(--cp-gray-5); font-size:14px;}
.clubpadel-club-card .clubpadel-card-actions {margin-top:auto;}
.clubpadel-club-profile .clubpadel-profile-section h2,
.clubpadel-club-profile .clubpadel-sidebar-card h2 {margin-top:0;}
.clubpadel-club-hero-media {display:flex; align-items:flex-end; justify-content:flex-start; padding:22px;}
.clubpadel-club-hero-placeholder {display:flex; flex-direction:column; gap:8px; color:#111827;}
.clubpadel-club-hero-placeholder strong {font-size:clamp(22px,3vw,30px); line-height:1.05; letter-spacing:-.03em; max-width:12ch;}
.clubpadel-directory-grid--compact {grid-template-columns:repeat(3,minmax(0,1fr));}
.clubpadel-directory-grid--compact .clubpadel-supplier-card {padding:18px; border-radius:14px;}
.clubpadel-directory-grid--compact .clubpadel-card-actions {margin-top:8px;}
@media (max-width:960px){
  .clubpadel-directory-grid--compact {grid-template-columns:1fr;}
}
