.cxy-hero.cxy-resource-hero{min-height:0}
.cxy-resource-hero .cxy-hero-lead{max-width:850px}
.cxy-resources{color:var(--cxy-ink)}
.cxy-resources [hidden]{display:none!important}
.cxy-resource-shortcuts{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 32px}
.cxy-resource-shortcuts a{padding:12px 18px;border:1px solid var(--cxy-line);border-radius:8px;font-weight:600;color:var(--cxy-blue)}
.cxy-resource-filters{display:grid;grid-template-columns:1fr 1fr 1.4fr 2fr auto;gap:16px;align-items:end;margin:24px 0}
.cxy-resource-filters label{display:flex;flex-direction:column;gap:8px;font-size:14px;font-weight:600;min-width:0}
.cxy-resource-filters input,.cxy-resource-filters select{font:inherit;color:inherit;min-width:0;width:100%;height:48px;border:1px solid var(--cxy-line);border-radius:8px;background:var(--ztc-white);padding:10px 12px}
.cxy-resource-filters button{min-height:48px}
.cxy-resource-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:24px 0 40px}
.cxy-resource-card{display:block;padding:28px;border:1px solid var(--cxy-line);border-radius:16px;color:inherit;background:var(--ztc-white)}
.cxy-resource-card h2,.cxy-resource-card h3{font-size:23px;line-height:1.5;margin:10px 0 14px}
.cxy-resource-card a,.cxy-resource-card>span{color:var(--cxy-blue)}
.cxy-resource-card p{line-height:1.9;margin-bottom:20px;color:var(--cxy-muted)}
.cxy-resource-card small,.cxy-resource-meta{color:var(--cxy-muted);font-size:14px}
.cxy-resource-meta{display:flex;flex-wrap:wrap;gap:10px 24px;margin-bottom:32px}
.cxy-resource-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:64px;align-items:start}
.cxy-resource-article{min-width:0;max-width:820px}
.cxy-resource-article section{padding:0 0 32px;margin-bottom:32px;border-bottom:1px solid var(--cxy-line);scroll-margin-top:110px}
.cxy-resource-article h2{font-size:28px;line-height:1.5;margin:0 0 20px}
.cxy-resource-article h3{font-size:20px;line-height:1.6;margin:0 0 10px}
.cxy-resource-article p,.cxy-resource-article li{line-height:1.95;overflow-wrap:break-word}
.cxy-resource-article p{margin-bottom:16px}
.cxy-resource-article a{text-decoration:underline;text-underline-offset:4px;color:var(--cxy-blue)}
.cxy-resource-check{display:flex;gap:14px;align-items:flex-start;line-height:1.9;padding:16px 18px;border:1px solid var(--cxy-line);border-radius:8px;margin:12px 0;cursor:pointer}
.cxy-resource-check input{flex:0 0 auto;margin-top:5px;width:20px;height:20px;accent-color:var(--cxy-blue)}
.cxy-resource-steps{padding-left:28px}.cxy-resource-steps li{padding-left:10px;margin-bottom:28px}.cxy-resource-steps li::marker{font-weight:700;color:var(--cxy-blue)}
.cxy-resource-links{display:grid;gap:12px;margin-bottom:24px}.cxy-resource-links a{display:flex;flex-direction:column;gap:6px;padding:20px;background:var(--cxy-tint);border-radius:10px;text-decoration:none}.cxy-resource-links span{font-size:14px;color:var(--cxy-muted)}
.cxy-resource-location{padding:24px 0;border-top:1px solid var(--cxy-line)}
.cxy-resource-aside{position:sticky;top:110px;padding:28px;background:var(--cxy-tint);border-radius:16px}
.cxy-resource-aside h2{font-size:20px;margin-bottom:20px}.cxy-resource-aside h3{font-size:18px;margin:20px 0 12px}.cxy-resource-aside p{font-size:14px;line-height:1.9}.cxy-resource-aside>a{display:block;margin:14px 0;color:var(--cxy-blue)}.cxy-resource-aside>a.ztc-btn-primary-pill{color:var(--ztc-white)}
.cxy-resource-follow{margin-top:48px}.cxy-resource-follow h2{margin-bottom:24px}
@media(max-width:1000px){.cxy-resource-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.cxy-resource-filters label:last-of-type{grid-column:span 2}.cxy-resource-layout{gap:32px;grid-template-columns:minmax(0,1fr) 240px}}
@media(max-width:700px){.cxy-resource-filters{grid-template-columns:1fr 1fr;gap:14px}.cxy-resource-filters label:last-of-type{grid-column:auto}.cxy-resource-filters button{grid-column:1/-1}.cxy-resource-cards,.cxy-resource-layout{grid-template-columns:1fr}.cxy-resource-card{padding:22px}.cxy-resource-aside{position:static}.cxy-resource-article h2{font-size:24px}.cxy-resource-check{padding:14px}.cxy-resource-shortcuts a{font-size:14px;padding:10px 12px}}

/* T391: shared directory rhythm, compact results, and a complete official map. */
.ztc-section.cxy-resource-section{padding:36px 0 64px}
.cxy-resource-results{scroll-margin-top:112px}
.cxy-resource-layout{grid-template-columns:minmax(0,760px) minmax(220px,1fr);gap:48px}.cxy-resource-article{max-width:none}
.cxy-resource-filters{grid-template-columns:1fr 1.4fr 2fr auto;margin:20px 0}
.cxy-resource-filters input,.cxy-resource-filters select{background:var(--ztc-bg);border-radius:12px;font-weight:400}
.cxy-resource-filters button{border-radius:12px}
.cxy-resource-result-meta{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}
.cxy-resource-result-meta p{margin:0;font-size:14px;color:var(--ztc-text-muted)}
[data-resource-directory] .cxy-resource-cards{gap:20px;margin:0}
[data-guide-card]{position:relative;display:flex;flex-direction:column;padding:26px;border-color:var(--ztc-border);border-radius:18px}
[data-guide-card]:hover{border-color:var(--ztc-action)}
[data-guide-card] h3{font-size:20px;line-height:1.6;margin:18px 0 12px;text-wrap:pretty}
[data-guide-card] h3 a{color:var(--cxy-heading);text-decoration:none}
[data-guide-card] h3 a::after{content:"";position:absolute;inset:0;border-radius:18px}
[data-guide-card] h3 a:hover{color:var(--ztc-action-hover)}
[data-guide-card] h3 .cxy-kw{display:inline}
[data-guide-card]>p{font-size:14px;line-height:1.8;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0 0 22px}
.cxy-resource-card-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:auto;padding-top:16px;border-top:1px solid var(--ztc-border);font-size:13px;color:var(--ztc-action-hover)}
.cxy-resource-card-foot small{font-size:12px;color:var(--ztc-text-muted)}
.cxy-gd-map{display:grid;grid-template-columns:minmax(0,2fr) minmax(250px,.85fr);gap:32px;padding:28px;border:1px solid var(--ztc-border);border-radius:20px;margin:0 0 48px;align-items:center;background:var(--ztc-white)}
.cxy-city-map{min-width:0}
.cxy-city-map-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}
.cxy-city-map-heading h2{font-size:22px;line-height:1.5;color:var(--cxy-heading);margin:0}
.cxy-map-views{display:flex;flex-shrink:0;padding:4px;border-radius:10px;background:var(--ztc-bg)}
.cxy-map-views button{min-height:40px;padding:7px 12px;background:transparent;border:0;border-radius:8px;font:inherit;font-size:13px;color:var(--ztc-text-muted);cursor:pointer}
.cxy-map-views [aria-pressed=true]{background:var(--ztc-white);color:var(--ztc-action-hover)}
.cxy-map-viewport{position:relative;width:100%;aspect-ratio:1.7;background:var(--ztc-tint-info-bg);border:1px solid var(--ztc-border);border-radius:16px;overflow:hidden;isolation:isolate;cursor:grab;touch-action:pan-y;user-select:none}
.cxy-map-viewport.is-dragging{cursor:grabbing}
.cxy-map-viewport>svg,.cxy-map-nodes{position:absolute;inset:0;display:block;width:100%;height:100%;pointer-events:none}
.cxy-map-graticule{fill:none;stroke:var(--ztc-action);stroke-width:.5;opacity:.12;vector-effect:non-scaling-stroke}
.cxy-map-nodes [hidden]{display:none!important}
.cxy-map-city{position:absolute;margin:0;padding:0;width:0;height:0;border:0;background:none;font:inherit;color:var(--ztc-text-muted);text-align:left}
.cxy-map-point{position:absolute;display:grid;place-items:center;width:44px;height:44px;transform:translate(-22px,-22px)}
.cxy-map-point::before{content:"";display:block;width:6px;height:6px;background:var(--ztc-text-muted);border:2px solid var(--ztc-white);border-radius:50%}
.has-guides .cxy-map-point::before{width:11px;height:11px;background:var(--ztc-action);box-shadow:0 0 0 5px rgba(0,110,214,.10)}
.cxy-map-city-label{position:absolute;display:block;white-space:nowrap;font:inherit;text-align:left}
.cxy-map-city-label strong{font-size:13px;font-weight:400;line-height:1.7}
.has-guides .cxy-map-city-label{width:86px;height:49px;padding:5px 10px;border:1px solid var(--ztc-border);border-radius:9px;background:var(--ztc-white);color:var(--ztc-action-hover);cursor:pointer;pointer-events:auto}
.has-guides .cxy-map-city-label strong{font-size:16px;line-height:1.3;font-weight:700}
.has-guides .cxy-map-city-label small{display:block;font-size:12px;line-height:1.6;color:var(--ztc-text-muted)}
.has-guides .cxy-map-city-label:hover,.has-guides .cxy-map-city-label:focus-visible{border-color:var(--ztc-action);outline:2px solid var(--ztc-action);outline-offset:2px}
.cxy-map-leader{stroke:var(--ztc-action);stroke-width:1;opacity:.55}
.cxy-map-cluster{position:absolute;transform:translate(-50%,-50%);display:flex;width:max-content;white-space:nowrap;gap:12px;align-items:center;padding:10px 14px;border:0;border-radius:12px;min-height:48px;font:inherit;background:var(--ztc-action);color:var(--ztc-white);cursor:pointer;pointer-events:auto}
.cxy-map-cluster strong{font-size:16px}.cxy-map-cluster span{font-size:12px;white-space:nowrap}
.cxy-map-north{position:absolute;left:16px;top:14px;display:grid;text-align:center;color:var(--ztc-text-muted);font-size:20px;line-height:1.2;pointer-events:none}
.cxy-map-north span{font-size:12px}
.cxy-map-controls{position:absolute;right:12px;bottom:12px;display:flex;border:1px solid var(--ztc-border);border-radius:10px;overflow:hidden;background:var(--ztc-white)}
.cxy-map-controls button{display:grid;place-items:center;min-width:44px;min-height:44px;padding:0;border:0;background:none;font-size:22px;color:var(--ztc-action-hover);cursor:pointer}
.cxy-map-controls button+button{border-left:1px solid var(--ztc-border)}
.cxy-map-controls button:disabled{opacity:.45;cursor:default}
.cxy-map-caption{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:4px 16px;margin-top:12px;font-size:12px;line-height:1.8;color:var(--ztc-text-muted)}
.cxy-map-caption>span{display:flex;align-items:center;gap:6px}
.cxy-map-caption i{width:8px;height:8px;border-radius:50%;background:var(--ztc-action);display:inline-block}
.cxy-map-caption i.is-reference{margin-left:8px;background:var(--ztc-text-muted)}
.cxy-map-caption a{color:var(--ztc-action-hover);text-decoration:none}
.cxy-map-status{font-size:12px;line-height:1.8;color:var(--ztc-text-muted);margin:8px 0 0;min-height:22px}
.cxy-map-fallback{position:absolute;left:16px;bottom:16px;max-width:calc(100% - 32px);padding:14px;background:var(--ztc-white);font-size:14px;line-height:1.8;border-radius:12px}
.cxy-gd-map-copy h2{font-size:28px;line-height:1.4;margin:8px 0 14px;color:var(--cxy-heading)}
.cxy-gd-map-copy h2 span{display:block}
.cxy-gd-map-copy>p{font-size:15px;line-height:1.8;color:var(--ztc-text-muted);margin:0 0 22px}
.cxy-gd-city-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.cxy-gd-city-links a{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:18px;background:var(--ztc-bg);border:1px solid transparent;border-radius:12px;text-decoration:none}
.cxy-gd-city-links strong{font-size:21px;color:var(--cxy-heading)}
.cxy-gd-city-links span{grid-column:1;font-size:13px;color:var(--ztc-text-muted)}
.cxy-gd-city-links i{grid-column:2;grid-row:1/3;align-self:center;font-style:normal;color:var(--ztc-action-hover)}
.cxy-gd-city-links [aria-current]{background:var(--ztc-tint-info-bg);border-color:var(--ztc-action)}
.cxy-gd-city-links a:hover strong{color:var(--ztc-action-hover)}
.cxy-gd-map-copy .cxy-gd-map-note{font-size:12px;line-height:1.8;margin:18px 0 0}
[data-resource-empty]{padding:28px;border-radius:16px;background:var(--ztc-bg)}
.cxy-resource-section :is(a,button,select,input):focus-visible{outline:2px solid var(--ztc-action);outline-offset:4px}
@media(max-width:1023px){.cxy-gd-map{gap:24px;padding:22px;grid-template-columns:1fr}.cxy-gd-map-copy h2{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:24px}.cxy-gd-map-copy>p{margin-bottom:16px}.cxy-gd-city-links{grid-template-columns:repeat(4,minmax(0,1fr))}.cxy-gd-city-links a{padding:14px}.cxy-resource-filters{grid-template-columns:1fr 1fr}.cxy-resource-filters label:last-of-type{grid-column:auto}}
@media(max-width:767px){
 .cxy-resource-layout{grid-template-columns:1fr;gap:28px}
 .ztc-section.cxy-resource-section{padding-top:25px;padding-bottom:40px}
 .cxy-gd-map{grid-template-columns:1fr;gap:20px;padding:20px;margin-bottom:36px}
 .cxy-city-map-heading{display:block;margin-bottom:14px}.cxy-city-map-heading h2{font-size:21px;margin-bottom:12px}.cxy-map-views{display:inline-flex}
 .cxy-map-viewport{aspect-ratio:1}.cxy-map-controls{bottom:10px;right:10px}
 .cxy-gd-map-copy h2{font-size:22px}.cxy-gd-map-copy>p{font-size:14px;margin-bottom:16px}
 .cxy-gd-city-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.cxy-gd-city-links strong{font-size:20px}.cxy-gd-map-copy .cxy-gd-map-note{margin-top:14px}
 .cxy-resource-filters{grid-template-columns:1fr 1fr;gap:14px}.cxy-resource-filters label:last-of-type{grid-column:1/-1}.cxy-resource-filters button{grid-column:1/-1}
 .cxy-resource-filters input{font-size:16px}
 [data-resource-directory] .cxy-resource-cards{grid-template-columns:1fr;gap:14px}[data-guide-card]{padding:22px}[data-guide-card] h3{font-size:19px}
 .cxy-resource-result-meta{align-items:flex-start}.cxy-resource-result-meta p{font-size:13px}
}


.cxy-guide-map-choice > summary {
  display: flex;
  align-items: center;
  gap: 10px;
  width: fit-content;
  min-height: 44px;
  cursor: pointer;
  color: var(--ztc-action-hover);
  font-weight: 600;
  list-style: none;
}
.cxy-guide-map-choice > summary::-webkit-details-marker { display: none; }
.cxy-guide-map-choice > summary::after { content: "⌄"; }
.cxy-guide-map-choice[open] > summary::after { transform: rotate(180deg); }
.cxy-resource-results { scroll-margin-top: 94px; }
.cxy-resource-filters { grid-template-columns: minmax(220px,2fr) 1fr 1fr auto; }
.cxy-resource-filters label:last-of-type { grid-column: auto; }
@media (min-width:768px) {
  .cxy-guide-map-choice > summary { display: none; }
}
@media (max-width:767px) {
  .cxy-resource-filters { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px 12px; margin: 16px 0 4px; }
  .cxy-resource-filters .cxy-guide-query, .cxy-resource-filters button { grid-column: 1 / -1; }
  .cxy-guide-map-choice { margin: 6px 0 12px; }
}
@media print {
  .cxy-guide-map-choice > summary { display: none; }
}

.cxy-resource-results [data-resource-count]:focus-visible{outline:2px solid var(--ztc-action);outline-offset:3px;border-radius:3px}
