.article-body p { line-height: 1.85; color: #333; font-size: 16px; }
.article-body h2 { font-size: 20px; font-weight: 600; margin: 24px 0 12px; }
.article-body img { max-width: 100%; height: auto; margin: 16px 0; }
.prose { font-size: 16px; line-height: 1.85; color: #333; max-width: 820px; }
.toolbar input, .toolbar select, .prose input {
  height: 36px; border: 1px solid #ddd; padding: 0 10px; font-size: 14px;
}
.prose label { display: block; margin: 12px 0 6px; color: #555; }
.prose .row { display: flex; gap: 12px; }

.geo-answer {
  margin: 0 0 22px;
  padding: 16px 18px;
  background: #faf6f2;
  border-left: 4px solid #8b1425;
  color: #333;
  font-size: 16px;
  line-height: 1.7;
}
.geo-answer strong { color: #8b1425; margin-right: 6px; }
.geo-eeat {
  margin: 8px 0 0;
  color: #888;
  font-size: 13px;
}

.more-wrap {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 8px;
  width: 100%;
  text-align: center;
  margin: 28px 0 80px;
}
.more-wrap .page-status { order: 1; }
.more-wrap .page-index,
.more-wrap .page-pre,
.more-wrap .page-numbar,
.more-wrap .page-last,
.more-wrap .page-select { order: 2; }
.more-wrap .page-next { order: 3; }
.more-wrap .page-none { color: #999; font-size: 14px; }
.more-wrap .page-status,
.more-wrap .page-index,
.more-wrap .page-pre,
.more-wrap .page-numbar,
.more-wrap .page-next,
.more-wrap .page-last,
.more-wrap .page-select {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
  border: 0;
  background: none;
  min-width: 0;
  height: auto;
  padding: 0;
  color: inherit;
  font-size: inherit;
}
.more-wrap .page-status {
  width: 100%;
  color: #999;
  font-size: 13px;
  margin-bottom: 6px;
}
.more-wrap .page-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 10px;
  border: 1px solid #e8e8e8;
  color: #444 !important;
  background: #fff;
  font-size: 14px;
  line-height: 34px;
}
.more-wrap .page-num:hover { border-color: #8c1525; color: #8c1525 !important; }
.more-wrap a.page-num-current,
.more-wrap .page-num-current {
  background: #8b1425;
  border-color: #8b1425;
  color: #fff !important;
}
.more-wrap span.page-num {
  border: 0;
  color: #bbb !important;
  min-width: 24px;
}
.more-wrap .page-index a,
.more-wrap .page-pre a,
.more-wrap .page-last a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 36px;
  padding: 0 14px;
  border: 1px solid #e8e8e8;
  color: #666 !important;
  background: #fff;
  font-size: 14px;
}
.more-wrap .page-index a:hover,
.more-wrap .page-pre a:hover,
.more-wrap .page-last a:hover {
  border-color: #8c1525;
  color: #8c1525 !important;
}
.more-wrap .page-next {
  width: 100%;
  margin-top: 10px;
}
.more-wrap .page-next a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 230px;
  height: 45px;
  border: 1px solid #8c1525;
  color: #8c1525 !important;
  background: transparent;
  font-size: 20px;
  line-height: 43px;
}
.more-wrap .page-next a:hover {
  background: #8b1425;
  color: #fff !important;
}
.more-wrap .page-next a.is-off,
.more-wrap .page-pre a[href="javascript:;"],
.more-wrap .page-next a[href="javascript:;"] {
  opacity: .4;
  pointer-events: none;
  cursor: default;
}

.page .more-wrap { margin-bottom: 48px; }
.ranking-more { margin: 8px 0 48px; }
.ranking-more .page-next-more,
.more-wrap .page-next-more {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 230px;
  height: 45px;
  border: 1px solid #8c1525;
  color: #8c1525 !important;
  background: transparent;
  font-size: 20px;
  line-height: 43px;
}
.ranking-more .page-next-more:hover { background: #8b1425; color: #fff !important; }
.ranking-more .page-next-more.is-off {
  opacity: .4;
  pointer-events: none;
  cursor: default;
}
.pager-bar button {
  min-width: 36px;
  height: 36px;
  border: 1px solid #e8e8e8;
  background: #fff;
  color: #444;
  font-size: 14px;
  cursor: pointer;
}
.pager-bar button:hover { border-color: #8c1525; color: #8c1525; }
.pager-bar button.is-on { background: #8b1425; color: #fff; border-color: #8b1425; }

.city-switch { position: relative; }
.city-now {
  display: inline-flex; align-items: center; height: 32px; padding: 0 10px;
  border: 1px solid #e8e8e8; color: #444 !important; font-size: 14px;
}
.city-now:after { content: "▾"; margin-left: 6px; font-size: 10px; color: #999; }
.city-drop {
  display: none; position: absolute; right: 0; top: 100%; z-index: 20;
  width: 280px; padding: 10px; background: #fff; border: 1px solid #eee;
  box-shadow: 0 8px 24px rgba(0,0,0,.08);
}
.city-switch:hover .city-drop,
.city-switch.is-open .city-drop { display: flex; flex-wrap: wrap; gap: 8px; }
.city-drop a {
  display: inline-flex; align-items: center; height: 28px; padding: 0 10px;
  background: #faf6f2; color: #444 !important; font-size: 13px;
}
.city-drop a:hover, .city-hot a:hover { background: #8b1425; color: #fff !important; }
.city-more { background: #fff8f8 !important; color: #8b1425 !important; }
.city-hot { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 28px; }
.city-hot a {
  display: inline-flex; align-items: center; height: 32px; padding: 0 12px;
  border: 1px solid #e8e8e8; color: #444 !important; font-size: 14px;
}
.city-prov { margin: 0 0 28px; }
.city-prov h2 { font-size: 18px; margin: 0 0 10px; }
.city-prov h2 a { color: #8b1425 !important; }
.city-grid { display: flex; flex-wrap: wrap; gap: 8px 14px; }
.city-grid a { color: #444 !important; font-size: 14px; }
.city-grid a:hover { color: #8b1425 !important; }
.city-tip { color: #8b1425; font-weight: 600; }

.geo-list .geo-head { margin: 0 0 28px; }
.geo-list .geo-head h1 {
  margin: 0 0 8px;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.35;
  color: #1a1a1a;
}
.geo-sub { margin: 0 0 12px; color: #888; font-size: 15px; }
.geo-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; }
.geo-tags span {
  display: inline-flex;
  align-items: center;
  height: 28px;
  padding: 0 10px;
  background: #f3f7fb;
  color: #2f5f8f;
  font-size: 13px;
}
.geo-toc {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  position: sticky;
  top: 0;
  z-index: 5;
  padding: 10px 0;
  background: #fff;
  border-bottom: 1px solid #f0f0f0;
}
.geo-toc a {
  height: 32px;
  padding: 0 12px;
  border: 1px solid #e8e8e8;
  color: #444 !important;
  font-size: 14px;
  line-height: 30px;
}
.geo-toc a:hover { border-color: #8b1425; color: #8b1425 !important; }
.geo-list .feed-col > section { scroll-margin-top: 52px; }
.geo-list .feed-col h2 {
  margin: 28px 0 12px;
  font-size: 20px;
  font-weight: 700;
}
.geo-list .feed-col > section > p { color: #444; line-height: 1.8; }
.geo-ul { margin: 0 0 8px; padding-left: 1.2em; color: #333; line-height: 1.85; }
.geo-ul li { margin: 0 0 8px; }
.geo-picks { list-style: none; margin: 0; padding: 0; }
.geo-pick {
  display: flex;
  gap: 14px;
  margin: 0 0 14px;
  padding: 16px;
  border: 1px solid #eee;
  background: #fff;
}
.pick-n {
  flex: 0 0 36px;
  height: 36px;
  border-radius: 50%;
  background: #8b1425;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  line-height: 36px;
  text-align: center;
}
.pick-body h3 { margin: 0 0 8px; font-size: 18px; font-weight: 600; }
.pick-body h3 a { color: #222 !important; }
.pick-body h3 a:hover { color: #8b1425 !important; }
.pick-body p { margin: 0; color: #555; line-height: 1.7; }
.pick-meta { margin-top: 8px !important; color: #999 !important; font-size: 13px; }
.geo-faq .faq-item {
  margin: 0 0 12px;
  padding: 14px 16px;
  background: #fafafa;
  border-left: 3px solid #8b1425;
}
.geo-faq h3 { margin: 0 0 8px; font-size: 16px; }
.geo-faq p { margin: 0; color: #444; line-height: 1.75; }

@media (max-width: 768px) {
  .geo-list .geo-head h1 { font-size: 22px; }
  .geo-toc { top: 0; }
  .geo-pick { padding: 12px; }
  .more-wrap .page-index,
  .more-wrap .page-last { display: none; }
  .more-wrap .page-next a {
    width: min(230px, 100%);
    font-size: 16px;
  }
}

.gcy { padding-bottom: 0; }
.gcy-notice {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 0;
  padding: 8px 24px;
  background: #3b0c14;
  color: #f3e6c8;
  font-size: 13px;
}
.xyl .gcy-notice {
  display: block;
  padding: 8px 0;
}
.gcy-notice-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.gcy-notice-cta {
  flex: 0 0 auto;
  height: 32px;
  padding: 0 14px;
  border-radius: 999px;
  background: #ffd966;
  color: #1a1a1a !important;
  font-weight: 700;
  line-height: 32px;
}
.xyl-brand {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 2px;
  line-height: 1.2;
}
.xyl-brand-kicker {
  font-size: 12px;
  color: #888;
  font-weight: 400;
}
.xyl-brand-name {
  font-size: 20px;
  font-weight: 700;
  color: #8b1425;
}
.xyl-utils { gap: 16px; }
.xyl-phone {
  font-size: 18px !important;
  font-weight: 700;
  color: #8b1425 !important;
}
.xyl-top-cta {
  min-height: 36px;
  height: 36px;
  padding: 0 16px;
  font-size: 14px;
}
.xyl-nav ul { justify-content: flex-start; }
.xyl-nav li { flex: 1; text-align: center; }
.xyl-nav li a { padding: 0 18px; }
.gcy-notice-cta:hover { background: #ffe599; color: #1a1a1a !important; }
.gcy-hero {
  background: #8b1425;
  color: #fff;
  padding: 48px 0 56px;
}
.gcy-hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(280px, .9fr);
  gap: 48px;
  align-items: center;
}
.gcy-chip {
  display: inline-flex;
  margin: 0 0 16px;
  padding: 6px 12px;
  border: 1px solid rgba(255,255,255,.35);
  border-radius: 999px;
  color: #fff;
  font-size: 13px;
}
.gcy-hero h1 {
  margin: 0 0 16px;
  font-size: 36px;
  font-weight: 700;
  line-height: 1.3;
}
.gcy-lead { margin: 0 0 24px; font-size: 16px; line-height: 1.85; color: rgba(255,255,255,.92); }
.gcy-lead strong { color: #ffd966; font-weight: 700; }
.gcy-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 0 0 18px; }
.gcy-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 22px;
  border-radius: 999px;
  background: #ffd966;
  color: #1a1a1a !important;
  font-size: 16px;
  font-weight: 700;
}
.gcy-btn:hover { background: #ffe599; color: #1a1a1a !important; }
.gcy-btn-ghost {
  background: transparent;
  border: 1px solid rgba(255,255,255,.85);
  color: #fff !important;
}
.gcy-btn-ghost:hover { background: rgba(255,255,255,.12); color: #fff !important; }
.gcy-meta { margin: 0; color: rgba(255,255,255,.78); font-size: 13px; }
.gcy-hero-fig { margin: 0; }
.gcy-hero-fig img {
  width: 100%;
  height: auto;
  border: 6px solid #fff;
  border-radius: 18px;
  background: #fff;
}
.gcy-hero-fig figcaption { margin-top: 10px; color: rgba(255,255,255,.75); font-size: 13px; text-align: center; }
.gcy-quote-wrap { background: #faf6f0; padding: 28px 0 8px; }
.gcy-quote {
  padding: 28px 32px;
  background: #fff;
  border-radius: 12px;
  border-top: 4px solid #ffd966;
  box-shadow: 0 8px 24px rgba(0,0,0,.04);
}
.gcy-quote h2 { margin: 0 0 12px; color: #c9a227; font-size: 18px; font-weight: 700; }
.gcy-quote p { margin: 0; color: #333; line-height: 1.9; }
.gcy-eeat { margin-top: 12px !important; color: #888 !important; font-size: 13px; }
.gcy-sec { padding: 48px 0 8px; }
.gcy-sec > h2, .gcy-cta h2 {
  margin: 0 0 10px;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.35;
}
.gcy-kicker {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 8px;
  color: #8b1425;
  font-size: 14px;
  font-weight: 700;
}
.gcy-kicker:before {
  content: "";
  width: 4px;
  height: 16px;
  background: #8b1425;
}
.gcy-sec-sub { margin: 0 0 24px; color: #666; line-height: 1.8; }
.gcy-paths, .gcy-news, .gcy-grid {
  display: grid;
  gap: 16px;
}
.gcy-paths, .gcy-news { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gcy-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gcy-path, .gcy-news-card, .gcy-grid article {
  display: block;
  padding: 22px;
  border: 1px solid #eee;
  background: #fff;
  color: inherit !important;
}
.gcy-path span, .gcy-news-card span {
  display: inline-block;
  margin-bottom: 10px;
  color: #8b1425;
  font-size: 13px;
  font-weight: 700;
}
.gcy-path h3, .gcy-news-card h3, .gcy-grid h3 {
  margin: 0 0 10px;
  font-size: 20px;
  font-weight: 700;
  color: #1a1a1a;
}
.gcy-path p, .gcy-news-card p, .gcy-grid p { margin: 0; color: #555; line-height: 1.75; }
.gcy-path em, .gcy-news-card em, .gcy-more a {
  display: inline-block;
  margin-top: 14px;
  color: #8b1425;
  font-style: normal;
  font-weight: 700;
}
.gcy-path:hover, .gcy-news-card:hover { border-color: #8b1425; }
.gcy-grid article { background: #fafafa; }
.gcy-place {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(240px, .8fr);
  gap: 20px;
  padding: 28px;
  border: 1px solid #eee;
  background: #fff;
}
.gcy-place-status {
  display: inline-flex;
  margin: 0 0 8px;
  padding: 2px 10px;
  background: #e8f6ec;
  color: #1f7a3a;
  font-size: 12px;
  font-weight: 700;
}
.gcy-place h3 { margin: 0 0 14px; font-size: 22px; }
.gcy-place ul { margin: 0; padding: 0; list-style: none; }
.gcy-place li { margin: 0 0 10px; color: #444; line-height: 1.7; }
.gcy-place strong { display: inline-block; min-width: 3em; color: #8b1425; }
.gcy-place aside {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
  padding: 24px;
  background: #8b1425;
  color: #fff;
}
.gcy-place aside p { margin: 0; font-size: 16px; }
.gcy-place aside .gcy-btn { margin-top: 12px; align-self: flex-start; }
.xyl-maps { margin: 16px 0 0; display: flex; gap: 16px; flex-wrap: wrap; }
.xyl-maps a { color: #ffd966; text-decoration: underline; }
.gcy-more { margin: 8px 0 0; }
.gcy-ul { margin: 0; padding-left: 1.2em; color: #333; line-height: 1.9; }
.gcy-ul li { margin: 0 0 10px; }
.gcy-faq-item {
  margin: 0 0 12px;
  border: 1px solid #eee;
  background: #fff;
}
.gcy-faq-item summary {
  cursor: pointer;
  list-style: none;
  padding: 16px 18px;
  font-size: 16px;
  font-weight: 700;
}
.gcy-faq-item summary::-webkit-details-marker { display: none; }
.gcy-faq-item summary:after {
  content: "+";
  float: right;
  color: #8b1425;
  font-weight: 400;
}
.gcy-faq-item[open] summary:after { content: "–"; }
.gcy-faq-item p { margin: 0; padding: 0 18px 16px; color: #444; line-height: 1.8; }
.gcy-cta {
  margin-top: 40px;
  padding: 48px 0;
  background: #8b1425;
  color: #fff;
  text-align: center;
}
.gcy-cta p { margin: 0 0 20px; color: rgba(255,255,255,.88); }
.gcy-cta .gcy-actions { justify-content: center; }
.gcy-cta .gcy-btn-ghost { border-color: #fff; }
.gcy #paths, .gcy #howto, .gcy #check, .gcy #news, .gcy #criteria, .gcy #faq, .gcy #quote, .gcy #campus, .gcy #cta { scroll-margin-top: 130px; }

@media (max-width: 768px) {
  .gcy-notice { padding: 8px 16px; font-size: 12px; }
  .gcy-hero { padding: 28px 0 32px; }
  .gcy-hero-inner, .gcy-paths, .gcy-news, .gcy-grid, .gcy-place { grid-template-columns: 1fr; }
  .gcy-hero h1, .gcy-sec > h2, .gcy-cta h2 { font-size: 24px; }
  .gcy-sec { padding: 32px 0 8px; }
  .gcy #paths, .gcy #howto, .gcy #check, .gcy #news, .gcy #criteria, .gcy #faq, .gcy #quote, .gcy #campus, .gcy #cta { scroll-margin-top: 110px; }
}
