/*
Theme Name: MCSG 2026
Theme URI: https://www.brandtastic1.com/
Description: Custom SiteOrigin-ready theme for the Massachusetts Chimney Sweep Guild.
Author: Brandtastic
Author URI: https://www.brandtastic1.com/
Version: 2.0.37
Text Domain: mcsg
*/

:root {
  --MCSG-RED: #8c1113;
  --mcsg-red: #8c1113;
  --mcsg-red-dark: #630001;
  --mcsg-charcoal: #272727;
  --mcsg-black: #212427;
  --mcsg-page: #fafafa;
  --mcsg-white: #fff;
  --mcsg-gray: #e9e9e9;
  --mcsg-border: rgba(33, 36, 39, 0.14);
  --mcsg-shadow: 0 4px 16px rgba(0, 0, 0, 0.16);
  --mcsg-container: 1400px;
  --mcsg-heading: "oswald", "Arial Narrow", sans-serif;
  --mcsg-body: "open-sans", Arial, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  overflow-x: clip;
  color: var(--mcsg-black);
  background: var(--mcsg-page);
  font: 400 18px/1.55 var(--mcsg-body);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
img, svg { display: block; max-width: 100%; }
iframe { max-width: 100%; }
a { color: var(--mcsg-red); text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
a:hover, a:focus-visible { color: var(--mcsg-red-dark); }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
h1, h2, h3, h4, h5, h6 {
  margin: 0 0 0.45em;
  font-family: var(--mcsg-heading);
  font-weight: 600;
  line-height: 1.12;
  letter-spacing: 0.03em;
  text-transform: capitalize;
}
h1 { color: var(--MCSG-RED, #8c1113); font-family: Oswald, var(--mcsg-heading); font-size: 45px; font-style: normal; font-weight: 600; line-height: normal; letter-spacing: 1.35px; text-transform: capitalize; }
h2 { color: var(--MCSG-RED, #8c1113); font-family: Oswald, var(--mcsg-heading); font-size: 36px; font-style: normal; font-weight: 600; line-height: normal; letter-spacing: 1.08px; text-transform: capitalize; }
h3 { color: var(--MCSG-RED, #8c1113); font-family: Oswald, var(--mcsg-heading); font-size: 24px; font-style: normal; font-weight: 600; line-height: normal; letter-spacing: .72px; text-transform: capitalize; }
p { margin: 0 0 1.25em; }
:focus-visible { outline: 3px solid #f0b429; outline-offset: 3px; }
.screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.screen-reader-text:focus {
  top: 10px; left: 10px; z-index: 100000; width: auto; height: auto;
  padding: 12px 18px; clip: auto; color: var(--mcsg-black); background: #fff;
}
.mcsg-container { width: min(calc(100% - 40px), var(--mcsg-container)); margin-inline: auto; }
.site-main { min-height: 40vh; }
.button, .btn, input[type="submit"], button[type="submit"] {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 52px; padding: 11px 18px; border: 2px solid var(--mcsg-red); border-radius: 5px;
  color: #fff; background: var(--mcsg-red); font-family: var(--mcsg-heading); font-size: 19px;
  font-weight: 600; line-height: 1.25; letter-spacing: 0.03em; text-align: center; text-decoration: none;
  cursor: pointer; transition: background-color .2s, color .2s, border-color .2s, transform .2s;
}
.button:hover, .button:focus-visible, .btn:hover, .btn:focus-visible { color: #fff; background: var(--mcsg-red-dark); border-color: var(--mcsg-red-dark); transform: translateY(-1px); }
.button--light { color: var(--mcsg-black); background: var(--mcsg-gray); border-color: var(--mcsg-gray); }
.button--light:hover, .button--light:focus-visible { color: var(--mcsg-black); background: #fff; border-color: #fff; }

/* Header and native WordPress navigation. */
.site-header { position: sticky; top: 0; z-index: 999; height: 161px; overflow: visible; background: var(--mcsg-page); box-shadow: 0 4px 4px rgba(0,0,0,.14); }
.admin-bar .site-header { top: 32px; }
.site-header__inner { position: relative; z-index: 1; display: flex; align-items: center; justify-content: center; gap: clamp(80px, 13.1vw, 262px); width: min(100%, 2000px); height: 100%; margin-inline: auto; padding: 28px 10px; }
.site-header__brand { position: relative; z-index: 2; display: flex; align-items: center; width: 167px; height: 105px; flex: 0 0 auto; }
.site-header__brand::before { content: ""; position: absolute; z-index: -1; top: -28px; right: -185px; bottom: -28px; left: -100vw; background: linear-gradient(90deg, #a71c1f, var(--mcsg-red)); clip-path: polygon(0 0, 100% 0, calc(100% - 125px) 100%, 0 100%); }
.site-header__brand img { width: 167px; height: 105px; object-fit: contain; }
.site-navigation { position: relative; z-index: 3; display: flex; align-items: center; gap: 30px; }
.site-navigation__menu, .site-navigation__menu ul { padding: 0; margin: 0; list-style: none; }
.site-navigation__menu { display: flex; align-items: center; gap: clamp(20px, 2vw, 40px); }
.site-navigation__menu > li { position: relative; display: flex; align-items: center; }
.site-navigation__menu a { position: relative; display: block; padding: 15px 0; color: var(--mcsg-charcoal); font-family: var(--mcsg-heading); font-size: 20px; font-style: normal; font-weight: 500; line-height: 28px; letter-spacing: .6px; text-decoration: none; white-space: nowrap; }
.site-navigation__menu > li > a::after { content: ""; position: absolute; right: 50%; bottom: 8px; left: 50%; height: 2px; background: var(--mcsg-red); transition: right .2s, left .2s; }
.site-navigation__menu > li:hover > a::after, .site-navigation__menu > .current-menu-item > a::after, .site-navigation__menu > .current-menu-ancestor > a::after, .site-navigation__menu > li > a:focus-visible::after { right: 0; left: 0; }
.site-navigation__menu .sub-menu { position: absolute; top: calc(100% - 2px); left: -22px; min-width: 250px; padding: 12px 22px; visibility: hidden; opacity: 0; transform: translateY(8px); background: #fff; border-top: 3px solid var(--mcsg-red); border-radius: 0 0 5px 5px; box-shadow: var(--mcsg-shadow); transition: opacity .18s, transform .18s, visibility .18s; }
.site-navigation__menu li:hover > .sub-menu, .site-navigation__menu li:focus-within > .sub-menu { visibility: visible; opacity: 1; transform: none; }
.site-navigation__menu .sub-menu .sub-menu { top: -15px; left: calc(100% + 20px); }
.site-navigation__menu > li:nth-last-child(-n+2) > .sub-menu { right: -22px; left: auto; }
.site-navigation__menu .sub-menu a { padding: 9px 0; font-size: .98rem; }
.submenu-toggle { display: none; }
.site-header__member-button { min-height: 52px; padding: 10px 15px; font-size: 1rem; line-height: 28px; white-space: nowrap; }
.site-navigation__toggle { display: none; width: 48px; height: 48px; padding: 8px; border: 0; color: var(--mcsg-red); background: transparent; cursor: pointer; }
.site-navigation__toggle-lines, .site-navigation__toggle-lines span { display: block; }
.site-navigation__toggle-lines span { width: 30px; height: 3px; margin: 6px auto; border-radius: 3px; background: currentColor; transition: transform .2s, opacity .2s; }

/* Native mobile navigation, modeled on the original Brandtastic sliding panel. */
.site-header__mobile-controls { display: none; align-items: center; gap: 12px; }
.site-header__mobile-member, .mobile-menu-member { display: inline-flex; align-items: center; justify-content: center; border-radius: 5px; color: #fff; background: var(--mcsg-red); font-family: var(--mcsg-heading); font-weight: 600; letter-spacing: .03em; text-decoration: none; text-transform: capitalize; }
.site-header__mobile-member { padding: 9px 12px; font-size: .9rem; line-height: 22px; white-space: nowrap; box-shadow: -1px 1px 2px rgba(0,0,0,.25); }
.site-header__mobile-member:hover, .site-header__mobile-member:focus-visible, .mobile-menu-member:hover, .mobile-menu-member:focus-visible { color: #fff; background: var(--mcsg-red-dark); }
.mobile-menu-member { display: flex; width: fit-content; margin: 24px auto 0; padding: 10px 15px; color: #212427; background: #e9e9e9; font-size: 1.15rem; line-height: 28px; box-shadow: 0 2px 4px rgba(0,0,0,.21); }
.mobile-menu-member:hover, .mobile-menu-member:focus-visible { color: #212427; background: #e9e9e9; }
.sliding-navbar { position: fixed; z-index: 1100; top: 0; bottom: 0; left: 0; width: min(86vw, 600px); overflow: hidden; color: #fff; background: var(--mcsg-red) url("img/mcsg/mobile-menu.svg") bottom center / auto 590px no-repeat; transform: translateX(-100%); visibility: hidden; transition: transform .8s ease-in-out, visibility .8s; }
.sliding-navbar--open { transform: none; visibility: visible; }
.sliding-nav-inner { position: absolute; inset: 0; display: flex; overflow-x: hidden; overflow-y: auto; flex-direction: column; justify-content: space-between; }
.menu-separator { height: 1px; margin: 30px 20px; background: rgba(255,255,255,.9); }
.responsive-menu { position: relative; width: 100%; overflow: hidden; }
#menu-responsive, #menu-responsive ul { padding: 0; margin: 0; list-style: none; }
#menu-responsive { width: 100%; font-family: var(--mcsg-body); font-size: 18px; font-weight: 400; }
#menu-responsive li { position: relative; margin: 0; border-bottom: .75px solid rgba(255,255,255,.2); }
#menu-responsive li.current-menu-ancestor, #menu-responsive li.current-menu-item { background: rgba(0,0,0,.18); }
#menu-responsive li a { display: block; padding: 13px 64px 13px 20px; color: #fff; font-size: 18px; font-weight: 400; line-height: 36px; letter-spacing: .03em; text-decoration: none; }
#menu-responsive li a:hover, #menu-responsive li a:focus-visible { color: #fff; background: rgba(0,0,0,.12); }
#menu-responsive .sub-menu { position: fixed; z-index: 1200; top: 0; bottom: 0; left: 0; display: block; width: min(86vw, 600px); overflow-x: hidden; overflow-y: auto; background: var(--mcsg-red) url("img/mcsg/mobile-menu.svg") bottom center / auto 590px no-repeat; opacity: 0; transform: translateX(-100%); visibility: hidden; transition: transform .3s ease, opacity .3s, visibility .3s; }
#menu-responsive .sub-menu.open { opacity: 1; transform: none; visibility: visible; }
#menu-responsive .sub-menu li a { padding: 13px 64px 13px 20px; color: #fff; font-size: 18px; line-height: 36px; }
.toggle-btn { position: absolute; z-index: 9; top: 8px; right: 0; display: flex; width: 60px; height: 46px; align-items: center; justify-content: center; padding: 0; margin: 0; border: 0; color: #fff; background: transparent; cursor: pointer; }
.toggle-btn svg { width: 20px; height: 20px; }
.toggle-btn:hover, .toggle-btn:focus-visible { color: #fff; background: rgba(0,0,0,.12); }
#menu-responsive .sub-menu li.back-btn { border-bottom: 2px solid #fff; }
.back-btn button { display: inline-flex; align-items: center; gap: 5px; padding: 14px 15px; border: 0; color: #fff; background: transparent; font-family: var(--mcsg-body); font-size: 19px; font-weight: 400; letter-spacing: .03em; text-transform: uppercase; cursor: pointer; }
.back-btn button svg { width: 20px; height: 20px; }
.sliding-nav-bottom { text-align: center; }
.sliding-nav-bottom .site-footer__socials { margin: 30px 20px; }
.sliding-nav-bottom .site-footer__socials img { width: 24px; height: 24px; filter: brightness(0) invert(1); }
.mobile-menu-mask { position: fixed; z-index: -100; inset: 0; width: 100%; padding: 0; border: 0; background: #000; opacity: 0; cursor: pointer; transition: opacity .8s; }
.mobile-menu-mask::after { content: ""; position: fixed; top: 55px; left: calc(min(86vw, 600px) + 20px); width: 26px; height: 26px; background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAAAG1BMVEX///////////////////////////////////8HBRbfAAAACHRSTlMABgdERUas9XP5BaEAAABcSURBVHjafdLVAUMhFMBQ5Nr+C1fzmfYJdnBYu2LJE7VXTYdIT72DDpHOhZlgKpgKpoKpYCqYCoaYIWYuUJjcb4fhEiH2FeapgqlgKpgKpoKpYCrYv8t2fl3R8wSVuAWAADR4IAAAAABJRU5ErkJggg==") center / contain no-repeat; }
.mobile-menu-mask.show { z-index: 1090; opacity: .8; }
html.sliding-navbar-initiated { height: 100%; overflow: hidden; }

/* Standard content templates. */
.page-header { position: relative; isolation: isolate; display: flex; height: 300px; min-height: 300px; align-items: center; overflow: hidden; color: #fff; background: #272727 url("img/mcsg/page-header.webp") center / cover no-repeat; text-align: left; }
.page-header::before { position: absolute; z-index: -1; inset: 0; content: ""; background: linear-gradient(90deg, rgba(0,0,0,.8) 0%, rgba(102,102,102,.8) 100%); }
.page-header__inner { width: min(calc(100% - 50px), 1400px); margin-inline: auto; }
.page-header__title { margin: 0; color: #fff; font-family: var(--mcsg-heading); font-size: 55px; font-weight: 700; line-height: normal; letter-spacing: 1.65px; text-transform: capitalize; }
.main-content-area { padding: 50px 45px 120px; }
.page-id-345 .main-content-area,
.page-id-755 .main-content-area { padding: 0; }
.main-content-area .container { width: min(calc(100% - 40px), 1310px); margin-inline: auto; }
.blog-archive, .single-post-wrap { width: min(calc(100% - 40px), 1100px); margin-inline: auto; }
.article > :first-child { margin-top: 0; }
.article > :last-child { margin-bottom: 0; }
.mcsg-content-section + .mcsg-content-section { margin-top: 45px; }
.mcsg-content-row { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 35px; }
.mcsg-content-row + .mcsg-content-row { margin-top: 35px; }
.mcsg-content-column { flex: 1 1 0; min-width: 0; }
.mcsg-content-column--1-2 { flex-basis: calc(50% - 18px); }
.mcsg-content-column--1-3 { flex-basis: calc(33.333% - 24px); }
.mcsg-content-column--2-3 { flex-basis: calc(66.666% - 12px); }
.mcsg-content-column--1-4 { flex-basis: calc(25% - 27px); }
.mcsg-content-column--3-4 { flex-basis: calc(75% - 9px); }
.mcsg-content-image { margin: 0 0 25px; }
.mcsg-content-image img { display: block; width: auto; max-width: 100%; height: auto; }
.mcsg-content-image--center img { margin-inline: auto; }
.mcsg-homepage .site-main { min-height: 0; }
.mcsg-empty-homepage { padding: 120px 0; text-align: center; }
.mcsg-empty-homepage .mcsg-container { max-width: 760px; padding: 50px; background: #fff; border: 1px solid var(--mcsg-border); border-radius: 15px; box-shadow: var(--mcsg-shadow); }

/* Global Figma footer. */
.site-footer-cta { display: grid; grid-template-columns: minmax(300px, 41%) 1fr; min-height: 520px; color: #fff; background: linear-gradient(90deg, #ad1d1f 0%, var(--mcsg-red) 56%, var(--mcsg-red-dark) 100%); box-shadow: 0 4px 8px rgba(0,0,0,.35); }
.site-footer-cta__image { min-height: 100%; background: linear-gradient(rgba(0,0,0,.08), rgba(0,0,0,.08)), var(--footer-image) center/cover no-repeat; }
.site-footer-cta__content { display: flex; align-items: center; justify-content: center; gap: clamp(35px, 4vw, 70px); padding: 70px clamp(35px, 6vw, 110px); }
.site-footer-cta__identity { display: flex; flex: 0 0 295px; flex-direction: column; align-items: center; gap: 18px; }
.site-footer-cta__identity > img { width: 295px; height: 187px; object-fit: contain; }
.site-footer-cta__copy { max-width: 570px; }
.site-footer-cta__copy h2 { margin-bottom: 25px; color: #fff; font-size: clamp(2rem, 3vw, 2.6rem); }
.site-footer__socials { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 18px; padding: 0; margin: 0; list-style: none; }
.site-footer__socials a { color: #fff; font-size: .8rem; font-weight: 600; text-decoration: none; }
.site-footer__socials img { width: 22px; height: 22px; object-fit: contain; filter: brightness(0) invert(1); }
.site-footer { padding: 15px 0; color: #fff; background: var(--mcsg-charcoal); }
.site-footer__inner { display: flex; min-height: 35px; align-items: center; justify-content: space-between; gap: 30px; width: min(calc(100% - 100px), 1900px); margin-inline: auto; }
.site-footer__menu { display: flex; min-height: 35px; align-items: center; gap: 35px; padding: 0; margin: 0; font-family: "Open Sans", sans-serif; font-size: 15px; font-weight: 600; line-height: normal; text-align: center; white-space: nowrap; list-style: none; }
.site-footer a { color: #fff; text-decoration: none; }
.site-footer a:hover, .site-footer a:focus-visible { text-decoration: underline; }
.site-footer__legal { display: flex; min-height: 35px; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 0 10px; font-family: "Open Sans", sans-serif; font-size: 15px; font-weight: 600; line-height: normal; letter-spacing: .45px; text-align: center; white-space: nowrap; }
.site-footer__legal a { color: #fff; text-decoration: none; }
.site-footer__legal a:hover, .site-footer__legal a:focus { text-decoration: none; }
.site-footer__legal a svg { display: inline-block; width: 104.409px; height: 16px; margin-top: -1px; vertical-align: middle; }
.site-footer__legal a svg path.logo-brand, .site-footer__legal a svg path.logo-tastic { transition: fill .3s ease; }
.site-footer__legal a:hover svg path.logo-brand, .site-footer__legal a:focus svg path.logo-brand { fill: #007bc3; }
.site-footer__legal a:hover svg path.logo-tastic, .site-footer__legal a:focus svg path.logo-tastic { fill: #ed0b70; }

@media (min-width: 993px) and (max-width: 1550px) {
  .site-header__inner { gap: clamp(70px, 6.5vw, 100px); }
  .site-header__brand::before { right: -135px; clip-path: polygon(0 0, 100% 0, calc(100% - 110px) 100%, 0 100%); }
  .site-navigation { gap: 20px; }
  .site-navigation__menu { gap: clamp(16px, 1.4vw, 22px); }
  .site-navigation__menu a { font-size: 18px; line-height: 25px; letter-spacing: .54px; }
}
@media (min-width: 993px) and (max-width: 1360px) {
  .site-navigation__menu a { font-size: 17px; line-height: 24px; letter-spacing: .51px; }
}
@media (min-width: 993px) and (max-width: 1240px) {
  .site-navigation__menu { gap: 14px; }
  .site-navigation__menu a { font-size: 15px; line-height: 22px; letter-spacing: .45px; }
}
@media (min-width: 993px) and (max-width: 1220px) {
  .site-header__inner { gap: clamp(35px, 4vw, 50px); }
  .site-header__brand::before { right: -100px; clip-path: polygon(0 0, 100% 0, calc(100% - 80px) 100%, 0 100%); }
}
@media (min-width: 993px) and (max-width: 1100px) {
  .site-header__inner { gap: 30px; }
  .site-header__brand::before { right: -70px; clip-path: polygon(0 0, 100% 0, calc(100% - 65px) 100%, 0 100%); }
}
@media (max-width: 1180px) {
  .site-footer-cta { grid-template-columns: 38% 1fr; }
  .site-footer-cta__content { flex-direction: column; text-align: center; }
  .site-footer-cta__identity { flex-basis: auto; }
  .site-footer__inner { flex-direction: column; text-align: center; }
  .site-footer__menu, .site-footer__legal { justify-content: center; }
}
@media (max-width: 992px) {
  .site-header { height: 105px; }
  .site-header__inner { justify-content: space-between; gap: 0; padding-inline: 24px; overflow: visible; }
  .site-header__brand { width: 130px; height: 88px; }
  .site-header__brand::before { top: -9px; right: -150px; bottom: -8px; }
  .site-header__brand img { width: 126px; height: 80px; }
  .site-navigation { display: none; }
  .site-header__mobile-controls { position: relative; z-index: 3; display: flex; }
  .site-header .openmainnav { display: flex; width: 42px; height: 42px; align-items: center; justify-content: center; padding: 0; margin: 0; border: 0; color: var(--mcsg-red); background: transparent; }
  .site-header .openmainnav svg { width: 35px; height: 29px; }
  .site-header .openmainnav:hover, .site-header .openmainnav:focus-visible, .site-header .openmainnav.menu-opened { color: var(--mcsg-red-dark); background: transparent; }
}
@media (max-width: 782px) {
  .mcsg-content-row { display: block; }
  .mcsg-content-column + .mcsg-content-column { margin-top: 30px; }
  .page-header { height: 230px; min-height: 230px; }
  .page-header__inner { width: min(calc(100% - 36px), 1400px); }
  .page-header__title { font-size: 40px; line-height: 1; letter-spacing: 1.2px; }
  .main-content-inner-page p { font-size: 19px; line-height: 28px; letter-spacing: .57px; }
  .admin-bar .site-header { top: 46px; }
  .admin-bar .site-navigation { top: 151px; }
  .site-footer-cta { display: flex; flex-direction: column; }
  .site-footer-cta__image { min-height: 340px; }
  .site-footer-cta__content { padding: 55px 24px; }
  .site-footer__inner { width: min(calc(100% - 36px), 1900px); min-width: 0; }
  .site-footer__menu { flex-wrap: wrap; white-space: normal; }
  .site-footer__legal { display: block; width: 100%; min-width: 0; white-space: normal; overflow-wrap: anywhere; }
  .site-footer__legal > * { display: block; margin: 5px 0; }
}

@media (max-width: 480px) {
  body { font-size: 18px; }
  .mcsg-container { width: min(calc(100% - 30px), var(--mcsg-container)); }
  .site-header__inner { padding-inline: 15px; }
  .site-header__brand::before { right: -120px; }
  .site-navigation { width: 100%; }
  .site-footer-cta__image { min-height: 260px; }
  .site-footer-cta__identity > img { width: 235px; height: auto; }
}

@media (max-width: 400px) {
  .site-header__brand { width: 100px; height: 80px; }
  .site-header__brand::before { display: none; }
  .site-header__brand img { width: 100px; height: 64px; }
  .site-header__mobile-controls { gap: 7px; }
  .site-header__mobile-member { padding: 7px 8px; font-size: .75rem; line-height: 20px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
