/* 그란폰도 캘린더 */
.gf-main{max-width:1320px;margin:0 auto}
.gf-hero h1{letter-spacing:-2px}
.gf-next{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px;align-items:stretch}
.gf-count{background:#fff;border:1px solid #eee5d8;border-radius:16px;padding:12px 18px;min-width:96px}
.gf-count b{display:block;font-size:28px;font-weight:900;letter-spacing:-1px;color:#2d2a25}.gf-count span{font-size:12px;color:#8f8474;font-weight:700}
.gf-count.dim b{color:#b3a894}
.gf-nextcard{flex:1;min-width:260px;text-align:left;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto auto;column-gap:14px;background:#3d3a34;color:#fff;border:0;border-radius:16px;padding:14px 20px;cursor:pointer;font-family:inherit}
.gf-nextcard small{grid-column:1;font-size:11px;letter-spacing:1px;color:#eac559;font-weight:800}
.gf-nextcard b{grid-column:1;font-size:18px;margin:3px 0}.gf-nextcard span{grid-column:1;font-size:12.5px;color:#d9d1c4}
.gf-nextcard em{grid-column:2;grid-row:1/4;align-self:center;font:900 30px Arial;font-style:normal;color:#eac559}
.gf-nextcard:hover{background:#2c2a26}
/* 월 막대 */
.gf-months{display:grid;grid-template-columns:repeat(12,1fr);gap:6px;margin:28px 0 18px}
.gf-months button{position:relative;border:1px solid #eee5d8;background:#fff;border-radius:12px;padding:10px 4px 8px;cursor:pointer;font-family:inherit;text-align:center}
.gf-months button b{display:block;font-size:13px;color:#2d2a25}.gf-months button span{font-size:11.5px;color:#9a8c77;font-weight:700}
.gf-months button.past{background:#f6f3ee;opacity:.6}.gf-months button:disabled{cursor:default;opacity:.35}
.gf-months button.now{border:2px solid #eac559;background:#fff8e4}.gf-months button i{position:absolute;top:-9px;left:50%;transform:translateX(-50%);font:800 9.5px inherit;font-style:normal;background:#eac559;border-radius:8px;padding:1px 6px;white-space:nowrap;color:#3d3a34}
.gf-months button:not(:disabled):hover{border-color:#d9c48a}
/* 필터 */
.gf-filters{display:grid;gap:8px;margin-bottom:10px}
.gf-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.gf-chips>span{font-size:12px;font-weight:800;color:#9a8c77;width:34px}
.gf-chips button{border:1px solid #e6dccd;background:#fff;border-radius:18px;padding:6px 12px;font:700 12.5px inherit;font-family:inherit;color:#6f6456;cursor:pointer}
.gf-chips button small{color:#b3a58c;font-weight:700}
.gf-chips button.on{background:#3d3a34;border-color:#3d3a34;color:#fff}.gf-chips button.on small{color:#eac559}
.gf-toggle{margin-left:auto;font-size:12.5px;font-weight:700;color:#6f6456;display:flex;gap:6px;align-items:center;cursor:pointer}
/* 섹션 */
.gf-sec{margin:34px 0 6px}.gf-sec h2 small{font-size:16px;color:#b08a2e;margin-left:6px}
.gf-mh{font-size:20px;letter-spacing:-.5px;margin:22px 0 12px;display:flex;align-items:baseline;gap:8px;border-bottom:2px solid #3d3a34;padding-bottom:8px}
.gf-mh small{font-size:12px;color:#9a8c77}
.gf-past .gf-mh{border-bottom-color:#d8cfc2;color:#8f8474}
.gf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:14px}
.gf-empty{color:#9a8c77;padding:20px 0}
/* 카드 */
.gf-card{display:grid;grid-template-columns:78px 1fr;text-align:left;background:#fff;border:1px solid #eee5d8;border-radius:18px;overflow:hidden;cursor:pointer;font-family:inherit;color:inherit;padding:0;transition:transform .15s,box-shadow .15s}
.gf-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px #6b5a3a1c}
.gf-date{background:#eac559;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px 4px;color:#3d3a34}
.gf-mo{font-size:12px;font-weight:800}.gf-day{font:900 34px/1 Arial;letter-spacing:-1px;margin:3px 0}.gf-wd{font-size:11px;font-weight:700}
.gf-tbd{font-size:20px}
.gf-body{padding:13px 16px 12px;min-width:0}
.gf-when{margin:0;font-size:12.5px;font-weight:800;color:#b08a2e;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.gf-dd{font:900 11.5px Arial;background:#3d3a34;color:#fff;border-radius:10px;padding:3px 8px}.gf-dd.hot{background:#d9482b}
.gf-card h3{font-size:17.5px;letter-spacing:-.5px;margin:4px 0 3px;line-height:1.3}
.gf-loc{font-size:12.5px;color:#8a7b67;margin:0 0 8px;font-weight:600}
.gf-courses{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:9px}
.gf-courses span{font-size:11.5px;background:#f6f1e8;border-radius:8px;padding:3px 8px;color:#5b5145}.gf-courses b{color:#2d2a25}
.gf-foot{margin:0;display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:12.5px;border-top:1px dashed #eee5d8;padding-top:8px}
.gf-fee{color:#6f6456}.gf-fee b{color:#2d2a25;font-size:13.5px}
.gf-reg{font-size:11px;font-weight:800;border-radius:8px;padding:2px 8px}
.gf-reg.open{background:#e3f4df;color:#2f7a2a}.gf-reg.soon{background:#fff1cf;color:#8a6a12}.gf-reg.closed{background:#f1ece5;color:#9a8c77}
.gf-type{margin-left:auto;font-size:11px;color:#b3a58c;font-weight:700}
/* 지난 대회: 흐리게 + 종료 */
.gf-card.past{opacity:.55;filter:grayscale(.75)}.gf-card.past:hover{opacity:.85;filter:none}
.gf-card.past .gf-date{background:#e2dcd2}
.gf-stamp{font-style:normal;font-size:11px;font-weight:900;color:#fff;background:#8f8474;border-radius:8px;padding:2px 8px;letter-spacing:1px}
.gf-card.cancel h3{text-decoration:line-through}
/* 팝업 */
.gfd h2{font-size:26px;letter-spacing:-.8px;margin:6px 0 4px}
.gf-when.big{font-size:15px}
.gfd h3{font-size:15px;margin:22px 0 8px}
.gfd-hl{background:#fff8e4;border:1px solid #f0dca6;border-radius:14px;padding:12px 16px;font-size:14px;line-height:1.75;color:#4e4436}
.gfd-warn{background:#fdeee9;border-radius:12px;padding:10px 14px;font-size:13px;color:#a2402a;font-weight:700}
.gfd-courses{width:100%;border-collapse:collapse;font-size:13.5px}
.gfd-courses th{font-size:11.5px;color:#9a8c77;text-align:left;border-bottom:2px solid #3d3a34;padding:7px 8px}
.gfd-courses td{border-bottom:1px solid #f0ebe3;padding:9px 8px}.gfd-courses td:nth-child(2){font-weight:900}
.gfd-kom{font-size:13px;color:#6f6456;margin:10px 0 0}
.gfd-actions{margin:20px 0 6px}.gfd-actions .source-link{display:inline-block;padding:12px 20px;border:1px solid #e1d7c8;border-radius:22px;font-weight:800;text-decoration:none;color:#2d2a25}
.gfd-actions .primary{background:#eac559;border-color:#eac559}
.gfd-src{font-size:11.5px;color:#a3957f;line-height:1.8}.gfd-src a{color:#8a7b67}
.gf-map{font-size:12px;color:#8a6a12;margin-left:6px}
@media(max-width:800px){.gf-months{grid-template-columns:repeat(6,1fr)}.gf-grid{grid-template-columns:1fr}.gf-toggle{margin-left:0}}
@media(max-width:480px){.gf-card{grid-template-columns:64px 1fr}.gf-day{font-size:28px}.gf-count{min-width:80px;padding:10px 12px}}
/* 메인 페이지 티저 */
.gf-teaser .gf-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}
.header nav a.gf-nav{color:#b08a2e;font-weight:800}
.gf-etc .gf-card{opacity:.6}.gf-etc .gf-date{background:#eee8de}
.gfd-info{margin:0}.gfd-info div{display:grid;grid-template-columns:110px 1fr;gap:14px;padding:10px 0;border-bottom:1px solid #f0ebe3;font-size:13.5px}.gfd-info dt{color:#8a8175;font-weight:700}.gfd-info dd{margin:0;line-height:1.6}
@media(max-width:600px){.gfd-info div{grid-template-columns:80px 1fr}.gfd-courses{font-size:12.5px}}
.gf-teaser{padding-top:56px;padding-bottom:30px}.gf-teaser .section-title{margin-bottom:22px}.gf-teaser .gf-grid{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:1000px){.gf-teaser .gf-grid{grid-template-columns:1fr}}

/* 타임라인: 위→아래로 시간이 흐른다. 같은 날은 한 줄 */
.gf-timeline{position:relative;padding-left:96px}
.gf-timeline::before{content:"";position:absolute;left:44px;top:6px;bottom:6px;width:3px;border-radius:2px;background:linear-gradient(#eac559,#e6dccd)}
.gf-row{position:relative;margin-bottom:34px}
.gf-row:last-child{margin-bottom:8px}
.gf-rail{position:absolute;left:-96px;top:0;width:78px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:1px;padding-top:4px}
.gf-dot{position:absolute;left:37px;top:-8px;width:17px;height:17px;border-radius:50%;background:#eac559;border:3px solid #fffdf9;box-shadow:0 0 0 2px #eac559}
.gf-rail b{margin-top:16px;font:900 30px/1 Arial;color:#2d2a25;background:#fffdf9;padding:2px 4px}.gf-rail b.tbd{font-size:16px}
.gf-rail>span:not(.gf-dot){font-size:11.5px;font-weight:800;color:#8a7b67;background:#fffdf9}
.gf-rail em{margin-top:4px;font:900 11px Arial;font-style:normal;background:#3d3a34;color:#fff;border-radius:9px;padding:3px 7px}.gf-rail em.hot{background:#d9482b}
.gf-row .gf-card{grid-template-columns:8px 1fr}
.gf-row .gf-date{padding:0}.gf-row .gf-date>*{display:none}
.gf-row.past .gf-dot{background:#cfc6b8;box-shadow:0 0 0 2px #cfc6b8}.gf-row.past .gf-rail b{color:#a89d8c}
.gf-past .gf-timeline::before{background:#e6dccd}
@media(max-width:600px){.gf-timeline{padding-left:64px}.gf-timeline::before{left:26px}.gf-rail{left:-64px;width:54px}.gf-dot{left:19px}.gf-rail b{font-size:24px}}
