@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&display=swap');
:root { color-scheme: light; --ink:#17382b; --cream:#f5f1e8; --lime:#dafa79; --line:#d9d9cd; --display-font:Georgia,"Times New Roman",serif; }
* { box-sizing:border-box; }
body { min-height:100vh; margin:0; display:flex; flex-direction:column; position:relative; isolation:isolate; overflow-x:hidden; background:var(--cream); color:var(--ink); font-family:"DM Sans",sans-serif; }
body::before { content:""; position:fixed; z-index:0; top:120px; left:50%; width:min(72vw,760px); aspect-ratio:1; transform:translateX(-50%); background:url('/golf-mark-watermark.png') center/contain no-repeat; opacity:.035; pointer-events:none; }
body > main,body > footer { position:relative; z-index:1; }
main { width:min(1120px, calc(100% - 40px)); flex:1; margin:0 auto; padding:72px 0; }
header { display:grid; grid-template-columns:1fr 1fr; align-items:end; margin-bottom:52px; }
.eyebrow { grid-column:1/-1; font-size:12px; letter-spacing:.18em; font-weight:600; }
.header-top { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.header-top .eyebrow { margin:0; }
.primary-nav { display:flex; gap:22px; }
.primary-nav a { color:var(--ink); font-size:13px; font-weight:600; text-decoration:none; }
.primary-nav a:hover,.primary-nav a[aria-current="page"] { text-decoration:underline; text-underline-offset:4px; }
h1 { font:clamp(56px,8vw,108px)/.86 var(--display-font); letter-spacing:-.045em; margin:32px 0 0; }
h1 em { color:#4f7347; }
.hero-title { grid-column:1/-1; display:flex; align-items:baseline; gap:.2em; white-space:nowrap; font-size:clamp(50px,6.7vw,82px); }
.hero-title em { flex:0 0 auto; }
.intro { grid-column:1/-1; max-width:620px; font-size:20px; line-height:1.5; margin:32px auto 4px; text-align:center; }
.search-presets { display:flex; align-items:center; justify-content:flex-end; gap:8px; margin:0 0 10px; }
.search-presets span { margin-right:4px; color:#68736d; font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; }
.search-presets button { min-height:34px; padding:0 13px; border:1px solid #aeb9b2; border-radius:999px; background:transparent; font-size:12px; }
.search-presets button:hover,.search-presets button:focus-visible { border-color:var(--ink); background:white; }
form { display:grid; grid-template-columns:1fr 1.2fr .9fr .9fr .7fr; gap:1px; background:var(--ink); border:1px solid var(--ink); border-radius:10px; overflow:hidden; }
#search-form > button { grid-column:1/-1; min-height:52px; }
.availability-window { margin:10px 2px 0; color:#68736d; font-size:12px; text-align:right; }
label { background:white; padding:12px 16px 8px; font-size:11px; text-transform:uppercase; letter-spacing:.1em; }
input,select { display:block; width:100%; border:0; background:transparent; color:var(--ink); font:600 17px "DM Sans"; padding:5px 0 0; outline:none; }
button { border:0; padding:0 25px; background:var(--lime); color:var(--ink); font-weight:600; font-size:15px; cursor:pointer; }
button span { margin-left:16px; }
button:disabled { cursor:wait; opacity:.78; }
#summary { display:flex; align-items:center; justify-content:space-between; margin:46px 0 15px; font-size:18px; }
.summary-actions { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:10px 18px; }
#summary span { color:#63736c; font-size:14px; }
.background-refresh { display:inline-flex; align-items:center; gap:7px; }
.background-refresh i { width:10px; height:10px; border:2px solid #c9d3ce; border-top-color:var(--ink); border-radius:50%; animation:loading-spin .8s linear infinite; }
.course-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; align-items:start; }
.course-grid article { min-width:0; height:100%; border:1px solid var(--line); border-radius:12px; }
.course-grid article:first-child,.course-grid article:last-child { border-radius:12px; }
.course-grid .course + .times,.course-grid .course + .unavailable { margin-right:0; }
.course-grid .snapshot-note { flex-direction:column; align-items:flex-start; gap:3px; margin-right:0; }
.course-grid .times { grid-template-columns:repeat(auto-fill,minmax(130px,1fr)); }
.view-all-times { width:100%; min-height:42px; margin-top:10px; border:1px solid #b7c49b; border-radius:6px; background:#f4fadf; font-size:13px; }
article { background:white; border-top:1px solid var(--line); padding:24px; }
article:last-child { border-radius:0 0 12px 12px; }
article:first-child { border-radius:12px 12px 0 0; }
article.featured-course { border-left:4px solid #a6c849; background:#fefff9; }
.course { display:flex; justify-content:space-between; gap:20px; }
.course-copy { flex:1; min-width:0; }
.course h2 { font:30px var(--display-font); margin:5px 0; }
.course p:not(.status) { color:#6d7772; margin:0; font-size:14px; }
.course-address { color:inherit; text-decoration-color:#9da69f; text-underline-offset:3px; }
.course-address:hover { color:var(--ink); text-decoration-color:var(--ink); }
.badges { display:flex; align-items:center; gap:7px; }
.status { display:inline-block; margin:0; padding:5px 9px; border-radius:20px; background:#eee; font-size:10px; text-transform:uppercase; letter-spacing:.08em; font-weight:600; }
.status.live { background:var(--lime); }
.status.snapshot { color:#28538a; background:#eef6ff; }
.facility-badge { display:inline-flex; align-items:center; gap:5px; padding:5px 9px; border:1px solid var(--line); border-radius:20px; color:#66726c; background:#f4f4ef; font-size:10px; text-transform:uppercase; letter-spacing:.08em; font-weight:600; }
.facility-badge::before { content:""; width:6px; height:6px; border-radius:50%; background:currentColor; }
.facility-badge.private { color:#8b493b; border-color:#d8b7ae; background:#fff3ef; }
.facility-badge.public { color:#276044; border-color:#a8cfba; background:#eef9f2; }
.facility-badge.range { color:#285b75; border-color:#aacddd; background:#eef8fc; }
.facility-badge.unknown { color:#6c675c; border-color:#d5cfbf; background:#f7f4eb; }
.featured-badge,.verified-badge { display:inline-block; padding:5px 9px; border-radius:20px; font-size:10px; text-transform:uppercase; letter-spacing:.08em; font-weight:600; }
.featured-badge { color:#3e5112; background:var(--lime); }
.verified-badge { color:#28538a; background:#eef6ff; border:1px solid #bad2ed; }
.editor-note { margin-top:10px !important; color:#405249 !important; font-size:13px !important; }
.course + .times,.course + .unavailable { margin-right:92px; }
dialog { width:min(680px, calc(100% - 30px)); max-height:90vh; padding:0; border:0; border-radius:14px; color:var(--ink); box-shadow:0 30px 90px #10291f55; }
dialog::backdrop { background:#14271fc4; backdrop-filter:blur(3px); }
#tee-times-dialog { width:min(960px,calc(100% - 30px)); }
.tee-times-modal { display:flex; flex-direction:column; max-height:90vh; padding:28px; background:white; }
.tee-times-modal .editor-heading { flex:0 0 auto; }
.tee-times-modal .editor-heading h2 { margin-bottom:5px; }
.tee-times-modal .editor-heading p:last-child { margin:0; color:#68736d; font-size:13px; }
.tee-times-modal > .times { grid-template-columns:repeat(auto-fill,minmax(145px,1fr)); min-height:0; overflow:auto; padding:2px 4px 4px 0; }
.editor-heading { display:flex; justify-content:space-between; align-items:start; margin-bottom:24px; }
.editor-heading .eyebrow { margin:0 0 5px; }
.editor-heading h2 { margin:0; font:36px var(--display-font); }
.icon-button { width:36px; height:36px; padding:0; border-radius:50%; background:#f0f1ec; font-size:24px; }
.distance { font:32px var(--display-font); text-align:center; }
.distance small { display:block; font:9px "DM Sans"; letter-spacing:.15em; }
.times { display:grid; grid-template-columns:repeat(auto-fill,minmax(155px,1fr)); gap:8px; padding-top:12px; }
.times a { min-width:0; padding:12px; border:1px solid var(--line); border-radius:6px; color:var(--ink); text-decoration:none; text-align:center; }
.times a:hover { border-color:var(--ink); background:var(--cream); }
.times span { display:block; color:#68736d; font-size:12px; margin-top:3px; }
.snapshot-note { display:flex; justify-content:space-between; gap:12px; margin:16px 92px 0 0; color:#68736d; font-size:12px; }
.snapshot-note strong { color:var(--ink); }
.unavailable { display:flex; justify-content:space-between; margin-top:20px; padding-top:15px; border-top:1px solid #eee; color:#7a817d; font-size:13px; }
.unavailable a { color:var(--ink); font-weight:600; }
.loading,.error { text-align:center; padding:60px; }
.error { color:#a33; }
.no-results { margin-top:32px; padding:54px 24px; border:1px solid var(--line); border-radius:12px; background:white; text-align:center; }
.no-results strong,.no-results span { display:block; }
.no-results strong { font:30px var(--display-font); }
.no-results span { margin-top:8px; color:#68736d; font-size:14px; }
.site-footer { border-top:1px solid #d3d4c8; }
.site-footer > div { width:min(1120px,calc(100% - 40px)); margin:0 auto; padding:28px 0 36px; display:flex; align-items:center; justify-content:space-between; gap:20px; color:#68736d; font-size:13px; }
.site-footer nav { display:flex; gap:22px; }
.site-footer a { color:var(--ink); font-weight:600; text-decoration:none; }
.site-footer a:hover { text-decoration:underline; text-underline-offset:3px; }
.legal-page { width:min(780px,calc(100% - 40px)); }
.legal-page h1 { margin:30px 0 42px; font-size:clamp(58px,10vw,104px); }
.back-link { color:var(--ink); font-size:13px; font-weight:600; text-decoration:none; }
.legal-copy { font-size:16px; line-height:1.75; }
.legal-copy h2 { margin:34px 0 8px; font:30px var(--display-font); }
.legal-copy p { color:#56665f; }
.legal-copy a { color:var(--ink); font-weight:600; }
.catalog-page { width:min(1120px,calc(100% - 40px)); }
.catalog-header { display:block; margin-bottom:42px; }
.catalog-header h1 { max-width:850px; margin:30px 0 18px; font-size:clamp(54px,8vw,94px); }
.catalog-header > p { max-width:680px; color:#56665f; font-size:18px; line-height:1.6; }
.catalog-summary { margin-bottom:16px; color:#63736c; font-size:14px; }
.catalog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.catalog-card { min-width:0; display:flex; flex-direction:column; border:1px solid var(--line); border-radius:12px !important; }
.catalog-card h2 { margin:0 0 8px; font:26px var(--display-font); }
.catalog-card p { margin:0; color:#68736d; font-size:13px; line-height:1.5; }
.catalog-card .course-address { display:inline-block; margin-top:5px; }
.catalog-website { align-self:flex-start; margin-top:auto; padding-top:22px; color:var(--ink); font-size:12px; font-weight:600; }
.unavailable-site { color:#8a918d; }
.loading-game { margin:54px auto 0; width:min(760px,100%); border:1px solid #bdc8b8; border-radius:14px; overflow:hidden; background:#fbfcf6; box-shadow:0 18px 50px #17382b0d; }
.loading-game-copy { min-height:76px; padding:16px 20px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:14px; border-bottom:1px solid #dbe2d6; }
.loading-game-copy strong,.loading-game-copy span { display:block; }
.loading-game-copy strong { font:24px var(--display-font); }
.loading-game-copy div span { margin-top:2px; color:#68766f; font-size:12px; }
.loading-score { font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:#4f7347; }
.loading-spinner { width:25px; height:25px; border:3px solid #dbe7ae; border-top-color:var(--ink); border-radius:50%; animation:loading-spin .8s linear infinite; }
.golf-runner { position:relative; height:190px; overflow:hidden; outline:none; cursor:pointer; user-select:none; touch-action:manipulation; background:linear-gradient(#edf8f3 0 66%,#dafa79 66% 100%); }
.golf-runner:focus-visible { box-shadow:inset 0 0 0 3px var(--ink); }
.runner-sky i { position:absolute; width:58px; height:15px; top:34px; left:24%; border-radius:50px; background:#fff; opacity:.85; }
.runner-sky i::before,.runner-sky i::after { content:""; position:absolute; border-radius:50%; background:inherit; }
.runner-sky i::before { width:23px; height:23px; left:10px; bottom:3px; }
.runner-sky i::after { width:31px; height:31px; right:7px; bottom:2px; }
.runner-sky i + i { width:42px; top:61px; left:68%; opacity:.58; transform:scale(.7); }
.runner-ground { position:absolute; z-index:2; left:0; right:0; bottom:35px; height:3px; background:var(--ink); }
.runner-ground::after { content:""; position:absolute; left:0; right:0; top:9px; height:1px; background:repeating-linear-gradient(90deg,#5f864f 0 18px,transparent 18px 30px); }
.runner-ball { position:absolute; z-index:4; left:min(86px,18%); bottom:39px; width:30px; height:30px; border:2px solid var(--ink); border-radius:50%; background-color:#fff; background-image:radial-gradient(circle at 8px 8px,#bdc7c0 0 1.3px,transparent 1.8px),radial-gradient(circle at 20px 11px,#bdc7c0 0 1.3px,transparent 1.8px),radial-gradient(circle at 13px 21px,#bdc7c0 0 1.3px,transparent 1.8px); will-change:transform; }
.runner-ball::after { content:""; position:absolute; left:11px; top:30px; width:8px; height:5px; border-radius:50%; background:#17382b35; filter:blur(2px); }
.runner-hazard { position:absolute; z-index:3; left:0; bottom:32px; width:54px; height:17px; border:2px solid var(--ink); border-radius:50%; background:#ead8a1; will-change:transform; }
.runner-hazard::before,.runner-hazard::after { content:""; position:absolute; top:3px; width:5px; height:5px; border-radius:50%; background:#c7aa67; }
.runner-hazard::before { left:12px; box-shadow:14px 4px #c7aa67,27px -1px #c7aa67; }
.runner-flag { position:absolute; z-index:1; right:40px; bottom:38px; width:3px; height:73px; background:var(--ink); }
.runner-flag i { position:absolute; left:3px; top:0; width:36px; height:24px; background:#4f7347; clip-path:polygon(0 0,100% 22%,0 100%); }
.runner-flag::after { content:""; position:absolute; width:29px; height:8px; left:-13px; bottom:-5px; border:2px solid var(--ink); border-radius:50%; background:#b9dc65; }
.runner-prompt { position:absolute; z-index:5; left:0; right:0; bottom:5px; margin:0; text-align:center; color:#456056; font-size:11px; font-weight:600; letter-spacing:.04em; }
kbd { padding:2px 6px; border:1px solid #8da095; border-bottom-width:2px; border-radius:4px; background:white; color:var(--ink); font:10px "DM Sans",sans-serif; text-transform:uppercase; }
@keyframes loading-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce) { .loading-spinner { animation-duration:1.8s; } }
@media (max-width:980px) { .course-grid{grid-template-columns:1fr}.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:760px) { main{padding:35px 0} header{display:block}.header-top{margin-bottom:30px}.hero-title{display:block;white-space:normal}.hero-title span,.hero-title em{display:block}.intro{margin:30px auto 0}.search-presets{justify-content:flex-start;flex-wrap:wrap}.search-presets span{width:100%;margin-bottom:1px}form{grid-template-columns:1fr 1fr}form>button{min-height:62px;grid-column:1/-1}#summary{align-items:flex-end}.summary-actions{display:block;text-align:right}.summary-actions span{display:block;margin-bottom:6px}.site-footer>div{align-items:flex-start;flex-direction:column-reverse}.catalog-grid{grid-template-columns:1fr} }
@media (max-width:560px) { .loading-game{margin-top:32px}.loading-game-copy{grid-template-columns:auto 1fr}.loading-score{grid-column:2}.golf-runner{height:165px}.loading-game-copy strong{font-size:20px} }
