/* ==========================================================================
   grbhouston.com — site styles, ported verbatim from grb-mockups v4.13
   (review chrome, UX-note pins and type-test rules removed; tokens live in tokens.css)
   ========================================================================== */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--bfont);color:var(--ink-2);background:var(--paper);line-height:1.55;font-size:16px;-webkit-font-smoothing:antialiased}
img{max-width:100%}
a{color:inherit}
button{font-family:inherit;cursor:pointer}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.ph{position:relative;overflow:hidden;background:
  repeating-linear-gradient(135deg,var(--img-a) 0 14px,var(--img-b) 14px 28px);
  display:flex;align-items:flex-end}
.ph.dark{background:repeating-linear-gradient(135deg,var(--img-dark-a) 0 14px,var(--img-dark-b) 14px 28px)}
.ph .cap{font-family:var(--mono);font-size:11px;color:#fff;background:rgba(0,0,0,.65);
  padding:5px 9px;margin:10px;border-radius:3px;letter-spacing:.03em}
.utility{background:var(--ink);color:#e8e8e8;font-size:12.5px}
.utility .wrap{display:flex;align-items:center;justify-content:space-between;min-height:34px;gap:16px}
.utility .alert{display:flex;align-items:center;gap:8px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.utility .alert .dot{width:7px;height:7px;border-radius:50%;background:#fff;flex:0 0 auto}
.utility .links{display:flex;gap:18px;white-space:nowrap;align-items:center}
.utility a{text-decoration:none;opacity:.9}
.utility a:hover{opacity:1;text-decoration:underline}
.site-header{position:sticky;top:0;background:var(--paper);border-bottom:1px solid var(--line);z-index:400}
.site-header .wrap{display:flex;align-items:center;gap:28px;min-height:76px}
.logo{font-weight:800;letter-spacing:-.02em;font-size:21px;color:var(--ink);text-decoration:none;line-height:1.1}
.logo small{display:block;font-weight:500;font-size:10.5px;letter-spacing:.14em;color:var(--ink-4)}
.mainnav{display:flex;gap:2px;flex:1;justify-content:center}
.mainnav > ul{display:flex;gap:2px;list-style:none;margin:0;padding:0}
.mainnav > ul > li{position:static}
.site-header .wrap{position:relative}
.mainnav > ul > li > a{display:inline-flex;align-items:center;gap:6px;text-decoration:none;font-size:14.5px;font-weight:600;color:var(--ink-2);padding:10px 13px;border-radius:5px}
.mainnav > ul > li > a:hover,.mainnav > ul > li.open > a{background:var(--wash)}
.mainnav > ul > li > a.active{background:var(--ink);color:#fff}
.mainnav > ul > li > a .chev{width:12px;height:12px;transition:transform .15s}
.mainnav > ul > li.open > a .chev{transform:rotate(180deg)}
.header-cta{display:flex;align-items:center;gap:14px}
.header-cta .tel{font-size:13.5px;font-weight:700;text-decoration:none;color:var(--ink);white-space:nowrap}
.header-cta .tel small{display:block;font-weight:500;color:var(--ink-4);font-size:10.5px;letter-spacing:.08em}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;font-weight:700;
  border-radius:6px;border:2px solid var(--ink);padding:11px 20px;font-size:14.5px;line-height:1;white-space:nowrap;
  background:var(--ink);color:#fff}
.btn:hover{background:#000}
.btn.ghost{background:transparent;color:var(--ink)}
.btn.ghost:hover{background:var(--wash)}
.btn.lg{padding:15px 26px;font-size:16px}
.btn.sm{padding:8px 14px;font-size:13px;border-width:1.5px}
.btn.wht{background:#fff;color:var(--ink);border-color:#fff}
.btn.wht.ghost{background:transparent;color:#fff}
.crumbs{font-size:12.5px;color:var(--ink-4);padding:18px 0 0}
.crumbs a{color:var(--ink-3);text-decoration:none}
.crumbs a:hover{text-decoration:underline}
h1.page-title{font-size:clamp(30px,4.5vw,44px);letter-spacing:-.025em;color:var(--ink);line-height:1.08;margin:10px 0 0}
.lede{font-size:18px;color:var(--ink-3);max-width:68ch;margin-top:12px}
.eyebrow{font-family:var(--mono);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-4)}
h2.sec{font-size:clamp(22px,3vw,30px);letter-spacing:-.02em;color:var(--ink);line-height:1.15}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px;flex-wrap:wrap}
.sec-head .more{font-size:14px;font-weight:700;text-decoration:none;border-bottom:2px solid var(--ink);padding-bottom:2px;white-space:nowrap}
.chip{display:inline-block;font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;
  border:1px solid var(--line);border-radius:999px;padding:3px 10px;color:var(--ink-3);background:#fff}
.chip.solid{background:var(--ink);color:#fff;border-color:var(--ink)}
.pre-footer{background:var(--wash);border-top:1px solid var(--line)}
.pre-footer .wrap{display:grid;grid-template-columns:1.2fr .9fr;gap:40px;padding:56px 24px;align-items:center}
.pre-footer h2{font-size:clamp(24px,3vw,34px);letter-spacing:-.02em;color:var(--ink);line-height:1.12}
.pre-footer p{margin-top:10px;color:var(--ink-3);max-width:52ch}
.pre-footer .actions{display:flex;flex-direction:column;gap:12px;align-items:stretch}
.contact-inline{display:flex;gap:26px;margin-top:18px;flex-wrap:wrap}
.contact-inline a{text-decoration:none;font-weight:700;color:var(--ink);font-size:15px}
.contact-inline a small{display:block;font-weight:500;font-size:11px;letter-spacing:.1em;color:var(--ink-4);text-transform:uppercase}
.site-footer{background:var(--ink);color:#cfcfcf}
.site-footer .cols{display:grid;grid-template-columns:1.3fr repeat(var(--fcols,3),1fr);gap:36px;padding:52px 24px 40px}
.site-footer h4{color:#fff;font-size:13px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:14px}
.site-footer ul{list-style:none}
.site-footer li{margin-bottom:9px;font-size:14px}
.site-footer a{text-decoration:none;color:#cfcfcf}
.site-footer a:hover{color:#fff;text-decoration:underline}
.site-footer .flogo{font-weight:800;font-size:19px;color:#fff;letter-spacing:-.02em}
.site-footer .flogo small{display:block;font-weight:500;font-size:10px;letter-spacing:.14em;color:#9a9a9a}
.site-footer .addr{margin-top:12px;font-size:13.5px;line-height:1.7;color:#b5b5b5}
.site-footer .legal{border-top:1px solid #3a3a3a;padding:18px 24px;display:flex;justify-content:space-between;gap:16px;
  font-size:12px;color:#9a9a9a;flex-wrap:wrap}
.spons-band{background:var(--wash-2);border-top:1px solid var(--line)}
.spons-band .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 24px;flex-wrap:wrap}
.spons-band .t b{color:var(--ink)}
.spons-band .t{font-size:14.5px;color:var(--ink-3)}
.hero{position:relative;background:repeating-linear-gradient(135deg,#4E5F75 0 16px,#3F4E61 16px 32px);color:#fff}
.hero .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;padding:72px 24px 80px;align-items:end;min-height:520px}
.hero .badge{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;
  text-transform:uppercase;border:1px solid rgba(255,255,255,.5);border-radius:999px;padding:6px 14px;margin-bottom:18px}
.hero h1{font-size:clamp(36px,5.6vw,62px);line-height:1.02;letter-spacing:-.03em;font-weight:800}
.hero p{margin-top:16px;font-size:18px;color:#e2e2e2;max-width:52ch}
.hero .cta-row{display:flex;gap:14px;margin-top:26px;flex-wrap:wrap}
.hero .cap-tag{position:absolute;top:14px;right:14px;font-family:var(--mono);font-size:11px;background:rgba(0,0,0,.65);
  padding:5px 9px;border-radius:3px}
.hero .fastfacts{background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.25);border-radius:10px;padding:22px;backdrop-filter:blur(2px)}
.hero .fastfacts h3{font-family:var(--mono);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:#bbb;margin-bottom:14px}
.hero .fastfacts ul{list-style:none}
.hero .fastfacts li{display:flex;justify-content:space-between;gap:14px;padding:9px 0;border-top:1px solid rgba(255,255,255,.15);font-size:14px}
.hero .fastfacts li:first-of-type{border-top:0}
.hero .fastfacts b{font-size:15px;white-space:nowrap}
.router{border-bottom:1px solid var(--line)}
.router .wrap{display:grid;grid-template-columns:1fr 1fr;gap:0;padding:0}
.router .cell{padding:44px 40px;border-left:1px solid var(--line)}
.router .cell:first-child{border-left:0}
.router h2{font-size:24px;letter-spacing:-.02em;color:var(--ink)}
.router p{color:var(--ink-3);margin-top:6px;font-size:15px}
.router ul{list-style:none;margin-top:18px}
.router li a{display:flex;justify-content:space-between;align-items:center;gap:12px;text-decoration:none;font-weight:600;
  font-size:15.5px;color:var(--ink);padding:13px 4px;border-top:1px solid var(--line-soft)}
.router li a:hover{background:var(--wash)}
.router li a .arr{font-family:var(--mono);color:var(--ink-4)}
.router .cellcta{margin-top:16px}
.events-strip{padding:56px 0}
.ev-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.ev-card{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff;text-decoration:none;display:block}
.ev-card .ph{height:120px}
.ev-card .body{padding:14px 16px 16px}
.ev-card .date{font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;color:var(--ink-4);text-transform:uppercase}
.ev-card h3{font-size:16px;line-height:1.3;color:var(--ink);margin-top:6px}
.ev-card .meta{margin-top:8px;font-size:12.5px;color:var(--ink-3)}
.transform{background:var(--ink);color:#fff}
.transform .wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:44px;padding:72px 24px;align-items:center}
.transform h2{font-size:clamp(28px,3.6vw,40px);letter-spacing:-.025em;line-height:1.08}
.transform p{margin-top:14px;color:#cfcfcf;max-width:50ch}
.transform .stats{display:grid;grid-template-columns:1fr 1fr;gap:2px;margin-top:26px;background:#3a3a3a;border:1px solid #3a3a3a;border-radius:8px;overflow:hidden}
.transform .stats div{background:#1d1d1d;padding:16px 18px}
.transform .stats b{display:block;font-size:24px;letter-spacing:-.02em}
.transform .stats span{font-size:12px;color:#aaa;letter-spacing:.04em}
.transform .media{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;gap:10px;height:420px}
.transform .media .ph:first-child{grid-row:1/3}
.transform .cta-row{display:flex;gap:12px;margin-top:26px;flex-wrap:wrap}
.answers{background:var(--wash);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:52px 0}
.answers .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:8px}
.answers .qa{background:#fff;border:1px solid var(--line);border-radius:8px;padding:20px}
.answers .qa h3{font-size:16px;color:var(--ink);line-height:1.35}
.answers .qa p{font-size:14px;color:var(--ink-3);margin-top:8px}
.answers .qa a{font-size:13.5px;font-weight:700;display:inline-block;margin-top:12px}
.toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:20px 0;border-bottom:1px solid var(--line)}
.toolbar .grow{flex:1}
.seg{display:inline-flex;border:1.5px solid var(--ink);border-radius:6px;overflow:hidden}
.seg button{border:0;background:#fff;padding:9px 16px;font-size:13.5px;font-weight:700;color:var(--ink)}
.seg button.on{background:var(--ink);color:#fff}
.field{display:flex;flex-direction:column;gap:5px}
.field label{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3)}
.field select,.field input[type=text],.field input[type=email],.field input[type=tel],.field input[type=date],.field textarea{border:1.5px solid var(--line);border-radius:6px;padding:10px 12px;font-size:14.5px;font-family:inherit;background:#fff;color:var(--ink);min-width:160px}
.field textarea{min-height:110px;resize:vertical}
.searchbox{display:flex;border:1.5px solid var(--line);border-radius:6px;overflow:hidden;background:#fff}
.searchbox input{border:0;padding:10px 14px;font-size:14.5px;min-width:220px;font-family:inherit}
.searchbox button{border:0;background:var(--ink);color:#fff;padding:0 16px;font-weight:700}
.cal-layout{display:grid;grid-template-columns:1fr 300px;gap:36px;padding:32px 0 64px}
.day-group{margin-bottom:8px}
.day-head{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-4);
  padding:18px 0 10px;border-bottom:2px solid var(--ink);display:flex;justify-content:space-between}
.ev-row{display:grid;grid-template-columns:86px 1fr auto;gap:20px;padding:18px 0;border-bottom:1px solid var(--line-soft);align-items:center}
.ev-row .datebox{border:1.5px solid var(--ink);border-radius:8px;text-align:center;padding:8px 4px}
.ev-row .datebox b{display:block;font-size:22px;letter-spacing:-.02em;color:var(--ink);line-height:1}
.ev-row .datebox span{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.ev-row h3{font-size:17px;color:var(--ink);line-height:1.3}
.ev-row h3 a{text-decoration:none}
.ev-row h3 a:hover{text-decoration:underline}
.ev-row .sub{font-size:13px;color:var(--ink-3);margin-top:5px;display:flex;gap:14px;flex-wrap:wrap}
.ev-row .actions{display:flex;flex-direction:column;gap:8px;align-items:flex-end}
.rail{display:flex;flex-direction:column;gap:20px}
.rail-card{border:1px solid var(--line);border-radius:8px;padding:20px;background:#fff}
.rail-card.dark{background:var(--ink);color:#fff;border-color:var(--ink)}
.rail-card h3{font-size:16px;line-height:1.3;color:inherit}
.rail-card p{font-size:13.5px;margin-top:8px;color:var(--ink-3)}
.rail-card.dark p{color:#cfcfcf}
.rail-card ul{list-style:none;margin-top:12px}
.rail-card li a{display:flex;justify-content:space-between;text-decoration:none;font-size:14px;font-weight:600;
  padding:9px 0;border-top:1px solid var(--line-soft);color:var(--ink)}
.rail-card .btn{margin-top:14px;width:100%}
.pager{display:flex;justify-content:center;gap:8px;padding:8px 0 0}
.pager a{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--line);
  border-radius:6px;text-decoration:none;font-weight:700;font-size:13.5px}
.pager a.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.listings-layout{display:grid;grid-template-columns:260px 1fr;gap:36px;padding:28px 0 64px}
.filters{position:sticky;top:calc(0 + 92px);align-self:start;border:1px solid var(--line);border-radius:8px;padding:20px;background:#fff}
.filters h3{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);margin-bottom:4px}
.fgroup{padding:14px 0;border-top:1px solid var(--line-soft)}
.fgroup:first-of-type{border-top:0;padding-top:8px}
.fgroup h4{font-size:13.5px;color:var(--ink);margin-bottom:10px}
.fgroup label{display:flex;gap:9px;align-items:center;font-size:14px;color:var(--ink-2);padding:4px 0}
.fgroup input[type=checkbox]{accent-color:#141414;width:15px;height:15px}
.range-note{font-family:var(--mono);font-size:11px;color:var(--ink-4);margin-top:6px}
.list-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.space-card{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff;display:flex;flex-direction:column}
.space-card .ph{height:180px}
.space-card .body{padding:18px 20px 20px;display:flex;flex-direction:column;gap:10px;flex:1}
.space-card h3{font-size:18px;letter-spacing:-.01em;color:var(--ink)}
.space-card .dims{font-family:var(--mono);font-size:12px;color:var(--ink-3)}
.cap-chips{display:flex;gap:8px;flex-wrap:wrap}
.cap-chips span{border:1px solid var(--line);border-radius:6px;padding:6px 10px;font-size:12px;color:var(--ink-2);background:var(--wash)}
.cap-chips b{display:block;font-size:15px;color:var(--ink);letter-spacing:-.01em}
.space-card .card-actions{margin-top:auto;display:flex;gap:10px;padding-top:6px}
.compare-tray{position:sticky;bottom:0;background:var(--ink);color:#fff;border-radius:10px 10px 0 0;
  display:flex;align-items:center;gap:18px;padding:14px 20px;margin-top:28px}
.compare-tray .slots{display:flex;gap:10px;flex:1}
.compare-tray .slot{border:1px dashed #6a6a6a;border-radius:6px;padding:8px 14px;font-size:13px;color:#bbb}
.compare-tray .slot.filled{border-style:solid;border-color:#fff;color:#fff;font-weight:700}
.content-hero{border-bottom:1px solid var(--line);padding-bottom:32px}
.content-hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:end;padding-top:0}
.content-hero .ph{height:280px;border-radius:8px}
.content-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:48px;padding:40px 0 64px}
.toc{position:sticky;top:calc(0 + 92px);align-self:start}
.toc h4{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-4);margin-bottom:10px}
.toc ol{list-style:none;border-left:2px solid var(--line)}
.toc a{display:block;text-decoration:none;font-size:13.5px;padding:7px 0 7px 14px;color:var(--ink-3);border-left:2px solid transparent;margin-left:-2px}
.toc a.on{color:var(--ink);font-weight:700;border-left-color:var(--ink)}
.article h2{font-size:24px;letter-spacing:-.02em;color:var(--ink);margin:40px 0 12px;scroll-margin-top:140px}
.article h2:first-of-type{margin-top:0}
.article p{margin-bottom:14px;max-width:70ch;color:var(--ink-2)}
.article .ph{height:300px;border-radius:8px;margin:22px 0}
.widget{border:1px solid var(--line);border-radius:8px;margin:24px 0;overflow:hidden;background:#fff}
.widget .whead{background:var(--wash);border-bottom:1px solid var(--line);padding:12px 18px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.widget .whead h3{font-size:14px;letter-spacing:.02em;color:var(--ink)}
.widget .whead .wtag{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-4)}
.widget .wbody{padding:18px}
table.rates{width:100%;border-collapse:collapse;font-size:14px}
table.rates th{text-align:left;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);
  border-bottom:2px solid var(--ink);padding:8px 10px}
table.rates td{padding:11px 10px;border-bottom:1px solid var(--line-soft);color:var(--ink-2)}
table.rates td b{color:var(--ink)}
.notice{display:flex;gap:14px;border:1.5px solid var(--ink);border-radius:8px;padding:16px 18px;margin:24px 0;background:var(--wash)}
.notice .ic{width:26px;height:26px;border-radius:50%;background:var(--ink);color:#fff;display:flex;align-items:center;
  justify-content:center;font-weight:800;flex:0 0 auto}
.notice p{margin:0;font-size:14px}
.steps{counter-reset:step;list-style:none;margin:18px 0}
.steps li{counter-increment:step;display:flex;gap:16px;padding:14px 0;border-top:1px solid var(--line-soft)}
.steps li::before{content:counter(step);width:30px;height:30px;border-radius:50%;border:2px solid var(--ink);
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;flex:0 0 auto;color:var(--ink)}
.steps b{display:block;color:var(--ink)}
.steps p{margin:2px 0 0;font-size:14px}
.contact-card{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center}
.contact-card .avatar{width:64px;height:64px;border-radius:50%;background:repeating-linear-gradient(135deg,var(--img-a) 0 8px,var(--img-b) 8px 16px)}
.contact-card b{display:block;font-size:16px;color:var(--ink)}
.contact-card span{font-size:13px;color:var(--ink-3)}
.contact-card .ways{display:flex;gap:10px;flex-wrap:wrap}
.dl-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 0;border-top:1px solid var(--line-soft)}
.dl-row:first-of-type{border-top:0}
.dl-row .fmeta{font-family:var(--mono);font-size:11px;color:var(--ink-4)}
.dl-row b{font-size:14.5px;color:var(--ink)}
.related{background:var(--wash);border-top:1px solid var(--line);padding:48px 0 56px}
.rel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.rel-grid a{background:#fff;border:1px solid var(--line);border-radius:8px;padding:18px;text-decoration:none;display:block}
.rel-grid b{color:var(--ink);font-size:15.5px}
.rel-grid p{font-size:13px;color:var(--ink-3);margin-top:6px}
.form-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:48px;padding:36px 0 64px}
.progress{display:flex;gap:0;border:1.5px solid var(--ink);border-radius:8px;overflow:hidden;margin-bottom:30px}
.progress div{flex:1;padding:12px 16px;font-size:13px;font-weight:700;color:var(--ink-3);border-left:1.5px solid var(--line);display:flex;gap:10px;align-items:center}
.progress div:first-child{border-left:0}
.progress div.on{background:var(--ink);color:#fff}
.progress .num{width:22px;height:22px;border-radius:50%;border:2px solid currentColor;display:flex;align-items:center;justify-content:center;font-size:11.5px;flex:0 0 auto}
fieldset{border:1px solid var(--line);border-radius:8px;padding:24px;margin-bottom:24px;background:#fff}
legend{font-weight:800;font-size:16px;color:var(--ink);padding:0 10px;letter-spacing:-.01em}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}
.frow.single{grid-template-columns:1fr}
.frow:last-child{margin-bottom:0}
.hint{font-size:12px;color:var(--ink-4);margin-top:4px}
.req{color:var(--ink);font-weight:800}
.radio-cards{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.radio-cards label{border:1.5px solid var(--line);border-radius:8px;padding:14px;font-size:13.5px;display:flex;gap:10px;cursor:pointer}
.radio-cards label.on{border-color:var(--ink);background:var(--wash);font-weight:700}
.form-actions{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.alt-path{border:1.5px dashed var(--line);border-radius:8px;padding:16px 18px;margin-top:26px;font-size:14px;color:var(--ink-3);
  display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.gal-tabs{display:flex;gap:8px;flex-wrap:wrap;padding:22px 0;border-bottom:1px solid var(--line)}
.gal-tabs button{border:1.5px solid var(--line);background:#fff;border-radius:999px;padding:9px 18px;font-size:13.5px;font-weight:700;color:var(--ink-2)}
.gal-tabs button.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.masonry{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:28px 0 8px}
.gal-item{break-inside:avoid;margin-bottom:0;border-radius:8px;overflow:hidden;position:relative;display:block}
.gal-item .ph{width:100%}
.gal-item .gcap{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(0,0,0,.75));
  color:#fff;padding:26px 14px 12px;font-size:12.5px;line-height:1.4}
.gal-item .gcap b{display:block;font-size:13.5px}
.timeline{border-top:1px solid var(--line);background:var(--wash);padding:48px 0 56px}
.tl-track{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:26px;position:relative}
.tl-track::before{content:"";position:absolute;top:11px;left:0;right:0;height:2px;background:var(--line)}
.tl-node{position:relative;padding:0 18px 0 0}
.tl-node .dot{width:22px;height:22px;border-radius:50%;background:#fff;border:3px solid var(--ink);position:relative;z-index:1}
.tl-node .dot.done{background:var(--ink)}
.tl-node b{display:block;margin-top:12px;font-size:15px;color:var(--ink)}
.tl-node span{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--ink-4);text-transform:uppercase}
.tl-node p{font-size:13px;color:var(--ink-3);margin-top:6px}
.faq-hero{background:var(--wash);border-bottom:1px solid var(--line);padding:44px 0}
.faq-hero .searchbox{max-width:560px;margin-top:20px}
.faq-hero .searchbox input{flex:1}
.pop-queries{margin-top:12px;font-size:13px;color:var(--ink-3)}
.pop-queries a{margin-right:14px}
.faq-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:48px;padding:40px 0 64px}
.faq-group h2{font-size:21px;letter-spacing:-.015em;color:var(--ink);margin:34px 0 6px;scroll-margin-top:140px}
.faq-group h2:first-of-type{margin-top:0}
details.qa{border-bottom:1px solid var(--line-soft)}
details.qa summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:16px;align-items:center;
  padding:16px 2px;font-weight:700;font-size:15.5px;color:var(--ink)}
details.qa summary::-webkit-details-marker{display:none}
details.qa summary .tog{font-family:var(--mono);font-size:18px;color:var(--ink-4);flex:0 0 auto}
details.qa[open] summary .tog::before{content:"–"}
details.qa summary .tog::before{content:"+"}
details.qa .ans{padding:0 2px 18px;max-width:70ch}
details.qa .ans p{font-size:14.5px;color:var(--ink-2);margin-bottom:10px}
details.qa .ans .direct{font-weight:600;color:var(--ink)}
details.qa .ans a{font-weight:700}
.map-tabs{display:flex;gap:0;border:1.5px solid var(--ink);border-radius:8px;overflow:hidden;margin:24px 0 0;width:fit-content}
.map-tabs button{border:0;border-left:1.5px solid var(--ink);background:#fff;padding:12px 22px;font-size:14px;font-weight:700;color:var(--ink)}
.map-tabs button:first-child{border-left:0}
.map-tabs button.on{background:var(--ink);color:#fff}
.map-stage{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:0;border:1px solid var(--line);border-radius:10px;
  overflow:hidden;margin:24px 0 8px;min-height:460px}
.map-canvas{position:relative;background:
  linear-gradient(#e3e3e2 1px,transparent 1px),linear-gradient(90deg,#e3e3e2 1px,transparent 1px);
  background-size:34px 34px;background-color:#f2f2f1}
.map-canvas .you{position:absolute;top:44%;left:46%;background:var(--ink);color:#fff;font-family:var(--mono);
  font-size:11px;padding:6px 10px;border-radius:5px}
.map-canvas .poi{position:absolute;background:#fff;border:1.5px solid var(--ink);font-family:var(--mono);
  font-size:10.5px;padding:4px 8px;border-radius:4px;color:var(--ink)}
.map-side{border-left:1px solid var(--line);background:#fff;padding:20px;overflow:auto}
.map-side h3{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);margin-bottom:12px}
.layer{display:flex;gap:10px;align-items:center;padding:9px 0;border-top:1px solid var(--line-soft);font-size:14px}
.layer:first-of-type{border-top:0}
.layer input{accent-color:#141414;width:15px;height:15px}
.garage-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:20px}
.garage{border:1px solid var(--line);border-radius:8px;padding:18px;background:#fff}
.garage .avail{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.garage .avail b{font-size:22px;letter-spacing:-.02em;color:var(--ink)}
.garage .avail span{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4)}
.garage h3{font-size:16px;color:var(--ink);margin-top:8px}
.garage ul{list-style:none;margin-top:10px}
.garage li{font-size:13px;color:var(--ink-3);padding:5px 0;border-top:1px solid var(--line-soft);display:flex;justify-content:space-between}
.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:20px}
.mode{border:1px solid var(--line);border-radius:8px;padding:20px;background:#fff;display:grid;grid-template-columns:auto 1fr;gap:16px}
.mode .mic{width:46px;height:46px;border-radius:8px;background:var(--ink);color:#fff;display:flex;align-items:center;
  justify-content:center;font-family:var(--mono);font-size:11px}
.mode h3{font-size:16.5px;color:var(--ink)}
.mode p{font-size:13.5px;color:var(--ink-3);margin-top:5px}
.mode .fact{font-family:var(--mono);font-size:11.5px;color:var(--ink-4);margin-top:8px}
.section{padding:56px 0}
.section.tight{padding:40px 0}
.band-cta{background:var(--ink);color:#fff}
.band-cta .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:40px 24px;flex-wrap:wrap}
.band-cta h2{font-size:clamp(22px,3vw,30px);letter-spacing:-.02em;line-height:1.15}
.band-cta p{color:#cfcfcf;margin-top:6px;font-size:15px}
.band-cta .acts{display:flex;gap:12px;flex-wrap:wrap}
@media (max-width:980px){.hero .wrap,.transform .wrap,.pre-footer .wrap,.content-hero .wrap{grid-template-columns:1fr}
.router .wrap{grid-template-columns:1fr}
.router .cell{border-left:0;border-top:1px solid var(--line)}
.ev-grid{grid-template-columns:1fr 1fr}
.cal-layout,.listings-layout,.content-layout,.form-layout,.faq-layout{grid-template-columns:1fr}
.filters,.toc{position:static}
.list-grid,.answers .grid,.rel-grid,.garage-grid{grid-template-columns:1fr 1fr}
.masonry{grid-template-columns:repeat(2,minmax(0,1fr))}
.site-footer .cols{grid-template-columns:1fr 1fr}
.map-stage{grid-template-columns:1fr}
.map-side{border-left:0;border-top:1px solid var(--line)}
.tl-track{grid-template-columns:1fr 1fr;row-gap:28px}
}
@media (max-width:640px){.ev-grid,.list-grid,.answers .grid,.rel-grid,.garage-grid,.mode-grid,.frow,.radio-cards{grid-template-columns:1fr}
.masonry{grid-template-columns:1fr}
.mainnav{display:none}
.site-footer .cols{grid-template-columns:1fr}
.ev-row{grid-template-columns:64px 1fr}
.ev-row .actions{grid-column:2;align-items:flex-start;flex-direction:row}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}
}

/* ============================================================
   V2 COLOR PASS — role-based overrides on the v1 structure
   Gold = lead actions only · Blue = attendee/wayfinding + future
   Sage = planner/venue + live status · Ink black speaks · Brown frames
   ============================================================ */
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.utility{background:var(--brown-deep)}
.utility .alert .dot{background:var(--gold)}
.site-footer{background:var(--brown-deep);color:#D9CDC1}
.site-footer a{color:#D9CDC1}
.site-footer .addr{color:#C9BBAD}
.site-footer .flogo small{color:#B09A85}
.site-footer .legal{border-top-color:#5E4A3B;color:#B09A85}
.site-footer h4{color:#fff}
.btn:hover{background:#000}
.btn.gold{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.btn.gold:hover{background:var(--gold-deep);border-color:var(--gold-deep);color:#000}
.btn.wht{background:#fff;color:var(--ink);border-color:#fff}
.btn.wht.ghost{background:transparent;color:#fff;border-color:#fff}
.chip.solid{background:var(--blue-deep);border-color:var(--blue-deep);color:#fff}
.chip.solid.gold{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.chip.live{background:var(--sage);border-color:var(--sage);color:#fff}
.router .cell:first-child{border-top:4px solid var(--sage)}
.router .cell:last-child{border-top:4px solid var(--blue)}
.router .cell:first-child .eyebrow{color:var(--sage)}
.router .cell:last-child .eyebrow{color:var(--blue-deep)}
.transform{background:var(--sage-deep)}
.transform .stats{background:#4C5F52;border-color:#4C5F52}
.transform .stats div{background:#33443A}
.transform .stats span{color:#B9C8BC}
.transform p{color:#D6DED6}
.cal-layout .day-head{border-bottom-color:var(--blue-deep);color:var(--blue-deep)}
.ev-row .datebox{border-color:var(--blue-deep)}
.ev-row .datebox b{color:var(--blue-deep)}
.rail-card.dark{background:var(--sage-deep);border-color:var(--sage-deep)}
.cap-chips span{background:var(--sage-wash);border-color:#CBD8CF}
.compare-tray{background:var(--sage-deep)}
.compare-tray .slot{border-color:#7E958A;color:#C6D2C9}
.compare-tray .slot.filled{border-color:#fff;color:#fff}
.notice{border-color:var(--gold-deep);background:var(--gold-wash)}
.notice .ic{background:var(--gold-deep);color:#141414}
.steps li::before{border-color:var(--sage);color:var(--sage)}
.widget .whead{background:var(--wash)}
.progress div.on{background:var(--ink)}
.tl-node .dot{border-color:var(--sage);background:#fff}
.tl-node .dot.done{background:var(--sage)}
.tl-track::before{background:var(--line)}
.faq-hero{background:var(--blue-wash);border-bottom-color:#D5E2F1}
.pop-queries a{color:var(--blue-deep)}
details.qa .ans a{color:var(--blue-deep)}
.map-canvas{background:
  linear-gradient(#D9E4F0 1px,transparent 1px),linear-gradient(90deg,#D9E4F0 1px,transparent 1px);
  background-size:34px 34px;background-color:#F3F7FB}
.map-canvas .you{background:var(--ink)}
.map-canvas .poi{border-color:var(--blue-deep);color:var(--blue-deep)}
.mode .mic{background:var(--blue-deep)}
.garage .avail b{color:var(--sage-deep)}
.answers .qa a{color:var(--sage-deep)}
.mini{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:6px;padding:6px 10px;font-family:var(--mono);font-size:11px;background:#fff;color:var(--ink-2)}
.mini i{width:22px;height:22px;border-radius:4px;display:inline-block;border:1px solid rgba(0,0,0,.08)}
table.contrast{width:100%;border-collapse:collapse;font-size:13.5px;margin-top:16px;background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden}
table.contrast th{text-align:left;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);border-bottom:2px solid var(--brown);padding:10px 14px;background:var(--wash)}
table.contrast td{padding:10px 14px;border-bottom:1px solid var(--line-soft)}
table.contrast .pair{display:inline-block;border-radius:5px;padding:4px 12px;font-weight:700;font-size:12.5px}
@media (max-width:980px){.sw-grid{grid-template-columns:1fr 1fr}
}


/* ============ V4 IMAGERY PASS ============ */
.imgv{background-size:cover;background-position:center;position:relative;overflow:hidden;
  display:flex;align-items:flex-end}
.im-exconec{background-image:url(../img/site/img-65c02e9fb6.jpg)}
.im-etat{background-image:url(../img/site/img-c988ff9ed5.jpg)}
.im-grandstand{background-image:url(../img/site/img-24f44f6d2b.jpg)}
.im-entourage{background-image:url(../img/site/img-26b3cdc826.jpg)}
.im-corner{background-image:url(../img/site/img-387b982d61.jpg)}
.im-square{background-image:url(../img/site/img-1024c76655.jpg)}
.imgv .cap{font-family:var(--mono);font-size:11px;color:#fff;background:rgba(0,0,0,.62);
  padding:5px 9px;margin:10px;border-radius:3px;letter-spacing:.03em}
.hero{background:linear-gradient(180deg,rgba(13,20,30,.44) 0%,rgba(13,20,30,.34) 45%,rgba(11,17,26,.68) 100%),
  url(../img/site/img-b919f7f2ad.jpg) center/cover}
.logo{display:flex;align-items:center;gap:11px}
.logo .logo-mark{height:54px;width:auto;display:block}
.site-footer .flogo{display:flex;align-items:center;gap:11px}
.site-footer .flogo .logo-mark{height:48px;width:auto;display:block}
.gal-item .imgv{width:100%}
.ev-card .imgv{height:120px}
.space-card .imgv{height:180px}
.content-hero .imgv{height:280px;border-radius:8px}
.article .imgv{height:300px;border-radius:8px;margin:22px 0}
.contact-card .avatar{background:var(--brown) url(../img/site/img-52d560757b.png) center/58% no-repeat}


/* Mock Google Translate widget (utility bar) */
.gtx{display:inline-flex;align-items:center;gap:6px;background:#fff;border-radius:4px;padding:2px 4px 2px 8px}
.gtx select{border:0;background:transparent;font-family:var(--sans);font-size:12px;color:#3B3B3B;
  padding:1px 2px;cursor:pointer;max-width:130px}
.gtx select:focus{outline:none}
body{font-family:var(--bfont, var(--sans))}
h1,h2{font-family:var(--dfont, inherit)}
@media (max-width:980px){body.home .hero{background-attachment:scroll}
}


/* v4.9 — diagrammatic placeholder map */
.map-canvas .pmap{position:absolute;inset:0;width:100%;height:100%;display:block}
.pmap text{font-family:var(--mono)}
.ev-card .body{padding:18px 20px 20px}
.ev-card .date{font-size:12.5px}
.ev-card h3{font-size:19px;line-height:1.25}
.ev-card .meta{font-size:13.5px;margin-top:10px}
.imgv .gcap{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(0,0,0,.75));
  color:#fff;padding:26px 14px 12px;font-size:12.5px;line-height:1.4}
.imgv .gcap b{display:block;font-size:13.5px}
.transform .media{height:420px}
.transform .media .imgv:first-child{grid-row:1/3}
.transform .media .gcap{padding:18px 12px 10px;font-size:11px}
.transform .media .gcap b{font-size:12.5px}
.space-card .imgv{height:auto;aspect-ratio:4/3}
.content-hero .imgv{height:280px;aspect-ratio:auto;overflow:hidden}
.content-hero .imgv img{width:100%;height:100%;object-fit:cover;display:block}
.content-hero .wrap{padding-top:28px}
.article .imgv{height:auto;aspect-ratio:4/3}

/* ---- additions ---- */
body.home .hero{background-attachment:fixed;background-size:cover;background-position:center 20%}
h1,h2{font-family:var(--dfont);font-weight:700;letter-spacing:-.02em}
h3,h4{font-family:var(--dfont)}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:10px 14px;border-radius:6px;z-index:1000}
.skip:focus{left:8px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap.narrow{max-width:800px}
.section{padding:64px 0}
.lede{font-size:18px;color:var(--ink-3);max-width:60ch;margin-top:14px}

/* ==========================================================================
   Block builder additions (Phase 2)
   ========================================================================== */
.content-layout.no-aside{grid-template-columns:minmax(0,820px)}
.content-layout.has-aside{grid-template-columns:230px minmax(0,1fr) 300px}
.content-layout .sidebar{align-self:start;position:sticky;top:92px;display:flex;flex-direction:column;gap:18px}
.content-layout .sidebar:empty{display:none}
.toc:empty{display:none}
.anchor-target{position:relative;top:-120px;visibility:hidden;height:0}
.article .rich h3{font-size:19px;margin:28px 0 8px;color:var(--ink)}
.article .rich h4{font-size:16px;margin:22px 0 6px;color:var(--ink)}
.article .rich ul,.article .rich ol{margin:0 0 16px 22px;color:var(--ink-2)}
.article .rich li{margin-bottom:6px}
.article .rich table{width:100%;border-collapse:collapse;font-size:14px;margin:12px 0 18px}
.article .rich th,.article .rich td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line-soft);vertical-align:top}
.article .rich th{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-4)}
.article .rich blockquote{border-left:3px solid var(--gold);padding:4px 0 4px 18px;margin:18px 0;color:var(--ink-3);font-size:17px}
.article .rich a{color:var(--sage-deep);font-weight:600}
.article .rich img{border-radius:8px;margin:12px 0}
.notice.tone-sage{border-color:var(--sage);background:var(--sage-wash)}.notice.tone-sage .ic{background:var(--sage);color:#fff}
.notice.tone-blue{border-color:var(--blue-deep);background:var(--blue-wash)}.notice.tone-blue .ic{background:var(--blue-deep);color:#fff}
.notice .ic{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:14px;flex:none}
.notice > div p:last-child{margin-bottom:0}
hr.divider{border:0;border-top:1px solid var(--line);margin:28px 0}
hr.divider.large{margin:48px 0}
.cta-row.center{justify-content:center}
.fig{margin:22px 0}
.fig img{width:100%;height:auto;border-radius:8px;display:block}
.fig.wide{margin-left:calc(50% - 50vw + 24px);margin-right:calc(50% - 50vw + 24px)}
@media (min-width:1248px){.fig.wide{margin-left:-110px;margin-right:-110px}}
.fig .gcap{position:static;margin-top:10px;background:transparent;color:var(--ink-3);padding:0;font-size:13px}
.fig .gcap b{display:block;color:var(--ink);font-size:14px}
.fig.video .video-frame{position:relative;aspect-ratio:16/9;border-radius:8px;overflow:hidden;background:#000}
.fig.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.gal-grid{display:grid;gap:14px;margin:22px 0}
.gal-grid.cols-2{grid-template-columns:repeat(2,1fr)}.gal-grid.cols-3{grid-template-columns:repeat(3,1fr)}.gal-grid.cols-4{grid-template-columns:repeat(4,1fr)}
.gal-grid .gal-item{margin:0}
.gal-grid .imgv{aspect-ratio:4/3;height:auto;border-radius:8px;margin:0;background-size:cover;background-position:center}
.cols{display:grid;gap:28px;margin:22px 0}
.cols.cols-2{grid-template-columns:1fr 1fr}.cols.cols-3{grid-template-columns:repeat(3,1fr)}
.cols .rich h3{margin-top:0}
.band-cta.tone-sage{background:var(--sage-deep)}.band-cta.tone-brown{background:var(--brown-deep)}
.stat-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden;margin:22px 0}
.stat-tiles > div{background:#fff;padding:18px 20px}
.stat-tiles b{display:block;font-family:var(--dfont);font-size:30px;letter-spacing:-.03em;color:var(--ink);line-height:1}
.stat-tiles span{display:block;font-size:12.5px;color:var(--ink-3);margin-top:6px}
.stat-tiles.dark{background:#2d3a32;border-color:#2d3a32}.stat-tiles.dark > div{background:var(--sage-deep)}.stat-tiles.dark b{color:#fff}.stat-tiles.dark span{color:#C9D6CC}
.article-head{padding-top:28px}
.article-head .chip{margin-bottom:14px}
.article-head .byline{font-size:13.5px;color:var(--ink-4);margin:10px 0 0}
.article-head .lede{margin-top:16px}
.article-hero{margin:24px 0 0}
.article-hero img{width:100%;height:auto;border-radius:10px;aspect-ratio:5/2;object-fit:cover}
.imgv{background-size:cover;background-position:center}
@media (max-width:980px){.content-layout.has-aside{grid-template-columns:1fr}.content-layout .sidebar{position:static}.cols.cols-2,.cols.cols-3{grid-template-columns:1fr}.gal-grid.cols-3,.gal-grid.cols-4{grid-template-columns:1fr 1fr}.fig.wide{margin-left:0;margin-right:0}}
@media (max-width:640px){.gal-grid.cols-2,.gal-grid.cols-3,.gal-grid.cols-4{grid-template-columns:1fr}}

/* ---- Builder edit mode (only when the page is loaded inside the admin) ---- */
body.editing .blk{position:relative;outline:1.5px dashed transparent;outline-offset:-1.5px;transition:outline-color .12s}
body.editing .blk:hover{outline-color:rgba(62,94,128,.55)}
body.editing .blk.selected{outline:2px solid var(--blue-deep);outline-offset:-2px}
body.editing .blk.blk-hidden{opacity:.45}
body.editing .blk-tag{position:absolute;top:6px;right:6px;z-index:5;display:none;gap:4px;align-items:center;background:var(--ink);color:#fff;font:600 11px/1 var(--bfont);padding:5px 8px;border-radius:5px;pointer-events:none}
body.editing .blk:hover .blk-tag,body.editing .blk.selected .blk-tag{display:inline-flex}
body.editing .blk-add{display:flex;justify-content:center;padding:10px;margin:8px 0}
body.editing .blk-add span{border:1.5px dashed var(--line);color:var(--ink-3);border-radius:8px;padding:10px 18px;font:600 13.5px var(--bfont);cursor:pointer;background:#fff;width:100%;text-align:center}
body.editing .blk-add span:hover{border-color:var(--ink);color:var(--ink)}
body.editing .blk.dragging{opacity:.4}
body.editing .blk.drop-before{box-shadow:0 -4px 0 0 var(--gold)}
body.editing .blk.drop-after{box-shadow:0 4px 0 0 var(--gold)}
body.editing a{pointer-events:none}
body.editing .blk-missing{padding:18px;border:1.5px dashed var(--danger);color:var(--danger);border-radius:8px;margin:12px 24px}

.preview-bar{background:var(--gold);color:var(--ink);font:600 13px var(--bfont);text-align:center;padding:9px 16px}
.content-hero .wrap:has(> div:only-child){grid-template-columns:1fr}
.content-layout:has(.article-head){padding-bottom:0}

/* ==========================================================================
   Navigation: mega menu + mobile drawer (Phase 4)
   ========================================================================== */
.mega{position:absolute;left:50%;transform:translateX(-50%);top:calc(100% - 8px);width:min(960px,calc(100vw - 48px));background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lg);padding:26px 28px;opacity:0;visibility:hidden;translate:0 -6px;transition:opacity .15s,translate .15s,visibility .15s;z-index:500}
.mega::before{content:"";position:absolute;top:-10px;left:0;right:0;height:12px}
li.open > .mega{opacity:1;visibility:visible;translate:0 0}
.mega-grid{display:grid;grid-template-columns:repeat(var(--cols,2),minmax(0,1fr));gap:28px}
.mega-grid.has-promo{grid-template-columns:repeat(var(--cols,2),minmax(0,1fr)) 260px}
.mega h4{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-4);margin-bottom:10px;font-weight:600}
.mega ul{list-style:none;margin:0;padding:0}
.mega li a{display:block;text-decoration:none;padding:8px 10px;margin:0 -10px;border-radius:7px;color:var(--ink)}
.mega li a:hover{background:var(--wash)}
.mega li a b{display:block;font-size:14.5px;font-weight:700}
.mega li a span{display:block;font-size:12.5px;color:var(--ink-3);margin-top:2px}
.mega-promo{display:flex;flex-direction:column;justify-content:flex-end;min-height:220px;border-radius:10px;padding:18px;text-decoration:none;color:#fff;background:var(--sage-deep) center/cover;position:relative;overflow:hidden}
.mega-promo::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 20%,rgba(0,0,0,.72) 100%)}
.mega-promo > *{position:relative}
.mega-promo b{font-family:var(--dfont);font-size:18px;letter-spacing:-.02em;line-height:1.15}
.mega-promo p{font-size:13px;color:#E6E6E6;margin:6px 0 12px}
.mega-promo .btn{align-self:flex-start}
.nav-toggle{display:none;margin-left:auto;border:1.5px solid var(--line);background:#fff;border-radius:7px;width:42px;height:42px;place-items:center;cursor:pointer;color:var(--ink)}
.nav-toggle svg{width:20px;height:20px}
.mobile-nav{position:fixed;inset:0;background:var(--paper);z-index:900;overflow-y:auto;padding:16px 20px 40px;display:none}
.mobile-nav.open{display:block}
.mobile-nav .mn-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.mobile-nav ul{list-style:none;margin:0;padding:0}
.mobile-nav > ul > li{border-bottom:1px solid var(--line-soft)}
.mobile-nav > ul > li > a,.mobile-nav > ul > li > button{display:flex;width:100%;align-items:center;justify-content:space-between;padding:16px 0;font:700 18px var(--dfont);color:var(--ink);text-decoration:none;background:none;border:0;text-align:left;letter-spacing:-.01em}
.mobile-nav .sub{display:none;padding:0 0 12px}
.mobile-nav li.open .sub{display:block}
.mobile-nav .sub h4{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-4);margin:10px 0 4px}
.mobile-nav .sub a{display:block;padding:8px 0;color:var(--ink-2);text-decoration:none;font-size:15px}
.mobile-nav .mn-cta{display:grid;gap:10px;margin-top:22px}
.mobile-nav .mn-util{display:flex;gap:16px;flex-wrap:wrap;margin-top:22px;font-size:13.5px}
.mobile-nav .mn-util a{color:var(--ink-3)}
@media (max-width:980px){.nav-toggle{display:grid}.header-cta .btn{display:none}}
/* Google Translate: hide its banner, we drive it from our own picker */
.goog-te-banner-frame,.skiptranslate iframe,#goog-gt-tt,.goog-te-balloon-frame{display:none!important}
body{top:0!important}
#google_translate_element{display:none}
font[style]{background:transparent!important;box-shadow:none!important}

/* ---- Forms (Phase 5) ---- */
.grb-form .hp{position:absolute;left:-9999px;top:-9999px;height:0;overflow:hidden}
.grb-form fieldset{border:0;padding:0;margin:0 0 28px;min-width:0}
.grb-form legend{font-family:var(--dfont);font-size:20px;font-weight:700;color:var(--ink);letter-spacing:-.02em;margin-bottom:16px;padding:0}
.grb-form .field.has-error input,.grb-form .field.has-error select,.grb-form .field.has-error textarea{border-color:var(--danger);background:#FFFBFB}
.grb-form .ferr{font-size:12.5px;color:var(--danger);margin-top:4px}
.grb-form .form-errors{border:1.5px solid var(--danger);background:var(--danger-wash);border-radius:8px;padding:12px 16px;margin-bottom:20px;color:#7E1B15;font-size:14px}
.grb-form .step-nav{display:flex;justify-content:space-between;align-items:center;margin-top:8px}
.grb-form .check{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--ink-2);text-transform:none;letter-spacing:0;font-weight:500;cursor:pointer}
.grb-form .check input{width:17px;height:17px;margin-top:2px;accent-color:var(--ink)}
.grb-form .check-list{display:grid;gap:8px}
.grb-form .fhead{font-size:17px;margin:8px 0 0;color:var(--ink)}
.grb-form .privacy{font-size:13px;color:var(--ink-4);max-width:48ch}
.grb-form .progress div.done .num{background:var(--sage);border-color:var(--sage);color:#fff}
.grb-form .progress div{cursor:default}.grb-form .progress div.done{cursor:pointer}
.grb-form .field input[type=number]{border:1.5px solid var(--line);border-radius:6px;padding:11px 12px;font:inherit;font-size:14.5px;color:var(--ink);background:#fff}
.grb-form .field input:focus,.grb-form .field select:focus,.grb-form .field textarea:focus{outline:0;border-color:var(--sage);box-shadow:0 0 0 3px var(--sage-wash)}
.form-done{border:1.5px solid var(--sage);background:var(--sage-wash);border-radius:12px;padding:36px 28px;text-align:center}
.form-done .ok{width:48px;height:48px;border-radius:50%;background:var(--sage);color:#fff;display:grid;place-items:center;font-size:22px;font-weight:800;margin:0 auto 14px}
.form-done h2{font-size:24px;letter-spacing:-.02em}
.form-done p{color:var(--ink-3);margin-top:8px;max-width:48ch;margin-inline:auto}
.form-main .notice{margin:0 0 18px}
.alt-path{margin-top:26px;padding:16px 18px;border:1px dashed var(--line);border-radius:8px;display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;font-size:13.5px;color:var(--ink-3)}
@media (max-width:980px){.form-layout{grid-template-columns:1fr}.radio-cards{grid-template-columns:1fr}.frow{grid-template-columns:1fr}.progress{flex-direction:column}.progress div{border-left:0;border-top:1.5px solid var(--line)}.progress div:first-child{border-top:0}}
[hidden]{display:none!important}

/* ---- Events (Phase 6) ---- */
.seg a{border:0;background:#fff;padding:9px 16px;font-size:13.5px;font-weight:700;color:var(--ink);text-decoration:none;display:inline-block}
.seg a.on{background:var(--ink);color:#fff}
.cal-filters{display:contents}
.toolbar .field{display:flex;flex-direction:column;gap:4px}
.toolbar .field label{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-4)}
.toolbar .field select{border:1.5px solid var(--line);border-radius:6px;padding:9px 12px;font:inherit;font-size:14px;background:#fff;color:var(--ink)}
.cal-empty{padding:48px 0;text-align:center;color:var(--ink-3)}
.cal-empty .btn{margin-top:14px}
.ev-card .imgv{height:120px;overflow:hidden}
.ev-card .imgv img{width:100%;height:100%;object-fit:cover;display:block}
.cal-month{padding:8px 0 24px}
.cal-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 0 14px}
.cal-nav h2{font-size:22px;letter-spacing:-.02em}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--line)}
.cal-grid{gap:1px}
.cal-dow{background:var(--wash);font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-4);padding:8px 10px}
.cal-cell{background:#fff;min-width:0;min-height:104px;padding:8px;font-size:12.5px;display:flex;flex-direction:column;gap:4px}
.cal-cell.pad{background:#FCFAF7}
.cal-cell .dn{font-weight:700;color:var(--ink-3);font-size:12px}
.cal-cell.today .dn{color:#fff;background:var(--ink);width:22px;height:22px;border-radius:50%;display:grid;place-items:center}
.cal-ev{display:block;text-decoration:none;color:var(--ink);background:var(--wash);border-left:3px solid var(--ink-4);padding:3px 6px;border-radius:3px;font-size:11.5px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-ev.pub{background:var(--sage-wash);border-left-color:var(--sage)}
.cal-ev:hover{text-decoration:underline}
.cal-more{font-size:11px;color:var(--ink-4)}
.cal-legend{font-size:12.5px;color:var(--ink-4);margin-top:10px;display:flex;gap:14px;align-items:center}
.cal-legend .sw{width:12px;height:12px;border-radius:3px;background:var(--wash);border-left:3px solid var(--ink-4);display:inline-block;margin-right:4px}
.cal-legend .sw.pub{background:var(--sage-wash);border-left-color:var(--sage)}
.event-hero .ev-chips{margin-top:18px;display:flex;gap:6px;flex-wrap:wrap}
.event-hero .page-title{margin-top:10px}
.event-hero .ev-when{font-size:16px;color:var(--ink-2);margin-top:12px}
.event-hero .ev-img{height:auto;aspect-ratio:4/3;overflow:hidden;border-radius:8px;background:var(--wash)}
.event-hero .ev-img img{width:100%;height:100%;object-fit:cover;display:block}
.event-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:48px;padding:40px 0 64px}
.event-layout .article h2{font-size:24px;letter-spacing:-.02em;margin-bottom:14px}
.event-layout .rich p{margin:0 0 14px;font-size:16px;line-height:1.65;color:var(--ink-2)}
.event-layout .rich a{color:var(--ink)}
.event-layout .rich ul,.event-layout .rich ol{margin:0 0 14px 22px;color:var(--ink-2)}
.ev-visit .rel-card{text-decoration:none}
.ev-facts dl{margin-top:12px;display:grid;grid-template-columns:auto 1fr;gap:8px 14px;font-size:13.5px}
.ev-facts dt{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-4);padding-top:2px}
.ev-facts dd{color:var(--ink-2)}
.ev-facts dd a{color:var(--ink)}
.ev-facts .muted{color:var(--ink-4)}
@media (max-width:980px){.event-layout{grid-template-columns:1fr}.cal-cell{min-height:70px}.cal-ev{display:none}.cal-cell .cal-more{display:none}.cal-cell:has(.cal-ev)::after{content:'';width:8px;height:8px;border-radius:50%;background:var(--sage);display:block}}
.cal-layout{grid-template-columns:minmax(0,1fr) 300px}
.rail-main{min-width:0}
.rail .grb-form .frow{grid-template-columns:1fr}
.rail .form-block{border:1px solid var(--line);border-radius:8px;padding:20px;background:#fff}
.rail .form-block h3{font-size:16px;line-height:1.3}
.rail .form-block p.lede{font-size:13.5px;margin-top:8px;color:var(--ink-3);max-width:none}
.rail .grb-form .form-actions{margin-top:8px}
.rail .grb-form .btn.lg{padding:10px 16px;font-size:14px}
.rail .grb-form .privacy{display:none}
.event-hero .ev-img.logo{aspect-ratio:auto;height:auto;max-height:260px;padding:32px;background:var(--wash);border:1px solid var(--line);display:grid;place-items:center}
.event-hero .ev-img.logo img{width:auto;max-width:100%;max-height:196px;height:auto;object-fit:contain}
.event-hero .wrap{align-items:center}
.ev-card .imgv img{object-fit:cover}
.ev-card .imgv.logo{display:grid;place-items:center;background:var(--wash);padding:16px}
.ev-card .imgv.logo img{width:auto;max-width:80%;max-height:88px;object-fit:contain}
/* Event details card: wider rail, nothing escapes */
.event-layout{grid-template-columns:minmax(0,1fr) 340px;gap:40px}
.ev-facts dl{grid-template-columns:auto minmax(0,1fr);gap:10px 16px}
.ev-facts dd{min-width:0;overflow-wrap:anywhere;line-height:1.5}
.ev-facts dd a{overflow-wrap:anywhere}
.ev-facts .btn{margin-top:18px}
.event-layout .rail{min-width:0}
.event-hero .ev-img.placeholder img{object-fit:cover}
.ev-card .imgv.placeholder img{object-fit:cover}
@media (max-width:980px){.event-layout{grid-template-columns:1fr}}

/* ---- Content modules (Phase 7) ---- */
.space-card .imgv{display:block;background-size:cover;background-position:center}
.space-card h3 a{text-decoration:none;color:inherit}
.space-card h3 a:hover{text-decoration:underline}
.space-card .card-actions{flex-wrap:wrap}
.filters .range-note{font-size:12px;color:var(--ink-4);margin-top:6px}
.filters .link{display:inline-block;margin-top:10px;font-size:13px}
.compare-tray[hidden]{display:none}
.compare-tray .slot .x{margin-left:8px;cursor:pointer;opacity:.7}
.compare-view{padding:28px 0 8px;border-bottom:1px solid var(--line)}
.cmp-table{width:100%;border-collapse:collapse;font-size:14px;margin-top:8px}
.cmp-table th,.cmp-table td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line-soft);vertical-align:top}
.cmp-table thead th{font-size:16px;color:var(--ink)}
.cmp-table thead th a{color:var(--ink);text-decoration:none}
.cmp-table tbody th{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-4);width:140px}
.cmp-table td{color:var(--ink-2)}
.table-wrap{overflow-x:auto}
.map-side .layer{display:flex;gap:9px;align-items:center;font-size:14px;color:var(--ink-2);padding:6px 0;text-decoration:none}
.map-side a.layer:hover{color:var(--ink);text-decoration:underline}
.map-side .dotsq{width:12px;height:12px;border-radius:3px;border:1.5px solid var(--ink);background:var(--ink)}
.map-side .map-btn{width:100%;margin-top:8px;display:block;text-align:center}
.map-side .map-btn:first-of-type{margin-top:16px}
.contact-dept{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-4);margin:22px 0 10px}
.contact-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-bottom:8px}
.contact-card{display:flex;gap:14px;border:1px solid var(--line);border-radius:8px;padding:16px;background:#fff;font-size:14px}
.contact-card img{width:56px;height:56px;border-radius:50%;object-fit:cover;flex:none}
.contact-card b{display:block;color:var(--ink);font-size:15px}
.contact-card .ct,.contact-card .cn{display:block;color:var(--ink-4);font-size:13px}
.contact-card a{display:block;color:var(--ink-2);margin-top:3px}
.gallery-live .gal-item{cursor:zoom-in}
.gallery-live .gal-item[hidden]{display:none}
.lightbox{position:fixed;inset:0;background:rgba(10,8,6,.92);z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px}
.lightbox[hidden]{display:none}
.lightbox img{max-width:min(1200px,92vw);max-height:76vh;object-fit:contain;border-radius:6px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.lightbox .lb-cap{color:#fff;max-width:900px;text-align:center;margin-top:16px;font-size:14px}
.lightbox .lb-cap b{display:block;font-size:16px}
.lightbox .lb-cap .cr{color:#B8B0A4;font-family:var(--mono);font-size:11px;letter-spacing:.06em;margin-top:4px;display:block}
.lightbox .lb-cap .btn{margin-top:12px}
.lightbox button.lb-x,.lightbox button.lb-prev,.lightbox button.lb-next{position:absolute;border:0;background:rgba(255,255,255,.12);color:#fff;width:44px;height:44px;border-radius:50%;font-size:20px;cursor:pointer;display:grid;place-items:center}
.lightbox button:hover{background:rgba(255,255,255,.25)}
.lightbox .lb-x{top:18px;right:18px}.lightbox .lb-prev{left:18px;top:50%;transform:translateY(-50%)}.lightbox .lb-next{right:18px;top:50%;transform:translateY(-50%)}
.lightbox .lb-count{position:absolute;top:28px;left:24px;color:#B8B0A4;font-family:var(--mono);font-size:12px}
.space-hero .wrap{align-items:center}
.space-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:8px 0 28px}
.space-facts div{border:1px solid var(--line);border-radius:8px;padding:14px 16px;background:#fff}
.space-facts b{display:block;font-size:24px;letter-spacing:-.02em;color:var(--ink);line-height:1}
.space-facts span{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-4);display:block;margin-top:6px}
.space-feat{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0 0 24px}
.space-feat li{border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:13px;color:var(--ink-2);background:#fff}
@media (max-width:980px){.listings-layout{grid-template-columns:1fr}.cmp-table tbody th{width:100px}}
.wide-main{padding:32px 24px 48px}
.wide-main > .section{padding:40px 0 0}
.wide-main > .section:first-child{padding-top:0}
.wide-main .map-stage{margin-top:0}
.wide-main > h2{margin-bottom:14px}
body.editing .inline-edit{cursor:text;outline:1px dashed transparent;outline-offset:3px;border-radius:3px;transition:outline-color .15s}
body.editing .blk.selected .inline-edit{outline-color:rgba(62,94,128,.45)}
body.editing .inline-edit:hover{outline-color:var(--blue-deep)}
body.editing .inline-edit:focus{outline:2px solid var(--blue-deep);background:rgba(62,94,128,.06)}

.gal-item img{aspect-ratio:4/3;object-fit:cover;width:100%;display:block;transition:transform .35s}
.gal-item:hover img{transform:scale(1.03)}
/* 404 */
.nf{padding:64px 0 80px;background:linear-gradient(180deg,var(--wash) 0,#fff 60%)}
.nf-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:start}
.nf .cta-row{display:flex;margin-top:24px;gap:12px;flex-wrap:wrap}
.cta-row{display:flex;gap:12px;flex-wrap:wrap}
.nf-links{display:grid;gap:12px;margin-top:8px}
.nf-links a{display:block;padding:16px 18px;border:1px solid var(--line);border-radius:10px;background:#fff;text-decoration:none;color:var(--ink);transition:border-color .15s,transform .15s}
.nf-links a:hover{border-color:var(--ink);transform:translateX(3px)}
.nf-links b{display:block;font-size:15.5px}
.nf-links span{display:block;font-size:13px;color:var(--ink-3);margin-top:3px}
@media (max-width:860px){.nf-grid{grid-template-columns:1fr}}

/* ---- Parking page ---- */
.parking-list h2{font-size:26px;letter-spacing:-.02em}
.lot{display:grid;grid-template-columns:140px minmax(0,1fr);gap:24px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:22px;margin-bottom:16px}
.lot.closed{background:#FCFAF7}
.lot.closed .lot-body{opacity:.78}
.lot-num{aspect-ratio:1;border-radius:10px;overflow:hidden;background:var(--ink);display:grid;place-items:center}
.lot-num img{width:100%;height:100%;object-fit:cover}
.lot-num .p{font-family:var(--dfont);font-weight:800;font-size:56px;color:#fff;line-height:1}
.lot.closed .lot-num{background:var(--ink-4)}
.lot-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap}
.lot h3{font-size:20px;letter-spacing:-.01em;color:var(--ink)}
.lot .addr{font-family:var(--mono);font-size:12px;color:var(--ink-4);margin-top:4px;letter-spacing:.02em}
.lot .chip.closed{background:var(--danger);border-color:var(--danger);color:#fff}
.lot .avail{font-size:13px;color:var(--ink-3)}.lot .avail b{font-size:20px;color:var(--sage-deep);margin-right:4px}
.lot .rich{margin-top:12px;font-size:15px;line-height:1.6;color:var(--ink-2)}
.lot .rich p{margin:0 0 10px}
.lot-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px 18px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line-soft)}
.lot-facts dt{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-4)}
.lot-facts dd{font-size:14px;color:var(--ink);margin-top:3px;font-weight:600}
.lot-actions{display:flex;align-items:center;gap:14px;margin-top:16px;flex-wrap:wrap}
.lot-actions .note{font-size:13px;color:var(--ink-4)}
@media (max-width:640px){.lot{grid-template-columns:1fr}.lot-num{width:90px}}

/* ---- Team directory ---- */
.team-jump{display:flex;flex-wrap:wrap;gap:8px;padding:16px 0 8px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:8px}
.team-jump a{text-decoration:none;font-size:13px;font-weight:600;color:var(--ink-2);border:1.5px solid var(--line);border-radius:999px;padding:7px 14px;background:#fff}
.team-jump a:hover{border-color:var(--ink);color:var(--ink)}
.team-jump small{color:var(--ink-4);font-weight:500;margin-left:4px}
.team-group{padding:36px 0 8px;scroll-margin-top:100px}
.team-group h2{font-size:24px;letter-spacing:-.02em;margin-bottom:20px;padding-bottom:10px;border-bottom:2px solid var(--ink)}
.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:22px 20px}
.member .hs{aspect-ratio:4/5;border-radius:10px;overflow:hidden;background:var(--wash);margin-bottom:12px;position:relative}
.member .hs img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s}
.member:hover .hs img{transform:scale(1.03)}
.member .hs .init{display:grid;place-items:center;height:100%;font-family:var(--dfont);font-size:40px;font-weight:700;color:var(--ink-4)}
.member h3{font-size:16px;line-height:1.3;color:var(--ink)}
.member .pos{font-size:13px;color:var(--ink-3);margin-top:3px;line-height:1.4}
.member .ways{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:8px;font-size:13px}
.member .ways a{color:var(--ink-2);text-decoration:none;display:inline-flex;align-items:center;gap:4px;font-weight:600}
.member .ways a:hover{text-decoration:underline}
.member .bio-btn{border:0;background:none;padding:0;font:inherit;font-size:13px;font-weight:700;color:var(--blue-deep);cursor:pointer;border-bottom:1.5px solid var(--blue-deep)}
.bio-modal{position:fixed;inset:0;background:rgba(10,8,6,.6);z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px}
.bio-modal[hidden]{display:none}
.bio-modal .box{background:#fff;border-radius:14px;max-width:760px;width:100%;max-height:88vh;overflow:auto;padding:32px;position:relative;box-shadow:0 30px 80px rgba(0,0,0,.35)}
.bio-modal .x{position:absolute;top:14px;right:14px;border:0;background:var(--wash);width:36px;height:36px;border-radius:50%;cursor:pointer;font-size:16px}
.bio-card{display:grid;grid-template-columns:180px minmax(0,1fr);gap:26px}
.bio-card img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:10px}
.bio-card h3{font-size:24px;letter-spacing:-.02em}
.bio-card .pos{color:var(--ink-3);margin:4px 0 14px}
.bio-card .rich{font-size:15px;line-height:1.65;color:var(--ink-2)}
.bio-card .rich p{margin:0 0 12px}
.bio-card .btn{margin-top:8px}
@media (max-width:640px){.bio-card{grid-template-columns:1fr}.bio-card img{max-width:180px}}
.garage .addr{font-family:var(--mono);font-size:11.5px;color:var(--ink-4);margin-top:4px}
.garage .chip.closed{background:var(--danger);border-color:var(--danger);color:#fff}
.garage.closed{background:#FCFAF7}
.bio-card:not(:has(> img)){grid-template-columns:1fr}

/* ---- Interactive district map (drawn, self-contained) ---- */
.district-map .map-canvas{min-height:0;aspect-ratio:800/460;overflow:hidden;background:#F0EDE6;touch-action:none;cursor:grab;user-select:none}
.district-map .map-canvas.grabbing{cursor:grabbing}
.cmap-inner{position:absolute;inset:0;transform-origin:0 0;will-change:transform;--inv:1}
.cmap-inner > svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.cpin{position:absolute;border:0;background:none;padding:0;cursor:pointer;transform:translate(-50%,-100%) scale(var(--inv));transform-origin:50% 100%;z-index:3}
.cpin span{display:grid;place-items:center;width:28px;height:28px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);color:#fff;font-weight:800;font-size:12px;border:2px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.3);transition:transform .15s}
.cpin i{display:block;transform:rotate(45deg);font-style:normal}
.cpin:hover span,.cpin.on span{transform:rotate(-45deg) scale(1.18)}
.cpin.on{z-index:5}
.cpin.closed span{opacity:.55}
.cpin[hidden]{display:none}
.cpop{position:absolute;z-index:6;transform:translate(-50%,calc(-100% - 36px)) scale(var(--inv));transform-origin:50% 100%;background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px 32px 12px 14px;min-width:220px;max-width:280px;box-shadow:0 10px 30px rgba(0,0,0,.18);font-size:13px}
.cpop.below{transform:translate(-50%,8px) scale(var(--inv));transform-origin:50% 0}
.cpop.left{transform:translate(calc(-100% + 20px),calc(-100% - 36px)) scale(var(--inv));transform-origin:100% 100%}
.cpop.left.below{transform:translate(calc(-100% + 20px),8px) scale(var(--inv));transform-origin:100% 0}
.cpop b{display:block;font-size:14px;color:var(--ink);line-height:1.3}
.cpop span{display:block;color:var(--ink-3);margin-top:4px}
.cpop a{display:inline-block;margin-top:8px;color:var(--blue-deep);font-weight:700;text-decoration:none}
.cpop .x{position:absolute;top:6px;right:6px;border:0;background:var(--wash);width:22px;height:22px;border-radius:50%;font-size:11px;cursor:pointer}
.cpop[hidden]{display:none}
.cmap-ctl{position:absolute;top:12px;left:12px;z-index:7;display:flex;flex-direction:column;gap:4px}
.cmap-ctl button{width:34px;height:34px;border:1.5px solid var(--ink);background:#fff;border-radius:6px;font-size:18px;font-weight:700;cursor:pointer;color:var(--ink);line-height:1}
.cmap-ctl button:hover{background:var(--ink);color:#fff}
.district-map .map-side{display:flex;flex-direction:column;max-height:none}
.layer-list{display:grid;gap:4px;margin-bottom:12px}
.layer-list .layer{display:flex;align-items:center;gap:9px;font-size:13.5px;color:var(--ink-2);padding:5px 0;cursor:pointer}
.layer-list input{accent-color:var(--ink);width:15px;height:15px}
.layer-list small{margin-left:auto;color:var(--ink-4);font-family:var(--mono);font-size:11px}
.map-side .sw{width:12px;height:12px;border-radius:3px;display:inline-block;flex:none}
.poi-list{overflow:auto;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:4px 0 12px;max-height:240px;scrollbar-width:thin}
.poi{display:flex;gap:10px;align-items:flex-start;width:100%;text-align:left;border:0;background:none;padding:9px 4px;font:inherit;cursor:pointer;border-bottom:1px solid var(--line-soft)}
.poi:hover,.poi.on{background:var(--wash)}
.poi .sw{margin-top:4px}
.poi b{display:block;font-size:13.5px;color:var(--ink);line-height:1.3}
.poi small{display:block;font-size:12px;color:var(--ink-4);margin-top:2px}
.poi[hidden]{display:none}
@media (max-width:980px){.district-map .map-side{max-height:none}.poi-list{max-height:200px}}
/* garage cards: buttons line up */
.garage{display:flex;flex-direction:column}
.garage ul{flex:1}
.garage .btn{margin-top:14px!important;align-self:flex-start}
.garage .gdesc{font-size:13.5px;color:var(--ink-3);margin-top:10px;line-height:1.5}
.garage .gdesc p{margin:0}
.garage li b{text-align:right;max-width:60%}
/* Footer: centered like the rest of the page (the columns block also uses .cols) */
.site-footer .wrap.cols{margin:0 auto;max-width:var(--maxw)}
.site-footer .legal{display:block;padding:0}
.site-footer .legal-in{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:18px 24px;font-size:12.5px}
/* Quick answers: links sit on the same line across cards */
.answers .qa{display:flex;flex-direction:column}
.answers .qa a{margin-top:auto;padding-top:12px}
/* District map: the side panel takes the map's height (no empty band under the drawing) */
.district-map{min-height:0}
.district-map .map-side{position:relative;padding:0;overflow:hidden}
.district-map .map-side-in{position:absolute;inset:0;display:flex;flex-direction:column;padding:20px;overflow:hidden}
.district-map .map-side-in h3{flex:none}
.district-map .layer-list{flex:none}
.district-map .poi-list{flex:1;min-height:80px;max-height:none}
.district-map .map-btn{flex:none}
@media (max-width:980px){.district-map .map-side{position:static}.district-map .map-side-in{position:static;padding:20px}.district-map .poi-list{max-height:220px}}
/* Calendar / listing toolbars: controls share one baseline and height */
.toolbar{align-items:flex-end}
.toolbar .seg,.toolbar .searchbox{height:44px;align-self:flex-end}
.toolbar .seg a,.toolbar .seg button{display:inline-flex;align-items:center}
.toolbar .field select{height:44px}
.toolbar .searchbox input{height:100%}
.toolbar .searchbox button{height:100%}
.toolbar .searchbox input{min-width:150px;width:200px}
.toolbar .field select{min-width:0}
.toolbar .grow{flex:1 1 8px}
.garage .gbtns{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.garage .gbtns .btn{margin-top:0!important}
.cpop a + a{margin-left:12px}
/* reCAPTCHA (v3 badge hidden — the required notice is shown in the form instead, per Google's terms) */
.grecaptcha-badge{visibility:hidden}
.recaptcha-note{flex-basis:100%;order:5;margin:4px 0 0;font-size:12px;line-height:1.4;color:var(--ink-4,#8C8C8C)}
.recaptcha-note a{color:inherit}
.form-actions .recaptcha{flex-basis:100%;order:-1}
