/* Wigan Web Design – Dark Only Deluxe CSS (minified) */
:root{--bg:#0d0f12;--bg-soft:#14171c;--glass:#0f1318cc;--text:#e9eef4;--muted:#c4cad3;--accent:#c8ff6a;--accent-2:#7cfad2;--accent-3:#7db1ff;--link:#e9eef4;--border:#21262d;--border-strong:#2c323a;--radius:18px;--radius-lg:22px;--shadow:0 18px 50px rgba(0,0,0,.45);--shadow-soft:0 8px 28px rgba(0,0,0,.28);--heading-font:"Plus Jakarta Sans","Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;--body-font:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;--ring:0 0 0 3px rgba(200,255,106,.35)}
html{scroll-behavior:smooth}*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--body-font);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body.theme-light{all:unset;background:#0d0f12;color:#e9eef4}
#themeToggle,.theme-toggle,.nav-item:has(#themeToggle){display:none!important}
img{max-width:100%;height:auto;display:block}
a{color:var(--link)}a:hover{color:var(--accent)}
.small,small{color:var(--muted)}.link-muted{color:var(--muted)!important;text-decoration:none}.link-muted:hover{color:var(--text)!important}
*::-webkit-scrollbar{height:10px;width:10px}*::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--accent),var(--accent-2));border-radius:10px}*::-webkit-scrollbar-track{background:transparent}
.bg-gradient-orb,.bg-gradient-orb.orb-2{position:fixed;inset:auto auto 10% -10%;width:60vmax;height:60vmax;pointer-events:none;z-index:-1;filter:blur(70px) saturate(140%);background:radial-gradient(40% 40% at 40% 40%,rgba(124,250,210,.35),rgba(200,255,106,.12) 60%,transparent 70%);animation:floaty 18s ease-in-out infinite;mix-blend-mode:screen}
.bg-gradient-orb.orb-2{left:auto;right:-15%;bottom:auto;top:6%;background:radial-gradient(45% 45% at 50% 50%,rgba(200,255,106,.32),rgba(125,177,255,.18) 60%,transparent 72%);animation-duration:24s}
@keyframes floaty{0%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(0,-22px,0) scale(1.06)}100%{transform:translate3d(0,0,0) scale(1)}}
.blur-nav{background:rgba(13,15,18,.55);backdrop-filter:blur(12px) saturate(120%);border-bottom:1px solid var(--border);transition:box-shadow .25s ease,background .25s ease}
.navbar .nav-link{color:#eaeef4;opacity:.85;transition:color .25s ease}.navbar .nav-link:hover,.navbar .nav-link:focus{opacity:1;color:var(--accent)}
.blur-nav.is-stuck{box-shadow:var(--shadow-soft)}
.logo .logo-mark{width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,rgba(200,255,106,.22),rgba(124,250,210,.15));border:1px solid var(--border-strong);box-shadow:var(--shadow-soft);font-size:20px;color:var(--accent)}
.logo .logo-type{letter-spacing:.25px;font-weight:800;text-shadow:0 1px 0 rgba(0,0,0,.12)}
.text-accent{color:var(--accent)}
.section-pad{padding:92px 0}.alt-bg{background:var(--bg-soft)}.py-6{padding-block:6rem}
.display-1,.display-2,.display-3,.display-4,.display-5,.display-6,h1,h2,h3{font-family:var(--heading-font);letter-spacing:-.02em;font-weight:800;line-height:1.1;color:#f1f4f9;text-shadow:0 1px 4px rgba(0,0,0,.4)}
h4,h5,h6{color:#eaecef;font-weight:700}
.display-2,.hero-section h1{background:linear-gradient(90deg,#eaffc7 0%,#c8ff6a 50%,#7cfad2 100%);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none}
.u-underline{position:relative;display:inline-block;padding-bottom:.15rem}
.u-underline::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:linear-gradient(90deg,var(--accent),var(--accent-2),var(--accent-3));border-radius:2px;transform-origin:left;transform:scaleX(.2);transition:transform .35s ease}
.u-underline:hover::after{transform:scaleX(1)}
p{color:var(--text);opacity:.95}.lead{color:var(--text);font-weight:400;line-height:1.5}
.btn{border-radius:var(--radius);will-change:transform,box-shadow}
.btn-ghost{background:rgba(255,255,255,.03);border:1px solid #30343b;color:#e9eef4}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}
.btn-primary,.btn-accent{background:linear-gradient(135deg,var(--accent),var(--accent-2));border:none;color:#0d0f12;font-weight:600;box-shadow:0 0 18px rgba(124,250,210,.25)}
.btn-primary:hover,.btn-accent:hover{filter:brightness(1.08);box-shadow:0 0 22px rgba(124,250,210,.35)}
.btn-outline-light{border-radius:var(--radius);border-color:#33363d;color:#eaeef4}
.btn-outline-light:hover{border-color:var(--accent);color:var(--accent)}
.btn-accent{position:relative;overflow:hidden}
.btn-accent::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,var(--accent),var(--accent-2));transition:transform .3s ease;transform:scale(1);border-radius:inherit}
.btn-accent:hover::before{transform:scale(1.05)}
.btn-accent::after{content:"";position:absolute;top:0;left:-40%;width:40%;height:100%;background:linear-gradient(60deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-20deg);filter:blur(6px);transition:left .6s ease}
.btn-accent:hover::after{left:120%}
.hover-lift{transition:transform .2s ease,box-shadow .2s ease}.hover-lift:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.hero-section{position:relative}.display-2{line-height:1.05}
.eyebrow{color:var(--muted);font-weight:600;letter-spacing:.02em}.eyebrow .dot{color:var(--accent);margin-right:.35rem}
.small-trust .link-muted{color:var(--muted)}
.scroll-cue{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);color:var(--muted);font-size:22px;text-decoration:none;opacity:.7;transition:opacity .2s ease,transform .2s ease}
.scroll-cue:hover{opacity:1;transform:translate(-50%,-2px)}
.stat-stack{display:grid;gap:12px}
.stat-card{display:flex;align-items:center;gap:12px;border:1px solid var(--border-strong);background:var(--glass);border-radius:var(--radius);padding:12px 14px;box-shadow:var(--shadow-soft);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.stat-card i{color:var(--accent);font-size:20px}.stat-card strong{display:block}
.stat-card:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:var(--shadow)}
.service-card{border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:24px;background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,0)),radial-gradient(120% 120% at 0% 0%,rgba(200,255,106,.05),transparent 60%);box-shadow:var(--shadow-soft);height:100%;position:relative;overflow:hidden;color:var(--text)}
.service-card .icon-wrap{width:54px;height:54px;border-radius:14px;display:grid;place-items:center;background:radial-gradient(60% 60% at 40% 40%,rgba(200,255,106,.28),rgba(124,250,210,.12));color:var(--accent);font-size:22px;margin-bottom:12px;border:1px solid var(--border)}
.service-card:hover .icon-wrap{filter:brightness(1.15)}
.service-card::after{content:"";position:absolute;inset:-1px;background:linear-gradient(135deg,rgba(200,255,106,.2),rgba(124,250,210,.12),transparent 70%);border-radius:inherit;opacity:0;transition:opacity .25s ease}
.service-card:hover::after{opacity:1}
.accordion-clean .accordion-item,.accordion-flush .accordion-item{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:transparent;margin-bottom:12px}
.accordion-button{background:#1a1d23!important;color:#e9eef4!important;font-weight:600;border:none}
.accordion-button:not(.collapsed){background:#21252b!important;color:var(--accent)!important}
.accordion-button:focus{box-shadow:var(--ring)}
.accordion-body{background:#181b20;color:#cfd3d9;border-top:1px solid #2a2e34}
.feature-list li{display:flex;align-items:center;gap:12px;padding:12px 0;color:#cdd3da;border-bottom:1px dashed var(--border)}
.feature-list li:last-child{border-bottom:0}.feature-list i{color:var(--accent)}
.readmore[data-readmore]{max-height:140px;overflow:hidden;position:relative}
.readmore[data-readmore]::after{content:"";position:absolute;inset:auto 0 0 0;height:70px;background:linear-gradient(180deg,transparent,#0d0f12)}
.readmore[data-readmore].open{max-height:none}.readmore[data-readmore].open::after{display:none}
.readmore + [data-readmore-toggle]{border-color:var(--border);color:var(--text)}
.readmore + [data-readmore-toggle] i{transition:transform .2s ease}.readmore.open + [data-readmore-toggle] i{transform:rotate(180deg)}
.portfolio-grid{display:grid;gap:16px;grid-auto-flow:dense;grid-template-columns:repeat(12,1fr)}
@media (max-width:1199.98px){.portfolio-grid{grid-template-columns:repeat(8,1fr)}}
@media (max-width:767.98px){.portfolio-grid{grid-template-columns:repeat(4,1fr)}}
.tile{grid-column:span 4;position:relative;overflow:hidden;border-radius:20px;border:1px solid var(--border-strong);background:#0b0e12;transform:translateZ(0);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease,filter .25s ease}
.tile:nth-child(2n){grid-column:span 6}.tile:nth-child(3n){grid-column:span 8}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease,filter .45s ease;filter:saturate(105%) contrast(102%)}
.tile::before{content:"";position:absolute;inset:0;background:radial-gradient(120% 120% at 10% 10%,transparent,rgba(0,0,0,.35));opacity:0;transition:opacity .25s ease}
.tile:hover{box-shadow:var(--shadow);border-color:var(--accent);transform:translateY(-3px)}
.tile:hover::before{opacity:.5}
.tile:hover img{transform:scale(1.05);filter:saturate(112%) contrast(105%)}
.tile-meta{position:absolute;inset:auto 12px 12px 12px;display:flex;flex-direction:column;gap:4px;background:rgba(0,0,0,.55);padding:10px 12px;border-radius:12px;color:#fff;backdrop-filter:blur(8px);transform:translateY(6px);opacity:.95;transition:transform .25s ease,opacity .25s ease}
.tile:hover .tile-meta{transform:translateY(0);opacity:1}
.tile-meta span{font-size:12px;opacity:.85}.tile-meta strong{font-weight:800;letter-spacing:.02em}
.timeline{list-style:none;margin:0;padding:0;display:grid;gap:22px}
.t-card{border:1px solid var(--border-strong);border-radius:20px;padding:20px;background:#14171c;box-shadow:var(--shadow-soft);color:var(--text)}
.t-badge{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:radial-gradient(60% 60%,rgba(200,255,106,.25),rgba(124,250,210,.12));color:var(--accent);margin-bottom:10px;box-shadow:var(--shadow-soft);border:1px solid var(--border)}
.quote{background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,0));border:1px solid var(--border-strong);border-radius:20px;padding:22px;height:100%;box-shadow:var(--shadow-soft);color:var(--text)}
.quote i{color:var(--accent)}.quote footer{color:#aeb5bf;margin-top:12px}
.contact-card{border:1px solid var(--border-strong);border-radius:20px;padding:22px;background:#14171c;box-shadow:var(--shadow-soft);color:var(--text)}
.mini-badges .badge{border:1px solid var(--border);background:rgba(255,255,255,.04);color:var(--text)}
.form-control,.form-select{background:#181b20!important;border:1px solid #2a2e34!important;color:#e9eef4!important;border-radius:14px}
.form-control:focus,.form-select:focus{background:#1e2127!important;border-color:var(--accent)!important;box-shadow:var(--ring)!important;color:#fff!important}
::placeholder{color:#9aa2ac!important}
.border-top-subtle{border-top:1px solid var(--border)}
footer,footer p,footer a{color:#8f98a3}footer a:hover{color:var(--accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media (max-width:991.98px){.display-2{font-size:calc(2rem + 2.8vw)}.section-pad{padding:70px 0}}
@media (max-width:575.98px){.section-pad{padding:58px 0}.btn{padding:.7rem 1rem}.logo .logo-type{font-size:1.02rem}}
@media print{.navbar,.scroll-cue,.bg-gradient-orb{display:none!important}body{background:#fff;color:#111}a{text-decoration:underline;color:#000}}
@keyframes glowPulse{0%{text-shadow:0 0 0 rgba(200,255,106,0)}50%{text-shadow:0 0 18px rgba(200,255,106,.25)}100%{text-shadow:0 0 0 rgba(200,255,106,0)}}
.title-pulse{animation:glowPulse 4s ease-in-out infinite}
@keyframes borderGlow{0%{box-shadow:0 0 0 rgba(200,255,106,0)}50%{box-shadow:0 0 28px rgba(124,250,210,.22)}100%{box-shadow:0 0 0 rgba(200,255,106,0)}}
.u-border-glow{animation:borderGlow 6s ease-in-out infinite}
.u-gradient-text{background:linear-gradient(90deg,var(--accent),var(--accent-2),var(--accent-3));-webkit-background-clip:text;background-clip:text;color:transparent}
.tilt:hover{transform:perspective(800px) rotateX(2deg) rotateY(-2deg)}
.badge-pill{border-radius:999px;padding:.45rem .7rem;border:1px solid var(--border)}
/* Component colour normalisation */
.service-card,.contact-card,.t-card,.quote{color:var(--text)}
/* Portfolio filters */
#work [data-filter]{background:transparent;border:1px solid #33363d;color:#eaeef4;padding:.4rem .9rem;border-radius:20px;font-size:.9rem;transition:all .25s ease}
#work [data-filter]:hover,#work [data-filter].active{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#0d0f12;border-color:transparent;font-weight:600}