/* Azul urbano aprovado. Tokens públicos, separados do painel administrativo. */
html[data-design='urban'] {
  --bg: #f1f4f7; --bg-2: rgba(255,255,255,.72); --bg-3: rgba(255,255,255,.9);
  --text: #102d4c; --text-2: #42576c; --muted: #53677a;
  --line: rgba(18,60,103,.12); --line-2: rgba(18,60,103,.28);
  --accent: #123c67; --accent-2: #2870ab; --accent-ink: #fff; --accent-text: #123c67;
  --accent-soft: rgba(45,124,191,.14); --glow: rgba(49,130,205,.38); --glow-2: rgba(91,130,108,.2);
  --loop: #5b826c; --loop-text: #356449; --loop-ink: #fff; --loop-soft: rgba(91,130,108,.12);
  --glass: rgba(245,249,253,.88); --glass-edge: rgba(255,255,255,.8);
  --shadow-glass: 0 1px 0 rgba(255,255,255,.92) inset, 0 16px 38px -22px rgba(18,60,103,.28);
  --section-space: clamp(44px,6vw,76px); --block-gap: clamp(24px,3vw,40px);
  --button-light: 0 1px 0 rgba(255,255,255,.3) inset, 0 8px 18px -8px rgba(12,38,68,.6), 0 0 24px -8px var(--glow);
  scrollbar-color: #7b94ab #e8eef4;
}
html[data-design='urban'] body::before {
  background: radial-gradient(ellipse at 4% 8%,rgba(155,194,224,.32),transparent 48%),radial-gradient(ellipse at 95% 50%,rgba(167,193,178,.2),transparent 46%),var(--bg);
}
[data-design='urban'] .nav { background: var(--glass); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border-bottom: 1px solid var(--glass-edge); box-shadow: var(--shadow-glass); }
[data-design='urban'] .section { padding-block: var(--section-space); position: relative; }
[data-design='urban'] .section + .section::before { content:''; position:absolute; top:0; left:max(var(--gutter),calc((100% - var(--wrap))/2 + var(--gutter))); right:max(var(--gutter),calc((100% - var(--wrap))/2 + var(--gutter))); height:1px; background:linear-gradient(90deg,transparent,var(--line-2),transparent); }
[data-design='urban'] .section__head { margin-bottom:var(--block-gap); }
[data-design='urban'] .hero { padding-bottom:48px; }
[data-design='urban'] .hero__media { border-radius:24px; box-shadow:0 0 0 5px rgba(255,255,255,.5),0 24px 48px -22px rgba(18,60,103,.48); }
[data-design='urban'] .hero .display { color:var(--text); }
[data-design='urban'] .eyebrow::before { background:var(--accent); box-shadow:0 0 10px var(--glow); }
[data-design='urban'] .btn { border-radius:12px; transition:transform 180ms var(--ease-out),box-shadow 220ms,background 220ms; }
[data-design='urban'] .btn--primary, [data-design='urban'] .btn--loop { color:var(--accent-ink); background:linear-gradient(145deg,#226197,var(--accent) 78%); border:1px solid rgba(119,185,241,.32); box-shadow:var(--button-light); }
[data-design='urban'] .btn--primary:hover, [data-design='urban'] .btn--loop:hover { transform:translateY(-2px); box-shadow:0 1px 0 rgba(255,255,255,.45) inset,0 12px 24px -9px rgba(12,38,68,.55),0 0 28px -4px var(--glow); }
[data-design='urban'] .btn:active { transform:translateY(0) scale(.98); }
[data-design='urban'] .btn--glass, [data-design='urban'] .btn--ghost { background:rgba(255,255,255,.74); border-color:rgba(18,60,103,.22); color:var(--text); box-shadow:var(--shadow-glass); }
[data-design='urban'] :focus-visible { outline:3px solid #2870ab; outline-offset:4px; }
[data-design='urban'] .sol { padding-bottom:var(--block-gap); }
[data-design='urban'] .sol:last-child { padding-bottom:0; }
[data-design='urban'] .sol--feature .sol__card { min-height:0; }
[data-design='urban'] .sol__body { padding:clamp(22px,3vw,34px); }
[data-design='urban'] .why-card:first-child { border-color:var(--glass-edge) !important; box-shadow:var(--shadow-glass); }
[data-design='urban'] .why-card, [data-design='urban'] .loop-card, [data-design='urban'] .table-card { box-shadow:var(--shadow-glass); }
[data-design='urban'] .jump { scrollbar-width:thin; padding-bottom:10px; }
[data-design='urban'] .jump::-webkit-scrollbar { display:block; height:6px; }
[data-design='urban'] ::-webkit-scrollbar { width:10px; height:10px; }
[data-design='urban'] ::-webkit-scrollbar-thumb { background:#7b94ab; border:2px solid #e8eef4; border-radius:8px; }
[data-design='urban'] ::-webkit-scrollbar-track { background:#e8eef4; }
[data-design='urban'] .loop { --text:#f3f7fb; --text-2:#e0eaf2; --muted:#d6e4ef; padding-block:var(--section-space); margin-block:12px var(--block-gap); background:linear-gradient(150deg,#164a78,#102f51); border-radius:28px; border:1px solid rgba(255,255,255,.2); box-shadow:0 20px 44px -26px rgba(18,60,103,.55); backdrop-filter:none; -webkit-backdrop-filter:none; }
[data-design='urban'] .loop__mark { color:#b4d5c1; text-shadow:0 0 20px rgba(180,213,193,.2); }
[data-design='urban'] .loop__head { align-items:center; margin-bottom:var(--block-gap); }
[data-design='urban'] .loop-card { --text:#102d4c; --text-2:#42576c; --muted:#53677a; background:rgba(246,250,253,.91); border-color:rgba(255,255,255,.7); }
[data-design='urban'] .loop-card .h3 { text-transform:uppercase; }
[data-design='urban'] .loop-card .sol__media { aspect-ratio:16/10; }
[data-design='urban'] [data-media='loopRetail'] { background:linear-gradient(145deg,#dae6ef,#edf3f7); padding:12px 12px 68px; }
[data-design='urban'] [data-media='loopRetail'] .sol__img { object-fit:contain; object-position:center; border-radius:8px; }
[data-design='urban'] .loop-card:hover [data-media='loopRetail'] .sol__img { transform:none; }
[data-design='urban'] [data-media='loopRetail'] .sol__thumbs { left:12px; right:12px; bottom:8px; justify-content:center; }
[data-design='urban'] .loop-card .facts { grid-template-columns:1fr; }
[data-design='urban'] .fact { background:rgba(255,255,255,.58); }
[data-design='urban'] .stat--generic .stat__value { font-size:1.4rem; line-height:1.2; min-height:2.4em; display:flex; align-items:center; }
[data-design='urban'] .loop-card .actions { margin-top:20px; }
[data-design='urban'] .loop-card .btn { width:100%; }
[data-design='urban'] .loop-card .sol__body { display:flex; flex-direction:column; }
[data-design='urban'] .loop-card .actions { margin-top:auto; padding-top:20px; }
[data-design='urban'] .map { background:#e2eaf1; }
[data-design='urban'] .hivestr-map { overflow:hidden; border-radius:20px; border:1px solid var(--glass-edge); background:var(--bg-2); box-shadow:var(--shadow-glass); }
[data-design='urban'] .hivestr-map iframe { display:block; width:100%; height:600px; border:0; }
@media(max-width:599px) { [data-design='urban'] .hivestr-map iframe { height:480px; } }
[data-design='urban'] .leaflet-tile-pane { filter:saturate(.65); }
[data-design='urban'] .agencies__grid { align-items:stretch; gap:var(--block-gap); }
[data-design='urban'] .agencies__grid > .section__head { display:flex; flex-direction:column; margin-bottom:0; }
[data-design='urban'] .agencies__grid .actions { margin-top:auto; padding-top:28px; }
[data-design='urban'] .table-card { background:var(--bg-2); height:100%; }
[data-design='urban'] .spec { height:100%; }
[data-design='urban'] .spec td { vertical-align:middle; }
[data-design='urban'] .final { padding-block:var(--section-space); background:linear-gradient(145deg,#123c67,#164a78); --text:#fff; --text-2:#e0eaf2; }
[data-design='urban'] .final__inner { background:rgba(255,255,255,.09); border-color:rgba(255,255,255,.24); box-shadow:0 1px 0 rgba(255,255,255,.2) inset,0 22px 44px -22px rgba(0,0,0,.3); padding:clamp(28px,4vw,48px); }
[data-design='urban'] .final .btn--glass { color:#123c67; }
[data-design='urban'] .footer { padding-top:40px; }
[data-design='urban'] .fab { background:linear-gradient(145deg,#226197,#123c67); color:#fff; box-shadow:var(--button-light); border:1px solid rgba(119,185,241,.4); }
[data-design='urban'] .reveal { opacity:1; transform:none; transition:none; }
[data-design='urban'].motion-ready .reveal:not(.is-in) { opacity:0; transform:translateY(20px); }
[data-design='urban'].motion-ready .reveal { transition:opacity 480ms var(--ease-out),transform 620ms var(--ease-out); }
@media(min-width:900px) {
  [data-design='urban'] .where__grid { align-items:stretch; }
  [data-design='urban'] .where__list { height:clamp(320px,56vh,620px); max-height:none; }
  [data-design='urban'] .hero { min-height:0; padding-top:calc(var(--nav-h) + 48px); gap:40px; }
  [data-design='urban'] .hero__media { height:clamp(440px,42vw,570px); }
  [data-design='urban'] .hero .display { font-size:clamp(3rem,5.3vw,4.65rem); }
  [data-design='urban'] .loop__grid { gap:0 24px; grid-template-rows:repeat(8,auto); }
  [data-design='urban'] .loop-card { grid-row:span 8; grid-template-rows:subgrid; }
  [data-design='urban'] .loop-card .sol__body { display:grid; grid-row:span 7; grid-template-rows:subgrid; padding-top:24px; row-gap:0; }
  [data-design='urban'] .loop-card .sol__index { padding-bottom:12px; }
  [data-design='urban'] .loop-card .h3 { margin:0; padding-bottom:14px; }
  [data-design='urban'] .loop-card .sol__what { margin:0; padding-bottom:22px; }
  [data-design='urban'] .loop-card .facts { grid-row:span 3; display:grid; grid-template-rows:subgrid; margin:0; gap:0; }
  [data-design='urban'] .loop-card .fact + .fact { border-top:1px solid var(--line); }
  [data-design='urban'] .loop-card .actions { margin:0; align-self:end; }
}
@supports not (grid-template-rows:subgrid) {
  [data-design='urban'] .loop-card { grid-template-rows:auto 1fr; }
  [data-design='urban'] .loop-card .sol__body { display:flex; }
  [data-design='urban'] .loop-card .facts { display:grid; }
}
@media(max-width:899px) { [data-design='urban'] .loop { border-radius:20px; } [data-design='urban'] .loop-card .sol__body { gap:0; } }
@media(prefers-reduced-motion:reduce) {
  [data-design='urban'] *,[data-design='urban'] *::before,[data-design='urban'] *::after { transition:none !important; animation:none !important; }
  [data-design='urban'].motion-ready .reveal:not(.is-in) { opacity:1; transform:none; }
  [data-design='urban'] .btn:hover { transform:none; }
}
@media(prefers-reduced-transparency:reduce) {
  html[data-design='urban'] { --bg-2:#fff; --bg-3:#fff; --glass:#f5f9fd; }
  [data-design='urban'] .loop-card { background:#f6fafd; }
  [data-design='urban'] .final__inner { background:#1c4973; }
  [data-design='urban'] .nav { backdrop-filter:none; -webkit-backdrop-filter:none; }
}
@media(forced-colors:active) { html[data-design='urban'] { scrollbar-color:auto; } [data-design='urban'] .btn { border:1px solid ButtonText; } }
