/*
Theme Name: Eastman
Theme URI: https://eastman-wp.asystyoutech.net/
Author: City of Eastman
Description: Civic Classic block theme for the City of Eastman, Georgia. Ports the static design system to WordPress with a self-hosted type stack and WCAG 2.1 AA affordances.
Version: 1.1.1
Requires at least: 6.7
Tested up to: 7.0
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: eastman
Tags: block-theme, full-site-editing, government, accessibility-ready
*/

/* ===========================================================
   City of Eastman — Civic Classic design system
   Shared across all pages.

   Ported from the static handoff (site/eastman.css). Colour
   values marked "a11y" diverge from the handoff because the
   original pair failed WCAG 2.1 SC 1.4.3 (4.5:1) — see
   --green-ink and --gold below.
   =========================================================== */
:root{
  --navy:#1f2c54; --navy-2:#16213f; --navy-3:#0f1830;
  --green:#5e913a; --green-2:#79b048; --green-soft:#eef4e6;
  /* a11y: #5e913a is 3.76:1 on white — too low for body-size text.
     --green-ink (5.0:1 on white, 4.58:1 on --paper) is used wherever
     green carries text or is a text background. --green is retained
     for rules, borders, dots and icons that sit beside a text label. */
  --green-ink:#4e7b30; --green-ink-2:#3f6427;
  /* a11y: --green-2 as text over the hero photograph measured 4.47:1 against
     the lightest pixel behind it. Four points lighter clears 4.5:1. */
  --green-onphoto:#7db44c;
  --ink:#1c2438; --slate:#5a6478;
  --paper:#f6f5f1; --paper-2:#efeee8;
  /* a11y: handoff --gold was #c2722f (3.66:1 on white). */
  --card:#ffffff; --line:#e2e0d8; --line-2:#d4d2c8; --gold:#9a5a24;
  --maxw:1200px;
  --serif:"Source Serif 4",Georgia,serif;
  --sans:"Source Sans 3",system-ui,sans-serif;
  --sh:0 2px 4px rgba(20,33,63,.04),0 12px 28px rgba(20,33,63,.07);
  --focus:#1f2c54; --focus-dark:#9fd06a;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);background:var(--paper);line-height:1.6;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.15;letter-spacing:-.01em}
.ic{width:1em;height:1em;display:inline-block;vertical-align:-.14em;flex:none}
.sp{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.spf{fill:currentColor;stroke:none}

/* ---------- Accessibility scaffolding (additive) ---------- */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
.skip-link{position:absolute;left:-9999px;top:0;z-index:200;background:#fff;color:var(--navy);font-family:var(--sans);font-weight:700;font-size:15px;padding:14px 22px;border:2px solid var(--navy);border-radius:0 0 4px 0;box-shadow:0 6px 20px rgba(15,24,48,.3)}
.skip-link:focus{left:0}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:2px}
.alert :focus-visible,.head .search :focus-visible,.nav :focus-visible,
.hero :focus-visible,.pbanner :focus-visible,footer :focus-visible{outline-color:var(--focus-dark)}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .qa:hover,.btn--green:hover,.view-btn-green a:hover,.pcontent a.doc:hover,
  .gallerypage a:hover img,.qa:hover .qa__arrow{transform:none!important}
}

/* ---------- Alert notice ribbon ---------- */
.alert{background:var(--navy-3);color:#e7ecf6;font-size:14.5px}
.alert.hide{display:none}
.alert .wrap{display:flex;align-items:center;gap:14px;min-height:46px;padding-top:8px;padding-bottom:8px}
.alert .dot{width:8px;height:8px;border-radius:50%;background:var(--green-2);flex:none;box-shadow:0 0 0 4px rgba(121,176,72,.25)}
.alert__msg{color:#cdd5e6}
.alert b{color:#fff;font-weight:700}
.alert a.lk{color:#bfe39a;font-weight:600;text-decoration:underline;text-underline-offset:2px}
.alert a.lk:hover{color:#fff}
.alert__x{margin-left:auto;background:none;border:0;color:#9fb0d0;cursor:pointer;font-size:22px;line-height:1;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;flex:none;transition:.15s}
.alert__x:hover{background:rgba(255,255,255,.1);color:#fff}

/* ---------- Header ---------- */
.head{background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:60}
.head .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;height:96px}
.brand img{height:54px;width:auto}
.head .search{position:relative}
.search input{width:230px;height:42px;border:1px solid var(--line-2);background:var(--paper);border-radius:3px;padding:0 42px 0 14px;font-family:var(--sans);font-size:14.5px;color:var(--ink);transition:border-color .15s,width .2s}
/* The handoff removed the ring and signalled focus with a 1px border alone.
   Keep the border change and restore a real indicator (WCAG 2.4.7, 1.4.11). */
.search input:focus{border-color:var(--navy);width:262px}
.search input:focus-visible{outline:3px solid var(--focus);outline-offset:1px}
.search .sbtn{position:absolute;right:0;top:0;height:42px;width:42px;display:grid;place-items:center;background:none;border:0;color:var(--slate);cursor:pointer;font-size:16px}
.search .sbtn:hover{color:var(--navy)}
.results{position:absolute;top:48px;right:0;width:330px;background:#fff;border:1px solid var(--line);border-radius:4px;box-shadow:0 18px 40px rgba(20,33,63,.16);overflow:hidden;display:none;z-index:80}
.results.show{display:block}
.results a{display:flex;align-items:center;gap:11px;padding:11px 16px;font-size:14.5px;border-bottom:1px solid var(--paper-2);color:var(--ink)}
.results a:last-child{border-bottom:0}
.results a:hover,.results a[aria-selected="true"]{background:var(--paper)}
.results a .ic{color:var(--green-ink);font-size:15px}
.results .empty{padding:14px 16px;color:var(--slate);font-size:14px}

/* ---------- Nav ---------- */
.nav{background:var(--navy);position:sticky;top:96px;z-index:55}
.nav .wrap{display:flex;align-items:stretch}
.menu{display:flex;list-style:none;flex-wrap:wrap}
.menu>li{position:relative}
.menu>li>a{display:flex;align-items:center;gap:7px;height:54px;padding:0 20px;color:#dde3f0;font-weight:600;font-size:15px;transition:background .15s,color .15s}
.menu>li>a .ic{font-size:11px;opacity:.7}
.menu>li:hover>a,.menu>li>a.active,.menu>li>a[aria-expanded="true"]{background:var(--navy-2);color:#fff}
.menu>li>a.active{box-shadow:inset 0 -3px 0 var(--green-2)}
.drop{position:absolute;top:100%;left:0;min-width:248px;background:#fff;border:1px solid var(--line);border-top:3px solid var(--green);box-shadow:0 22px 44px rgba(15,24,48,.22);padding:8px 0;opacity:0;visibility:hidden;transform:translateY(8px);transition:.18s;z-index:90;list-style:none}
/* a11y: keyboard users get the same reveal as pointer users. */
.menu>li:hover>.drop,.menu>li:focus-within>.drop,.menu>li>.drop.is-open{opacity:1;visibility:visible;transform:translateY(0)}
.drop li{position:relative}
.drop a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 18px;color:var(--ink);font-size:14.5px;font-weight:500}
.drop a:hover{background:var(--paper);color:var(--navy)}
.drop a .ic{font-size:11px;color:var(--slate)}
.drop .drop{top:-11px;left:100%;border-top:3px solid var(--green)}
.drop li:hover>.drop,.drop li:focus-within>.drop,.drop li>.drop.is-open{opacity:1;visibility:visible;transform:translateY(0)}
.navx{display:none;margin-left:auto;background:none;border:0;color:#fff;font-size:22px;align-items:center;padding:0 4px;cursor:pointer}

/* ---------- Home hero ---------- */
.hero{position:relative;background:#0c1426;color:#fff;overflow:hidden}
.hero__img{position:absolute;inset:0;background-position:center 38%;background-size:cover;background-repeat:no-repeat}
.hero__img:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,20,38,.92) 0%,rgba(12,20,38,.72) 42%,rgba(12,20,38,.30) 100%)}
.hero .wrap{position:relative;z-index:2;padding:84px 28px 96px}
.hero__eyebrow{display:inline-flex;align-items:center;gap:12px;font-size:13px;letter-spacing:.22em;text-transform:uppercase;color:var(--green-onphoto);font-weight:600;margin-bottom:18px}
.hero__eyebrow:before{content:"";width:34px;height:1px;background:var(--green-onphoto)}
.hero h1{font-size:clamp(40px,6vw,72px);font-weight:700;max-width:18ch;letter-spacing:-.02em;line-height:1.04}
.hero h1 em{font-style:italic;color:#cfe0bd}
.hero p{margin-top:20px;font-size:19px;max-width:46ch;color:#dfe5f0}
.hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.btn{display:inline-flex;align-items:center;gap:10px;height:50px;padding:0 24px;border-radius:3px;font-weight:600;font-size:15px;font-family:var(--sans);cursor:pointer;transition:.16s;border:1px solid transparent}
.btn .ic{font-size:17px}
.btn--green{background:var(--green-2);color:#10210a}
.btn--green:hover{background:#88c455;transform:translateY(-2px)}
.btn--ghost{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.4)}
.btn--ghost:hover{background:rgba(255,255,255,.16);border-color:#fff}

/* ---------- Quick actions (home) ---------- */
.quick{background:var(--card);border-bottom:1px solid var(--line)}
.quick .wrap{display:grid;grid-template-columns:repeat(4,1fr);position:relative;top:-44px;margin-bottom:-44px}
.qa{background:#fff;border:1px solid var(--line);border-left:0;padding:26px 20px;display:flex;flex-direction:column;align-items:flex-start;gap:14px;transition:.18s;position:relative}
.qa:first-child{border-left:1px solid var(--line)}
.qa:hover{background:var(--navy);border-color:var(--navy);z-index:2;transform:translateY(-4px);box-shadow:0 16px 30px rgba(20,33,63,.18)}
.qa__ic{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--paper);color:var(--navy);transition:.18s}
.qa__ic .ic{width:21px;height:21px}
.qa:hover .qa__ic{background:var(--green-2);color:#10210a}
.qa__t{font-family:var(--serif);font-size:18px;font-weight:600;color:var(--ink);transition:color .18s}
.qa__d{font-size:13.5px;color:var(--slate);transition:color .18s}
.qa:hover .qa__t{color:#fff}.qa:hover .qa__d{color:#c3cee4}
.qa__arrow{position:absolute;top:24px;right:20px;color:var(--line-2);font-size:15px;transition:.18s}
.qa:hover .qa__arrow{color:var(--green-2);transform:translate(3px,-3px)}
.qa:focus-visible{z-index:3}

/* ---------- Home body ---------- */
.body{padding:74px 0 80px}
.grid{display:grid;grid-template-columns:1fr 372px;gap:56px;align-items:start}
.sec-label{display:flex;align-items:center;gap:14px;font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--green-ink);font-weight:700;margin-bottom:14px}
.sec-label:before{content:"";width:26px;height:2px;background:var(--green)}
.welcome h2{font-size:clamp(30px,3.6vw,42px);color:var(--navy);margin-bottom:8px}
.welcome p{font-size:17px;color:#39435a;margin-top:18px}
.welcome p:first-of-type{font-size:19.5px;color:var(--ink);line-height:1.55}
.lead-rule{width:64px;height:3px;background:var(--green-2);margin:22px 0 4px}
.figure{margin:34px 0 6px;border-radius:5px;overflow:hidden;border:1px solid var(--line)}
.figure img{width:100%;height:320px;object-fit:cover}
.figure figcaption{background:#fff;padding:12px 18px;font-size:13.5px;color:var(--slate);border-top:1px solid var(--line);display:flex;align-items:center;gap:9px}
.figure figcaption .ic{color:var(--green-ink);font-size:15px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:5px;overflow:hidden;margin-top:34px}
.stat{background:#fff;padding:22px 18px}
.stat b{display:block;font-family:var(--serif);font-size:30px;color:var(--navy);font-weight:700;line-height:1}
.stat span{display:block;margin-top:6px;font-size:13px;color:var(--slate);text-transform:uppercase;letter-spacing:.06em}

/* ---------- Sidebar panels ---------- */
.panel{background:#fff;border:1px solid var(--line);border-radius:5px;overflow:hidden;margin-bottom:28px}
.panel__h{display:flex;align-items:center;padding:18px 22px;background:var(--navy)}
.panel__h h2,.panel__h h3{font-size:20px;color:#fff;display:flex;align-items:center;gap:11px}
.panel__h h2 .ic,.panel__h h3 .ic{color:var(--green-2);font-size:18px}
.notice{display:block;padding:18px 22px;border-bottom:1px solid var(--line);transition:.15s}
.notice:hover{background:var(--paper)}.notice:last-child{border-bottom:0}
.notice .tag{display:inline-block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--gold);margin-bottom:7px}
.notice p{font-size:15.5px;font-weight:600;color:var(--navy);line-height:1.35}
.notice:hover p{text-decoration:underline}
.panel__f{padding:14px 22px;background:var(--paper)}
.panel__f a{display:flex;align-items:center;justify-content:center;gap:9px;font-weight:600;color:var(--navy);font-size:14.5px}
.panel__f a:hover{color:var(--green-ink)}
.panel__f .ic{font-size:14px}
.sidecard{background:#fff;border:1px solid var(--line);border-radius:5px;overflow:hidden;margin-bottom:28px}
/* A heading element here for landmark labelling; line-height is restated
   because h1–h4 default to 1.15 and the handoff used a plain div at 1.6. */
.sidecard__h{padding:16px 22px;background:var(--paper-2);border-bottom:1px solid var(--line);font-family:var(--serif);font-weight:600;font-size:17px;line-height:1.6;color:var(--navy);display:flex;align-items:center;gap:10px}
.sidecard__h .ic{color:var(--green-ink);font-size:16px}
.sidelinks a{display:flex;align-items:center;gap:11px;padding:13px 22px;border-bottom:1px solid var(--line);font-size:14.5px;font-weight:500;color:var(--ink);transition:.14s}
.sidelinks a:last-child{border-bottom:0}
.sidelinks a:hover{background:var(--paper);color:var(--green-ink);padding-left:26px}
.sidelinks a .ic{color:var(--green-ink);font-size:15px}

/* ---------- Secondary page banner ---------- */
.pbanner{position:relative;background:#0c1426;color:#fff;overflow:hidden}
.pbanner__img{position:absolute;inset:0;background-position:center 42%;background-size:cover;background-repeat:no-repeat}
/* a11y: the handoff gradient bottomed out at .62 alpha on the right, which
   left the breadcrumb below 4.5:1 over bright areas of the photograph.
   Raised to .78 — visually near-identical, measurably compliant. */
.pbanner__img:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,20,38,.92),rgba(12,20,38,.78))}
.pbanner .wrap{position:relative;z-index:2;padding:50px 28px 54px}
.crumb{display:flex;align-items:center;gap:9px;font-size:13px;color:#c3cddf;margin-bottom:14px;flex-wrap:wrap;list-style:none}
.crumb li{display:flex;align-items:center;gap:9px}
.crumb a{color:#cfe0bd;font-weight:500;text-decoration:underline;text-underline-offset:2px;text-decoration-color:rgba(207,224,189,.4)}
.crumb a:hover{color:#fff;text-decoration-color:#fff}
.crumb .ic{font-size:10px;color:#93a2c0}
.pbanner h1{font-size:clamp(30px,4.4vw,48px);font-weight:700;letter-spacing:-.02em}
.pbanner h1 em{font-style:italic;color:#cfe0bd}

/* ---------- Secondary page content ---------- */
/* .pagebody, not .page: WordPress puts a "page" class on <body> for every
   page post, which would otherwise inherit this padding site-wide. */
.pagebody{padding:60px 0 80px}
.pagebody .grid{grid-template-columns:1fr 320px}
.pcontent{background:#fff;border:1px solid var(--line);border-radius:6px;padding:44px 48px;box-shadow:var(--sh)}
.pcontent.full{max-width:880px;margin:0 auto}
.pcontent>*:first-child{margin-top:0}
.pcontent h2{font-size:26px;color:var(--navy);margin:34px 0 16px;padding-bottom:10px;border-bottom:2px solid var(--green-soft)}
.pcontent h3{font-size:19px;color:var(--green-ink);margin:24px 0 10px}
.pcontent p{font-size:16.5px;color:#39435a;margin:0 0 14px}
.pcontent strong{color:var(--ink)}
.pcontent a{color:var(--green-ink);font-weight:600;text-decoration:underline;text-underline-offset:2px;text-decoration-color:rgba(78,123,48,.45)}
.pcontent a:hover{color:var(--navy);text-decoration-color:var(--navy)}
.pcontent ul,.pcontent ol{margin:0 0 16px;padding-left:22px}
.pcontent li{font-size:16.5px;color:#39435a;margin-bottom:8px}
.pcontent hr{border:0;border-top:1px solid var(--line);margin:26px 0}
.pcontent img{border-radius:5px;margin:6px 0}

/* A promoted h3: the level is corrected for heading order while the
   handoff's subheading appearance is kept. */
.pcontent h2.as-h3{font-size:19px;color:var(--green-ink);margin:24px 0 10px;padding-bottom:0;border-bottom:0}
/* Out-specifies .pcontent>*:first-child, so restate the no-top-margin rule. */
.pcontent>h2.as-h3:first-child{margin-top:0}

/* caption heading used for content sections (e.g. notices) */
.content-caption{font-family:var(--serif);font-size:22px;color:var(--navy);font-weight:600;margin:30px 0 10px}
.pcontent>.content-caption:first-child{margin-top:0}

/* Document / PDF link rows */
.pcontent a.doc{display:flex;align-items:center;gap:13px;padding:13px 16px;margin:0 0 9px;background:var(--paper);border:1px solid var(--line);border-radius:5px;font-weight:600;color:var(--ink);text-decoration:none;transition:.14s}
.pcontent a.doc:hover{border-color:var(--green-2);background:var(--green-soft);color:var(--navy);transform:translateX(3px)}
.pcontent a.doc .ic{color:var(--green-ink);font-size:19px;flex:none}
.pcontent a.doc .ic.ext{font-size:15px;color:var(--slate);margin-left:auto}
.pcontent p:has(>a.doc){margin-bottom:0}
/* An undecorated link that stood alone in the handoff's markup: a bare line
   of text, so no paragraph spacing or prose size. */
.pcontent p.bare-link{margin:0;font-size:16px}

/* Button-style link (e.g. Past Agendas) */
.view-btn-green{margin:18px 0 26px}
.view-btn-green a{display:inline-flex;align-items:center;gap:9px;background:var(--green-ink);color:#fff!important;padding:12px 22px;border-radius:5px;font-weight:600;text-decoration:none!important}
.view-btn-green a:hover{background:var(--green-ink-2);transform:translateY(-1px)}

/* The roster, site map and separator below are real lists and rules inside
   .pcontent, so they must opt out of the prose list/hr styling above. */
.pcontent ul.member-list{margin:4px 0 22px;padding-left:0}
.pcontent .member-list li{margin-bottom:0;font-size:16px}
.pcontent .smap ul{margin:0;padding-left:0;list-style:none}
.pcontent .smap li{margin:0;font-size:inherit}
.pcontent .wp-block-separator{border:0;border-top:1px solid #afb4b5;margin:20px 0;max-width:none;height:0;opacity:1}

/* Member roster rows (council / P&Z / DDA) */
.pcontent .roster p,.pcontent p.member{margin:0}
.member-list{border:1px solid var(--line);border-radius:6px;overflow:hidden;margin:4px 0 22px;list-style:none;padding:0}
.member-list .member{display:flex;align-items:center;gap:14px;padding:14px 18px;border-bottom:1px solid var(--line);background:#fff}
.member-list .member:last-child{border-bottom:0}
.member-list .member:nth-child(even){background:var(--paper)}
.member-list .member .who{font-family:var(--serif);font-weight:700;color:var(--navy);font-size:17px}
.member-list .member .role{font-size:13px;color:var(--green-ink);font-weight:600;text-transform:uppercase;letter-spacing:.05em}
.member-list .member .dot{width:8px;height:8px;border-radius:50%;background:var(--green-2);flex:none}

/* ---------- Bootstrap-ish grid for preserved content ---------- */
.row{display:flex;flex-wrap:wrap;margin:0 -10px}
.row>[class*="col-"]{padding:0 10px}
[class*="col-"]{width:100%}
.col-md-6,.col-sm-6{width:50%}
.col-md-4{width:33.333%}
.col-lg-4{width:33.333%}

/* Paired document columns (agendas facing their minutes).
   These lists line up by position: the source pads the shorter column with
   blank paragraphs so the nth entry on the left faces the nth on the right.
   Flex columns only agree at their tops, so one label wrapping to two lines
   pushed the rest of that column down and the two never recovered. Columns the
   row block found to be parallel are given shared grid rows instead, so row n
   spans both and takes the height of the taller entry — a wrap can no longer
   accumulate. Spacing stays on the items themselves, hence row-gap:0; the
   20px column-gap restates the gutter the row margin and column padding used
   to produce. A column with no partner (the planning page's public-hearing
   notices) spans the whole band and keeps its own flow. */
@supports (grid-template-rows: subgrid){
  .row.row-aligned{display:grid;grid-template-columns:repeat(var(--cols,2),minmax(0,1fr));column-gap:20px;row-gap:0;margin:0}
  .row.row-aligned>[class*="col-"]{width:auto;padding:0;grid-row:span var(--rows,1)}
  .row.row-aligned>.col-paired{display:grid;grid-template-rows:subgrid}
  .row.row-aligned.cols-2{--cols:2}
  .row.row-aligned.cols-3{--cols:3}
  /* Matches the column widths the breakpoints below give the plain grid. */
  @media(max-width:760px){.row.row-aligned.cols-3{--cols:2}}
  @media(max-width:520px){.row.row-aligned.cols-2,.row.row-aligned.cols-3{--cols:1}}
}

/* Statistics: restyle preserved col cards into stat tiles */
.stat-grid .row{margin:0;gap:0}
.statpage .row>[class*="col-"]{padding:0}
.statpage .row>.col-md-4,.statpage .row>.col-lg-4{width:33.333%}
.statpage .row>.col-md-4 p,.statpage .row>.col-lg-4 p{height:100%;margin:0;padding:20px;border:1px solid var(--line);border-radius:6px;background:var(--paper);text-align:center}
.statpage .row>.col-md-4{padding:6px}
.statpage .row>.col-md-4 p strong{display:block;font-family:var(--serif);font-size:30px;color:var(--navy);line-height:1.1;margin-bottom:4px}
.statpage .row>.col-md-12 p{padding:0;border:0;background:none;text-align:left}
.statpage h2{margin-top:8px}
.statpage .row{margin:0}

/* Gallery page (A Look Around Town) */
.gallerypage{display:flex;flex-wrap:wrap;gap:14px;padding:36px}
.gallerypage p{display:contents}
.gallerypage a{margin:0!important;display:block;border-radius:6px;overflow:hidden;border:1px solid var(--line);flex:0 0 auto;line-height:0}
.gallerypage img{margin:0!important;width:232px!important;height:152px!important;object-fit:cover;transition:transform .35s ease}
.gallerypage a:hover img{transform:scale(1.07)}
@media(max-width:760px){.gallerypage img{width:46vw!important;height:32vw!important}}

/* Contact: two-up directory rows */
.contact-dir .row{margin:0;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.contact-dir .row>[class*="col-"]{width:50%;padding:13px 18px;border-bottom:1px solid var(--line);margin:0}
.contact-dir .row>.col-md-6:nth-child(4n+1),.contact-dir .row>.col-md-6:nth-child(4n+2){background:var(--paper)}
.contact-dir .row>.col-md-6 p{margin:0;font-size:16px}

/* ---------- Footer ---------- */
footer{background:var(--navy-3);color:#c2cce0;padding:64px 0 0}
.fgrid{display:grid;grid-template-columns:1.4fr 1fr 1.1fr 1fr;gap:40px;padding-bottom:48px}
.fbrand img{height:60px;margin-bottom:18px}
.fbrand p{font-size:14.5px;color:#92a0bd;max-width:30ch}
.fcol h2,.fcol h4{font-family:var(--serif);color:#fff;font-size:17px;line-height:1.15;font-weight:600;margin:0 0 16px;display:flex;align-items:center;gap:9px}
.fcol h2 .ic,.fcol h4 .ic{color:var(--green-2);font-size:16px}
.fcol p,.fcol a{font-size:14.5px;color:#aab6d0;line-height:1.95;display:block}
.fcol a:hover{color:#fff}
.phones{display:grid;grid-template-columns:1fr auto;gap:2px 16px;font-size:14.5px;color:#aab6d0;margin:0}
.phones dt,.phones dd{margin:0}
.phones dd{text-align:left}
/* The number is a tel: link; it must not inherit .fcol a's taller line box. */
.phones a{display:inline;line-height:inherit;font-size:inherit;color:inherit}
.phones a:hover{color:#fff}
.social a{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.social .ic{color:var(--green-2);font-size:17px}
.copy{border-top:1px solid rgba(255,255,255,.1);padding:20px 0}
.copy .wrap{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:13.5px;color:#8493b2}
.copy a{color:#aab6d0;margin-left:18px}.copy a:hover{color:#fff}
/* The webmaster credit runs inline after the copyright, so it skips the
   gutter that separates the utility links on the other side of the row. */
.copy a.webmaster{margin-left:0}

/* ---------- Sitemap ---------- */
.smap{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.smap__col h2,.smap__col h3{font-size:19px;color:var(--navy);padding-bottom:10px;border-bottom:2px solid var(--green-soft);margin:24px 0 8px;font-weight:600}
.smap__col ul{list-style:none;margin:0;padding:0}
.smap__col ul + h2,.smap__col ul + h3{margin-top:26px}
.smap__col a{display:block;padding:8px 0 8px 16px;border-left:2px solid var(--line);color:#39435a;font-weight:500;transition:.14s}
.smap__col a:hover{border-color:var(--green-2);color:var(--green-ink);padding-left:22px}
.smap__col a.sub{margin-left:16px;font-size:14.5px;color:var(--slate)}

/* ---------- WordPress integration ---------- */
.wp-site-blocks>*{margin-block-start:0}
body.admin-bar .head{top:32px}
body.admin-bar .nav{top:128px}
@media screen and (max-width:782px){
  body.admin-bar .head{top:46px}
  body.admin-bar .nav{top:142px}
}
/* The editor canvas has no sticky viewport; keep chrome in document flow. */
.editor-styles-wrapper .head,.editor-styles-wrapper .nav{position:static}

/* ---------- Responsive ---------- */
@media(max-width:1080px){.hero h1{font-size:clamp(36px,8vw,56px)}}
@media(max-width:980px){
  .grid{grid-template-columns:1fr;gap:40px}
  .pagebody .grid{grid-template-columns:1fr}
  .quick .wrap{grid-template-columns:repeat(2,1fr);top:0;margin-bottom:0;gap:14px;padding-top:34px;padding-bottom:34px}
  .qa{border-left:1px solid var(--line)!important;border-radius:4px}
  .stats{grid-template-columns:repeat(2,1fr)}
  .pcontent{padding:34px 30px}
  .smap{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:760px){
  .nav{position:static}.head{position:static}
  body.admin-bar .head,body.admin-bar .nav{top:auto}
  .head .wrap{height:auto;padding:16px 28px;flex-wrap:wrap}
  .search{flex:1}.search input,.search input:focus{width:100%}
  .navx{display:flex}
  .menu{display:none;flex-direction:column;width:100%;padding:8px 0}
  .menu.open{display:flex}
  .menu>li>a{height:auto;padding:13px 8px}
  .drop{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;border-top:0;padding:0 0 6px 18px;background:transparent;display:none}
  .drop.open,.drop.is-open{display:block}
  .drop a{color:#c9d2e6;padding:8px 8px}.drop a:hover{background:transparent;color:#fff}
  .drop .drop{left:0}
  .fgrid{grid-template-columns:1fr 1fr}
  .col-md-4,.col-lg-4{width:50%}
  .statpage .row>.col-md-4,.statpage .row>.col-lg-4{width:50%}
}
@media(max-width:520px){
  .fgrid{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}
  .smap{grid-template-columns:1fr}
  .col-md-6,.col-sm-6,.col-xs-6{width:100%}
  .contact-dir .row>[class*="col-"]{width:100%}
  .statpage .row>.col-md-4,.statpage .row>.col-lg-4{width:100%}
}
