.ai-city-page{background-image:url('../images/pages/ai-guide/city-recommend/city-bg.webp');background-position:center;background-size:cover}
.ai-city-page:before{background:linear-gradient(180deg,rgba(18,119,178,.03),rgba(13,49,75,.12))}
.city-shell{background:rgba(231,240,246,.57)}
.city-content{position:relative}
.city-view{display:none;min-height:100%}
.city-view.is-active{display:flex;flex-direction:column}
.city-home{justify-content:center}
.city-home__inner{width:min(860px,100%);margin:auto;text-align:center}
.city-hero h1,.city-result__header h1{margin:0 0 14px;font-size:34px;line-height:1.2;font-weight:800}
.city-hero p,.city-result__header p{margin:0;font-size:17px;line-height:1.7}
.city-search{display:grid;grid-template-columns:minmax(0,1fr) 128px;gap:12px;width:min(650px,100%);margin:48px auto 40px}
.city-search>.sr-only{position:static;width:auto;height:auto;padding:0;margin:0 0 2px;overflow:visible;clip:auto;clip-path:none;white-space:normal;border:0;grid-column:1/-1;text-align:center;font-size:17px;line-height:1.5;color:inherit}
.city-search input{width:100%;height:58px;border:0;border-radius:999px;padding:0 24px;background:rgba(255,255,255,.92);font:inherit;font-size:17px;color:#202a39;outline:none;box-shadow:0 8px 24px rgba(30,58,87,.08)}
.city-search input:focus{box-shadow:0 0 0 3px rgba(24,61,121,.18),0 8px 24px rgba(30,58,87,.08)}
.city-search__button{margin:0;min-width:128px;height:58px}
.city-suggestions>p{margin:0 0 14px;font-size:17px}
.city-suggestion-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.city-suggestion-grid button{min-height:58px;padding:0 16px;border:1px solid rgba(255,255,255,.52);border-radius:16px;background:rgba(255,255,255,.58);display:flex;align-items:center;justify-content:space-between;gap:10px;font:inherit;font-size:17px;font-weight:600;text-align:left;color:inherit;cursor:pointer;transition:transform .22s ease,background .22s ease,box-shadow .22s ease}
.city-suggestion-grid button:hover{transform:translateY(-3px);background:rgba(255,255,255,.82);box-shadow:0 12px 26px rgba(29,57,83,.12)}
.city-suggestion-grid img{width:30px;height:30px;object-fit:contain;flex:0 0 auto}
.city-loading{justify-content:flex-start}
.city-hero--loading{text-align:center;margin:112px 0 48px}
.city-loading-card{min-height:340px;border-radius:20px;background:rgba(255,255,255,.52);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;text-align:center}
.city-loading-card strong{font-size:17px}
.city-loader{height:48px;display:flex;align-items:center;gap:7px}
.city-loader span{display:block;width:9px;border-radius:999px;background:#183d79;animation:cityPulse 1s ease-in-out infinite}
.city-loader span:nth-child(1){height:22px;animation-delay:-.3s}.city-loader span:nth-child(2){height:34px;animation-delay:-.15s}.city-loader span:nth-child(3){height:46px}.city-loader span:nth-child(4){height:26px;animation-delay:.15s}
@keyframes cityPulse{0%,100%{transform:scaleY(.55);opacity:.55}50%{transform:scaleY(1);opacity:1}}
.city-result{padding-bottom:4px}
.city-result__header{text-align:left;margin:2px 0 18px}
.city-analysis,.city-expert-note{padding:18px;border-radius:16px;background:rgba(239,247,253,.76);border:1px solid rgba(255,255,255,.48)}
.city-analysis strong,.city-expert-note strong{display:block;margin-bottom:8px;font-size:17px}
.city-analysis p,.city-expert-note p{margin:0;font-size:17px;line-height:1.65}
.city-ranking{display:grid;gap:12px;margin-top:16px}
.city-card{border-radius:18px;background:rgba(255,255,255,.68);border:1px solid rgba(255,255,255,.45);overflow:hidden}
.city-card__summary{display:grid;grid-template-columns:38px minmax(220px,1.4fr) minmax(110px,.7fr) minmax(230px,1.25fr) 30px;gap:14px;align-items:start;padding:18px;cursor:pointer}
.city-card__rank{font-size:22px;font-weight:700}
.city-card__name h2{margin:0 0 5px;font-size:18px;line-height:1.35}.city-card__name p{margin:0;font-size:17px;font-weight:700}
.city-card__stat span,.city-card__community span{display:block;font-size:17px;margin-bottom:6px}.city-card__stat strong,.city-card__community strong{font-size:17px;line-height:1.45}
.city-card__toggle{width:22px;height:22px;border:0;background:url('../images/pages/ai-guide/simulation/icon-arrow.webp') center/contain no-repeat;transform:rotate(180deg);cursor:pointer;transition:transform .25s ease}
.city-card.is-open .city-card__toggle{transform:rotate(0)}
.city-card__detail{display:none;padding:0 18px 18px}.city-card.is-open .city-card__detail{display:block}
.city-score-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:2px 0 14px}
.city-score{min-height:112px;padding:14px;border-radius:14px;background:rgba(255,255,255,.66)}
.city-score__head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.city-score__head strong{font-size:17px}.city-score__head span{font-size:17px;font-weight:700}.city-score p{margin:0;font-size:17px;line-height:1.5}
.city-pros-cons{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}.city-pros-cons article{padding:15px;border-radius:14px;background-color:transparent!important;background-repeat:no-repeat!important;background-position:0 0!important;background-size:100% 100%!important;border:0!important;box-shadow:none}.city-pros{background-image:linear-gradient(90deg,rgba(255,255,255,.50) 0%,rgba(205,216,255,.50) 45%,rgba(79,119,246,.50) 100%)!important}.city-cons{background-image:linear-gradient(90deg,rgba(255,255,255,.50) 0%,rgba(255,215,229,.50) 45%,rgba(250,108,157,.50) 100%)!important}.city-pros-cons strong{display:block;margin-bottom:8px;font-size:17px}.city-pros-cons p{margin:0;white-space:pre-line;font-size:17px;line-height:1.55}
.city-tags{display:grid;gap:12px}.city-tag-group strong{display:block;font-size:17px;margin-bottom:8px}.city-tag-list{display:flex;flex-wrap:wrap;gap:8px}.city-tag-list span{padding:9px 13px;border-radius:999px;background:rgba(255,255,255,.72);font-size:17px}
.city-expert-note{margin-top:16px;background:rgba(220,235,255,.82)}
.city-result-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:16px}
.city-result-actions button,.city-result-actions a{min-height:62px;padding:8px 14px;border:0;border-radius:14px;background:#fff;color:#1e2937;font:inherit;font-size:17px;font-weight:700;text-decoration:none;display:flex;align-items:center;justify-content:center;text-align:center;cursor:pointer;transition:transform .22s ease,box-shadow .22s ease}
.city-result-actions button:hover,.city-result-actions a:hover{transform:translateY(-3px);box-shadow:0 12px 24px rgba(25,54,86,.16)}
.city-result-actions a[href*="consultation"]{background:#dceaff}.city-result-actions .is-primary{background:#183d79;color:#fff}
@media(max-width:1100px){.city-home__inner{padding:28px 0}.city-hero--loading{margin:36px 0 26px}.city-card__summary{grid-template-columns:34px minmax(0,1.4fr) minmax(100px,.7fr) minmax(190px,1fr) 26px}.city-score-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.city-search{grid-template-columns:1fr;margin:28px auto}.city-search>.sr-only{grid-column:1}.city-hero h1,.city-result__header h1{font-size:28px}.city-hero p,.city-result__header p{font-size:17px}.city-hero p br,.city-result__header p br{display:none}.city-search__button{width:100%}.city-suggestion-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.city-loading-card{min-height:260px}.city-card__summary{grid-template-columns:30px 1fr 26px}.city-card__stat,.city-card__community{grid-column:2}.city-card__toggle{grid-column:3;grid-row:1}.city-score-grid,.city-pros-cons,.city-result-actions{grid-template-columns:1fr}}
@media(max-width:480px){.city-suggestion-grid{grid-template-columns:1fr}.city-suggestion-grid button{min-height:54px}.city-card__summary{padding:14px;gap:10px}.city-card__detail{padding:0 14px 14px}}

/* AI detail typography normalization */
body h1{font-size:28px!important}
body h2{font-size:21px!important}
body h3{font-size:18px!important}
body input::placeholder,body textarea::placeholder{font-size:17px!important}
body h2 + p,body h3 + p{font-size:17px!important}
body h1 + p{font-size:18px!important}

h4{font-size:17px}
