/* generated by build.mjs — edit _src/modern.css */
@font-face{font-family:'libre baskerville';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/LibreBaskerville-normal-400-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'libre baskerville';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/LibreBaskerville-normal-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'libre baskerville';font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/LibreBaskerville-italic-400-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'libre baskerville';font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/LibreBaskerville-italic-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'libre baskerville';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/LibreBaskerville-normal-700-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'libre baskerville';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/LibreBaskerville-normal-700-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'playfair display';font-style:normal;font-weight:400 900;font-display:swap;src:url(../fonts/PlayfairDisplay-normal-400-900-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'playfair display';font-style:normal;font-weight:400 900;font-display:swap;src:url(../fonts/PlayfairDisplay-normal-400-900-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'playfair display';font-style:italic;font-weight:400 900;font-display:swap;src:url(../fonts/PlayfairDisplay-italic-400-900-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'playfair display';font-style:italic;font-weight:400 900;font-display:swap;src:url(../fonts/PlayfairDisplay-italic-400-900-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'cinzel';font-style:normal;font-weight:400 900;font-display:swap;src:url(../fonts/Cinzel-normal-400-900-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'cinzel';font-style:normal;font-weight:400 900;font-display:swap;src:url(../fonts/Cinzel-normal-400-900-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'cormorant garamond';font-style:normal;font-weight:500 700;font-display:swap;src:url(../fonts/CormorantGaramond-normal-500-700-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'cormorant garamond';font-style:normal;font-weight:500 700;font-display:swap;src:url(../fonts/CormorantGaramond-normal-500-700-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'roboto';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/Roboto-normal-400-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'roboto';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/Roboto-normal-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'roboto';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/Roboto-normal-700-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'roboto';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/Roboto-normal-700-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'roboto-bold';font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/Roboto-normal-700-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'roboto-bold';font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/Roboto-normal-700-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'madefor-text-extrabold';font-style:normal;font-weight:800;font-display:swap;src:url(../fonts/WixMadeforText-normal-400-800-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'madefor-text-extrabold';font-style:normal;font-weight:800;font-display:swap;src:url(../fonts/WixMadeforText-normal-400-800-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'madefor-text-bold';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/WixMadeforText-normal-400-800-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'madefor-text-bold';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/WixMadeforText-normal-400-800-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'madefor-display';font-style:normal;font-weight:400 800;font-display:swap;src:url(../fonts/WixMadeforDisplay-normal-400-800-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'madefor-display';font-style:normal;font-weight:400 800;font-display:swap;src:url(../fonts/WixMadeforDisplay-normal-400-800-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Madefor';font-style:normal;font-weight:400 800;font-display:swap;src:url(../fonts/WixMadeforText-normal-400-800-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Madefor';font-style:normal;font-weight:400 800;font-display:swap;src:url(../fonts/WixMadeforText-normal-400-800-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
/* montrealmason.com — modern theme (charcoal, brick red, limestone cream).
   Layout + motion. The classic Wix replica uses site.css instead. */
:root {
  --ink: #1b1917; --ink2: #262220; --ink3: #3a3431;
  --brick: #9b2a1c; --brick2: #c0462f; --brick3: #7d1f14;
  --sand: #d6b384; --cream: #f6f1e9; --stone: #ebe3d6; --line: #e4dbcd;
  --text: #2c2826; --muted: #6d645e;
  --serif: 'playfair display', 'libre baskerville', Georgia, serif;
  --times: 'libre baskerville', 'Times New Roman', Times, serif;
  --inscr: 'cinzel', 'Trajan Pro', 'libre baskerville', serif;
  --garamond: 'cormorant garamond', Garamond, 'libre baskerville', serif;
  --sans: 'roboto', system-ui, -apple-system, 'Segoe UI', Arial, sans-serif;
  --ease-out: cubic-bezier(.16, 1, .3, 1);
  --r: 14px; --shadow: 0 18px 50px -18px rgba(27, 25, 23, .35);
  --head-h: 142px;
}
*, *::before, *::after { box-sizing: border-box; }
html { overflow-x: clip; scroll-behavior: smooth; scroll-padding-top: 120px; -webkit-text-size-adjust: 100%; }
body.modern { margin: 0; font: 400 17px/1.7 var(--sans); color: var(--text); background: #fff; overflow-x: clip; }
img, video, iframe { max-width: 100%; display: block; }
a { color: var(--brick); }
h1, h2, h3, h4 { font-family: var(--serif); font-weight: 600; line-height: 1.15; color: var(--ink); margin: 0 0 .6em; letter-spacing: -.01em; }
h1 { font-size: clamp(2.2rem, 4.6vw, 4rem); }
h2 { font-size: clamp(1.75rem, 3vw, 2.6rem); }
h3 { font-size: clamp(1.25rem, 1.8vw, 1.6rem); }
p { margin: 0 0 1em; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.skip { position: absolute; left: -999px; top: 0; z-index: 99999; background: #fff; padding: 8px 14px; }
.skip:focus { left: 8px; top: 8px; }
.mwrap { width: min(1220px, 100% - 48px); margin: 0 auto; }
.center { text-align: center; }
.hp { position: absolute; left: -9999px; }

.eyebrow { display: inline-flex; align-items: center; gap: 14px; font: 600 .78rem/1 var(--sans); letter-spacing: .22em; text-transform: uppercase; color: var(--brick); margin: 0 0 18px; }
.eyebrow::before { content: ''; width: 38px; height: 2px; background: currentColor; }
.eyebrow.center { display: flex; justify-content: center; }
.eyebrow.center::after { content: ''; width: 38px; height: 2px; background: currentColor; }

/* ------------------------------------------------------------- buttons */
.mbtn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 15px 26px; border-radius: 999px; font: 600 .95rem/1 var(--sans); letter-spacing: .02em; text-decoration: none; border: 2px solid transparent; cursor: pointer; transition: transform .25s var(--ease-out), box-shadow .25s, background .25s, color .25s; position: relative; overflow: hidden; }
.mbtn svg { width: 18px; height: 18px; flex: none; }
.mbtn .ar { transition: transform .3s var(--ease-out); }
.mbtn:hover .ar { transform: translateX(4px); }
.mbtn.gold { background: linear-gradient(135deg, var(--brick2), var(--brick)); color: #fff; box-shadow: 0 10px 26px -10px rgba(155, 42, 28, .8); }
.mbtn.gold::after { content: ''; position: absolute; top: 0; left: -60%; width: 40%; height: 100%; background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .35), transparent); transform: skewX(-20deg); animation: shine 5s ease-in-out infinite; }
.mbtn.gold:hover { transform: translateY(-2px); box-shadow: 0 16px 34px -12px rgba(155, 42, 28, .9); }
.mbtn.ghost { color: #fff; border-color: rgba(255, 255, 255, .55); background: rgba(255, 255, 255, .06); backdrop-filter: blur(4px); }
.mbtn.ghost:hover { background: #fff; color: var(--ink); }
.mbtn.dark { background: var(--ink); color: #fff; }
.mbtn.dark:hover { background: var(--brick); transform: translateY(-2px); }
.mbtn.outline { color: var(--ink); border-color: var(--ink); }
.mbtn.outline:hover { background: var(--ink); color: #fff; }

/* ------------------------------------------------------------- header */
.mprogress { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 1200; background: linear-gradient(90deg, var(--brick2), var(--sand)); transform-origin: left; transform: scaleX(var(--p, 0)); }
.mhead { position: sticky; top: 0; z-index: 1000; }
.mtop { background: var(--ink); color: rgba(255, 255, 255, .72); font-size: .78rem; letter-spacing: .03em; }
.mtop .mwrap { display: flex; gap: 26px; align-items: center; justify-content: flex-end; min-height: 36px; }
.mtop span:first-child { margin-right: auto; display: inline-flex; gap: 6px; align-items: center; }
.mtop svg { width: 14px; height: 14px; color: var(--sand); }
.mtop a { color: inherit; text-decoration: none; }
.mtop a:hover { color: #fff; }
.mtop .lng { border: 1px solid rgba(255, 255, 255, .35); padding: 3px 10px; border-radius: 99px; }
.mbar { background: rgba(255, 255, 255, .9); backdrop-filter: saturate(1.4) blur(14px); -webkit-backdrop-filter: saturate(1.4) blur(14px); border-bottom: 1px solid rgba(0, 0, 0, .06); transition: box-shadow .3s; }
.mhead.scrolled .mbar { box-shadow: 0 10px 30px -18px rgba(0, 0, 0, .45); }
.mbar .mwrap { display: flex; align-items: center; gap: 22px; height: var(--head-h); transition: height .3s var(--ease-out); }
.mhead.scrolled .mbar .mwrap { height: 92px; }
.mbrand { display: flex; align-items: center; gap: 16px; text-decoration: none; color: var(--ink); margin-right: auto; }
.mbrand img { width: 120px; height: auto; transition: width .3s var(--ease-out); filter: drop-shadow(0 4px 8px rgba(0, 0, 0, .18)); }
.mhead.scrolled .mbar .mbrand img { width: 78px; }
.mbrand span { display: flex; flex-direction: column; line-height: 1.05; }
.mbrand strong { font: 700 1.7rem/1.05 var(--times); letter-spacing: .01em; text-transform: uppercase; }
.mbrand small { white-space: nowrap; font: 700 .8rem/1 var(--sans); letter-spacing: .24em; text-transform: uppercase; color: var(--brick); margin-top: 6px; }
.mfoot .mbrand img { width: 128px; }
#navlist > li > a, .subtoggle, .mquote, .mphone span { white-space: nowrap; }
.mnav ul { list-style: none; margin: 0; padding: 0; }
#navlist { display: flex; align-items: center; gap: 4px; }
#navlist > li > a, .subtoggle { display: block; padding: 10px 14px; font: 500 .95rem/1 var(--sans); color: var(--ink); text-decoration: none; background: none; border: 0; cursor: pointer; border-radius: 8px; position: relative; }
#navlist > li > a::after, .subtoggle::after { content: ''; position: absolute; left: 14px; right: 14px; bottom: 4px; height: 2px; background: var(--brick); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--ease-out); }
#navlist > li > a:hover::after, .subtoggle:hover::after, .has-sub.open .subtoggle::after { transform: scaleX(1); }
.subtoggle span { font-size: .7em; margin-left: 2px; }
.has-sub { position: relative; }
.sub { position: absolute; top: calc(100% + 10px); left: -10px; min-width: 290px; background: #fff; border-radius: 12px; box-shadow: var(--shadow); padding: 10px; opacity: 0; visibility: hidden; transform: translateY(8px); transition: .25s var(--ease-out); border-top: 3px solid var(--brick); }
.has-sub:hover .sub, .has-sub.open .sub, .has-sub:focus-within .sub { opacity: 1; visibility: visible; transform: none; }
.sub a { display: block; padding: 9px 12px; border-radius: 8px; color: var(--text); text-decoration: none; font-size: .93rem; }
.sub a:hover, .sub a[aria-current] { background: var(--cream); color: var(--brick); }
.lng-m, .cta-m { display: none; }
.mphone { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--ink); font: 700 1.05rem/1.1 var(--sans); }
.mphone svg { width: 40px; height: 40px; padding: 10px; border-radius: 50%; background: var(--cream); color: var(--brick); animation: pulse 2.6s infinite; }
.mphone small { display: block; font: 500 .66rem/1 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--muted); margin-bottom: 3px; }
.mquote { padding: 12px 20px; font-size: .85rem; }
.navtoggle { display: none; }

/* ------------------------------------------------------------- hero */
.mhero { position: relative; color: #fff; background: var(--ink); overflow: hidden; isolation: isolate; }
.mbg { position: absolute; inset: -6% 0; z-index: -1; transform: translateY(var(--py, 0)); }
.mbg img { width: 100%; height: 100%; object-fit: cover; }
.mhero .mbg::after { content: ''; position: absolute; inset: 0; background: linear-gradient(100deg, rgba(20, 18, 17, .94) 0%, rgba(20, 18, 17, .78) 45%, rgba(20, 18, 17, .45) 100%); }
.mhero-home .mbg img { animation: kenburns 18s ease-out both; }
/* hero work loop: sits over the photo, fades in once it is actually playing (site.js adds .vid-on) */
.mvid { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 1.4s ease; }
.mhero.vid-on .mvid { opacity: 1; }
.mhero-home.vid-on .mbg::after { background: linear-gradient(100deg, rgba(20, 18, 17, .9) 0%, rgba(20, 18, 17, .66) 45%, rgba(20, 18, 17, .38) 100%); }
.mvid-btn { position: absolute; right: 22px; bottom: 22px; z-index: 2; width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid rgba(255, 255, 255, .35); border-radius: 50%; background: rgba(20, 18, 17, .55); color: #fff; cursor: pointer; backdrop-filter: blur(6px); transition: background .2s, border-color .2s; }
.mvid-btn:hover, .mvid-btn:focus-visible { background: var(--brick); border-color: var(--brick); }
.mvid-btn svg { width: 16px; height: 16px; fill: currentColor; }
.mvid-btn .i-play, .mvid-btn[aria-pressed="true"] .i-pause { display: none; }
.mvid-btn[aria-pressed="true"] .i-play { display: inline; }
.mhero-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 64px; align-items: center; padding: 96px 0 110px; }
.mhero h1 { color: #fff; max-width: 14ch; }
.mhero .eyebrow { color: #fff; background: var(--brick); font-size: 1rem; font-weight: 700; letter-spacing: .18em; padding: 11px 18px 10px; border-radius: 6px; box-shadow: 0 12px 26px -12px rgba(0, 0, 0, .8); }
.mhero .eyebrow::before { width: 10px; height: 10px; background: var(--sand); transform: rotate(45deg); border-radius: 2px; }
.mhero .lead, .mhero .lead p { font-size: 1.15rem; color: rgba(255, 255, 255, .85); max-width: 56ch; }
.mhero .lead a { color: var(--sand); }
.ticks { list-style: none; padding: 0; margin: 22px 0 32px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 26px; max-width: 620px; }
.ticks li { display: flex; gap: 10px; align-items: flex-start; color: rgba(255, 255, 255, .9); }
.ticks svg { width: 20px; height: 20px; flex: none; color: var(--sand); margin-top: 3px; }
/* house photo with the "Repair Services Offered" shield hanging straight off its bottom edge: one framed piece,
   tilted together; the shield's services rise in one after another */
.mhouse { position: relative; max-width: 430px; margin: 30px 0 40px; transform: rotate(-2deg); filter: drop-shadow(0 30px 34px rgba(0, 0, 0, .6)); animation: tilt-in 1.2s .2s var(--ease-out) both; }
.mhouse-pic .mfig { margin: 0; border-radius: 6px 6px 0 0; overflow: hidden; aspect-ratio: 16 / 10; border: 5px solid #fff; border-bottom: 0; }
.mhouse-pic .mfig img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 32%; display: block; }
.mshield { padding: 0 5px 7px; background: #fff; clip-path: polygon(0 0, 100% 0, 100% 80%, 50% 100%, 0 80%); }
.mshield-b { padding: 5px; background: var(--brick); clip-path: polygon(0 0, 100% 0, 100% 80%, 50% 100%, 0 80%); }
.mshield-in { padding: 18px 26px 64px; background: #fbf6ee; color: var(--ink); clip-path: polygon(0 0, 100% 0, 100% 80%, 50% 100%, 0 80%); }
.mshield h2 { font: 700 1.12rem/1.25 var(--inscr); color: var(--brick); text-align: center; margin: 0 0 14px; letter-spacing: .08em; }
.mshield h2::after { content: '\25C6'; display: block; width: 120px; margin: 8px auto 0; font: 400 10px/10px Arial, sans-serif; letter-spacing: 0; color: var(--brick); background:
  linear-gradient(var(--sand), var(--sand)) left center / 48px 1px no-repeat, linear-gradient(var(--sand), var(--sand)) right center / 48px 1px no-repeat; }
.mshield ul { list-style: none; padding: 0; margin: 0 auto; display: grid; gap: 7px; width: fit-content; }
.mshield li { display: flex; gap: 10px; align-items: center; font: 600 1.14rem/1.2 var(--garamond); letter-spacing: .01em; animation: rise .7s calc(.75s + var(--i, 0) * .09s) var(--ease-out) both; }
.mshield .ic { flex: none; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 6px; background: var(--brick); color: #fff; }
.mshield .ic svg { width: 16px; height: 16px; }
@keyframes tilt-in { from { opacity: 0; transform: rotate(-6deg) translateY(30px); } to { opacity: 1; transform: rotate(-2deg); } }
/* desktop home hero: the house + shield get their own tall column on the left, showing most of the portrait photo;
   headline above and motto/buttons below move to its right, the quote form keeps the right edge */
.mhero-cta .motto { margin-top: 0; }
@media (min-width: 981px) {
  .mhero-home .mhero-grid { grid-template-columns: 412px minmax(0, 1fr); grid-template-areas: "house top" "house cta" "house form"; gap: 30px 40px; align-items: start; padding: 72px 0 96px; }
  .mhero-home .mhero-copy { display: contents; }
  .mhero-home .mhero-top { grid-area: top; }
  .mhero-home .mhero-cta { grid-area: cta; }
  .mhero-home .hero-form { grid-area: form; }
  .mhero-home h1 { max-width: 18ch; margin-bottom: 0; }
  .mhero-home .mhouse { grid-area: house; max-width: none; margin: 8px 0 0 12px; }
  .mhero-home .mhouse-pic .mfig { aspect-ratio: 4 / 5; }
  .mhero-home .mhouse-pic .mfig img { object-position: 50% 8%; }
  .mhero-home .ctas { margin-top: 22px; }
}
@media (min-width: 1240px) {
  .mhero-home .mhero-grid { grid-template-columns: 432px minmax(0, 1fr) 400px; grid-template-areas: "house top top" "house cta form"; gap: 34px 44px; }
  .mhero-home .mhero-cta { padding-top: 6px; }
  .mhero-home .mhero-cta .ctas { flex-direction: column; align-items: flex-start; }
}
.ctas { display: flex; flex-wrap: wrap; gap: 14px; margin: 28px 0 0; }
.motto { font: italic 400 1.15rem/1.4 var(--serif); color: var(--sand); margin: 28px 0 0; }
.mhero .motto { display: inline-block; font: italic 700 clamp(1.55rem, 2.3vw, 2.1rem)/1.25 var(--serif); color: #fff; padding: 4px 0 4px 20px; border-left: 4px solid var(--brick2); text-shadow: 0 2px 16px rgba(0, 0, 0, .85); }
.cue { position: absolute; left: 50%; bottom: 26px; width: 26px; height: 42px; border: 2px solid rgba(255, 255, 255, .5); border-radius: 14px; transform: translateX(-50%); }
.cue span { position: absolute; left: 50%; top: 8px; width: 4px; height: 8px; margin-left: -2px; border-radius: 2px; background: #fff; animation: cue 1.8s infinite; }
/* hero entrance: pure CSS so it plays even before site.js */
.mhero-copy > * { animation: rise 1s var(--ease-out) both; }
.mhero-copy > :nth-child(2) { animation-delay: .1s; } .mhero-copy > :nth-child(3) { animation-delay: .2s; } .mhero-copy > :nth-child(4) { animation-delay: .3s; } .mhero-copy > :nth-child(5) { animation-delay: .4s; } .mhero-copy > :nth-child(6) { animation-delay: .5s; }
.hero-form, .mhero-pic { animation: glide 1.1s .3s var(--ease-out) both; }

.mformcard { background: #fff; color: var(--text); border-radius: 18px; padding: 34px 32px 30px; box-shadow: 0 30px 70px -30px rgba(0, 0, 0, .6); border-top: 4px solid var(--brick); }
.mformcard h2, .mformcard h3 { font-size: 1.6rem; margin-bottom: .25em; }
.mformcard > p { color: var(--muted); font-size: .95rem; margin-bottom: 18px; }
.mform .frow { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.mform .fld { margin-bottom: 14px; }
.mform label { display: block; font: 600 .7rem/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); margin-bottom: 7px; }
.mform input, .mform textarea { width: 100%; font: 400 1rem/1.4 var(--sans); padding: 12px 14px; border: 1.5px solid var(--line); border-radius: 10px; background: #fcfaf7; color: var(--text); transition: border-color .2s, box-shadow .2s, background .2s; }
.mform input:focus, .mform textarea:focus { outline: none; border-color: var(--brick); background: #fff; box-shadow: 0 0 0 4px rgba(155, 42, 28, .12); }
.mform button { width: 100%; margin-top: 4px; padding: 17px; }
.form-status { margin: 12px 0 0; font-size: .92rem; min-height: 1em; }
.form-status.ok { color: #2f7a3e; } .form-status.err { color: var(--brick); }

.mhero-page .mhero-grid { padding: 80px 0 90px; grid-template-columns: 1.2fr .8fr; }
.mhero-page:not(.has-pic) .mhero-grid { grid-template-columns: 1fr; }
.mhero-page h1 { max-width: 20ch; font-size: clamp(2.1rem, 4vw, 3.4rem); }
.crumbs { font-size: .85rem; letter-spacing: .05em; color: rgba(255, 255, 255, .65); margin-bottom: 20px; }
.crumbs a { color: var(--sand); text-decoration: none; }
.crumbs span { margin: 0 6px; opacity: .5; }
.mhero-pic { position: relative; }
.mhero-pic .mfig { border-radius: 18px; overflow: hidden; box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .8); outline: 1px solid rgba(255, 255, 255, .15); outline-offset: 10px; max-height: 520px; }
.mhero-pic .crest { position: absolute; right: -18px; bottom: -22px; width: 110px; background: #fff; padding: 10px; border-radius: 14px; box-shadow: var(--shadow); }
.mhero-mini { padding: 70px 0 60px; }
.mhero-mini::before { content: ''; position: absolute; inset: 0; z-index: -1; background: radial-gradient(1000px 400px at 85% 0%, rgba(192, 70, 47, .35), transparent 60%), repeating-linear-gradient(0deg, rgba(255, 255, 255, .03) 0 2px, transparent 2px 34px), repeating-linear-gradient(90deg, rgba(255, 255, 255, .03) 0 2px, transparent 2px 68px); }
.mhero-mini h1 { margin: 0; }

/* ------------------------------------------------------------- stats */
.mstats { background: var(--brick); color: #fff; position: relative; }
.mstats .mwrap { display: grid; grid-template-columns: repeat(4, 1fr); }
.mstat { display: flex; align-items: center; gap: 16px; padding: 30px 26px; border-left: 1px solid rgba(255, 255, 255, .18); }
.mstat:first-child { border-left: 0; }
.mstat strong { font: 600 2.6rem/1 var(--serif); color: #fff; }
.mstat span { font-size: .86rem; line-height: 1.35; color: rgba(255, 255, 255, .85); max-width: 16ch; }

/* ------------------------------------------------------------- sections */
.msec { padding: 110px 0; position: relative; }
.msec.cream { background: var(--cream); }
.msec.dark { background: var(--ink); color: rgba(255, 255, 255, .85); }
.msec.dark h2 { color: #fff; }
.msec.dark .eyebrow { color: var(--sand); }
.mhead-block { text-align: center; max-width: 760px; margin: 0 auto 56px; }

.mcards { display: grid; grid-template-columns: repeat(5, 1fr); gap: 22px; }
.mcard { display: flex; flex-direction: column; background: #fff; border-radius: var(--r); overflow: hidden; text-decoration: none; color: var(--text); box-shadow: 0 1px 0 var(--line), 0 14px 30px -22px rgba(0, 0, 0, .4); transition: transform .4s var(--ease-out), box-shadow .4s; border: 1px solid var(--line); }
.mcard:hover { transform: translateY(-8px); box-shadow: 0 30px 50px -26px rgba(0, 0, 0, .5); }
.mcard .ph { position: relative; display: block; aspect-ratio: 4/5; overflow: hidden; background: var(--stone); }
.mcard .ph .mfig { margin: 0; height: 100%; }
.mcard .ph img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease-out); }
.mcard:hover .ph img { transform: scale(1.08); }
.mcard .ph b { position: absolute; left: 14px; bottom: 12px; font: 600 1.6rem/1 var(--serif); color: #fff; text-shadow: 0 2px 12px rgba(0, 0, 0, .6); }
.mcard .ph::after { content: ''; position: absolute; inset: 50% 0 0; background: linear-gradient(transparent, rgba(0, 0, 0, .55)); }
.mcard .ph b { z-index: 1; }
.mcard .cb { display: flex; flex-direction: column; gap: 8px; padding: 18px 18px 20px; flex: 1; }
.mcard strong { font: 600 1.12rem/1.25 var(--serif); color: var(--ink); }
.mcard .cb > span { font-size: .87rem; line-height: 1.55; color: var(--muted); display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.mcard em { margin-top: auto; padding-top: 6px; font: normal 600 .76rem/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--brick); display: inline-flex; align-items: center; gap: 6px; }
.mcard em svg { width: 15px; height: 15px; transition: transform .3s var(--ease-out); }
.mcard:hover em svg { transform: translateX(5px); }

.msplit { display: grid; grid-template-columns: .9fr 1.1fr; gap: 80px; align-items: center; }
.msplit-media { position: relative; }
.msplit-media .mfig { border-radius: 18px; overflow: hidden; box-shadow: var(--shadow); max-height: 640px; }
.msplit-media::before { content: ''; position: absolute; inset: 28px -28px -28px 28px; border: 2px solid var(--brick); border-radius: 18px; z-index: -1; }
.msplit-media { isolation: isolate; }
.badge40 { position: absolute; right: -30px; top: 40px; background: var(--ink); color: #fff; border-radius: 16px; padding: 20px 24px; box-shadow: var(--shadow); text-align: center; }
.badge40 strong { display: block; font: 600 2.8rem/1 var(--serif); color: var(--sand); }
.badge40 span { font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; }
.msplit-copy blockquote { margin: 26px 0 30px; padding: 4px 0 4px 22px; border-left: 3px solid var(--brick); font: italic 1.25rem/1.5 var(--serif); color: var(--ink); }
.prose { font-size: 1.04rem; }
.prose ul { padding-left: 0; list-style: none; margin: 0 0 1.2em; }
.prose ul li { position: relative; padding-left: 26px; margin-bottom: .45em; }
.prose ul li::before { content: ''; position: absolute; left: 2px; top: .62em; width: 10px; height: 10px; background: var(--brick); transform: rotate(45deg); border-radius: 2px; }
.prose ol { padding-left: 1.3em; } .prose ol li { margin-bottom: .5em; } .prose ol li::marker { color: var(--brick); font-weight: 700; }
.prose h2, .prose h3, .prose h4 { margin-top: 1.2em; }
.prose h3, .prose h4 { font-size: 1.25rem; }
.prose strong { color: var(--ink); }

/* gallery */
.mgal { position: relative; }
.mgal-track { display: flex; gap: 18px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 6px; }
.mgal-track::-webkit-scrollbar { display: none; }
.mgal-track img { height: 440px; width: auto; flex: none; border-radius: 14px; scroll-snap-align: start; object-fit: cover; transition: transform .6s var(--ease-out), filter .6s; filter: saturate(.9); }
.mgal-track img:hover { transform: scale(1.02); filter: none; }
.mgal-btn { position: absolute; top: 50%; width: 54px; height: 54px; margin-top: -27px; border-radius: 50%; border: 0; background: #fff; color: var(--ink); font-size: 2rem; line-height: 1; cursor: pointer; box-shadow: var(--shadow); transition: background .25s, color .25s, transform .25s; }
.mgal-btn:hover { background: var(--brick); color: #fff; transform: scale(1.06); }
.mgal-btn.prev { left: -22px; } .mgal-btn.next { right: -22px; }

/* trust logos + ticker */
.mreviews { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 26px; margin: 0 0 40px; align-items: start; }
.mreview { margin: 0; background: #fff; border: 1px solid var(--line); border-radius: var(--r); padding: 28px 28px 24px; box-shadow: 0 10px 30px -22px rgba(27, 25, 23, .4); display: flex; flex-direction: column; gap: 14px; }
.mreview .stars { display: inline-flex; gap: 2px; color: #e3a521; }
.mreview .stars svg { width: 18px; height: 18px; }
.mreview blockquote { margin: 0; font: italic 400 1.04rem/1.6 var(--serif); color: var(--text); }
.mreview blockquote p { margin: 0; }
.mreview figcaption { display: flex; align-items: baseline; gap: 10px; font: 400 .9rem/1.2 var(--sans); color: var(--muted); }
.mreview figcaption strong { color: var(--ink); font-weight: 600; }
.mreview-note { color: var(--muted); display: inline-block; margin-bottom: 12px; }
.mtrust { padding: 56px 0; border-bottom: 1px solid var(--line); }
.mtrust .logos { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 30px 52px; }
.mtrust img { height: 58px; width: auto; filter: grayscale(1); opacity: .75; transition: filter .3s, opacity .3s, transform .3s; }
.mtrust img:hover { filter: none; opacity: 1; transform: translateY(-3px); }

/* areas */
.mareas { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; margin-bottom: 40px; }
.marea { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 24px 12px; border: 1px solid var(--line); border-radius: var(--r); text-decoration: none; color: var(--ink); text-align: center; font: 600 .85rem/1.3 var(--sans); letter-spacing: .06em; text-transform: uppercase; background: #fff; transition: transform .35s var(--ease-out), box-shadow .35s, border-color .35s; }
.marea img { height: 74px; width: auto; transition: transform .5s var(--ease-out); }
.marea:hover { transform: translateY(-6px); box-shadow: 0 20px 40px -24px rgba(0, 0, 0, .45); border-color: var(--brick); }
.marea:hover img { transform: scale(1.08) rotate(-2deg); }
.pinc svg { width: 46px; height: 74px; color: var(--brick); }

/* contact band */
.mcontact { position: relative; color: #fff; padding: 110px 0; overflow: hidden; isolation: isolate; background: var(--ink); }
.mcontact .mbg::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(20, 18, 17, .95), rgba(20, 18, 17, .82)); }
.mcontact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; align-items: center; }
.mcontact h2 { color: #fff; }
.mcontact .eyebrow { color: var(--sand); }
.mcontact-copy > p { color: rgba(255, 255, 255, .8); font-size: 1.1rem; }
.bigphone { display: inline-flex; align-items: center; gap: 14px; font: 600 clamp(2rem, 3.6vw, 2.9rem)/1 var(--serif); color: var(--sand); text-decoration: none; margin: 16px 0 14px; }
.bigphone svg { width: 36px; height: 36px; }
.cline a { color: #fff; display: inline-flex; gap: 10px; align-items: center; text-decoration: none; }
.cline svg { width: 18px; height: 18px; color: var(--sand); }
.chips { list-style: none; padding: 0; margin: 26px 0 0; display: flex; flex-wrap: wrap; gap: 8px; }
.chips a { display: block; padding: 7px 14px; border: 1px solid rgba(255, 255, 255, .25); border-radius: 99px; color: rgba(255, 255, 255, .85); text-decoration: none; font-size: .83rem; transition: background .25s, border-color .25s; }
.chips a:hover { background: var(--brick); border-color: var(--brick); }

/* ------------------------------------------------------------- content pages */
.msec.flow { padding: 90px 0 60px; }
.mblock { display: grid; gap: 60px; margin: 0 auto 90px; }
.mblock.solo { max-width: 820px; }
.mblock.split { grid-template-columns: 1fr 1fr; align-items: center; }
.mblock.split.flip .mblock-body { order: 2; }
.mblock.stack { gap: 34px; }
.mblock.stack .mblock-body { max-width: 820px; margin: 0 auto; text-align: center; }
.mblock.stack .prose { text-align: left; }
.mblock.stack .prose:has(> p:only-child) { text-align: center; }
.mblock-body > h2:first-child, .kicker h2 { position: relative; padding-top: 22px; }
.mblock-body > h2:first-child::before, .kicker h2::before { content: ''; position: absolute; top: 0; left: 0; width: 44px; height: 3px; background: var(--brick); }
.mblock.stack .mblock-body > h2:first-child::before, .mblock.stack .kicker h2::before { left: 50%; margin-left: -22px; }
.kicker h2 { font-size: clamp(1.9rem, 3.2vw, 2.8rem); }
.mblock-media { display: grid; gap: 18px; }
.mblock-media.two { grid-template-columns: 1fr; }
.mgrid { display: grid; gap: 22px; grid-template-columns: repeat(3, 1fr); align-items: start; }
.mgrid.n1 { grid-template-columns: minmax(0, 760px); justify-content: center; }
.mgrid.n2 { grid-template-columns: 1fr 1fr; }
.mfig { margin: 0; position: relative; }
.mfig img { width: 100%; height: auto; aspect-ratio: var(--ar); object-fit: cover; }
.mfig img.contain { object-fit: contain; background: #fff; }
.mblock .mfig, .mgrid .mfig { border-radius: var(--r); overflow: hidden; box-shadow: 0 20px 44px -26px rgba(0, 0, 0, .55); background: var(--stone); }
.mblock .mfig img { transition: transform 1.2s var(--ease-out); }
.mblock .mfig:hover img { transform: scale(1.04); }
.mfig figcaption { padding: 14px 18px; font: 600 1rem/1.35 var(--serif); color: var(--ink); background: #fff; }
.mvid video { width: 100%; height: auto; aspect-ratio: var(--ar); background: #000; }
.mframe iframe { width: 100%; aspect-ratio: 16/9; border: 0; }
.mmap iframe { aspect-ratio: 4/3; }

/* FAQ / blog / posts / thank-you (classic templates, restyled) */
.band.flow { padding: 80px 0 100px; }
.band.flow .wrap { width: min(900px, 100% - 48px); margin: 0 auto; }
.band.flow .wrap.center { text-align: center; }
.faq details.qa { border: 1px solid var(--line); border-radius: 12px; margin: 0 0 14px; background: #fff; transition: box-shadow .3s, border-color .3s; }
.faq details.qa[open] { border-color: var(--brick); box-shadow: 0 18px 40px -26px rgba(0, 0, 0, .4); }
.faq summary { cursor: pointer; list-style: none; padding: 22px 60px 22px 24px; font: 600 1.12rem/1.4 var(--serif); color: var(--ink); position: relative; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: '+'; position: absolute; right: 22px; top: 50%; width: 30px; height: 30px; margin-top: -15px; border-radius: 50%; background: var(--cream); color: var(--brick); font: 400 1.4rem/30px var(--sans); text-align: center; transition: transform .35s var(--ease-out), background .3s, color .3s; }
.faq details[open] summary::after { transform: rotate(45deg); background: var(--brick); color: #fff; }
.faq .ans { padding: 0 24px 18px; color: var(--muted); }
.blog .cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 26px; }
.blog .card a { display: block; height: 100%; text-decoration: none; color: var(--text); border-radius: var(--r); overflow: hidden; border: 1px solid var(--line); background: #fff; transition: transform .4s var(--ease-out), box-shadow .4s; }
.blog .card a:hover { transform: translateY(-6px); box-shadow: var(--shadow); }
.blog .card img { width: 100%; aspect-ratio: 16/10; object-fit: cover; }
.blog .cb { padding: 20px 22px 24px; }
.blog .cb h2 { font-size: 1.3rem; }
.blog .cb p { font-size: .93rem; color: var(--muted); }
.meta { font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; color: var(--brick); }
.blog .crumbs, .post .crumbs { color: var(--muted); }
.blog .crumbs a, .post .crumbs a { color: var(--brick); }
.blog h1 { display: none; }
.post h1 { font-size: clamp(2rem, 4vw, 3rem); }
.post .prose img { border-radius: var(--r); margin: 1.4em auto; }
.pill { display: inline-block; margin-top: 10px; padding: 14px 26px; border-radius: 99px; background: var(--brick); color: #fff; text-decoration: none; font-weight: 600; }

/* ------------------------------------------------------------- footer */
.mfoot { background: #141210; color: rgba(255, 255, 255, .66); padding: 90px 0 0; font-size: .92rem; }
.mfoot-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr .7fr; gap: 50px; padding-bottom: 60px; }
.mfoot .mbrand { color: #fff; margin-bottom: 18px; }
.mfoot .mbrand small { color: var(--sand); }
.mfoot h3 { font: 600 .74rem/1 var(--sans); letter-spacing: .22em; text-transform: uppercase; color: var(--sand); margin-bottom: 20px; }
.mfoot ul { list-style: none; margin: 0; padding: 0; }
.mfoot li { margin-bottom: 9px; }
.mfoot a { color: rgba(255, 255, 255, .72); text-decoration: none; transition: color .2s; }
.mfoot a:hover { color: #fff; }
.mfoot .motto { font-size: 1.05rem; margin-top: 10px; }
.fcontact a { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; color: #fff; }
.fcontact svg { width: 16px; height: 16px; color: var(--sand); }
.faddr { display: flex; align-items: flex-start; gap: 10px; margin: 0 0 12px; color: rgba(255,255,255,.8); font-size: .92em; }
.faddr svg { width: 16px; height: 16px; flex: none; margin-top: 3px; color: var(--sand); }
.fb { display: inline-flex; width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .25); align-items: center; justify-content: center; margin-top: 8px; }
.fb svg { width: 20px; height: 20px; }
.fb:hover { background: var(--brick); border-color: var(--brick); }
.fbase { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; padding: 22px 0; border-top: 1px solid rgba(255, 255, 255, .1); font-size: .8rem; }
.fbase a[aria-current] { color: var(--sand); }
.mcallbar { display: none; }

/* ============================================================== motion
   Reveals only hide content under html.js, which the <head> sets and removes again after
   2.5 s unless site.js has started. Everything is off under prefers-reduced-motion. */
@keyframes rise { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
@keyframes glide { from { opacity: 0; transform: translateX(40px); } to { opacity: 1; transform: none; } }
@keyframes kenburns { from { transform: scale(1.1); } to { transform: scale(1); } }
@keyframes shine { 0%, 80% { left: -60%; } 100% { left: 130%; } }
@keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(155, 42, 28, .45); } 100% { box-shadow: 0 0 0 16px rgba(155, 42, 28, 0); } }
@keyframes cue { 0%, 100% { transform: translateY(0); opacity: .7; } 50% { transform: translateY(10px); opacity: 1; } }
.js .rv { opacity: 0; transform: translateY(34px); transition: opacity .9s var(--ease-out), transform 1s var(--ease-out); transition-delay: var(--d, 0s); }
.js .rv.rv-l { transform: translateX(-40px); }
.js .rv.rv-r { transform: translateX(40px); }
.js .rv.rv-zoom { transform: scale(.94); }
.js .rv.rv-wipe { opacity: 1; transform: none; clip-path: inset(0 0 100% 0); transition: clip-path 1.2s var(--ease-out); transition-delay: var(--d, 0s); }
.js .rv.in { opacity: 1; transform: none; }
.js .rv.rv-wipe.in { clip-path: inset(0 0 0 0); }
.js .rv .eyebrow::before, .js .rv.eyebrow::before { transform: scaleX(0); transform-origin: right; transition: transform 1s .3s var(--ease-out); }
.js .rv.in .eyebrow::before, .js .rv.in.eyebrow::before { transform: scaleX(1); }
.js .mblock-body.rv > h2:first-child::before { width: 0; transition: width 1s .35s var(--ease-out); }
.js .mblock-body.rv.in > h2:first-child::before { width: 44px; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .js .rv, .js .rv.rv-wipe { opacity: 1; transform: none; clip-path: none; }
  html { scroll-behavior: auto; }
}

/* ============================================================== responsive */
@media (max-width: 1180px) {
  .mcards { grid-template-columns: repeat(3, 1fr); }
  .mphone span { display: none; }
  #navlist > li > a, .subtoggle { padding: 10px 10px; white-space: nowrap; }
  .mquote { white-space: nowrap; }
  .mbrand img { width: 100px; }
  .mbrand strong { font-size: 1.5rem; }
  .mbrand small { letter-spacing: .16em; }
}
@media (max-width: 980px) {
  .mreviews { grid-template-columns: 1fr; }
  :root { --head-h: 96px; }
  .mvid, .mvid-btn { display: none; }
  .mhero-home.vid-on .mbg::after { background: linear-gradient(100deg, rgba(20, 18, 17, .94) 0%, rgba(20, 18, 17, .78) 45%, rgba(20, 18, 17, .45) 100%); }
  .mbrand img, .mhead.scrolled .mbar .mbrand img { width: 80px; }
  .mbrand strong { font-size: 1.4rem; }
  .mtop { display: none; }
  .mquote, .mphone { display: none; }
  .navtoggle { display: flex; align-items: center; justify-content: center; width: 46px; height: 46px; border: 0; border-radius: 10px; background: var(--ink); cursor: pointer; }
  .bars { display: grid; gap: 5px; } .bars i { display: block; width: 22px; height: 2px; background: #fff; transition: transform .3s, opacity .3s; }
  .navtoggle[aria-expanded="true"] .bars i:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .navtoggle[aria-expanded="true"] .bars i:nth-child(2) { opacity: 0; }
  .navtoggle[aria-expanded="true"] .bars i:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .mnav { position: fixed; left: 0; right: 0; top: var(--head-h); height: calc(100dvh - var(--head-h)); background: #fff; overflow-y: auto; opacity: 0; transform: translateY(-12px); visibility: hidden; pointer-events: none; transition: opacity .35s, transform .45s var(--ease-out), visibility .45s; padding: 10px 24px 120px; }
  .mnav.open { opacity: 1; transform: none; visibility: visible; pointer-events: auto; }
  #navlist { flex-direction: column; align-items: stretch; gap: 0; }
  #navlist > li { border-bottom: 1px solid var(--line); }
  #navlist > li > a, .subtoggle { width: 100%; text-align: left; padding: 18px 4px; font-size: 1.1rem; }
  #navlist > li > a::after, .subtoggle::after { display: none; }
  .sub { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding: 0 0 12px 8px; display: none; min-width: 0; }
  .has-sub:hover .sub { display: none; }
  .has-sub.open .sub { display: block; }
  .lng-m, .cta-m { display: block; }
  .cta-m { border: 0 !important; padding-top: 22px; } .cta-m .mbtn { width: 100%; padding: 18px; }
  .mhero-grid, .mhero-page .mhero-grid { grid-template-columns: 1fr; gap: 40px; padding: 64px 0 72px; }
  .mhero h1 { max-width: none; }
  .mhero-pic { max-width: 560px; }
  .cue { display: none; }
  .mstats .mwrap { grid-template-columns: 1fr 1fr; }
  .mstat:nth-child(3) { border-left: 0; }
  .mstat { border-top: 1px solid rgba(255, 255, 255, .18); }
  .msec { padding: 80px 0; }
  .msplit, .mcontact-grid, .mblock.split { grid-template-columns: 1fr; gap: 44px; }
  .mblock.split.flip .mblock-body { order: 0; }
  .msplit-media::before { inset: 18px -14px -18px 18px; }
  .badge40 { right: 10px; top: auto; bottom: -24px; }
  .mareas { grid-template-columns: repeat(3, 1fr); }
  .mfoot-grid { grid-template-columns: 1fr 1fr; }
  .mfoot-grid .fbrand { grid-column: 1 / -1; }
  .mcallbar { display: grid; grid-template-columns: 1fr 1fr; position: fixed; left: 0; right: 0; bottom: 0; z-index: 900; box-shadow: 0 -10px 30px -10px rgba(0, 0, 0, .4); }
  .mcallbar a { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 16px 10px calc(16px + env(safe-area-inset-bottom)); font: 600 .95rem/1 var(--sans); text-decoration: none; color: #fff; background: var(--ink); }
  .mcallbar a + a { background: var(--brick); }
  .mcallbar svg { width: 18px; height: 18px; }
  body.modern { padding-bottom: 60px; }
}
@media (max-width: 640px) {
  .js .rv.rv-l, .js .rv.rv-r { transform: translateY(34px); }
  body.modern { font-size: 16px; }
  .mwrap { width: calc(100% - 36px); }
  .mbrand strong { font-size: 1.12rem; }
  .mbrand img, .mhead.scrolled .mbar .mbrand img { width: 74px; }
  .mhero .eyebrow { font-size: .78rem; letter-spacing: .12em; padding: 9px 13px 8px; gap: 10px; }
  .mbrand { gap: 10px; }
  .mhouse { max-width: 400px; margin: 26px auto 30px; }
  .mshield-in { padding: 16px 18px 72px; }
  .mshield h2 { font-size: 1.02rem; }
  .mshield li { font-size: 1.04rem; }
  .ticks { grid-template-columns: 1fr; }
  .ctas .mbtn { flex: 1 1 100%; }
  .mformcard { padding: 26px 20px; }
  .mform .frow { grid-template-columns: 1fr; gap: 0; }
  .mstat { padding: 22px 14px; gap: 10px; flex-direction: column; align-items: flex-start; }
  .mstat strong { font-size: 2.1rem; }
  .mcards { grid-template-columns: 1fr 1fr; gap: 14px; }
  .mcard .cb { padding: 14px; } .mcard strong { font-size: 1rem; } .mcard .cb > span { display: none; }
  .mgal-track img { height: 300px; }
  .mgal-btn { display: none; }
  .mareas { grid-template-columns: 1fr 1fr; }
  .mgrid, .mgrid.n2 { grid-template-columns: 1fr; }
  .mblock { margin-bottom: 64px; gap: 30px; }
  .mfoot-grid { grid-template-columns: 1fr; gap: 34px; }
  .blog .cards { grid-template-columns: 1fr; }
  .mhero-pic .crest { right: 8px; width: 84px; }
  .badge40 strong { font-size: 2.2rem; }
}
