/* Discovera destination personality profile */
body.city-profile-open{overflow:hidden}
.city-profile-modal{
  position:fixed;
  inset:0;
  z-index:180;
  display:none;
  place-items:end center;
  padding:18px;
  background:rgba(9,12,11,.66);
  backdrop-filter:blur(12px) saturate(125%);
}
.city-profile-modal.show{display:grid}
.city-profile-shell{
  position:relative;
  width:min(460px,100%);
  max-height:calc(100dvh - 24px);
  overflow:hidden;
  background:#f6f6f2;
  border:1px solid rgba(255,255,255,.74);
  border-radius:8px;
  box-shadow:0 32px 90px rgba(0,0,0,.34);
  animation:cityProfileIn .46s cubic-bezier(.16,1,.3,1) both;
}
@keyframes cityProfileIn{from{opacity:0;transform:translateY(36px) scale(.97)}to{opacity:1;transform:none}}
.city-profile-scroll{
  max-height:calc(100dvh - 24px);
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-width:none;
  padding-bottom:calc(26px + env(safe-area-inset-bottom));
}
.city-profile-scroll::-webkit-scrollbar{display:none}
.city-profile-close,
.city-profile-save{
  position:absolute;
  top:14px;
  z-index:4;
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.52);
  border-radius:8px;
  background:rgba(255,255,255,.72);
  color:#111;
  backdrop-filter:blur(16px) saturate(150%);
  box-shadow:0 10px 28px rgba(0,0,0,.14);
  font-size:21px;
}
.city-profile-close{left:14px}
.city-profile-save{right:14px}
.city-profile-hero{
  position:relative;
  min-height:520px;
  display:flex;
  align-items:flex-end;
  padding:22px;
  overflow:hidden;
  background:#111;
}
.city-profile-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.city-profile-hero:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.06) 20%,rgba(0,0,0,.24) 55%,rgba(0,0,0,.92));
}
.city-profile-hero__content{position:relative;z-index:1;width:100%;color:#fff}
.city-profile-kicker{margin:0 0 7px;color:rgba(255,255,255,.72);font-size:12px;font-weight:700}
.city-profile-hero h2{margin:0;font-size:42px;line-height:1.12;font-weight:850;color:#fff}
.city-profile-hero__tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}
.city-profile-hero__tags span{
  display:inline-flex;
  min-height:34px;
  align-items:center;
  padding:0 10px;
  border:1px solid rgba(255,255,255,.24);
  border-radius:8px;
  background:rgba(255,255,255,.13);
  backdrop-filter:blur(12px);
  font-size:12px;
  font-weight:700;
}
.city-profile-signature{margin:18px 0 0;color:#fff;font-size:17px;line-height:1.85;font-weight:600}
.city-profile-section{padding:28px 20px 0}
.city-profile-section__head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:16px}
.city-profile-section__head span{color:#7a7a73;font-size:11px;font-weight:700}
.city-profile-section h3{margin:0;font-size:23px;line-height:1.35;color:#111}
.city-dna{
  display:grid;
  grid-template-columns:190px 1fr;
  align-items:center;
  gap:12px;
  padding:18px;
  background:#111;
  color:#fff;
  border-radius:8px;
}
.city-dna svg{width:100%;height:auto;overflow:visible}
.city-dna-grid{fill:none;stroke:rgba(255,255,255,.17);stroke-width:1}
.city-dna-axis{stroke:rgba(255,255,255,.15);stroke-width:1}
.city-dna-shape{fill:rgba(221,242,71,.30);stroke:#ddf247;stroke-width:2.5;filter:drop-shadow(0 0 8px rgba(221,242,71,.28))}
.city-dna-point{fill:#ddf247;stroke:#111;stroke-width:2}
.city-dna__list{display:grid;gap:8px}
.city-dna__row{display:grid;grid-template-columns:68px 1fr 30px;gap:7px;align-items:center;font-size:11px}
.city-dna__row div{height:5px;background:rgba(255,255,255,.13);overflow:hidden;border-radius:8px}
.city-dna__row div i{display:block;height:100%;background:#ddf247}
.city-dna__row b{text-align:left;color:#ddf247}
.city-person{
  display:grid;
  grid-template-columns:76px 1fr;
  gap:15px;
  align-items:start;
  padding:18px;
  border:1px solid rgba(17,17,17,.08);
  border-radius:8px;
  background:#fff;
  box-shadow:0 16px 36px rgba(17,17,17,.06);
}
.city-person__avatar{
  position:relative;
  width:76px;
  aspect-ratio:1;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-radius:8px;
  background:#ffcf54;
  color:#111;
  font-size:34px;
  font-weight:900;
}
.city-person__avatar:before,.city-person__avatar:after{content:"";position:absolute;border:1px solid rgba(17,17,17,.22);inset:13px;transform:rotate(45deg)}
.city-person__avatar:after{inset:22px;transform:rotate(0)}
.city-person__avatar span{position:relative;z-index:1}
.city-person__copy{display:grid;gap:10px;min-width:0}
.city-person p{margin:0;color:#50504c;line-height:1.95;font-size:14px}
.city-life-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.city-life-card{padding:15px;border-radius:8px;background:#fff;border:1px solid rgba(17,17,17,.07)}
.city-life-card header{display:flex;justify-content:space-between;gap:8px;align-items:center}
.city-life-card header span{font-size:19px}
.city-life-card header b{font-size:17px;color:#111}
.city-life-card p{margin:7px 0 0;color:#6c6c67;font-size:12px}
.city-life-track{height:7px;margin-top:12px;border-radius:8px;overflow:hidden;background:#ecece6}
.city-life-track span{display:block;height:100%;background:#111}
.city-mood-panel{display:grid;grid-template-columns:180px 1fr;gap:14px;align-items:center}
.city-mood-wheel{width:180px;height:180px}
.city-mood-wheel path{stroke:#f6f6f2;stroke-width:2;transition:.25s ease}
.city-mood-wheel circle{fill:#111}
.city-mood-wheel text{fill:#ddf247;font-family:Vazirmatn,Tahoma,sans-serif;font-size:30px;font-weight:850}
.city-mood-legend{display:grid;gap:8px}
.city-mood-legend div{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px}
.city-mood-legend i{width:9px;height:9px;border-radius:2px;background:var(--mood-color)}
.city-mood-legend span{margin-inline-start:auto;color:#50504c}
.city-love-chips{display:flex;gap:8px;flex-wrap:wrap}
.city-love-chips span{padding:11px 12px;border-radius:8px;background:#fff;border:1px solid rgba(17,17,17,.07);font-size:13px;font-weight:700;color:#242421}
.city-day{position:relative;display:grid;gap:0;padding-inline-start:18px}
.city-day:before{content:"";position:absolute;top:10px;bottom:14px;inset-inline-start:5px;width:2px;background:#dfe1d8}
.city-day__item{position:relative;display:grid;grid-template-columns:62px 1fr;gap:10px;padding:0 0 16px}
.city-day__item:before{content:"";position:absolute;inset-inline-start:-17px;top:8px;width:10px;height:10px;border-radius:50%;background:#ddf247;border:2px solid #111}
.city-day__item time{font-size:12px;font-weight:800;color:#111}
.city-day__item b{display:block;font-size:14px;color:#111}
.city-day__item p{margin:3px 0 0;color:#74746f;font-size:12px;line-height:1.75}
.city-profile-tabs{position:sticky;top:0;z-index:3;display:flex;gap:6px;overflow:auto;margin-top:28px;padding:10px 20px;background:rgba(246,246,242,.88);backdrop-filter:blur(14px);scrollbar-width:none}
.city-profile-tabs::-webkit-scrollbar{display:none}
.city-profile-tabs button{flex:0 0 auto;min-height:38px;padding:0 12px;border:1px solid rgba(17,17,17,.10);border-radius:8px;background:#fff;color:#555;font-size:12px;font-weight:750}
.city-profile-tabs button.active{background:#111;color:#ddf247;border-color:#111}
.city-profile-tab{display:none;padding:20px}
.city-profile-tab.active{display:block;animation:profileTabIn .25s ease both}
@keyframes profileTabIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.city-profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.city-profile-info{padding:14px;border:1px solid rgba(17,17,17,.07);border-radius:8px;background:#fff}
.city-profile-info small{display:block;color:#85857f;font-size:11px}
.city-profile-info b{display:block;margin-top:4px;color:#111;font-size:13px;line-height:1.7}
.city-profile-list{display:grid;gap:9px}
.city-profile-list article{display:grid;grid-template-columns:40px 1fr;gap:10px;padding:13px;border:1px solid rgba(17,17,17,.07);border-radius:8px;background:#fff}
.city-profile-list article>span{width:40px;height:40px;display:grid;place-items:center;border-radius:8px;background:#111;color:#ddf247;font-size:18px}
.city-profile-list b{display:block;color:#111;font-size:14px}
.city-profile-list p{margin:3px 0 0;color:#6c6c67;font-size:12px;line-height:1.75}
.city-similar-list,.intel-city-list{display:grid;gap:9px}
.city-similar,.intel-city-card{
  width:100%;
  display:grid;
  grid-template-columns:74px 1fr;
  gap:11px;
  align-items:center;
  padding:8px;
  border:1px solid rgba(17,17,17,.07);
  border-radius:8px;
  background:#fff;
  color:#111;
  text-align:right;
}
.city-similar img,.intel-city-card img{width:74px;height:66px;object-fit:cover;border-radius:6px;background:#e9e9e2}
.city-similar small,.intel-city-card small{display:block;color:#6e6e68;font-size:10px;font-style:normal}
.city-similar b,.intel-city-card b{display:block;font-size:14px}
.city-similar em,.intel-city-card em{display:block;margin-top:2px;color:#777;font-size:10px;font-style:normal;line-height:1.55}
.city-profile-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:20px}
.city-profile-actions button{min-height:50px;border:0;border-radius:8px;background:#111;color:#fff;font-weight:800}
.city-profile-actions button.primary{background:#ddf247;color:#111}
.intel-response .ai-card__body{padding-top:14px}
.intel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.intel-head span{padding:5px 8px;border-radius:6px;background:#111;color:#ddf247;font-size:10px;font-weight:800}
.intel-head b{font-size:14px}
.intel-hidden-list{display:grid;gap:8px;margin-top:12px}
.intel-hidden{display:grid;grid-template-columns:34px 1fr;gap:9px;padding:10px;border-radius:8px;background:#f7f7f2}
.intel-hidden>span{width:34px;height:34px;display:grid;place-items:center;border-radius:8px;background:#111;color:#ddf247}
.intel-hidden b,.intel-hidden small{display:block}.intel-hidden small{color:#777;font-size:10px;margin-top:2px}
.intel-response h4{margin:14px 0 8px;font-size:13px}
.intel-roadtrip{display:grid;margin-top:12px}
.intel-roadtrip button{position:relative;display:grid;grid-template-columns:34px 1fr;gap:9px;padding:10px 0;border:0;border-bottom:1px solid rgba(17,17,17,.08);background:transparent;text-align:right;color:#111}
.intel-roadtrip button span{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#111;color:#ddf247;font-size:11px}
.intel-roadtrip button b,.intel-roadtrip button small{display:block}.intel-roadtrip button small{grid-column:2;color:#777;font-size:10px}
@media(max-width:520px){
  .city-profile-modal{padding:0;place-items:stretch}
  .city-profile-shell,.city-profile-scroll{width:100%;max-height:100dvh;height:100dvh;border-radius:0}
  .city-profile-hero{min-height:56dvh}
  .city-dna{grid-template-columns:160px 1fr}
  .city-mood-panel{grid-template-columns:160px 1fr}.city-mood-wheel{width:160px;height:160px}
}
@media(max-width:380px){
  .city-dna,.city-mood-panel{grid-template-columns:1fr}
  .city-dna svg,.city-mood-wheel{width:180px;margin:auto}
}
@media(prefers-reduced-motion:reduce){.city-profile-shell,.city-profile-tab{animation:none}}

/* Profile redesign: light mobile sheet + a real destination dossier on desktop. */
.city-profile-modal{
  padding:28px;
  background:rgba(20,23,21,.62);
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
}
.city-profile-shell{
  width:min(1180px,calc(100vw - 56px));
  max-height:calc(100dvh - 56px);
  border:1px solid rgba(255,255,255,.58);
  border-radius:30px;
  background:#f7f4ec;
  box-shadow:0 34px 90px rgba(0,0,0,.30);
  isolation:isolate;
}
.city-profile-scroll{max-height:calc(100dvh - 56px);padding-bottom:30px;scroll-behavior:auto;background:#f7f4ec}
.city-profile-close,.city-profile-save{
  top:20px;width:42px;height:42px;border:1px solid rgba(255,255,255,.5);border-radius:14px;
  background:rgba(255,255,255,.94);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 8px 20px rgba(0,0,0,.14);
  transition:transform .18s ease,background .18s ease;
}
.city-profile-close{left:20px}.city-profile-save{right:20px}
.city-profile-close:hover,.city-profile-save:hover{transform:translateY(-2px);background:#fff}
.city-profile-save.saved{background:#151817;color:#ffd400;border-color:#151817}
.city-profile-hero{min-height:360px;padding:34px 42px;border-radius:29px 29px 0 0}
.city-profile-hero:after{background:linear-gradient(90deg,rgba(8,13,11,.84) 0%,rgba(8,13,11,.52) 43%,rgba(8,13,11,.05) 78%)}
.city-profile-hero__content{max-width:590px}
.city-profile-kicker{font-size:12px;letter-spacing:.02em;color:rgba(255,255,255,.72)}
.city-profile-hero h2{font-size:56px;letter-spacing:-.03em}
.city-profile-hero__tags span{min-height:32px;padding:0 11px;border-radius:999px;background:rgba(255,255,255,.12);-webkit-backdrop-filter:none;backdrop-filter:none}
.city-profile-signature{max-width:520px;margin-top:15px;font-size:16px;line-height:1.9}
.city-profile-section{padding:30px 28px 0}
.city-profile-section__head{margin-bottom:13px}
.city-profile-section__head h3{font-size:21px;letter-spacing:-.02em}
.city-profile-section__head span{font-size:11px;color:#77756e}
.city-dna{grid-template-columns:172px minmax(0,1fr);gap:20px;padding:19px;border-radius:20px;background:#171a18;box-shadow:0 14px 28px rgba(21,24,23,.14)}
.city-dna__row{grid-template-columns:72px 1fr 30px;font-size:11px}.city-dna__row div{height:6px;border-radius:999px}.city-dna__row div i{border-radius:inherit}
.city-person{gap:17px;padding:18px;border-radius:20px;box-shadow:none;background:#fffdf8}
.city-person__avatar{border-radius:18px;background:#ffd400}.city-person p{font-size:13px;line-height:1.95;color:#55554f}
.city-life-grid{gap:10px}.city-life-card{padding:14px;border-radius:18px;background:#fffdf8;box-shadow:0 8px 18px rgba(50,45,35,.04)}
.city-life-card header b{font-size:15px}.city-life-track{height:6px;border-radius:999px}.city-life-track span{border-radius:inherit;background:#171a18}
.city-mood-panel{grid-template-columns:154px minmax(0,1fr);gap:18px;padding:15px;border-radius:20px;background:#fffdf8}.city-mood-wheel{width:154px;height:154px}
.city-love-chips{gap:7px}.city-love-chips span{padding:9px 11px;border-radius:999px;background:#fffdf8;font-size:12px}
.city-day{padding-inline-start:20px}.city-day__item{grid-template-columns:60px 1fr;padding-bottom:17px}.city-day__item b{font-size:13px}.city-day__item p{font-size:11px}.city-day__item:before{background:#ffd400;border-color:#171a18}
.city-profile-tabs{z-index:6;margin-top:30px;padding:10px 28px;border-block:1px solid rgba(21,24,23,.08);background:rgba(247,244,236,.98);-webkit-backdrop-filter:none;backdrop-filter:none}
.city-profile-tabs button{min-height:36px;padding:0 13px;border-radius:999px;background:#fffdf8;font-size:11px}.city-profile-tabs button.active{background:#171a18;color:#ffd400}
.city-profile-tab{padding:24px 28px 0}.city-profile-tab.active{animation:none}
.city-profile-grid{grid-template-columns:repeat(3,1fr);gap:10px}.city-profile-info{min-height:102px;padding:14px;border-radius:17px;background:#fffdf8;box-shadow:0 8px 16px rgba(50,45,35,.035)}
.city-profile-list{gap:9px}.city-profile-list article{padding:13px;border-radius:18px;background:#fffdf8}.city-profile-list article>span{border-radius:13px;background:#171a18;color:#ffd400}
.city-similar-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.city-similar{border-radius:18px;background:#fffdf8;transition:transform .18s ease,box-shadow .18s ease}.city-similar:hover{transform:translateY(-2px);box-shadow:0 13px 24px rgba(50,45,35,.08)}
.city-profile-actions{display:flex;justify-content:flex-start;gap:10px;padding:28px}.city-profile-actions button{min-height:48px;padding:0 18px;border-radius:15px;transition:transform .18s ease,box-shadow .18s ease}.city-profile-actions button:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(20,23,21,.15)}
@media(min-width:861px){
  .city-profile-scroll{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr);align-content:start}
  .city-profile-hero,.city-profile-tabs,.city-profile-tab,.city-profile-actions{grid-column:1/-1}
  .city-profile-hero{grid-row:1}.city-profile-section--dna{grid-column:1;grid-row:2}.city-profile-section--person{grid-column:2;grid-row:2}
  .city-profile-section--life{grid-column:1;grid-row:3}.city-profile-section--mood{grid-column:2;grid-row:3}
  .city-profile-section--love{grid-column:1;grid-row:4}.city-profile-section--day{grid-column:2;grid-row:4}
  .city-profile-tabs{grid-row:5;top:0}.city-profile-tab{grid-row:6}.city-profile-actions{grid-row:7}
  .city-profile-section{padding:28px 28px 4px}.city-profile-section--person,.city-profile-section--mood,.city-profile-section--day{border-inline-start:1px solid rgba(21,24,23,.08)}
  .city-profile-section--dna .city-dna{min-height:230px}.city-profile-section--person .city-person{min-height:230px}
  .city-life-grid{grid-template-columns:1fr 1fr}.city-life-card{min-height:112px}
  .city-mood-panel{min-height:222px}.city-profile-section--day .city-day{min-height:222px}
}
@media(max-width:860px){
  .city-profile-modal{padding:0;place-items:stretch}.city-profile-shell,.city-profile-scroll{width:100%;height:100dvh;max-height:100dvh;border-radius:0}
  .city-profile-hero{min-height:55dvh;padding:24px 20px 22px}.city-profile-hero:after{background:linear-gradient(180deg,rgba(8,13,11,.08),rgba(8,13,11,.86))}
  .city-profile-hero h2{font-size:40px}.city-profile-hero__content{max-width:none}.city-profile-signature{font-size:14px}
  .city-profile-close,.city-profile-save{top:14px}.city-profile-close{left:14px}.city-profile-save{right:14px}
  .city-profile-section{padding:25px 17px 0}.city-profile-section__head h3{font-size:19px}.city-dna{grid-template-columns:150px minmax(0,1fr);gap:10px;padding:13px;border-radius:18px}
  .city-mood-panel{grid-template-columns:142px minmax(0,1fr);gap:8px}.city-mood-wheel{width:142px;height:142px}
  .city-profile-tabs{margin-top:25px;padding:9px 17px}.city-profile-tab{padding:18px 17px 0}.city-profile-grid{grid-template-columns:1fr 1fr}.city-profile-actions{padding:22px 17px 34px;display:grid;grid-template-columns:1fr 1fr}.city-profile-actions button{padding:0 8px;font-size:12px}
  .city-similar-list{grid-template-columns:1fr}
}
@media(max-width:380px){.city-dna,.city-mood-panel{grid-template-columns:1fr}.city-dna svg,.city-mood-wheel{width:160px;margin:auto}.city-profile-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.city-profile-close,.city-profile-save,.city-similar,.city-profile-actions button{transition:none}}

/* Reliability pass: stable desktop sizing and an immediate first paint while the profile renders. */
.city-profile-loading{
  min-height:360px;display:grid;place-content:center;justify-items:center;gap:13px;color:#5d5d57;font-size:13px;background:#f7f4ec;
}
.city-profile-loading i{width:34px;height:34px;border:3px solid rgba(21,24,23,.14);border-top-color:#171a18;border-radius:50%;animation:cityProfileSpin .65s linear infinite}
@keyframes cityProfileSpin{to{transform:rotate(360deg)}}
@media(min-width:861px){
  .city-profile-modal{place-items:center!important;padding:28px!important}
  .city-profile-shell{width:min(1180px,calc(100vw - 56px))!important;height:min(860px,calc(100dvh - 56px));max-height:none!important;border-radius:30px!important}
  .city-profile-scroll{display:block!important;height:100%;max-height:none!important;overflow:auto!important}
  .city-profile-hero{min-height:308px!important;padding:34px 42px!important}
  .city-profile-overview{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr);align-items:start}
  .city-profile-overview .city-profile-section{padding:28px 28px 10px}
  .city-profile-overview .city-profile-section--dna{grid-column:1;grid-row:1}
  .city-profile-overview .city-profile-section--person{grid-column:2;grid-row:1}
  .city-profile-overview .city-profile-section--life{grid-column:1;grid-row:2}
  .city-profile-overview .city-profile-section--mood{grid-column:2;grid-row:2}
  .city-profile-overview .city-profile-section--love{grid-column:1;grid-row:3}
  .city-profile-overview .city-profile-section--day{grid-column:2;grid-row:3}
  .city-profile-overview .city-profile-section--person,.city-profile-overview .city-profile-section--mood,.city-profile-overview .city-profile-section--day{border-inline-start:1px solid rgba(21,24,23,.08)}
  .city-profile-tabs{position:sticky!important;top:0!important;z-index:8;margin-top:24px!important}
  .city-profile-tab{padding:24px 28px 0!important}
  .city-profile-actions{padding:28px!important}
}
@media(max-width:860px){
  .city-profile-overview{display:block}.city-profile-loading{min-height:55dvh}
}
@media(prefers-reduced-motion:reduce){.city-profile-loading i{animation:none}}
