/* Mason estimate chat — WNC Built demo (benji-prime@greenfield, 2026-10-13) */
@font-face{font-family:'Permanent Marker';font-style:normal;font-weight:400;font-display:swap;src:url(/mason/permanent-marker.woff2) format('woff2')}
.mason-launch{position:fixed;right:22px;bottom:22px;z-index:120;width:118px;height:118px;border:0;padding:0;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
.mason-launch img{width:100%;height:auto;display:block;filter:drop-shadow(0 8px 14px rgba(13,42,63,.28));transition:transform .2s ease}
.mason-launch:hover img,.mason-launch:focus-visible img{transform:translateY(-4px) rotate(-3deg)}
.mason-launch:focus-visible{outline:3px solid var(--orange,#f07020);outline-offset:4px;border-radius:12px}
.mason-tag{position:absolute;right:104px;bottom:78px;white-space:nowrap;background:#fff8ec;color:var(--blue-dark,#0d2a3f);font:400 17px/1.15 'Permanent Marker',var(--font,sans-serif);letter-spacing:.02em;padding:10px 16px 11px;border:2.5px solid var(--orange,#f07020);border-radius:22px;box-shadow:0 8px 20px rgba(13,42,63,.22);animation:masonNudge 4s ease-in-out 1.2s infinite}.mason-tag::before,.mason-tag::after{content:'';position:absolute;width:0;height:0;border-style:solid}.mason-tag::before{right:-14px;bottom:8px;border-width:9px 0 9px 15px;border-color:transparent transparent transparent var(--orange,#f07020)}.mason-tag::after{right:-10px;bottom:10px;border-width:7px 0 7px 12px;border-color:transparent transparent transparent #fff8ec}
@keyframes masonNudge{0%,80%,100%{transform:translateY(0)}88%{transform:translateY(-5px)}94%{transform:translateY(0)}}
.mason-launch.is-shaking img{animation:masonShake .38s ease}
@keyframes masonShake{0%,100%{transform:rotate(0)}25%{transform:rotate(-7deg)}75%{transform:rotate(7deg)}}

.mason-panel{position:fixed;right:22px;bottom:22px;z-index:130;width:min(420px,calc(100vw - 28px));height:min(680px,calc(100vh - 44px));display:flex;flex-direction:column;background:#fff;color:var(--ink,#172027);border:1px solid var(--line,#d8dde1);border-radius:18px;box-shadow:0 24px 60px rgba(13,42,63,.32);overflow:hidden;font-family:var(--font,sans-serif);transform-origin:bottom right}
.mason-panel[hidden]{display:none}
.mason-panel.is-opening{animation:masonPop .42s cubic-bezier(.2,1.4,.4,1)}
@keyframes masonPop{0%{transform:scale(.25);opacity:0}100%{transform:scale(1);opacity:1}}
.mason-head{position:relative;display:flex;align-items:flex-end;gap:12px;padding:18px 16px 0;box-shadow:0 4px 10px rgba(13,42,63,.18);z-index:1;background:linear-gradient(180deg,#0d2a3f 0,#123a57 100%);color:#fff;min-height:122px}
.mason-face{position:relative;width:104px;height:121px;flex:0 0 auto;margin-bottom:-2px}
.mason-face img{position:absolute;left:0;top:0;width:104px;height:auto}
.mason-face .mason-open{opacity:0}
.mason-face.is-talking .mason-open{animation:masonTalk .26s steps(1) infinite}
.mason-face.is-talking .mason-closed{animation:masonTalkInv .26s steps(1) infinite}
@keyframes masonTalk{0%{opacity:0}50%{opacity:1}}
@keyframes masonTalkInv{0%{opacity:1}50%{opacity:0}}
.mason-face .mason-falling{position:absolute;left:38px;top:62px;width:28px;height:auto;opacity:0;pointer-events:none}
.mason-face.drop-brick .mason-falling{animation:masonDrop .9s cubic-bezier(.5,0,.9,.6) forwards}
@keyframes masonDrop{0%{opacity:1;transform:translate(0,0) rotate(0)}100%{opacity:0;transform:translate(26px,120px) rotate(160deg)}}
.mason-title{padding-bottom:14px}
.mason-title strong{display:block;font-size:22px;line-height:1.1}
.mason-title span{display:block;font-size:14px;opacity:.8;margin-top:3px}
.mason-close{position:absolute;top:10px;right:10px;width:36px;height:36px;border-radius:50%;border:0;background:rgba(255,255,255,.14);color:#fff;font-size:22px;line-height:1;cursor:pointer}
.mason-close:hover{background:rgba(255,255,255,.26)}
.mason-log{flex:1;overflow-y:auto;padding:16px;background:var(--soft,#f3f5f6);scroll-behavior:smooth}
.mason-msg{width:fit-content;max-width:86%;margin:0 0 10px;padding:10px 13px;border-radius:14px;font-size:16px;line-height:1.42;white-space:pre-line}
.mason-msg.bot{background:#fff;border:1px solid var(--line,#d8dde1);border-bottom-left-radius:4px}
.mason-msg.me{margin-left:auto;background:var(--blue,#1870b8);color:#fff;border-bottom-right-radius:4px}
.mason-msg.typing{color:var(--muted,#59636b);font-style:italic}
.mason-estimate{background:#fff;border:2px solid var(--orange,#f07020);border-radius:14px;padding:14px;margin:0 0 12px;max-width:100%}
.mason-estimate .range{font-size:28px;font-weight:700;color:var(--blue-dark,#0d2a3f);line-height:1.1}
.mason-estimate .label{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--orange,#f07020);margin-bottom:6px}
.mason-estimate ul{margin:10px 0 0;padding:0;list-style:none;font-size:14px}
.mason-estimate li{display:flex;justify-content:space-between;gap:10px;padding:4px 0;border-top:1px dashed var(--line,#d8dde1)}
.mason-estimate .fine{font-size:13.5px;color:#3f4950;margin-top:10px;line-height:1.35}
.mason-chips{display:flex;flex-wrap:wrap;gap:8px;padding:10px 14px 4px;background:#fff;border-top:1px solid var(--line,#d8dde1)}
.mason-chips:empty{display:none}
.mason-chip{border:1.5px solid var(--blue,#1870b8);background:#fff;color:var(--blue,#1870b8);border-radius:999px;padding:8px 13px;font:600 15px/1.1 var(--font,sans-serif);cursor:pointer}
.mason-chip:hover,.mason-chip.is-on{background:var(--blue,#1870b8);color:#fff}
.mason-chip.go{border-color:var(--orange,#f07020);background:var(--orange,#f07020);color:#fff}
.mason-form{display:flex;gap:8px;padding:10px 14px calc(14px + env(safe-area-inset-bottom));background:#fff}
.mason-form input{flex:1;min-width:0;border:1.5px solid var(--line,#d8dde1);border-radius:12px;padding:12px;font:16px var(--font,sans-serif)}
.mason-form input:focus{outline:none;border-color:var(--blue,#1870b8)}
.mason-form button{border:0;border-radius:12px;background:var(--orange,#f07020);color:#fff;font:700 16px var(--font,sans-serif);padding:0 18px;cursor:pointer}
.mason-form button:disabled{opacity:.5;cursor:default}
.mason-cta{display:block;text-align:center;margin:8px 0 0;padding:12px;border-radius:12px;background:var(--orange,#f07020);color:#fff!important;font-weight:700;text-decoration:none}
.mason-cta.alt{background:var(--blue-dark,#0d2a3f)}
.mason-hero-btn{cursor:pointer;border:0;font:inherit}
@media (max-width:640px){
  .mason-launch{right:12px;bottom:12px;width:92px;height:92px}
  .mason-tag{right:84px;bottom:58px;font-size:15px;padding:8px 13px 9px}
  .mason-panel{right:0;bottom:0;width:100vw;height:100dvh;max-height:100dvh;border-radius:0;border:0}
}
@media (prefers-reduced-motion:reduce){
  .mason-tag,.mason-panel.is-opening,.mason-face.is-talking img,.mason-face.drop-brick .mason-falling,.mason-launch.is-shaking img{animation:none!important}
}
