/* The same editable service artwork at compact and showcase sizes. */
.service-illustration {
    --illustration-scale: 1;
    position: relative;
    display: block;
    width: 80px;
    height: 52px;
    flex-shrink: 0;
    pointer-events: none;
}

.service-illustration *,
.service-illustration *::before,
.service-illustration *::after {
    box-sizing: border-box;
}

.service-illustration--large {
    --illustration-scale: 2.25;
    width: 180px;
    height: 156px;
}

.service-illustration__canvas {
    position: absolute;
    display: block;
    top: 50%;
    left: 50%;
    width: 80px;
    height: 52px;
    transform: translate(-50%, -50%) scale(var(--illustration-scale));
}

.service-illustration--large .service-illustration__canvas::before {
    content: '';
    position: absolute;
    inset: -9px -5px -5px;
    border-radius: 50%;
    background: radial-gradient(ellipse, #d4eee27a, #d4eee200 70%);
}

.service-illustration--tv.service-illustration--large .service-illustration__canvas::before {
    background: radial-gradient(ellipse, #d9e3f17a, #d9e3f100 70%);
}

.service-illustration__tv-screen {
    position: absolute;
    inset: 1px 4px 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 3px solid #253149;
    border-radius: 7px;
    background: radial-gradient(ellipse at 25% 100%, #83b4c3 0%, transparent 66%), linear-gradient(125deg, #58629c, #263756);
    box-shadow: 0 5px 10px #17223e25, inset 0 1px 1px #ffffff80;
    transform: perspective(180px) rotateY(-9deg);
    color: #f3fff9;
}

.service-illustration__tv-screen svg {
    width: 17px;
    height: 17px;
    fill: currentColor;
    stroke-width: 0;
    filter: drop-shadow(0 1px 3px #17223e50);
}

.service-illustration__tv-screen::before {
    content: '';
    position: absolute;
    inset: 6px 22px;
    border-radius: 50%;
    background: #ffffff20;
}

.service-illustration__tv-screen::after {
    content: '';
    position: absolute;
    width: 25px;
    height: 7px;
    border-bottom: 3px solid #253149;
    border-left: 3px solid #253149;
    border-right: 3px solid #253149;
    border-radius: 0 0 3px 3px;
    bottom: -10px;
    transform: perspective(30px) rotateX(25deg);
}

.service-illustration__phone {
    position: absolute;
    top: 0;
    width: 28px;
    height: 49px;
    border: 2px solid #25453a;
    border-radius: 7px;
    background: radial-gradient(ellipse at 70% 100%, #eaffed, transparent 70%), linear-gradient(140deg, #356450, #a9d6b9);
    box-shadow: 2px 5px 9px #2446342e;
}

.service-illustration__phone::before {
    content: '';
    position: absolute;
    top: 3px;
    left: 7px;
    right: 7px;
    height: 3px;
    border-radius: 4px;
    background: #25453a;
}

.service-illustration__phone::after {
    content: '';
    position: absolute;
    bottom: 3px;
    left: 6px;
    right: 6px;
    height: 2px;
    border-radius: 3px;
    background: #f7fff9;
    opacity: .8;
}

.service-illustration__phone--back {
    left: 13px;
    top: 2px;
    transform: rotate(-13deg);
    border-color: #6a7d8f;
    background: linear-gradient(135deg, #b5c6e2, #e4eefa);
}

.service-illustration__phone--front {
    left: 39px;
    transform: rotate(10deg);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ecfff4;
}

.service-illustration__phone--front svg {
    width: 17px;
    height: 17px;
    stroke-width: 1.7;
}

.service-illustration__antenna {
    position: absolute;
    top: 3px;
    width: 4px;
    height: 29px;
    border: .6px solid #9faeb3;
    border-radius: 3px;
    background: linear-gradient(90deg, #d0dbde, #fbffff 45%, #adbcc1);
    box-shadow: 1px 1px 2px #27463a15;
    transform-origin: bottom center;
}

.service-illustration__antenna--left { left: 17px; transform: rotate(-13deg); }
.service-illustration__antenna--right { right: 17px; transform: rotate(13deg); }

.service-illustration__signal {
    position: absolute;
    left: 28px;
    top: 5px;
    width: 24px;
    height: 24px;
    color: #65ac91;
    filter: drop-shadow(0 1px 2px #9ed7bd40);
}

.service-illustration__router {
    position: absolute;
    left: 7px;
    top: 28px;
    width: 66px;
    height: 20px;
    border: 1px solid #bac9cc;
    border-radius: 7px;
    background: linear-gradient(155deg, #ffffff 5%, #eef4f3 40%, #bdcdd0 100%);
    box-shadow: inset 0 1px 1px #ffffff, inset 0 -2px 2px #9bafb533, 0 5px 8px #24463426;
}

.service-illustration__router::before {
    content: '';
    position: absolute;
    left: 5px;
    right: 5px;
    top: 4px;
    height: 1px;
    border-radius: 50%;
    background: linear-gradient(90deg, transparent, #a5babb80, transparent);
}

.service-illustration__router::after {
    content: '';
    position: absolute;
    left: 9px;
    bottom: 5px;
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: #58b994;
    box-shadow: 0 0 3px #74cea5b3, inset 0 .5px 1px #d9ffec;
}

.service-illustration__router-vents {
    position: absolute;
    right: 8px;
    bottom: 5px;
    width: 22px;
    height: 3px;
    opacity: .6;
    background: repeating-linear-gradient(90deg, #93a8ac 0 1px, transparent 1px 3px);
}
