*{box-sizing:border-box}body{margin:0;font-family:-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:#f3f6f2;color:#1d2b1f}
.wrap{max-width:1400px;margin:0 auto;padding:0 20px}
.bar{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center;margin:16px 0 6px}
nav{display:flex;flex-wrap:wrap;gap:4px}nav button{border:1px solid #1f5f3a;background:#fff;color:#1f5f3a;padding:7px 12px;border-radius:20px;font-weight:600;cursor:pointer;font-size:13px}nav button.on{background:#1f5f3a;color:#fff}
#holes button{border-color:#8aa592;color:#3b5a44;padding:5px 10px;font-size:12px}#holes button.on{background:#3b5a44;color:#fff}
select{padding:6px;border-radius:6px}.note,.small{font-size:12px;color:#5e6f61}.small a{color:#1f5f3a;font-weight:600}
#grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px;margin:12px 0 30px}
@media(min-width:1200px){#grid{grid-template-columns:repeat(4,1fr)}}
.c{background:#fff;border:1px solid #dfe7df;border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:7px}
.c h3{margin:0;font-size:16px;line-height:1.25}.city{font-size:12px;color:#6a7d6d}
.pr{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;text-align:center;background:#f6faf6;border-radius:8px;padding:8px 4px}.pr.sim{grid-template-columns:1fr 2fr}
.pr span:not(.rate){font-size:10px;text-transform:uppercase;color:#6a7d6d;letter-spacing:.03em}.pr b{display:block;font-size:15px;margin-top:2px}
.rate{display:block;line-height:1.25}.rate+.rate{margin-top:3px;padding-top:3px;border-top:1px dashed #d6e2d6}.pr.sim .rate{font-size:13px}
.pn{display:block;font-size:10px;font-weight:400;color:#6a7d6d;line-height:1.2}
.chk{color:#a06a00;font-size:12px;font-weight:600}
.chips{display:flex;flex-wrap:wrap;gap:5px}.chip{white-space:nowrap;background:#e6f2ea;color:#1f5f3a;border-radius:20px;padding:2px 10px;font-size:12px;font-weight:600;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.chip.unk{background:#fff3cd;color:#7a5b00}.chip.prem{background:#efe6fb;color:#5a2d91}.chip.wait{background:#e8eefc;color:#2a4a9a}
.tag9{display:inline-block;background:#fff3cd;color:#7a5a00;border-radius:8px;padding:0 6px;font-size:11px;font-weight:600;margin-left:4px}
.act{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;margin-top:auto;padding-top:4px}
.btn{text-align:center;padding:8px 4px;border-radius:8px;font-size:12px;font-weight:600;text-decoration:none;cursor:pointer;background:#1f5f3a;color:#fff;border:1px solid #1f5f3a;font-family:inherit}
.btn.alt{background:#5e6f61;border-color:#5e6f61}.btn.out{background:#fff;color:#1f5f3a}.btn.dis,.btn:disabled{background:#e3e9e4;border-color:#e3e9e4;color:#8a9a8d;pointer-events:none}
.act:has(> :nth-child(2):last-child){grid-template-columns:1fr 1fr}
dialog{border:0;border-radius:12px;max-width:380px;width:92%}dialog label{display:block;font-size:13px;margin:8px 0}dialog input,dialog select{width:100%;padding:8px;margin-top:3px}menu{display:flex;gap:8px;padding:0;justify-content:flex-end}.pri{background:#1f5f3a;color:#fff;border:0;padding:8px 12px;border-radius:6px}
.msg{font-size:13px;color:#4a5c4d;border-radius:8px;padding:8px 10px;background:#f3f6f2}.msg.ok{font-size:15px;font-weight:600;background:#e3f4e8;color:#17602f;border:1px solid #9fd3ae}.msg.err{font-size:15px;font-weight:600;background:#fdecea;color:#a3261b;border:1px solid #f1b0a9}.msg.busy{opacity:.7}
[hidden]{display:none!important}
.c{height:100%}#grid{align-items:stretch}
.act{margin-top:auto}.btn{height:36px;display:flex;align-items:center;justify-content:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 6px}
.btn:disabled{pointer-events:auto;cursor:not-allowed}
.trunc{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}

/* ui3 */
.pr{align-items:start;padding:8px 6px}.pr>div{display:flex;flex-direction:column;min-width:0}
.pr .lb,.simbox .lb{font-size:10px;text-transform:uppercase;color:#6a7d6d;letter-spacing:.03em;line-height:14px}
.pr b{display:flex;flex-direction:column;font-size:15px;line-height:20px;margin-top:2px}
.pr .rate{line-height:20px}.pr .rate+.rate{margin-top:4px;padding-top:4px;border-top:1px solid #d6e2d6}
.pr .pn{line-height:13px}
.pr .chk,.simbox .chk{display:block;font-size:14px;line-height:20px;font-weight:400;color:#8a7a55;text-transform:none;letter-spacing:0}
.simbox{background:#f6faf6;border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:8px}
.simbox .row{display:flex;flex-direction:column;gap:2px;min-width:0}.sys{font-weight:600;font-size:14px;overflow-wrap:anywhere}
.plist{margin:0;padding-left:16px;font-size:13px;line-height:1.4;overflow-wrap:anywhere}.plist li+li{margin-top:2px}
.c{min-width:0}.c>*{min-width:0}.small{overflow-wrap:anywhere}
.nowin{font-size:11px;color:#6a7d6d;text-align:right;margin-top:-3px}
menu button.sec{background:#fff;color:#1f5f3a;border:1px solid #1f5f3a;padding:8px 12px;border-radius:6px;cursor:pointer;font-family:inherit}
menu .pri{cursor:pointer;font-family:inherit}
.bar2{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
@media(max-width:600px){.wrap{padding:0 12px}.bar{flex-direction:column;align-items:stretch;flex-wrap:nowrap}
#tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin:0 -12px;padding:0 12px}#tabs::-webkit-scrollbar{display:none}#tabs button{flex:0 0 auto}
.bar2{flex-wrap:nowrap;justify-content:space-between}#holes{flex-wrap:nowrap}#holes button{white-space:nowrap;padding:5px 8px}.bar2 label{font-size:12px;white-space:nowrap}.bar2 select{max-width:120px}}

.tagm{display:inline-block;background:#e7eefc;color:#1f3f7a;border-radius:8px;padding:0 6px;font-size:11px;font-weight:600;margin-left:4px}
/* zip radius search */
#zipbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
#zipbar label{display:flex;align-items:center;gap:.35rem;white-space:nowrap}
#zip{width:6.5em;padding:.35rem .5rem;font:inherit;border:1px solid #bbb;border-radius:6px}
.zb{font:inherit;font-size:.9em;padding:.35rem .6rem;border:1px solid #bbb;background:#fff;border-radius:6px;cursor:pointer;white-space:nowrap}
.zmsg{margin:.5rem 0;font-size:.95em;color:#235}
.zmsg.err{color:#a11;font-weight:600}
.dist{display:inline-block;background:#1f6f3f;color:#fff;font-weight:700;font-size:.85em;padding:0 .45em;border-radius:999px;margin-right:.4em}
.empty{padding:1rem;border:1px dashed #bbb;border-radius:8px}
@media (max-width:480px){#zipbar{width:100%}#zipbar label:first-child{flex:1}#zip{flex:1;width:auto;min-width:0}#zloc{flex:1}}
@media(max-width:600px){.bar2{flex-wrap:wrap}#zipbar{width:100%}}

/* Call (tel:) secondary button; 4 actions wrap to a 2x2 grid */
.btn.call{background:#eef4ef;color:#1f5f3a;border-color:#b9cdbd}.btn.call:hover{background:#e0ebe2}
.act:has(> :nth-child(4)){grid-template-columns:1fr 1fr}

/* quick search */
#sbox{position:relative;margin:16px 0 0;max-width:560px}
#q{width:100%;font:inherit;font-size:16px;padding:10px 40px 10px 38px;border:1px solid #b9cdbd;border-radius:999px;background:#fff;color:#1d2b1f;outline:none;-webkit-appearance:none;appearance:none}
#q::-webkit-search-cancel-button{display:none}
#q:focus{border-color:#1f5f3a;box-shadow:0 0 0 3px rgba(31,95,58,.18)}
.sico{position:absolute;left:13px;top:50%;transform:translateY(-50%);font-size:15px;opacity:.6;pointer-events:none}
.khint{position:absolute;right:12px;top:50%;transform:translateY(-50%);font:600 11px/1 ui-monospace,monospace;color:#6a7d6d;border:1px solid #cfdcd1;border-radius:4px;padding:3px 6px;background:#f6faf6;pointer-events:none}
#q:focus~.khint,#qclr:not([hidden])~.khint,#sbox:has(#qclr:not([hidden])) .khint{display:none}
#qclr{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:30px;height:30px;border:0;border-radius:50%;background:#e6efe8;color:#1f5f3a;font-size:14px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center}
#qclr:hover{background:#d4e4d8}
.qcount{margin:.5rem 0 0;font-size:13px;font-weight:600;color:#1f5f3a}
.qsec{grid-column:1/-1;margin:8px 0 -4px;font-size:15px;color:#3b5a44;border-top:1px solid #dfe7df;padding-top:12px}
.qnone{grid-column:1/-1;font-size:14px;line-height:1.5;text-align:center;background:#fff}
@media(max-width:600px){#sbox{max-width:none;margin-top:12px}.khint{display:none}}

/* view toggle + price filter */
.bar3{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin:4px 0 8px}
#view{display:flex;gap:4px}#view button{border:1px solid #1f5f3a;background:#fff;color:#1f5f3a;padding:7px 14px;border-radius:20px;font-weight:600;cursor:pointer;font-size:13px}#view button.on{background:#1f5f3a;color:#fff}
#pricebar{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;font-size:13px}
#pricebar label{display:flex;align-items:center;gap:.25rem;white-space:nowrap}
#pricebar input[type=number]{width:4.2em;padding:.35rem .4rem;font:inherit;border:1px solid #bbb;border-radius:6px}
#pbasis select{padding:.35rem .4rem;font:inherit;border:1px solid #bbb;border-radius:6px}
.pdash{color:#6a7d6d}
@media(max-width:600px){.bar3{flex-direction:column;align-items:stretch}#pricebar{width:100%}#view{align-self:flex-start}}

/* course stats line */
.stats{font-size:12px;color:#3b5a44;font-weight:600;line-height:1.35}

/* map */
#mapwrap{margin:8px 0 28px;position:relative}
#map{height:min(70vh,620px);min-height:360px;border-radius:12px;border:1px solid #dfe7df;background:#e8efe8;z-index:1}
.mapleg{display:flex;flex-wrap:wrap;gap:10px 16px;margin-top:8px;font-size:12px;color:#3b5a44;align-items:center}
.mapleg .pin{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:5px;vertical-align:-1px;border:1.5px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.25)}
.mapleg .pin.g{background:#2e8b57}.mapleg .pin.a{background:#d4a017}.mapleg .pin.r{background:#c0392b}.mapleg .pin.u{background:#8a9490}
.mpop{font:13px/1.35 -apple-system,Segoe UI,Roboto,Arial,sans-serif;min-width:160px;max-width:240px}
.mpop b{display:block;font-size:14px;margin-bottom:2px}.mpop .pc{color:#6a7d6d;font-size:12px;margin-bottom:4px}
.mpop .pp{display:grid;grid-template-columns:1fr 1fr;gap:4px 8px;margin:6px 0;font-size:12px}
.mpop .pp span{color:#6a7d6d;font-size:10px;text-transform:uppercase;letter-spacing:.03em;display:block}
.mpop a{color:#1f5f3a;font-weight:600;font-size:12px}
.leaflet-container a{color:#1f5f3a}
.card-hl{outline:3px solid #1f5f3a;outline-offset:2px;box-shadow:0 0 0 6px rgba(31,95,58,.18)}

/* back to map (from pin → View card) */
.viewrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.backmap{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:10000;display:inline-flex;align-items:center;gap:6px;min-height:48px;padding:12px 22px;border:2px solid #fff;background:#1f5f3a;color:#fff;border-radius:999px;font-weight:700;font-size:16px;font-family:inherit;white-space:nowrap;line-height:1.2;cursor:pointer;box-shadow:0 4px 16px rgba(0,0,0,.35);-webkit-tap-highlight-color:transparent}
.backmap[hidden]{display:none!important}
.backmap:hover{background:#174a2d}
.backmap:focus-visible{outline:3px solid #ffd54a;outline-offset:2px}
body:has(#backmap:not([hidden])){padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}

/* remind dialog: multi-course + tee prefs (iPhone ~390px) */
dialog{max-width:400px;width:min(400px,calc(100vw - 24px));padding:16px;max-height:min(90vh,720px);overflow:auto}
dialog h3{margin:0 0 4px;font-size:17px}
.fsec{margin:8px 0}.flab{font-size:13px;font-weight:600;margin-bottom:4px}.fcnt{font-weight:500;color:#6a7d6d}
#fcs{width:100%;padding:8px 10px;font:inherit;font-size:16px;border:1px solid #b9cdbd;border-radius:8px;margin-bottom:6px}
.fclist{max-height:160px;overflow:auto;-webkit-overflow-scrolling:touch;border:1px solid #dfe7df;border-radius:8px;background:#fafcfa}
.fco{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:8px;align-items:center;padding:8px 10px;margin:0;border-bottom:1px solid #e8efe8;font-size:13px;cursor:pointer}
.fco:last-child{border-bottom:0}.fco input{grid-row:1/3;width:18px;height:18px;margin:0;accent-color:#1f5f3a}
.fcn{font-weight:600;line-height:1.25;min-width:0;overflow-wrap:anywhere}.fci{grid-column:2;font-size:11px;color:#6a7d6d}
.fempty{padding:12px;font-size:13px;color:#6a7d6d;text-align:center}
.fchips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;min-height:0}
.fchip{border:1px solid #b9cdbd;background:#e6f2ea;color:#1f5f3a;border-radius:999px;padding:4px 10px;font:inherit;font-size:12px;font-weight:600;cursor:pointer;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.seg{display:flex;gap:4px;flex-wrap:nowrap}.seg button{flex:1;min-width:0;border:1px solid #1f5f3a;background:#fff;color:#1f5f3a;padding:8px 6px;border-radius:8px;font:inherit;font-size:12px;font-weight:600;cursor:pointer}
.seg button.on{background:#1f5f3a;color:#fff}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0}
.frow label{margin:0}dialog input[type=time]{font-size:16px}
@media(max-width:400px){dialog{width:calc(100vw - 16px);padding:12px}.fclist{max-height:140px}.seg button{padding:8px 4px;font-size:11px}}

.maint{background:#fff1d6;color:#7a4a00;border:1px solid #f0c36d;border-radius:8px;padding:3px 8px;font-size:12px;font-weight:700;overflow-wrap:anywhere;max-width:100%}.maint a{color:#7a4a00;text-decoration:underline;font-weight:600}
.rng{font-size:12px;color:#1f5f3a;font-weight:700;overflow-wrap:anywhere}.rng .rnote{font-weight:400;color:#5e6f61}

/* news page */
.news-page{padding-bottom:36px}
.news-page h2{font-size:18px;color:#1f5f3a;margin:22px 0 10px}
.nlist{display:flex;flex-direction:column;gap:12px}
.nitem{background:#fff;border:1px solid #dfe7df;border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:6px;min-width:0;overflow-wrap:anywhere}
.nitem h3{margin:0;font-size:16px;line-height:1.3}
.ntag{align-self:flex-start;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;border-radius:20px;padding:2px 10px}
.ntag.news{background:#e6f2ea;color:#1f5f3a}
.ntag.event{background:#e8eefc;color:#2a4a9a}
.ntag.closure{background:#fff1d6;color:#7a4a00}
.nwhen{font-size:13px;font-weight:700;color:#1f5f3a}
.nmeta{font-size:12px;color:#5e6f61}
.nsum{margin:2px 0 0;font-size:14px;line-height:1.45;color:#1d2b1f}
.nfoot{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin-top:4px}
.nsrc{font-size:13px;font-weight:700;color:#1f5f3a}
.nadded{font-size:11px;color:#8a9a8d}
.nevt{font-size:12px;font-weight:700;line-height:1.35;overflow-wrap:anywhere;max-width:100%}
.nevt a{color:#2a4a9a;text-decoration:none;border-bottom:1px solid rgba(42,74,154,.35)}
.nevt a:hover{border-bottom-color:#2a4a9a}
.nevt .ncl{color:#7a4a00;border-bottom-color:rgba(122,74,0,.35)}
.nevt .ncl:hover{border-bottom-color:#7a4a00}
@media(max-width:400px){
.nitem{padding:12px}.news-page h2{font-size:17px}
}

.ntag.busy{background:#f5e6d8;color:#8a3b00}
.naud{align-self:flex-start;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;border-radius:20px;padding:2px 8px;margin-left:4px}
.naud.public{background:#e6f2ea;color:#1f5f3a}
.naud.invite{background:#eee8fc;color:#4a2a9a}
.naud.members{background:#fce8e8;color:#8a2020}
.nmetro{align-self:flex-start;font-size:10px;font-weight:700;color:#5e6f61;border:1px solid #dfe7df;border-radius:20px;padding:1px 8px}
.nfilters{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;margin:12px 0 4px;min-width:0}
.nftog{font-size:13px;font-weight:600;color:#1d2b1f;display:flex;align-items:center;gap:6px;min-width:0}
.nfmetro{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
.nfbtn{font-size:12px;font-weight:700;padding:5px 12px;border-radius:20px;border:1px solid #c5d4c8;background:#fff;color:#1f5f3a;cursor:pointer;min-width:0}
.nfbtn.active{background:#1f5f3a;color:#fff;border-color:#1f5f3a}
.nweek .nitem{border-left:3px solid #1f5f3a}
.nitem .ntag,.nitem .naud,.nitem .nmetro{display:inline-flex;vertical-align:middle}
.nitem-tags{display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center;min-width:0;max-width:100%}
@media (max-width:420px){
.nfilters{gap:8px}
.nfbtn{padding:5px 10px}
.naud{margin-left:0}
}

/* News tabs */
.ntabs{
  position:sticky;top:0;z-index:20;
  display:flex;flex-wrap:nowrap;gap:6px;
  overflow-x:auto;-webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
  background:rgba(247,250,247,.96);
  backdrop-filter:blur(8px);
  padding:8px 0 10px;margin:8px 0 12px;
  border-bottom:1px solid #dfe7df;
  min-width:0;max-width:100%;
}
.ntab{
  flex:0 0 auto;
  font-size:12px;font-weight:700;
  padding:7px 11px;border-radius:20px;
  border:1px solid #c5d4c8;background:#fff;color:#1f5f3a;
  cursor:pointer;white-space:nowrap;line-height:1.2;
}
.ntab.active,.ntab[aria-selected="true"]{
  background:#1f5f3a;color:#fff;border-color:#1f5f3a;
}
.ntab .ncount{
  display:inline-block;margin-left:3px;
  font-size:11px;font-weight:800;
  opacity:.85;
}
.ntab.active .ncount,.ntab[aria-selected="true"] .ncount{opacity:1}
.ntab-panel[hidden]{display:none!important}
.ntab-panels{min-width:0}
.nvisually{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
.nsum-clamp{
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;
  overflow:hidden;
}
.nmore{
  align-self:flex-start;
  font-size:12px;font-weight:700;color:#1f5f3a;
  background:none;border:none;padding:0;cursor:pointer;
  text-decoration:underline;text-underline-offset:2px;
}
.nitem{padding:10px 12px;gap:4px}
.nitem h3{font-size:15px}
.nitem .nsum{font-size:13px;line-height:1.4;margin:0}
.nitem.nitem-hl{outline:2px solid #1f5f3a;outline-offset:2px}
.news-page h2{margin:8px 0 8px}
@media (max-width:420px){
  .ntab{padding:6px 9px;font-size:11px}
  .ntabs{gap:5px;padding:6px 0 8px}
}


/* ===== v3 redesign (2026-10-20) ===== */
:root{--g9:#173f2a;--g8:#1f5f3a;--g6:#2a7a46;--g2:#dce9dd;--g1:#eef5ee;--ink:#14261a;--mut:#4f6354;--line:#dde8de}
html{scroll-padding-top:72px;background:var(--g1)}
body{background:var(--g1);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;-webkit-text-size-adjust:100%;overflow-x:hidden}
.wrap{max-width:1240px;margin:0 auto;padding:0 24px}
.vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:8px;top:-60px;z-index:2000;background:#fff;color:var(--g9);padding:8px 12px;border-radius:8px;font-weight:700}.skip:focus{top:8px}
button,input,select{font-family:inherit}
:focus-visible{outline:3px solid #8cc79d;outline-offset:2px}
svg{flex:0 0 auto}button svg,a svg{pointer-events:none}

/* header */
header.top{position:sticky;top:0;z-index:1000;background:var(--g9);color:#fff;box-shadow:0 1px 0 rgba(255,255,255,.06),0 2px 10px rgba(0,0,0,.12)}
.topbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;height:58px}
.logo{justify-self:start;display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-family:Georgia,"Times New Roman",serif;font-size:21px;font-weight:700;letter-spacing:-.01em;white-space:nowrap}
.logo-mark{width:28px;height:28px}
.site-nav{display:flex;align-items:center;gap:6px}
.site-nav a{color:#d9e9dc;text-decoration:none;font-size:15px;font-weight:500;padding:8px 14px;border-radius:8px;white-space:nowrap}
.site-nav a:hover{background:rgba(255,255,255,.1);color:#fff}
.site-nav a[aria-current=page]{color:#fff;font-weight:700}
.nsep{width:1px;height:16px;background:rgba(255,255,255,.3)}
.site-nav .nav-deals{display:none}
.deals{justify-self:end;display:inline-flex;align-items:center;gap:8px;color:#fff;text-decoration:none;font-size:14px;font-weight:600;padding:8px 14px;border:1px solid rgba(255,255,255,.35);border-radius:9px;white-space:nowrap}
.deals:hover{background:rgba(255,255,255,.1)}.deals svg{width:18px;height:18px}.deals .ds{display:none}
.menu{display:none;width:40px;height:40px;border:0;background:transparent;border-radius:8px;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:0}
.menu span{display:block;width:22px;height:2px;background:#fff;border-radius:2px;transition:transform .2s,opacity .2s}
header.top.open .menu span:nth-child(1){transform:translateY(7px) rotate(45deg)}header.top.open .menu span:nth-child(2){opacity:0}header.top.open .menu span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* hero */
.hero{position:relative;overflow:hidden;background:linear-gradient(180deg,#e2efe3 0%,#eaf3ea 60%,var(--g1) 100%);padding:52px 0 40px;border-bottom:1px solid var(--g2)}
.hills{position:absolute;left:0;bottom:0;width:100%;height:190px;pointer-events:none}
.hero-in{position:relative;z-index:1}
.hh{margin:0;max-width:16em;font-family:Georgia,"Times New Roman",serif;font-weight:700;font-size:clamp(34px,4.1vw,54px);line-height:1.08;letter-spacing:-.015em;color:var(--g9);text-wrap:balance}
.hs{margin:12px 0 22px;font-size:17px;color:#3d5a45;letter-spacing:.01em}
.hbtns{display:flex;flex-wrap:wrap;gap:12px}
.hb{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-weight:700;font-size:15.5px;border-radius:10px;padding:0 20px;height:48px;cursor:pointer;border:1.5px solid var(--g9);white-space:nowrap;transition:background .15s,box-shadow .15s}
.hb svg{width:20px;height:20px}
.pri1{background:var(--g9);color:#fff}.pri1:hover{background:#0f2f1e}.pri1:disabled{opacity:.7;cursor:wait}
.pri2{background:#fff;color:var(--g9)}.pri2:hover{background:#f3f8f3}

/* newsletter */
.nl{position:relative;z-index:1;margin:34px auto 0;max-width:880px;background:rgba(244,249,244,.94);border:1px solid #c9dccb;border-radius:18px;padding:24px 28px 20px;text-align:center;box-shadow:0 10px 30px rgba(23,63,42,.10);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.nl-ico{display:none;width:48px;height:48px}
.nl-txt h2{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:27px;line-height:1.2;color:var(--g9)}
.nl-txt p{margin:6px 0 0;font-size:15px;color:#3d5a45}
.sub{margin:16px auto 0;max-width:540px}
.subrow{display:flex;gap:10px}
.ein{position:relative;flex:1;min-width:0;display:flex}
.ein svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);width:20px;height:20px;color:#5b6f5f;pointer-events:none}
.ein input{flex:1;min-width:0;height:48px;font:inherit;font-size:16px;padding:0 14px 0 42px;border:1px solid #b9cdbd;border-radius:10px;background:#fff;color:var(--ink)}
.ein input:focus{outline:none;border-color:var(--g8);box-shadow:0 0 0 3px rgba(31,95,58,.18)}
.subrow .hb{padding:0 24px}
.subm{margin:8px 0 0;font-size:13.5px}.subm:empty{display:none}.subm.ok{color:#17602f;font-weight:600}.subm.err{color:#a3261b;font-weight:600}

/* toolbar + filters */
.courses{padding-top:28px;padding-bottom:12px}
.tools{display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"s o v";gap:12px;align-items:center}
#sbox{grid-area:s;margin:0;max-width:none;position:relative}
#q{height:46px;padding:0 42px 0 42px;font-size:16px;border:1px solid #c3d6c6;border-radius:12px;box-shadow:0 1px 2px rgba(23,63,42,.05)}
.sico{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:19px;height:19px;color:#5b6f5f;opacity:1;font-size:0}
.ftog{grid-area:f;display:none;align-items:center;gap:7px;height:44px;padding:0 14px;border:1px solid #c3d6c6;background:#fff;color:var(--ink);border-radius:12px;font:inherit;font-size:14.5px;font-weight:600;cursor:pointer;white-space:nowrap}
.ftog svg{width:19px;height:19px;color:#3d5a45}.ftog[aria-expanded=true]{border-color:var(--g8);background:#e8f3eb}
.fcount{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--g8);color:#fff;font-size:12px;font-weight:700}
.sortl{grid-area:o;display:flex;align-items:center;gap:8px;font-size:14px;color:var(--mut);white-space:nowrap}
.sortl select,#rad,#pbasis{height:40px;padding:0 30px 0 12px;border:1px solid #c3d6c6;border-radius:10px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23173f2a' stroke-width='1.8'/%3E%3C/svg%3E") no-repeat right 11px center;-webkit-appearance:none;appearance:none;font:inherit;font-size:14px;font-weight:600;color:var(--ink);cursor:pointer}
.sortl select{height:44px}
.viewrow{grid-area:v;display:flex;align-items:center;gap:8px}
#view{display:flex;gap:0;border:1px solid #c3d6c6;border-radius:12px;overflow:hidden;background:#fff}
#view button{display:inline-flex;align-items:center;gap:6px;height:42px;border:0;border-radius:0;padding:0 16px;background:#fff;color:var(--ink);font-size:14px;font-weight:600}
#view button+button{border-left:1px solid #c3d6c6}
#view button svg{width:18px;height:18px}
#view button.on{background:var(--g9);color:#fff}
.filters{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;margin:16px 0 6px}
#tabs{display:flex;flex-wrap:wrap;gap:8px}
#tabs button,#holes button{border:1px solid #c3d6c6;background:#fff;color:var(--ink);padding:0 15px;height:38px;border-radius:999px;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s}
#tabs button:hover,#holes button:hover{border-color:var(--g8);background:#f3f9f4}
#tabs button.on,#holes button.on{background:var(--g9);border-color:var(--g9);color:#fff}
#holes{display:flex;gap:6px}#holes button{height:34px;padding:0 12px;font-size:13px}
.fpanel{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px}
.fgrp{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding-left:18px;border-left:1px solid #cfdcd1;font-size:13.5px;color:var(--mut)}
.fg-holes:has(#holes[hidden]){display:none}
.fl{font-size:13px;font-weight:700;color:#3d5a45}
#zipbar label,#pricebar label{display:flex;align-items:center;gap:6px;white-space:nowrap}
#zip,#pricebar input[type=number]{height:36px;padding:0 10px;font:inherit;font-size:15px;border:1px solid #c3d6c6;border-radius:9px;background:#fff;color:var(--ink)}
#zip{width:12em}#pricebar input[type=number]{width:4.6em}
#rad,#pbasis{height:36px;font-size:13.5px}
.zb{height:36px;padding:0 12px;border:1px solid #c3d6c6;background:#fff;color:var(--g9);border-radius:9px;font-size:13.5px;font-weight:600;cursor:pointer;white-space:nowrap}
.zb:hover{border-color:var(--g8)}
.note{font-size:12.5px;color:#5e6f61;margin:12px 0 0;line-height:1.45}
.qcount{margin:10px 0 0;font-size:14px}.zmsg{margin:10px 0 0;font-size:14px;color:#1f3d2a;font-weight:600}

/* grid + cards */
#grid{display:grid;grid-template-columns:1fr;gap:20px;margin:16px 0 36px;align-items:stretch}
@media(min-width:680px){#grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1040px){#grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.c{position:relative;background:#fff;border:1px solid var(--line);border-radius:16px;padding:0 18px 16px;display:flex;flex-direction:column;gap:9px;overflow:hidden;box-shadow:0 1px 2px rgba(23,63,42,.05),0 6px 18px rgba(23,63,42,.06);transition:box-shadow .2s,transform .2s}
.c:hover{box-shadow:0 2px 4px rgba(23,63,42,.06),0 12px 28px rgba(23,63,42,.10)}
.cv{position:relative;display:flex;align-items:center;justify-content:space-between;height:66px;margin:0 -18px 6px;padding:0 18px;color:#fff;background:linear-gradient(135deg,#1f5f3a 0%,#3f8a58 100%);overflow:hidden}
.cv::after{content:"";position:absolute;left:-10%;right:-10%;bottom:-36px;height:58px;border-radius:50%;background:rgba(255,255,255,.10)}
.cv svg{width:36px;height:36px;opacity:.92;position:relative;z-index:1}
.cv span{position:relative;z-index:1;font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.25);padding:3px 10px;border-radius:999px;max-width:70%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cv-OC{background:linear-gradient(135deg,#185449 0%,#3a8a78 100%)}
.cv-IE{background:linear-gradient(135deg,#46632a 0%,#82a050 100%)}
.cv-SIM{background:linear-gradient(135deg,#1f3a57 0%,#3f6a8f 100%)}
.c h3{margin:0;font-size:18.5px;line-height:1.25;font-weight:700;color:var(--ink);letter-spacing:-.005em}
.city{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:13.5px;color:var(--mut)}
.city .ico{width:15px;height:15px;color:#557a5e;margin-right:-2px}
.rtag{background:#e6f2ea;color:#1f5f3a;border-radius:6px;padding:2px 8px;font-size:12px;font-weight:600}
.tag9,.tagm{margin-left:0;border-radius:6px;padding:2px 8px;font-size:12px}
.dist{margin-right:2px;font-size:12px;padding:2px 8px}
.stats{font-size:12.5px;color:#3b5a44}
.pr{grid-template-columns:repeat(3,minmax(0,1fr));gap:0;background:none;border-top:1px solid #e6eee6;border-bottom:1px solid #e6eee6;border-radius:0;padding:10px 0;margin:2px 0}
.pr>div{padding:0 6px}.pr>div+div{border-left:1px solid #e6eee6}
.pr .lb{font-size:11px;font-weight:700;letter-spacing:.06em;color:#5b6f5f}
.pr b{font-size:21px;line-height:26px;color:var(--g9);font-weight:750;margin-top:3px}
.pr>div:nth-child(3) b{color:var(--g6)}
.pr .rate{line-height:24px}.pr .rate+.rate{font-size:16px;line-height:20px}
.pr .pn{font-size:10.5px;color:#5b6f5f;font-weight:500}
.pr span.chk,.simbox span.chk{font-size:13px;line-height:24px;font-weight:600;color:#8a6a1f;text-transform:none;letter-spacing:0}
.chips{gap:6px}.chip{border-radius:7px;padding:3px 9px;font-size:12.5px;background:#e6f2ea;color:#1f5f3a}
.resw{font-size:12.5px;color:#33503b;background:#f3f8f3;border-radius:7px;padding:4px 9px;overflow-wrap:anywhere;align-self:flex-start;max-width:100%}
.c .small{font-size:12px;color:#5e6f61;line-height:1.45}
.act{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:6px}
.act .btn{flex:1 1 0;min-width:0;height:40px;border-radius:9px;font-size:13.5px;font-weight:650;padding:0 8px}
.act .btn:not(.alt):not(.out):not(.call){order:-1;flex:1 1 100%;background:var(--g9);border-color:var(--g9);height:44px;font-size:14.5px;gap:8px}
.act .btn:not(.alt):not(.out):not(.call):hover{background:#0f2f1e}
.act .btn:not(.alt):not(.out):not(.call).dis{background:#e3e9e4;border-color:#e3e9e4;color:#8a9a8d}
.btn .arr{font-size:16px;line-height:1}
.btn.alt,.btn.out{background:#fff;color:var(--g9);border:1px solid #9fbfa6}.btn.alt:hover,.btn.out:hover{background:#f1f7f2}
.btn.call{background:#eef5ef;color:var(--g9);border-color:#c3d6c6}
.btn.dis,.btn:disabled{background:#eef1ee;border-color:#e3e9e4;color:#8a9a8d}
.nowin{text-align:left;margin-top:-2px}
.simbox{background:#f5f9f5}
.card-hl{outline:3px solid var(--g8)}
.qsec{font-size:16px}
#map{border-radius:16px;border-color:var(--line);height:min(70vh,640px)}
.mapleg{font-size:12.5px}

/* footer */
.foot{border-top:1px solid var(--g2);background:#e4efe5;padding:22px 0 32px;margin-top:12px}
.foot.small,.foot .small{font-size:12.5px;color:#4f6354}.foot a{color:var(--g8);font-weight:600}

/* news page with shared header */
.news-hero{padding:26px 0 2px}
.news-hero h1{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:32px;color:var(--g9)}
.news-hero p{margin:6px 0 0;color:#3d5a45;font-size:15px}
.pg-news .ntabs{top:58px;background:rgba(238,245,238,.96)}

/* tablet */
@media(max-width:1040px){.filters{gap:10px 14px}.fgrp{padding-left:14px}}
/* mobile */
@media(max-width:760px){
.wrap{padding:0 16px}
.topbar{grid-template-columns:1fr auto auto;gap:8px;height:56px}
.logo{font-size:19px;gap:8px}.logo-mark{width:26px;height:26px}
.menu{display:flex}
.site-nav{display:none;position:absolute;left:0;right:0;top:56px;flex-direction:column;align-items:stretch;gap:2px;background:var(--g9);padding:6px 12px 14px;border-top:1px solid rgba(255,255,255,.1);box-shadow:0 10px 20px rgba(0,0,0,.18)}
header.top.open .site-nav{display:flex}
.site-nav a{padding:12px;font-size:16px}.nsep{display:none}
.deals{padding:7px 11px;font-size:13.5px}
.pg-news .ntabs{top:56px}
.hero{padding:26px 0 28px}
.hills{height:120px}
.hh{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-weight:800;font-size:30px;line-height:1.15;letter-spacing:-.02em}
.hs{font-size:15px;margin:8px 0 18px}
.hbtns{flex-direction:column;gap:10px}.hbtns .hb{width:100%;border-radius:999px}
.nl{margin-top:20px;display:grid;grid-template-columns:48px minmax(0,1fr);column-gap:12px;align-items:center;text-align:left;padding:16px;border-radius:16px}
.nl-ico{display:block}
.nl-txt h2{font-family:inherit;font-size:17px;font-weight:750}.nl-txt p{font-size:13.5px;margin-top:3px}
.sub{grid-column:1/-1;margin:14px 0 0;max-width:none}
.subrow{gap:8px}.subrow .hb{padding:0 18px}
.courses{padding-top:20px}
.tools{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"s s s" "f o v";gap:10px}
.ftog{display:inline-flex}
.sortl span{display:none}.sortl select{width:100%;min-width:0}
#view button{padding:0 12px}
.khint{display:none}
.filters{margin-top:12px;gap:10px}
#tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin:0 -16px;padding:2px 16px;width:calc(100% + 32px)}
#tabs::-webkit-scrollbar{display:none}#tabs button{flex:0 0 auto;height:36px;padding:0 13px}
.fpanel{display:none;width:100%;flex-direction:column;align-items:stretch;gap:14px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;box-shadow:0 6px 18px rgba(23,63,42,.06)}
.fpanel.open{display:flex}
.fgrp{padding-left:0;border-left:0}
.fg-holes .fl,#zipbar>label:first-child .fl,#pricebar .pbasis .fl{min-width:62px}
#holes{flex-wrap:wrap}
#zipbar{width:100%}#zipbar label:first-child{flex:1 1 100%}#zip{flex:1;width:auto;min-width:0}#zloc{flex:1}
#pricebar{width:100%}
.c{padding:0 16px 16px}.cv{margin:0 -16px 4px;padding:0 16px;height:58px}
.pr b{font-size:20px}
.news-hero h1{font-size:26px}
}
@media(max-width:380px){.deals .dl{display:none}.deals .ds{display:inline}.logo{font-size:18px}.hh{font-size:27px}#view button{padding:0 10px}}
@media(max-width:560px){.deals .dl{display:none}.deals .ds{display:inline}}
/* v3 fixes */
.hh .l1{display:block}
.menu,.deals,#tabs button,#view button,.ftog,.hb,.btn{-webkit-tap-highlight-color:transparent}
@media(max-width:760px){
.tools{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"s s" "f v"}
.ftog{justify-content:center}
.fpanel .sortl{display:flex;gap:8px}.fpanel .sortl span{display:inline;min-width:62px;font-size:13px;font-weight:700;color:#3d5a45}
.fpanel .sortl select{width:auto;flex:1;height:38px;max-width:220px}
#pricebar .pbasis{flex:1 1 100%}
}
@media(max-width:360px){.deals{padding:8px}.deals .ds{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.logo{font-size:17px}.hh{font-size:26px}}
/* main-search "courses near <city/zip>" shortcut */
.qnear{margin:8px 0 0}.qnear .zb{height:auto;min-height:36px;padding:6px 12px;white-space:normal;text-align:left;max-width:100%;line-height:1.3}
/* course name links on cards */
.c h3 a.cname{color:inherit;text-decoration:none}.c h3 a.cname:hover,.c h3 a.cname:focus-visible{text-decoration:underline;text-underline-offset:3px}
.mpop a+a{margin-left:0}
/* per-course pages */
.cp{padding-bottom:32px}
.cp-back{margin:18px 0 12px;font-size:14px}.cp-back a{color:var(--g8);font-weight:650;text-decoration:none}.cp-back a:hover{text-decoration:underline}
.cp-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:0 22px 20px;overflow:hidden;display:flex;flex-direction:column;gap:12px;box-shadow:0 1px 3px rgba(20,38,26,.05)}
.cp-card .cv{margin:0 -22px 4px;padding:0 22px;height:76px}
.cp-card h1{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:32px;line-height:1.15;color:var(--g9);overflow-wrap:anywhere}
.cp-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:14px;color:#4f6354}.cp-meta .ico{width:16px;height:16px;color:var(--g8)}
.cp-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0;padding:12px 0;border-top:1px solid #e6eee6;border-bottom:1px solid #e6eee6}
.cp-facts div{min-width:0}.cp-facts dt{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#5b6f5f}
.cp-facts dd{margin:3px 0 0;font-size:15px;font-weight:650;color:var(--ink);overflow-wrap:anywhere}.cp-facts dd a{color:var(--g8)}
.cp-facts .cp-src{font-weight:400}
.cp-act{max-width:640px;margin-top:2px}
.cp-act .btn{flex:1 1 0}
.cp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px;align-items:start}
.cp-sec{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px;min-width:0}
.cp-sec h2{margin:0 0 10px;font-size:18px;color:var(--g9)}
.cp-sec .chips{margin-bottom:8px}
.tblx{overflow-x:auto;max-width:100%}
.cp-tbl{width:100%;border-collapse:collapse;font-size:14px;line-height:1.4}
.cp-tbl th,.cp-tbl td{text-align:left;vertical-align:top;padding:7px 8px 7px 0;border-bottom:1px solid #edf2ed;overflow-wrap:anywhere}
.cp-tbl tr:last-child th,.cp-tbl tr:last-child td{border-bottom:0}
.cp-tbl th[scope=row]{width:38%;font-weight:650;color:#4f6354}
.cp-tbl a{color:var(--g8);font-weight:600;overflow-wrap:anywhere}
.cp-rates td{font-size:18px;font-weight:750;color:var(--g9)}
.cp-rates .rate{display:block}.cp-rates .rate+.rate{margin-top:3px}
.cp-rates .pn{display:block;font-size:12px;font-weight:500;color:#5b6f5f;line-height:1.35}
.cp-tbl .chk{font-size:14px;font-weight:600;color:#8a6a1f}
.cp-notes{margin-top:8px;font-size:13px}
.cp-stats th,.cp-stats td{text-align:center;padding:8px 6px;font-size:15px}.cp-stats thead th{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#5b6f5f;border-bottom:1px solid #dde8de}
.cp-src{margin:8px 0 0;font-size:12px;color:#5e6f61;overflow-wrap:anywhere}.cp-src a{color:var(--g8);overflow-wrap:anywhere}
.cp-city{margin:0 0 8px;font-size:14px;color:#3d5a45}
.cp-map{height:260px;border-radius:12px;border:1px solid var(--line);background:#e9f0e9;z-index:0}
.cp-map.nomap{display:none}
.cp-maplinks{margin:8px 0 0;font-size:13px;color:#5e6f61}.cp-maplinks a{color:var(--g8);font-weight:650}
.cp-maint{background:#fff7e8;border:1px solid #f0c36d;border-radius:10px;padding:10px 12px;color:#6a4300}
.cp-maint.past{background:#f4f6f4;border-color:#dde3de;color:#5e6f61}
.cp-status{margin:0 0 8px;font-weight:650;color:#2a4a9a}
.cp-foot-back{margin:18px 0 6px}.cp-foot-back .btn{display:inline-flex;width:auto;padding:0 16px;height:40px;border-radius:9px;font-size:14px;color:var(--g9);background:#fff;border:1px solid #9fbfa6;text-decoration:none}
.cp-list{margin:0;padding:0 0 0 18px;columns:2;column-gap:24px;font-size:14px;line-height:1.9}.cp-list a{color:var(--g8);font-weight:600}
@media(max-width:900px){.cp-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){.cp-card{padding:0 16px 16px}.cp-card .cv{margin:0 -16px 2px;padding:0 16px;height:60px}.cp-card h1{font-size:26px}
.cp-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.cp-sec{padding:14px}.cp-act{max-width:none}.cp-list{columns:1}.cp-map{height:220px}}
