@import url('https://fonts.googleapis.com/css2?family=Raleway:wght@600;700;800;900&family=Open+Sans:wght@400;500;600&display=swap');
.grc-wrap * { box-sizing: border-box; margin: 0; padding: 0; }
.grc-wrap { font-family: 'Open Sans', sans-serif; width: 100%; }
/* ── KEYFRAMES ── */
@keyframes fadeSlideUp {
from { opacity: 0; transform: translateY(24px); }
to { opacity: 1; transform: translateY(0); }
}
@keyframes fadeSlideRight {
from { opacity: 0; transform: translateX(-20px); }
to { opacity: 1; transform: translateX(0); }
}
@keyframes fadeSlideLeft {
from { opacity: 0; transform: translateX(20px); }
to { opacity: 1; transform: translateX(0); }
}
@keyframes popIn {
0% { opacity: 0; transform: scale(0.85); }
70% { transform: scale(1.04); }
100% { opacity: 1; transform: scale(1); }
}
/* Petal breathing — cascaded via delay on each span */
@keyframes petalBreathe {
0% { opacity: 0.25; transform: scale(1) rotate(0deg); }
50% { opacity: 0.7; transform: scale(1.45) rotate(12deg); }
100% { opacity: 0.25; transform: scale(1) rotate(0deg); }
}
/* ── OUTER CTA — plain, no animation ── */
.grc-cta {
background: #ffffff;
padding: 60px 24px;
}
/* ── INNER CARD ── */
.grc-cta-inner {
max-width: 950px;
margin: 0 auto;
background: linear-gradient(135deg, #e8f5e1 0%, #fff8e7 35%, #fdeef5 65%, #e8f5e1 100%);
border-radius: 38px;
padding: 34px 60px;
display: grid;
grid-template-columns: 1.1fr 1px 0.9fr;
gap: 60px;
align-items: center;
position: relative;
overflow: hidden;
z-index: 1;
animation: fadeSlideUp 0.7s ease both;
}
/* Petal canvas — absolutely fills the inner card, outside grid flow */
.grc-petals {
position: absolute;
inset: 0;
pointer-events: none;
z-index: 0;
overflow: hidden;
border-radius: 38px;
grid-column: 1 / -1;
height: 0;
margin: 0;
padding: 0;
}
/* Each individual petal span */
.grc-petals span {
position: absolute;
font-size: 28px;
line-height: 1;
animation: petalBreathe 4s ease-in-out infinite;
display: block;
}
/* All content inside inner sits above petals — exclude the petals div itself */
.grc-cta-inner > div:not(.grc-petals),
.grc-cta-inner > .grc-divider {
position: relative;
z-index: 1;
}
.grc-divider {
width: 1px;
align-self: stretch;
background: rgba(200,131,10,0.2);
position: relative;
z-index: 1;
}
.grc-eyebrow {
display: inline-flex;
align-items: center;
gap: 8px;
background: rgba(200,131,10,0.12);
border: 1px solid rgba(200,131,10,0.25);
color: #a36808;
font-family: 'Raleway', sans-serif;
font-size: 11px;
font-weight: 800;
letter-spacing: 0.15em;
text-transform: uppercase;
padding: 6px 16px;
border-radius: 40px;
margin-bottom: 18px;
animation: popIn 0.6s ease 0.2s both;
}
.grc-headline {
font-family: 'Raleway', sans-serif;
font-size: 38px;
font-weight: 900;
color: #c8830a;
line-height: 1.1;
margin-bottom: 16px;
letter-spacing: -0.01em;
animation: fadeSlideRight 0.6s ease 0.35s both;
}
.grc-subline {
font-size: 15px;
color: #555;
line-height: 1.7;
margin-bottom: 24px;
animation: fadeSlideRight 0.6s ease 0.45s both;
}
.grc-trust {
display: flex;
flex-direction: column;
gap: 10px;
margin-bottom: 28px;
}
.grc-trust-item {
display: flex;
align-items: center;
gap: 10px;
font-size: 14px;
color: #444;
animation: fadeSlideRight 0.5s ease both;
}
.grc-trust-item:nth-child(1) { animation-delay: 0.55s; }
.grc-trust-item:nth-child(2) { animation-delay: 0.65s; }
.grc-trust-item:nth-child(3) { animation-delay: 0.75s; }
.grc-trust-icon {
width: 28px; height: 28px;
border-radius: 50%;
background: #f5c842;
flex-shrink: 0;
display: flex; align-items: center; justify-content: center;
transition: transform 0.2s ease;
}
.grc-trust-item:hover .grc-trust-icon { transform: scale(1.15); }
.grc-trust-icon svg {
width: 13px; height: 13px;
stroke: #7a5200; fill: none;
stroke-width: 2.2;
stroke-linecap: round; stroke-linejoin: round;
}
/* ── GRADIENT BUTTON ── */
.grc-btn,
.grc-btn-full {
display: inline-flex;
justify-content: center;
align-items: center;
border-radius: 28px;
min-height: 50px;
padding: 16px 40px;
font-family: 'Raleway', sans-serif;
font-weight: 700;
font-size: 16px;
line-height: 26px;
text-transform: capitalize;
text-decoration: none !important;
overflow: hidden;
position: relative;
transition: all 0.2s ease-in-out;
cursor: pointer;
border: none;
background: transparent;
color: #1a1a1a !important;
animation: popIn 0.6s ease 0.9s both;
}
.grc-btn::before, .grc-btn-full::before {
content: '';
position: absolute;
inset: 0;
border-radius: 28px;
padding: 2px;
background: linear-gradient(90deg, #bd2f23, #ffd91f);
-webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
-webkit-mask-composite: xor;
mask-composite: exclude;
pointer-events: none;
transition: opacity 0.2s ease-in-out;
}
.grc-btn::after, .grc-btn-full::after {
content: '';
position: absolute;
inset: 0;
border-radius: 28px;
background: linear-gradient(90deg, #bd2f23, #ffd91f);
opacity: 0;
transition: opacity 0.2s ease-in-out;
z-index: 0;
}
.grc-btn:hover, .grc-btn-full:hover {
color: #ffffff !important;
transform: translateY(-3px);
box-shadow: 0 8px 24px rgba(189,47,35,0.3);
}
.grc-btn:hover::after, .grc-btn-full:hover::after { opacity: 1; }
.grc-btn:hover::before, .grc-btn-full:hover::before { opacity: 0; }
.grc-btn span, .grc-btn-full span { position: relative; z-index: 1; }
.grc-btn-full { width: 100%; margin-top: 6px; }
/* ── DEAL CARDS ── */
.grc-deals {
display: flex;
flex-direction: column;
gap: 14px;
position: relative;
z-index: 1;
}
.grc-deals-heading {
font-family: 'Raleway', sans-serif;
font-size: 10.5px;
font-weight: 800;
letter-spacing: 0.16em;
text-transform: uppercase;
color: #aaa;
animation: fadeSlideLeft 0.5s ease 0.4s both;
}
.grc-deal {
background: #ffffff;
border-radius: 12px;
padding: 20px 22px;
display: flex;
align-items: flex-start;
gap: 16px;
box-shadow: 0 2px 12px rgba(0,0,0,0.06);
border: 1px solid rgba(200,131,10,0.12);
transition: box-shadow 0.2s, transform 0.2s;
animation: fadeSlideLeft 0.5s ease both;
}
.grc-deal:nth-child(1) { animation-delay: 0.5s; }
.grc-deal:nth-child(3) { animation-delay: 0.65s; }
.grc-deal:hover {
box-shadow: 0 6px 28px rgba(200,131,10,0.15);
transform: translateY(-2px);
}
.grc-deal-badge {
width: 36px; height: 36px;
border-radius: 50%;
background: #f5c842;
flex-shrink: 0;
display: flex; align-items: center; justify-content: center;
font-family: 'Raleway', sans-serif;
font-size: 15px;
font-weight: 900;
color: #7a5200;
margin-top: 1px;
transition: transform 0.2s ease;
}
.grc-deal:hover .grc-deal-badge { transform: scale(1.12); }
.grc-deal-opt {
font-family: 'Raleway', sans-serif;
font-size: 9.5px;
font-weight: 800;
letter-spacing: 0.13em;
text-transform: uppercase;
color: #c8830a;
margin-bottom: 5px;
}
.grc-deal-text { font-size: 15px; font-weight: 600; color: #222; line-height: 1.45; }
.grc-deal-text strong { color: #bd2f23; font-weight: 800; }
.grc-or {
display: flex;
align-items: center;
gap: 12px;
font-family: 'Raleway', sans-serif;
font-size: 10px;
font-weight: 800;
letter-spacing: 0.1em;
text-transform: uppercase;
color: #bbb;
}
.grc-or::before, .grc-or::after { content: ''; flex: 1; height: 1px; background: rgba(0,0,0,0.1); }
.grc-fine { font-size: 11.5px; color: #aaa; text-align: center; margin-top: 8px; }
/* ── RESPONSIVE ── */
@media (max-width: 740px) {
.grc-cta-inner { grid-template-columns: 1fr; gap: 32px; padding: 36px 28px; }
.grc-divider { display: none; }
.grc-headline { font-size: 28px; }
}
Referral Program!
Refer a friend who gets a job completed and receive a Visa gift card. Card can be used anywhere! Card balance amount can vary depending on cost of job completed.
Here's Your Deal
A
Refer a $5,000 job minimum, get a Visa giftcard
(function() {
var petals = ['🌸','🌼','🌿','🌺','🌷','🌻'];
var container = document.getElementById('grcPetals');
if (!container) return;
var card = container.parentElement;
var cols = 8, rows = 5;
var total = cols * rows;
for (var i = 0; i < total; i++) {
var span = document.createElement('span');
span.textContent = petals[i % petals.length];
// Evenly distribute across card with slight random jitter
var col = i % cols;
var row = Math.floor(i / cols);
var x = (col / (cols - 1)) * 92 + (Math.random() * 4 - 2);
var y = (row / (rows - 1)) * 88 + (Math.random() * 4 - 2);
span.style.left = x + '%';
span.style.top = y + '%';
// Cascade delay: left-to-right, top-to-bottom wave
var delay = (col * 0.18) + (row * 0.28);
span.style.animationDelay = delay + 's';
// Slightly varied duration for organic feel
var dur = 3.5 + (Math.random() * 1.5);
span.style.animationDuration = dur + 's';
// Slight size variation
var size = 22 + Math.floor(Math.random() * 14);
span.style.fontSize = size + 'px';
container.appendChild(span);
}
})();