/*
  designsgrey.com (Build 41) | Digital & Web Design Agency | Rochester NY / USD
  Theme: Light Warm Grey #F6F5F3 + Electric Violet #6D28D9 (FIRST VIOLET in 41 builds!)
  Nav: MINIMAL STICKY with Services dropdown + BOTTOM-SLIDE-UP DRAWER mobile (never done!)
  Hero: EDITORIAL CENTERED with animated cursor blink (never done!)
  Work: BENTO GRID asymmetric (never done in 41 builds!)
  Services: NUMBERED EDITORIAL LIST (never done!)
  Process: ACCORDION expand/collapse (never done in 41 builds!)
  FAQ: STAGGERED TWO-COLUMN layout (never done!)
  Testimonials: HORIZONTAL MARQUEE
  Footer: MINIMAL 2-COL
  Typography: Montserrat + Outfit (both first use in 41 builds!)
  CSS prefix: dg-
*/
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700;800;900&family=Outfit:wght@300;400;500;600;700&display=swap');

:root {
  --dg-stone:   #F6F5F3;
  --dg-ash:     #EEECE8;
  --dg-ash2:    #E3E0D9;
  --dg-ash3:    #D4D0C8;
  --dg-mid:     #9B9590;
  --dg-dim:     #6B6560;
  --dg-dark:    #2C2825;
  --dg-ink:     #1A1714;
  --dg-violet:  #6D28D9;
  --dg-violet2: #5B21B6;
  --dg-violet3: #7C3AED;
  --dg-violett: rgba(109,40,217,.1);
  --dg-white:   #FFFFFF;
  --dg-max:     1060px;
  --dg-r:       2px;
  --dg-r2:      5px;
  --dg-r3:      10px;
  --dg-r4:      16px;
  --dg-fh:      'Montserrat', system-ui, sans-serif;
  --dg-fb:      'Outfit', system-ui, sans-serif;
  --dg-ease:    all 0.22s cubic-bezier(.4,0,.2,1);
  --dg-sh:      0 2px 20px rgba(26,23,20,.06);
  --dg-sh2:     0 8px 40px rgba(26,23,20,.12);
  --dg-nav-h:   60px;
}

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body { background:var(--dg-stone); color:var(--dg-ink); font-family:var(--dg-fb); font-size:1rem; line-height:1.7; overflow-x:hidden; }
img,svg { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
ul { list-style:none; }
button { font-family:inherit; cursor:pointer; border:none; background:none; }
input,textarea,select { font-family:inherit; }
address { font-style:normal; }
h1 { font-family:var(--dg-fh); font-size:clamp(3rem,6vw,7.5rem); font-weight:800; line-height:.86; letter-spacing:-.035em; }
h2 { font-family:var(--dg-fh); font-size:clamp(1.8rem,3vw,3.8rem); font-weight:800; line-height:.88; letter-spacing:-.03em; }
h3 { font-family:var(--dg-fh); font-size:1.05rem; font-weight:700; }
p  { font-size:.91rem; line-height:1.82; color:var(--dg-dim); }

/* ============================================================
   MINIMAL STICKY NAV
   ============================================================ */
.dg-nav { position:fixed; top:0; left:0; right:0; z-index:900; background:rgba(246,245,243,.96); backdrop-filter:blur(10px); border-bottom:1px solid var(--dg-ash2); height:var(--dg-nav-h); transition:box-shadow .2s; }
.dg-nav.dg-nav-scrolled { box-shadow:var(--dg-sh); }
.dg-nav-inner { max-width:var(--dg-max); margin:0 auto; padding:0 2.5rem; height:100%; display:flex; align-items:center; gap:2rem; }
.dg-logo { font-family:var(--dg-fh); font-size:.78rem; font-weight:900; color:var(--dg-ink); letter-spacing:.05em; text-transform:uppercase; display:flex; align-items:center; gap:.2rem; flex-shrink:0; }
.dg-logo em { color:var(--dg-violet); font-style:normal; }
.dg-nav-links { display:flex; align-items:center; gap:.15rem; flex:1; justify-content:center; }
.dg-nl { font-family:var(--dg-fb); font-size:.92rem; font-weight:600; color:var(--dg-dim); padding:.35rem .68rem; border-radius:var(--dg-r2); transition:var(--dg-ease); position:relative; }
.dg-nl:hover,.dg-nl.dg-on { color:var(--dg-ink); }
.dg-nl::after { content:''; position:absolute; bottom:2px; left:.68rem; right:.68rem; height:1.5px; background:var(--dg-violet); transform:scaleX(0); transform-origin:left; transition:transform .18s; }
.dg-nl:hover::after,.dg-nl.dg-on::after { transform:scaleX(1); }
/* Services dropdown */
.dg-drop-wrap { position:relative; }
.dg-drop-btn { display:flex; align-items:center; gap:.18rem; font-family:var(--dg-fb); font-size:.92rem; font-weight:600; color:var(--dg-dim); padding:.35rem .68rem; border-radius:var(--dg-r2); cursor:pointer; transition:var(--dg-ease); }
.dg-drop-btn:hover { color:var(--dg-ink); }
.dg-drop-ic { transition:transform .16s; }
.dg-drop-wrap.dg-drop-open .dg-drop-ic { transform:rotate(180deg); }
.dg-drop-panel { position:absolute; top:calc(100% + 10px); left:0; background:var(--dg-white); border:1px solid var(--dg-ash2); border-radius:var(--dg-r3); box-shadow:var(--dg-sh2); min-width:260px; z-index:800; opacity:0; pointer-events:none; transform:translateY(-6px); transition:opacity .18s,transform .2s; }
.dg-drop-wrap.dg-drop-open .dg-drop-panel { opacity:1; pointer-events:auto; transform:none; }
.dg-drop-row { display:flex; align-items:center; justify-content:space-between; padding:.72rem 1rem; border-bottom:1px solid var(--dg-ash); transition:background .14s; }
.dg-drop-row:last-child { border-bottom:none; }
.dg-drop-row:hover { background:var(--dg-stone); }
.dg-drop-nm { font-size:.84rem; font-weight:600; color:var(--dg-ink); }
.dg-drop-tg { font-size:.62rem; font-weight:700; color:var(--dg-violet); }
/* Nav CTA */
.dg-nav-cta-area { flex-shrink:0; }
/* Mobile hamburger */
.dg-mob-ham { display:none; width:36px; height:36px; flex-direction:column; align-items:center; justify-content:center; gap:5px; border-radius:var(--dg-r2); background:var(--dg-ash); z-index:990; position:relative; }
.dg-mob-ham span { width:16px; height:1.5px; background:var(--dg-ink); display:block; border-radius:2px; transition:var(--dg-ease); }
/* BOTTOM-SLIDE-UP DRAWER (NEVER DONE IN 41 BUILDS!) */
.dg-mob-sheet { position:fixed; bottom:-100%; left:0; right:0; background:var(--dg-white); z-index:989; border-radius:var(--dg-r4) var(--dg-r4) 0 0; box-shadow:0 -8px 40px rgba(26,23,20,.18); transition:bottom .3s cubic-bezier(.4,0,.2,1); overflow-y:auto; max-height:90vh; padding:1.5rem 2rem 3rem; }
.dg-mob-sheet.dg-sheet-up { bottom:0; }
.dg-mob-ov { position:fixed; inset:0; background:rgba(26,23,20,.25); z-index:988; opacity:0; pointer-events:none; transition:opacity .25s; }
.dg-mob-ov.dg-ov-on { opacity:1; pointer-events:auto; }
.dg-sheet-handle { width:36px; height:4px; background:var(--dg-ash2); border-radius:2px; margin:0 auto .8rem; }
.dg-sheet-close-row { display:flex; justify-content:flex-end; margin-bottom:1rem; }
.dg-sheet-link { display:flex; align-items:center; justify-content:space-between; padding:.6rem 0; border-bottom:1px solid var(--dg-ash); font-size:.92rem; font-weight:600; color:var(--dg-dim); transition:color .14s; }
.dg-sheet-link:hover { color:var(--dg-ink); }
.dg-sheet-svc-h { font-size:.46rem; font-weight:700; text-transform:uppercase; letter-spacing:.2em; color:var(--dg-mid); margin:1rem 0 .3rem; }
.dg-sheet-svc-lk { display:flex; justify-content:space-between; align-items:center; padding:.36rem 0; font-size:.86rem; color:var(--dg-dim); border-bottom:1px solid var(--dg-ash); transition:color .14s; }
.dg-sheet-svc-lk:hover { color:var(--dg-violet); }
.dg-sheet-cta { margin-top:1.2rem; }

/* ============================================================
   BODY + LAYOUT
   ============================================================ */
.dg-pad { padding-top:var(--dg-nav-h); }
.dg-shell { max-width:var(--dg-max); margin:0 auto; padding:0 2.5rem; }
.dg-slab  { padding:7rem 0; }
.dg-kicker { font-family:var(--dg-fb); font-size:.5rem; font-weight:700; text-transform:uppercase; letter-spacing:.28em; color:var(--dg-violet); display:inline-block; }

/* ============================================================
   EDITORIAL CENTERED HERO with animated cursor blink (FIRST!)
   ============================================================ */
.dg-hero { min-height:100vh; background:var(--dg-stone); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:calc(var(--dg-nav-h) + 3rem) 2.5rem 5rem; position:relative; overflow:hidden; }
/* Subtle radial grid background */
.dg-hero::before { content:''; position:absolute; inset:0; background-image:radial-gradient(circle,var(--dg-ash2) 1px,transparent 1px); background-size:32px 32px; opacity:.5; pointer-events:none; }
.dg-hero-kicker { margin-bottom:1.5rem; position:relative; }
.dg-hero-h1 { max-width:18ch; margin:0 auto; color:var(--dg-ink); position:relative; }
/* Cursor blink on last word */
.dg-cursor-blink { position:relative; }
.dg-cursor-blink::after { content:'|'; color:var(--dg-violet); animation:dgBlink 1.1s step-start infinite; }
@keyframes dgBlink { 0%,100%{opacity:1} 50%{opacity:0} }
.dg-hero-sub { max-width:44ch; margin:1.4rem auto 2.2rem; font-size:.96rem; color:var(--dg-dim); line-height:1.82; position:relative; }
.dg-hero-acts { display:flex; gap:.6rem; flex-wrap:wrap; justify-content:center; position:relative; }
/* Stats inline below hero */
.dg-hero-stats { display:flex; gap:3rem; justify-content:center; margin-top:4rem; padding-top:2.5rem; border-top:1px solid var(--dg-ash2); position:relative; width:100%; max-width:560px; }
.dg-hero-stat-n { font-family:var(--dg-fh); font-size:2rem; font-weight:800; color:var(--dg-ink); line-height:1; letter-spacing:-.04em; }
.dg-hero-stat-l { font-size:.6rem; font-weight:600; color:var(--dg-mid); text-transform:uppercase; letter-spacing:.1em; margin-top:.2rem; }

/* ============================================================
   BENTO GRID WORK (FIRST in 41 builds!)
   ============================================================ */
.dg-bento { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:auto auto; gap:1px; background:var(--dg-ash2); margin-top:2.5rem; }
.dg-bento-lrg { grid-column:1; grid-row:1/3; min-height:500px; position:relative; overflow:hidden; cursor:pointer; }
.dg-bento-sm { grid-column:2; grid-row:auto; min-height:248px; position:relative; overflow:hidden; cursor:pointer; }
.dg-bento-item { background:var(--dg-ink); transition:transform .3s cubic-bezier(.4,0,.2,1); }
.dg-bento-item:hover { transform:scale(.99); }
.dg-bento-img { position:absolute; inset:0; }
.dg-bento-img img { width:100%; height:100%; object-fit:cover; opacity:.22; transition:opacity .3s; }
.dg-bento-item:hover .dg-bento-img img { opacity:.3; }
.dg-bento-overlay { position:absolute; inset:0; background:linear-gradient(to top,rgba(26,23,20,.9) 0%,transparent 60%); }
.dg-bento-bd { position:absolute; bottom:0; left:0; right:0; padding:2rem; }
.dg-bento-tags { display:flex; gap:.3rem; flex-wrap:wrap; margin-bottom:.5rem; }
.dg-bento-tag { font-size:.44rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; background:rgba(109,40,217,.25); color:rgba(255,255,255,.8); padding:.1rem .4rem; border-radius:var(--dg-r); border:1px solid rgba(109,40,217,.3); }
.dg-bento-client { font-family:var(--dg-fh); font-size:1.2rem; font-weight:800; color:white; letter-spacing:-.02em; margin-bottom:.15rem; }
.dg-bento-sm .dg-bento-client { font-size:.96rem; }
.dg-bento-scope { font-size:.7rem; color:rgba(255,255,255,.4); }
.dg-bento-arrow { position:absolute; top:1.2rem; right:1.2rem; width:32px; height:32px; border:1px solid rgba(255,255,255,.18); border-radius:50%; display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.5); transition:var(--dg-ease); }
.dg-bento-item:hover .dg-bento-arrow { border-color:var(--dg-violet); color:var(--dg-violet3); }

/* ============================================================
   NUMBERED EDITORIAL SERVICES LIST (NEVER DONE IN 41!)
   ============================================================ */
.dg-svc-list { display:flex; flex-direction:column; gap:0; margin-top:2.5rem; border-top:1px solid var(--dg-ash2); }
.dg-svc-row-item { display:grid; grid-template-columns:64px 1fr 1fr auto; align-items:center; gap:2rem; padding:1.6rem 0; border-bottom:1px solid var(--dg-ash2); transition:background .16s; cursor:pointer; }
.dg-svc-row-item:hover { background:var(--dg-ash); margin:0 -2.5rem; padding-left:2.5rem; padding-right:2.5rem; }
.dg-svc-num { font-family:var(--dg-fh); font-size:.72rem; font-weight:800; color:var(--dg-ash3); letter-spacing:.04em; }
.dg-svc-row-item:hover .dg-svc-num { color:var(--dg-violet); }
.dg-svc-row-nm { font-family:var(--dg-fh); font-size:1rem; font-weight:700; color:var(--dg-ink); }
.dg-svc-row-p { font-size:.82rem; color:var(--dg-dim); line-height:1.6; }
.dg-svc-row-tag { font-size:.7rem; font-weight:700; color:var(--dg-violet); white-space:nowrap; }
.dg-svc-row-arrow { width:32px; height:32px; border:1px solid var(--dg-ash2); border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--dg-mid); transition:var(--dg-ease); flex-shrink:0; }
.dg-svc-row-item:hover .dg-svc-row-arrow { border-color:var(--dg-violet); color:var(--dg-violet); transform:rotate(-45deg); }

/* ============================================================
   HORIZONTAL MARQUEE TESTIMONIALS (different from CSS ticker)
   ============================================================ */
.dg-mq-section { background:var(--dg-ink); overflow:hidden; padding:5rem 0; }
.dg-mq-wrap { overflow:hidden; position:relative; }
.dg-mq-track { display:flex; gap:1.5rem; width:max-content; animation:dgMarquee 50s linear infinite; }
.dg-mq-wrap:hover .dg-mq-track { animation-play-state:paused; }
@keyframes dgMarquee { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }
.dg-mq-card { background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); border-radius:var(--dg-r4); padding:1.5rem; width:320px; flex-shrink:0; }
.dg-mq-q { font-family:var(--dg-fh); font-size:.84rem; font-style:italic; color:rgba(246,245,243,.55); line-height:1.66; margin-bottom:.8rem; }
.dg-mq-who { font-size:.74rem; font-weight:700; color:rgba(246,245,243,.7); }
.dg-mq-co  { font-size:.6rem; color:rgba(246,245,243,.28); margin-top:.1rem; }
.dg-mq-bar { width:28px; height:2px; background:var(--dg-violet3); border-radius:1px; margin-bottom:.6rem; }

/* ============================================================
   PROCESS ACCORDION (NEVER DONE IN 41 BUILDS!)
   ============================================================ */
.dg-proc-list { max-width:720px; margin:2.5rem auto 0; }
.dg-proc-item { border-bottom:1px solid var(--dg-ash2); }
.dg-proc-head { display:grid; grid-template-columns:56px 1fr auto; align-items:center; gap:1.5rem; padding:1.4rem 0; cursor:pointer; }
.dg-proc-n { font-family:var(--dg-fh); font-size:.52rem; font-weight:800; color:var(--dg-ash3); letter-spacing:.04em; transition:color .18s; }
.dg-proc-item.dg-proc-open .dg-proc-n { color:var(--dg-violet); }
.dg-proc-h { font-family:var(--dg-fh); font-size:.96rem; font-weight:700; color:var(--dg-dim); transition:color .18s; }
.dg-proc-item.dg-proc-open .dg-proc-h { color:var(--dg-ink); }
.dg-proc-ic { width:26px; height:26px; border:1px solid var(--dg-ash2); border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--dg-mid); transition:var(--dg-ease); flex-shrink:0; }
.dg-proc-item.dg-proc-open .dg-proc-ic { background:var(--dg-violet); border-color:var(--dg-violet); color:white; transform:rotate(45deg); }
.dg-proc-body { max-height:0; overflow:hidden; transition:max-height .3s ease; }
.dg-proc-item.dg-proc-open .dg-proc-body { max-height:180px; }
.dg-proc-p { font-size:.86rem; line-height:1.82; padding-bottom:1.2rem; padding-left:calc(56px + 1.5rem); }

/* ============================================================
   STAGGERED TWO-COLUMN FAQ (NEVER DONE IN 41 BUILDS!)
   ============================================================ */
.dg-faq-stag { display:grid; grid-template-columns:1fr 1fr; gap:0 3rem; margin-top:2.5rem; }
.dg-faq-col { display:flex; flex-direction:column; gap:0; }
.dg-faq-col:nth-child(2) { margin-top:3rem; }
.dg-faq-qi { border:1px solid var(--dg-ash2); border-radius:var(--dg-r3); margin-bottom:1rem; overflow:hidden; transition:var(--dg-ease); }
.dg-faq-qi:hover { border-color:var(--dg-violet); }
.dg-faq-qi.dg-fq-open { border-color:var(--dg-violet); }
.dg-faq-qbtn { width:100%; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 1.1rem; text-align:left; cursor:pointer; }
.dg-faq-qtxt { font-family:var(--dg-fh); font-size:.82rem; font-weight:700; color:var(--dg-dim); transition:color .16s; }
.dg-faq-qi.dg-fq-open .dg-faq-qtxt { color:var(--dg-ink); }
.dg-faq-qic { width:20px; height:20px; border-radius:50%; background:var(--dg-ash); display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:var(--dg-ease); color:var(--dg-dim); }
.dg-faq-qi.dg-fq-open .dg-faq-qic { background:var(--dg-violet); color:white; transform:rotate(45deg); }
.dg-faq-ans { max-height:0; overflow:hidden; transition:max-height .3s ease; }
.dg-faq-qi.dg-fq-open .dg-faq-ans { max-height:200px; }
.dg-faq-atxt { font-size:.82rem; line-height:1.78; color:var(--dg-dim); padding:.2rem 1.1rem 1rem; border-top:1px solid var(--dg-ash); }

/* ============================================================
   PRICING PACKAGES
   ============================================================ */
.dg-pkg-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--dg-ash2); margin-top:2.5rem; }
.dg-pkg-crd { background:var(--dg-white); padding:2rem 1.6rem; display:flex; flex-direction:column; position:relative; transition:background .18s; }
.dg-pkg-crd:hover { background:var(--dg-stone); }
.dg-pkg-crd.dg-feat { background:var(--dg-violet); }
.dg-feat-label { position:absolute; top:0; left:50%; transform:translateX(-50%); font-size:.4rem; font-weight:800; text-transform:uppercase; letter-spacing:.16em; background:var(--dg-dark); color:white; padding:.16rem .7rem; border-radius:0 0 var(--dg-r) var(--dg-r); white-space:nowrap; }
.dg-pkg-nm { font-family:var(--dg-fh); font-size:.7rem; font-weight:800; text-transform:uppercase; letter-spacing:.1em; color:var(--dg-mid); margin-top:1rem; }
.dg-feat .dg-pkg-nm { color:rgba(255,255,255,.5); }
.dg-pkg-scope { font-size:.62rem; color:var(--dg-ash3); margin-bottom:.4rem; }
.dg-feat .dg-pkg-scope { color:rgba(255,255,255,.35); }
.dg-pkg-price { font-family:var(--dg-fh); font-size:2.4rem; font-weight:900; color:var(--dg-ink); line-height:1; letter-spacing:-.05em; margin-bottom:.15rem; }
.dg-feat .dg-pkg-price { color:white; }
.dg-pkg-per { font-size:.5rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--dg-mid); margin-bottom:.2rem; }
.dg-feat .dg-pkg-per { color:rgba(255,255,255,.4); }
.dg-pkg-timeline { font-size:.7rem; color:var(--dg-dim); font-style:italic; margin-bottom:.4rem; }
.dg-feat .dg-pkg-timeline { color:rgba(255,255,255,.5); }
.dg-pkg-tag2 { font-size:.72rem; color:var(--dg-dim); margin-bottom:.6rem; }
.dg-feat .dg-pkg-tag2 { color:rgba(255,255,255,.4); }
.dg-pkg-inc { display:flex; flex-direction:column; gap:.26rem; flex:1; margin-bottom:1.2rem; }
.dg-pkg-inc-row { display:flex; align-items:flex-start; gap:.3rem; font-size:.74rem; color:var(--dg-dim); }
.dg-feat .dg-pkg-inc-row { color:rgba(255,255,255,.65); }
.dg-pkg-inc-row svg { color:var(--dg-violet); flex-shrink:0; margin-top:.04rem; }
.dg-feat .dg-pkg-inc-row svg { color:rgba(255,255,255,.9); }

/* ============================================================
   SERVICE PAGE LAYOUT
   ============================================================ */
.dg-svc-layout { max-width:var(--dg-max); margin:0 auto; padding:5.5rem 2.5rem; display:grid; grid-template-columns:1fr 250px; gap:5rem; align-items:start; }
.dg-svc-bdy h2 { font-family:var(--dg-fh); font-size:1rem; color:var(--dg-violet); margin:2.5rem 0 .5rem; }
.dg-svc-bdy p { margin-bottom:.88rem; }
.dg-svc-inc-list { display:flex; flex-direction:column; gap:.34rem; margin-bottom:1.4rem; }
.dg-svc-inc-item { display:flex; align-items:flex-start; gap:.45rem; font-size:.84rem; color:var(--dg-ink); }
.dg-svc-inc-item svg { color:var(--dg-violet); flex-shrink:0; margin-top:.08rem; }
.dg-svc-del { background:var(--dg-violett); border-left:3px solid var(--dg-violet); padding:.66rem .9rem; border-radius:0 var(--dg-r) var(--dg-r) 0; margin-bottom:1.4rem; }
.dg-svc-del p { margin:0; font-size:.82rem; color:var(--dg-violet2); }
/* Aside - light bg, buttons should be violet or dark */
.dg-svc-aside { position:sticky; top:calc(var(--dg-nav-h)+24px); }
.dg-aside-crd { background:var(--dg-ink); border-radius:var(--dg-r3); overflow:hidden; }
.dg-aside-img img { width:100%; height:86px; object-fit:cover; opacity:.2; display:block; }
.dg-aside-bd { padding:1.2rem; }
.dg-aside-nm { font-size:.44rem; font-weight:700; text-transform:uppercase; letter-spacing:.14em; color:rgba(246,245,243,.2); margin-bottom:.2rem; }
.dg-aside-rt { font-family:var(--dg-fh); font-size:.92rem; font-weight:700; color:var(--dg-violet3); margin-bottom:.8rem; }
/* Other service links on light bg - use dim muted color! */
.dg-other-h { font-size:.44rem; font-weight:700; text-transform:uppercase; letter-spacing:.2em; color:var(--dg-mid); margin:1.4rem 0 .5rem; }
.dg-other-lk { display:flex; align-items:center; gap:.38rem; font-size:.8rem; color:var(--dg-dim); padding:.34rem 0; border-bottom:1px solid var(--dg-ash2); transition:color .14s; }
.dg-other-lk:hover { color:var(--dg-violet); }

/* ============================================================
   BUILDER
   ============================================================ */
.dg-build-wrap { max-width:var(--dg-max); margin:0 auto; padding:4rem 2.5rem 8rem; display:grid; grid-template-columns:1fr 270px; gap:4rem; align-items:start; }
.dg-bld-sec { margin-bottom:2.4rem; }
.dg-bld-lbl { display:block; font-family:var(--dg-fb); font-size:.5rem; font-weight:700; text-transform:uppercase; letter-spacing:.2em; color:var(--dg-violet); margin-bottom:.9rem; }
.dg-pick { background:var(--dg-white); border:1.5px solid var(--dg-ash2); border-radius:var(--dg-r2); padding:.78rem 1rem; display:flex; align-items:center; gap:.65rem; cursor:pointer; user-select:none; transition:var(--dg-ease); margin-bottom:.4rem; }
.dg-pick:hover { border-color:var(--dg-violet); }
.dg-pick.dg-picked { border-color:var(--dg-violet); background:var(--dg-violett); }
.dg-pick-box { width:16px; height:16px; border:1.5px solid var(--dg-ash3); border-radius:var(--dg-r); flex-shrink:0; transition:var(--dg-ease); }
.dg-pick.dg-picked .dg-pick-box { background:var(--dg-violet); border-color:var(--dg-violet); }
.dg-pick-nm { font-size:.84rem; color:var(--dg-dim); flex:1; }
.dg-pick.dg-picked .dg-pick-nm { color:var(--dg-ink); font-weight:600; }
.dg-pick-pr { font-size:.7rem; font-weight:700; color:var(--dg-violet); }
.dg-adn-wrap { display:flex; flex-wrap:wrap; gap:.4rem; }
.dg-adn-chip { background:var(--dg-white); border:1.5px solid var(--dg-ash2); border-radius:var(--dg-r2); padding:.46rem .88rem; cursor:pointer; user-select:none; transition:var(--dg-ease); }
.dg-adn-chip:hover { border-color:var(--dg-violet); }
.dg-adn-chip.dg-chip-on { border-color:var(--dg-violet); background:var(--dg-violett); }
.dg-chip-nm { font-size:.8rem; font-weight:600; color:var(--dg-dim); }
.dg-adn-chip.dg-chip-on .dg-chip-nm { color:var(--dg-ink); }
.dg-chip-pr { font-size:.58rem; color:var(--dg-dim); }
.dg-adn-chip.dg-chip-on .dg-chip-pr { color:var(--dg-violet); }
.dg-hrs-box { background:var(--dg-white); border:1.5px solid var(--dg-ash2); border-radius:var(--dg-r2); padding:.9rem 1rem; }
.dg-hrs-hd { display:flex; justify-content:space-between; align-items:center; margin-bottom:.5rem; }
.dg-hrs-lbl { font-size:.84rem; color:var(--dg-dim); }
.dg-hrs-val { font-family:var(--dg-fh); font-size:2rem; font-weight:800; color:var(--dg-violet); line-height:1; }
.dg-hrs-slider { -webkit-appearance:none; width:100%; height:3px; background:var(--dg-ash2); border-radius:2px; cursor:pointer; }
.dg-hrs-slider::-webkit-slider-thumb { -webkit-appearance:none; width:18px; height:18px; border-radius:50%; background:var(--dg-violet); cursor:pointer; }
.dg-hrs-note { font-size:.64rem; color:var(--dg-mid); margin-top:.4rem; }
.dg-receipt { background:var(--dg-ink); border-radius:var(--dg-r3); overflow:hidden; position:sticky; top:calc(var(--dg-nav-h)+24px); }
.dg-receipt-top { background:rgba(255,255,255,.04); padding:.82rem 1.1rem; border-bottom:1px solid rgba(255,255,255,.06); }
.dg-receipt-lbl { font-size:.46rem; font-weight:700; text-transform:uppercase; letter-spacing:.16em; color:rgba(246,245,243,.2); }
.dg-receipt-lines { padding:.8rem 1.1rem; min-height:56px; }
.dg-receipt-empty { font-size:.74rem; color:rgba(246,245,243,.18); font-style:italic; }
.dg-receipt-ln { display:flex; justify-content:space-between; gap:.5rem; font-size:.74rem; margin-bottom:.35rem; }
.dg-receipt-lnm { color:rgba(246,245,243,.32); }
.dg-receipt-lpr { font-weight:700; color:rgba(246,245,243,.7); }
.dg-receipt-foot { border-top:1px solid rgba(255,255,255,.06); padding:.82rem 1.1rem; }
.dg-receipt-tot { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:.82rem; }
.dg-receipt-totl { font-size:.44rem; font-weight:700; text-transform:uppercase; letter-spacing:.12em; color:rgba(246,245,243,.2); }
.dg-receipt-totv { font-family:var(--dg-fh); font-size:2.5rem; font-weight:900; color:var(--dg-violet3); line-height:1; letter-spacing:-.05em; }
.dg-receipt-go { display:block; width:100%; background:var(--dg-violet); color:white; font-family:var(--dg-fb); font-size:.86rem; font-weight:700; padding:.74rem; border-radius:var(--dg-r2); border:none; cursor:pointer; transition:background .14s; }
.dg-receipt-go:hover:not(:disabled) { background:var(--dg-violet2); }
.dg-receipt-go:disabled { opacity:.22; cursor:not-allowed; }

/* ============================================================
   CHECKOUT
   ============================================================ */
.dg-co-wrap { max-width:840px; margin:0 auto; padding:5rem 2.5rem; display:grid; grid-template-columns:1fr 240px; gap:4rem; align-items:start; }
.dg-fg { margin-bottom:.62rem; }
.dg-fl { display:block; font-size:.48rem; font-weight:700; text-transform:uppercase; letter-spacing:.12em; color:var(--dg-mid); margin-bottom:.26rem; }
.dg-fi { width:100%; background:var(--dg-white); border:1.5px solid var(--dg-ash2); border-radius:var(--dg-r2); padding:.62rem .9rem; color:var(--dg-ink); font-size:.9rem; transition:border-color .15s; }
.dg-fi:focus { outline:none; border-color:var(--dg-violet); box-shadow:0 0 0 3px var(--dg-violett); }
.dg-fi::placeholder { color:var(--dg-ash3); }
.dg-agree { display:flex; align-items:flex-start; gap:.5rem; font-size:.8rem; color:var(--dg-dim); margin:.88rem 0; line-height:1.6; }
.dg-agree input { margin-top:.12rem; accent-color:var(--dg-violet); }
.dg-agree a { color:var(--dg-violet); }
.dg-co-sum { background:var(--dg-ink); border-radius:var(--dg-r3); overflow:hidden; position:sticky; top:calc(var(--dg-nav-h)+24px); }
.dg-co-sum-hd { background:rgba(255,255,255,.04); padding:.7rem 1rem; border-bottom:1px solid rgba(255,255,255,.07); }
.dg-co-sum-hl { font-size:.46rem; font-weight:700; text-transform:uppercase; letter-spacing:.16em; color:rgba(246,245,243,.2); }
.dg-co-sum-bd { padding:.84rem 1rem; }
.dg-co-ln { display:flex; justify-content:space-between; gap:1rem; font-size:.74rem; margin-bottom:.35rem; }
.dg-co-lnm { color:rgba(246,245,243,.32); }
.dg-co-lpr { font-weight:700; color:rgba(246,245,243,.7); }
.dg-co-div { border:none; border-top:1px solid rgba(255,255,255,.07); margin:.5rem 0; }
.dg-co-tot { display:flex; justify-content:space-between; align-items:flex-end; }
.dg-co-totl { font-size:.44rem; font-weight:700; text-transform:uppercase; letter-spacing:.12em; color:rgba(246,245,243,.2); }
.dg-co-totv { font-family:var(--dg-fh); font-size:2rem; font-weight:900; color:var(--dg-violet3); line-height:1; }

/* ============================================================
   PAGECAP
   ============================================================ */
.dg-pagecap { text-align:center; padding:6rem 2.5rem 5rem; background:var(--dg-stone); position:relative; overflow:hidden; }
.dg-pagecap::before { content:''; position:absolute; inset:0; background-image:radial-gradient(circle,var(--dg-ash2) 1px,transparent 1px); background-size:32px 32px; opacity:.4; }
.dg-pagecap::after { content:''; position:absolute; bottom:0; left:0; right:0; height:2px; background:linear-gradient(to right,transparent,var(--dg-violet),transparent); }
.dg-pagecap-tag { font-family:var(--dg-fb); font-size:.5rem; font-weight:700; text-transform:uppercase; letter-spacing:.28em; color:var(--dg-violet); background:var(--dg-violett); border:1px solid rgba(109,40,217,.2); padding:.2rem .72rem; border-radius:100px; display:inline-block; margin-bottom:.8rem; position:relative; }
.dg-pagecap h1 { max-width:16ch; margin:0 auto; color:var(--dg-ink); position:relative; font-size:clamp(2.4rem,5vw,6rem); }
.dg-pagecap-sub { color:var(--dg-dim); max-width:50ch; margin:.6rem auto 0; font-size:.92rem; position:relative; }

/* ============================================================
   LEGAL + RESULT
   ============================================================ */
.dg-legal { max-width:800px; margin:0 auto; padding:5.5rem 2.5rem 8rem; }
.dg-legal h2 { font-family:var(--dg-fh); font-size:1rem; color:var(--dg-violet); margin:2.8rem 0 .5rem; }
.dg-legal h3 { font-family:var(--dg-fh); font-size:.92rem; color:var(--dg-ink); margin:1.4rem 0 .3rem; }
.dg-legal p { margin-bottom:.88rem; font-size:.88rem; }
.dg-legal ul { padding-left:1.2rem; margin:.4rem 0 .88rem; }
.dg-legal li { font-size:.88rem; list-style:disc; color:var(--dg-dim); line-height:1.72; margin-bottom:.26rem; }
.dg-legal a { color:var(--dg-violet); }
.dg-legal table { width:100%; border-collapse:collapse; font-size:.82rem; margin:.88rem 0 1.2rem; }
.dg-legal th { background:var(--dg-ash); color:var(--dg-ink); padding:.5rem .9rem; text-align:left; font-size:.58rem; text-transform:uppercase; letter-spacing:.06em; border:1px solid var(--dg-ash2); }
.dg-legal td { padding:.5rem .9rem; border:1px solid var(--dg-ash2); color:var(--dg-dim); }
.dg-legal address { background:var(--dg-violett); border-left:3px solid var(--dg-violet); padding:.88rem 1.1rem; font-size:.86rem; color:var(--dg-violet2); line-height:1.86; margin:.88rem 0; border-radius:0 var(--dg-r) var(--dg-r) 0; }
.dg-legal-eff { display:inline-block; font-size:.68rem; color:var(--dg-mid); background:var(--dg-ash); border:1px solid var(--dg-ash2); padding:.24rem .7rem; border-radius:100px; margin-bottom:1.5rem; }
.dg-result { min-height:74vh; display:flex; align-items:center; justify-content:center; text-align:center; padding:calc(var(--dg-nav-h)+4rem) 2.5rem 5rem; }

/* ============================================================
   BUTTONS
   ============================================================ */
.dg-btn-violet { display:inline-flex; align-items:center; gap:.4rem; font-family:var(--dg-fb); font-size:.9rem; font-weight:700; color:white; background:var(--dg-violet); padding:.72rem 1.9rem; border-radius:100px; transition:background .14s; border:none; cursor:pointer; white-space:nowrap; }
.dg-btn-violet:hover { background:var(--dg-violet2); }
.dg-btn-dark { display:inline-flex; align-items:center; gap:.4rem; font-family:var(--dg-fb); font-size:.9rem; font-weight:700; color:white; background:var(--dg-ink); padding:.72rem 1.9rem; border-radius:100px; transition:background .14s; border:none; cursor:pointer; white-space:nowrap; }
.dg-btn-dark:hover { background:var(--dg-dark); }
.dg-btn-outline { display:inline-flex; align-items:center; gap:.4rem; font-family:var(--dg-fb); font-size:.9rem; font-weight:700; color:var(--dg-ink); background:transparent; padding:.7rem 1.8rem; border-radius:100px; border:1.5px solid var(--dg-ash2); transition:var(--dg-ease); white-space:nowrap; }
.dg-btn-outline:hover { border-color:var(--dg-ink); }
/* Ghost on dark bg */
.dg-btn-gw { display:inline-flex; align-items:center; gap:.4rem; font-family:var(--dg-fb); font-size:.9rem; font-weight:700; color:rgba(246,245,243,.6); background:transparent; padding:.7rem 1.8rem; border-radius:100px; border:1.5px solid rgba(246,245,243,.18); transition:border-color .14s; white-space:nowrap; }
.dg-btn-gw:hover { border-color:rgba(246,245,243,.6); }

/* ============================================================
   CTA BAND
   ============================================================ */
.dg-cta-band { background:var(--dg-ink); }
.dg-cta-in { max-width:var(--dg-max); margin:0 auto; padding:9rem 2.5rem; text-align:center; }
.dg-cta-in h2 { color:var(--dg-stone); margin-bottom:.6rem; }
.dg-cta-in p { color:rgba(246,245,243,.35); margin-bottom:2rem; max-width:40ch; margin-left:auto; margin-right:auto; font-size:.96rem; }
.dg-cta-row { display:flex; gap:.7rem; justify-content:center; flex-wrap:wrap; }

/* ============================================================
   COOKIE + CHAT
   ============================================================ */
.dg-ck-bar { position:fixed; bottom:0; left:0; right:0; background:var(--dg-ink); border-top:2px solid var(--dg-violet); z-index:9999; padding:.9rem 2rem; display:none; gap:1rem; align-items:center; justify-content:space-between; flex-wrap:wrap; }
.dg-ck-bar p { font-size:.78rem; color:rgba(246,245,243,.4); margin:0; }
.dg-ck-bar a { color:var(--dg-violet3); }
.dg-ck-btns { display:flex; gap:.4rem; flex-shrink:0; }
.dg-ck-yes { background:var(--dg-violet); color:white; font-size:.76rem; font-weight:700; padding:.38rem .92rem; border:none; border-radius:100px; cursor:pointer; }
.dg-ck-no  { background:transparent; color:rgba(246,245,243,.3); font-size:.76rem; padding:.38rem .92rem; border:1px solid rgba(246,245,243,.14); border-radius:100px; cursor:pointer; }
.dg-chat-fab { position:fixed; bottom:4.5rem; right:1.5rem; z-index:9990; width:50px; height:50px; background:var(--dg-violet); border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 20px rgba(109,40,217,.4); cursor:pointer; border:none; transition:var(--dg-ease); }
.dg-chat-fab:hover { background:var(--dg-violet2); transform:scale(1.06); }
.dg-chatpop { position:fixed; bottom:7.5rem; right:1.5rem; z-index:9989; width:268px; background:var(--dg-white); border:1px solid var(--dg-ash2); border-radius:var(--dg-r3); box-shadow:var(--dg-sh2); opacity:0; pointer-events:none; transform:translateY(8px) scale(.97); transition:opacity .2s,transform .22s; overflow:hidden; }
.dg-chatpop.dg-cp-on { opacity:1; pointer-events:auto; transform:none; }
.dg-chatpop-hd { background:var(--dg-violet); padding:.88rem 1rem; display:flex; align-items:center; justify-content:space-between; }
.dg-chatpop-nm { font-family:var(--dg-fh); font-size:.84rem; font-weight:700; color:white; }
.dg-chatpop-sub { font-size:.54rem; color:rgba(255,255,255,.55); }
.dg-chatpop-x { color:rgba(255,255,255,.6); }
.dg-chatpop-bd { padding:.88rem; }
.dg-chat-done { display:none; text-align:center; padding:.7rem; font-size:.82rem; color:var(--dg-violet); font-weight:700; }
.dg-chat-inp { width:100%; background:var(--dg-stone); border:1px solid var(--dg-ash2); border-radius:var(--dg-r2); padding:.44rem .76rem; font-size:.8rem; color:var(--dg-ink); margin-bottom:.36rem; resize:none; }
.dg-chat-send { width:100%; background:var(--dg-violet); color:white; font-size:.78rem; font-weight:700; padding:.46rem; border-radius:var(--dg-r2); border:none; cursor:pointer; }

/* ============================================================
   FOOTER (MINIMAL 2-COL - different from all previous!)
   ============================================================ */
.dg-foot { background:var(--dg-stone); border-top:1px solid var(--dg-ash2); }
.dg-foot-top { max-width:var(--dg-max); margin:0 auto; padding:4rem 2.5rem 2.5rem; display:grid; grid-template-columns:1.2fr 1fr 1fr 1fr; gap:3rem; }
.dg-foot-logo { font-family:var(--dg-fh); font-size:.78rem; font-weight:900; color:var(--dg-ink); text-transform:uppercase; letter-spacing:.06em; margin-bottom:.3rem; }
.dg-foot-logo em { color:var(--dg-violet); font-style:normal; }
.dg-foot-tag { font-size:.72rem; color:var(--dg-mid); max-width:26ch; line-height:1.72; margin-bottom:.7rem; }
.dg-foot-soc { display:flex; gap:.4rem; }
.dg-foot-soc a { width:30px; height:30px; border:1px solid var(--dg-ash2); border-radius:var(--dg-r2); display:flex; align-items:center; justify-content:center; color:var(--dg-mid); transition:var(--dg-ease); }
.dg-foot-soc a:hover { border-color:var(--dg-violet); color:var(--dg-violet); }
.dg-foot-col-h { font-size:.44rem; font-weight:700; letter-spacing:.24em; text-transform:uppercase; color:var(--dg-ash3); margin-bottom:.8rem; }
.dg-foot-links { display:flex; flex-direction:column; gap:.4rem; }
.dg-foot-links a { font-size:.78rem; color:var(--dg-mid); transition:color .14s; }
.dg-foot-links a:hover { color:var(--dg-violet); }
.dg-foot-ct a { display:flex; align-items:flex-start; gap:.42rem; font-size:.76rem; color:var(--dg-mid); transition:color .14s; margin-bottom:.5rem; }
.dg-foot-ct a:hover { color:var(--dg-violet); }
.dg-foot-ct svg { flex-shrink:0; color:var(--dg-ash3); margin-top:.04rem; }
.dg-foot-btm { border-top:1px solid var(--dg-ash2); max-width:var(--dg-max); margin:0 auto; padding:1.3rem 2.5rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.dg-foot-copy { font-size:.58rem; color:var(--dg-ash3); }
.dg-foot-leg { display:flex; gap:1.1rem; flex-wrap:wrap; }
.dg-foot-leg a { font-size:.58rem; color:var(--dg-mid); transition:color .14s; }
.dg-foot-leg a:hover { color:var(--dg-violet); }

/* ============================================================
   ANIMATIONS
   ============================================================ */
.dg-rise { opacity:0; transform:translateY(16px); transition:opacity .52s ease,transform .52s ease; }
.dg-rise.dg-vis { opacity:1; transform:none; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1024px) {
  .dg-nav-links,.dg-nav-cta-area { display:none; }
  .dg-mob-ham { display:flex; }
  .dg-bento { grid-template-columns:1fr; }
  .dg-bento-lrg { grid-row:auto; min-height:320px; }
  .dg-svc-row-item { grid-template-columns:40px 1fr auto; }
  .dg-svc-row-p { display:none; }
  .dg-faq-stag { grid-template-columns:1fr; }
  .dg-faq-col:nth-child(2) { margin-top:0; }
  .dg-pkg-grid { grid-template-columns:1fr 1fr; gap:1rem; background:none; }
  .dg-pkg-crd { border:1px solid var(--dg-ash2); border-radius:var(--dg-r3); }
  .dg-svc-layout,.dg-build-wrap,.dg-co-wrap { grid-template-columns:1fr; }
  .dg-foot-top { grid-template-columns:1fr 1fr; gap:2rem; }
  .dg-hero-stats { gap:2rem; }
}
@media (max-width:640px) {
  .dg-shell { padding:0 1.4rem; }
  .dg-slab { padding:5rem 0; }
  .dg-pkg-grid { grid-template-columns:1fr; }
  .dg-hero-stats { flex-wrap:wrap; gap:1.5rem; }
  .dg-foot-top { grid-template-columns:1fr; }
  .dg-build-wrap,.dg-co-wrap { padding:3rem 1.4rem 5rem; }
  .dg-cta-in { padding:5rem 1.4rem; }
  .dg-nav-inner { padding:0 1.4rem; }
  .dg-proc-p { padding-left:1.5rem; }
}
