/* AMG internal refinement, 1.0.0. Companion to the approved homepage patch.
 * Activated only by the separate loader's body class. The final correction block
 * fixes shared header wrapping and hero gutters; content grids remain unchanged.
 * !important is reserved for existing contrast guards and component overrides.
 */
body.amg-site-refinement {
  --ref-paper:#f7f5f0; --ref-navy:#14283d; --ref-ink:#202c38;
  --ref-muted:#59636d; --ref-line:#dedfdc; --ref-red:#b92336;
  --ref-accent-light:#ff8796; --ref-white:#fff;
  --black:var(--ref-navy); --panel:#1b3046; --soft:#24394e;
  --paper:var(--ref-paper); --red:var(--ref-red);
  --amg-black:var(--ref-navy); --amg-ink:var(--ref-ink);
  --amg-paper:var(--ref-paper); --amg-warm:#eeece6;
  --amg-red:var(--ref-red); --amg-red-dark:#9e1d2d;
  --amg-line:var(--ref-line); --amg-muted:var(--ref-muted);
  --amg-r-sm:8px; --amg-r-md:12px; --amg-r-lg:16px;
  --amg-shadow:0 4px 16px rgba(20,40,61,.045);
  --amg-lift:0 8px 22px rgba(20,40,61,.09);
  background:var(--ref-paper); color:var(--ref-ink);
}

/* Shared chrome: retain the original menus, search and mobile toggle. */
body.amg-site-refinement :is(.site-header,.site-footer,.community-bar,.site-nav,.nav-list .has-submenu>ul,.contact-dock-panel) {
  background:var(--ref-navy); color:#fff; border-color:#34485c;
}
body.amg-site-refinement .site-header { box-shadow:0 3px 14px rgba(20,40,61,.08); }
body.amg-site-refinement .site-footer { border-radius:16px; }
body.amg-site-refinement :is(.site-footer p,.site-footer li,.footer-bottom,.community-bar a) { color:#c8d0d8 !important; }
body.amg-site-refinement :is(.site-header a,.site-footer a,.contact-dock-panel h2) { color:#fff; }
body.amg-site-refinement .nav-list>li>a { border-radius:7px; }
body.amg-site-refinement .nav-list a:hover { background:#304458; color:#fff; }
body.amg-site-refinement :is(.header-search,.nav-toggle,.header-cta,.contact-dock-toggle) { border-radius:8px; }
body.amg-site-refinement .contact-dock-toggle { background:var(--ref-red); box-shadow:var(--amg-shadow); }
body.amg-site-refinement .contact-dock-panel { border-radius:12px; }
body.amg-site-refinement .contact-dock-email { color:var(--ref-accent-light); }

/* Dark feature areas become deep navy. Light reading surfaces remain light. */
body.amg-site-refinement :is(.page-hero,.legal-hero,.article-header,.studio-v4-hero,.amg-archive-hero) {
  background:var(--ref-navy); color:#fff;
}
body.amg-site-refinement :is(.page-hero,.legal-hero,.article-header)::after { background:none; }
body.amg-site-refinement :is(.section-dark,.amg-v4-dark,.amg-v2-dark,.studio-v4-dark,.events-directory,.faq,.services-preview,.audience-addons,.cta) {
  background:var(--ref-navy); color:#fff;
}
body.amg-site-refinement :is(.studio-v4-page,.editorial-single-story,.policy-editorial-page) { background:var(--ref-paper); color:var(--ref-ink); }
body.amg-site-refinement :is(.section-dark,.studio-v4-dark,.page-hero,.legal-hero,.article-header,.studio-v4-hero,.events-directory) :is(p,.byline,.dek,.event-kicker,small) { color:#c8d0d8 !important; }
body.amg-site-refinement :is(.eyebrow,.meta) { color:var(--ref-red) !important; }
body.amg-site-refinement :is(.page-hero,.legal-hero,.article-header,.studio-v4-hero,.section-dark,.studio-v4-dark,.contact-dock-panel) :is(.eyebrow,.meta,.text-link,.studio-v4-text-link,.studio-v4-email) { color:var(--ref-accent-light) !important; }
body.amg-site-refinement :is(.community-scroll a>span:first-child,.directory-event time,.event-kicker span,.studio-v4-dark .studio-v4-cards b) { color:var(--ref-accent-light); }

/* Cards retain their grid positions and image crops. */
body.amg-site-refinement :is(.story-card,.archive-card,.related-card,.search-card,.contact-card,.event-form,.legal-cards>a,.studio-v4-portfolio>a) {
  background:#fff; color:var(--ref-ink); border-color:var(--ref-line);
  border-radius:12px; box-shadow:var(--amg-shadow);
}
body.amg-site-refinement :is(.story-card,.archive-card,.related-card,.search-card,.contact-card,.event-form,.legal-cards>a,.studio-v4-portfolio>a) :is(h2,h3,h4,p,small,label,strong,a) { color:var(--ref-ink) !important; }
body.amg-site-refinement :is(.story-card,.archive-card,.related-card,.search-card,.contact-card,.event-form,.legal-cards>a,.studio-v4-portfolio>a) :is(p,small) { color:var(--ref-muted) !important; }
body.amg-site-refinement :is(.story-card,.contact-card,.event-form) :is(.meta,.eyebrow,.email-large) { color:var(--ref-red) !important; }
body.amg-site-refinement :is(.story-image img,.story-card:hover .story-image img) { filter:none; }
body.amg-site-refinement :is(.status-card,.slate-card,.tool-card,.playtime-card,.playtime-game,.word-clock-shell) {
  background:var(--ref-navy); color:#fff; border-color:#34485c; border-radius:12px;
}
body.amg-site-refinement :is(.status-card,.slate-card,.tool-card,.playtime-card) :is(h2,h3) { color:#fff !important; }
body.amg-site-refinement :is(.status-card,.slate-card,.tool-card,.playtime-card) p { color:#c8d0d8 !important; }
body.amg-site-refinement :is(.tool-card span,.tool-card b,.playtime-card span,.playtime-card b) { color:var(--ref-accent-light) !important; }
body.amg-site-refinement .status-stats div { background:#24394e; }
body.amg-site-refinement .studio-v4-dark .studio-v4-cards>a { border-color:#34485c; background:#1b3046; }
body.amg-site-refinement .studio-v4-cards>a:hover { background:#24394e; }
body.amg-site-refinement .studio-v4-portfolio>a:hover { background:#fff; }
body.amg-site-refinement :is(.studio-v4-hero img,.studio-v4-project-shot,.event-form,.editorial-source-box,.editorial-disclaimer) { border-radius:12px; }

/* Controls: no width, padding, positioning or form-state changes. */
body.amg-site-refinement :is(input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),select,textarea) {
  border-color:var(--ref-line); border-radius:8px; background:#fff; color:var(--ref-ink);
}
body.amg-site-refinement :is(.button,.amg-v4-button,.amg-v2-button,.studio-v4-button,.studio-v4-mobile-cta,button[type=submit],input[type=submit]) {
  background:var(--ref-red); border-color:var(--ref-red); color:#fff !important;
  border-radius:7px; box-shadow:none;
}
body.amg-site-refinement :is(.button,.amg-v4-button,.amg-v2-button,.studio-v4-button,button[type=submit],input[type=submit]):hover { background:#9e1d2d; border-color:#9e1d2d; color:#fff !important; }
body.amg-site-refinement :is(.contact-card,.event-form,.story-card) .button { color:#fff !important; }
body.amg-site-refinement :is(.button-ghost,.button-outline) { background:transparent; color:inherit !important; }
body.amg-site-refinement :is(.button-ghost,.button-outline):hover { background:var(--ref-red); color:#fff !important; }
body.amg-site-refinement :is(.tags a,.legal-nav a,.page-numbers) { border-radius:7px; }
body.amg-site-refinement .page-numbers.current { background:var(--ref-red); color:#fff; }
body.amg-site-refinement :is(.entry-content,.legal-content,.prose) a { color:#9e1d2d; }
body.amg-site-refinement :is(.section-dark,.studio-v4-dark) .prose a { color:var(--ref-accent-light); }
body.amg-site-refinement :is(a,button,input,select,textarea):focus-visible {
  outline:3px solid var(--ref-red); outline-offset:3px; box-shadow:0 0 0 6px #fff;
}

/* 1.0.1 — shared alignment corrections requested after screenshot review.
 * A hero carrying .wrap previously painted only the narrow content box, leaving
 * ivory strips beside it and placing text directly against the navy edge.
 */
body.amg-site-refinement .page-hero.wrap {
  width:100%; max-width:none; margin-inline:0;
  padding-inline:max(20px,calc((100% - 1180px)/2));
}
@media(max-width:900px) {
  body.amg-site-refinement .page-hero.wrap {
    padding-inline:max(14px,calc((100% - 780px)/2));
  }
}

/* Let complete navigation labels wrap as rows, never as narrow word columns.
 * Existing <=900px menu toggle and its JavaScript stay authoritative.
 */
@media(min-width:901px) {
  body.amg-site-refinement .header-inner {
    height:auto; min-height:82px; padding-block:12px;
    gap:24px; align-items:center;
  }
  body.amg-site-refinement .header-inner>.brand { flex:0 0 auto; }
  body.amg-site-refinement .site-nav {
    min-width:0; flex:1 1 auto; flex-wrap:wrap; gap:12px 20px;
  }
  body.amg-site-refinement .nav-list {
    min-width:0; flex:1 1 100%; flex-wrap:wrap;
    align-items:center; gap:8px 16px;
  }
  body.amg-site-refinement .nav-list>li { flex:0 0 auto; }
  body.amg-site-refinement .nav-list>li>a { white-space:nowrap; }
  body.amg-site-refinement .header-search { max-width:100%; }
}

/* Complete the palette on hard-coded legacy strips and mobile menus. */
body.amg-site-refinement :is(.blog-categories,.news-highlights,.highlight-window,.channel-strip) {
  background:var(--ref-navy); color:#fff; border-color:#34485c;
}
body.amg-site-refinement .blog-categories a {
  background:#1b3046; color:#fff; border-color:#526173; border-radius:7px;
}
body.amg-site-refinement .blog-categories a:hover,
body.amg-site-refinement .blog-categories a:focus-visible {
  background:var(--ref-red); border-color:var(--ref-red);
}
body.amg-site-refinement .site-nav,
body.amg-site-refinement .nav-list .has-submenu>ul {
  background:var(--ref-navy) !important;
}
body.amg-site-refinement .nav-list>li { border-color:#34485c !important; }
body.amg-site-refinement :is(.news-highlights strong,.highlight-track b) { color:var(--ref-accent-light); }
body.amg-site-refinement .contact-card label { color:var(--ref-ink) !important; }

/* 1.0.2 — bound shared search controls and use the existing menu toggle
 * before the full navigation runs out of horizontal space. */
body.amg-site-refinement .header-search {
  flex:0 1 220px; width:220px; min-width:0; margin:0;
  background:#fff; border:1px solid #526173; border-radius:8px;
}
body.amg-site-refinement .header-search input {
  flex:1 1 0; width:0; min-width:0; min-height:40px; height:40px;
  padding:8px 12px; color:#202c38; background:#fff;
}
body.amg-site-refinement .header-search input::placeholder { color:#59636d; }
body.amg-site-refinement .header-search button {
  flex:0 0 40px; width:40px; min-height:40px; height:40px;
  padding:0; border-radius:0; background:#b92336;
}
body.amg-site-refinement .header-cta {
  width:auto; padding:10px 16px; border:0; margin:0;
  white-space:nowrap; background:#b92336; color:#fff; box-shadow:none;
}
body.amg-site-refinement .header-cta span { color:#fff; }
body.amg-site-refinement .section:not(.section-dark):not(.amg-v4-dark):not(.amg-v2-dark),
body.amg-site-refinement #content {
  background-color:#f7f5f0 !important;
}
@media(max-width:1280px) {
  body.amg-site-refinement .site-header { backdrop-filter:none; }
  body.amg-site-refinement .header-inner {
    height:72px; min-height:72px; padding-block:0;
    display:flex; justify-content:space-between;
  }
  body.amg-site-refinement .nav-toggle { display:block; }
  body.amg-site-refinement .site-nav {
    display:none !important; position:fixed !important;
    inset:110px 0 0 !important; z-index:1000 !important;
    overflow-y:auto !important; padding:24px 22px 90px !important;
    flex-direction:column; flex-wrap:nowrap; align-items:stretch; gap:20px;
    background:#14283d !important;
  }
  body.amg-site-refinement .site-nav.is-open { display:flex !important; }
  body.amg-site-refinement .nav-list {
    display:flex !important; width:100%; flex:0 0 auto;
    flex-direction:column !important; flex-wrap:nowrap; gap:0 !important;
  }
  body.amg-site-refinement .nav-list>li { width:100%; border-bottom:1px solid #34485c; }
  body.amg-site-refinement .nav-list>li>a {
    display:block; padding:12px 2px; white-space:normal;
    font:600 23px/1.25 var(--serif);
  }
  body.amg-site-refinement .nav-list .has-submenu>ul {
    position:static !important; display:none !important;
    width:100%; padding:8px 12px 14px; border:0;
  }
  body.amg-site-refinement .nav-list .has-submenu:focus-within>ul { display:block !important; }
  body.amg-site-refinement .header-search { width:100%; flex:0 0 auto; }
  body.amg-site-refinement .header-cta { align-self:flex-start; }
  body.amg-site-refinement.menu-open #content,
  body.amg-site-refinement.menu-open .site-footer { visibility:hidden; }
}

/* Review fixes: shared between homepage and internal refinement sheets. */
body.home.amg-v4 #services .ed-services-kicker {
  display:block !important; margin:0 0 14px !important; line-height:1.4 !important;
}
body.home.amg-v4 #services .ed-services-head h2 {
  margin-top:0 !important; line-height:1.12 !important;
}
body.home.amg-v4 #services .ed-services-head>div { min-width:0; }

/* Preserve the complete creative and the plugin's responsive picture sources. */
body:is(.amg-site-refinement,.home.amg-v4) .amg-ad .amg-ad__creative,
body:is(.amg-site-refinement,.home.amg-v4) .amg-ad .amg-ad__link {
  height:auto !important; max-height:none !important; aspect-ratio:auto !important;
}
body:is(.amg-site-refinement,.home.amg-v4) .amg-ad img.amg-ad__image,
body:is(.amg-site-refinement,.home.amg-v4) .amg-sponsored-ad img {
  width:100% !important; height:auto !important; max-height:none !important;
  aspect-ratio:auto !important; object-fit:contain !important;
  object-position:center !important; transform:none !important;
}
body.amg-site-refinement .nav-list>li>a { white-space:nowrap !important; }
body.amg-site-refinement .article-header .byline,
body.amg-site-refinement .article-header .byline :is(strong,span,a) {
  color:#e7edf3 !important;
}

/* Card headlines only: leave the lead H1 and full article title intact. */
body.home.amg-v4 .amg-top-story:not(.amg-top-story-main) .amg-top-title h2,
body.home.amg-v4 #latest .ed-update h3,
body.home.amg-v4 #watch .ed-video h3,
body.amg-site-refinement .story-copy h3,
body.amg-site-refinement .article-related-grid h3 {
  display:-webkit-box !important; -webkit-box-orient:vertical !important;
  -webkit-line-clamp:2 !important; white-space:normal !important;
  word-break:normal !important; overflow-wrap:normal !important;
  overflow:hidden !important; text-overflow:ellipsis;
}
body.amg-site-refinement .story-copy h3>a,
body.amg-site-refinement .article-related-grid h3>a {
  white-space:normal; word-break:normal; overflow-wrap:normal;
}
body.home.amg-v4 #services .ed-service .ed-arrow,
body.home.amg-v4 #services .ed-service:hover .ed-arrow,
body.home.amg-v4 #services .ed-service:focus-within .ed-arrow {
  background:#b92336 !important;
}

/* Page-review corrections: explicit foreground/background pairs. */
body.amg-site-refinement .story-grid .story-card .story-copy h3,
body.amg-site-refinement .story-grid .story-card .story-copy h3 a {
  color:#202c38 !important;
}
body.amg-site-refinement .story-grid .story-card .story-copy :is(p,small) {
  color:#59636d !important;
}
body.amg-site-refinement :is(.status-card,.playtime-card,.tool-card) {
  background:#14283d !important; color:#e7edf3 !important;
}
body.amg-site-refinement :is(.status-card,.playtime-card,.tool-card) :is(h2,h3,h4,strong,small,li,p,span) {
  color:#e7edf3 !important;
}
body.amg-site-refinement .status-card a { color:#ffadb7 !important; }
body.amg-site-refinement .events-directory .event-month>h2 { color:#fff !important; }
body.amg-site-refinement .contact-card { background:#fff !important; }
body.amg-site-refinement .contact-card :is(h2,h3,label) { color:#202c38 !important; }
body.amg-site-refinement .status-page>.page-hero { margin-bottom:24px; padding-block:40px; }
body.amg-site-refinement .status-page>.status-grid { margin-top:0; }
body.amg-site-refinement .header-cta { border-radius:8px !important; white-space:nowrap !important; width:auto !important; height:auto !important; }
/* Keep lettering baked into the hero photograph inside the visible frame. */
body.home.amg-v4 .amg-top-story .amg-top-image img {
  object-fit:contain !important; transform:none !important;
}
/* Grid items must contain their image and copy rather than paint over neighbours. */
body.home.amg-v4 .ed-side { display:grid; gap:28px; align-content:start; }
body.home.amg-v4 .ed-side-card {
  display:grid; grid-template-rows:auto auto; min-height:0; height:auto;
}
body.home.amg-v4 .ed-side-card>img { width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; }
body.home.amg-v4 .ed-side-card>div {
  position:relative; inset:auto; margin:0; padding:20px; background:#14283d;
}
body.home.amg-v4 .ed-side-card::after { content:none; }
@media(max-width:390px) {
  body.amg-site-refinement .nav-list>li>a { white-space:normal !important; }
  body.amg-site-refinement .header-cta { white-space:nowrap !important; }
}
/* Empty category states stay readable regardless of their surrounding section. */
body.amg-site-refinement .empty-note { background:#14283d; color:#e7edf3; padding:24px; }
body.amg-site-refinement .empty-note :is(h2,p) { color:#e7edf3 !important; }
@media(max-width:600px) {
 body.amg-site-refinement :is(.status-grid,.playtime-grid,.story-grid,.listing-grid) { grid-template-columns:minmax(0,1fr); }
 body.amg-site-refinement :is(.status-card,.playtime-card,.tool-card,.story-card,.contact-card) { min-width:0; }
 body.amg-site-refinement .status-stats { grid-template-columns:minmax(0,1fr); }
 body.amg-site-refinement :is(.status-card,.source-note,.contact-card) { overflow-wrap:anywhere; }
}
/* Shared homepage visual language for every studio service page. */
body.amg-site-refinement .studio-v4-page { background:#f7f5f0; color:#202c38; font-family:Arial,Helvetica,sans-serif; }
body.amg-site-refinement .studio-v4-section:not(.studio-v4-dark) { background:#f7f5f0; color:#202c38; }
body.amg-site-refinement .studio-v4-page :is(h1,h2) { font-family:Georgia,'Times New Roman',serif; line-height:1.12; }
body.amg-site-refinement .studio-v4-section:not(.studio-v4-dark) :is(h2,h3) { color:#202c38 !important; }
body.amg-site-refinement .studio-v4-section:not(.studio-v4-dark) p { color:#59636d !important; }
body.amg-site-refinement :is(.studio-v4-hero,.studio-v4-dark) :is(h1,h2,h3,label) { color:#fff !important; }
body.amg-site-refinement .studio-v4-page .eyebrow { display:block; margin:0 0 14px; }
body.amg-site-refinement .studio-v4-list>div { background:#fff; color:#202c38; border-color:#dedfdc; border-radius:12px; }
body.amg-site-refinement .studio-v4-cards>a { border-radius:12px; }
body.amg-site-refinement .studio-v4-portfolio b { color:#b92336 !important; }
body.amg-site-refinement .studio-v4-hero img { object-fit:contain; }
body.amg-site-refinement .site-header .brand { display:flex; align-items:center; padding-block:12px; min-width:0; }
body.amg-site-refinement .site-header .brand .bundled-logo { width:205px; max-width:100%; height:56px; object-fit:contain; object-position:left center; transform:none; }
@media(max-width:600px) {
 body.amg-site-refinement .studio-v4-page :is(.studio-v4-hero-grid,.studio-v4-split,.studio-v4-cards,.studio-v4-fields) { grid-template-columns:minmax(0,1fr); }
 body.amg-site-refinement .studio-v4-page .wrap { max-width:calc(100% - 24px); }
 body.amg-site-refinement .studio-v4-page :is(input,select,textarea) { min-width:0; max-width:100%; }
 body.amg-site-refinement .site-header .brand .bundled-logo { width:180px; height:52px; }
}
/* Sitewide foundations: articles, archives, generic pages and local landings. */
body.amg-site-refinement { font-family:Arial,Helvetica,sans-serif; }
body.amg-site-refinement :is(.page-hero,.legal-hero,.article-header) h1,
body.amg-site-refinement :is(.entry-content,.legal-content,.section) h2 {
 font-family:Georgia,'Times New Roman',serif; line-height:1.15;
}
body.amg-site-refinement :is(.page-shell,.legal-content,.entry-content) { background:#f7f5f0; color:#202c38; }
body.amg-site-refinement .section:not(.section-dark):not(.amg-v4-dark):not(.amg-v2-dark) { background:#f7f5f0; }
body.amg-site-refinement .section-dark>.wrap>.split,
body.amg-site-refinement .section-dark .prose { color:#e7edf3; }
body.amg-site-refinement .section-dark :is(.prose,.principles) :is(h2,h3,li,p) { color:#e7edf3 !important; }
body.amg-site-refinement .section-dark>.wrap>h2,
body.amg-site-refinement .section-dark>.wrap.split>div>h2 { color:#fff; }
body.amg-site-refinement :is(.page-hero,.legal-hero) .eyebrow { margin-bottom:14px; }
body.amg-site-refinement :is(.notice,.directory-note,.paper) { background:#fff; color:#202c38; border-color:#dedfdc; }
body.amg-site-refinement :is(.notice,.directory-note,.paper) :is(h2,h3,p,li) { color:#202c38; }
@media(max-width:600px) {
 body.amg-site-refinement :is(.split,.principles) { grid-template-columns:minmax(0,1fr); }
 body.amg-site-refinement :is(.entry-content,.legal-content,.prose) { min-width:0; overflow-wrap:anywhere; }
}
/* Election guides and the searchable municipality directory. */
body.amg-site-refinement :is(.municipality-card,.election-city-grid>a) { background:#fff; color:#202c38; border:1px solid #dedfdc; border-radius:12px; box-shadow:0 4px 16px rgba(20,40,61,.045); }
body.amg-site-refinement :is(.municipality-card,.election-city-grid>a) h2 { color:#202c38 !important; }
body.amg-site-refinement :is(.municipality-card,.election-city-grid>a) p { color:#59636d !important; }
body.amg-site-refinement :is(.municipality-card,.election-city-grid>a) :is(span,b,a) { color:#b92336 !important; }
body.amg-site-refinement .election-city-detail { scroll-margin-top:180px; border-color:#dedfdc; }
body.amg-site-refinement .election-city-detail>header a { color:#b92336; }
body.amg-site-refinement .election-disclaimer { background:#14283d; color:#fff; border-color:#b92336; border-radius:12px; }
body.amg-site-refinement .election-disclaimer p,
body.amg-site-refinement .slate-card :is(span,strong,p) { color:#e7edf3 !important; }
body.amg-site-refinement .directory-tools label { color:#202c38; }
@media(max-width:600px) {
 body.amg-site-refinement :is(.municipality-grid,.election-city-grid,.election-hub-intro,.slate-list) { grid-template-columns:minmax(0,1fr); }
 body.amg-site-refinement .election-city-detail>header { flex-wrap:wrap; gap:16px; }
}

body.amg-site-refinement .official-candidate-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 24px;padding-left:20px}body.amg-site-refinement .official-candidate-list a{color:#9e1d2d;text-decoration:underline}@media(max-width:700px){body.amg-site-refinement .official-candidate-list{grid-template-columns:minmax(0,1fr)}}
