:root{
  --green:#1d7a4d; --green-dark:#14613c; --green-soft:#e8f3ec;
  --ink:#1c2421; --muted:#667; --line:#e4e7e6; --bg:#fff; --bg2:#f6f8f7;
  --radius:12px; --maxw:1080px; --shadow:0 1px 3px rgba(0,0,0,.06);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink);background:var(--bg);line-height:1.55;font-size:16px}
a{color:var(--green-dark);text-decoration:none}
a:hover{text-decoration:underline}
h1{font-size:1.8rem;margin:.2em 0 .3em;font-weight:600}
h2{font-size:1.25rem;margin:1.4em 0 .6em;font-weight:600}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 18px}
.muted{color:var(--muted)}
.small{font-size:.85rem}
.center-block{text-align:center;padding:4rem 0}

/* header */
.site-header{border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0;z-index:500}
.header-inner{display:flex;align-items:center;gap:16px;height:60px}
.brand{display:flex;align-items:center;gap:8px;font-weight:600;font-size:1.15rem;color:var(--ink)}
.brand:hover{text-decoration:none}
.brand-mark{font-size:1.3rem}
.brand .dot{color:var(--green)}
.nav-search{flex:1;display:flex;max-width:440px;margin-left:auto}
.nav-search input{flex:1;min-width:0;border:1px solid var(--line);border-right:0;border-radius:8px 0 0 8px;padding:9px 12px;font-size:.95rem}
.nav-search button{border:0;background:var(--green);color:#fff;padding:0 16px;border-radius:0 8px 8px 0;cursor:pointer}
.nav-links{display:flex;gap:14px}
.nav-links a{color:var(--ink);font-size:.95rem}

/* hero */
.hero{background:var(--green-soft);border-bottom:1px solid var(--line);padding:42px 0 36px;text-align:center}
.hero h1{font-size:2.1rem;margin:0}
.hero .lede{font-size:1.05rem;color:#3a4a42;margin:.4em 0 1.3em}
.hero-search{display:flex;gap:8px;max-width:620px;margin:0 auto;flex-wrap:wrap}
.hero-search input{flex:1 1 220px;border:1px solid #cfdcd4;border-radius:10px;padding:12px 14px;font-size:1rem}
.hero-search select{border:1px solid #cfdcd4;border-radius:10px;padding:12px;font-size:1rem;background:#fff}
.hero-search button{border:0;background:var(--green);color:#fff;font-size:1rem;font-weight:600;padding:12px 22px;border-radius:10px;cursor:pointer}
.hero-search button:hover{background:var(--green-dark)}

/* map */
.map-section{margin:28px auto}
.map-head{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:8px}
.map-head h2{margin:0}
#map{height:440px;border:1px solid var(--line);border-radius:var(--radius);margin-top:10px;background:var(--bg2)}

/* cards */
.browse-grid-section{margin:34px auto}
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}
.course-card{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--bg);box-shadow:var(--shadow);transition:transform .08s,box-shadow .12s}
.course-card:hover{text-decoration:none;transform:translateY(-2px);box-shadow:0 4px 14px rgba(0,0,0,.09)}
.card-thumb{height:96px;background:var(--green-soft);background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;font-size:1.8rem}
.card-body{padding:11px 13px}
.card-name{font-weight:600;line-height:1.25;color:var(--ink)}
.card-loc{font-size:.85rem;margin-top:2px}
.card-meta{margin-top:6px}

/* state pills */
.states-section{margin:34px auto 50px}
.state-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}
.state-pill{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);border-radius:9px;padding:10px 13px;background:var(--bg);color:var(--ink)}
.state-pill:hover{text-decoration:none;border-color:var(--green);background:var(--green-soft)}
.state-n{color:var(--muted);font-size:.85rem;font-variant-numeric:tabular-nums}

/* content-engine pages */
.lede-text{font-size:1.05rem;color:#3a4a42;margin:.3em 0 1.4em;max-width:760px}
.city-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px 14px;margin:8px 0 6px}
.city-link{padding:6px 0;color:var(--ink);border-bottom:1px solid transparent}
.city-link:hover{color:var(--green-dark);text-decoration:none;border-bottom-color:var(--line)}
.city-map{height:360px;border:1px solid var(--line);border-radius:var(--radius);margin:6px 0 22px;background:var(--bg2)}
.row-thumb{width:46px;height:46px;border-radius:8px;background:var(--green-soft) center/cover no-repeat;flex-shrink:0}
@media(max-width:760px){.city-map{height:280px}}

/* listings */
.page{padding:24px 18px 50px}
.crumbs{margin-bottom:10px}
.list-head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:10px;border-bottom:1px solid var(--line);padding-bottom:12px}
.list-tools{display:flex;gap:16px;align-items:center}
.sort a{margin-left:8px;color:var(--muted)}
.sort a.on{color:var(--green-dark);font-weight:600}
.course-rows{display:flex;flex-direction:column;margin-top:14px}
.row{display:flex;align-items:center;gap:12px;padding:13px 6px;border-bottom:1px solid var(--line);color:var(--ink)}
.row:hover{text-decoration:none;background:var(--bg2)}
.row-mark{font-size:1.1rem;opacity:.8}
.row-main{flex:1;display:flex;flex-direction:column;min-width:0}
.row-name{font-weight:600}
.row-tag{border:1px solid var(--green);color:var(--green-dark);border-radius:20px;padding:1px 9px}
.row-arrow{color:var(--muted);font-size:1.2rem}
.pager{display:flex;flex-wrap:wrap;gap:6px;margin-top:22px}
.pager a{border:1px solid var(--line);border-radius:7px;padding:6px 11px;color:var(--ink)}
.pager a.on{background:var(--green);color:#fff;border-color:var(--green)}
.pager .gap{padding:6px 4px;color:var(--muted)}

/* course detail */
.course-banner{height:300px;background-size:cover;background-position:center;border-radius:var(--radius);margin:18px 0 4px;border:1px solid var(--line)}
.photo-block{border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin-bottom:18px}
.photo-block h2{margin-top:0;font-size:1.05rem}
.photo-block input[type=file]{font:inherit;width:100%}
@media(max-width:760px){.course-banner{height:200px}}
.course-head{border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:18px}
.course-sub{margin:.2em 0 0}
.course-grid{display:grid;grid-template-columns:1fr 340px;gap:26px}
.fact-cards{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}
.fact{background:var(--bg2);border-radius:10px;padding:12px 16px;min-width:86px;text-align:center}
.fact-n{display:block;font-size:1.5rem;font-weight:600}
.fact-l{font-size:.8rem;color:var(--muted)}
.course-desc{margin:0 0 18px}
.contact-card,.comments{border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin-bottom:18px}
.contact-card h2,.comments h2{margin-top:0;font-size:1.05rem}
.contact-card dl{display:grid;grid-template-columns:90px 1fr;gap:6px 12px;margin:0}
.contact-card dt{color:var(--muted)}
.comment{border-top:1px solid var(--line);padding:10px 0}
.comment:first-of-type{border-top:0}
.comment p{margin:0 0 4px}
.btn-teetime{display:flex;align-items:center;justify-content:center;gap:8px;background:#e8732a;color:#fff;font-weight:600;font-size:1.02rem;padding:13px 16px;border-radius:10px;margin-bottom:14px}
.btn-teetime:hover{text-decoration:none;background:#cf6320}
.btn-teetime i{font-style:normal}
.claim-link{display:block;margin-top:12px;font-size:.88rem;color:var(--muted)}
.ad-slot{margin-top:14px;min-height:0}
.course-side #map{height:260px;margin-bottom:10px}
.btn-directions,.btn{display:inline-block;background:var(--green);color:#fff;border-radius:9px;padding:10px 16px;font-weight:600}
.btn-directions:hover,.btn:hover{text-decoration:none;background:var(--green-dark)}

/* reviews */
.rating-line{margin:.4em 0 0;display:flex;align-items:center;gap:8px}
.stars{color:#e8a33d;letter-spacing:1px}
.comment .stars{margin-bottom:2px}
.rev-msg{padding:10px 14px;border-radius:8px;margin-bottom:14px;font-size:.92rem}
.rev-msg.ok{background:#e7f6ec;border:1px solid #b6e0c4;color:#1a6b3c}
.rev-msg.err{background:#fdecea;border:1px solid #f3c0ba;color:#a3271b}
.rev-form-wrap{margin-top:16px;border-top:1px solid var(--line);padding-top:12px}
.rev-form-wrap summary{cursor:pointer;font-weight:500;color:var(--green-dark)}
.rev-form{margin-top:12px;display:flex;flex-direction:column;gap:10px}
.rev-form input[type=text],.rev-form select,.rev-form textarea{border:1px solid var(--line);border-radius:8px;padding:9px 11px;font:inherit;width:100%}
.rev-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.rev-row > input,.rev-row > select{flex:1;min-width:140px}
.cap-label{font-size:.9rem;color:var(--muted);display:flex;align-items:center;gap:8px}
.btn-review{margin-left:auto;background:var(--green);color:#fff;border:0;border-radius:8px;padding:10px 18px;font-weight:600;cursor:pointer}
.btn-review:hover{background:var(--green-dark)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* search */
.search-form{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 8px}
.search-form input{flex:1 1 240px;border:1px solid var(--line);border-radius:10px;padding:11px 13px;font-size:1rem}
.search-form select{border:1px solid var(--line);border-radius:10px;padding:11px;background:#fff}
.search-form button{border:0;background:var(--green);color:#fff;font-weight:600;padding:11px 22px;border-radius:10px;cursor:pointer}

/* footer */
.site-footer{border-top:1px solid var(--line);background:var(--bg2);padding:24px 0;margin-top:30px}
.site-footer p{margin:.2em 0;color:var(--muted);font-size:.9rem}

@media(max-width:760px){
  .course-grid{grid-template-columns:1fr}
  .nav-links{display:none}
  .nav-search{max-width:none}
  .hero h1{font-size:1.7rem}
  #map{height:340px}
}
