
body.home, .grx-inline {
  
  --grx-paper:var(--paper); --grx-paper-2:var(--paper-2); --grx-card:var(--surface); --grx-ink:var(--ink); --grx-soft:var(--ink-soft); --grx-muted:var(--ink-soft);
  --grx-line:color-mix(in srgb, var(--line) 45%, var(--paper)); --grx-line-soft:color-mix(in srgb, var(--line) 25%, var(--paper));
  --grx-brand:var(--brand); --grx-brand-fg:#FFFFFF;
  --grx-cta-bg:var(--accent); --grx-cta-fg:var(--accent-ink); --grx-cta-hover:var(--accent-deep);
  --grx-free:#2F6B3A; --grx-free-bg:#DDEBDC; --grx-cond:#8A5300; --grx-cond-bg:#F5E6CC; --grx-paid:#7E2F1F; --grx-paid-bg:#F3DCD3;
  --grx-deep:var(--inverse-bg); --grx-deep-fg:var(--inverse-head); --grx-deep-soft:var(--inverse-muted);
  --grx-star:#30260E; --grx-shadow:0 1px 2px rgba(20,20,30,.06),0 8px 24px rgba(20,20,30,.08);
  --grx-pin-free:#2F6B3A; --grx-pin-cond:#9A5B00;
  --grx-maxw:1240px; --grx-gut:clamp(16px,4vw,40px);
  background:var(--grx-paper);
  font-size:17px;
}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) body.home, :root:not([data-theme="light"]) .grx-inline { --grx-brand-fg:#10181C; --grx-free:#7CCB88; --grx-free-bg:#1C3322; --grx-cond:#F0B85C; --grx-cond-bg:#3A2B12; --grx-paid:#F2A18C; --grx-paid-bg:#3B2019; --grx-shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.35); --grx-star:var(--gold); --grx-brand:var(--brand); } }
:root[data-theme="dark"] body.home, :root[data-theme="dark"] .grx-inline { --grx-brand-fg:#10181C; --grx-free:#7CCB88; --grx-free-bg:#1C3322; --grx-cond:#F0B85C; --grx-cond-bg:#3A2B12; --grx-paid:#F2A18C; --grx-paid-bg:#3B2019; --grx-shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.35); --grx-star:var(--gold); --grx-brand:var(--brand); }
body.home { overflow-x:hidden; }
.grx { color:var(--grx-ink); line-height:1.6; }

.grx a:not(.btn) { color:var(--grx-brand); text-underline-offset:3px; }
.grx p { margin:0; max-width:none; }
.grx h1, .grx h2, .grx h3 { font-family:var(--display); font-weight:400; margin:0; color:var(--grx-ink); text-wrap:balance; }
.grx h2, .grx .rule-h2 { font-size:clamp(30px,4vw,46px); line-height:1.1; letter-spacing:.005em; border:0; padding:0; margin:0; }
.grx h3 { font-size:22px; line-height:1.2; letter-spacing:.01em; }
.grx-wrap { max-width:var(--grx-maxw); margin:0 auto; padding:0 var(--grx-gut); }
.grx-sec { padding:clamp(56px,8vw,96px) 0; }
.grx-band { background:var(--grx-paper-2); }

.grx-sec > .grx-wrap { display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:32px; }
.grx-sec > .grx-wrap > * { grid-column:1 / -1; min-width:0; }
.grx-sec > .grx-wrap > h2 { grid-column:1; margin-bottom:36px; }
.grx-sec > .grx-wrap > h2:has(+ .grx-lede) { margin-bottom:0; }
.grx p.grx-lede { font-size:18px; color:var(--grx-soft); max-width:680px; }
.grx .grx-sec > .grx-wrap > p.grx-lede { grid-column:1; margin-top:12px; margin-bottom:36px; }
.grx-sec > .grx-wrap > .grx-side-link { grid-column:2; grid-row:1 / span 2; align-self:end; margin-bottom:36px; }
@media (max-width:760px) {
  .grx .grx-sec > .grx-wrap > p.grx-lede { grid-column:1 / -1; }
  .grx-sec > .grx-wrap > h2 { grid-column:1 / -1; }
  .grx .grx-sec > .grx-wrap > p.grx-lede:has(+ .grx-side-link) { margin-bottom:14px; }
  .grx-sec > .grx-wrap > .grx-side-link { grid-column:1 / -1; grid-row:auto; justify-self:start; }
}
.grx a.grx-side-link { font-weight:700; font-size:15px; white-space:nowrap; text-decoration:none; }
@media (max-width:760px) { .grx .grx-more-row a.grx-side-link { white-space:normal; } } 
.grx-side-link:hover { text-decoration:underline; }
.grx .num { font-variant-numeric:tabular-nums; }
.grx-sec[id], [id^="walk-"] { scroll-margin-top:80px; }

.grx-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; font-family:var(--display); font-weight:400; font-size:17px; letter-spacing:.03em; line-height:1; text-decoration:none; border-radius:999px; padding:13px 20px; min-height:46px; border:0; cursor:pointer; white-space:nowrap; }
.grx a.grx-btn-cta, .grx-btn-cta { background:var(--grx-cta-bg); color:var(--grx-cta-fg); }
.grx a.grx-btn-cta:hover, .grx-btn-cta:hover { background:var(--grx-cta-hover); color:var(--grx-cta-fg); }
.grx-via { font-size:13.5px; color:var(--grx-muted); text-align:center; }
.grx-reset { font:700 14px/1 var(--body); background:none; border:1.5px solid var(--grx-line); color:var(--grx-ink); border-radius:999px; padding:11px 16px; cursor:pointer; min-height:42px; }

.grx-proof { background:var(--grx-card); border-bottom:1px solid var(--grx-line-soft); }
.grx-proof ul { list-style:none; margin:0 auto; padding:18px var(--grx-gut); max-width:var(--grx-maxw); display:flex; flex-wrap:wrap; gap:10px 36px; font-size:15px; color:var(--grx-soft); }
.grx-proof strong { color:var(--grx-ink); font-weight:700; }

.grx-map-chips { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:18px; }
.grx-fchip { font:500 14px/1 var(--body); border:1px solid var(--grx-line); background:var(--grx-card); color:var(--grx-ink); border-radius:999px; padding:10px 14px; min-height:40px; cursor:pointer; display:inline-flex; gap:8px; align-items:center; }
.grx-fchip[aria-pressed="true"] { background:var(--grx-ink); color:var(--grx-paper); border-color:var(--grx-ink); }
.grx-sw { width:10px; height:10px; border-radius:50%; }
.grx-sw-free { background:var(--grx-pin-free); } .grx-sw-cond { background:var(--grx-pin-cond); }
.grx-map-grid { display:grid; grid-template-columns:minmax(0,45fr) minmax(0,55fr); gap:28px; align-items:start; }
.grx-map-panel { background:var(--grx-card); border:1px solid var(--grx-line); border-radius:16px; overflow:hidden; position:static; }
.grx-leaflet { width:100%; height:min(860px,calc(100vh - 130px)); min-height:600px; background:var(--grx-paper-2); }
.grx-map-note { font-size:14px; color:var(--grx-muted); padding:10px 14px; background:var(--grx-card); border-top:1px solid var(--grx-line); }
.grx-map-panel.tiles-failed .grx-leaflet { height:auto; min-height:0; }
.grx-map-panel.no-map .grx-leaflet { display:none; }

.grx-pin { width:30px; height:30px; border-radius:50%; display:grid; place-items:center; color:#fff; font:700 14px/1 var(--body); font-variant-numeric:tabular-nums; border:3px solid #fff; box-shadow:0 1px 4px rgba(0,0,0,.35); box-sizing:border-box; }
.grx-pin-free { background:var(--grx-pin-free); } .grx-pin-cond { background:var(--grx-pin-cond); }
.grx-pin b, .grx-pl-num b { font-weight:inherit; line-height:1; }
.grx-pin.hi { outline:3px solid var(--grx-ink); outline-offset:1px; transform:scale(1.18); }
.leaflet-div-icon.grx-pin-icon { background:none; border:0; }

.grx .leaflet-tile-pane { filter:saturate(.55) brightness(1.02) contrast(.96); }
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .grx .leaflet-tile-pane { filter:invert(1) hue-rotate(180deg) brightness(.92) contrast(.88) saturate(.5); } }
:root[data-theme="dark"] .grx .leaflet-tile-pane { filter:invert(1) hue-rotate(180deg) brightness(.92) contrast(.88) saturate(.5); }
.grx .leaflet-container { font-family:var(--body); }
.grx .leaflet-control-attribution { font-size:11px; color:var(--grx-ink); background:color-mix(in srgb, var(--grx-card) 88%, transparent); }
.grx .leaflet-control-attribution a { color:var(--grx-brand); }
.grx .leaflet-bar a { color:#1b1b1b; }
.grx .leaflet-popup-content { font:600 14px/1.4 var(--body); color:#1b1b1b; margin:10px 14px; }
.grx .leaflet-popup-content a { color:#1b1b1b; }

.grx-pin-list { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:0 28px; }
.grx-pl-item { display:grid; grid-template-columns:32px 1fr; gap:12px; padding:14px 0; border-top:1px solid var(--grx-line); outline-offset:2px; }
.grx-pl-item[hidden] { display:none; }
.grx-pl-item.hi .grx-pl-name { text-decoration:underline; text-decoration-thickness:2px; }
.grx .grx-pl-name a { color:inherit; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }
.grx-pl-num { width:30px; height:30px; border-radius:50%; display:grid; place-items:center; color:#fff; font:700 14px/1 var(--body); font-variant-numeric:tabular-nums; }
.grx-pl-free { background:var(--grx-pin-free); } .grx-pl-cond { background:var(--grx-pin-cond); }
.grx .grx-pl-name { display:block; margin:0; line-height:1.3; color:var(--grx-ink); font-family:var(--body); font-size:16px; font-weight:700; letter-spacing:0; }
.grx-pl-meta { font-size:13.5px; color:var(--grx-muted); margin-top:2px; }
.grx-pl-rule { font-size:15px; line-height:1.45; margin-top:4px; color:var(--grx-soft); }
.grx-pl-walk { display:inline-block; margin-top:6px; font-size:14px; font-weight:700; }
.grx-pl-more { display:none; }
@media (max-width:1060px) { .grx-pin-list { grid-template-columns:1fr; } }
@media (max-width:760px) {
  .grx-map-grid { grid-template-columns:1fr; } .grx-map-panel { position:static; }
  
  .grx-leaflet { height:min(76vh,600px); min-height:440px; }
  .grx-pin-list.folded .grx-pl-item:nth-child(n+7) { display:none; }
  .grx-pl-more { display:inline-flex; margin-top:14px; }
}

.grx-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.grx-wcard { background:var(--grx-card); border-radius:16px; overflow:hidden; display:flex; flex-direction:column; box-shadow:var(--grx-shadow); }
.grx-wcard img { object-fit:cover; width:100%; height:373px; }
.grx-wbody { padding:18px 20px 20px; display:flex; flex-direction:column; gap:8px; flex:1; }
.grx-wbody h3 { font-size:23px; }
.grx-wbody h3 a, .grx-strip h3 a { color:var(--grx-ink); text-decoration:none; }
.grx-wbody h3 a:hover, .grx-strip h3 a:hover { text-decoration:underline; }
.grx-wmeta { font-size:14px; color:var(--grx-muted); }
.grx-rate { font-size:15px; color:var(--grx-ink); font-variant-numeric:tabular-nums; }
.grx-st { color:var(--grx-star); }
.grx-tags { display:flex; flex-wrap:wrap; gap:6px; }
.grx-free-tag, .grx-cost-tag { display:inline-flex; font:700 13px/1 var(--body); color:var(--grx-free); background:var(--grx-free-bg); border-radius:999px; padding:7px 10px; }
.grx-cost-tag { color:var(--grx-cond); background:var(--grx-cond-bg); }
.grx-wfoot { margin-top:auto; padding-top:10px; display:flex; flex-direction:column; gap:6px; }
.grx-wfoot .grx-btn { align-self:stretch; }
.grx-more-row { margin-top:28px; display:flex; flex-wrap:wrap; gap:12px 24px; align-items:center; }
@media (max-width:980px) { .grx-cards { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:620px) { .grx-cards { grid-template-columns:1fr; } }

.grx-picker { display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:36px; align-items:start; }
.grx-pq { border:0; margin:0 0 22px; padding:0; min-width:0; }
.grx-pq legend { font-weight:700; font-size:16px; margin-bottom:10px; padding:0; }
.grx-opts { display:flex; flex-wrap:wrap; gap:8px; }
.grx-opt { font:500 14px/1.25 var(--body); text-align:left; border:1px solid var(--grx-line); background:var(--grx-card); color:var(--grx-ink); border-radius:999px; padding:10px 14px; min-height:40px; cursor:pointer; scroll-margin-top:110px; }
.grx-opt[aria-pressed="true"] { background:var(--grx-brand); color:var(--grx-brand-fg); border-color:var(--grx-brand); }
.grx-pres { background:var(--grx-card); border-radius:16px; box-shadow:var(--grx-shadow); overflow:hidden; }
.grx-psum { padding:16px 20px; font-weight:500; border-bottom:1px solid var(--grx-line-soft); }
.grx-prow { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:6px 18px; align-items:center; padding:14px 20px; border-bottom:1px solid var(--grx-line-soft); }
.grx-prow:last-child { border-bottom:0; }
.grx .grx-prow h3 { font-family:var(--body); font-size:16px; font-weight:700; letter-spacing:0; }
.grx-prow h3 a { color:var(--grx-ink); text-decoration:none; }
.grx-prow h3 a:hover { text-decoration:underline; }
.grx-prow .grx-wmeta { margin-top:2px; }
.grx-prow .grx-rate { font-size:14px; }
.grx-pcta { display:flex; flex-direction:column; gap:4px; align-items:stretch; }
.grx-prow .grx-btn { padding:10px 14px; font-size:15px; min-height:42px; }
.grx-prow .grx-via { font-size:12.5px; }
.grx-pmore summary { padding:14px 20px; font-weight:700; cursor:pointer; color:var(--grx-brand); border-top:1px solid var(--grx-line-soft); }
@media (max-width:860px) { .grx-picker { grid-template-columns:1fr; } }
@media (max-width:520px) { .grx-prow { grid-template-columns:1fr; } .grx-pcta { align-items:flex-start; } }

.grx-mus { display:grid; grid-template-columns:minmax(0,4fr) minmax(0,8fr); gap:24px; }
.grx-mus-free { background:var(--grx-deep); color:var(--grx-deep-fg); border-radius:16px; padding:26px; }
.grx .grx-mus-free h3 { color:var(--grx-deep-fg); font-size:28px; }
.grx-mus-free p { color:var(--grx-deep-soft); margin-top:10px; font-size:15.5px; }
.grx-mus-free ul { list-style:none; padding:0; margin:18px 0 0; display:grid; gap:14px; }
.grx-mus-free li { border-top:1px solid rgba(255,255,255,.18); padding-top:14px; }
.grx-mus-free li strong { display:block; font-size:17px; color:var(--grx-deep-fg); }
.grx-mus-free li span { font-size:15px; color:var(--grx-deep-soft); }
.grx-mgrid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.grx-mc { background:var(--grx-card); border-radius:14px; padding:16px 18px; border:1px solid var(--grx-line-soft); }
.grx .grx-mc h3, .grx .grx-mc-t { color:var(--grx-ink); margin:0; line-height:1.3; font-family:var(--body); font-size:16.5px; font-weight:700; letter-spacing:0; }
.grx-who { display:inline-block; font:700 12.5px/1.2 var(--body); color:var(--grx-cond); background:var(--grx-cond-bg); border-radius:6px; padding:5px 8px; margin-top:8px; }
.grx-who.all { color:var(--grx-free); background:var(--grx-free-bg); }
.grx-mc p { font-size:15px; line-height:1.45; color:var(--grx-soft); margin-top:8px; }
.grx-fold-more { display:none; }
.grx-strip { margin-top:24px; display:flex; gap:18px; align-items:center; background:var(--grx-card); border-radius:16px; padding:14px; box-shadow:var(--grx-shadow); }
.grx-strip img { width:120px; height:84px; object-fit:cover; border-radius:10px; flex:none; }
.grx-s-t { flex:1; min-width:0; }
.grx-strip h3 { font-size:21px; }
.grx-s-t .grx-via { text-align:left; margin-top:2px; }
@media (max-width:900px) { .grx-mus { grid-template-columns:1fr; } }
@media (max-width:760px) {
  .grx-mgrid.folded .grx-mc:nth-child(n+5) { display:none; }
  .grx-fold-more { display:inline-flex; justify-self:start; align-self:start; }
}
@media (max-width:560px) { .grx-mgrid { grid-template-columns:1fr; } .grx-strip { flex-wrap:wrap; } .grx-strip img { width:100%; height:150px; } .grx-strip .grx-btn { width:100%; } }

.grx .table-scroll { overflow-x:auto; -webkit-overflow-scrolling:touch; background:var(--grx-card); border-radius:16px; box-shadow:var(--grx-shadow); border:0; margin:0; }
table.grx-isfree { width:100%; border-collapse:collapse; min-width:720px; font-size:15px; margin:0; border:0; background:transparent; }
.grx .table-scroll .grx-isfree th, .grx .table-scroll .grx-isfree td { padding:13px 16px; text-align:left; vertical-align:top; border:0; border-bottom:1px solid var(--grx-line-soft); background:transparent; color:var(--grx-ink); }
.grx .table-scroll .grx-isfree thead th { font-family:var(--body); font-size:13px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--grx-soft); background:var(--grx-paper-2); white-space:nowrap; }
.grx-isfree td.grx-place { font-weight:700; color:var(--grx-ink); min-width:150px; max-width:240px; } 
.grx .table-scroll .grx-isfree td.num, .grx .table-scroll .grx-isfree th.num { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.grx-isfree td.grx-c { color:var(--grx-soft); min-width:250px; }
.grx .table-scroll table.grx-isfree tbody tr > td, .grx .table-scroll table.grx-isfree tbody tr > th { background:transparent; }
.grx .table-scroll table.grx-isfree tbody tr:last-child > td { border-bottom:0; }
.grx-isfree tbody tr:last-child > * { border-bottom:0; }
.grx-vd { display:inline-flex; align-items:center; gap:6px; font-weight:700; font-size:13.5px; white-space:nowrap; border-radius:6px; padding:4px 8px; }
.grx-vd::before { content:""; width:8px; height:8px; border-radius:50%; border:2px solid currentColor; }
.grx-vd-free { color:var(--grx-free); background:var(--grx-free-bg); } .grx-vd-free::before { background:currentColor; }
.grx-vd-cond { color:var(--grx-cond); background:var(--grx-cond-bg); } .grx-vd-cond::before { background:linear-gradient(90deg,currentColor 50%,transparent 50%); }
.grx-vd-paid { color:var(--grx-paid); background:var(--grx-paid-bg); }
.grx-tnote { font-size:14px; color:var(--grx-muted); margin-top:12px; }

.grx-seas { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.grx-scol { background:var(--grx-card); border-radius:16px; padding:22px; border:1px solid var(--grx-line-soft); }
.grx .grx-scol h3 { font-size:26px; margin-bottom:10px; }
.grx-scol ul { list-style:none; padding:0; margin:0; }
.grx-scol li { padding:10px 0; border-top:1px solid var(--grx-line-soft); font-size:15px; line-height:1.45; color:var(--grx-soft); }
.grx-scol li strong { display:block; color:var(--grx-ink); font-size:15.5px; }
@media (max-width:900px) { .grx-seas { grid-template-columns:1fr; } }

.grx-tgrid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.grx-tq { background:var(--grx-card); border-radius:16px; padding:22px; display:flex; flex-direction:column; gap:14px; margin:0; }
.grx-tq blockquote { margin:0; padding:0; border:0; font-family:var(--body); font-size:17.5px; line-height:1.45; font-weight:500; font-style:normal; color:var(--grx-ink); }
.grx-tq figcaption { margin-top:auto; font-size:14px; color:var(--grx-muted); }
.grx-tq figcaption strong { color:var(--grx-ink); display:block; font-size:15px; }
.grx-tq figcaption a { font-weight:700; }
.grx-tstars { color:var(--grx-star); letter-spacing:2px; font-size:15px; }
.grx-tgrid + .grx-fold-more { margin-top:16px; }
@media (max-width:1060px) { .grx-tgrid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:620px) { .grx-tgrid { grid-template-columns:1fr; } }
@media (max-width:760px) { .grx-tgrid.folded .grx-tq:nth-child(n+3) { display:none; } }

.grx-faq details { border:0; border-top:1px solid var(--grx-line); border-radius:0; background:transparent; padding:0; margin:0; }
.grx-faq details:last-child { border-bottom:1px solid var(--grx-line); }
.grx-faq summary { cursor:pointer; list-style:none; padding:18px 36px 18px 0; font-family:var(--body); font-weight:700; font-size:17.5px; position:relative; line-height:1.4; color:var(--grx-ink); }
.grx-faq summary::-webkit-details-marker { display:none; }
.grx-faq summary::after { content:"+"; position:absolute; right:4px; top:14px; font-size:26px; font-weight:500; color:var(--grx-brand); float:none; }
.grx-faq details[open] summary::after { content:"\2212"; }
.grx-faq details p { padding:0 0 20px; color:var(--grx-soft); }

@media (prefers-reduced-motion:reduce) { .grx-pin.hi { transform:none; } }

.grx-wlist { display:grid; gap:14px; max-width:880px; }
.grx-wlist .grx-wcard { flex-direction:row; }
.grx-wlist .grx-wcard img { width:260px; height:auto; min-height:190px; flex:none; }
@media (max-width:620px) { .grx-wlist .grx-wcard { flex-direction:column; } .grx-wlist .grx-wcard img { width:100%; height:220px; min-height:0; } }

.grx-xsec { border-top:1px solid var(--grx-line); }
.grx-xsec:last-child { border-bottom:1px solid var(--grx-line); }
.grx-xd > summary { list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 0; }
.grx-xd > summary::-webkit-details-marker { display:none; }
.grx .grx-xd > summary h2.rule-h2 { font-size:clamp(21px,2.4vw,28px); line-height:1.2; margin:0; }
.grx-xd > summary::after { content:"+"; flex:none; font-size:28px; line-height:1; color:var(--grx-brand); }
.grx-xd[open] > summary::after { content:"\2212"; }
.grx-xbody { padding:0 0 28px; }
.grx-xbody > * + * { margin-top:14px; }
.grx .grx-xbody p { max-width:72ch; }

.grx-inline { margin:28px 0; }
.grx-inline .grx-map-grid { grid-template-columns:minmax(0,1fr); gap:18px; }
.grx-inline .grx-map-panel { position:static; }
.grx-inline .grx-leaflet { height:min(520px,70vh); min-height:360px; }

body.home, .grx-inline { --grx-maxw:1240px; --grx-serif-d:var(--grx-serif); }
.grx h1, .grx h2, .grx h3 { font-family:var(--grx-serif); font-weight:700; letter-spacing:-.005em; }
.grx h2, .grx .rule-h2 { font-size:clamp(28px,3.6vw,42px); line-height:1.12; }
.grx h3 { font-size:21px; line-height:1.25; }
.grx-band { position:relative; background:var(--grx-paper-2); }
.grx-band::before, .grx-band::after { content:""; position:absolute; left:0; right:0; height:12px; background:var(--grx-brand); opacity:.32; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='12'%3E%3Cpath d='M0 6L6 0 12 6 6 12zM12 6L18 0 24 6 18 12z'/%3E%3C/svg%3E") repeat-x; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='12'%3E%3Cpath d='M0 6L6 0 12 6 6 12zM12 6L18 0 24 6 18 12z'/%3E%3C/svg%3E") repeat-x; }
.grx-band::before { top:0; } .grx-band::after { bottom:0; }
.grx-sec > .grx-wrap > h2::before { content:""; display:inline-block; width:.62em; height:.62em; margin-right:.38em; background:var(--grx-brand); -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0l3.2 8.8L24 12l-8.8 3.2L12 24l-3.2-8.8L0 12l8.8-3.2z'/%3E%3C/svg%3E") center/contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0l3.2 8.8L24 12l-8.8 3.2L12 24l-3.2-8.8L0 12l8.8-3.2z'/%3E%3C/svg%3E") center/contain no-repeat; }

.grx-btn { border-radius:6px; border-bottom:3px solid var(--accent-deep); font-family:var(--body); font-weight:700; letter-spacing:.01em; }
.grx a.grx-btn-cta, .grx-btn-cta { border-bottom-color:var(--accent-deep); }

.grx-sec ul:not([class]) { list-style:none; padding:0; margin:14px 0; display:grid; gap:10px; }
.grx-sec ul:not([class]) > li { position:relative; padding-left:26px; }
.grx-sec ul:not([class]) > li::before { content:""; position:absolute; left:2px; top:.55em; width:12px; height:12px; background:var(--grx-brand); -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0l3.2 8.8L24 12l-8.8 3.2L12 24l-3.2-8.8L0 12l8.8-3.2z'/%3E%3C/svg%3E") center/contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0l3.2 8.8L24 12l-8.8 3.2L12 24l-3.2-8.8L0 12l8.8-3.2z'/%3E%3C/svg%3E") center/contain no-repeat; }
.grx-sec > .grx-wrap > p, .grx-sec > .grx-wrap > ul, .grx-sec > .grx-wrap > h3 { margin-top:16px; }
.grx-sec > .grx-wrap > h3 { margin-top:34px; }
.grx-sec > .grx-wrap > p + p { margin-top:14px; }

.grx-hero { position:relative; background:var(--grx-paper); color:var(--grx-ink); overflow:hidden;
  --sc-sk0:#4A3566; --sc-sk1:#B8527C; --sc-sk2:#F0966F; --sc-sk3:#FAD7A0; --sc-gl0:rgba(255,238,196,.95); --sc-gl1:rgba(255,200,140,0); --sc-hz0:rgba(246,196,170,0); --sc-hz1:rgba(206,128,128,.55);
  --sc-ridge:#A788B7; --sc-snow:#F7E6EE; --sc-cloud:rgba(255,236,226,.55); --sc-star:rgba(255,255,255,.55); --sc-sun:#FFF1C9; --sc-hill:#7A3A32; --sc-tree:#3F4A3B; --sc-wall:#C4673F; --sc-wallsh:#8E402F; --sc-win:#FFD27A;
  --hs-b:#E7B5B8; --hs-bs:#CC96A6; --hr-b:#A6544C; --hs-m:#F1CBC6; --hs-ms:#D9A3AF; --hr-m:#B65A44; --hs-f:#FBE6E0; --hs-fs:#E6BAC0; --hr-f:#C4633F; --sc-bell:#FBE3DC; --sc-bellsh:#E6BAC0; --sc-dark:#5A2A33; --sc-geran:#C8334A; --sc-wallf:#3A2330; --sc-cap:#5A3A48; --sc-rail:#2A1620; --sc-person:#2A1620; }
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .grx-hero { --sc-sk0:#120B1F; --sc-sk1:#2B1A44; --sc-sk2:#6B2E58; --sc-sk3:#B65A52; --sc-gl0:rgba(255,190,120,.5); --sc-gl1:rgba(255,160,100,0); --sc-hz0:rgba(120,60,70,0); --sc-hz1:rgba(60,30,50,.6); --sc-ridge:#3A2D55; --sc-snow:#B9A6D0; --sc-cloud:rgba(180,140,170,.25); --sc-star:rgba(255,255,255,.9); --sc-sun:#FFD79A; --sc-hill:#2B1519; --sc-tree:#16221B; --sc-wall:#8A4A38; --sc-wallsh:#5A2C26; --sc-win:#FFC35A; --hs-b:#5B4260; --hs-bs:#483350; --hr-b:#6B2E2E; --hs-m:#7C5A72; --hs-ms:#5E4560; --hr-m:#8A3A2E; --hs-f:#C79AA6; --hs-fs:#A87888; --hr-f:#9C4630; --sc-bell:#C79AA6; --sc-bellsh:#A87888; --sc-dark:#2A1620; --sc-wallf:#120B0F; --sc-cap:#2A1B24; --sc-rail:#0B0709; --sc-person:#0B0709; } }
:root[data-theme="dark"] .grx-hero { --sc-sk0:#120B1F; --sc-sk1:#2B1A44; --sc-sk2:#6B2E58; --sc-sk3:#B65A52; --sc-gl0:rgba(255,190,120,.5); --sc-gl1:rgba(255,160,100,0); --sc-hz0:rgba(120,60,70,0); --sc-hz1:rgba(60,30,50,.6); --sc-ridge:#3A2D55; --sc-snow:#B9A6D0; --sc-cloud:rgba(180,140,170,.25); --sc-star:rgba(255,255,255,.9); --sc-sun:#FFD79A; --sc-hill:#2B1519; --sc-tree:#16221B; --sc-wall:#8A4A38; --sc-wallsh:#5A2C26; --sc-win:#FFC35A; --hs-b:#5B4260; --hs-bs:#483350; --hr-b:#6B2E2E; --hs-m:#7C5A72; --hs-ms:#5E4560; --hr-m:#8A3A2E; --hs-f:#C79AA6; --hs-fs:#A87888; --hr-f:#9C4630; --sc-bell:#C79AA6; --sc-bellsh:#A87888; --sc-dark:#2A1620; --sc-wallf:#120B0F; --sc-cap:#2A1B24; --sc-rail:#0B0709; --sc-person:#0B0709; }
.grx-scenewrap { position:relative; height:clamp(240px,38vw,520px); background:var(--sc-sk0); }
.grx-scene { position:absolute; inset:0; width:100%; height:100%; display:block; }
.grx-scene .sc-sky { fill:url(#grxSky); } .grx-scene .sk0 { stop-color:var(--sc-sk0); } .grx-scene .sk1 { stop-color:var(--sc-sk1); } .grx-scene .sk2 { stop-color:var(--sc-sk2); } .grx-scene .sk3 { stop-color:var(--sc-sk3); }
.grx-scene .gl0 { stop-color:var(--sc-gl0); } .grx-scene .gl1 { stop-color:var(--sc-gl1); } .grx-scene .hz0 { stop-color:var(--sc-hz0); } .grx-scene .hz1 { stop-color:var(--sc-hz1); }
.grx-scene .sc-ridge { fill:var(--sc-ridge); } .grx-scene .sc-snow { fill:var(--sc-snow); } .grx-scene .sc-cloud { fill:var(--sc-cloud); } .grx-scene .sc-star { fill:var(--sc-star); } .grx-scene .sc-sun { fill:var(--sc-sun); }
.grx-scene .sc-hill { fill:var(--sc-hill); } .grx-scene .sc-tree { fill:var(--sc-tree); } .grx-scene .sc-wall { fill:var(--sc-wall); } .grx-scene .sc-wallsh { fill:var(--sc-wallsh); } .grx-scene .sc-win { fill:var(--sc-win); }
.grx-scene .hs-b { fill:var(--hs-b); } .grx-scene .hs-bs { fill:var(--hs-bs); } .grx-scene .hr-b { fill:var(--hr-b); } .grx-scene .hs-m { fill:var(--hs-m); } .grx-scene .hs-ms { fill:var(--hs-ms); } .grx-scene .hr-m { fill:var(--hr-m); } .grx-scene .hs-f { fill:var(--hs-f); } .grx-scene .hs-fs { fill:var(--hs-fs); } .grx-scene .hr-f { fill:var(--hr-f); }
.grx-scene .sc-bell { fill:var(--sc-bell); } .grx-scene .sc-bellsh { fill:var(--sc-bellsh); } .grx-scene .sc-dark { fill:var(--sc-dark); } .grx-scene .sc-geran { fill:var(--sc-geran); } .grx-scene .sc-wallf { fill:var(--sc-wallf); } .grx-scene .sc-cap { fill:var(--sc-cap); } .grx-scene .sc-rail { fill:var(--sc-rail); } .grx-scene .sc-person { fill:var(--sc-person); }
.grx-hero-in { position:relative; display:grid; grid-template-columns:minmax(0,1.45fr) minmax(0,1fr); gap:40px; align-items:start; padding-top:clamp(22px,3vw,40px); padding-bottom:clamp(40px,5vw,64px); }
.grx-hero h1 { font-size:clamp(34px,5vw,64px); line-height:1.06; color:var(--grx-ink); text-wrap:balance; }
.grx-hero .grx-hl { font-size:clamp(17px,1.5vw,20px); line-height:1.55; color:var(--grx-soft); max-width:none; margin-top:18px; }
.grx-chips { display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
.grx a.grx-chip { display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:0 16px; border:2px solid var(--grx-cta-bg); border-radius:6px; color:var(--grx-ink); text-decoration:none; font-weight:700; font-size:15px; background:transparent; }
.grx a.grx-chip::before { content:""; width:9px; height:9px; background:var(--grx-brand); transform:rotate(45deg); }
.grx a.grx-chip:hover { background:var(--grx-cta-bg); color:var(--grx-cta-fg); }
.grx-hero-box { background:var(--grx-cta-bg); color:var(--grx-cta-fg); border-radius:18px 18px 18px 4px; padding:22px 24px; box-shadow:none; border-bottom:5px solid var(--grx-cta-hover); }
.grx-hero-box .grx-t { font-family:var(--grx-serif); font-weight:700; font-size:20px; margin-bottom:12px; }
.grx-hero-box ul { list-style:none; margin:0; padding:0; display:grid; gap:9px; }
.grx-hero-box li { display:flex; gap:10px; align-items:baseline; font-size:15.5px; line-height:1.4; color:var(--grx-cta-fg); }
.grx-hero-box li * { color:inherit; }
.grx-hero-box a { color:inherit !important; text-decoration-thickness:1px; }
.grx-hero-box .grx-dot { background:var(--grx-cta-fg); }
.grx-hero-box .grx-muted { color:inherit; opacity:.88; }
@media (max-width:860px) { .grx-hero-in { grid-template-columns:1fr; gap:22px; } }

.grx-wcard { border:1px solid var(--grx-line); box-shadow:none; border-radius:18px; }
.grx-wcard img { border-radius:50% 50% 0 0 / 28% 28% 0 0; height:340px; }
.grx-proof { background:var(--grx-paper-2); }

.grx-fig { margin:26px 0; }
.grx-fig-arc, .grx-fig-hill, .grx-fig-route, .grx-fig-season { background:var(--grx-card); border:1px solid var(--grx-line-soft); border-radius:18px; padding:18px; }
.grx-fig svg.grx-svg { display:block; width:100%; max-width:720px; height:auto; margin:0 auto; overflow:visible; }
@media (max-width:640px) { .grx-fig-arc, .grx-fig-hill, .grx-fig-route, .grx-fig-season { padding:8px 0; border-left:0; border-right:0; border-radius:0; } }
.grx-svg text { fill:var(--grx-ink); font-family:var(--body); font-size:22px; }
.grx-svg .a-arc { fill:none; stroke:var(--grx-brand); stroke-width:3; stroke-dasharray:2 9; stroke-linecap:round; }
.grx-svg .a-ground { stroke:var(--line); stroke-width:2; }
.grx-svg .a-dot { fill:var(--grx-brand); } .grx-svg .a-dot.a2 { fill:var(--gold); } .grx-svg .a-dot.a3 { fill:var(--grx-cta-bg); }
.grx-svg .a-t { font-weight:700; } .grx-svg .a-s { fill:var(--grx-soft); }
.grx-daygrid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-top:26px; }
.grx-daycard { background:var(--grx-card); border:1px solid var(--grx-line-soft); border-radius:6px 26px 6px 26px; padding:22px 22px 24px; }
.grx-daycard .grx-ico { color:var(--grx-brand); margin-bottom:10px; display:block; }
.grx-daycard h3 { margin:0 0 8px; }
.grx-daycard p { font-size:15.5px; line-height:1.55; color:var(--grx-soft); max-width:none; }
@media (max-width:1000px) { .grx-daygrid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:640px) { .grx-daygrid { grid-template-columns:1fr; } }

.grx-fig { --grx-t-free:#CFE5DA; --grx-t-paid:#F4D2CA; --grx-t-win:#D3DEF4; --grx-t-sum:#F6E3A6; --grx-t-sub:#FDF1F6; --grx-t-wk:#F6EBC0; --grx-t-hill:#EFD0DF; --grx-t-dot:#2150A8; --grx-t-dotink:#FFFFFF; }
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .grx-fig { --grx-t-free:#1F3A31; --grx-t-paid:#4A2A26; --grx-t-win:#25345A; --grx-t-sum:#4A3C12; --grx-t-sub:#271B22; --grx-t-wk:#3F3000; --grx-t-hill:#271B22; --grx-t-dot:#86A9F4; --grx-t-dotink:#0B1A3A; } }
:root[data-theme="dark"] .grx-fig { --grx-t-free:#1F3A31; --grx-t-paid:#4A2A26; --grx-t-win:#25345A; --grx-t-sum:#4A3C12; --grx-t-sub:#271B22; --grx-t-wk:#3F3000; --grx-t-hill:#271B22; --grx-t-dot:#86A9F4; --grx-t-dotink:#0B1A3A; }
.grx-svg .h-hill { fill:var(--grx-t-hill); stroke:var(--line); stroke-width:2; }
.grx-svg .h-free { fill:var(--grx-t-free); stroke:var(--sea); stroke-width:2; }
.grx-svg .h-sub { fill:var(--grx-t-sub); stroke:var(--sea); stroke-width:1.5; }
.grx-svg .h-wk { fill:var(--grx-t-wk); stroke:var(--gold); stroke-width:2; }
.grx-svg .h-paid { fill:var(--grx-t-paid); stroke:var(--brand); stroke-width:2; }
.grx-svg .h-paidzone { fill:none; stroke:var(--brand); stroke-width:2; stroke-dasharray:7 7; }
.grx-svg .h-route { stroke:var(--grx-brand); stroke-width:3; stroke-dasharray:3 8; stroke-linecap:round; } .grx-svg .h-dot { fill:var(--grx-brand); }
.grx-svg .h-b { font-weight:700; }
.grx-fgrid { list-style:none; margin:20px 0 !important; padding:0 !important; display:flex; flex-wrap:wrap; gap:14px !important; }
.grx-fgrid > li { flex:1 1 min(100%,260px); }
.grx-sec ul.grx-fgrid > li.grx-fcard { padding:18px 20px; background:var(--grx-card); border:1px solid var(--grx-line-soft); border-left:6px solid var(--sea); border-radius:4px 16px 16px 4px; display:flex; flex-direction:column; gap:6px; }
.grx-sec ul.grx-fgrid > li.grx-fcard.wk { border-left-color:var(--gold); }
.grx-sec ul.grx-fgrid > li.grx-fcard::before { display:none; }
.grx-fcard strong { font-family:var(--grx-serif); font-size:18px; color:var(--grx-ink); } .grx-fcard span { font-size:15px; line-height:1.5; color:var(--grx-soft); }
.grx-facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin:26px 0; }
.grx-stat { background:var(--grx-deep); color:var(--grx-deep-fg); border-radius:16px; padding:18px 20px; display:flex; flex-direction:column; gap:6px; }
.grx-stat b { font-family:var(--grx-serif); font-size:clamp(24px,2.6vw,34px); line-height:1.1; color:var(--grx-deep-fg); }
.grx-stat span { font-size:14.5px; line-height:1.4; color:var(--grx-deep-soft); }
@media (max-width:900px) { .grx-facts { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.grx-banner { margin:28px 0; }
.grx-banner img { display:block; width:100%; height:auto; aspect-ratio:21/8; object-fit:cover; border-radius:22px 22px 4px 22px; }
@media (max-width:760px) { .grx-banner img { aspect-ratio:3/2; } }

.grx-svg .r-line { fill:none; stroke:var(--grx-brand); stroke-width:4; stroke-dasharray:2 10; stroke-linecap:round; }
.grx-svg .r-dot { fill:var(--grx-t-dot); } .grx-svg .r-n { fill:var(--grx-t-dotink); font-weight:700; } .grx-svg .r-sun { fill:var(--gold); opacity:.22; } .grx-svg .r-sun2 { fill:var(--gold); opacity:.5; }
.grx-svg .r-t { font-weight:700; }
.grx-svg .s-m { font-weight:700; fill:var(--grx-soft); } .grx-svg .s-w { fill:var(--grx-t-win); } .grx-svg .s-s { fill:var(--grx-t-sum); }
.grx-svg .s-t { font-size:22px; } .grx-svg .s-b { font-weight:700; } .grx-svg .s-l { stroke:var(--line); stroke-width:2; } .grx-svg .s-d { fill:var(--grx-brand); } .grx-svg .s-ground { stroke:var(--sea); stroke-width:4; stroke-linecap:round; }
.grx-flow { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; counter-reset:f; }
.grx-flow li { position:relative; background:var(--grx-card); border:1px solid var(--grx-line-soft); border-radius:16px; padding:18px 16px; display:flex; flex-direction:column; gap:6px; }
.grx-flow li::before { counter-increment:f; content:counter(f); position:absolute; top:12px; right:14px; font-family:var(--grx-serif); font-weight:700; font-size:22px; color:var(--grx-brand); }
.grx-flow .grx-ico { color:var(--grx-brand); } .grx-flow b { font-family:var(--grx-serif); font-size:18px; } .grx-flow span { font-size:14.5px; color:var(--grx-soft); line-height:1.4; }
@media (max-width:900px) { .grx-flow { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.grx-bars { list-style:none; margin:0; padding:20px; background:var(--grx-card); border:1px solid var(--grx-line-soft); border-radius:18px; display:grid; gap:10px; }
.grx-bars li { display:grid; grid-template-columns:minmax(120px,230px) minmax(0,1fr) 34px; align-items:center; gap:14px; font-size:15.5px; }
.grx-bars .mb-b { height:16px; background:var(--grx-paper-2); border-radius:8px; overflow:hidden; display:block; } .grx-bars .mb-b i { display:block; height:100%; background:var(--grx-cta-bg); border-radius:8px; }
.grx-bars .mb-n { text-align:right; font-variant-numeric:tabular-nums; }
@media (max-width:560px) { .grx-bars li { grid-template-columns:minmax(96px,130px) minmax(0,1fr) 28px; gap:10px; font-size:14px; } }
.grx-fig figcaption { font-size:14px; color:var(--grx-muted); margin-top:10px; }

.grx-faq { max-width:none; }
.grx-faq summary { font-family:var(--grx-serif); font-size:19px; }
.grx-faq details p { max-width:none; }
.latest-table { width:100%; }

@media (max-width:640px){ .grx-fig-hill .grx-svg .h-t{font-size:25px;} .grx-fig-hill .grx-svg .h-b{font-size:25px;} }
.grx-mus:not(:has(.grx-mgrid)) { display:block; }
.grx-hero-box .grx-dot { display:inline-block; flex:none; width:8px; height:8px; border-radius:50%; transform:translateY(-1px); }
