/* South Shore Ham Radio Club - site-wide readability standard
   Colors from the club logo. All text pairs meet WCAG AA (most AAA). */
:root {
  --sshrc-navy: #1c2b4a;       /* 14:1 on white */
  --sshrc-navy-hover: #2d4373;
  --sshrc-red: #b3162b;        /* 6.9:1 on white - accents only */
  --sshrc-text: #1a1a1a;
  --sshrc-muted: #3d3d3d;
  --sshrc-bg-soft: #f3f5f9;
  --sshrc-focus: #b3162b;
}

/* ---- Base text ---- */
body, body p, body li, body td, body th, .entry-content, .textwidget, .siteorigin-widget-tinymce {
  font-family: "Poppins", Arial, sans-serif;
  font-size: 19px;
  line-height: 1.65;
  color: var(--sshrc-text);
  font-weight: 400;
}
body p, body li { max-width: 72ch; }

/* ---- Headings: readable, not condensed, no forced caps ---- */
h1, h2, h3, h4, h5, h6,
.ht-main-title, .widget-title, .ht-site-title a {
  font-family: "Poppins", Arial, sans-serif !important;
  color: var(--sshrc-navy) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
}
h1, .ht-main-title { font-size: 36px !important; }
h2 { font-size: 30px !important; }
h3, .widget-title { font-size: 25px !important; }
h4 { font-size: 22px !important; }
h5, h6 { font-size: 20px !important; }
h2, h3, h4, h5, h6 { margin: 1.4em 0 0.5em !important; }

/* ---- Header / site title ---- */
.ht-site-title a { font-size: 30px !important; font-weight: 700 !important; }

/* ---- Main navigation ---- */
.ht-menu ul li a,
.ht-menu > ul > li > a {
  font-family: "Poppins", Arial, sans-serif !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  text-transform: none !important;
  color: var(--sshrc-navy) !important;
  letter-spacing: 0 !important;
}
.ht-menu ul li.current-menu-item > a,
.ht-menu ul li.current_page_item > a,
.ht-menu ul li.current-menu-ancestor > a,
.ht-menu ul li a:hover {
  background: var(--sshrc-navy) !important;
  color: #fff !important;
}
.ht-menu ul ul { min-width: 240px; }
.ht-menu ul ul li a {
  font-size: 18px !important;
  padding: 12px 18px !important;
  background: #fff;
  color: var(--sshrc-navy) !important;
}
/* Open dropdowns on keyboard focus too, not only mouse hover */
.ht-menu ul li:focus-within > ul { display: block !important; opacity: 1 !important; visibility: visible !important; }

/* ---- Title bar & breadcrumbs ---- */
.ht-main-header { background: var(--sshrc-bg-soft) !important; }
.breadcrumb-trail, .breadcrumb-trail a, .breadcrumb-trail span {
  font-size: 17px !important;
  color: var(--sshrc-muted) !important;
  text-transform: none !important;
}
.breadcrumb-trail a { color: var(--sshrc-navy) !important; text-decoration: underline; }

/* ---- Links in content ---- */
.ht-site-content a:not(.sowb-button):not(.ow-button-base a):not(.wp-block-button__link) {
  color: var(--sshrc-navy);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}
.ht-site-content a:not(.sowb-button):not(.wp-block-button__link):hover { color: var(--sshrc-red); text-decoration-thickness: 2px; }

/* ---- Buttons: one primary, one secondary, everywhere ---- */
[class*="so-widget-sow-button-flat"] .sowb-button,
.wp-block-button:not(.is-style-outline) .wp-block-button__link,
.pmpro_btn, input[type="submit"], button[type="submit"], .wpforms-submit {
  background: var(--sshrc-navy) !important;
  border: 2px solid var(--sshrc-navy) !important;
  color: #fff !important;
  font-family: "Poppins", Arial, sans-serif !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  text-transform: none !important;
  min-height: 48px !important;
  padding: 12px 28px !important;
  border-radius: 8px !important;
  text-decoration: none !important;
}
[class*="so-widget-sow-button-flat"] .sowb-button:hover,
.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover,
.pmpro_btn:hover, input[type="submit"]:hover, button[type="submit"]:hover, .wpforms-submit:hover {
  background: var(--sshrc-navy-hover) !important;
  border-color: var(--sshrc-navy-hover) !important;
}
[class*="so-widget-sow-button-wire"] .sowb-button,
.wp-block-button.is-style-outline .wp-block-button__link {
  background: #fff !important;
  border: 2px solid var(--sshrc-navy) !important;
  color: var(--sshrc-navy) !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  min-height: 48px !important;
  padding: 12px 28px !important;
  border-radius: 8px !important;
  text-decoration: none !important;
}
[class*="so-widget-sow-button-wire"] .sowb-button:hover,
.wp-block-button.is-style-outline .wp-block-button__link:hover {
  background: var(--sshrc-navy) !important;
  color: #fff !important;
}
.sowb-button span, .sowb-button .sow-icon-container { font-size: inherit !important; color: inherit !important; }

/* ---- Forms ---- */
input[type="text"], input[type="email"], input[type="password"], input[type="tel"], textarea, select {
  font-size: 18px !important;
  padding: 10px 12px !important;
  border: 2px solid #6b7280 !important;
  border-radius: 6px;
  color: var(--sshrc-text) !important;
}
label { font-size: 18px !important; font-weight: 600; color: var(--sshrc-text); }

/* ---- Visible keyboard focus everywhere ---- */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, .sowb-button:focus-visible {
  outline: 3px solid var(--sshrc-focus) !important;
  outline-offset: 3px !important;
}

/* ---- Footer: one solid navy block, three columns ---- */
.ht-site-footer { background: var(--sshrc-navy) !important; background-image: none !important; border-top: 6px solid var(--sshrc-red) !important; }
.ht-site-footer:before, .ht-site-footer:after { display: none !important; }
.ht-main-footer { background: transparent !important; background-image: none !important; padding: 56px 0 40px !important; gap: 48px; }
.ht-site-footer, .ht-site-footer p, .ht-site-footer li, .ht-site-footer a, .ht-bottom-footer {
  font-size: 18px !important; line-height: 1.6 !important; color: #fff !important;
}
.ht-site-footer p, .ht-site-footer li { max-width: none; }
.ht-site-footer a { text-decoration: underline; text-underline-offset: 3px; }
.ht-site-footer a:hover { color: #ffd9de !important; }
.ht-site-footer a:focus-visible { outline-color: #fff !important; }
.ht-site-footer .ht-footer { text-align: left !important; }
.ht-site-footer .sshrc-footer-heading {
  font-size: 22px !important; color: #fff !important; margin: 0 0 16px !important;
  padding-bottom: 10px; border-bottom: 2px solid rgba(255,255,255,.25);
}
.sshrc-footer-facts, .sshrc-footer-links { list-style: none !important; margin: 0 0 1em !important; padding: 0 !important; }
.sshrc-footer-facts li { margin-bottom: 10px; }
.sshrc-footer-links li { margin: 0 0 10px !important; padding: 0 !important; }
.sshrc-footer-links a { display: inline-block; padding: 2px 0; }
.sshrc-footer-buttons { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; }
.ht-site-footer a.sshrc-footer-btn {
  display: inline-flex; align-items: center; min-height: 48px; padding: 10px 22px;
  background: #fff; color: var(--sshrc-navy) !important; border: 2px solid #fff; border-radius: 8px;
  font-weight: 600; text-decoration: none !important;
}
.ht-site-footer a.sshrc-footer-btn-outline { background: transparent; color: #fff !important; }
.ht-site-footer a.sshrc-footer-btn:hover { background: #ffd9de; border-color: #ffd9de; color: var(--sshrc-navy) !important; }
#ht-bottom-footer { background: #111a2e !important; padding: 18px 0 !important; }
#ht-bottom-footer, #ht-bottom-footer * { font-size: 16px !important; text-align: center; }

/* ---- Mobile ---- */
@media (max-width: 768px) {
  body, body p, body li { font-size: 18px; }
  h1, .ht-main-title { font-size: 30px !important; }
  h2 { font-size: 26px !important; }
  h3, .widget-title { font-size: 22px !important; }
  .ht-site-title a { font-size: 22px !important; }
  .ht-menu ul li a { padding: 14px 16px !important; }
}

/* ---- Header fit & theme accent color (theme default is yellow #ffc107) ---- */
.ht-header, .ht-site-footer { border-top-color: var(--sshrc-navy) !important; }
.ht-menu ul ul { border-top-color: var(--sshrc-red) !important; }
.ht-site-title, .ht-site-title a { font-size: 26px !important; line-height: 1.25 !important; }
.ht-menu > ul > li > a { padding-left: 12px !important; padding-right: 12px !important; }
@media (min-width: 1000px) {
  #ht-site-branding { max-width: 320px; }
  .ht-menu > ul { white-space: nowrap; }
}
/* Mobile menu button: navy with a visible "Menu" label (theme shows it only on small screens) */
.toggle-bar { background-color: var(--sshrc-navy) !important; }
.toggle-bar span, .toggle-bar span:before, .toggle-bar span:after { background-color: #fff !important; }
@media (max-width: 768px) {
  .ht-site-title a { font-size: 22px !important; }
  .toggle-bar { width: auto !important; padding: 0 16px 0 58px !important; line-height: 50px; }
  .toggle-bar span { left: 16px !important; right: auto !important; width: 28px !important; margin-left: 0 !important; }
  .toggle-bar:after { content: "Menu"; color: #fff; font: 600 18px/50px "Poppins", Arial, sans-serif; }
}

/* ---- Home "Get Started" cards (replaced image tiles) ---- */
.sshrc-card {
  display: flex; flex-direction: column; justify-content: center; gap: 8px;
  min-height: 170px; padding: 24px; border-radius: 10px;
  background: var(--sshrc-navy); color: #fff !important;
  text-decoration: none !important; border: 3px solid var(--sshrc-navy);
}
.sshrc-card:hover, .sshrc-card:focus-visible { background: #fff; color: var(--sshrc-navy) !important; }
.sshrc-card-title { font: 600 23px/1.25 "Poppins", Arial, sans-serif; }
.sshrc-card-desc { font-size: 17px; line-height: 1.45; }

/* ---- Tables (officers etc.) ---- */
.sshrc-table { width: 100%; max-width: 640px; border-collapse: collapse; margin: 0 0 1.5em; }
.sshrc-table th, .sshrc-table td { text-align: left; padding: 10px 14px; border-bottom: 1px solid #c9ced8; font-size: 18px; }
.sshrc-table th { background: var(--sshrc-bg-soft); color: var(--sshrc-navy); font-weight: 600; }

/* ---- Calendar embed ---- */
.sshrc-calendar { position: relative; width: 100%; max-width: 1000px; height: 650px; }
.sshrc-calendar iframe { width: 100%; height: 100%; border: 1px solid #c9ced8; border-radius: 8px; }
@media (max-width: 768px) { .sshrc-calendar { height: 520px; } }
.sshrc-calendar-link { margin-top: 12px; }

/* ---- Lead paragraph ---- */
.sshrc-lead { font: 600 28px/1.3 "Poppins", Arial, sans-serif !important; color: var(--sshrc-navy) !important; }

/* ---- WPForms readability ---- */
.wpforms-container .wpforms-field-label { font-size: 18px !important; font-weight: 600 !important; color: var(--sshrc-text) !important; }
.wpforms-container .wpforms-field-description { font-size: 16px !important; color: var(--sshrc-muted) !important; }
.wpforms-container input, .wpforms-container textarea { font-size: 18px !important; max-width: 640px; }
.wpforms-container label.wpforms-error, .wpforms-container em.wpforms-error { font-size: 16px !important; color: #b3162b !important; font-weight: 600; }

/* ---- Keep the 7-item menu on one line at desktop widths ---- */
@media (min-width: 1000px) {
  #ht-site-branding { max-width: 250px; }
  .ht-site-title, .ht-site-title a { font-size: 23px !important; }
  .ht-menu > ul > li > a { padding-left: 10px !important; padding-right: 10px !important; font-size: 17px !important; }
}

/* ---- Outline buttons: beat SiteOrigin's per-widget colors ---- */
body .ht-site-content [class*="so-widget-sow-button-wire"] .ow-button-base a.sowb-button,
body .ht-site-content [class*="so-widget-sow-button-wire"] .ow-button-base a.sowb-button span {
  color: var(--sshrc-navy) !important;
  border-color: var(--sshrc-navy) !important;
}
body .ht-site-content [class*="so-widget-sow-button-wire"] .ow-button-base a.sowb-button:hover,
body .ht-site-content [class*="so-widget-sow-button-wire"] .ow-button-base a.sowb-button:hover span {
  color: #fff !important;
}

/* ---- Home hero H1 ---- */
.home .so-widget-sow-headline h1 { font-size: 40px !important; }
@media (max-width: 768px) { .home .so-widget-sow-headline h1 { font-size: 30px !important; } }

/* ---- Join page ---- */
.sshrc-join-hero { text-align: center; max-width: 760px; margin: 0 auto 2.5em; }
.sshrc-join-hero img { width: 200px; max-width: 55vw; height: auto; margin: 0 auto 1em; display: block; }
.sshrc-join-hero p { margin-left: auto; margin-right: auto; }
.sshrc-benefits { display: flex; flex-wrap: wrap; gap: 16px; margin: 0 0 2em; }
.sshrc-benefit { flex: 1 1 320px; background: var(--sshrc-bg-soft); border-left: 5px solid var(--sshrc-navy); border-radius: 8px; padding: 18px 20px; }
.sshrc-benefit h3 { margin: 0 0 .3em !important; font-size: 22px !important; }
.sshrc-benefit p { margin: 0; }
.sshrc-callout { border: 2px solid #c9ced8; border-radius: 8px; padding: 18px 22px; margin: 0 0 2em; }
.sshrc-callout p { margin: 0; max-width: none; }
.sshrc-callout-navy { background: var(--sshrc-navy); border-color: var(--sshrc-navy); text-align: center; }
.sshrc-callout-navy p { color: #fff !important; }
.sshrc-callout-big { font: 700 30px/1.3 "Poppins", Arial, sans-serif; margin-bottom: 6px !important; }

/* Footer columns: club info wider, links and contact narrower */
@media (min-width: 900px) {
  .ht-main-footer.col-3-1-1-1 { display: grid !important; grid-template-columns: 1.5fr 1fr 1fr; gap: 48px; }
  .ht-main-footer.col-3-1-1-1 .ht-footer { width: auto !important; float: none !important; margin: 0 !important; }
  .ht-main-footer.col-3-1-1-1:before, .ht-main-footer.col-3-1-1-1:after { display: none !important; }
}

/* ---- Header logo ---- */
#ht-site-branding { display: flex !important; align-items: center; gap: 14px; }
#ht-site-branding .custom-logo-link { flex: 0 0 auto; line-height: 0; }
#ht-site-branding img.custom-logo { width: 72px !important; height: 72px !important; max-width: none; object-fit: contain; }
@media (max-width: 768px) {
  #ht-site-branding img.custom-logo { width: 52px !important; height: 52px !important; }
  #ht-site-branding { gap: 10px; }
}

/* ---- Home hero: shorter ---- */
.home .ht-site-content { padding-top: 0 !important; }
#pg-48-0 .panel-row-style { min-height: 0 !important; }
#pg-48-0 > .panel-row-style > .panel-grid-cell { padding-top: 40px !important; padding-bottom: 40px !important; }
#pg-48-0 .panel-grid-cell .panel-grid-cell { padding-top: 0 !important; padding-bottom: 0 !important; }
#pg-48-0 .panel-grid-cell .panel-grid { margin-bottom: 20px !important; }
#pg-48-0 .panel-cell-style { background: transparent !important; }
#pg-48-0 .so-widget-sow-image img { max-height: 220px; width: auto !important; margin: 0 auto; display: block; }
@media (max-width: 768px) {
  #pg-48-0 > .panel-row-style > .panel-grid-cell { padding-top: 24px !important; padding-bottom: 24px !important; }
  #pg-48-0 .so-widget-sow-image img { max-height: 160px; }
}
.home .ht-site-content > .ht-container.ht-clearfix { margin-top: 0 !important; }
#pg-48-0 > .panel-row-style { background: var(--sshrc-bg-soft) !important; border-radius: 0; align-items: center; }
#pg-48-0 .panel-row-style .panel-row-style, #pg-48-0 .panel-widget-style { background: transparent !important; padding-top: 0 !important; padding-bottom: 0 !important; }
#pg-48-0 .so-widget-sow-headline h1 { margin-top: 0 !important; }
@media (min-width: 1000px) {
  #ht-site-branding { max-width: 330px !important; }
  .ht-site-title, .ht-site-title a { font-size: 21px !important; }
}
@media (max-width: 768px) {
  #ht-site-branding { flex: 1 1 auto; min-width: 0; max-width: calc(100% - 140px); }
  .ht-site-title, .ht-site-title a { font-size: 18px !important; line-height: 1.25 !important; }
  .ht-header .ht-container { display: flex; align-items: center; justify-content: space-between; }
  /* Header already shows the logo; skip the large hero copy on phones */
  #pg-48-0 #pgc-48-0-1 { display: none !important; }
}

/* ---- ARRL news feed ([sshrc_arrl_news]) ---- */
.sshrc-news { list-style: none; margin: 0 0 1em; padding: 0; }
.sshrc-news li { padding: 16px 0; border-bottom: 1px solid #d9dee8; }
.sshrc-news li:first-child { padding-top: 0; }
.sshrc-news .sshrc-news-title { display: block; font-weight: 600; font-size: 1.05em; line-height: 1.35; }
.sshrc-news time { display: block; margin-top: 4px; font-size: 0.85em; color: var(--sshrc-muted); }
.sshrc-news p { margin: 6px 0 0; }
.sshrc-news-source { font-size: 0.9em; color: var(--sshrc-muted); }

/* ---- Member Dashboard ---- */
.sshrc-dash-hero { background: var(--sshrc-navy); color: #fff; border-radius: 8px; padding: 40px 36px !important; margin-bottom: 28px; }
.sshrc-dash-hero > * { max-width: none !important; }
.sshrc-dash-hero h2 { color: #fff !important; font-size: clamp(28px, 4vw, 40px) !important; line-height: 1.2; margin: 4px 0 12px; }
.sshrc-dash-hero p { color: #fff; font-size: 1.1em; margin: 0; max-width: 40em; }
.sshrc-dash-hero .sshrc-dash-eyebrow { text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.85em; font-weight: 600; color: #f3c6cc; }
.sshrc-dash-cards { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 20px; margin-bottom: 36px; }
.sshrc-dash-cards > * { margin: 0 !important; max-width: none !important; }
.sshrc-dash-card { background: var(--sshrc-bg-soft); border-top: 4px solid var(--sshrc-red); border-radius: 6px; padding: 20px 22px !important; }
.sshrc-dash-card h3 { margin: 0 0 8px !important; font-size: 1.15em; }
.sshrc-dash-card p { margin: 0; }
.sshrc-roster table { border-collapse: collapse; width: 100%; max-width: 560px; }
.sshrc-roster th { background: var(--sshrc-navy); color: #fff; text-align: left; }
.sshrc-roster th, .sshrc-roster td { padding: 10px 14px; border: 1px solid #d9dee8; }
.sshrc-roster tbody tr:nth-child(even) { background: var(--sshrc-bg-soft); }
.sshrc-dash-account { margin-top: 32px; font-size: 0.95em; color: var(--sshrc-muted); }
.sshrc-script { border-left: 4px solid var(--sshrc-navy) !important; background: var(--sshrc-bg-soft); padding: 14px 20px !important; margin: 0 0 16px !important; font-style: normal; }
.sshrc-script p { margin: 0; font-size: 1em; }
@media (max-width: 600px) { .sshrc-dash-hero { padding: 28px 22px !important; } }

/* ---- Net Control Script: printed-document look ---- */
.sshrc-netdoc { background: #fff; border: 1px solid #d9dee8; border-radius: 6px; padding: 36px 40px !important; margin-top: 24px; box-shadow: 0 1px 4px rgba(0,0,0,.06); }
.sshrc-netdoc > * { max-width: none !important; }
.sshrc-netdoc p { margin: 0 0 1em; line-height: 1.6; }
.sshrc-netdoc p.has-text-align-center { margin: 0.5em 0 1.2em; font-size: 1.1em; }
@media (max-width: 600px) { .sshrc-netdoc { padding: 22px 18px !important; } }

/* ---- Regional Clubs page ---- */
.sshrc-lede { font-size: 21px; }
.sshrc-table-wrap { overflow-x: auto; margin: 0 0 1.5em; }
.sshrc-table.sshrc-nets { max-width: none; }
.sshrc-club-map { height: 520px; border: 2px solid #c9ced8; border-radius: 8px; margin: 0 0 1em; }
.sshrc-note { font-size: 17px; color: var(--sshrc-muted); }
.sshrc-clubs { padding-left: 2.2em; margin: 0 0 2em; }
.sshrc-clubs li { margin: 0 0 .9em; max-width: none; }
.sshrc-clubs a { font-weight: 600; }
.sshrc-club-call { font-weight: 600; color: var(--sshrc-red); margin-left: .25em; }
.sshrc-club-meta, .sshrc-club-meet { display: block; font-size: 17px; color: var(--sshrc-muted); }
.sshrc-pin { background: var(--sshrc-navy); color: #fff; border: 2px solid #fff; border-radius: 50%;
  font: 600 12px/22px "Poppins", Arial, sans-serif; text-align: center; box-shadow: 0 1px 3px rgba(0,0,0,.4); }
.sshrc-pin.home { background: var(--sshrc-red); }
@media (max-width: 600px) { .sshrc-club-map { height: 380px; } }

/* ---- Home: "Clubs & nets near you" band ---- */
.sshrc-neighbors { display: flex; flex-wrap: wrap; align-items: center; gap: 20px 32px; background: var(--sshrc-bg-soft);
  border-left: 6px solid var(--sshrc-red); border-radius: 8px; padding: 24px 28px; }
.sshrc-neighbors-text { flex: 1 1 380px; }
.sshrc-neighbors p { margin: 0; max-width: 60ch; }
.ht-site-content a.sshrc-btn, a.sshrc-btn { display: inline-block; background: var(--sshrc-navy); color: #fff !important; text-decoration: none !important;
  font-weight: 600; font-size: 18px; padding: 14px 24px; border-radius: 6px; border: 2px solid var(--sshrc-navy); }
.ht-site-content a.sshrc-btn:hover, a.sshrc-btn:hover { background: var(--sshrc-navy-hover); color: #fff !important; }

/* ---- Home page sections (grids: 1 info cards, 2-3 about + get started, 4 clubs, 5 news, 6-7 support) ---- */
.home .panel-layout > .panel-grid { margin-bottom: 0 !important; }
.home .panel-layout > .panel-grid:not(#pg-48-0) { padding: 56px 0; position: relative; }
/* full-bleed section backgrounds */
#pg-48-2, #pg-48-3, #pg-48-6, #pg-48-7 { box-shadow: 0 0 0 100vmax var(--sec-bg); clip-path: inset(0 -100vmax); background: var(--sec-bg); }
#pg-48-2, #pg-48-3 { --sec-bg: var(--sshrc-bg-soft); }
#pg-48-2 { padding-bottom: 8px !important; }
#pg-48-3 { padding-top: 0 !important; }
#pg-48-6, #pg-48-7 { --sec-bg: var(--sshrc-bg-soft); }
#pg-48-6 { padding-bottom: 8px !important; }
#pg-48-7 { padding-top: 8px !important; }
#pg-48-4 { padding-bottom: 0 !important; }

/* section headings: navy with a short red rule */
.home .panel-layout > .panel-grid:not(#pg-48-0):not(#pg-48-1) h2.widget-title { font-size: 30px !important; margin: 0 0 20px !important; }
.home .panel-layout > .panel-grid:not(#pg-48-0):not(#pg-48-1) h2.widget-title::after {
  content: ""; display: block; width: 56px; height: 4px; background: var(--sshrc-red); border-radius: 2px; margin-top: 10px; }

/* 1: Net / Meeting / Join as cards */
#pg-48-1 .panel-grid-cell { display: flex; }
#pg-48-1 .panel-grid-cell > .so-panel:first-child { flex: 1; }
#pg-48-1 .panel-grid-cell { flex-direction: column; background: #fff; border: 2px solid #dfe3ea; border-top: 6px solid var(--sshrc-navy);
  border-radius: 10px; padding: 24px 26px !important; }
#pg-48-1 .panel-grid-cell .so-panel { margin-bottom: 0 !important; }
#pg-48-1 h2.widget-title { font-size: 16px !important; text-transform: uppercase !important; letter-spacing: .06em !important;
  color: var(--sshrc-red) !important; margin: 0 0 10px !important; }
#pg-48-1 .card-value { font: 600 24px/1.3 "Poppins", Arial, sans-serif; color: var(--sshrc-navy); margin-bottom: 6px; }
#pg-48-1 .card-sub, #pg-48-1 p { font-size: 17px; color: var(--sshrc-muted); margin: 0; }
#pgc-48-1-2 { background: var(--sshrc-navy) !important; border-color: var(--sshrc-navy) !important; border-top-color: var(--sshrc-red) !important; }
#pgc-48-1-2, #pgc-48-1-2 p { color: #fff !important; }
#pgc-48-1-2 h2.widget-title { color: #ffd9de !important; }
#pgc-48-1-2 .ow-button-base { text-align: left !important; margin-top: 16px; }
#pgc-48-1-2 .sowb-button { background: #fff !important; color: var(--sshrc-navy) !important; border-color: #fff !important; }
#pgc-48-1-2 .sowb-button:hover { background: #ffd9de !important; border-color: #ffd9de !important; }

/* 2: About - drop the old gray box, give the text room */
#pg-48-2 .panel-widget-style { background: transparent !important; padding: 0 !important; }
#pg-48-2 .prose-block { font-size: 20px; max-width: 70ch; }
#pg-48-2 #panel-48-2-0-1 { margin-top: 40px; margin-bottom: 0 !important; }

/* 4: clubs band sits on white now, so make it a white card with a border */
#pg-48-4 .sshrc-neighbors { background: #fff; border: 2px solid #dfe3ea; border-left: 6px solid var(--sshrc-red); }

/* 5: news - two-column list of separate items */
#pg-48-5 .sshrc-news { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 20px; padding: 0; margin: 0 0 20px; list-style: none; }
#pg-48-5 .sshrc-news li { max-width: none; margin: 0; padding: 20px 22px; border: 2px solid #dfe3ea; border-radius: 10px; }
#pg-48-5 .sshrc-news li p { font-size: 17px; margin: 6px 0 0; }

/* 6-7: support - one soft band (the footer below is navy), buttons side by side */
#pg-48-6 .panel-row-style, #pg-48-7 .panel-row-style { background: transparent !important; }
#pg-48-6, #pg-48-6 p { text-align: center; }
#pg-48-6 p { max-width: 60ch; margin: 0 auto; font-size: 20px; }
#pg-48-6 h2.widget-title::after { margin-left: auto; margin-right: auto; }
#pg-48-7 { padding-bottom: 64px !important; }
#pg-48-7 .panel-row-style { display: flex; justify-content: center; gap: 16px; }
#pg-48-7 .panel-grid-cell { width: auto !important; flex: 0 0 auto !important; margin: 0 !important; }
#pg-48-7 .sowb-button { min-width: 200px; }
#pg-48-7 .sshrc-zeffy-donate.sowb-button { background: var(--sshrc-red) !important; border-color: var(--sshrc-red) !important; color: #fff !important; }
#pg-48-7 .sshrc-zeffy-donate.sowb-button:hover { background: #8f1122 !important; border-color: #8f1122 !important; }
.home .ht-site-content { padding-bottom: 0 !important; margin-bottom: 0 !important; }

/* equal-height info cards; stronger hero outline button */
#pg-48-1 { align-items: stretch !important; }
#pg-48-0 [class*="so-widget-sow-button-wire"] .sowb-button { border: 2px solid var(--sshrc-navy) !important; color: var(--sshrc-navy) !important; background: #fff !important; font-weight: 600 !important; }

@media (max-width: 780px) {
  .home .panel-layout > .panel-grid:not(#pg-48-0) { padding: 40px 0; }
  #pg-48-1 .panel-grid-cell { margin-bottom: 16px !important; }
  #pg-48-7 .panel-row-style { flex-direction: column; align-items: center; }
  .home .panel-layout > .panel-grid:not(#pg-48-0):not(#pg-48-1) h2.widget-title { font-size: 26px !important; }
}
.home .page-content, .home #primary { margin-bottom: 0 !important; }
#pg-48-7 .sowb-button { min-width: 220px; box-sizing: border-box; }

/* ---- Home hero: text only on navy; the patch lives in About ---- */
#pg-48-0 #pgc-48-0-1 { display: none !important; }
#pg-48-0 > .panel-row-style { background: var(--sshrc-navy) !important; flex-direction: column !important; align-items: center !important; }
#pg-48-0 > .panel-row-style > .panel-grid-cell { width: 100% !important; margin: 0 !important; text-align: center; }
#pg-48-0 #pgc-48-0-0 { padding: 64px 16px 60px !important; }
#pg-48-0 #pgc-48-0-0 .panel-cell-style, #pg-48-0 #pgc-48-0-0 > .panel-cell-style > .so-panel, #pg-48-0 #pgc-48-0-0 .panel-grid,
#pg-48-0 #pgc-48-0-0 .panel-grid-cell, #pg-48-0 #pgc-48-0-0 .panel-row-style {
  width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
#pg-48-0 .so-widget-sow-headline, #pg-48-0 .so-widget-sow-headline * { text-align: center !important; }
#pg-48-0 .sow-headline-container::before { content: "W1SHR \00B7  Plymouth, MA \00B7  Since 1994"; display: inline-block;
  color: #fff; background: var(--sshrc-red); border-radius: 999px; padding: 8px 16px; margin-bottom: 22px;
  font: 600 15px/1 "Poppins", Arial, sans-serif; letter-spacing: .1em; text-transform: uppercase; }
#pg-48-0 .so-widget-sow-headline h1 { color: #fff !important; font-size: 52px !important; line-height: 1.15 !important; margin: 0 0 14px !important; }
#pg-48-0 .so-widget-sow-headline .sow-sub-headline, #pg-48-0 .so-widget-sow-headline :is(p, h2, h3, h4) { color: #dfe5f0 !important; font-size: 21px !important; font-weight: 400 !important; }
#pg-48-0 .panel-grid:has(.so-widget-sow-button) { display: none !important; }  /* Join is in the cards just below */
@media (max-width: 768px) {
  #pg-48-0 #pgc-48-0-0 { padding: 40px 16px 36px !important; }
  #pg-48-0 .so-widget-sow-headline h1 { font-size: 34px !important; }
  #pg-48-0 .sow-headline-container::before { font-size: 13px; }
}

/* About: patch beside the text */
.sshrc-about-patch { float: right; width: 240px; height: auto; margin: 0 0 16px 40px; }
@media (max-width: 700px) { .sshrc-about-patch { float: none; display: block; width: 180px; margin: 0 auto 20px; } }

/* Card action buttons (e.g. Monthly Meeting → calendar) */
.ht-site-content a.sshrc-btn-outline, a.sshrc-btn-outline { background: #fff; color: var(--sshrc-navy) !important; font-size: 17px; padding: 10px 20px; }
.ht-site-content a.sshrc-btn-outline:hover, a.sshrc-btn-outline:hover { background: var(--sshrc-navy); color: #fff !important; }
#pg-48-1 p.sshrc-card-action { margin-top: 16px; }
#pg-48-0 .sow-sub-headline { margin-left: auto !important; margin-right: auto !important; }
.sshrc-about-patch { border-radius: 50%; }

/* ---- Sticky header ---- */
#ht-masthead { position: sticky; top: 0; z-index: 999; background: #fff; box-shadow: 0 2px 8px rgba(28,43,74,.12); }
.admin-bar #ht-masthead { top: 32px; }
@media (max-width: 782px) { .admin-bar #ht-masthead { top: 46px; } }
html { scroll-padding-top: 100px; }  /* in-page links land below the header */
@media (max-width: 1024px) { #ht-masthead .ht-menu { max-height: calc(100vh - 120px); overflow-y: auto; } }

/* ---- Site search (last item in the main menu) ---- */
.sshrc-search-item { position: relative; }
.sshrc-search-toggle { display: inline-flex; align-items: center; gap: 6px; background: none; border: 2px solid var(--sshrc-navy);
  color: var(--sshrc-navy); border-radius: 6px; padding: 6px 12px; font: 600 16px/1 "Poppins", Arial, sans-serif; cursor: pointer; margin-left: 8px; }
.sshrc-search-toggle:hover, .sshrc-search-item.is-open .sshrc-search-toggle { background: var(--sshrc-navy); color: #fff; }
.sshrc-search-form { display: none; position: absolute; right: 0; top: calc(100% + 12px); width: 380px; background: #fff;
  border: 2px solid #dfe3ea; border-radius: 10px; padding: 16px; box-shadow: 0 8px 24px rgba(28,43,74,.18); z-index: 1000; text-align: left; }
.sshrc-search-item.is-open .sshrc-search-form { display: block; }
.sshrc-search-form label { display: block; font-weight: 600; color: var(--sshrc-navy); margin-bottom: 8px; font-size: 17px; }
.sshrc-search-row { display: flex; gap: 8px; }
.sshrc-search-form input[type="search"] { flex: 1; min-width: 0; font-size: 18px; padding: 10px 12px; border: 2px solid #9aa3b5; border-radius: 6px; }
.sshrc-search-form button[type="submit"] { padding: 10px 16px; font-size: 17px; }
/* phones/tablets: the menu is a drop-down list, so show the form inline */
@media (max-width: 1024px) {
  .sshrc-search-toggle { display: none; }
  .sshrc-search-form { display: block; position: static; width: auto; border: 0; box-shadow: none; border-radius: 0; padding: 14px 16px; }
}
@media (min-width: 1025px) {
  #ht-masthead .ht-menu > ul { display: flex !important; flex-wrap: nowrap; align-items: center; }
  #ht-masthead .ht-menu > ul > li > a { padding: 0 8px !important; }
}
@media (min-width: 1025px) and (max-width: 1199px) {  /* tight widths: icon-only search button */
  .sshrc-search-toggle span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  #ht-masthead .ht-menu > ul > li > a { padding: 0 6px !important; font-size: 16px !important; }
}
.sshrc-search-form label { text-transform: none !important; letter-spacing: 0 !important; }

/* ---- Search results ---- */
.search-results .site-main article { border: 2px solid #dfe3ea; border-radius: 10px; padding: 20px 24px; margin: 0 0 20px; }
.search-results .site-main .entry-title { font-size: 24px !important; margin: 0 0 8px !important; }
.search-results .entry-summary { font-size: 18px; max-width: 72ch; }
.search-results .entry-readmore a { display: inline-block; margin-top: 12px; background: #fff !important; color: var(--sshrc-navy) !important;
  border: 2px solid var(--sshrc-navy) !important; border-radius: 6px; padding: 8px 18px; font-weight: 600; text-decoration: none !important; }
.search-results .entry-readmore a:hover { background: var(--sshrc-navy) !important; color: #fff !important; }

/* Draft placeholders to fill in before publishing */
mark.sshrc-todo { background: #fff3b0; color: #5a4500; padding: 0 4px; border-radius: 3px; font-weight: 600; }
