/* Extracted internal CSS from off-page-seo (3).php */
    /* ---- shared keyframes ---- */
    @keyframes grsFloatA{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
    @keyframes grsFloatB{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
    @keyframes grsPulseRing{0%{transform:scale(.7);opacity:.8}70%{transform:scale(1.9);opacity:0}100%{transform:scale(1.9);opacity:0}}
    @keyframes grsCountBar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
    @keyframes grsBlink{0%,100%{opacity:1}50%{opacity:.3}}
    @keyframes grsRise{0%{transform:translateY(16px);opacity:0}100%{transform:translateY(0);opacity:1}}
    @keyframes grsRingSweep{from{stroke-dashoffset:283}to{stroke-dashoffset:var(--grs-off,60)}}
    @keyframes grsTypeCursor{0%,100%{opacity:1}50%{opacity:0}}
    @keyframes grsBarShimmer{0%{filter:brightness(1)}50%{filter:brightness(1.35)}100%{filter:brightness(1)}}
    @keyframes grsBarGrow{0%{transform:scaleX(.88)}50%{transform:scaleX(1)}100%{transform:scaleX(.88)}}
    @keyframes grsRingPulse{0%,100%{stroke-dashoffset:var(--grs-off,60)}50%{stroke-dashoffset:calc(var(--grs-off,60) - 6)}}
    @keyframes grsDotPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.85)}}
    @keyframes grsSweepGlow{0%{background-position:-150% 0}100%{background-position:250% 0}}
    @keyframes grsTickUp{0%,45%{transform:translateY(0)}50%{transform:translateY(-100%)}95%,100%{transform:translateY(0)}}

    /* ---- generic browser-chrome frame (light) ---- */
    .grs-frame{width:100%;max-width:560px;max-height:100%;border-radius:1.1rem;background:#fff;border:1px solid #E6ECF5;
      box-shadow:0 12px 30px -14px rgba(17,24,39,.12);overflow:hidden;animation:grsFloatA 6s ease-in-out infinite;}
    .grs-frame-bar{display:flex;align-items:center;gap:.5rem;padding:.85rem 1.1rem;background:#F7F8FC;border-bottom:1px solid #ECEFF6;min-width:0;}
    .grs-dot{width:10px;height:10px;border-radius:9999px;flex-shrink:0;}
    .grs-frame-url{flex:1;min-width:0;margin-left:.5rem;height:24px;border-radius:9999px;background:#EEF1F8;display:flex;align-items:center;
      padding:0 .75rem;font:600 11px/1 'Inter',monospace;color:#475569;gap:.35rem;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
    .grs-frame-tag{margin-left:auto;display:flex;align-items:center;gap:.35rem;font:800 10px/1 'Inter',monospace;color:#6A58E4;letter-spacing:.05em;}
    .grs-frame-tag .grs-live-dot{width:7px;height:7px;border-radius:9999px;background:#6A58E4;animation:grsBlink 1.4s ease-in-out infinite;}
    .grs-frame-body{padding:clamp(1.3rem,3vw,1.9rem) clamp(1.3rem,3vw,1.9rem) clamp(1.5rem,3.5vw,2.1rem);}

    /* ---- dark terminal-style frame ---- */
    .grs-terminal{width:100%;max-width:560px;max-height:100%;border-radius:1.1rem;background:#0A0E17;border:1px solid rgba(255,255,255,.08);
      box-shadow:0 12px 30px -14px rgba(0,0,0,.35);overflow:hidden;animation:grsFloatB 7s ease-in-out infinite;}
    .grs-terminal-bar{display:flex;align-items:center;gap:.5rem;padding:.85rem 1.1rem;border-bottom:1px solid rgba(255,255,255,.07);min-width:0;}
    .grs-terminal-title{font:600 12px/1 'Inter',monospace;color:#94A3B8;margin-left:.35rem;}
    .grs-terminal-live{margin-left:auto;display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .6rem;border-radius:9999px;
      border:1px solid rgba(52,211,153,.35);background:rgba(52,211,153,.08);font:800 10px/1 'Inter',monospace;color:#6A58E4;letter-spacing:.05em;}
    .grs-terminal-body{padding:1.1rem 1.2rem 1.3rem;}
    .grs-t-bar-row{display:flex;align-items:center;gap:.7rem;padding:.5rem 0;min-width:0;}
    .grs-t-bar-label{flex-shrink:0;width:110px;font:700 12px/1.2 'Inter',monospace;color:#94A3B8;}
    .grs-t-bar-track{flex:1;min-width:0;height:6px;border-radius:9999px;background:rgba(255,255,255,.08);overflow:hidden;position:relative;}
    .grs-t-bar-fill{position:absolute;inset:0;border-radius:9999px;
      background:linear-gradient(135deg,#6A58E4,#4A86F5,#28A8D9,#4A86F5,#6A58E4);background-size:250% 100%;transform-origin:left;
      animation:grsCountBar 1.1s cubic-bezier(.2,.8,.2,1) both, grsSweepGlow 3.2s linear infinite 1.1s;}
    .grs-t-bar-val{flex-shrink:0;width:38px;text-align:right;font:800 12px/1 'Inter',monospace;color:#6A58E4;}
    .grs-t-footer{margin-top:1.1rem;display:flex;align-items:center;justify-content:space-between;padding:.9rem 1rem;
      border-radius:.9rem;background:rgba(52,211,153,.07);border:1px solid rgba(52,211,153,.22);}
    .grs-t-footer b{font:700 12px/1 'Inter',sans-serif;color:#fff;}
    .grs-pill-green{padding:.35rem .8rem;border-radius:9999px;background:linear-gradient(135deg,#6A58E4,#4A86F5,#28A8D9,#4A86F5,#6A58E4);background-size:250% 100%;animation:grsSweepGlow 3.6s linear infinite;color:#04140D;font:800 10px/1 'Inter',monospace;}

    /* ---- light-theme progress bar dashboard ---- */
    .grs-frame-bar-row{display:flex;align-items:center;gap:.7rem;padding:.5rem 0;min-width:0;}
    .grs-bar-label{flex-shrink:0;width:98px;font:700 12px/1.25 'Inter',monospace;color:#475569;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
    .grs-frame-bar-track{flex:1;min-width:0;height:6px;border-radius:9999px;background:#EEF1F8;overflow:hidden;position:relative;}
    .grs-frame-bar-fill{position:absolute;inset:0;border-radius:9999px;
      background:linear-gradient(90deg,#6A58E4,#4A86F5,#28A8D9,#4A86F5,#6A58E4);background-size:250% 100%;transform-origin:left;
      animation:grsCountBar 1.1s cubic-bezier(.2,.8,.2,1) both, grsSweepGlow 3.2s linear infinite 1.1s;}
    .grs-frame-bar-val{flex-shrink:0;width:42px;text-align:right;font:800 13px/1 'Inter',monospace;color:#6A58E4;}
    .grs-frame-footer{margin-top:1.2rem;display:flex;align-items:center;justify-content:space-between;padding:1rem 1.1rem;
      border-radius:.95rem;background:rgba(106,88,228,.06);border:1px solid rgba(106,88,228,.18);}
    .grs-frame-footer b{font:700 13px/1 'Inter',sans-serif;color:#111827;}
    .grs-pill-violet{padding:.4rem .85rem;border-radius:9999px;background:linear-gradient(135deg,#6A58E4,#4A86F5,#28A8D9,#4A86F5,#6A58E4);background-size:250% 100%;color:#fff;font:800 12px/1 'Inter',monospace;animation:grsSweepGlow 3.6s linear infinite;}

    /* ---- stat tiles ---- */
    .grs-stat-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin-bottom:12px;}
    .grs-stat-tile{text-align:center;padding:.9rem .5rem;border-radius:.85rem;background:#FAFBFF;border:1px solid #ECEFF6;}
    .grs-stat-tile-dark{text-align:center;padding:.9rem .5rem;border-radius:.85rem;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.07);}
    .grs-stat-tile b, .grs-stat-tile-dark b{display:block;font:800 17px/1.1 'Inter',sans-serif;color:#111827;}
    .grs-stat-tile-dark b{color:#6A58E4;}
    .grs-stat-tile span, .grs-stat-tile-dark span{display:block;margin-top:.35rem;font:700 10px/1.2 'Inter',monospace;color:#475569;letter-spacing:.04em;text-transform:uppercase;}
    .grs-stat-tile-dark span{color:#94A3B8;}

    /* ---- generic pill / row list ---- */
    .grs-row-list{display:flex;flex-direction:column;gap:.6rem;}
    .grs-row-item{display:flex;align-items:center;gap:.7rem;padding:.75rem .9rem;border-radius:.85rem;background:#FAFBFF;
      border:1px solid #ECEFF6;animation:grsRise .5s ease-out both;}
    .grs-row-item-dark{display:flex;align-items:center;gap:.7rem;padding:.75rem .9rem;border-radius:.85rem;background:rgba(255,255,255,.03);
      border:1px solid rgba(255,255,255,.08);animation:grsRise .5s ease-out both;}
    .grs-row-icon{flex-shrink:0;width:34px;height:34px;border-radius:.7rem;display:flex;align-items:center;justify-content:center;
      background:linear-gradient(135deg,#6A58E4,#4A86F5);color:#fff;}
    .grs-row-text{font:700 13px/1.3 'Inter',sans-serif;color:#1E293B;}
    .grs-row-text-dark{font:700 13px/1.3 'Inter',sans-serif;color:#E2E8F0;}

    /* ---- result / list card ---- */
    .grs-result-card{border-radius:1rem;border:1.5px solid transparent;padding:1rem 1.15rem;margin-bottom:.7rem;animation:grsRise .5s ease-out both;}
    .grs-result-card.is-top{border-color:#6A58E4;background:linear-gradient(135deg,rgba(106,88,228,.06),rgba(74,134,245,.04));}
    .grs-result-card:not(.is-top){background:#FAFBFF;border-color:#F1F3F9;}
    .grs-result-top-row{display:flex;align-items:center;gap:.6rem;margin-bottom:.35rem;}
    .grs-badge-choice{font:800 10px/1 'Inter',monospace;color:#6A58E4;background:#EDEBFF;padding:.25rem .6rem;border-radius:9999px;letter-spacing:.03em;}
    .grs-result-title{font:700 15px/1.2 'Inter',sans-serif;color:#111827;}
    .grs-result-title.dim{color:#475569;font-weight:600;font-size:14px;}
    .grs-result-meta{font:600 11px/1.3 'Inter',sans-serif;color:#475569;margin-top:.2rem;}

    /* ---- stat ring dashboard ---- */
    .grs-ring-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;width:100%;max-width:480px;}
    .grs-ring-card{background:#FAFBFF;border:1px solid #ECEFF6;border-radius:1rem;padding:1rem .8rem;text-align:center;
      animation:grsRise .55s ease-out both;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;}
    .grs-ring-svg{transform:rotate(-90deg);width:clamp(48px,7vw,60px);height:clamp(48px,7vw,60px);flex-shrink:0;}
    .grs-ring-svg .track{fill:none;stroke:#EDEFF6;stroke-width:6;}
    .grs-ring-svg .fill{fill:none;stroke-width:6;stroke-linecap:round;stroke-dasharray:283;animation:grsRingSweep 1.3s cubic-bezier(.2,.8,.2,1) both, grsRingPulse 2.6s ease-in-out infinite 1.3s;}
    .grs-ring-card-num{font:800 20px/1 'Inter',sans-serif;color:#111827;}
    .grs-ring-card-label{font:700 11px/1 'Inter',monospace;color:#475569;text-transform:uppercase;letter-spacing:.03em;}

    /* ---- process / evolution timeline steps ---- */
    .grs-steps{display:flex;flex-direction:column;gap:1.1rem;width:100%;max-width:560px;}
    .grs-step{display:flex;align-items:center;gap:1.1rem;background:#fff;border:1px solid #E6ECF5;border-radius:1.1rem;
      padding:clamp(1.1rem,2.5vw,1.5rem) clamp(1.2rem,3vw,1.6rem);box-shadow:0 14px 34px -18px rgba(106,88,228,.18);animation:grsRise .55s ease-out both;}
    .grs-step-icon{flex-shrink:0;width:50px;height:50px;border-radius:.9rem;display:flex;align-items:center;justify-content:center;
      background:linear-gradient(135deg,#6A58E4,#4A86F5);color:#fff;}
    .grs-step-bar{height:5px;border-radius:9999px;background:#EEF1F8;overflow:hidden;margin-top:.45rem;}
    .grs-step-bar span{display:block;height:100%;background:linear-gradient(90deg,#6A58E4,#4A86F5);transform-origin:left;animation:grsCountBar 1.1s ease-out both;}

    /* ---- map scene with pins + business list ---- */
    .grs-map-scene{width:100%;max-width:560px;border-radius:1.1rem;overflow:hidden;border:1px solid #E6ECF5;
      box-shadow:0 12px 30px -14px rgba(17,24,39,.1);background:#fff;animation:grsFloatA 6s ease-in-out infinite;}
    .grs-map-canvas{position:relative;height:clamp(170px,26vw,230px);background:#EAF0FB;overflow:hidden;}
    .grs-map-search{position:absolute;top:.6rem;left:.6rem;right:.6rem;display:flex;align-items:center;gap:.4rem;
      background:#fff;border-radius:9999px;padding:.5rem .8rem;box-shadow:0 8px 20px -10px rgba(17,24,39,.25);z-index:2;}
    .grs-map-search span{font:600 11px/1 'Inter',sans-serif;color:#475569;}
    .grs-map-pin{position:absolute;transform:translate(-50%,-100%);animation:grsFloatA 3.2s ease-in-out infinite;}
    .grs-map-pin-dot{width:28px;height:28px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);display:flex;align-items:center;justify-content:center;
      box-shadow:0 8px 18px -4px rgba(0,0,0,.35);}
    .grs-map-pin-dot i{transform:rotate(45deg);width:14px;height:14px;color:#fff;}
    .grs-map-list{padding:1rem 1.2rem 1.3rem;}
    .grs-biz-row{display:flex;align-items:center;gap:.75rem;padding:.7rem .85rem;border-radius:.8rem;margin-bottom:.55rem;animation:grsRise .5s ease-out both;}
    .grs-biz-row.is-top{background:rgba(16,185,129,.08);border:1px solid rgba(16,185,129,.25);}
    .grs-biz-row:not(.is-top){background:#FAFBFF;}
    .grs-biz-rank{flex-shrink:0;width:24px;height:24px;border-radius:.5rem;display:flex;align-items:center;justify-content:center;font:800 11px/1 'Inter',monospace;color:#fff;}
    .grs-biz-name{font:700 13px/1.2 'Inter',sans-serif;color:#111827;}
    .grs-biz-meta{font:600 10px/1.3 'Inter',sans-serif;color:#475569;margin-top:.15rem;}
    .grs-stars{color:#F59E0B;font-size:11px;letter-spacing:1px;}

    /* ---- checklist report card (for verbose checklist sections) ---- */
    .grs-check-row{display:flex;align-items:center;gap:.7rem;animation:grsRise .5s ease-out both;}
    .grs-check-icon{flex-shrink:0;width:24px;height:24px;border-radius:.55rem;background:rgba(16,185,129,.12);color:#059669;display:flex;align-items:center;justify-content:center;}
    .grs-check-icon-dark{flex-shrink:0;width:24px;height:24px;border-radius:.55rem;background:rgba(52,211,153,.15);color:#6A58E4;display:flex;align-items:center;justify-content:center;}
    .grs-check-text{font:600 13px/1.3 'Inter',sans-serif;color:#1E293B;}
    .grs-check-text-dark{font:600 13px/1.3 'Inter',sans-serif;color:#E2E8F0;}

    /* ---- shared visual outer wrapper: NO box, NO background -just a full-height flex container ---- */
    .grs-visual{position:relative;width:100%;max-width:100%;height:100%;min-height:280px;display:flex;align-items:stretch;justify-content:center;overflow:hidden;box-sizing:border-box;}
    .grs-visual > .grs-frame,.grs-visual > .grs-map-scene,.grs-visual > .grs-terminal{align-self:stretch;}
    /* Hero-only visuals sit in a fixed-height box and should stay vertically centered, not stretched */
    .grs-hero-visual-box .grs-visual{align-items:center;}
    .grs-glow{position:absolute;border-radius:9999px;filter:blur(60px);pointer-events:none;z-index:0;}

    /* ---- responsive ---- */
    @media (max-width:480px){
      .grs-visual{min-height:240px;padding:.85rem;}
      .grs-frame-body,.grs-terminal-body{padding:.9rem 1rem 1.1rem;}
      .grs-bar-label,.grs-t-bar-label{width:82px;font-size:10px;}
      .grs-map-canvas{height:150px;}
    }
    @media (prefers-reduced-motion: reduce){
      .grs-visual *{animation-duration:.001ms !important;animation-iteration-count:1 !important;}
    }

    /* ---- overflow safety net: grid/flex columns default to min-width:auto, which lets a wide
         child force the whole page wider than the viewport. This resets that for every card. ---- */
    .grid > *{min-width:0;}
    .grs-frame,.grs-terminal{min-width:0;box-sizing:border-box;}
    .grs-frame *, .grs-terminal *{box-sizing:border-box;}
  


/* ==========================================================
   MOBILE 2-UP FIX -- fixed 3-item metric/stat strips show only
   2 tiles per row on small phones (3 tiles in a row was either
   cramped/clipped, or stacking all 3 full-width made the card
   too tall). The 3rd tile is hidden rather than wrapped to its
   own half-empty row, and the CTA nothing else references it.
   ========================================================== */
@media (max-width: 480px) {
  .grs-stat-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: .6rem !important; }
  .grs-stat-tiles > *:nth-child(3) { display: none !important; }
}
