/* Hallmark · macrostructure: Long Document (split hero) · tone: understated clubhouse-editorial · anchor hue: fairway green
 * nav: N1b (wordmark, links, button) · footer: Ft5 statement · theme: custom (paper oklch(97.5% 0.012 95), accent oklch(42% 0.09 155), Playfair Display + Inter)
 * Hallmark · pre-emit critique: P4 H4 E4 S4 R5 V4 */
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;overflow-x:clip}
html{scroll-behavior:smooth}
body{background:var(--color-paper);color:var(--color-ink);font:400 var(--text-base)/1.6 var(--font-body);-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--font-display);font-weight:500;font-style:normal;line-height:1.05;margin:0;overflow-wrap:anywhere;min-width:0}
h1{font-size:var(--text-display);letter-spacing:-0.015em}
h2{font-size:var(--text-display-s)}
h3{font-size:var(--text-2xl)}
p{margin:0}
a{color:inherit}
.wrap{max-width:1160px;margin:0 auto;padding:0 20px}
section{padding:var(--space-xl) 0}
@media(min-width:900px){section{padding:var(--space-2xl) 0}}
.lede{font-size:var(--text-lg);color:var(--color-ink-2);max-width:54ch}
.muted{color:var(--color-ink-2)}

/* nav */
header{border-bottom:1px solid var(--color-rule)}
.nav{display:flex;align-items:center;justify-content:space-between;height:68px;gap:var(--space-md)}
.brand{font-family:var(--font-display);font-size:1.35rem;letter-spacing:.01em;text-decoration:none;white-space:nowrap}
.brand b{font-weight:400;color:var(--color-accent)}
.nav nav{display:flex;align-items:center;gap:var(--space-lg)}
.nav nav a{text-decoration:none;font-size:var(--text-sm);white-space:nowrap}
.nav nav a.plain:hover{text-decoration:underline}
.short{display:none}@media(max-width:640px){.nav nav a.plain{display:none}.long{display:none}.short{display:inline}}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border-radius:var(--radius-sm);border:1px solid var(--color-accent);background:var(--color-accent);color:var(--color-accent-ink);font:500 var(--text-base)/1 var(--font-body);text-decoration:none;white-space:nowrap;cursor:pointer;transition:background var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}
.btn:hover{background:var(--color-ink);border-color:var(--color-ink)}
.btn:active{transform:translateY(1px)}
.btn[disabled]{opacity:.6;cursor:progress}
.btn.ghost{background:transparent;color:var(--color-ink);border-color:var(--color-ink)}
.btn.ghost:hover{background:var(--color-ink);color:var(--color-paper)}
.btn.sm{min-height:40px;padding:0 16px;font-size:var(--text-sm)}
:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}

/* hero */
.hero{padding-top:var(--space-xl)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-xl);align-items:center}
@media(min-width:900px){.hero-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr)}}
.hero h1{margin-bottom:var(--space-lg)}
.hero .lede{margin-bottom:var(--space-lg)}
.cta-row{display:flex;flex-wrap:wrap;gap:var(--space-md)}
.fine{font-size:var(--text-sm);color:var(--color-ink-2);margin-top:var(--space-md)}

/* steps */
.steps{list-style:none;padding:0;margin:var(--space-xl) 0 0;display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-lg)}
@media(min-width:800px){.steps{grid-template-columns:repeat(3,minmax(0,1fr))}}
.steps li{border-top:2px solid var(--color-ink);padding-top:var(--space-md)}
.steps h3{margin-bottom:var(--space-sm)}
.steps .n{font-family:var(--font-display);font-size:var(--text-lg);color:var(--color-accent)}

/* split sections */
.split{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-xl);align-items:center}
@media(min-width:900px){.split{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.split h2{margin-bottom:var(--space-md)}
.list{list-style:none;padding:0;margin:var(--space-lg) 0 0;display:grid;gap:var(--space-md)}
.list li{padding-left:24px;position:relative}
.list li::before{content:"";position:absolute;left:0;top:.7em;width:12px;height:2px;background:var(--color-accent)}
.alt{background:var(--color-paper-2)}

/* promise */
.promise{background:var(--color-ink);color:var(--color-paper)}
.promise h2{font-size:var(--text-display);max-width:14ch}
.promise p{color:oklch(86% 0.02 110);max-width:56ch;margin-top:var(--space-lg);font-size:var(--text-lg)}
.nos{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-lg)}
.nos span{border:1px solid oklch(60% 0.03 160);padding:6px 14px;border-radius:99px;font-size:var(--text-sm)}

/* profiles */
.cards{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-md);margin-top:var(--space-xl)}
@media(min-width:800px){.cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
.card{background:var(--color-paper);border:1px solid var(--color-rule);border-radius:var(--radius-md);padding:var(--space-lg)}
.card .ph{width:56px;height:56px;border-radius:50%;background:var(--color-fairway);display:grid;place-items:center;font-family:var(--font-display);font-size:1.5rem;margin-bottom:var(--space-md)}
.card h3{font-size:1.5rem}
.card dl{margin:var(--space-md) 0 0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 12px;font-size:var(--text-sm)}
.card dt{color:var(--color-ink-2)}.card dd{margin:0}
.card .want{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--color-rule);font-size:var(--text-sm)}

/* forms */
form{display:grid;gap:var(--space-md)}
label{display:grid;gap:6px;font-size:var(--text-sm);font-weight:500}
input,select{font:inherit;min-height:48px;padding:0 14px;border:1px solid var(--color-ink-2);border-radius:var(--radius-sm);background:var(--color-paper);color:var(--color-ink);width:100%}
input:hover,select:hover{border-color:var(--color-ink)}
.two{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-md)}
@media(min-width:560px){.two{grid-template-columns:repeat(2,minmax(0,1fr))}}
.msg{min-height:1.5em;font-size:var(--text-sm)}
.msg.ok{color:var(--color-accent)}.msg.err{color:oklch(45% 0.18 25)}
.panel{background:var(--color-paper);border:1px solid var(--color-rule);border-radius:var(--radius-md);padding:var(--space-lg)}

/* faq */
details{border-top:1px solid var(--color-rule);padding:var(--space-md) 0}
details:last-of-type{border-bottom:1px solid var(--color-rule)}
summary{cursor:pointer;font-weight:500;list-style:none;display:flex;justify-content:space-between;gap:var(--space-md)}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-size:1.4rem;line-height:1}
details[open] summary::after{content:"\2212"}
details p{margin-top:var(--space-sm);color:var(--color-ink-2);max-width:62ch}

footer{background:var(--color-accent);color:var(--color-accent-ink);padding:var(--space-xl) 0 var(--space-lg)}
footer .big{font-family:var(--font-display);font-size:var(--text-display-s);max-width:18ch;line-height:1.05}
footer .links{display:flex;flex-wrap:wrap;gap:var(--space-lg);margin-top:var(--space-xl);font-size:var(--text-sm)}
footer a{white-space:nowrap}

.reveal{opacity:0;transform:translateY(12px);transition:opacity var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}.btn{transition:none}}

.wide{width:100%}
.panel .btn+.btn{margin-top:var(--space-sm)}
.or{display:flex;align-items:center;gap:12px;margin:var(--space-md) 0;color:var(--color-ink-2);font-size:var(--text-sm)}
.or::before,.or::after{content:"";flex:1;height:1px;background:var(--color-rule)}
.fine a{text-decoration:underline}
.doc{max-width:760px;padding:var(--space-xl) 20px}
.doc h1{font-size:var(--text-display-s);margin-bottom:var(--space-md)}
.doc h2{font-size:1.6rem;margin:var(--space-lg) 0 var(--space-sm)}
.doc p,.doc li{color:var(--color-ink-2);margin-bottom:var(--space-sm)}
.doc .draft{background:var(--color-sand);padding:12px 16px;border-radius:var(--radius-sm);color:var(--color-ink)}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:var(--color-paper);padding:8px 12px;z-index:9}
.checks{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
@media(min-width:560px){.checks{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ck{display:flex;align-items:center;gap:10px;font-weight:400}
.ck input{width:20px;min-height:20px;height:20px}
.linkbtn{background:none;border:0;padding:0;font:inherit;color:var(--color-ink);text-decoration:underline;cursor:pointer}
.mt{margin-top:16px}.mt-s{margin-top:12px}.mt-l{margin-top:24px}.mb{margin-bottom:32px}
.narrow{max-width:820px}.narrow-s{max-width:720px}.h1s{font-size:var(--text-display-s)}
.fs{border:0;padding:0;margin:0}.fs legend{font-size:var(--text-sm);font-weight:500;margin-bottom:8px;padding:0}

.rule-brass{width:56px;height:2px;background:var(--color-brass);border:0;margin:0 0 var(--space-md)}
.pledge{font-size:var(--text-sm);color:var(--color-ink-2)}
.ck-row{display:flex;gap:10px;align-items:flex-start;font-weight:400;font-size:var(--text-sm)}
.ck-row input{width:20px;min-height:20px;height:20px;margin-top:2px}
.icon{flex:none}
.steps .n{display:block;color:var(--color-brass);margin-bottom:8px}
.nos span{display:inline-flex;align-items:center;gap:8px}

/* ---- hero: Pebble Beach 7 ---- */
.proof{list-style:none;margin:var(--space-lg) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:12px 20px;font-size:var(--text-sm);color:var(--color-ink-2)}
.proof li{display:inline-flex;align-items:center;gap:8px}.proof .icon{color:var(--color-brass)}
.hole-card{margin:0;background:var(--color-paper);border:1px solid var(--color-rule);border-radius:16px;overflow:hidden;box-shadow:0 30px 60px -30px oklch(27% 0.008 150 / .45)}
.hole-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-end;padding:16px 20px 12px;flex-wrap:wrap}
.hole-head .eyebrow{font:600 .7rem var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--color-brass-text);margin:0 0 4px}
.hole-title{font-size:1.35rem;margin:0}
.hole-stats{display:flex;gap:6px}.hole-stats span{font-size:.75rem;padding:3px 10px;border:1px solid var(--color-rule);border-radius:99px;color:var(--color-ink-2);white-space:nowrap}
#holesvg{display:block;width:100%;height:auto;background:#dfe6d2}
#holesvg .rough{fill:#cfd9bd}#holesvg .lane{fill:#b9cf9d}#holesvg .tee{fill:#9cc083;stroke:#6f9a5c;stroke-width:1}
#holesvg .fringe{fill:#a9cd8f}#holesvg .green{stroke:#5d8f52;stroke-width:1}#holesvg .sand{fill:#efe2b6;stroke:#cdb982;stroke-width:1}
#holesvg .ring{stroke:var(--color-brass);stroke-width:1;stroke-dasharray:3 4;opacity:.75}
#holesvg .ringt,#holesvg .lab{font:600 10px var(--font-body);fill:#3f5a43}#holesvg .lab{fill:#2f4b3b;paint-order:stroke;stroke:#dfe6d2;stroke-width:3}
#holesvg .wave{fill:none;stroke:#ffffff55;stroke-width:1.4;stroke-linecap:round;animation:wave 4s ease-in-out infinite}
#holesvg .stick{stroke:#2b2d2c;stroke-width:1.5}#holesvg .flag{fill:#b23a2b;transform-origin:0 -30px;animation:flutter 1.6s ease-in-out infinite}#holesvg .cup{fill:#2b2d2c}
#holesvg .wind path{fill:none;stroke:#ffffffcc;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;animation:gust 2s ease-in-out infinite}
#holesvg .wind text{font:600 10px var(--font-body);fill:#fff;letter-spacing:.04em}
#holesvg .trail{fill:none;stroke:#fff;stroke-width:2;stroke-dasharray:2 5;stroke-linecap:round;filter:drop-shadow(0 0 2px #0006)}
#holesvg .ball{fill:#fff;stroke:#2b2d2c;stroke-width:.8}#holesvg .shadow{fill:#0000004d}
#holesvg .fxr{fill:none;stroke:#fff;stroke-width:2;transform-box:fill-box;transform-origin:center;animation:ripple 1.1s ease-out forwards}
#holesvg .fxr.water{stroke:#dff3ff}#holesvg .fxr.sand{stroke:#efe2b6}#holesvg .fxr.green{stroke:#fff}#holesvg .fxr.d2{animation-delay:.25s}
@keyframes ripple{from{transform:scale(1);opacity:.95}to{transform:scale(7);opacity:0}}
@keyframes wave{0%,100%{transform:translateX(0);opacity:.35}50%{transform:translateX(5px);opacity:.85}}
@keyframes flutter{0%,100%{transform:skewY(0)}50%{transform:skewY(7deg) scaleX(.9)}}
@keyframes gust{0%{opacity:.2;transform:translateX(-8px)}50%{opacity:1}100%{opacity:.2;transform:translateX(8px)}}
.hole-foot{display:flex;gap:16px;justify-content:space-between;align-items:center;padding:14px 20px 18px;flex-wrap:wrap;border-top:1px solid var(--color-rule)}
.hole-read{min-width:0;flex:1 1 260px}
.hole-read .club{margin:0 0 4px;font-size:.85rem;color:var(--color-ink-2);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.hole-read .club .icon{color:var(--color-brass)}.hole-read .dim{color:var(--color-ink-2)}
.hole-read .result{margin:0;font:500 1.05rem var(--font-display);color:var(--color-ink);min-height:1.5em}
.hole-read .result[data-kind=green]{color:var(--color-accent)}.hole-read .result[data-kind=water]{color:#23586a}.hole-read .result[data-kind=sand]{color:#8a6d1f}
@media(prefers-reduced-motion:reduce){#holesvg *{animation:none !important}}
.btn{gap:8px}
.holemap{width:100%;aspect-ratio:4/5;background:#1f3a2b}
.holemap[hidden],#holesvg[hidden]{display:none}
.hint{flex-basis:100%;margin:0;font-size:.8rem;color:var(--color-ink-2);display:flex;align-items:center;gap:8px}.hint .icon{color:var(--color-brass)}
/* map overlays */
.tag{font:600 11px var(--font-body);color:#fff;background:#1f3a2bd9;border:1px solid #ffffff55;border-radius:99px;padding:3px 9px;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;backdrop-filter:blur(2px)}
.tag-y{background:#0008;padding:2px 7px;font-size:10px}.tag-s{background:#8a6d1fd9}
.pinm{filter:drop-shadow(0 1px 2px #0007);transform:translate(11px,0)}
.reticle{font:700 11px var(--font-body);color:#fff;background:#b89a4aee;border:1.5px solid #fff;border-radius:99px;padding:3px 9px;transform:translate(0,50%);opacity:0;pointer-events:none;white-space:nowrap;box-shadow:0 2px 6px #0006}
.ball{width:11px;height:11px;background:url(/design/brand/golf-ball.svg?v=2) center/contain no-repeat;filter:drop-shadow(0 1px 2px #0009);transform:translate(0,50%);transition:opacity .2s}
.ball.sunk{opacity:0}
.shadow{width:9px;height:5px;border-radius:50%;background:#000;transform:translate(0,50%)}
.ripple{width:14px;height:14px;border-radius:50%;border:2px solid #fff;transform:translate(0,50%);animation:mapripple 1.3s ease-out forwards}
.ripple.water{border-color:#cfeeff}.ripple.sand{border-color:#efe2b6}.ripple.green{border-color:#9be38a}
@keyframes mapripple{from{transform:translate(0,50%) scale(1);opacity:1}to{transform:translate(0,50%) scale(6);opacity:0}}
.brand{display:inline-flex;align-items:center;gap:10px}.brand img{display:block}

.seg{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;background:var(--color-paper-2);border-radius:10px}
.seg label{text-align:center;cursor:pointer;border:0;background:transparent;padding:10px 12px;border-radius:8px;font:500 var(--text-sm) var(--font-body);color:var(--color-ink-2);cursor:pointer}
.seg label:has(input:checked){background:var(--color-paper);color:var(--color-ink);box-shadow:0 1px 3px oklch(27% 0.008 150 / .15)}
label[hidden]{display:none}
.next{list-style:none;margin:var(--space-lg) 0 0;padding:0;display:grid;gap:var(--space-md)}
.next li{display:flex;gap:14px;align-items:flex-start}
.next li>span{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;border:1px solid var(--color-brass);color:var(--color-brass-text);font:600 .8rem var(--font-body)}
.next li div{color:var(--color-ink-2)}.next li strong{color:var(--color-ink)}
.done h3{margin-bottom:var(--space-sm)}
/* Application form: radio-based track switch, inline errors */
.seg{border:0;margin:0}.seg legend{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.seg input{position:absolute;opacity:0;pointer-events:none}.seg label:has(input:focus-visible){outline:2px solid var(--color-accent);outline-offset:2px}
.seg label{display:block;min-height:44px;line-height:24px}
.err{display:block;min-height:1.2em;color:var(--color-danger);font-size:var(--text-sm)}
input[aria-invalid=true]{border-color:var(--color-danger)}
.btn,nav a,.links a,summary{min-height:44px}
.reqm{font-weight:400;color:var(--color-ink-2)}#appdone:focus{outline:2px solid var(--color-accent);outline-offset:4px}
.btn.sm{min-height:44px}
.footer-ball{position:relative;width:160px;height:160px;margin:0}
.footer-ball img{display:block;width:100%;height:100%;filter:drop-shadow(0 6px 10px oklch(20% 0.02 150 / .45))}
.footer-ball svg{position:absolute;left:50%;top:50%;width:60%;height:60%;transform:translate(-50%,-50%) scaleX(.9) rotate(-6deg);mix-blend-mode:multiply;filter:drop-shadow(0 .6px 0 rgb(255 255 255 / .55)) drop-shadow(0 -.5px 0 rgb(80 55 0 / .35));-webkit-mask-image:radial-gradient(circle at 50% 50%,#000 62%,rgb(0 0 0 / .78) 100%);mask-image:radial-gradient(circle at 50% 50%,#000 62%,rgb(0 0 0 / .78) 100%)}
.footer-ball .gloss{position:absolute;inset:0;border-radius:50%;pointer-events:none;background:radial-gradient(circle at 32% 24%,rgb(255 255 255 / .55),rgb(255 255 255 / 0) 38%)}
footer{padding-bottom:var(--space-xl)}.footer-ball{margin-bottom:0}
.foot-head{display:flex;align-items:center;gap:var(--space-lg);flex-wrap:wrap}.foot-head .big{margin:0}.footer-ball{flex:none}
.foot-head{flex-wrap:nowrap}@media(max-width:560px){.footer-ball{width:96px;height:96px}.foot-head{gap:var(--space-md)}}

/* ---- public SEO pages: about, faq, course and city guides ---- */
.doc{margin:0 auto}
.seo{max-width:880px;padding-top:var(--space-lg);padding-bottom:var(--space-xl)}
.seo section{padding:0}
.seo h1{font-size:var(--text-display-s);margin-bottom:var(--space-md)}
.seo h2{font-size:1.6rem;margin:var(--space-lg) 0 var(--space-sm)}
.seo h3{font-size:1.25rem;margin:var(--space-md) 0 4px}
.seo p{color:var(--color-ink-2);margin-bottom:var(--space-sm);max-width:68ch}
.seo .lede{color:var(--color-ink);margin-bottom:var(--space-md)}
.seo p a,.seo li a,.doc p a{color:var(--color-accent)}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:4px 8px;padding:0;margin:0 0 var(--space-md);font-size:var(--text-sm);color:var(--color-ink-2)}
.crumbs li+li::before{content:"/";margin-right:8px;color:var(--color-ink-2)}
.crumbs a{text-decoration:none}.crumbs a:hover{text-decoration:underline}
.facts{width:100%;border-collapse:collapse;margin:var(--space-sm) 0}
.facts th,.facts td{text-align:left;padding:10px 12px;border-top:1px solid var(--color-rule);vertical-align:top}
.facts th{width:9em;font-weight:500;color:var(--color-ink-2)}
.list-plain{list-style:none;padding:0;margin:var(--space-sm) 0}
.list-plain li{padding:10px 0;border-top:1px solid var(--color-rule)}
.meta{display:block;color:var(--color-ink-2);font-size:var(--text-sm)}
.grid-list{list-style:none;padding:0;margin:var(--space-sm) 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px 24px}
.grid-list li{padding:6px 0;border-top:1px solid var(--color-rule)}
.note{font-size:var(--text-sm);border-left:3px solid var(--color-brass);padding:4px 12px;margin:var(--space-md) 0}
.find{display:grid;gap:6px;margin:var(--space-md) 0}.find div{display:flex;gap:8px}.find input{flex:1;min-width:0}
.qa{border-top:1px solid var(--color-rule);padding:var(--space-sm) 0}
.links-row{font-size:var(--text-sm)}
