*{box-sizing:border-box}html,body{margin:0;padding:0;background:#fff}
a{color:#A93635;text-decoration:none}a:hover{color:#8C2B2A;text-decoration:none}
a[style*="border-radius"]:hover,button:hover{text-decoration:none}
@keyframes mrGradDrift{0%{transform:scale(1.4) translate3d(-6%,-4%,0)}20%{transform:scale(1.5) translate3d(7%,2%,0)}40%{transform:scale(1.38) translate3d(4%,7%,0)}60%{transform:scale(1.48) translate3d(-5%,5%,0)}80%{transform:scale(1.42) translate3d(-7%,-2%,0)}100%{transform:scale(1.4) translate3d(-6%,-4%,0)}}
.mr-grad-drift{animation:mrGradDrift 34s cubic-bezier(.4,.2,.6,.8) infinite;will-change:transform}
@media (prefers-reduced-motion:reduce){.mr-grad-drift{animation:none}}
::selection{background:rgba(197,67,66,.22)}
.sc-host:has(>div>header){display:contents}
li::marker{color:#C54342}
input,textarea,select,button{font-family:'Open Sans',system-ui,sans-serif}
input:focus,textarea:focus,select:focus{outline:none;border-color:#C54342 !important;box-shadow:0 0 0 3px rgba(212,99,98,.45)}
.mr-formcard:has(:is(input,textarea,select):focus){box-shadow:0 0 28px rgba(226,45,44,.45),0 0 60px rgba(226,45,44,.25) !important}
@keyframes mrMarquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes mrKen{from{transform:scale(1)}to{transform:scale(1.16)}}
.mr-pcard:hover img{transform:scale(1.06) !important}
.mr-parrow{position:absolute;right:20px;bottom:20px;width:40px;height:40px;display:grid;place-items:center;border-radius:4px;background:#C54342;color:#fff;opacity:0;transform:translateX(-8px);transition:opacity 180ms cubic-bezier(.2,.6,.2,1),transform 180ms cubic-bezier(.2,.6,.2,1)}
.mr-pcard:hover .mr-parrow{opacity:1;transform:translateX(0)}
.mr-pcard:hover .mr-parrow svg{animation:mrNudge 900ms cubic-bezier(.2,.6,.2,1) infinite}
@keyframes mrNudge{0%,100%{transform:translateX(0)}50%{transform:translateX(3px)}}
@media (prefers-reduced-motion:reduce){.mr-ken{animation:none !important}}
@media (max-width:1280px){.mr-rolo-stage{margin-right:0 !important}}
@media (max-width:1024px){.mr-hero-grid{padding-top:64px !important;padding-bottom:56px !important;gap:36px !important}.mr-rolo-stage{height:clamp(280px,46vw,420px) !important;min-height:0 !important;margin:0 !important;overflow:hidden;touch-action:pan-y}}
@media (max-width:1024px){.mr-svc-text{max-width:60% !important}.mr-svc-grid{grid-template-columns:1fr !important}.mr-cutout{height:min(400px,96%) !important;right:2% !important}}
@media (max-width:768px){.mr-svc-text{max-width:100% !important}}
@media (max-width:1024px){#contact [data-screen-label="Location cards"]>div{align-items:center;text-align:center}.mr-svcareas{align-items:center;text-align:center}#contact form h2,#contact form h3,#contact form p,#contact form label>span{text-align:center}}
@media (max-width:1024px){.mr-glass-dark{background:rgba(13,13,13,.74);padding:28px 22px;border-radius:10px;max-width:680px;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}}
.mr-reveal{opacity:0;transform:translateY(12px);transition:opacity .52s cubic-bezier(.2,.6,.2,1),transform .52s cubic-bezier(.2,.6,.2,1)}
.mr-reveal.mr-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.mr-reveal{transition:none;opacity:1;transform:none}.mr-marq{animation:none !important}}
@media (max-width:1024px){.mr-split{grid-template-columns:1fr !important}}
@media (max-width:768px){.mr-2,.mr-3,.mr-4{grid-template-columns:1fr !important}}

/* ---- WP port additions (not in the design's helmet; each replaces something the DC runtime did) ---- */
/* Quote form is now a GF form inside a .mr-formcard <div>, so the design's "#contact form h2/h3/p/label>span" centring rule
   (kept above, now inert) is re-expressed for the new structure. */
@media (max-width:1024px){#contact .mr-formcard h2,#contact .mr-formcard h3,#contact .mr-formcard>p,#contact .mr-formcard .gfield_label,#contact .mr-formcard .gform-field-label--type-sub{text-align:center}}
/* Rolodex cards get their inline geometry from home.js; hide until the first layout so there is no unstyled flash. */
.mr-rolo-card{opacity:0}
/* Prev/next arrows exist only in the <=1024 horizontal mode (was sc-if horiz). */
.mr-rolo-arrow{display:none !important}
@media (max-width:1024px){.mr-rolo-arrow{display:grid !important}}
/* ACF WYSIWYG blocks (.mr-rich wrappers are display:contents): paragraph styles reproduce the design's inline <p> styles.
   Where the design's <p> carried layout/reveal classes, those moved to a wrapper <div> in the template, so p margins here are 0
   and only spacing between editor-added paragraphs (p+p) is new. Links: design red on light, #E59392 on dark sections. */
.mr-rich--hero p,.mr-rich--hero li{font:400 18px/1.65 'Open Sans',sans-serif;color:rgba(255,255,255,.78);max-width:580px;text-wrap:pretty}
.mr-rich--hero p{margin:14px 0 0}.mr-rich--hero p:first-child{margin-top:22px}
.mr-rich--svc-intro p,.mr-rich--svc-intro li{font:400 17px/1.62 'Open Sans',sans-serif;color:rgba(255,255,255,.78);text-wrap:pretty}
.mr-rich--careers p,.mr-rich--careers li{font:400 17px/1.62 'Open Sans',sans-serif;color:rgba(255,255,255,.78);text-wrap:pretty}
.mr-rich--svc-card p,.mr-rich--svc-card li{font:400 15px/1.62 'Open Sans',sans-serif;color:#3D3D3D;text-wrap:pretty}
.mr-rich--about p,.mr-rich--about li{font:400 16px/1.62 'Open Sans',sans-serif;color:#3D3D3D;text-wrap:pretty}
.mr-rich--contact p,.mr-rich--contact li{font:400 17px/1.62 'Open Sans',sans-serif;color:#3D3D3D;text-wrap:pretty}
.mr-rich--why p,.mr-rich--why li{font:400 14px/1.6 'Open Sans',sans-serif;color:#3D3D3D}
.mr-rich--svc-intro p,.mr-rich--careers p,.mr-rich--svc-card p,.mr-rich--about p,.mr-rich--contact p,.mr-rich--why p{margin:0}
.mr-rich--svc-intro p+p,.mr-rich--careers p+p,.mr-rich--about p+p,.mr-rich--contact p+p{margin-top:14px}
.mr-rich--why p+p{margin-top:8px}
.mr-rich--hero :is(ul,ol),.mr-rich--svc-intro :is(ul,ol),.mr-rich--careers :is(ul,ol),.mr-rich--about :is(ul,ol),.mr-rich--contact :is(ul,ol){margin:14px 0 0;padding-left:22px}
.mr-rich--svc-card :is(ul,ol){margin:0;padding-left:20px}
.mr-rich--why :is(ul,ol){margin:8px 0 0;padding-left:20px}
.mr-rich--contact :is(ul,ol){display:inline-block;text-align:left}
.mr-rich li+li{margin-top:6px}
.mr-rich strong,.mr-rich b{font-weight:700}
.mr-rich em,.mr-rich i{font-style:italic}
.mr-rich--svc-card a,.mr-rich--about a,.mr-rich--contact a,.mr-rich--why a{color:#A93635;font-weight:600;text-decoration:underline;text-underline-offset:3px}
.mr-rich--svc-card a:hover,.mr-rich--about a:hover,.mr-rich--contact a:hover,.mr-rich--why a:hover{color:#8C2B2A}
.mr-rich--hero a,.mr-rich--svc-intro a,.mr-rich--careers a{color:#E59392;font-weight:600;text-decoration:underline;text-underline-offset:3px}
.mr-rich--hero a:hover,.mr-rich--svc-intro a:hover,.mr-rich--careers a:hover{color:#fff}
.mr-rich--hero strong,.mr-rich--svc-intro strong,.mr-rich--careers strong{color:#fff}
.mr-rich--svc-card strong,.mr-rich--about strong,.mr-rich--contact strong,.mr-rich--why strong{color:#262626}

/* Reviews: centre the heading + subline at <=768 to match the centred reviews widget (2026-09-29). The widget itself
   is Elfsight shadow-DOM content; its header alignment is set in the Elfsight editor, not here. */
@media (max-width:768px){#reviews h2,#reviews h2 + p{text-align:center}}

/* Hero stack >1024: the stage takes vertical swipes itself (home.js), no text selection while mouse-dragging. */
@media (min-width:1025px){.mr-rolo-stage{touch-action:none;-webkit-user-select:none;user-select:none}}
@media (max-width:1024px){.mr-rolo-stage{-webkit-user-select:none;user-select:none}}
