/*
Theme Name: UKNAPC Championship
Theme URI: https://uknapc.example
Author: UK National Amateur Padel Championship
Description: Custom theme for the UK National Amateur Padel Championship website - national hub, club directory, club hub pages, regional hub pages, and sponsor showcase. Built from the Championship Website Strategy & Build Proposal.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: uknapc
*/

/* ==========================================================================
   Design tokens - dark UKNAPC look, matching the sponsorship prospectus
   and homepage mockup (black, lime accent, high-contrast white text).
   ========================================================================== */
:root{
  --black:#0A0A0A;
  --black-deep:#050505;
  --surface:#101010;
  --card:#161616;
  --card-border:#2A2A2A;
  --lime:#C2E500;
  --lime-hover:#AACB00;
  --white:#FFFFFF;
  --text:#FFFFFF;
  --gray:#B8B8B0;
  --gray-dim:#8A8A82;
  --radius:10px;
  --maxw:1180px;
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
}

/* ==========================================================================
   Reset & base
   ========================================================================== */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{margin:0;font-family:var(--font);color:var(--text);background:var(--black);line-height:1.6;font-size:16px;}
img{max-width:100%;height:auto;display:block;}
a{color:var(--lime);text-decoration:none;}
a:hover{text-decoration:underline;}
h1,h2,h3,h4{margin:0 0 .5em;line-height:1.2;font-weight:700;color:var(--white);}
p{margin:0 0 1em;}
ul{margin:0 0 1em;padding-left:1.2em;}
.container{max-width:var(--maxw);margin:0 auto;padding:0 24px;}
.section{padding:64px 0;background:var(--black);}
.section--tight{padding:32px 0;}
.section--paper{background:var(--surface);}
.section--dark{background:var(--black-deep);color:var(--white);}
.eyebrow{color:var(--lime);font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;margin-bottom:10px;}
.lead{color:var(--gray);font-size:18px;max-width:640px;}
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;}
.entry-content{color:var(--gray);}
.entry-content a{color:var(--lime);}
.entry-meta{color:var(--gray-dim);font-size:13px;}
.table-note{color:var(--gray-dim);font-size:13px;margin-top:14px;}

/* ==========================================================================
   Buttons - all the same: black text on lime
   ========================================================================== */
.btn{display:inline-block;padding:13px 26px;border-radius:6px;font-weight:700;font-size:15px;cursor:pointer;border:1.5px solid transparent;text-decoration:none;font-family:var(--font);}
.btn:hover{text-decoration:none;}
.btn-primary,.btn-outline{background:var(--lime);color:var(--black);}
.btn-primary:hover,.btn-outline:hover{background:var(--lime-hover);color:var(--black);}
.btn-sm{padding:9px 18px;font-size:13px;}

/* ==========================================================================
   Header / nav
   ========================================================================== */
.site-header{background:rgba(10,10,10,.95);border-bottom:1px solid var(--card-border);position:sticky;top:0;z-index:50;}
.site-header .container{display:flex;align-items:center;justify-content:space-between;padding-top:14px;padding-bottom:14px;}
.site-logo{display:flex;align-items:center;}
.site-logo img{max-height:42px;width:auto;}
.site-logo-text{color:var(--lime);font-weight:700;font-size:18px;letter-spacing:.5px;}
.main-nav{display:flex;align-items:center;}
.main-nav ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:26px;}
.main-nav a{color:#ddd;font-size:14px;font-weight:600;}
.main-nav a:hover{color:var(--lime);text-decoration:none;}
.main-nav .current-menu-item > a,.main-nav .current_page_item > a{color:var(--lime);}
.nav-cta{margin-left:22px;color:var(--black) !important;}
.nav-toggle{display:none;background:transparent;border:0;color:var(--white);cursor:pointer;padding:8px;}
.nav-toggle span:not(.screen-reader-text){display:block;width:24px;height:2px;background:var(--white);margin:5px 0;}

@media (max-width:900px){
  .main-nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--black);border-bottom:1px solid var(--card-border);padding:14px 24px 22px;flex-direction:column;align-items:flex-start;}
  .main-nav.is-open{display:flex;}
  .main-nav ul{flex-direction:column;align-items:flex-start;gap:14px;margin-bottom:16px;}
  .nav-cta{margin-left:0;}
  .nav-toggle{display:block;}
}

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer{background:var(--black-deep);color:var(--gray);padding:52px 0 24px;border-top:1px solid var(--card-border);}
.site-footer a{color:var(--gray);}
.site-footer a:hover{color:var(--lime);text-decoration:none;}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:32px;margin-bottom:32px;}
.footer-grid h4{color:var(--white);font-size:13px;letter-spacing:.5px;text-transform:uppercase;margin-bottom:12px;}
.footer-grid ul{list-style:none;padding:0;margin:0;}
.footer-grid li{margin-bottom:8px;font-size:14px;}
.footer-bottom{border-top:1px solid var(--card-border);padding-top:20px;font-size:13px;color:var(--gray-dim);}
@media (max-width:760px){.footer-grid{grid-template-columns:1fr 1fr;}}

/* ==========================================================================
   Hero (front page: full-bleed court photo; sub pages: plain dark band)
   ========================================================================== */
.hero{position:relative;min-height:600px;display:flex;align-items:center;overflow:hidden;background:var(--black);}
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:55% 22%;z-index:0;}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg, rgba(10,10,10,.72) 0%, rgba(10,10,10,.4) 45%, rgba(10,10,10,.12) 100%);}
.hero .container{position:relative;z-index:2;width:100%;}
.hero-content{padding:72px 0;max-width:580px;}
.hero h1{font-size:46px;line-height:1.1;}
.hero-lede{color:#e4e4dc;font-size:18px;margin-bottom:30px;}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;}
.hero--sub{min-height:0;display:block;padding:72px 0 56px;background:var(--card);border-bottom:1px solid var(--card-border);}
.hero--sub h1{font-size:38px;max-width:780px;}
.hero--sub .hero-lede{color:var(--gray);max-width:640px;margin-bottom:0;}
@media (max-width:700px){.hero:not(.hero--sub){min-height:520px;}.hero h1{font-size:34px;}}

/* Three-stage strip */
.stage-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:28px;}
.stage-strip .stage{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius);padding:26px 24px;}
.stage .stage-num{color:var(--lime);font-size:22px;font-weight:800;}
.stage h3{font-size:18px;margin:6px 0 8px;}
.stage p{color:var(--gray);font-size:14px;margin:0;}
@media (max-width:760px){.stage-strip{grid-template-columns:1fr;}}

/* Stat strip */
.stat-strip{background:var(--card);border-top:1px solid var(--card-border);border-bottom:1px solid var(--card-border);padding:26px 0;}
.stat-strip-grid{display:flex;justify-content:space-around;flex-wrap:wrap;gap:24px;text-align:center;}
.stat{display:flex;flex-direction:column;}
.stat-num{color:var(--lime);font-size:28px;font-weight:800;line-height:1.2;}
.stat-label{color:var(--gray-dim);font-size:12px;text-transform:uppercase;letter-spacing:1px;}

/* ==========================================================================
   Cards
   ========================================================================== */
.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;}
.card-grid--3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));}
.card{display:block;background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius);padding:24px;color:var(--white);}
a.card:hover{border-color:var(--lime);text-decoration:none;}
.card h3{font-size:18px;}
.card p{color:var(--gray);font-size:14px;}
.card .card-meta{color:var(--gray-dim);font-size:13px;margin-bottom:10px;}

/* ==========================================================================
   Tables
   ========================================================================== */
table.uknapc-table{width:100%;border-collapse:collapse;margin:24px 0;}
table.uknapc-table th{background:var(--lime);color:var(--black);text-align:left;padding:12px 14px;font-size:14px;}
table.uknapc-table td{padding:12px 14px;border-bottom:1px solid var(--card-border);font-size:14px;color:var(--text);}
table.uknapc-table tr:nth-child(even) td{background:#121212;}

/* ==========================================================================
   Club / Region hub pages
   ========================================================================== */
.hub-header{background:var(--card);border-bottom:1px solid var(--card-border);padding:44px 0;}
.hub-header h1{margin-bottom:6px;}
.hub-header .hub-meta{color:var(--gray);font-size:14px;}
.hub-status{display:flex;gap:28px;flex-wrap:wrap;margin-top:18px;color:var(--gray);}
.hub-status .stat-value{color:var(--lime);font-size:22px;font-weight:800;}
.hub-status .stat-label{color:var(--gray-dim);font-size:12px;}

.hub-body{display:grid;grid-template-columns:2fr 1fr;gap:36px;padding:48px 0;}
.hub-main h2{font-size:22px;border-bottom:2px solid var(--lime);padding-bottom:8px;margin-top:40px;}
.hub-main h2:first-child{margin-top:0;}
.hub-main h3,.hub-main h4{margin-top:28px;}
.competition-heading{color:var(--lime);}
.hub-main p{color:var(--gray);}
.hub-sidebar .widget{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius);padding:20px;margin-bottom:20px;}
.hub-sidebar .widget h3{font-size:13px;text-transform:uppercase;letter-spacing:1px;color:var(--gray-dim);margin-bottom:12px;}
@media (max-width:860px){.hub-body{grid-template-columns:1fr;}}

.promo-slot{border:1px solid var(--card-border);border-radius:var(--radius);padding:14px;margin-bottom:12px;display:flex;gap:12px;align-items:flex-start;background:var(--black);}
.promo-slot img{width:44px;height:44px;object-fit:contain;border-radius:6px;background:var(--card);flex:none;}
.promo-slot h4{margin:0 0 4px;font-size:14px;}
.promo-slot p{margin:0;font-size:13px;color:var(--gray);}

.ladder-table td,.ladder-table th{font-size:13px;}
.tag{display:inline-block;background:#2A2A2A;color:#ddd;font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px;text-transform:uppercase;letter-spacing:.4px;}
.tag--lime{background:var(--lime);color:var(--black);}

/* ==========================================================================
   Directory / archive (Find Your Club)
   ========================================================================== */
.directory-filter{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius);padding:20px;margin-bottom:28px;}
.directory-filter form{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;}
.directory-filter label{display:block;font-size:12px;color:var(--gray);margin-bottom:4px;}
.directory-filter select,.directory-filter input[type=text]{padding:10px 12px;border:1px solid #333;border-radius:6px;font-size:14px;min-width:180px;background:#0d0d0d;color:var(--white);font-family:var(--font);}
.directory-results-count{color:var(--gray);font-size:14px;margin-bottom:16px;}

.pagination,.nav-links{display:flex;gap:8px;margin-top:32px;justify-content:center;flex-wrap:wrap;}
.pagination a,.pagination span,.nav-links a,.nav-links span{padding:8px 14px;border:1px solid var(--card-border);border-radius:6px;font-size:14px;color:var(--white);}
.pagination .current,.nav-links .current{background:var(--lime);color:var(--black);border-color:var(--lime);}

/* ==========================================================================
   Sponsors page
   ========================================================================== */
.sponsor-tier{padding:28px;}
.sponsor-price{font-size:30px;font-weight:800;color:var(--lime);margin:10px 0;}

/* ==========================================================================
   Forms (registration, result submission)
   ========================================================================== */
.uknapc-form{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius);padding:24px;margin:16px 0 28px;}
.uknapc-form .form-row{margin-bottom:16px;}
.uknapc-form .form-row:last-child{margin-bottom:0;}
.uknapc-form .form-row-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.uknapc-form label{display:block;font-size:13px;font-weight:700;color:var(--white);margin-bottom:5px;}
.uknapc-form .form-hint{display:block;font-size:12px;font-weight:400;color:var(--gray-dim);margin-top:4px;}
.uknapc-form input[type=text],
.uknapc-form input[type=email],
.uknapc-form input[type=number],
.uknapc-form select,
.uknapc-form textarea{width:100%;padding:11px 13px;border:1.5px solid #3a3a3a;border-radius:6px;font-size:15px;font-family:var(--font);background:#0d0d0d;color:var(--white);}
.uknapc-form input:focus,.uknapc-form select:focus,.uknapc-form textarea:focus{outline:none;border-color:var(--lime);}
.uknapc-form textarea{resize:vertical;min-height:80px;}
.uknapc-form fieldset{border:1px solid #3a3a3a;border-radius:6px;padding:12px 14px;margin:0;}
.uknapc-form fieldset legend{font-size:13px;font-weight:700;padding:0 6px;color:var(--white);}
.uknapc-form .radio-row{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:14px;font-weight:400;}
.uknapc-form .radio-row label{display:inline;font-weight:400;margin:0;}
.uknapc-form input[type=radio]{accent-color:var(--lime);}
.uknapc-form button[type=submit]{border:none;}
@media (max-width:600px){.uknapc-form .form-row-pair{grid-template-columns:1fr;}}

.form-message{border-radius:var(--radius);padding:14px 16px;margin:0 0 20px;font-size:14px;}
.form-message--success{background:rgba(194,229,0,.1);color:var(--lime);border:1px solid rgba(194,229,0,.4);}
.form-message--error{background:rgba(255,110,110,.1);color:#ff9b9b;border:1px solid rgba(255,110,110,.4);}

.entrant-list{list-style:none;margin:0 0 20px;padding:0;}
.entrant-list li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--card-border);font-size:14px;color:var(--text);}
.entrant-list li:last-child{border-bottom:none;}
.entrant-list .entrant-status{color:var(--gray-dim);font-size:12px;text-transform:uppercase;letter-spacing:.3px;}

.uknapc-form textarea{min-height:120px;}
.form-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.uknapc-form .form-consent{display:flex;align-items:flex-start;gap:10px;font-weight:400;font-size:13px;color:var(--gray);}
.uknapc-form .form-consent input{margin-top:3px;accent-color:var(--lime);}

/* Utility */
.text-center{text-align:center;}
.mt-0{margin-top:0;}

.container--narrow { max-width: 760px; }
.container--narrow h2 { margin-top: 1.6em; }
.form-consent label { display: flex; gap: 8px; align-items: flex-start; font-size: .9rem; }
.form-consent input { width: auto; margin-top: 4px; }

.club-buttons{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px;}
.club-buttons .btn.is-active{box-shadow:0 0 0 3px rgba(255,255,255,.85);}
.comp-buttons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:18px;}
.comp-buttons .btn{padding:12px 6px;font-size:13px;line-height:1.25;text-align:center;display:flex;align-items:center;justify-content:center;}
@media (max-width:700px){.comp-buttons{grid-template-columns:repeat(2,1fr);}}
@media (max-width:600px){
  table.uknapc-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .club-buttons .btn{flex:1 1 calc(50% - 10px);text-align:center;padding:12px 10px;}
  .hero-actions .btn{flex:1 1 100%;text-align:center;}
}

@media (max-width:700px){
  .hero--sub{min-height:0;padding:36px 0 28px;}
  .hero--sub h1{font-size:28px;}
  .section{padding:36px 0;}
  .hub-header{padding:28px 0;}
  .hub-body{padding:28px 0;}
}
.marketing-choice{border:0;padding:0;margin:18px 0 0;min-width:0;}
.marketing-choice legend{font-weight:700;padding:0;margin-bottom:6px;color:var(--white);}
.result-card{border:1px solid var(--card-border);border-radius:var(--radius);padding:14px 16px;margin:12px 0;background:var(--card);}
.result-card.is-focus{border-color:var(--lime);}
.result-card p{margin:0 0 8px;}
.uknapc-form textarea{width:100%;padding:10px 12px;border:1px solid #333;border-radius:6px;background:#0d0d0d;color:var(--white);font-family:var(--font);}

/* Home hero: text left, framed portrait photo right */
.hero--split.hero:not(.hero--sub){min-height:0;padding:56px 0;}
.hero--split .hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,440px);gap:56px;align-items:center;}
.hero--split .hero-content{padding:0;max-width:600px;}
.hero--split .hero-card{width:100%;aspect-ratio:4/5;border-radius:18px;border:3px solid var(--lime);background-size:cover;background-position:center 18%;box-shadow:0 0 70px rgba(194,229,0,.16);}
@media (max-width:860px){
  .hero--split .hero-grid{grid-template-columns:1fr;gap:28px;}
  .hero--split .hero-card{order:-1;aspect-ratio:1/1;max-width:420px;margin:0 auto;background-position:center 20%;}
  .hero--split.hero:not(.hero--sub){padding:32px 0 40px;}
}
