.page-navigator { background:#f8faf9; }
.ng { --ng-ink:#192b30; --ng-muted:#52666b; --ng-border:#dbe4e3; --ng-red:#a61930; --ng-teal:#14685e; color:var(--ng-ink); letter-spacing:0; }
.ng *,.ng *::before,.ng *::after { box-sizing:border-box; letter-spacing:0; }
.ng [hidden] { display:none !important; }
.ng a { text-underline-offset:3px; }
.ng button,.ng input,.ng select { font:inherit; }
.ng :is(a,button,input,select,summary):focus-visible { outline:3px solid #14786c; outline-offset:4px; }
.ng-shell { max-width:1240px; width:100%; margin-inline:auto; padding-inline:32px; }
.ng-icon { width:20px; height:20px; flex:0 0 20px; vertical-align:middle; }
.ng-button { display:inline-flex; min-height:44px; align-items:center; justify-content:center; gap:9px; padding:11px 16px; border:1px solid transparent; border-radius:6px; font-size:14px; font-weight:650; line-height:1.4; text-align:center; text-decoration:none !important; cursor:pointer; }
.ng-button--primary { background:var(--ng-red); color:#fff !important; border-color:var(--ng-red); }
.ng-button--primary:hover { background:#831326; }
.ng-button--outline { border-color:#c4d2d1; color:var(--ng-ink) !important; background:#fff; }
.ng-button--outline:hover { background:#edf3f1; border-color:#8da8a2; }
.ng-icon-button { display:inline-flex; width:44px; height:44px; align-items:center; justify-content:center; border:1px solid var(--ng-border); border-radius:6px; color:var(--ng-teal) !important; background:#fff; }
.ng-text-link { display:inline-flex; align-items:center; gap:8px; min-height:44px; font-size:14px; font-weight:650; color:var(--ng-teal) !important; }
.ng-hero { position:relative; min-height:320px; overflow:hidden; isolation:isolate; background:#182b2f; }
.ng-hero__photo { position:absolute; inset:0; z-index:-2; }
.ng-hero__photo img { width:100%; height:100%; object-fit:cover; object-position:64% 28%; }
.ng-hero::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(9,27,31,.92),rgba(9,27,31,.73) 45%,rgba(9,27,31,.18)); }
.ng-hero__content { padding-block:34px; }
.ng-eyebrow { display:flex; flex-wrap:wrap; gap:9px; color:#eef6f4; font-size:11px; line-height:1.5; margin-bottom:16px; }
.ng-hero h1 { color:#fff; font-size:44px; font-weight:720; line-height:1.1; margin-bottom:14px; max-width:700px; }
.ng-hero__intro { max-width:530px; color:#eff5f3; font-size:15px; line-height:1.65; }
.ng-hero__date { display:flex; align-items:center; gap:9px; margin-top:22px; color:#fff; font-size:14px; font-weight:600; }
.ng-preview { background:#edf5f2; border-bottom:1px solid var(--ng-border); }
.ng-preview .ng-shell { display:flex; gap:13px; align-items:baseline; padding-block:14px; font-size:13px; line-height:1.6; }
.ng-preview strong { color:var(--ng-teal); }
.ng-preview span { color:var(--ng-muted); }
.ng-jumpnav { display:flex; flex-wrap:wrap; gap:0 30px; border-bottom:1px solid var(--ng-border); padding-block:8px; }
.ng-jumpnav a { display:inline-flex; align-items:center; min-height:44px; font-size:14px; font-weight:600; color:var(--ng-teal) !important; text-decoration:none !important; }
.ng-jumpnav a:hover { text-decoration:underline !important; }
.ng-content { padding-bottom:30px; }
.ng-section { padding-block:32px; border-bottom:1px solid var(--ng-border); scroll-margin-top:110px; }
.ng h2 { font-size:27px; line-height:1.25; color:var(--ng-ink); font-weight:700; }
.ng-overline { margin-bottom:6px; color:var(--ng-teal); font-size:11px; font-weight:700; line-height:1.5; text-transform:uppercase; }
.ng-section-heading { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-bottom:16px; }
.ng-lead { font-size:15px; line-height:1.8; color:var(--ng-muted); max-width:780px; margin-bottom:15px; }
.ng-pending { font-size:14px; line-height:1.8; color:var(--ng-muted); max-width:780px; margin-top:14px; }
.ng-category-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 32px; list-style:none; padding:0; margin-top:22px; }
.ng-category-list li { display:flex; align-items:flex-start; gap:13px; padding-block:18px; border-top:1px solid var(--ng-border); min-width:0; }
.ng-category-list .ng-icon { color:var(--ng-teal); margin-top:3px; }
.ng-category-list h3 { font-size:16px; line-height:1.45; color:var(--ng-ink); font-weight:650; }
.ng-category-list span { display:block; font-size:12px; line-height:1.6; color:var(--ng-muted); margin-top:3px; }
.ng-filter-fields { display:grid; grid-template-columns:1fr 1fr auto; gap:14px; align-items:end; margin-top:24px; }
.ng-field { min-width:0; }
.ng-field label { display:block; font-size:12px; font-weight:650; margin-bottom:7px; }
.ng-field select { width:100%; min-width:0; min-height:46px; border:1px solid #bdceca; background:#fff; color:var(--ng-ink); border-radius:6px; padding:11px 30px 11px 12px; font-size:14px; }
.ng-tag-filters { margin-block:10px 16px; }
.ng-tag-filters summary { display:flex; gap:9px; align-items:center; min-height:44px; font-size:13px; color:var(--ng-teal); font-weight:600; cursor:pointer; }
.ng-tag-filters fieldset { display:flex; flex-wrap:wrap; gap:0 25px; border:0; padding:6px 0; }
.ng-tag-filters label { display:flex; align-items:center; gap:8px; min-height:44px; font-size:13px; color:var(--ng-muted); cursor:pointer; }
.ng-tag-filters input { width:18px; height:18px; accent-color:var(--ng-teal); }
.ng-results-summary { font-size:13px; line-height:1.7; color:var(--ng-muted); }
.ng-category-heading { display:flex; align-items:center; gap:12px; margin-block:24px 14px; }
.ng-category-heading .ng-icon { color:var(--ng-teal); }
.ng-category-heading h3 { font-size:18px; line-height:1.4; font-weight:650; color:var(--ng-ink); }
.ng-category-heading span { color:var(--ng-muted); font-size:12px; }
.ng-place-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.ng-place { display:flex; flex-direction:column; background:#fff; padding:22px; border:1px solid var(--ng-border); border-radius:8px; min-width:0; }
.ng-place h4 { font-size:18px; font-weight:650; line-height:1.4; overflow-wrap:anywhere; color:var(--ng-ink); margin-bottom:10px; }
.ng-place__meta { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; font-size:12px; color:var(--ng-muted); margin-bottom:12px; }
.ng-place__blurb { font-size:14px; line-height:1.8; color:#344c50; }
.ng-place__tip { display:flex; gap:8px; font-size:12px; line-height:1.8; color:var(--ng-muted); margin-top:12px; }
.ng-place__tip .ng-icon { margin-top:3px; width:16px; height:16px; flex-basis:16px; }
.ng-place__tags { display:flex; flex-wrap:wrap; list-style:none; gap:8px 16px; padding:0; margin-top:14px; font-size:12px; color:var(--ng-teal); }
.ng-place__actions { display:flex; align-items:center; gap:10px; padding-top:20px; margin-top:auto; }
.ng-place__credit { font-size:11px; color:var(--ng-muted); margin-top:12px; }
.ng-member { font-size:12px; font-weight:600; color:var(--ng-red); margin-bottom:10px; }
.ng-feed-notice { font-size:13px; line-height:1.8; margin-top:12px; color:#745013; background:#fff4dc; padding:12px; }
.ng-editorial { display:grid; grid-template-columns:1fr 1.6fr; gap:45px; }
.ng-editorial p:not(.ng-overline) { font-size:14px; line-height:1.8; color:var(--ng-muted); margin-bottom:10px; }
#suggest-place .ng-button { margin-top:18px; }
.ng-share { display:flex; align-items:center; justify-content:space-between; gap:30px; }
.ng-share p:not(.ng-overline) { font-size:14px; color:var(--ng-muted); overflow-wrap:anywhere; margin-top:12px; }
.ng-share img { width:164px; height:164px; flex:0 0 164px; }
.ng-share__actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }
.ng-about { padding-block:24px 0; }
.ng-about a { display:flex; flex-wrap:wrap; gap:8px 14px; align-items:center; min-height:44px; text-decoration:none !important; }
.ng-about strong { color:var(--ng-ink); font-size:14px; }
.ng-about span { color:var(--ng-muted); font-size:12px; }
@media(max-width:700px) {
    .ng-shell { padding-inline:18px; }
    .ng-hero { min-height:320px; }
    .ng-hero__content { padding-block:28px; }
    .ng-hero__photo img { object-position:68% 50%; }
    .ng-hero h1 { font-size:34px; }
    .ng-hero__intro { font-size:14px; }
    .ng-hero__date { font-size:12px; }
    .ng-eyebrow { font-size:10px; }
    .ng-preview .ng-shell { flex-direction:column; gap:3px; font-size:12px; }
    .ng-jumpnav { gap:0 20px; padding-block:8px; }
    .ng-jumpnav a { font-size:12px; }
    .ng-section { padding-block:27px; scroll-margin-top:90px; }
    .ng h2 { font-size:23px; }
    .ng-section-heading { flex-wrap:wrap; gap:14px; }
    .ng-lead,.ng-pending { font-size:14px; }
    .ng-category-list { grid-template-columns:minmax(0,1fr); }
    .ng-filter-fields { grid-template-columns:minmax(0,1fr); }
    .ng-place-grid { grid-template-columns:minmax(0,1fr); }
    .ng-place { padding:19px; }
    .ng-editorial { grid-template-columns:minmax(0,1fr); gap:18px; }
    .ng-share { align-items:flex-start; flex-wrap:wrap; gap:22px; }
    .ng-about a { align-items:flex-start; flex-direction:column; }
}
@media(max-width:360px) { .ng-shell { padding-inline:15px; } .ng-hero h1 { font-size:31px; } }
@media(prefers-reduced-motion:reduce) { .ng * { scroll-behavior:auto !important; } }
