/* ==========================================================================
   Digidrom — Main stylesheet (non-critical, async-loaded)
   Design tokens are declared in critical.css (inline). Here we style the
   non-above-the-fold regions, components, and utilities.
   ========================================================================== */

body{font-family:var(--dd-font);position:relative}
/* Subtle grain overlay — adds premium texture */
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:999;opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .6 0'/></filter><rect width='120' height='120' filter='url(%23n)'/></svg>");transform:translateZ(0);will-change:transform}

/* Icon sizing inside nav buttons */
.dd-nav__icon{flex-shrink:0;opacity:.75;width:16px;height:16px;transition:opacity .2s,transform .25s;stroke:#fff}
.dd-nav__link:hover .dd-nav__icon{opacity:1;transform:rotate(-4deg) scale(1.1)}
.dd-nav__item.is-active .dd-nav__link .dd-nav__icon{opacity:1;stroke:#0a1830}
.dd-nav__caret{opacity:.65;transition:transform .25s,opacity .2s;margin-left:2px}
.dd-nav__link:hover .dd-nav__caret,.dd-nav__item.has-submenu:hover .dd-nav__caret{opacity:1;transform:rotate(180deg)}

/* Submenu — base hard resets + hidden by default on every viewport ------
   These apply at all widths so the markup is never rendered as a naked
   browser-default <ul>, even during CSS parse races or stale caches. */
.dd-submenu{list-style:none;margin:0;padding:0;display:none}
.dd-submenu li{list-style:none;margin:0;padding:0}
.dd-submenu a{text-decoration:none}
.dd-nav__item.has-submenu{position:relative}

/* Cursor-sticky guard: after navigating via a parent link, the browser may
   keep :hover active on the same pill on the new page and re-open the
   submenu instantly. We force it hidden until the user moves, taps,
   scrolls or presses a key. See main.js `dd-nav-quiet` handler. */
html.dd-nav-quiet .dd-submenu{
    display:none !important;opacity:0 !important;visibility:hidden !important;pointer-events:none !important;
    transition:none !important;
}

/* Desktop: dropdown with orange border, slide-down on hover/focus ------- */
@media (min-width:992px){
    /* Narrow hover bridge — just covers the gap without crossing siblings. */
    .dd-nav__item.has-submenu::after{
        content:"";position:absolute;top:100%;left:0;right:0;height:14px;
        z-index:49;pointer-events:none;
    }
    .dd-nav__item.has-submenu:hover::after{pointer-events:auto}
    .dd-submenu{
        display:block; /* so opacity/transform transitions work */
        position:absolute;top:calc(100% + 12px);left:50%;transform:translateX(-50%) translateY(-8px);
        min-width:260px;padding:8px;
        background:var(--dd-surface);border:1.5px solid var(--dd-primary);border-radius:18px;
        box-shadow:0 24px 48px rgba(0,0,0,.45),0 0 0 4px color-mix(in srgb,var(--dd-primary) 18%,transparent);
        opacity:0;visibility:hidden;pointer-events:none;
        transition:opacity .18s ease,transform .22s cubic-bezier(.2,.8,.2,1),visibility 0s linear .18s;
        z-index:50;
    }
    .dd-submenu::before{
        content:"";position:absolute;left:50%;top:-8px;transform:translateX(-50%) rotate(45deg);
        width:14px;height:14px;background:var(--dd-surface);
        border-left:1.5px solid var(--dd-primary);border-top:1.5px solid var(--dd-primary);
        border-top-left-radius:3px;
    }
    .dd-nav__item.has-submenu:hover .dd-submenu,
    .dd-nav__item.has-submenu.is-open .dd-submenu{
        opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0);
        transition:opacity .22s ease,transform .28s cubic-bezier(.2,.8,.2,1),visibility 0s;
    }
    .dd-submenu li{opacity:0;transform:translateY(-8px);transition:opacity .25s ease,transform .3s cubic-bezier(.2,.8,.2,1)}
    .dd-nav__item.has-submenu:hover .dd-submenu li,
    .dd-nav__item.has-submenu.is-open .dd-submenu li{opacity:1;transform:none}
    .dd-submenu li:nth-child(1){transition-delay:.04s}
    .dd-submenu li:nth-child(2){transition-delay:.08s}
    .dd-submenu li:nth-child(3){transition-delay:.12s}
    .dd-submenu li:nth-child(4){transition-delay:.16s}
    .dd-submenu li:nth-child(5){transition-delay:.20s}
    .dd-submenu li:nth-child(6){transition-delay:.24s}
    .dd-submenu li:nth-child(n+7){transition-delay:.28s}
    .dd-submenu a{
        display:block;padding:.7rem 1rem;border-radius:12px;color:var(--dd-fg);font-size:.92rem;
        font-weight:500;transition:background .2s,color .2s,padding .2s;
    }
    .dd-submenu a:hover,.dd-submenu a:focus-visible{
        background:color-mix(in srgb,var(--dd-primary) 18%,transparent);
        color:var(--dd-primary);padding-left:1.25rem;
    }
    /* Current page highlight inside the submenu */
    .dd-submenu li.is-active a{
        background:var(--dd-grad);color:#0a1830;font-weight:700;
        box-shadow:0 6px 16px rgba(249,115,22,.45);
    }
    .dd-submenu li.is-active a:hover,.dd-submenu li.is-active a:focus-visible{
        color:#0a1830;padding-left:1rem;
    }
}

/* Mobile: inline expand under parent, toggled via `.is-open` from JS ----- */
@media (max-width:991px){
    .dd-nav__item.has-submenu.is-open .dd-submenu{
        display:block;margin:.25rem 0 .25rem .75rem;padding:0 0 0 .75rem;
        border-left:2px solid var(--dd-primary);
    }
    .dd-submenu a{display:block;padding:.55rem .75rem;border-radius:10px;color:var(--dd-muted);font-size:.9rem}
    .dd-submenu a:hover{color:var(--dd-primary);background:color-mix(in srgb,var(--dd-primary) 14%,transparent)}
    .dd-submenu li.is-active a{color:var(--dd-primary);background:color-mix(in srgb,var(--dd-primary) 18%,transparent);font-weight:700}
    .dd-nav__item.has-submenu .dd-nav__caret{margin-left:auto;transition:transform .25s}
    .dd-nav__item.has-submenu.is-open .dd-nav__caret{transform:rotate(180deg)}
}

/* Collapse icons on medium screens to prevent crowding, keep labels readable */
@media (min-width:992px) and (max-width:1199px){
    .dd-nav__icon{display:none}
    .dd-nav__link{padding:10px 14px;font-size:.88rem}
}

/* Headings ---------------------------------------------------------------- */
h1,h2,h3,h4,h5,h6{font-family:var(--dd-font-display);font-weight:800;line-height:1.08;letter-spacing:-.028em;color:var(--dd-fg);margin:0 0 .75rem;text-wrap:balance}
h1{font-size:clamp(2.2rem,4.5vw + .5rem,4.2rem);letter-spacing:-.035em;font-weight:800}
h2{font-size:clamp(1.8rem,2.6vw + .8rem,3rem);letter-spacing:-.03em;font-weight:800}
h3{font-size:clamp(1.25rem,1.2vw + .7rem,1.75rem);letter-spacing:-.02em;font-weight:700}
h4,h5,h6{font-weight:700;letter-spacing:-.015em}
p{margin:0 0 1rem;color:var(--dd-muted);line-height:1.7}
::selection{background:var(--dd-primary);color:#0a1830}

/* Section scaffolding ----------------------------------------------------- */
.dd-section{padding:clamp(48px,8vw,160px) 0;position:relative;contain:layout style}
.dd-section--tight{padding:clamp(40px,5vw,96px) 0}
.dd-section--flush-top{padding-top:clamp(16px,2vw,36px)}
.dd-section__head{max-width:780px;margin:0 auto clamp(2rem,3vw,4rem);text-align:center}
.dd-section__eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:var(--dd-font-display);font-weight:700;font-size:.75rem;letter-spacing:.22em;text-transform:uppercase;color:var(--dd-primary);padding:8px 18px;border-radius:99px;background:color-mix(in srgb,var(--dd-primary) 12%,transparent);border:1px solid color-mix(in srgb,var(--dd-primary) 22%,transparent);margin-bottom:1.25rem}
.dd-section__eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px color-mix(in srgb,currentColor 30%,transparent)}
.dd-section__title{margin:0 0 1rem;font-weight:800;background:linear-gradient(90deg,var(--dd-primary) 0%,#fff 60%);-webkit-background-clip:text;background-clip:text;color:transparent}
.dd-section__lead{font-size:clamp(1.02rem,.35vw + .9rem,1.2rem);color:var(--dd-muted);margin:0 auto;max-width:58ch;line-height:1.65}

/* Grid helpers ------------------------------------------------------------ */
.dd-grid{display:grid;gap:clamp(16px,2vw,28px)}
.dd-grid--2{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}
.dd-grid--3{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}
.dd-grid--4{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));justify-items:center}

/* Cards ------------------------------------------------------------------- */
.dd-card{position:relative;background:var(--dd-surface);border:1px solid var(--dd-border);border-radius:var(--dd-radius);padding:1.75rem;overflow:hidden;transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s,border-color .3s;isolation:isolate;contain:layout style paint}
.dd-card--blog{border:1px solid color-mix(in srgb,var(--dd-primary) 55%,transparent)}
.dd-card--blog:hover{border-color:var(--dd-primary)}
/* Animated gradient outline on hover (pure CSS, no JS) */
.dd-card::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.5px;background:var(--dd-grad);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .4s;pointer-events:none;z-index:2}
/* Soft radial glow that follows hover (uses CSS custom props set by JS optionally) */
.dd-card::after{content:"";position:absolute;inset:0;background:radial-gradient(400px circle at var(--mx,50%) var(--my,-20%),color-mix(in srgb,var(--dd-accent) 14%,transparent),transparent 50%);opacity:0;transition:opacity .4s;pointer-events:none;z-index:1}
.dd-card>*{position:relative;z-index:3}
.dd-card:hover{transform:translateY(-10px);box-shadow:var(--dd-shadow-lg);border-color:transparent}
.dd-card:hover::before,.dd-card:hover::after{opacity:1}
.dd-card__icon{width:60px;height:60px;border-radius:16px;display:grid;place-items:center;background:var(--dd-grad);color:#fff;margin-bottom:1.25rem;box-shadow:0 10px 24px rgba(249,115,22,.32);transition:transform .5s cubic-bezier(.2,.8,.2,1);font-size:1.35rem;font-weight:700}
.dd-card:hover .dd-card__icon{transform:rotate(-8deg) scale(1.08) translateY(-2px)}
.dd-card__title{font-size:1.22rem;margin:0 0 .5rem;letter-spacing:-.005em}
.dd-card__text{color:var(--dd-muted);margin:0}
.dd-card__link{display:inline-flex;align-items:center;gap:6px;margin-top:1rem;font-weight:600;color:var(--dd-primary);font-size:.92rem}
.dd-card__link svg{transition:transform .25s}
.dd-card__link:hover svg{transform:translateX(4px)}
.dd-card__meta{display:inline-block;font-size:.8rem;color:var(--dd-muted);letter-spacing:.08em;text-transform:uppercase;font-weight:600}

/* Light-interior card variant — for use on dark sections where a contrast
   break is desired (e.g. services on homepage). */
.dd-card--light{background:#f8fafc;border-color:rgba(10,24,48,.08);color:#0a1830;box-shadow:0 8px 24px rgba(10,24,48,.18)}
.dd-card--light .dd-card__title{color:#0a1830}
.dd-card--light .dd-card__text{color:#475569}
.dd-card--light .dd-card__link{color:var(--dd-primary)}
.dd-card--light:hover{box-shadow:0 24px 48px rgba(10,24,48,.28)}
.dd-card--light::after{background:radial-gradient(400px circle at var(--mx,50%) var(--my,-20%),color-mix(in srgb,var(--dd-primary) 10%,transparent),transparent 50%)}

/* Stacked full-width list (e.g. services on homepage) ------------------- */
.dd-stack{display:flex;flex-direction:column;gap:clamp(14px,1.6vw,22px)}
.dd-stack>*{width:100%}

/* Row-oriented card: icon left, body middle, cta right ------------------ */
.dd-card--row{display:flex;align-items:center;gap:clamp(18px,2.5vw,32px);padding:clamp(1.25rem,1.6vw,1.75rem) clamp(1.5rem,2vw,2.25rem)}
.dd-card--row .dd-card__icon{margin-bottom:0;width:56px;height:56px;border-radius:14px;font-size:1.2rem;flex-shrink:0}
.dd-card__thumb{position:relative;flex-shrink:0;width:clamp(120px,14vw,170px);aspect-ratio:4/3;border-radius:16px;overflow:hidden;display:block;box-shadow:0 8px 20px rgba(10,24,48,.25)}
.dd-card__thumb img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.dd-card--row:hover .dd-card__thumb img{transform:scale(1.06)}
.dd-card__thumb-badge{position:absolute;right:10px;bottom:10px;width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:var(--dd-grad);color:#fff;font-size:1rem;box-shadow:0 6px 16px rgba(249,115,22,.45)}
@media (max-width:640px){.dd-card__thumb{width:100%;aspect-ratio:16/9}}
.dd-card--row .dd-card__body{flex:1;min-width:0}
.dd-card--row .dd-card__title{margin:0 0 .25rem}
.dd-card--row .dd-card__text{margin:0}
.dd-card--row .dd-card__link--cta{margin-top:0;flex-shrink:0;white-space:nowrap}
.dd-card--row .dd-card__link--cta svg{transition:transform .25s}
.dd-card--row:hover .dd-card__link--cta svg{transform:translateX(4px)}
.dd-card__tags{display:flex;flex-wrap:wrap;gap:6px;margin:.75rem 0 0;padding:0;list-style:none}
.dd-card__tags li{display:inline-flex;align-items:center;padding:.3rem .7rem;border-radius:99px;font-size:.78rem;font-weight:600;background:color-mix(in srgb,var(--dd-primary) 12%,transparent);color:var(--dd-primary);border:1px solid color-mix(in srgb,var(--dd-primary) 22%,transparent);letter-spacing:.01em;white-space:nowrap}
.dd-card--light .dd-card__tags li{background:color-mix(in srgb,var(--dd-primary) 10%,#fff);border-color:color-mix(in srgb,var(--dd-primary) 22%,transparent)}

/* Service card — modern polish on /services list ------------------------ */
.dd-card--row{transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s,border-color .3s}
.dd-card--row:hover{transform:translateY(-6px)}
.dd-card--row .dd-card__thumb{border:2px solid var(--dd-primary);box-shadow:0 10px 26px rgba(249,115,22,.28)}
.dd-card--row .dd-card__thumb::after{
    content:"";position:absolute;inset:0;border-radius:inherit;
    background:linear-gradient(180deg,transparent 55%,rgba(10,24,48,.55) 100%);
    opacity:.55;transition:opacity .4s;pointer-events:none
}
.dd-card--row:hover .dd-card__thumb::after{opacity:.2}
.dd-card--row .dd-card__thumb-badge{transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.dd-card--row:hover .dd-card__thumb-badge{transform:rotate(-8deg) scale(1.08)}

/* Service-detail hero image with orange border -------------------------- */
.dd-hero-figure{
    position:relative;margin:0 0 30px;width:100%;max-width:none;border-radius:20px;overflow:hidden;
    border:2px solid var(--dd-primary);
    box-shadow:0 16px 40px rgba(0,0,0,.4),0 0 0 5px color-mix(in srgb,var(--dd-primary) 14%,transparent);
    aspect-ratio:21/9;background:var(--dd-surface);
}
.dd-hero-figure img{width:100%;height:100%;object-fit:cover;transition:transform 12s ease-out}
.dd-hero-figure:hover img{transform:scale(1.05)}
.dd-hero-figure__badge{
    position:absolute;right:14px;bottom:14px;width:44px;height:44px;border-radius:14px;
    display:grid;place-items:center;background:var(--dd-grad);color:#fff;font-size:1.1rem;
    box-shadow:0 10px 22px rgba(249,115,22,.5);
}
@media (max-width:640px){.dd-hero-figure{aspect-ratio:16/9;margin-bottom:24px}.dd-hero-figure__badge{width:38px;height:38px;font-size:1rem;right:10px;bottom:10px}}

/* Service-detail inline CTA row — orange gradient + inverted text -------- */
.dd-detail-cta{
    position:relative;margin-top:3rem;padding:1.75rem 2rem;border-radius:var(--dd-radius);
    background:var(--dd-grad);background-size:200% 200%;
    border:0;overflow:hidden;isolation:isolate;
    display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;
    box-shadow:0 18px 40px rgba(249,115,22,.35),inset 0 1px 0 rgba(255,255,255,.3);
}
.dd-detail-cta::before{
    content:"";position:absolute;inset:0;z-index:-1;
    background:radial-gradient(circle at 18% 20%,rgba(255,255,255,.25),transparent 55%),
               radial-gradient(circle at 82% 80%,rgba(0,0,0,.18),transparent 55%);
}
.dd-detail-cta h3{margin:0 0 .35rem;font-size:1.25rem;color:#0a1830;font-weight:800;letter-spacing:-.01em}
.dd-detail-cta p{margin:0;color:rgba(10,24,48,.78);font-size:.95rem}
.dd-detail-cta .dd-btn{flex-shrink:0;background:#fff;color:#0a1830;box-shadow:0 10px 24px rgba(10,24,48,.28)}
.dd-detail-cta .dd-btn:hover{background:#0a1830;color:#fff;transform:translateY(-3px);box-shadow:0 16px 32px rgba(10,24,48,.45)}
@media (max-width:640px){
    .dd-card--row{flex-direction:column;align-items:flex-start;text-align:left}
    .dd-card--row .dd-card__link--cta{align-self:flex-start}
}

.dd-glass{background:color-mix(in srgb,var(--dd-bg) 60%,transparent);backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);border:1px solid var(--dd-border)}

/* Hero slider controls --------------------------------------------------- */
/* Core slider layout (.dd-hero__inner / __content / __pane) is inlined via
   critical.css so it lands with first paint and the panes never stack. */
/* Hero text on light/white — sits above the image + overlay. */
.dd-hero .dd-btn--primary,
.dd-hero .dd-btn--primary:hover{color:#fff}
.dd-hero .dd-btn--ghost{color:#fff}
.dd-hero .dd-btn{padding:.65rem 1.25rem;font-size:.8rem;gap:8px}
.dd-hero .dd-btn svg{width:14px;height:14px}
.dd-hero .dd-chip{color:#fff;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.18)}
.dd-hero__pane .dd-hero__title,.dd-hero__pane .dd-hero__lead{margin-bottom:1.25rem}
.dd-hero__pane .dd-hero__lead{margin-bottom:0}
.dd-hero__controls{position:absolute;left:0;right:0;bottom:32px;z-index:2;display:flex;justify-content:center;align-items:center;gap:16px;padding:0 clamp(16px,3vw,32px);pointer-events:none}
.dd-hero__controls>*{pointer-events:auto}
.dd-hero__arrow{width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:rgba(10,24,48,.4);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;cursor:pointer;display:grid;place-items:center;transition:background .2s,border-color .2s,transform .2s}
.dd-hero__arrow:hover{background:var(--dd-primary);border-color:transparent;transform:scale(1.06)}
.dd-hero__dots{display:flex;gap:4px;list-style:none;margin:0;padding:0;align-items:center}
.dd-hero__dot{width:10px;height:10px;padding:17px;box-sizing:content-box;border-radius:999px;border:0;background-color:rgba(255,255,255,.3);background-clip:content-box;cursor:pointer;transition:background-color .25s,width .25s;min-width:44px;min-height:44px}
.dd-hero__dot:hover{background-color:rgba(255,255,255,.55)}
.dd-hero__dot.is-active{background:var(--dd-grad);background-clip:content-box;width:28px}
@media (max-width:640px){.dd-hero__controls{bottom:20px;gap:10px}.dd-hero__arrow{width:38px;height:38px}}

/* Chips / trust badges --------------------------------------------------- */
.dd-hero__meta{margin-top:2.5rem;display:flex;gap:10px;flex-wrap:wrap}
.dd-chip{display:inline-flex;align-items:center;gap:8px;padding:.55rem 1rem;border-radius:99px;background:color-mix(in srgb,var(--dd-bg) 70%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--dd-border);color:var(--dd-fg);font-size:.82rem;font-weight:500;letter-spacing:.01em;box-shadow:0 2px 8px rgba(10,24,48,.04);transition:transform .2s,box-shadow .2s}
.dd-chip:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(10,24,48,.08)}
.dd-chip__dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}
.dd-chip__dot--pulse{position:relative}
.dd-chip__dot--pulse::after{content:"";position:absolute;inset:0;border-radius:50%;background:#f97316;animation:ddPulseRing 2s infinite;will-change:transform,opacity;pointer-events:none}
@keyframes ddPulseRing{0%{transform:scale(1);opacity:.55}70%{transform:scale(3.5);opacity:0}100%{transform:scale(3.5);opacity:0}}
@media (max-width:640px){
    .dd-hero .dd-btn{padding:.5rem .9rem;font-size:.7rem;gap:6px}
    .dd-hero .dd-btn svg{width:12px;height:12px}
    .dd-hero__cta{gap:8px;margin-top:1rem}
    .dd-hero__meta{margin-top:1.4rem;gap:6px}
    .dd-hero .dd-chip{padding:.32rem .65rem;font-size:.7rem;gap:6px;font-weight:500}
    .dd-hero .dd-chip__dot{width:6px;height:6px}
}

/* Stats ------------------------------------------------------------------- */
.dd-stat{text-align:center;padding:1.1rem .75rem;border-radius:var(--dd-radius-sm);background:var(--dd-surface);border:1px solid var(--dd-border);box-shadow:0 6px 18px rgba(0,0,0,.2);transition:transform .3s,border-color .3s,background .3s,box-shadow .3s}
.dd-stat:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--dd-primary) 40%,transparent);background:color-mix(in srgb,var(--dd-surface) 85%,var(--dd-primary) 15%);box-shadow:0 10px 24px rgba(0,0,0,.28)}
.dd-stat__value{font-family:var(--dd-font-display);font-size:clamp(1.4rem,1.8vw + .5rem,2.1rem);font-weight:900;line-height:1;background:var(--dd-grad);-webkit-background-clip:text;background-clip:text;color:transparent;margin:0 0 .3rem;letter-spacing:-.02em}
.dd-stat__label{color:var(--dd-muted);font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}

/* Project tiles ----------------------------------------------------------- */
.dd-tile{position:relative;border-radius:var(--dd-radius);overflow:hidden;aspect-ratio:4/3;background:var(--dd-surface);isolation:isolate;display:block}
.dd-tile img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.dd-tile:hover img{transform:scale(1.08)}
.dd-tile__body{position:absolute;inset:auto 0 0 0;padding:1.5rem;background:linear-gradient(to top,rgba(10,24,48,.92),rgba(10,24,48,0));color:#fff;transform:translateY(30%);transition:transform .4s}
.dd-tile:hover .dd-tile__body{transform:translateY(0)}
.dd-tile__cat{display:inline-block;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--dd-accent);margin-bottom:.35rem}
.dd-tile__title{font-size:1.1rem;margin:0 0 .25rem;color:#fff}
.dd-tile__text{color:rgba(255,255,255,.78);font-size:.88rem;margin:0}

/* Pills / filters --------------------------------------------------------- */
.dd-pills{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:2rem}
.dd-pill{padding:.55rem 1.1rem;border-radius:99px;border:1.5px solid var(--dd-border);font-size:.88rem;font-weight:500;color:var(--dd-muted);background:transparent;cursor:pointer;transition:all .2s;text-decoration:none}
.dd-pill.is-active,.dd-pill:hover{color:#fff;background:var(--dd-grad);border-color:transparent}

/* Testimonials ------------------------------------------------------------ */
.dd-testimonial{padding:1.25rem 1.35rem;border-radius:var(--dd-radius-sm);background:var(--dd-surface);border:1px solid var(--dd-border);position:relative;overflow:hidden;height:100%}
.dd-testimonial::before{content:"“";position:absolute;top:-30px;right:10px;font-family:serif;font-size:140px;line-height:1;color:var(--dd-border)}
.dd-testimonial__stars{color:#ffb703;font-size:.82rem;letter-spacing:1.5px;margin-bottom:.45rem}
.dd-testimonial__text{font-size:.88rem;color:var(--dd-fg);line-height:1.55;margin:0 0 .85rem;position:relative}
.dd-testimonial__who{display:flex;align-items:center;gap:10px}
.dd-testimonial__avatar{width:34px;height:34px;border-radius:50%;background:var(--dd-grad);display:grid;place-items:center;color:#fff;font-weight:700;overflow:hidden;flex-shrink:0;font-size:.85rem}
.dd-testimonial__avatar img{width:100%;height:100%;object-fit:cover}
.dd-testimonial__name{font-weight:600;margin:0;color:var(--dd-fg);font-size:.85rem;line-height:1.2}
.dd-testimonial__role{font-size:.72rem;color:var(--dd-muted);margin:0;line-height:1.3}

/* Contact info list ------------------------------------------------------- */
.dd-contact-list{list-style:none;padding:0;margin:1.5rem 0 0;display:grid;gap:1rem}
.dd-contact-item{display:flex;align-items:flex-start;gap:14px;padding:1.1rem 1.25rem}
.dd-contact-item__icon{flex-shrink:0;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--dd-primary) 14%,transparent);color:var(--dd-primary);border:1px solid color-mix(in srgb,var(--dd-primary) 22%,transparent)}
.dd-contact-item__body{display:flex;flex-direction:column;gap:.15rem;min-width:0}
.dd-contact-item__body strong{font-size:.85rem;font-weight:700;color:var(--dd-fg);letter-spacing:.02em}
.dd-contact-item__body a,.dd-contact-item__body span{color:var(--dd-muted);font-size:.95rem;word-break:break-word}
.dd-contact-item__body a:hover{color:var(--dd-primary)}

/* Form --------------------------------------------------------------------- */
.dd-form{display:grid;gap:1rem}
.dd-field{position:relative}
.dd-field__label{display:block;font-size:.88rem;font-weight:600;margin-bottom:.35rem;color:var(--dd-fg)}
.dd-field__input,.dd-field__textarea{width:100%;padding:.9rem 1rem;border-radius:12px;border:1.5px solid var(--dd-border);background:var(--dd-bg);color:var(--dd-fg);font:inherit;transition:border-color .2s,box-shadow .2s}
.dd-field__textarea{min-height:140px;resize:vertical}
.dd-field__input:focus,.dd-field__textarea:focus{outline:none;border-color:var(--dd-primary);box-shadow:0 0 0 4px color-mix(in srgb,var(--dd-primary) 18%,transparent)}
.dd-field__error{color:#e11d48;font-size:.82rem;margin-top:.25rem;display:none}
.dd-field.has-error .dd-field__error{display:block}
.dd-field.has-error .dd-field__input,.dd-field.has-error .dd-field__textarea{border-color:#e11d48}
.dd-field--consent{margin-top:.25rem}
.dd-consent{display:flex;align-items:flex-start;gap:.7rem;cursor:pointer;color:var(--dd-fg);font-size:.88rem;line-height:1.5}
.dd-consent input{position:absolute;opacity:0;pointer-events:none}
.dd-consent__box{flex-shrink:0;width:20px;height:20px;border-radius:6px;border:1.5px solid var(--dd-border);background:var(--dd-bg);position:relative;transition:border-color .2s,background .2s;margin-top:2px}
.dd-consent__box::after{content:"";position:absolute;left:4px;top:0px;width:6px;height:11px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) scale(0);transition:transform .2s}
.dd-consent input:checked ~ .dd-consent__box{background:var(--dd-primary);border-color:var(--dd-primary)}
.dd-consent input:checked ~ .dd-consent__box::after{transform:rotate(45deg) scale(1)}
.dd-consent input:focus-visible ~ .dd-consent__box{box-shadow:0 0 0 3px color-mix(in srgb,var(--dd-primary) 30%,transparent)}
.dd-consent__text a{color:var(--dd-primary);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.dd-field--consent.has-error .dd-consent__box{border-color:#e11d48}
.dd-consent__note{display:inline-flex;align-items:center;gap:6px;margin:.55rem 0 0 30px;color:var(--dd-muted);font-size:.78rem}
.dd-alert{padding:1rem 1.25rem;border-radius:12px;font-size:.95rem;margin-bottom:1rem}
.dd-alert--success{background:color-mix(in srgb,#10b981 18%,transparent);color:#6ee7b7;border:1px solid color-mix(in srgb,#10b981 38%,transparent)}
.dd-alert--error{background:color-mix(in srgb,#e11d48 18%,transparent);color:#fda4af;border:1px solid color-mix(in srgb,#e11d48 38%,transparent)}

/* Pagination --------------------------------------------------------------- */
.dd-pagination{display:flex;justify-content:center;gap:6px;margin-top:3rem;flex-wrap:wrap}
.dd-pagination a,.dd-pagination span{min-width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;padding:0 .75rem;border-radius:10px;font-weight:500;color:var(--dd-muted);background:var(--dd-surface);border:1px solid var(--dd-border);transition:all .2s;text-decoration:none}
.dd-pagination a:hover{color:var(--dd-fg);border-color:var(--dd-fg)}
.dd-pagination .is-current{color:#fff;background:var(--dd-grad);border-color:transparent}

/* Interactive CTA card — 3D tilt + animated border ---------------------- */
.dd-cta-card{position:relative;padding:clamp(2.5rem,5vw,4.5rem) clamp(2rem,4vw,3.5rem);text-align:center;background:var(--dd-grad);border-radius:calc(var(--dd-radius) + 6px);overflow:hidden;isolation:isolate;color:#fff}
.dd-cta-card::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.2),transparent 45%),radial-gradient(circle at 80% 70%,rgba(0,0,0,.25),transparent 50%);z-index:-1}
.dd-cta-card::after{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:conic-gradient(from 0deg,transparent 0deg,rgba(255,255,255,.35) 30deg,transparent 60deg,transparent 360deg);animation:ddSpin 10s linear infinite;z-index:-2;mix-blend-mode:soft-light;opacity:.5}
.dd-cta-card h2{color:#fff;margin:0 0 1rem;font-size:clamp(1.6rem,3vw + .8rem,2.75rem)}
.dd-cta-card p{color:rgba(255,255,255,.92);max-width:54ch;margin:0 auto 1.75rem;font-size:1.05rem}

/* Language dropdown -------------------------------------------------------- */
.dd-lang{position:relative}
.dd-lang__btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:.6rem 1rem;border-radius:99px;border:1.5px solid var(--dd-border);background:color-mix(in srgb,var(--dd-fg) 6%,transparent);color:var(--dd-fg);font-size:.82rem;font-weight:600;letter-spacing:.04em;cursor:pointer;transition:border-color .2s,background .2s,color .2s,transform .2s}
.dd-lang__btn:hover{border-color:var(--dd-primary);color:var(--dd-primary);transform:translateY(-1px)}
.dd-lang.is-open .dd-lang__btn{border-color:var(--dd-primary);color:var(--dd-primary)}
.dd-lang__menu{list-style:none;position:absolute;top:calc(100% + 10px);right:0;min-width:150px;background:var(--dd-bg);border:1px solid var(--dd-border);border-radius:18px;padding:6px;margin:0;opacity:0;visibility:hidden;transform:translateY(-8px);transition:all .2s;box-shadow:var(--dd-shadow);z-index:10}
.dd-lang.is-open .dd-lang__menu{opacity:1;visibility:visible;transform:translateY(0)}
.dd-lang__menu a{display:block;padding:.55rem .95rem;border-radius:99px;font-size:.9rem;color:var(--dd-fg);text-decoration:none;transition:background .2s,color .2s}
.dd-lang__menu a:hover{background:var(--dd-surface);color:var(--dd-primary)}

/* FAB (back to top) -------------------------------------------------------- */
.dd-fab{position:fixed;right:24px;bottom:24px;width:48px;height:48px;border-radius:50%;border:0;background:var(--dd-grad);color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:var(--dd-shadow-lg);opacity:0;transform:translateY(20px) scale(.8);transition:all .3s;z-index:900}
.dd-quote-tab{position:fixed;right:-14px;top:calc(50% + 28px);transform:translateY(-50%);z-index:950;background:var(--dd-grad);color:#fff !important;font-family:var(--dd-font);font-weight:800;font-size:.82rem;letter-spacing:.14em;padding:12px 28px 12px 20px;border-radius:99px 0 0 99px;box-shadow:-8px 14px 32px rgba(249,115,22,.45),inset 0 1px 0 rgba(255,255,255,.25);text-decoration:none !important;cursor:pointer;white-space:nowrap;transition:right .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s}
.dd-quote-tab:hover{right:-4px;box-shadow:-12px 18px 38px rgba(249,115,22,.6),inset 0 1px 0 rgba(255,255,255,.35);color:#fff !important}
.dd-quote-tab--consult{top:calc(50% - 28px);background:linear-gradient(135deg,#1e3a8a 0%,#60a5fa 100%);box-shadow:-8px 14px 32px rgba(30,58,138,.5),inset 0 1px 0 rgba(255,255,255,.25)}
.dd-quote-tab--consult:hover{box-shadow:-12px 18px 38px rgba(30,58,138,.65),inset 0 1px 0 rgba(255,255,255,.35)}
@media (max-width:768px){.dd-quote-tab{display:none !important}}
@media print{.dd-quote-tab{display:none !important}}
.dd-fab.is-visible{opacity:1;transform:translateY(0) scale(1)}

/* Footer ------------------------------------------------------------------- */
.dd-footer{position:relative;background:var(--dd-surface);padding:clamp(60px,8vw,96px) 0 2rem;overflow:hidden;margin-top:0;contain:layout style}
.dd-footer .dd-brand{font-size:2.475rem;gap:14px}
.dd-footer .dd-brand__mark{width:48px;height:48px}
.dd-footer__bg{position:absolute;inset:0;pointer-events:none;opacity:.5;overflow:hidden}
.dd-footer__bg::before{content:"";position:absolute;inset:-2px;background:repeating-linear-gradient(45deg,transparent 0 60px,rgba(255,255,255,.025) 60px 61px),repeating-linear-gradient(-45deg,transparent 0 60px,rgba(255,255,255,.02) 60px 61px);animation:ddFooterGrid 18s linear infinite;will-change:transform}
@keyframes ddFooterGrid{to{transform:translate(60px,60px)}}
.dd-blob{position:absolute;width:460px;height:460px;border-radius:50%;filter:blur(90px);will-change:transform}
.dd-blob--a{top:-140px;left:-140px;background:radial-gradient(circle,#f97316,transparent 60%);animation:ddBlobA 14s ease-in-out infinite alternate}
.dd-blob--b{bottom:-180px;right:-140px;background:radial-gradient(circle,#1e40af,transparent 60%);animation:ddBlobB 16s ease-in-out infinite alternate}
@keyframes ddBlobA{0%{transform:translate(0,0) scale(1)}50%{transform:translate(120px,60px) scale(1.1)}100%{transform:translate(-40px,100px) scale(.95)}}
@keyframes ddBlobB{0%{transform:translate(0,0) scale(1)}50%{transform:translate(-100px,-60px) scale(1.08)}100%{transform:translate(60px,-120px) scale(.92)}}
/* Third orange glow for more depth */
.dd-footer__bg::after{content:"";position:absolute;width:380px;height:380px;border-radius:50%;filter:blur(100px);left:40%;top:30%;background:radial-gradient(circle,#fb923c,transparent 65%);animation:ddBlobC 20s ease-in-out infinite alternate;opacity:.6}
@keyframes ddBlobC{0%{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(20%,-20%) scale(1.15)}100%{transform:translate(-80%,30%) scale(.9)}}
@media (prefers-reduced-motion:reduce){.dd-footer__bg::before,.dd-blob,.dd-footer__bg::after{animation:none!important}.dd-footer__bg::before{will-change:auto}}
.dd-footer__inner{position:relative}
.dd-footer__grid{display:grid;grid-template-columns:1.8fr 1fr 1fr 1.3fr;gap:clamp(24px,3.5vw,56px);margin-bottom:3rem}
@media (max-width:900px){.dd-footer__grid{grid-template-columns:1fr 1fr;row-gap:2.5rem}.dd-footer__brand{grid-column:1/-1;max-width:580px}}
@media (max-width:520px){.dd-footer__grid{grid-template-columns:1fr}}
.dd-footer h3{font-size:1rem;margin:0 0 1rem;color:var(--dd-fg);font-weight:700}
.dd-footer__col ul{list-style:none;padding:0;margin:0;display:grid;gap:.55rem}
.dd-footer__col ul li a,.dd-footer__col ul li{display:inline-flex;align-items:center;gap:8px;color:#fff;transition:color .2s,transform .2s;text-decoration:none;font-size:.92rem;font-weight:700}
.dd-footer__col ul li a{color:#fff;font-weight:700}
.dd-footer__col ul li a::before{content:"";display:inline-block;width:14px;height:14px;flex-shrink:0;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f97316' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='9 18 15 12 9 6'/></svg>") center/contain no-repeat;transition:transform .2s}
.dd-footer__col ul li a:hover{color:#fff;transform:translateX(2px)}
.dd-footer__col ul li a:hover::before{transform:translateX(3px)}
/* Skip the chevron for the CTA button inside contact column */
.dd-footer__col ul li a.dd-btn::before{display:none}
.dd-footer__brand-row{display:flex;flex-direction:column;align-items:flex-start;gap:1rem;margin-bottom:1.25rem}
.dd-footer__desc{color:var(--dd-muted);font-size:.95rem;margin:0 0 1rem;max-width:42ch}
.dd-footer__small{font-size:.9rem;color:var(--dd-muted)}
.dd-social{list-style:none;padding:0;margin:0;display:flex;flex-direction:row;gap:10px;flex-wrap:nowrap;align-items:center}
.dd-social li{display:inline-flex;margin:0;padding:0}
.dd-social li::before{display:none !important}
.dd-social a{width:38px;height:38px;border-radius:10px;background:var(--dd-bg);border:1px solid var(--dd-border);display:grid;place-items:center;color:var(--dd-muted);transition:all .2s}
.dd-social a:hover{color:#fff;background:var(--dd-grad);border-color:transparent;transform:translateY(-3px)}
.dd-footer__bar{display:flex;justify-content:space-between;align-items:center;padding-top:1.5rem;border-top:1px solid var(--dd-border);flex-wrap:wrap;gap:1rem}
.dd-footer__bar p{margin:0;color:var(--dd-muted);font-size:.88rem}
.dd-footer__legal{display:flex;gap:.5rem;list-style:none;padding:0;margin:0;flex-wrap:wrap;align-items:center}
.dd-footer__legal li{display:inline-flex;align-items:center;margin:0}
.dd-footer__legal li::before{display:none !important}
.dd-legal-btn{display:inline-flex;align-items:center;font-size:.68rem;font-weight:600;letter-spacing:.02em;white-space:nowrap;color:#fff !important;background:var(--dd-bg);border:1px solid var(--dd-primary);border-radius:99px;padding:.25rem .65rem;text-decoration:none !important;transition:background .2s,border-color .2s,transform .2s}
.dd-legal-btn:hover{background:color-mix(in srgb,var(--dd-primary) 18%,var(--dd-bg));border-color:var(--dd-accent);transform:translateY(-1px);color:#fff !important}

/* Consultancy CTA (under hero) -------------------------------------------- */
.dd-consult-cta{position:relative;display:grid;grid-template-columns:auto 1fr auto;gap:1.25rem;align-items:center;padding:1.25rem 1.5rem;border-radius:var(--dd-radius);background:linear-gradient(135deg,rgba(249,115,22,.12),rgba(30,58,138,.18));border:1px solid color-mix(in srgb,var(--dd-primary) 22%,transparent);color:var(--dd-fg);text-decoration:none !important;overflow:hidden;isolation:isolate;transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .3s,border-color .3s}
.dd-consult-cta::before{content:"";position:absolute;inset:-2px;z-index:-1;background:conic-gradient(from 0deg,transparent 0deg,rgba(253,186,116,.35) 60deg,transparent 140deg,transparent 360deg);animation:ddConsultSpin 12s linear infinite;opacity:.55}
.dd-consult-cta::after{content:"";position:absolute;inset:1px;z-index:-1;background:var(--dd-bg);border-radius:calc(var(--dd-radius) - 1px)}
.dd-consult-cta:hover{transform:translateY(-2px);border-color:var(--dd-primary);box-shadow:0 20px 40px rgba(249,115,22,.2)}
.dd-consult-cta__icon{width:54px;height:54px;border-radius:14px;display:grid;place-items:center;background:var(--dd-grad);color:#0a1830;flex-shrink:0;box-shadow:0 10px 24px rgba(249,115,22,.3)}
.dd-consult-cta__eyebrow{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--dd-primary);margin-bottom:.25rem}
.dd-consult-cta__title{margin:0 0 .25rem;font-size:clamp(1.15rem,1.2vw + .8rem,1.5rem);font-weight:700;color:#fff}
.dd-consult-cta__text{margin:0;color:var(--dd-muted);font-size:.95rem;line-height:1.55}
.dd-consult-cta__action{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--dd-primary);white-space:nowrap;transition:transform .25s,gap .25s}
.dd-consult-cta:hover .dd-consult-cta__action{gap:12px}
@keyframes ddConsultSpin{to{transform:rotate(360deg)}}
@media (max-width:720px){
    .dd-consult-cta{grid-template-columns:auto 1fr;gap:1rem;padding:1rem 1.15rem}
    .dd-consult-cta__action{grid-column:1/-1;justify-content:flex-end}
}
@media (prefers-reduced-motion:reduce){.dd-consult-cta::before{animation:none}}

/* Consultancy intro card -------------------------------------------------- */
.dd-intro-card{position:relative;border:2px solid var(--dd-primary);border-radius:28px;overflow:hidden;background:var(--dd-surface);box-shadow:0 20px 50px rgba(249,115,22,.12);display:flex;flex-direction:column;gap:30px;padding-bottom:clamp(1.75rem,3vw,2.5rem);width:100%;margin:0 auto}
.dd-intro-card__visual{margin:0;height:clamp(160px,22vw,240px);overflow:hidden;border-bottom:2px solid var(--dd-primary);position:relative}
.dd-intro-card__visual svg{width:100%;height:100%;display:block}
.dd-intro-card__body{padding:0 clamp(1.5rem,3vw,2.5rem);color:var(--dd-fg);font-size:1.02rem;line-height:1.75;max-width:78ch;margin:0 auto}
.dd-intro-card__body p{margin:0 0 1.25rem}
.dd-intro-card__body p:last-child{margin-bottom:0}
.dd-intro-card__body strong{color:#fff}
.dd-intro-card__body em{color:var(--dd-primary);font-style:normal;font-weight:600}

/* Process steps (consultancy) --------------------------------------------- */
.dd-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;counter-reset:step}
.dd-step{position:relative;background:var(--dd-surface);border:1px solid var(--dd-border);border-radius:var(--dd-radius-sm);padding:1.5rem 1.25rem;overflow:hidden}
.dd-step::before{content:"";position:absolute;left:0;top:0;width:3px;height:100%;background:var(--dd-grad)}
.dd-step__n{display:inline-block;font-family:var(--dd-font-display);font-weight:800;font-size:1.1rem;color:var(--dd-primary);letter-spacing:.1em;margin-bottom:.5rem}
.dd-step__title{margin:0 0 .5rem;font-size:1.05rem;font-weight:700;color:#fff}
.dd-step__text{margin:0;color:var(--dd-muted);font-size:.9rem;line-height:1.55}
@media (max-width:900px){.dd-steps{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.dd-steps{grid-template-columns:1fr}}

/* Contact page heading + lead (decorative) -------------------------------- */
.dd-contact-heading{display:flex;align-items:center;gap:.65rem;margin:0 0 .65rem;font-family:var(--dd-font-display);font-size:1.05rem;font-weight:700;letter-spacing:.02em;color:#fff;line-height:1.2}
.dd-contact-heading::before{content:"";flex-shrink:0;width:22px;height:22px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff 0 18%,transparent 19%),var(--dd-grad);box-shadow:0 4px 10px rgba(249,115,22,.45)}
.dd-contact-heading span{background:linear-gradient(90deg,#fff 0%,#fdba74 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.dd-contact-heading::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--dd-primary),transparent)}
.dd-contact-lead{margin:0 0 1.25rem;color:var(--dd-muted);font-size:.85rem;line-height:1.6;padding-left:30px;border-left:2px solid color-mix(in srgb,var(--dd-primary) 45%,transparent);padding-top:.1rem;padding-bottom:.1rem}

/* Service detail — other services slider (3-up) --------------------------- */
.dd-svc-slider{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--dd-border)}
.dd-svc-slider__head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}
.dd-svc-slider__head h2{margin:0;display:inline-flex;align-items:center;gap:.65rem;font-family:var(--dd-font-display);font-size:clamp(1.05rem,1.2vw + .7rem,1.4rem);font-weight:700;letter-spacing:-.01em;line-height:1.2}
.dd-svc-slider__head h2::before{content:"";flex-shrink:0;width:10px;height:26px;border-radius:3px;background:var(--dd-grad);box-shadow:0 4px 10px rgba(249,115,22,.35)}
.dd-svc-slider__head h2{background:linear-gradient(90deg,#fff 0%,#fdba74 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.dd-svc-slider__head h2::before{background:var(--dd-grad);-webkit-background-clip:initial;background-clip:initial}
.dd-svc-slider__nav{display:flex;gap:.5rem}
.dd-svc-slider__btn{width:38px;height:38px;border-radius:50%;border:1px solid var(--dd-border);background:var(--dd-surface);color:var(--dd-fg);display:grid;place-items:center;cursor:pointer;transition:border-color .2s,background .2s,color .2s}
.dd-svc-slider__btn:hover{border-color:var(--dd-primary);color:var(--dd-primary)}
.dd-svc-slider__btn:disabled{opacity:.35;cursor:not-allowed}
.dd-svc-slider__track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 2rem) / 3);gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;padding-bottom:.25rem}
.dd-svc-slider__track::-webkit-scrollbar{display:none}
.dd-svc-slide{scroll-snap-align:start;display:flex;flex-direction:column;background:var(--dd-surface);border:1.5px solid var(--dd-primary);border-radius:var(--dd-radius-sm);overflow:hidden;text-decoration:none !important;color:var(--dd-fg);transition:transform .2s,border-color .2s,box-shadow .2s}
.dd-svc-slide:hover{transform:translateY(-3px);border-color:var(--dd-accent);box-shadow:0 14px 30px rgba(249,115,22,.25)}
.dd-svc-slide__thumb{position:relative;aspect-ratio:16/10;overflow:hidden}
.dd-svc-slide__thumb img{width:100%;height:100%;object-fit:cover}
.dd-svc-slide__thumb--placeholder{background:var(--dd-grad);display:grid;place-items:center;color:#0a1830;font-size:2rem}
.dd-svc-slide__icon{position:absolute;right:10px;top:10px;width:34px;height:34px;border-radius:10px;background:rgba(10,24,48,.65);color:#fdba74;display:grid;place-items:center;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.dd-svc-slide__body{padding:.85rem 1rem 1rem}
.dd-svc-slide__body h3{margin:0 0 .35rem;font-size:.98rem;font-weight:700;color:#fff;line-height:1.3}
.dd-svc-slide__body p{margin:0;color:#fff;opacity:.85;font-size:.82rem;line-height:1.45}
@media (max-width:900px){.dd-svc-slider__track{grid-auto-columns:calc((100% - 1rem) / 2)}}
@media (max-width:600px){.dd-svc-slider__track{grid-auto-columns:85%}}

/* Cookie banner ------------------------------------------------------------ */
.dd-cookie{position:fixed;left:16px;bottom:16px;z-index:1100;background:var(--dd-surface);border:1px solid var(--dd-border);border-radius:var(--dd-radius);box-shadow:0 30px 60px rgba(0,0,0,.55);color:var(--dd-fg);opacity:0;transition:opacity .35s ease;width:min(420px,calc(100vw - 32px))}
.dd-cookie.is-visible{opacity:1}
.dd-cookie[hidden]{display:none}
.dd-cookie__inner{display:flex;flex-direction:column;gap:1rem;padding:1.25rem 1.35rem}
.dd-cookie__icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--dd-grad);color:#0a1830;flex-shrink:0}
.dd-cookie__body strong{display:block;font-weight:700;margin-bottom:.25rem;color:var(--dd-fg);font-size:1rem}
.dd-cookie__body p{margin:0 0 .85rem;color:var(--dd-muted);font-size:.88rem;line-height:1.5}
.dd-cookie__body a{color:var(--dd-primary);text-decoration:underline;text-underline-offset:3px}
.dd-cookie__opts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}
.dd-cookie__opt{display:flex;align-items:flex-start;gap:.75rem;padding:.55rem .7rem;border:1px solid var(--dd-border);border-radius:12px;cursor:pointer;transition:border-color .2s,background .2s}
.dd-cookie__opt:hover{border-color:color-mix(in srgb,var(--dd-primary) 40%,transparent);background:color-mix(in srgb,var(--dd-primary) 4%,transparent)}
.dd-cookie__opt input{position:absolute;opacity:0;pointer-events:none}
.dd-cookie__sw{flex-shrink:0;width:34px;height:20px;border-radius:999px;background:color-mix(in srgb,var(--dd-fg) 15%,transparent);position:relative;transition:background .2s;margin-top:2px}
.dd-cookie__sw::after{content:"";position:absolute;left:2px;top:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 2px 4px rgba(0,0,0,.3)}
.dd-cookie__opt input:checked ~ .dd-cookie__sw{background:var(--dd-primary)}
.dd-cookie__opt input:checked ~ .dd-cookie__sw::after{transform:translateX(14px)}
.dd-cookie__opt input:disabled ~ .dd-cookie__sw{opacity:.6;cursor:not-allowed}
.dd-cookie__opt input:disabled ~ .dd-cookie__sw::after{background:#cbd5e1}
.dd-cookie__opt-label{display:flex;flex-direction:column;gap:.15rem;font-size:.88rem;line-height:1.3}
.dd-cookie__opt-label strong{color:var(--dd-fg);font-weight:600;margin:0}
.dd-cookie__opt-label small{color:var(--dd-muted);font-size:.78rem}
.dd-cookie__actions{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.25rem}
.dd-cookie__actions .dd-btn{flex:1;min-width:90px;padding:.4rem .65rem;font-size:.72rem;letter-spacing:.02em}
@media (max-width:520px){
    .dd-cookie{left:12px;right:12px;width:auto}
    .dd-cookie__actions .dd-btn{min-width:0;flex:1 1 30%}
}

/* Contact page sparkle background ----------------------------------------- */
.dd-contact-page{position:relative;isolation:isolate}
.dd-sparkle{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.dd-sparkle__svg{width:100%;height:100%;display:block}
.dd-sparkle__orb{transform-origin:center;animation:ddSparkleDrift 18s ease-in-out infinite;will-change:transform}
.dd-sparkle__orb--a{animation-duration:22s}
.dd-sparkle__orb--b{animation-duration:28s;animation-delay:-6s}
.dd-sparkle__orb--c{animation-duration:20s;animation-delay:-10s}
.dd-sparkle__stars circle{animation:ddSparkleTwinkle 4s ease-in-out infinite;transform-origin:center;transform-box:fill-box}
.dd-sparkle__stars circle:nth-child(2){animation-delay:-.6s}
.dd-sparkle__stars circle:nth-child(3){animation-delay:-1.2s}
.dd-sparkle__stars circle:nth-child(4){animation-delay:-1.8s}
.dd-sparkle__stars circle:nth-child(5){animation-delay:-2.4s}
.dd-sparkle__stars circle:nth-child(6){animation-delay:-3s}
.dd-sparkle__stars circle:nth-child(7){animation-delay:-3.6s}
.dd-sparkle__stars circle:nth-child(8){animation-delay:-.3s}
.dd-sparkle__stars circle:nth-child(9){animation-delay:-1.5s}
.dd-sparkle__stars circle:nth-child(10){animation-delay:-2.7s}
.dd-sparkle__beams path{stroke-dasharray:6 14}
.dd-sparkle__grid{animation:ddSparkleGlow 8s ease-in-out infinite}
@keyframes ddSparkleDrift{
    0%,100%{transform:translate(0,0) scale(1)}
    50%   {transform:translate(40px,-30px) scale(1.08)}
}
@keyframes ddSparkleTwinkle{
    0%,100%{opacity:.25;transform:scale(.8)}
    50%    {opacity:1;  transform:scale(1.4)}
}
@keyframes ddSparkleGlow{
    0%,100%{opacity:.5}
    50%    {opacity:1}
}
@media (prefers-reduced-motion:reduce){
    .dd-sparkle__orb,.dd-sparkle__stars circle,.dd-sparkle__grid{animation:none !important}
    .dd-chip__dot--pulse::after{animation:none !important}
}

/* Breadcrumbs -------------------------------------------------------------- */
.dd-breadcrumb{display:flex;gap:.5rem;list-style:none;padding:0;margin:0 0 1.5rem;font-size:.88rem;color:var(--dd-muted);flex-wrap:wrap}
.dd-breadcrumb a{color:var(--dd-muted);text-decoration:none}
.dd-breadcrumb a:hover{color:var(--dd-fg)}
.dd-breadcrumb li+li::before{content:"/";margin-right:.5rem;color:var(--dd-border)}
.dd-breadcrumb [aria-current="page"]{color:var(--dd-fg)}

/* Page hero variant (for inner pages) ------------------------------------- */
.dd-page-hero{position:relative;margin-top:calc(var(--dd-nav-h) * -1);padding:calc(var(--dd-nav-h) + clamp(60px,8vw,120px)) 0 clamp(50px,7vw,100px);overflow:hidden;isolation:isolate}
.dd-page-hero__bg{position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 10% 0%,rgba(249,115,22,.22),transparent 55%),radial-gradient(ellipse at 90% 30%,rgba(30,64,175,.22),transparent 55%)}
.dd-page-hero__title{font-size:clamp(2.4rem,5vw + .8rem,4.8rem);font-family:var(--dd-font-display);margin:0 0 1rem;font-weight:800;letter-spacing:-.035em;line-height:1}
.dd-page-hero__title--sm{font-size:clamp(1.35rem,2.25vw + .6rem,2.4rem)}
.dd-page-hero__lead--sm{font-size:clamp(.88rem,.45vw + .72rem,1rem);line-height:1.55}
.dd-page-hero--flush-bottom{padding-bottom:0}
.dd-page-hero--flush-bottom .dd-page-hero__lead{font-size:clamp(.8rem,.5vw + .65rem,.98rem)}
.dd-page-hero__lead{font-size:clamp(1.05rem,.7vw + .85rem,1.3rem);color:var(--dd-muted);max-width:60ch;line-height:1.6}

/* Prose / article content -------------------------------------------------- */
.dd-prose{max-width:78ch;margin:0 auto;font-family:var(--dd-font);font-size:1.02rem;line-height:1.8;color:var(--dd-fg);letter-spacing:-.003em}
.dd-prose h2{font-family:var(--dd-font-display);font-size:clamp(1.3rem,1.4vw + .9rem,1.75rem);font-weight:800;letter-spacing:-.02em;margin:3rem 0 1rem;color:#fff;position:relative;padding-left:1rem;line-height:1.25}
.dd-prose h2::before{content:"";position:absolute;left:0;top:.45em;width:3px;height:.95em;border-radius:2px;background:var(--dd-grad)}
.dd-prose h3{font-family:var(--dd-font-display);font-size:1.15rem;font-weight:700;letter-spacing:-.01em;margin:2rem 0 .75rem;color:#fff}
.dd-prose h2:first-child,.dd-prose h3:first-child{margin-top:0}
.dd-prose p{margin:0 0 1.1rem;color:color-mix(in srgb,var(--dd-fg) 88%,transparent)}
.dd-prose strong{color:#fff;font-weight:600}
.dd-prose em{color:var(--dd-primary);font-style:normal;font-weight:500}
.dd-prose ul,.dd-prose ol{margin:0 0 1.25rem;padding-left:0;list-style:none}
.dd-prose ul li,.dd-prose ol li{position:relative;padding-left:1.6rem;margin-bottom:.55rem;color:color-mix(in srgb,var(--dd-fg) 88%,transparent)}
.dd-prose ul li::before{content:"";position:absolute;left:0;top:.7em;width:8px;height:8px;border-radius:50%;background:var(--dd-grad);box-shadow:0 0 0 3px color-mix(in srgb,var(--dd-primary) 15%,transparent)}
.dd-prose ol{counter-reset:dd-ol}
.dd-prose ol li::before{counter-increment:dd-ol;content:counter(dd-ol);position:absolute;left:0;top:.1em;width:1.25rem;height:1.25rem;border-radius:50%;background:var(--dd-grad);color:#0a1830;font-weight:800;font-size:.72rem;display:grid;place-items:center}
.dd-prose img{border-radius:var(--dd-radius-sm);margin:2rem 0}
.dd-prose code{background:var(--dd-surface);padding:.15em .4em;border-radius:4px;font-size:.9em;color:var(--dd-primary)}
.dd-prose blockquote{border-left:3px solid var(--dd-primary);padding:.85rem 1.15rem;color:var(--dd-muted);margin:1.5rem 0;font-style:italic;background:color-mix(in srgb,var(--dd-primary) 5%,transparent);border-radius:0 var(--dd-radius-sm) var(--dd-radius-sm) 0}
.dd-prose a{color:var(--dd-primary);font-weight:600;text-decoration:underline;text-underline-offset:3px;text-decoration-color:color-mix(in srgb,var(--dd-primary) 40%,transparent)}
.dd-prose a:hover{color:var(--dd-accent);text-decoration-color:var(--dd-accent)}
.dd-prose hr{border:0;height:1px;background:var(--dd-border);margin:2.5rem 0}

/* Prose inside an orange rounded frame (service detail) ----------------- */
.dd-prose--framed{
    width:100%;max-width:none;margin:0;
    padding:clamp(1.5rem,2.5vw,2.5rem) clamp(1.5rem,3vw,3rem);
    background:color-mix(in srgb,var(--dd-surface) 85%,transparent);
    border:1.5px solid var(--dd-primary);border-radius:22px;
    box-shadow:0 18px 40px rgba(0,0,0,.35),0 0 0 4px color-mix(in srgb,var(--dd-primary) 10%,transparent);
}
.dd-prose--framed p:last-child{margin-bottom:0}

/* Custom cursor (created by animations.js on fine-pointer devices) -------- */
.dd-cursor{position:fixed;top:0;left:0;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;background:var(--dd-grad);pointer-events:none;z-index:9999;mix-blend-mode:difference;transition:width .25s,height .25s,margin .25s,opacity .25s;opacity:.85}
.dd-cursor.is-hover{width:44px;height:44px;margin:-22px 0 0 -22px;opacity:.5}
@media (hover:none){.dd-cursor{display:none}}

/* Lightbox ----------------------------------------------------------------- */
.dd-lightbox{position:fixed;inset:0;background:rgba(10,24,48,.92);display:none;align-items:center;justify-content:center;z-index:1200;padding:2rem;backdrop-filter:blur(10px)}
.dd-lightbox.is-open{display:flex;animation:ddFadeIn .25s ease}
.dd-lightbox img{max-width:90vw;max-height:85vh;border-radius:12px;box-shadow:0 40px 80px rgba(0,0,0,.5)}
.dd-lightbox__close{position:absolute;top:20px;right:20px;width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.12);color:#fff;font-size:1.8rem;line-height:1;cursor:pointer}
.dd-lightbox__close:hover{background:rgba(255,255,255,.22)}
@keyframes ddFadeIn{from{opacity:0}to{opacity:1}}

/* Reading progress --------------------------------------------------------- */
.dd-reading{position:fixed;top:0;left:0;height:3px;width:var(--dd-progress,0%);background:var(--dd-grad);z-index:1100;transition:width .1s}

/* Focus visible ------------------------------------------------------------ */
:where(a,button,input,textarea,[tabindex]):focus-visible{outline:2px solid var(--dd-primary);outline-offset:3px;border-radius:6px}

/* Print -------------------------------------------------------------------- */
@media print{
    .dd-nav,.dd-footer,.dd-fab,.dd-newsletter{display:none!important}
    body{background:#fff;color:#000}
}
