/* City catalogue uses the approved promo palette; all content works without JS. */
.pc-city { --city-accent:#087f91; color:var(--pp-text); background:#fff; }
.pc-city .city-icon { width:22px; height:22px; flex:0 0 22px; }
.pc-city p { line-height:1.65; }
.pc-city h1, .pc-city h2, .pc-city h3 { color:var(--pp-dark); letter-spacing:-.035em; }
.pc-city h2 { margin:0; font-size:clamp(1.7rem,3vw,2.3rem); line-height:1.2; }
.pc-city h3 { font-size:1.1rem; line-height:1.35; }
.pc-city a { text-underline-offset:4px; }
.pc-city :where(a,summary):focus-visible { outline:3px solid #087f91; outline-offset:5px; }
.pc-city :where(section,aside)[id] { scroll-margin-top:16px; }
.pc-city .pp-button { gap:10px; text-align:center; white-space:normal; }
.pc-city .pp-button--primary { color:#102437; }
.pc-city .pp-nav__links { gap:26px; }
.pc-city .pp-nav__actions { gap:24px; }
.pc-city .pp-nav { position:relative; }
.city-mobile-nav { display:none; }
.city-mobile-nav summary { display:grid; place-items:center; min-width:44px; min-height:44px; color:#294858; cursor:pointer; list-style:none; border:1px solid #dae7ed; border-radius:12px; }
.city-mobile-nav summary::-webkit-details-marker { display:none; }
.city-mobile-nav > div { position:absolute; right:0; top:66px; width:min(290px,100%); display:grid; padding:10px; border:1px solid #deebf0; background:white; border-radius:15px; box-shadow:0 15px 35px #18374b20; z-index:2; }
.city-mobile-nav a { color:#25485b; text-decoration:none; padding:12px; font-size:.88rem; border-radius:8px; }
.city-mobile-nav a:hover { background:#eef8fa; }
.city-hero { background:radial-gradient(ellipse at 9% 20%,#e5fbf6 0,transparent 65%),linear-gradient(120deg,#f8fdfd,#edf7ff); border-bottom:1px solid #e4edf3; }
.city-crumbs { display:flex; gap:12px; align-items:center; padding-top:26px; font-size:.82rem; color:#617688; }
.city-crumbs a { color:#436675; text-decoration:none; }
.city-hero-grid { display:grid; grid-template-columns:1.25fr 1fr; gap:65px; align-items:center; padding:42px 0 55px; }
.city-kicker { color:var(--city-accent); font-size:.79rem; font-weight:700; letter-spacing:.035em; margin:0 0 13px; }
.city-hero .city-kicker { display:flex; gap:8px; align-items:center; }
.pc-city h1 { font-size:clamp(3rem,5.7vw,4.6rem); line-height:1.04; margin:18px 0 22px; font-weight:750; }
.pc-city h1 span { display:block; color:var(--city-accent); }
.city-lead { max-width:515px; margin:0; font-size:1.08rem; color:#4b6378; }
.city-actions { display:flex; gap:22px; flex-wrap:wrap; align-items:center; margin-top:27px; }
.city-text-link { display:inline-flex; align-items:center; gap:8px; color:var(--city-accent); font-size:.88rem; font-weight:650; text-decoration:none; }
.city-text-link:hover { text-decoration:underline; }
.city-facts { display:flex; flex-wrap:wrap; gap:22px; margin:29px 0 0; padding:0; list-style:none; }
.city-facts li { display:flex; align-items:center; gap:7px; font-size:.8rem; color:#526b7b; }
.city-facts .city-icon { width:17px; height:17px; flex-basis:17px; color:#268ca1; }
.city-location { background:rgba(255,255,255,.94); border:1px solid #e0edf2; border-radius:26px; padding:27px 30px 22px; box-shadow:0 16px 50px -15px rgba(32,91,111,.17); }
.city-location-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:13px; }
.city-location-icon { display:grid; place-items:center; width:49px; height:49px; border-radius:15px; background:#e5f8f8; color:#0e8c9f; }
.city-location-icon .city-icon { width:28px; height:28px; }
.city-location-label { background:#f0f7fa; color:#577286; border-radius:20px; padding:5px 12px; font-size:.72rem; font-weight:600; }
.pc-city .city-location h2 { font-size:2rem; }
.city-location > p { margin:10px 0 0; color:#60768a; font-size:.87rem; }
.city-skyline { display:block; width:100%; height:auto; margin-top:21px; }
.city-location-bottom { display:flex; justify-content:space-between; align-items:center; gap:16px; padding-top:14px; font-size:.84rem; color:#425e74; }
.city-location-bottom strong { display:grid; place-items:center; min-width:35px; height:35px; padding:0 8px; border-radius:10px; background:#e6f7f7; color:#087888; font-size:1.1rem; }
.city-location > .city-note { font-size:.71rem; line-height:1.5; margin-top:10px; }
.city-section { padding:65px 0; }
.city-section-head { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:27px; }
.city-section-head .city-text-link { flex-shrink:0; margin-bottom:4px; }
.city-catalogue-layout { display:grid; grid-template-columns:minmax(0,1fr) 285px; gap:26px; align-items:start; }
.city-list { display:grid; gap:20px; min-width:0; }
.city-card { overflow:hidden; border:1px solid #dde7ee; background:white; border-radius:20px; box-shadow:0 5px 18px rgba(16,36,55,.035); overflow-wrap:anywhere; }
.city-card-top { display:flex; align-items:center; gap:17px; padding:26px 27px 20px; }
.city-practice-icon { flex:0 0 62px; width:62px; height:62px; border-radius:17px; background:#eaf7fa; color:#1990a2; display:grid; place-items:center; }
.city-practice-icon .city-icon { width:30px; height:30px; }
.city-card .city-kicker { margin:0 0 7px; color:#658095; font-size:.7rem; letter-spacing:.02em; }
.pc-city .city-card h3 { margin:0; font-size:1.55rem; }
.city-card h3 a { color:inherit; text-decoration:none; }
.city-card h3 a:hover { color:var(--city-accent); }
.city-details { margin:0; padding:0 27px; }
.city-details > div { display:grid; grid-template-columns:105px 1fr; gap:15px; margin:10px 0; font-size:.88rem; line-height:1.6; }
.city-details dt { color:#667b8c; }
.city-details dd { margin:0; color:#243f55; }
.city-reviews { display:flex; align-items:center; gap:9px; font-size:.8rem; color:#64798b; margin:18px 27px 25px; }
.city-reviews .city-icon { width:18px; height:18px; flex-basis:18px; }
.city-reviews strong { color:#24445a; }
.city-phone { margin:0 27px 24px; font-size:.84rem; }
.city-card-bottom { background:#f8fbfd; border-top:1px solid #e9eff4; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px; padding:17px 27px; }
.city-card-bottom .pp-button { min-height:43px; font-size:.81rem; padding:10px 16px; }
.city-status { margin:0; display:flex; gap:8px; align-items:center; font-size:.74rem; color:#866016; }
.city-status .city-icon { width:17px; height:17px; flex-basis:17px; }
.city-status--available { color:#087663; }
.city-hint { border-radius:20px; background:#f0f7fb; padding:24px; }
.city-hint-icon { color:#327b96; }
.city-hint h3 { margin:14px 0 10px; }
.city-hint p { font-size:.84rem; color:#5c7284; margin:10px 0; }
.city-hint .city-text-link { margin-top:9px; font-size:.79rem; }
.city-empty { padding:32px; border:1px dashed #b9d5df; border-radius:20px; background:#f8fcfd; }
.city-empty > .city-icon { color:var(--city-accent); width:36px; height:36px; }
.city-empty h3 { margin:18px 0 10px; }
.city-empty p { color:#5c7284; font-size:.95rem; }
.city-how { border-top:1px solid #e7edf3; }
.city-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:45px; list-style:none; margin:34px 0 0; padding:0; }
.city-step-number { display:grid; place-items:center; width:40px; height:40px; border-radius:12px; background:#eaf8f8; color:#078295; font-size:.84rem; font-weight:700; }
.city-steps h3 { margin:17px 0 11px; }
.city-steps p { font-size:.88rem; color:#60758a; margin:0; }
.city-diabetes { display:grid; grid-template-columns:1fr 1.4fr; gap:50px; padding:34px; background:#f3f9fb; border:1px solid #e3eef3; border-radius:22px; }
.pc-city .city-diabetes h2 { font-size:1.65rem; line-height:1.3; }
.city-diabetes .city-text-link { margin-top:19px; }
.city-diabetes p:not(.city-kicker) { font-size:.87rem; color:#536b7c; margin:0 0 12px; }
.city-diabetes p:last-child { margin-bottom:0; }
.city-diabetes .city-medical-note { border-left:3px solid #4eacb7; padding-left:13px; }
.city-faq { display:grid; grid-template-columns:1fr 1.65fr; gap:70px; }
.city-muted { color:#63798b; font-size:.9rem; max-width:275px; }
.city-faq-list details { border-bottom:1px solid #dfe8ef; }
.city-faq-list details:first-child { border-top:1px solid #dfe8ef; }
.city-faq-list summary { position:relative; padding:21px 33px 21px 0; cursor:pointer; color:#294258; font-weight:650; font-size:.91rem; line-height:1.5; list-style:none; }
.city-faq-list summary::-webkit-details-marker { display:none; }
.city-faq-list summary::after { content:"+"; position:absolute; right:3px; top:18px; font-size:1.5rem; font-weight:400; color:#26849c; }
.city-faq-list details[open] summary::after { content:"−"; }
.city-faq-list p { margin:0 30px 22px 0; color:#607588; font-size:.88rem; }
.city-faq-list p a { color:var(--city-accent); }
.city-pro { display:flex; align-items:center; justify-content:space-between; gap:40px; background:radial-gradient(ellipse at 95% 0,#1e5267,transparent 65%),#122c40; border-radius:24px; padding:39px 42px; margin:0 0 65px; }
.city-pro .city-kicker { color:#86ddd9; font-size:.76rem; }
.pc-city .city-pro h2 { color:white; font-size:1.85rem; }
.city-pro p:not(.city-kicker) { color:#bdd0dc; font-size:.9rem; margin:14px 0 0; }
.city-pro .pp-button { flex-shrink:0; font-size:.84rem; }
.city-footer { border-top:1px solid #e6edf2; padding:28px 0; }
.city-footer-top { display:flex; align-items:center; justify-content:space-between; gap:25px; }
.city-footer-top img { display:block; width:147px; height:auto; }
.city-footer nav { display:flex; flex-wrap:wrap; gap:24px; }
.city-footer nav a { color:#52697e; font-size:.77rem; text-decoration:none; }
.city-footer p { margin:18px 0 0; font-size:.73rem; color:#6c7f90; }
@media (max-width:1050px) {
  .pc-city .pp-nav__links { display:none; }
  .pc-city .pp-nav__actions { gap:18px; }
  .city-mobile-nav { display:block; }
  .city-hero-grid { gap:30px; grid-template-columns:1.1fr 1fr; }
  .city-catalogue-layout { grid-template-columns:minmax(0,1fr) 250px; gap:20px; }
  .city-card-bottom { align-items:flex-start; }
  .city-steps { gap:28px; }
  .city-faq { gap:35px; }
  .city-diabetes { gap:28px; }
}
@media (max-width:760px) {
  .pc-city .pp-container { width:calc(100% - 36px); }
  .pc-city .pp-header { min-height:66px; }
  .pc-city .pp-nav { min-height:66px; }
  .pc-city .pp-logo img { width:157px; }
  .pc-city .pp-nav__links, .pc-city .pp-nav__actions { display:none; }
  .city-mobile-nav { display:block; margin-left:auto; }
  .city-mobile-nav > div { top:60px; }
  .city-crumbs { padding-top:20px; font-size:.75rem; }
  .city-hero-grid { grid-template-columns:1fr; gap:28px; padding:29px 0 33px; }
  .pc-city h1 { font-size:clamp(2.8rem,10vw,3.9rem); margin:17px 0 20px; }
  .city-lead { font-size:.98rem; max-width:540px; }
  .city-actions { gap:18px; margin-top:23px; }
  .city-actions .pp-button { min-height:49px; font-size:.9rem; }
  .city-facts { gap:19px; margin-top:25px; }
  .city-location { padding:20px; border-radius:20px; display:grid; grid-template-columns:1fr auto; column-gap:18px; }
  .city-location-top { margin-bottom:12px; grid-column:1/-1; }
  .city-location-icon { width:39px; height:39px; border-radius:12px; }
  .pc-city .city-location h2 { font-size:1.6rem; }
  .city-location > p { font-size:.79rem; grid-column:1; margin-top:7px; }
  .city-skyline, .city-desktop-break { display:none; }
  .city-location-bottom { grid-column:2; grid-row:2/4; padding:0; align-self:center; flex-direction:column-reverse; gap:5px; }
  .city-location-bottom > span { display:block; max-width:82px; text-align:center; font-size:.65rem; line-height:1.35; }
  .city-location > .city-note { font-size:.7rem; grid-column:1/-1; }
  .city-location > .city-note br { display:none; }
  .city-section { padding:42px 0; }
  .city-section-head { display:block; margin-bottom:23px; }
  .city-section-head .city-text-link { margin-top:16px; }
  .city-catalogue-layout { grid-template-columns:1fr; }
  .city-card-top { padding:21px 20px 14px; gap:13px; }
  .city-practice-icon { width:50px; height:50px; flex-basis:50px; border-radius:14px; }
  .pc-city .city-card h3 { font-size:1.3rem; }
  .city-details { padding:0 20px; }
  .city-details > div { grid-template-columns:80px 1fr; gap:8px; font-size:.81rem; }
  .city-reviews { margin:17px 20px 21px; font-size:.74rem; }
  .city-phone { margin:0 20px 20px; }
  .city-card-bottom { padding:16px 20px 20px; gap:14px; }
  .city-card-bottom .pp-button { width:100%; }
  .city-hint { padding:20px; }
  .city-hint-icon { float:left; margin-right:10px; }
  .city-hint h3 { margin:0 0 13px; }
  .city-hint p { font-size:.82rem; }
  .city-steps { grid-template-columns:1fr; gap:25px; margin-top:26px; }
  .city-steps li { position:relative; padding-left:58px; }
  .city-step-number { position:absolute; left:0; top:0; }
  .city-steps h3 { margin:0 0 8px; font-size:1.04rem; }
  .city-steps p { font-size:.84rem; }
  .city-diabetes { padding:23px; grid-template-columns:1fr; gap:24px; border-radius:20px; }
  .pc-city .city-diabetes h2 { font-size:1.5rem; }
  .city-diabetes p:not(.city-kicker) { font-size:.83rem; }
  .city-faq { grid-template-columns:1fr; gap:21px; }
  .city-faq h2 br { display:none; }
  .city-muted { max-width:none; }
  .city-faq-list summary { font-size:.86rem; padding-top:19px; padding-bottom:19px; }
  .city-pro { padding:27px 24px; margin-bottom:40px; flex-direction:column; align-items:flex-start; gap:24px; border-radius:20px; }
  .pc-city .city-pro h2 { font-size:1.65rem; }
  .city-pro .pp-button { width:100%; }
  .city-pro p br { display:none; }
  .city-footer-top { align-items:flex-start; flex-direction:column; gap:22px; }
  .city-footer nav { gap:17px; }
  .city-footer p { font-size:.7rem; }
}
@media (max-width:480px) {
  .pc-city .pp-container { width:calc(100% - 28px); }
  .city-actions { align-items:stretch; flex-direction:column; }
  .city-actions .city-text-link { justify-content:center; }
  .city-facts { gap:12px; }
  .city-facts li { font-size:.73rem; gap:5px; }
  .city-details > div { grid-template-columns:1fr; gap:2px; }
}
