:root{--cream:#f4ead5;--paper:#fbf4e4;--teal:#1d4e5a;--rust:#c4552d;--mustard:#e3a73a;--ink:#1c1c1c;--sage:#6c8f6a;--disp:"Abril Fatface",Didot,Georgia,serif}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:Commissioner,system-ui,sans-serif;background:var(--cream);color:var(--ink);line-height:1.55}
a{color:inherit}
h1,h2,h3{font-family:var(--disp);font-weight:400;line-height:1.02}
.strip{display:flex;justify-content:space-between;align-items:center;gap:.8rem;padding:.55rem 1rem;background:var(--ink);color:var(--cream);font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700}
.strip a{text-decoration:none;color:var(--mustard);white-space:nowrap}
.hero{display:grid;gap:1.6rem;max-width:1100px;margin:auto;padding:1.4rem 1rem 3rem}
.poster{background:var(--paper);border:3px solid var(--ink);padding:.7rem;box-shadow:10px 10px 0 var(--teal)}
.scene{display:block;width:100%;height:auto;border:2px solid var(--ink)}
.spark{animation:tw 2.4s ease-in-out infinite;transform-origin:70px 110px}
@keyframes tw{50%{opacity:.25;transform:scale(.8)}}
@media(prefers-reduced-motion:reduce){.spark{animation:none}}
.poster-text{text-align:center;padding:1rem .4rem .5rem}
.over{font-weight:700;font-size:.78rem;letter-spacing:.24em;text-transform:uppercase;color:var(--rust)}
h1{font-size:clamp(2.8rem,13vw,4.6rem);color:var(--teal);margin:.25rem 0 .2rem;letter-spacing:.01em}
h1 span{display:block;font-family:Commissioner,sans-serif;font-weight:700;font-size:.27em;letter-spacing:.42em;text-transform:uppercase;color:var(--ink);margin-top:.5rem}
.sub{font-size:.85rem;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);padding:.35rem 0;margin-top:.8rem;font-weight:500;letter-spacing:.05em}
.hero-side{display:flex;flex-direction:column;gap:1.3rem;justify-content:center}
.lede{font-size:1.12rem}
.seal{display:grid;place-items:center;align-content:center;width:150px;height:150px;border-radius:50%;background:var(--rust);color:var(--cream);text-align:center;border:3px dashed var(--cream);outline:3px solid var(--rust);transform:rotate(-8deg)}
.seal b{font-family:var(--disp);font-weight:400;font-size:2.7rem;line-height:1}
.seal span{color:var(--mustard);letter-spacing:.06em}
.seal small{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;max-width:7rem;line-height:1.2;margin-top:.2rem}
.ctas{display:flex;flex-wrap:wrap;gap:.7rem}
.btn{display:inline-block;text-decoration:none;font-weight:700;font-size:1rem;padding:.95rem 1.35rem;border:3px solid var(--ink);text-align:center;letter-spacing:.02em}
.rust{background:var(--rust);color:#fff;box-shadow:4px 4px 0 var(--ink)}
.ink{background:var(--paper)}
.btn:hover{transform:translate(-1px,-1px)}
section{scroll-margin-top:2rem}
.services,.reviews,.area{max-width:1100px;margin:auto;padding:2.8rem 1rem}
.services h2,.reviews h2,.area h2{font-size:clamp(2rem,8vw,3rem);color:var(--teal);margin-bottom:1.4rem}
.stamps{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.stamp{background:var(--paper);padding:1.2rem .9rem;text-align:center;position:relative;border:2px solid var(--ink);box-shadow:4px 4px 0 var(--rust);
  outline:2px dashed rgba(28,28,28,.35);outline-offset:-8px}
.stamp .ic{display:block;font-size:1.6rem;color:var(--rust);margin-bottom:.2rem}
.stamp h3{font-size:1.2rem;color:var(--teal);margin-bottom:.2rem}
.stamp p{font-size:.88rem}
.stamp.hl{background:var(--teal);color:var(--cream);grid-column:1/-1}
.stamp.hl h3,.stamp.hl .ic{color:var(--mustard)}
.reviews{padding-top:1.2rem}
.rev-head{margin-bottom:1.4rem}
.rev-head h2{margin-bottom:.4rem}
.g-line{font-weight:500}
.g-line b{font-family:var(--disp);font-weight:400;font-size:1.6rem;color:var(--rust)}
.st{color:var(--mustard);letter-spacing:.06em}
.cards{display:grid;gap:1.2rem}
.card{position:relative;background:var(--paper);border:2px solid var(--ink);padding:1.3rem 1.2rem 1rem}
.card:nth-child(odd){transform:rotate(-.6deg)}
.card:nth-child(even){transform:rotate(.6deg)}
.postmark{position:absolute;top:.8rem;right:.8rem;width:3rem;height:3.4rem;border:2px dashed var(--rust);display:grid;place-items:center;color:var(--rust);font-size:1.3rem;background:var(--cream)}
.card blockquote{padding-right:3.6rem;font-size:1.02rem}
.card figcaption{margin-top:1rem;padding-top:.6rem;border-top:1.5px solid var(--ink);font-family:var(--disp);font-size:1.15rem;color:var(--teal)}
.card figcaption::after{content:" · Google review";font-family:Commissioner,sans-serif;font-size:.8rem;color:#555}
.towns{display:flex;flex-wrap:wrap;gap:.7rem;margin-bottom:1rem}
.towns span{font-family:var(--disp);font-size:1.7rem;background:var(--mustard);padding:.2rem 1rem;border:2px solid var(--ink)}
.cta{background:var(--teal);color:var(--cream);text-align:center;padding:3.2rem 1rem;border-top:6px solid var(--rust)}
.cta h2{font-size:clamp(2.1rem,9vw,3.4rem);margin-bottom:.6rem}
.cta p{margin-bottom:1.4rem}
.cta .ctas{justify-content:center}
.mustard{background:var(--mustard);color:var(--ink)}
.cream-line{border-color:var(--cream);color:var(--cream)}
.foot{background:var(--ink);color:var(--cream);text-align:center;padding:1.1rem;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase}
@media(min-width:760px){
  .hero{grid-template-columns:1.15fr 1fr;align-items:center;column-gap:3rem;padding-top:3rem;padding-bottom:4rem}
  .stamps{grid-template-columns:repeat(3,1fr)}
  .stamp.hl{grid-column:auto}
  .rev-head{display:flex;justify-content:space-between;align-items:baseline}
  .cards{grid-template-columns:1fr 1fr;gap:1.6rem}
}
