/* GHome search: native dialog accessibility, shared existing search fields. */
.gh-search-strip .sr-only,.gh-search-dialog .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.gh-search-strip { display:grid; grid-template-columns:minmax(220px,1.15fr) minmax(200px,1fr) minmax(180px,1.1fr) 52px 112px; align-items:stretch; gap:8px; min-width:0; }
.gh-search-strip svg,.gh-search-dialog svg { width:22px; height:22px; flex:0 0 22px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linejoin:round; stroke-linecap:round; }
.gh-search-segment { display:flex; align-items:center; gap:11px; min-width:0; padding:13px; min-height:70px; border:1px solid var(--line); border-radius:13px; color:var(--ink); background:var(--surface); text-align:left; cursor:pointer; }
.gh-search-segment:hover,.gh-search-segment[aria-expanded=true] { border-color:var(--brand-bright); background:var(--brand-soft); }
.gh-search-segment > svg { width:16px; height:16px; flex-basis:16px; margin-left:auto; }
.gh-segment-icon { display:grid; place-items:center; width:34px; height:34px; border-radius:10px; background:var(--brand-soft); color:var(--brand-bright); flex:0 0 34px; }
.gh-segment-copy { display:block; min-width:0; }
.gh-segment-copy small { display:block; font-size:10px; font-weight:500; color:var(--muted); margin-bottom:7px; }
.gh-segment-copy strong { display:block; font-size:12px; font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.gh-keyword { display:flex; min-width:0; margin:0; }
.gh-keyword input { width:100%; min-width:0; height:100%; min-height:70px; border-radius:13px; font-size:12px; background:var(--surface-soft); }
.gh-filter-trigger { display:flex; align-items:center; justify-content:center; border:1px solid var(--line); border-radius:13px; background:var(--surface-soft); color:var(--ink); min-height:52px; padding:10px; }
.gh-filter-trigger > span { display:none; }
.gh-search-submit { display:flex; align-items:center; justify-content:center; gap:8px; border-radius:13px; min-height:52px; padding:13px; font-size:12px; }
.gh-search-strip button:focus-visible,.gh-search-dialog button:focus-visible,.gh-search-strip input:focus-visible { outline:2px solid var(--brand-bright); outline-offset:3px; }
#search-area.gh-search-ready { scroll-margin-top:100px; }
#search-area.gh-search-ready > .search-tabs,#search-area.gh-search-ready > #search,#search-area.gh-search-ready > #extra-fields { display:none; }
#search-area.gh-search-ready.gh-details-open > #search { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin-top:20px; padding-top:20px; border-top:1px solid var(--line); }
#search-area.gh-search-ready.gh-details-open > #extra-fields:not([hidden]) { display:grid; }
#search-area.gh-search-ready > #search .gh-native-primary,#search-area.gh-search-ready > #search .filter-button,#search-area.gh-search-ready > #search .search-button { display:none; }
#search-area.gh-search-ready > .quick-types { margin-top:17px; }
.gh-search-dialog { position:fixed; top:var(--gh-search-top,110px); bottom:auto; left:50%; right:auto; transform:translateX(-50%); margin:0; padding:0; width:min(1040px,calc(100% - 40px)); max-width:1040px; max-height:calc(100dvh - var(--gh-search-top,110px) - 20px); border:1px solid var(--line); border-radius:23px; background:var(--surface); color:var(--ink); overflow:auto; box-shadow:0 24px 90px #061b1438; }
.gh-search-dialog::backdrop { background:#081a1238; backdrop-filter:blur(3px); }
.gh-search-dialog > header { position:sticky; top:0; z-index:3; display:flex; align-items:flex-start; gap:20px; padding:24px 28px 20px; margin:0; border-bottom:1px solid var(--line); background:var(--surface); }
.gh-search-dialog > header > div { flex:1; min-width:0; }
.gh-search-eyebrow { display:block; color:var(--brand-bright); font-size:9px; letter-spacing:.08em; font-weight:750; margin-bottom:8px; }
.gh-search-dialog > header h2 { font-size:23px; line-height:1.5; margin:0; }
.gh-search-dialog > header p { font-size:11px; line-height:1.8; margin:7px 0 0; color:var(--muted); }
.gh-search-dialog .mobile-icon { flex:0 0 36px; width:36px; height:36px; border:1px solid var(--line); background:var(--surface-soft); border-radius:50%; }
.gh-dialog-body { padding:24px 28px; }
.gh-dialog-body h3 { font-size:12px; font-weight:750; margin:0 0 14px; }
.gh-mode-options { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:28px; }
.gh-mode-choice { padding:12px 18px; border:1px solid var(--line); border-radius:30px; font-size:12px; color:var(--ink); background:var(--surface); }
.gh-mode-choice[aria-pressed=true] { background:var(--brand-soft); border-color:var(--brand-bright); color:var(--ink); }
.gh-type-options { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }
.gh-type-choice { position:relative; display:flex; flex-direction:column; align-items:flex-start; gap:18px; min-height:130px; padding:20px 15px; border:1px solid var(--line); border-radius:15px; background:var(--surface); color:var(--ink); text-align:left; }
.gh-type-choice > svg { width:30px; height:30px; color:var(--brand-bright); }
.gh-type-choice strong { font-size:12px; line-height:1.8; }
.gh-type-choice[aria-pressed=true] { border-color:var(--brand-bright); background:var(--brand-soft); box-shadow:inset 0 0 0 1px var(--brand-bright); }
.gh-choice-check { display:none; width:10px; height:6px; border-left:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(-45deg); color:var(--brand-bright); }
.gh-type-choice[aria-pressed=true] .gh-choice-check { display:block; position:absolute; top:19px; right:15px; }
.gh-search-dialog > footer { display:flex; align-items:center; justify-content:flex-end; gap:12px; position:sticky; bottom:0; z-index:2; padding:18px 28px; background:var(--surface); border-top:1px solid var(--line); }
.gh-search-dialog > footer .primary,.gh-search-dialog > footer .plain { min-height:46px; font-size:12px; }
.gh-search-dialog > footer > div { margin-right:auto; min-width:0; }
.gh-search-dialog > footer small { display:block; color:var(--muted); font-size:9px; margin-bottom:5px; }
.gh-search-dialog > footer strong { display:block; font-size:12px; overflow-wrap:anywhere; }
.gh-city-search { display:flex; gap:12px; padding:20px 28px; border-bottom:1px solid var(--line); }
.gh-city-search label { position:relative; display:block; flex:1; min-width:0; }
.gh-city-search label > svg { position:absolute; left:14px; top:14px; color:var(--muted); }
.gh-city-search input { min-height:50px; padding-left:45px; font-size:14px; }
.gh-city-search > button { font-size:11px; }
.gh-city-layout { display:grid; grid-template-columns:205px minmax(0,1fr); gap:26px; }
.gh-city-layout > aside { border-right:1px solid var(--line); padding-right:20px; }
.gh-city-choice { display:flex; align-items:center; gap:9px; width:100%; min-height:38px; padding:8px 10px; margin-bottom:4px; border:1px solid transparent; border-radius:9px; color:var(--ink); background:transparent; text-align:left; font-size:12px; }
.gh-city-choice svg { width:16px; height:16px; flex-basis:16px; color:var(--muted); }
.gh-city-choice span { flex:1; min-width:0; overflow-wrap:anywhere; }
.gh-city-choice:hover,.gh-city-choice[aria-pressed=true] { background:var(--brand-soft); border-color:var(--line); }
.gh-city-choice[aria-pressed=true] .gh-choice-check { display:block; flex:0 0 10px; }
.gh-city-groups { columns:3; column-gap:18px; }
.gh-city-groups > section { break-inside:avoid; margin-bottom:18px; }
.gh-city-groups h4 { background:var(--surface-soft); border-radius:7px; padding:5px 10px; margin:0 0 7px; font-size:11px; color:var(--muted); }
.gh-has-city-query .gh-city-layout { grid-template-columns:1fr; }
.gh-has-city-query .gh-city-layout > aside { display:none; }
.gh-city-empty { padding:20px; color:var(--muted); font-size:12px; line-height:1.9; border:1px dashed var(--line); border-radius:14px; }
@media(max-width:1100px) and (min-width:821px) {
 .gh-search-strip { grid-template-columns:minmax(0,1fr) minmax(0,1fr) 52px 112px; }
 .gh-keyword { grid-column:1/3; grid-row:2; }
 .gh-keyword input { min-height:50px; }
 .gh-filter-trigger { grid-column:3; grid-row:1/3; }
 .gh-search-submit { grid-column:4; grid-row:1/3; }
}
@media(max-width:820px) {
 .gh-search-strip { grid-template-columns:1fr 1fr; gap:9px; }
 .gh-search-segment { min-height:76px; padding:11px 9px; gap:7px; }
 .gh-segment-icon { display:none; }
 .gh-segment-copy small { font-size:9px; line-height:1.5; }
 .gh-segment-copy strong { font-size:11px; }
 .gh-keyword { grid-column:1/-1; }
 .gh-keyword input { min-height:49px; font-size:16px; }
 .gh-filter-trigger { gap:8px; }
 .gh-filter-trigger > span { display:inline; font-size:12px; }
 .gh-search-dialog { top:auto; bottom:0; left:0; right:0; transform:none; margin:0; width:100%; max-height:calc(var(--mobile-viewport,100dvh) - 60px); border-radius:23px 23px 0 0; }
 .gh-search-dialog > header { top:0; padding:20px 18px 16px; gap:12px; }
 .gh-search-dialog > header h2 { font-size:20px; }
 .gh-dialog-body { padding:20px 16px; }
 .gh-mode-options { gap:7px; margin-bottom:22px; }
 .gh-mode-choice { padding:11px 12px; font-size:11px; }
 .gh-type-options { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
 .gh-type-choice { min-height:112px; padding:15px; gap:12px; }
 .gh-type-choice strong { font-size:12px; }
 .gh-search-dialog > footer { flex-wrap:wrap; padding:14px 16px max(14px,env(safe-area-inset-bottom)); gap:8px; }
 .gh-search-dialog > footer > div { flex:1 1 100%; }
 .gh-search-dialog > footer .primary { flex:1; }
 .gh-city-search { padding:16px; flex-direction:column; gap:10px; }
 .gh-city-search input { font-size:16px; }
 .gh-city-search > button { text-align:left; }
 .gh-city-layout { grid-template-columns:1fr; gap:20px; }
 .gh-city-layout > aside { border:0; padding:0 0 16px; border-bottom:1px solid var(--line); }
 #gh-popular-cities { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:3px 8px; }
 .gh-city-groups { columns:2; column-gap:12px; }
 body.keyboard-open .gh-search-dialog[open] { left:0; right:0; transform:none; width:100%; }
}
