/* Coastal Tax. Colors come from the lighthouse logo: its navy, its sea blue and the pale blue of the beam, with the
   old site's harbor navy for dark bands. The warm lamp color is used only for the lighthouse's light. Every color is
   a token; dark mode follows the device setting. Contrast on white: link 6.95, muted 6.25, navy 13.7. */
@font-face { font-family: "Cinzel"; font-weight: 600; font-display: swap; src: url("/fonts/cinzel-600.woff2") format("woff2"); }

:root {
  --navy: #012C60;          /* the logo's navy */
  --harbor: #153A5B;        /* the old site's navy, for dark bands */
  --night: #0B2447;         /* the hero sky */
  --sea: #4781B6;           /* the logo's sea blue: shapes only, too light for text on white */
  --link: #235C93;          /* the sea blue darkened for text */
  --link-hover: #1D5288;
  --beam: #A9C8E5;          /* the logo's beam */
  --lamp: #F6D77A;          /* the lighthouse's lamp, never for text on white */
  --ink: #1C2733;
  --muted: #55626E;
  --page: #FFFFFF;
  --tint: #F4F7FB;
  --card: #FFFFFF;
  --line: #DCE4EE;
  --header-bg: rgba(255, 255, 255, .96);
  --heading: var(--navy);
  --button-bg: var(--navy);
  --button-text: #FFFFFF;
  --button-hover: #0A3D7A;
  --focus: #E0A800;
  --radius: 12px;
  --shadow: 0 1px 2px rgba(1, 44, 96, .06), 0 8px 24px rgba(1, 44, 96, .07);
  --display: "Cinzel", "Trajan Pro", Georgia, serif;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root {
    --ink: #E5ECF3;
    --muted: #A9B7C4;
    --page: #0A1626;
    --tint: #0F1F35;
    --card: #132741;
    --line: #22395A;
    --header-bg: rgba(10, 22, 38, .96);
    --heading: #E5ECF3;
    --link: #8FB8E0;
    --link-hover: #B5D0EC;
    --button-bg: #A9C8E5;
    --button-text: #08182C;
    --button-hover: #CFE0F1;
    --shadow: none;
    color-scheme: dark;
  }
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 96px; }
body {
  margin: 0; background: var(--page); color: var(--ink);
  font: 17px/1.65 system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}
img { max-width: 100%; height: auto; }
a { color: var(--link); text-underline-offset: 3px; }
a:hover { color: var(--link-hover); }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; border-radius: 4px; }
h1, h2, h3 { color: var(--heading); line-height: 1.2; margin: 0 0 .5em; }
h1, h2 { font-family: var(--display); font-weight: 600; letter-spacing: .01em; }
h1 { font-size: clamp(2rem, 4.6vw, 3.25rem); line-height: 1.12; }
h2 { font-size: clamp(1.5rem, 2.8vw, 2.1rem); }
h3 { font-size: 1.16rem; }
p { margin: 0 0 1em; }
ul, ol { padding-left: 1.3em; }

.wrap { width: min(1160px, 100% - 32px); margin-inline: auto; }
.narrow > * { max-width: 760px; }
.center { text-align: center; }
.center > * { margin-inline: auto; }
.skip { position: absolute; left: -999px; top: 8px; background: var(--card); padding: 8px 12px; z-index: 10; }
.skip:focus { left: 16px; }

/* top strip and header */
.topbar { background: var(--night); color: #CFE0F1; font-size: .9rem; }
.topbar .wrap { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 24px; padding: 7px 0; }
.topbar a { color: #FFFFFF; text-decoration: none; font-weight: 600; }
.topbar a:hover { text-decoration: underline; color: #FFFFFF; }
.topbar .links { display: flex; gap: 20px; flex-wrap: wrap; }
.site-header { background: var(--header-bg); border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 5;
  backdrop-filter: saturate(1.4) blur(6px); }
.header-row { display: flex; align-items: center; gap: 24px; min-height: 80px; }
.brand { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--heading); margin-right: auto; }
.brand img { width: 56px; height: 56px; }
.brand-text { display: flex; flex-direction: column; line-height: 1.05; }
.brand-text strong { font-family: var(--display); font-size: 1.6rem; font-weight: 600; letter-spacing: .06em; }
.brand-text small { color: var(--muted); font-size: .78rem; font-weight: 500; letter-spacing: .04em; margin-top: 3px; white-space: nowrap; }
.site-nav { display: flex; align-items: center; gap: 22px; }
.site-nav ul { display: flex; gap: 20px; list-style: none; margin: 0; padding: 0; }
.site-nav a:not(.button) { color: var(--ink); text-decoration: none; font-weight: 500; white-space: nowrap; }
.site-nav a:not(.button):hover, .site-nav a[aria-current="page"] { color: var(--link); }
.site-nav a[aria-current="page"] { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 8px; }
.nav-actions { display: flex; gap: 10px; align-items: center; }
.menu-button { display: none; }

/* buttons */
.button { display: inline-flex; align-items: center; gap: 8px; background: var(--button-bg); color: var(--button-text);
  padding: 12px 22px; min-height: 48px; border-radius: 8px; text-decoration: none; font-weight: 600;
  border: 2px solid var(--button-bg); cursor: pointer; font-size: 1rem; line-height: 1.2; white-space: nowrap; }
.button:hover { background: var(--button-hover); border-color: var(--button-hover); color: var(--button-text); }
.button-small { padding: 8px 14px; min-height: 42px; font-size: .95rem; }
.button-ghost { background: transparent; color: var(--link); border-color: currentColor; }
.button-ghost:hover { background: var(--tint); color: var(--link-hover); border-color: currentColor; }
.button-light { background: #FFFFFF; color: var(--navy); border-color: #FFFFFF; }
.button-light:hover { background: #CFE0F1; border-color: #CFE0F1; color: var(--navy); }
.button-outline-light { background: transparent; color: #FFFFFF; border-color: rgba(255, 255, 255, .7); }
.button-outline-light:hover { background: rgba(255, 255, 255, .1); color: #FFFFFF; border-color: #FFFFFF; }
.button svg { width: 18px; height: 18px; flex: none; }
.actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 12px; }

/* hero: the lighthouse at night */
.hero { position: relative; overflow: hidden; color: #E6EEF6;
  background: radial-gradient(1200px 520px at 78% 30%, #1B4778 0%, transparent 60%),
              linear-gradient(180deg, #071A35 0%, var(--night) 55%, #11335E 100%); }
.hero .wrap { position: relative; z-index: 1; }
.hero-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 40px; align-items: center; padding: 72px 0 120px; }
.hero h1 { color: #FFFFFF; }
.hero .lead { color: #CFE0F1; }
.hero .lead strong { color: #FFFFFF; }
.hero .eyebrow { color: var(--beam); }
.hero-art { position: relative; min-height: 420px; }
.hero-art svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.beam { transform-origin: 236px 128px; animation: sweep 9s ease-in-out infinite alternate; }
@keyframes sweep { from { transform: rotate(-9deg); } to { transform: rotate(7deg); } }
.lamp { animation: glow 4.5s ease-in-out infinite alternate; }
@keyframes glow { from { opacity: .85; } to { opacity: 1; } }
.waves { position: absolute; left: 0; right: 0; bottom: -1px; width: 100%; height: 90px; display: block; }
.waves .w1 { fill: #1E4F86; }
.waves .w2 { fill: var(--sea); opacity: .55; }
.waves .w3 { fill: var(--page); }
.credentials-strip { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px; padding: 0; list-style: none; }
.credentials-strip li { display: inline-flex; align-items: center; gap: 8px; border: 1px solid rgba(169, 200, 229, .45);
  border-radius: 999px; padding: 6px 14px; font-size: .92rem; color: #E6EEF6; background: rgba(255, 255, 255, .04); }
.credentials-strip svg { width: 16px; height: 16px; color: var(--lamp); flex: none; }

.eyebrow { text-transform: uppercase; letter-spacing: .12em; font-size: .8rem; font-weight: 700; color: var(--link); margin-bottom: .7em; }
.eyebrow a { color: inherit; text-decoration: none; }
.eyebrow a:hover { text-decoration: underline; }
.lead { font-size: 1.18rem; color: var(--muted); max-width: 62ch; }
.lead strong { color: var(--heading); }
.byline { color: var(--muted); margin: 0; }

/* page headings below the hero: a smaller night band with the beam */
.page-head { position: relative; overflow: hidden; padding: 64px 0 56px; color: #E6EEF6;
  background: radial-gradient(700px 260px at 92% 0%, rgba(169, 200, 229, .22), transparent 70%),
              linear-gradient(180deg, var(--night), var(--harbor)); }
.page-head h1 { color: #FFFFFF; max-width: 22ch; }
.page-head .lead { color: #CFE0F1; }
.page-head .eyebrow { color: var(--beam); }
.page-head a:not(.button) { color: #FFFFFF; }
.page-head .byline { color: #CFE0F1; }
.page-head::after { content: ""; position: absolute; right: -40px; top: -60px; width: 420px; height: 260px;
  background: linear-gradient(200deg, rgba(246, 215, 122, .18), transparent 60%);
  clip-path: polygon(100% 0, 100% 30%, 0 100%, 0 80%); pointer-events: none; }
.page-short { padding-bottom: 56px; }

/* sections */
.section { padding: 76px 0; }
.section-tint { background: var(--tint); }
.section-title { margin-bottom: .4em; }
.section-intro { max-width: 68ch; color: var(--muted); font-size: 1.08rem; margin-bottom: 2em; }
.rule { width: 72px; height: 4px; border: 0; margin: 0 0 18px; border-radius: 2px;
  background: linear-gradient(90deg, var(--navy), var(--sea) 60%, var(--beam)); }
.center .rule { margin-inline: auto; }
.split { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: start; }
.split-wide { grid-template-columns: 1.3fr 1fr; }

.cards { display: grid; gap: 20px; }
.cards-2 { grid-template-columns: repeat(2, 1fr); }
.cards-3 { grid-template-columns: repeat(3, 1fr); }
.card { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 26px;
  box-shadow: var(--shadow); display: flex; flex-direction: column; }
.card h3 { margin-bottom: .4em; }
.card h3 a { color: inherit; text-decoration: none; }
.card h3 a:hover { color: var(--link); text-decoration: underline; }
.card p { color: var(--muted); }
.card .more { margin-top: auto; font-weight: 600; }
.card-featured { border-top: 4px solid var(--navy); }
@media (prefers-color-scheme: dark) { .card-featured { border-top-color: var(--beam); } }
.icon { width: 44px; height: 44px; border-radius: 10px; display: grid; place-items: center; margin-bottom: 14px;
  background: var(--tint); color: var(--navy); border: 1px solid var(--line); }
@media (prefers-color-scheme: dark) { .icon { color: var(--beam); } }
.icon svg { width: 24px; height: 24px; }
.post-meta { font-size: .88rem; color: var(--muted); margin-bottom: .5em; }

.check-list { list-style: none; padding: 0; margin: 0 0 1em; }
.check-list li { position: relative; padding-left: 30px; margin: .55em 0; }
.check-list li::before { content: ""; position: absolute; left: 2px; top: .45em; width: 16px; height: 9px;
  border-left: 3px solid var(--sea); border-bottom: 3px solid var(--sea); transform: rotate(-45deg); }
.cols-2 { columns: 2; column-gap: 40px; }
.cols-2 li { break-inside: avoid; }

/* steps along the coast: numbered lights joined by a line */
.steps { list-style: none; counter-reset: step; padding: 0; margin: 0; display: grid;
  grid-template-columns: repeat(4, 1fr); gap: 24px; position: relative; }
.steps::before { content: ""; position: absolute; top: 21px; left: 12%; right: 12%; height: 2px;
  background: repeating-linear-gradient(90deg, var(--sea) 0 10px, transparent 10px 18px); opacity: .6; }
.steps li { counter-increment: step; position: relative; text-align: center; }
.steps li::before { content: counter(step); display: grid; place-items: center; width: 44px; height: 44px; margin: 0 auto 14px;
  border-radius: 50%; background: var(--navy); color: #FFFFFF; font-weight: 700; position: relative;
  box-shadow: 0 0 0 6px var(--page), 0 0 0 8px var(--beam); }
.section-tint .steps li::before { box-shadow: 0 0 0 6px var(--tint), 0 0 0 8px var(--beam); }
.steps h3 { margin-bottom: .3em; }
.steps p { color: var(--muted); margin: 0; }
@media (prefers-color-scheme: dark) { .steps li::before { background: var(--beam); color: var(--button-text); } }

/* the Enrolled Agent band */
.ea-band { background: var(--harbor); color: #DDE8F3; position: relative; overflow: hidden; }
.ea-band h2, .ea-band h3 { color: #FFFFFF; }
.ea-band a:not(.button) { color: #FFFFFF; }
.ea-band .eyebrow { color: var(--beam); }
.ea-band .rule { background: linear-gradient(90deg, var(--lamp), var(--beam)); }
.ea-points { list-style: none; padding: 0; margin: 0; display: grid; gap: 14px; }
.ea-points li { background: rgba(255, 255, 255, .06); border: 1px solid rgba(169, 200, 229, .25); border-radius: var(--radius);
  padding: 18px 20px; }
.ea-points strong { color: #FFFFFF; display: block; margin-bottom: 2px; }
.ea-band::before { content: ""; position: absolute; left: -120px; bottom: -160px; width: 520px; height: 520px; border-radius: 50%;
  background: radial-gradient(circle, rgba(169, 200, 229, .12), transparent 65%); }

.logos { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 28px; }
.logo-tile { background: #FFFFFF; border: 1px solid var(--line); border-radius: 10px; padding: 12px 16px;
  display: inline-flex; align-items: center; }
.logo-tile img { display: block; height: 64px; width: auto; }
.member-text { font-size: .9rem; color: var(--muted); max-width: 32ch; }
.ea-band .member-text { color: #CFE0F1; }

.portrait { aspect-ratio: 4 / 5; border-radius: var(--radius); background: linear-gradient(160deg, var(--night), var(--harbor));
  display: grid; place-items: center; color: var(--beam); font-family: var(--display); font-size: 4.5rem; overflow: hidden; }
.portrait img { width: 100%; height: 100%; object-fit: cover; }
.facts { list-style: none; padding: 0; margin: 20px 0 0; display: grid; gap: 8px; }
.facts li { display: flex; gap: 10px; align-items: baseline; }
.facts strong { min-width: 9.5em; color: var(--heading); }

details { border-bottom: 1px solid var(--line); padding: 16px 0; }
summary { cursor: pointer; font-weight: 600; color: var(--heading); }
details p, details ul { margin: 10px 0 0; color: var(--muted); }

.notice { background: var(--tint); border: 1px solid var(--line); border-left: 4px solid var(--sea); border-radius: 8px;
  padding: 16px 18px; }
.notice p:last-child { margin: 0; }

.cta { background: linear-gradient(120deg, var(--night), var(--harbor)); color: #DDE8F3; padding: 56px 0; position: relative; overflow: hidden; }
.cta h2 { color: #FFFFFF; margin-bottom: .2em; }
.cta p { margin: 0; }
.cta-row { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; position: relative; }
.cta::after { content: ""; position: absolute; right: 0; top: 0; bottom: 0; width: 45%;
  background: linear-gradient(195deg, rgba(246, 215, 122, .14), transparent 55%); clip-path: polygon(100% 0, 100% 45%, 0 100%, 20% 100%); }

.prose { font-size: 1.06rem; }
.prose h2 { font-family: inherit; font-size: 1.45rem; font-weight: 700; margin-top: 1.6em; letter-spacing: 0; }
.prose h3 { margin-top: 1.4em; }
.prose li { margin: .3em 0; }
.author-note { margin-top: 2.5em; padding: 18px 20px; border-radius: 10px; background: var(--tint); border: 1px solid var(--line);
  font-size: .95rem; color: var(--muted); }
.author-note p:last-child { margin: 0; }
.table-wrap { overflow-x: auto; }
table { border-collapse: collapse; width: 100%; }
th, td { text-align: left; padding: 12px; border-bottom: 1px solid var(--line); vertical-align: top; }
th { color: var(--heading); }

/* forms */
.contact-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: 48px; }
.form label, .form legend { display: block; font-weight: 600; margin-bottom: 16px; }
.form fieldset { border: 0; padding: 0; margin: 0 0 16px; }
.form legend { margin-bottom: 8px; }
.form input:not([type="checkbox"]):not([type="radio"]), .form select, .form textarea { display: block; width: 100%; margin-top: 6px;
  padding: 11px 12px; font: inherit; color: var(--ink); background: var(--card); border: 1px solid #9AABBD; border-radius: 8px; }
.form input:focus, .form select:focus, .form textarea:focus { border-color: var(--link); outline: 2px solid var(--link); outline-offset: 0; }
.choices { display: flex; flex-wrap: wrap; gap: 8px 18px; font-weight: 400; }
.choices label { display: inline-flex; align-items: center; gap: 8px; font-weight: 400; margin: 0; }
.choices input { width: 18px; height: 18px; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.req { font-weight: 400; font-size: .85rem; color: var(--muted); }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-error { background: #FDECEC; color: #8A1C1C; border: 1px solid #F3B9B9; padding: 12px 14px; border-radius: 8px; }
.small { font-size: .9rem; color: var(--muted); margin-top: 12px; }
.contact-side h2 { font-family: inherit; font-size: 1.05rem; font-weight: 700; margin: 1.4em 0 .3em; letter-spacing: 0; }
.contact-side h2:first-child { margin-top: 0; }
.contact-side .big { font-size: 1.5rem; font-weight: 700; }
.embed { width: 100%; min-height: 1300px; border: 1px solid var(--line); border-radius: var(--radius); background: #FFFFFF; }

.portal-cards .card { border-top: 4px solid var(--sea); }
.badge { display: inline-block; font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
  padding: 3px 10px; border-radius: 999px; background: var(--tint); color: var(--link); border: 1px solid var(--line); margin-bottom: 10px; }

.towns { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.towns li { background: var(--card); border: 1px solid var(--line); border-radius: 8px; padding: 10px 14px; font-weight: 600; color: var(--heading); }

/* footer: the harbor at night */
.site-footer { background: var(--night); color: #B9CAD9; font-size: .95rem; position: relative; margin-top: 0; }
.footer-waves { display: block; width: 100%; height: 48px; background: var(--page); }
.footer-waves path { fill: var(--night); }
.site-footer .wrap { padding-top: 24px; }
.footer-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.2fr; gap: 32px; }
.site-footer h2 { font-family: inherit; font-size: .82rem; text-transform: uppercase; letter-spacing: .1em; color: #FFFFFF; margin-bottom: .8em; }
.site-footer a { color: #DDE8F3; }
.site-footer a:hover { color: #FFFFFF; }
.footer-brand { display: flex; align-items: center; gap: 10px; color: #FFFFFF; font-family: var(--display); font-size: 1.3rem; margin-bottom: .5em; }
.footer-brand img { background: #FFFFFF; border-radius: 50%; }
.footer-cred { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-top: 14px; }
.footer-cred .logo-tile { padding: 8px 10px; }
.footer-cred .logo-tile img { height: 44px; }
.plain { list-style: none; padding: 0; margin: 0; }
.plain li { margin: .4em 0; }
.footer-base { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; border-top: 1px solid #22416A;
  margin-top: 36px; padding: 18px 0 28px; font-size: .88rem; }
.footer-base p { margin: 0; }

/* phones and tablets */
@media (max-width: 1240px) {
  .brand-text small { display: none; }
  .site-nav ul { gap: 14px; }
  .nav-actions .button-ghost { display: none; }
}
@media (max-width: 960px) {
  .hero-grid, .split, .split-wide, .contact-grid { grid-template-columns: 1fr; gap: 32px; }
  .hero-grid { padding-bottom: 110px; }
  .hero-art { min-height: 300px; order: -1; max-width: 420px; width: 100%; margin-inline: auto; }
  .cards-3 { grid-template-columns: 1fr 1fr; }
  .steps { grid-template-columns: 1fr 1fr; row-gap: 32px; }
  .steps::before { display: none; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .towns { grid-template-columns: 1fr 1fr; }
  .menu-button { display: inline-block; background: none; border: 1px solid var(--line); color: var(--ink);
    border-radius: 8px; padding: 10px 16px; font: inherit; font-weight: 600; cursor: pointer; min-height: 44px; }
  .site-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: var(--page);
    border-bottom: 1px solid var(--line); flex-direction: column; align-items: stretch; padding: 8px 16px 20px; gap: 12px; }
  .site-nav.open { display: flex; }
  .site-nav ul { flex-direction: column; gap: 0; }
  .site-nav ul a { display: block; padding: 12px 0; border-bottom: 1px solid var(--line); }
  .nav-actions { flex-direction: column; align-items: stretch; }
  .nav-actions .button, .nav-actions .button-ghost { display: flex; justify-content: center; }
}
@media (max-width: 640px) {
  .button { white-space: normal; }
  .actions .button { width: 100%; justify-content: center; }
  .cards-2, .cards-3, .steps, .field-row, .footer-grid, .towns { grid-template-columns: 1fr; }
  .cols-2 { columns: 1; }
  .hero-grid { padding-top: 40px; }
  .hero-art { min-height: 240px; }
  .section { padding: 56px 0; }
  .brand-text small { display: none; }
  .brand img { width: 44px; height: 44px; }
  .brand-text strong { font-size: 1.3rem; }
  .topbar .hours { display: none; }
  .facts li { flex-direction: column; gap: 0; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .beam, .lamp { animation: none; }
}
@media print {
  .topbar, .site-header, .site-footer, .cta, .hero-art, .waves, .footer-waves { display: none; }
  .page-head { background: none; color: #000; padding: 0; }
  .page-head h1, .page-head .lead { color: #000; }
  a { color: #000; }
}

/* small helpers, so pages need no inline styles (the security policy blocks them) */
.gap-top { margin-top: 28px; }
.gap-bottom { margin-bottom: 16px; }
.no-top { padding-top: 0; }
.tight { margin: 0 0 8px; padding-left: 1.2em; }
.tight li { margin: .35em 0; }
.card-title { font-size: 1.5rem; }
.split-portrait { grid-template-columns: .8fr 1.2fr; }
@media (max-width: 960px) { .split-portrait { grid-template-columns: 1fr; } .split-portrait .portrait { max-width: 360px; } }
.field-row-3 { grid-template-columns: 2fr 1fr 1fr; }
@media (max-width: 640px) { .field-row-3 { grid-template-columns: 1fr; } }
.partner-note { display: flex; gap: 16px; align-items: center; background: var(--card); border: 1px solid var(--line);
  border-radius: var(--radius); padding: 16px 18px; margin-bottom: 20px; }
.partner-note img { flex: none; background: #FFFFFF; border-radius: 8px; }
.partner-note p { margin: 0; color: var(--muted); }
.partner-note strong { color: var(--heading); }
.partner-note-plain { border: 0; padding: 0; background: none; margin-bottom: 8px; }
.partner-note-plain h3 { margin: 0; }
.byline { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.byline-photo { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; object-position: top; border: 2px solid var(--beam); }

/* IRS notice guide */
.urgency { display: inline-block; font-size: .78rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
  padding: 3px 10px; border-radius: 999px; margin: 0 0 10px; border: 1px solid transparent; }
.urgency-info { background: #E8F1FA; color: #1D5288; border-color: #C9DDF0; }
.urgency-reply { background: #EEF3E6; color: #3D5A16; border-color: #D3E2BE; }
.urgency-soon { background: #FBF3DA; color: #6B5300; border-color: #EBDCA6; }
.urgency-urgent { background: #FBE7E4; color: #8A2316; border-color: #F0C3BB; }
.urgency-on-dark { margin-top: 6px; }
.notice-card h3 { font-size: 1.08rem; }
.deadline-box { border-left-color: #C2410C; margin: 1.4em 0; }
.cross-list li::before { border: 0; width: 14px; height: 3px; background: #B42318; transform: none; top: .8em; }
.sticky-card { position: sticky; top: 112px; }

/* tax calendar */
.cal-legend { margin: 20px 0 0; display: flex; gap: 8px; flex-wrap: wrap; }
.cal-month { font-size: 1.5rem; margin: 1.6em 0 .5em; }
.cal td { vertical-align: top; }
.cal-date { white-space: nowrap; font-weight: 700; color: var(--heading); width: 9em; }
.cal-period { display: block; font-size: .88rem; color: var(--muted); }
.tag { display: inline-block; font-size: .78rem; font-weight: 700; padding: 2px 9px; border-radius: 999px; white-space: nowrap; }
.tag-individuals { background: #E8F1FA; color: #1D5288; }
.tag-businesses { background: #EEF3E6; color: #3D5A16; }
.tag-employers { background: #F3ECF9; color: #5B2A86; }
@media (max-width: 640px) { .cal th:last-child, .cal td:last-child { display: none; } .sticky-card { position: static; } }
.cal { table-layout: fixed; }
.cal th:first-child { width: 9em; }
.cal th:last-child { width: 8.5em; }
@media (max-width: 640px) { .cal th:first-child { width: 7.5em; } }

/* top menu: Services and Resources panels */
.header-row { position: relative; }
.has-menu { position: static; }
.menu-toggle { display: inline-flex; align-items: center; gap: 6px; background: none; border: 0; padding: 0; font: inherit;
  font-weight: 500; color: var(--ink); cursor: pointer; white-space: nowrap; }
.menu-toggle svg { width: 11px; height: 8px; transition: transform .15s; }
.menu-toggle:hover, .menu-toggle[aria-expanded="true"], .menu-toggle.is-here { color: var(--link); }
.menu-toggle.is-here { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 8px; }
.menu-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.menu-panel { display: none; position: absolute; top: calc(100% - 4px); right: 0; z-index: 6; background: var(--card);
  border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 18px 40px rgba(1, 44, 96, .16);
  padding: 22px; gap: 28px; }
.menu-services { left: 0; grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(0, .8fr); gap: 20px; }
.menu-resources { width: 340px; right: 180px; }
.menu-toggle[aria-expanded="true"] + .menu-panel { display: grid; }
@media (hover: hover) and (min-width: 961px) { .has-menu:hover .menu-panel { display: grid; } }
.menu-panel ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.menu-panel a { display: block; padding: 9px 10px; border-radius: 8px; text-decoration: none; color: var(--ink); }
.menu-panel a:hover, .menu-panel a[aria-current="page"] { background: var(--tint); }
.menu-label { display: block; font-weight: 600; color: var(--heading); }
.menu-line { display: block; font-size: .86rem; color: var(--muted); font-weight: 400; }
.menu-head { margin: 0 0 6px 10px; font-size: .74rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--link); }
.menu-cta { background: var(--tint); border-radius: 10px; padding: 16px 18px; align-self: start; }
.menu-cta .menu-head { margin-left: 0; }
.menu-cta p { color: var(--muted); font-size: .92rem; }
.menu-cta .button { color: var(--button-text); padding: 8px 14px; display: inline-flex; }
.menu-panel .menu-cta a.menu-all { padding: 10px 0 0; font-weight: 600; color: var(--link); text-decoration: underline; }
.menu-panel .menu-cta a.menu-all:hover { background: none; color: var(--link-hover); }

/* home: what brings you here */
.paths { margin-top: 26px; }
.paths-head { margin: 0 0 10px; font-weight: 700; color: #FFFFFF; }
.paths ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.paths a { display: inline-block; padding: 9px 16px; border-radius: 8px; background: rgba(255, 255, 255, .1);
  border: 1px solid rgba(169, 200, 229, .5); color: #FFFFFF; text-decoration: none; font-weight: 600; font-size: .95rem; }
.paths a:hover { background: #FFFFFF; color: var(--navy); }

/* foot of each service page: the other services */
.related { background: var(--tint); border-top: 1px solid var(--line); padding: 48px 0; }
.related h2 { font-size: 1.4rem; }
.related-list { list-style: none; margin: 16px 0 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; }
.related-list a { display: flex; flex-direction: column; gap: 4px; height: 100%; padding: 16px; border-radius: 10px;
  background: var(--card); border: 1px solid var(--line); text-decoration: none; color: var(--ink); }
.related-list a:hover { border-color: var(--link); }
.related-list strong { color: var(--heading); }
.related-list span { font-size: .88rem; color: var(--muted); }

@media (max-width: 1080px) { .related-list { grid-template-columns: repeat(3, 1fr); } .menu-resources { right: 120px; } }
@media (max-width: 960px) {
  .has-menu { position: relative; }
  .menu-toggle { width: 100%; justify-content: space-between; padding: 12px 0; border-bottom: 1px solid var(--line); }
  .menu-panel { position: static; box-shadow: none; border: 0; padding: 4px 0 12px; width: auto; }
  .menu-services, .menu-resources { grid-template-columns: 1fr; gap: 12px; }
  .menu-cta { display: none; }
  .related-list { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) { .related-list { grid-template-columns: 1fr; } .paths ul { flex-direction: column; } .paths a { display: block; } }
.site-footer .social { display: inline-flex; align-items: center; gap: 8px; }
.site-footer .social svg { width: 18px; height: 18px; }
.related-list-2 { grid-template-columns: 1fr 1fr; }
.towns a { color: inherit; text-decoration: underline; text-decoration-color: var(--beam); text-underline-offset: 4px; }
.near-towns a { margin-right: 6px; }
@media (max-width: 640px) { .related-list-2 { grid-template-columns: 1fr; } }
.site-nav .menu-panel a { white-space: normal; }
