.elementor-6077 .elementor-element.elementor-element-056fc65{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--margin-top:80px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}/* Start custom CSS *//* Last modified: 2026-05-17 16:30 CET | Changes: Added CORE featured card styles, work masonry grid, responsive overrides */

/* ══════════════════════════════════════════════════════════════════
   DESIGN TOKENS
   Global CSS custom properties — colours, used throughout all pages.
   ══════════════════════════════════════════════════════════════════ */

:root {
    --white: #FFFFFF; --off-white: #FAF9F6; --black: #000000; --grey: #2D2D2D;
    --grey-light: #F9F9F9; --border: #EEEEEE;
    --accent-1: #bc3626; --accent-2: #131a44; --accent-3: #bc3626;
}
html { overflow-x: hidden; max-width: 100%; }
body { background-color: var(--white); color: var(--grey); font-family: 'Plus Jakarta Sans','Helvetica Neue',sans-serif; margin: 0; -webkit-font-smoothing: antialiased; overflow-x: hidden; max-width: 100%; }
* { box-sizing: border-box; }

/* ══════════════════════════════════════════════════════════════════
   GLOBAL BASE
   html/body defaults, box-sizing, global noise texture overlay.
   ══════════════════════════════════════════════════════════════════ */

body::after { content:""; position:fixed; top:0;left:0;width:100%;height:100%; background:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E"); opacity:0.02; pointer-events:none; z-index:9999; }

/* ══════════════════════════════════════════════════════════════════
   SCROLL REVEAL
   ══════════════════════════════════════════════════════════════════ */

.reveal-parent>* { opacity:0; transform:translateY(20px); transition:opacity 1.2s cubic-bezier(0.16,1,0.3,1),transform 1.2s cubic-bezier(0.16,1,0.3,1); overflow:visible; }
.reveal-parent.active>* { opacity:1; transform:translateY(0); overflow:visible; }

/* ══════════════════════════════════════════════════════════════════
   HEADER & NAVIGATION
   ══════════════════════════════════════════════════════════════════ */

header { position:fixed; top:0; left:0; width:100%; height:85px; z-index:100; display:flex; align-items:center; padding:0 5%; transition:height 0.7s cubic-bezier(0.16,1,0.3,1); }
.header-glass { position:absolute; top:0;left:0;width:100%;height:100%; background:rgba(255,255,255,0.08); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); border-bottom:1px solid rgba(188,54,38,0.35); box-shadow:0 4px 24px rgba(0,0,0,0.08); z-index:-1; transition:transform 0.8s cubic-bezier(0.16,1,0.3,1),opacity 0.6s ease; }
header.scrolled { height:55px; }
header.scrolled .header-glass { transform:translateY(-100%); opacity:0; }
header .menu-container { transition:all 0.8s cubic-bezier(0.16,1,0.3,1); display:flex; gap:2rem; flex:2; justify-content:space-between; }
header.scrolled .menu-container { justify-content:flex-end !important; flex:1 !important; gap:15px; }
header .right-spacer { flex:1; transition:all 0.8s cubic-bezier(0.16,1,0.3,1); }
header.scrolled .right-spacer { flex:0 !important; width:0 !important; opacity:0; }
.header-left-slot { position:relative; flex:1; display:flex; align-items:center; height:100%; overflow:visible; }
.logo-container { display:flex; align-items:center; gap:12px; text-decoration:none; transition:transform 0.6s cubic-bezier(0.16,1,0.3,1),opacity 0.4s ease; }
header.logo-out .logo-container { transform:translateY(-100%); opacity:0; }

/* ── Header: Floating CTA ── */
#header-cta { position:fixed; left:5%; top:30vh; opacity:0; pointer-events:none; transition:opacity 0.5s ease, box-shadow 0.3s ease; padding:10px 24px; border:1px solid #bc3626; border-radius:100px; font-size:0.65rem; text-transform:uppercase; letter-spacing:2px; font-weight:600; text-decoration:none; background-color:#bc3626; color:#FAF9F6; z-index:99; box-shadow:4px 4px 16px rgba(0,0,0,0.45); will-change:transform; }
#header-cta.cta-hidden { opacity:0 !important; pointer-events:none !important; }
#header-cta:hover { box-shadow:0 0 0 2px #FAF9F6, 0 0 20px 6px rgba(188,54,38,0.6) !important; }
.nav-link { text-decoration:none; color:var(--black); font-size:0.7rem; text-transform:uppercase; letter-spacing:4px; font-weight:500; transition:opacity 0.2s ease,letter-spacing 0.5s ease; }
header.scrolled .nav-link { letter-spacing:1px; }
header.over-hero .nav-link, header.over-dark .nav-link { color:var(--white); opacity:0.7; }
header:not(.over-hero):not(.over-dark) .nav-link { color:#111; opacity:0.6; }

/* ── Header: Glitch Animations ── */
@keyframes navGlitch { 0%{transform:translateX(0);opacity:1} 10%{transform:translateX(-4px);opacity:0.8} 20%{transform:translateX(4px);opacity:0.9} 30%{transform:translateX(-2px);opacity:1} 40%{transform:translateX(3px);opacity:0.75} 55%{transform:translateX(-1px);opacity:1} 70%{transform:translateX(2px);opacity:0.9} 85%{transform:translateX(-1px);opacity:1} 100%{transform:translateX(0);opacity:1} }
@keyframes glitchSliceR { 0%,100%{opacity:0;transform:translateX(0)} 12%{opacity:0.7;transform:translateX(5px);clip-path:inset(15% 0 60% 0)} 24%{opacity:0.5;transform:translateX(-4px);clip-path:inset(55% 0 10% 0)} 38%{opacity:0.6;transform:translateX(3px);clip-path:inset(5% 0 75% 0)} 52%{opacity:0;transform:translateX(0)} 66%{opacity:0.4;transform:translateX(-5px);clip-path:inset(40% 0 35% 0)} 80%{opacity:0.3;transform:translateX(2px);clip-path:inset(65% 0 8% 0)} }
@keyframes glitchSliceB { 0%,100%{opacity:0;transform:translateX(0)} 18%{opacity:0.6;transform:translateX(-5px);clip-path:inset(45% 0 20% 0)} 33%{opacity:0.5;transform:translateX(4px);clip-path:inset(8% 0 68% 0)} 48%{opacity:0;transform:translateX(0)} 62%{opacity:0.5;transform:translateX(5px);clip-path:inset(28% 0 42% 0)} 78%{opacity:0.3;transform:translateX(-3px);clip-path:inset(72% 0 3% 0)} }
@keyframes flashBurst { 0%{opacity:0} 10%{opacity:0.18} 20%{opacity:0} 35%{opacity:0.1} 50%{opacity:0} 70%{opacity:0.06} 100%{opacity:0} }
.nav-glitch-wrap { position:relative; display:inline-block; }
.nav-glitch-wrap.glitching>.nav-link { animation:navGlitch 0.5s steps(2) forwards; }
.nav-glitch-wrap.glitching::before,.nav-glitch-wrap.glitching::after { content:attr(data-text); position:absolute; inset:0; pointer-events:none; font-size:0.7rem; text-transform:uppercase; letter-spacing:4px; font-weight:500; white-space:nowrap; }
.nav-glitch-wrap.glitching::before { color:#bc3626; animation:glitchSliceR 0.5s steps(2) forwards; }
.nav-glitch-wrap.glitching::after { color:#131a44; animation:glitchSliceB 0.5s steps(2) forwards; }
#glitch-flash { position:absolute; inset:0; background:white; opacity:0; pointer-events:none; z-index:200; }
#glitch-flash.glitching { animation:flashBurst 0.5s steps(2) forwards; }
.nav-link:hover, header.over-hero .nav-link:hover, header.over-dark .nav-link:hover, header:not(.over-hero):not(.over-dark) .nav-link:hover { opacity:1 !important; color:#bc3626 !important; transition:color 0.08s ease 0.01s,opacity 0.01s ease !important; }
.nav-link.active { opacity:1 !important; color:#bc3626 !important; }

/* ── Header: Mobile Hamburger ── */
.hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; padding:12px 14px; z-index:1000; position:relative; background:#131a44; border-radius:3px; }
.hamburger span { display:block; width:24px; height:1.5px; background:#ffffff; transition:opacity 0.2s ease,letter-spacing 0.5s ease; }
.hamburger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.hamburger.open span:nth-child(2){opacity:0;}
.hamburger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}
.mobile-menu { position:fixed; inset:0; background:#111; z-index:900; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:48px; opacity:0; pointer-events:none; transition:opacity 0.4s ease; }
.mobile-menu.open { opacity:1; pointer-events:auto; }
.mobile-menu a { font-size:clamp(2rem,8vw,4rem); font-weight:700; color:#FAF9F6; text-decoration:none; text-transform:uppercase; letter-spacing:-1px; opacity:0.8; transition:opacity 0.2s; }
.mobile-menu a:hover { opacity:1; }

/* ══════════════════════════════════════════════════════════════════
   HERO SECTION
   ══════════════════════════════════════════════════════════════════ */

.hero { position:relative; width:100%; height:100vh; max-width:100vw; background:#000; overflow:hidden; display:flex; align-items:center; justify-content:center; }
.hero-image-frame { position:absolute; inset:0; width:100%; height:100%; max-width:100%; overflow:hidden; z-index:1; }
@keyframes heroColourReveal { 0%{opacity:0;filter:grayscale(1) brightness(0.85)} 8%{opacity:1;filter:grayscale(1) brightness(0.85)} 44%{opacity:1;filter:grayscale(1) brightness(0.85)} 50%{opacity:1;filter:grayscale(0.6) brightness(1.2)} 58%{opacity:0.8;filter:grayscale(0.8) brightness(0.9)} 65%{opacity:1;filter:grayscale(0.2) brightness(1.1)} 80%{opacity:1;filter:grayscale(0) brightness(1)} 100%{opacity:1;filter:grayscale(0) brightness(1)} }
@keyframes heroGlitchR { 0%,44%,70%,100%{opacity:0;transform:translateX(0);clip-path:inset(0 0 0 0)} 50%{opacity:0.6;transform:translateX(14px);clip-path:inset(15% 0 55% 0)} 55%{opacity:0.5;transform:translateX(-12px);clip-path:inset(55% 0 10% 0)} 60%{opacity:0.7;transform:translateX(10px);clip-path:inset(25% 0 45% 0)} 65%{opacity:0.3;transform:translateX(-6px);clip-path:inset(0 0 0 0)} }
@keyframes heroGlitchB { 0%,44%,70%,100%{opacity:0;transform:translateX(0);clip-path:inset(0 0 0 0)} 50%{opacity:0.6;transform:translateX(-14px);clip-path:inset(15% 0 55% 0)} 55%{opacity:0.5;transform:translateX(12px);clip-path:inset(55% 0 10% 0)} 60%{opacity:0.7;transform:translateX(-10px);clip-path:inset(25% 0 45% 0)} 65%{opacity:0.3;transform:translateX(6px);clip-path:inset(0 0 0 0)} }
.hero .bg-image.glitch-intro { animation:heroColourReveal 2.5s linear forwards; animation-delay:0.2s; }
.hero-rgb-layer { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transform:scale(1.05); pointer-events:none; opacity:0; z-index:2; }
.hero-rgb-layer.red { mix-blend-mode:screen; filter:url(#redChannel); animation:heroGlitchR 2.5s steps(2) forwards; animation-delay:0.2s; }
.hero-rgb-layer.blue { mix-blend-mode:screen; filter:url(#blueChannel); animation:heroGlitchB 2.5s steps(2) forwards; animation-delay:0.2s; }
.hero .bg-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transform:scale(1.05); will-change:transform,opacity,filter; transition:opacity 5s ease,filter 0.2s ease-out; max-width:none; }
.hero .bg-image.hero-active { opacity:1; }
.hero-text { position:absolute; bottom:calc(5% + 60px); left:0; color:var(--off-white); max-width:min(700px,90vw); padding-left:5%; z-index:10; pointer-events:none; transform-origin:left top; will-change:transform,opacity; }
.hero-text * { pointer-events:auto; }
.hm { position:relative; display:inline; }
.hm::before { content:''; position:absolute; left:var(--mx,-4px); right:var(--mr,-6px); top:var(--mt,-3px); bottom:var(--mb,-4px); background:var(--mc,#131a44); opacity:var(--mo,1); transform:rotate(var(--mr2,-0.4deg)) skewX(var(--ms,-0.8deg)); z-index:-1; border-radius:2px; }
.text-gradient { font-weight:800; background:linear-gradient(-45deg,#FAF9F6,#C8C8C8,#E8E8E8,#B0B0B0,#FAF9F6,#C8C8C8,#FAF9F6); background-size:400% 400%; -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; display:inline-block; animation:flowingMesh 16s ease infinite; padding-right:0.15em; margin-right:-0.15em; }
@keyframes flowingMesh { 0%{background-position:0% 50%} 50%{background-position:100% 50%} 100%{background-position:0% 50%} }

/* ══════════════════════════════════════════════════════════════════
   BUTTONS
   ══════════════════════════════════════════════════════════════════ */

.btn-minimal { background:var(--grey); color:var(--off-white); padding:20px 40px; font-size:0.65rem; text-transform:uppercase; letter-spacing:3px; font-weight:600; transition:all 0.4s cubic-bezier(0.16,1,0.3,1); box-shadow:0 4px 15px rgba(0,0,0,0.06); display:inline-block; border:none; cursor:pointer; border-radius:2px; }
.btn-minimal:hover { background:var(--black); letter-spacing:5px; transform:translateY(-2px); box-shadow:0 8px 25px rgba(0,0,0,0.1); }

/* ══════════════════════════════════════════════════════════════════
   LAYOUT UTILITIES
   ══════════════════════════════════════════════════════════════════ */

.section-spacing { padding:100px 5%; }
h1,h2,h3 { font-family:'Plus Jakarta Sans','Helvetica Neue',sans-serif; }
h2 { font-size:clamp(2rem,6vw,3.5rem); font-weight:500; letter-spacing:-1px; line-height:1; }
.accent-dot { display:inline-block; width:6px; height:6px; background-color:var(--accent-3); margin-right:12px; margin-bottom:2px; border-radius:1px; vertical-align:middle; }

/* ══════════════════════════════════════════════════════════════════
   SERVICES SECTION
   ══════════════════════════════════════════════════════════════════ */

.service-bg-num { position:absolute; right:-20px; top:50%; transform:translateY(-50%) scale(0.8); font-size:clamp(120px,18vw,200px); font-weight:800; color:inherit; opacity:0; line-height:1; pointer-events:none; user-select:none; letter-spacing:-8px; transition:opacity 0.5s ease,transform 0.5s cubic-bezier(0.16,1,0.3,1); z-index:0; }
.service-item.expanded .service-bg-num { opacity:0.25; transform:translateY(-50%) scale(1); }
.service-item.expanded { background-color: rgba(255,255,255,0.02) !important; }
.service-item, .service-item:hover, .service-item:focus, .service-item:active { cursor:pointer; position:relative; overflow:hidden; transition:box-shadow 0.7s cubic-bezier(0.16,1,0.3,1); background-color:transparent !important; background:transparent !important; }
.service-item:hover { background-color: transparent !important; box-shadow: none !important; }
.service-header { display:flex; flex-direction:row; align-items:center; padding:38px 16px; } br.svc-br { display:none; }
.service-content-wrapper { display:grid; grid-template-rows:0fr; transition:grid-template-rows 0.7s cubic-bezier(0.16,1,0.3,1); overflow:hidden; }
.service-item.expanded .service-content-wrapper { grid-template-rows:1fr; }
.service-inner-text { min-height:0; overflow:hidden; padding:0 16px 0 16px; display:flex; gap:0; }
.service-item.expanded .service-inner-text { padding:0 16px 48px 16px; }
.toggle-icon { font-size:1.5rem; font-weight:200; transition:transform 0.5s ease; margin-left:auto; flex-shrink:0; }
.service-item.expanded .toggle-icon { transform:rotate(45deg); }
.service-item h3 { transition:color 0.6s ease; background-size:200% 200%; -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:inherit; background-image:none; }
.service-item.expanded h3 { background-image:none; -webkit-text-fill-color:#bc3626; color:#bc3626; animation:none; }
@keyframes gradientShift { 0%{background-position:0% 50%} 50%{background-position:100% 50%} 100%{background-position:0% 50%} }
.service-item h3.fading-gradient { background-image:none; -webkit-text-fill-color:#bc3626; color:#bc3626; animation:none; transition:opacity 0.8s ease; opacity:0; }
.service-text-col { width:100%; }
.service-process { margin-top:20px; padding-top:20px; border-top:1px solid rgba(255,255,255,0.08); }
.service-process-label { font-size:0.55rem; text-transform:uppercase; letter-spacing:3px; opacity:0.3; margin-bottom:14px; display:block; }
.service-process-steps { display:flex; flex-direction:column; gap:8px; }
.service-process-step { display:flex; align-items:flex-start; gap:12px; font-size:0.78rem; line-height:1.6; opacity:0.55; }
.service-process-step-title { font-size:0.62rem; font-weight:600; text-transform:uppercase; letter-spacing:2px; opacity:1; color:var(--accent-3); flex-shrink:0; width:140px; }

/* ══════════════════════════════════════════════════════════════════
   SOCIAL ICONS
   ══════════════════════════════════════════════════════════════════ */

.social-icon { opacity:0.4; transition:opacity 0.2s ease,letter-spacing 0.5s ease; color:inherit; margin-right:16px; }
.social-icon:hover { opacity:1; color:#bc3626 !important; }
.footer-social-icon { transition:color 0.2s ease, opacity 0.2s ease; }
.footer-social-icon:hover { color:#bc3626 !important; opacity:1; }

/* ══════════════════════════════════════════════════════════════════
   WORK SECTION — REVEAL ANIMATIONS
   ══════════════════════════════════════════════════════════════════ */

.work-item { cursor:pointer; overflow:visible; }
.work-item { opacity:0; transform:translateY(28px); transition:opacity 0.7s ease, transform 0.7s ease; }
.work-item.wi-revealed { opacity:1; transform:translateY(0); }
.work-item .work-item-img-wrap { opacity:0; transform:translateY(12px); transition:opacity 0.6s ease, transform 0.6s ease; }
.work-item.wi-revealed .work-item-img-wrap { opacity:1; transform:translateY(0); }
.work-item .wi-text { opacity:0; transform:translateY(10px); transition:opacity 0.55s ease 0.15s, transform 0.55s ease 0.15s; }
.work-item.wi-revealed .wi-text { opacity:1; transform:translateY(0); }
.work-overlay { position:absolute; inset:0; background:linear-gradient(to top,rgba(0,0,0,0.7) 0%,transparent 60%); display:none !important; align-items:flex-end; padding:28px; }
.work-item-img-wrap:hover .work-overlay { display:flex !important; }
.work-overlay span { color:#fff; font-size:0.6rem; text-transform:uppercase; letter-spacing:3px; font-weight:600; }
.work-num { position:absolute; top:16px; left:20px; font-size:0.6rem; font-weight:700; letter-spacing:2px; color:#fff; opacity:0.6; transition:opacity 0.4s ease; pointer-events:none; z-index:2; mix-blend-mode:difference; }

/* ══════════════════════════════════════════════════════════════════
   CORE FEATURED CARD
   Full-width dark hero card above the numbered work grid.
   ══════════════════════════════════════════════════════════════════ */

.core-featured {
    width: 100%;
    background: #0d1117;
    border: 1px solid rgba(255,255,255,0.06);
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 420px;
    overflow: hidden;
    position: relative;
    transition: border-color 0.4s ease;
}
.core-featured:hover { border-color: rgba(188,54,38,0.3); }

/* ── Lightbox buttons: kill Elementor pink focus outline ── */
.k53-lb-dot,.k53-lb-nav,.k53-lb-close,.dae20-lb-dot,.dae20-lb-nav,.dae20-lb-close { outline:none !important; }
.k53-lb-dot:focus,.k53-lb-dot:focus-visible,.k53-lb-nav:focus,.k53-lb-nav:focus-visible,.k53-lb-close:focus,.k53-lb-close:focus-visible,
.dae20-lb-dot:focus,.dae20-lb-dot:focus-visible,.dae20-lb-nav:focus,.dae20-lb-nav:focus-visible,.dae20-lb-close:focus,.dae20-lb-close:focus-visible { outline:none !important; box-shadow:none !important; }

/* ── CORE favicon SVG — sized to match .core-title line height ── */
.core-favicon { height: 1em; width: 1em; font-size: inherit; }
.core-info { padding: 48px 44px; display: flex; flex-direction: column; justify-content: space-between; position: relative; z-index: 2; }
.core-label-row { display: flex; align-items: center; gap: 10px; margin-bottom: 28px; }
.core-featured-badge { font-size: 0.5rem; text-transform: uppercase; letter-spacing: 4px; color: #131a44; background: #FFD700; border: 1px solid #FFD700; padding: 4px 10px; border-radius: 100px; font-family: 'Plus Jakarta Sans', sans-serif; }
.core-dot { display: inline-block; width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0; }
.core-title { font-family: 'Bebas Neue', sans-serif !important; font-size: clamp(2.8rem, 5vw, 4.5rem); font-weight: 400 !important; letter-spacing: 0.04em; color: #fff !important; line-height: 1; margin: 0; -webkit-text-fill-color: #fff !important; background-image: none !important; }
.core-subtitle { font-size: 0.55rem; text-transform: uppercase; letter-spacing: 4px; color: rgba(255,255,255,0.25); margin-bottom: 20px; margin-top: 4px; font-family: 'Plus Jakarta Sans', sans-serif; }
.core-desc { font-size: 0.78rem; line-height: 1.75; color: rgba(255,255,255,0.4); max-width: 340px; margin-bottom: 28px; font-family: 'Plus Jakarta Sans', sans-serif; }
.core-stats { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 36px; }
.core-stat { font-family: 'Plus Jakarta Sans', sans-serif; font-size: 0.48rem; text-transform: uppercase; letter-spacing: 2px; color: rgba(255,255,255,0.4); border: 1px solid rgba(255,255,255,0.1); padding: 4px 10px; border-radius: 100px; white-space: nowrap; cursor: default; transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease; }
.core-stat:hover { color: #FFD700; border-color: rgba(255,215,0,0.5); background: rgba(255,215,0,0.06); }
.core-link { display: inline-flex; align-items: center; gap: 8px; font-size: 0.65rem; letter-spacing: 2px; text-transform: uppercase; text-decoration: none; color: #bc3626; opacity: 0.8; transition: opacity 0.2s, gap 0.3s ease; width: fit-content; font-family: 'Plus Jakarta Sans', sans-serif; }
.core-link:hover { opacity: 1; gap: 14px; }
.core-link svg { flex-shrink: 0; }

.core-visual { position: relative; background: #080c12; overflow: hidden; min-height: 360px; }
.core-visual-placeholder { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
.core-grid-lines { position: absolute; inset: 0; overflow: hidden; opacity: 0.12; }
.core-grid-lines::before { content: ''; position: absolute; inset: -20px; background-image: linear-gradient(rgba(255,255,255,0.4) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.4) 1px, transparent 1px); background-size: 40px 40px; animation: coreGridPan 12s linear infinite; }
@keyframes coreGridPan { from { transform: translateY(0); } to { transform: translateY(40px); } }
.core-node { width: 90px; height: 90px; border: 1px solid rgba(188,54,38,0.5); border-radius: 50%; display: flex; align-items: center; justify-content: center; position: relative; animation: corePulse 3s ease-in-out infinite; }
.core-node::before { content: ''; position: absolute; inset: -12px; border-radius: 50%; border: 1px solid rgba(188,54,38,0.15); animation: corePulse 3s ease-in-out infinite 0.5s; }
.core-node::after { content: ''; position: absolute; inset: -24px; border-radius: 50%; border: 1px solid rgba(188,54,38,0.07); animation: corePulse 3s ease-in-out infinite 1s; }
@keyframes corePulse { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.04); } }

.core-orbit { position: absolute; inset: 0; animation: coreOrbit 18s linear infinite; }
@keyframes coreOrbit { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }

/* ══════════════════════════════════════════════════════════════════
   WORK MASONRY GRID
   Two-column CSS grid with varied row spans for masonry feel.
   ══════════════════════════════════════════════════════════════════ */

.work-masonry { display: grid; grid-template-columns: 1fr 1fr; grid-auto-rows: 240px; gap: 40px 48px; }
.work-item--tall  { grid-row: span 3; }
.work-item--mid   { grid-row: span 2; }
.work-item--short { grid-row: span 2; }
.work-item { cursor: pointer; overflow: visible; display: flex; flex-direction: column; }
.work-item-img-wrap { flex: 1; overflow: hidden; position: relative; }
.work-item-img-wrap img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s ease, filter 0.7s ease; }

/* ══════════════════════════════════════════════════════════════════
   PRICING CALCULATOR
   ══════════════════════════════════════════════════════════════════ */

.calc-item { display:flex; flex-direction:column; gap:6px; padding:20px 24px; border:1px solid #DDDDDD; background:#fff; cursor:pointer; text-align:left; transition:all 0.3s cubic-bezier(0.16,1,0.3,1); position:relative; min-width:160px; border-radius:3px; }
.calc-item:hover{color:var(--black) !important;}
.calc-item.active { background:#EBEBEB; border-color:#2C3E6B; transform:translateY(-2px); box-shadow:0 8px 24px rgba(0,0,0,0.06); }
.calc-item.active:hover { background:#EBEBEB !important; border-color:#2C3E6B !important; color:#2D2D2D !important; }
.calc-item.active .calc-item-name { color:#2D2D2D; }
.calc-item.active .calc-item-price { color:var(--accent-1); }
.calc-item-name { font-family:'Plus Jakarta Sans',sans-serif; font-size:0.75rem; font-weight:600; letter-spacing:0.5px; color:#2D2D2D; transition:color 0.3s; }
.calc-item-price { font-size:0.8rem; font-weight:500; color:rgba(0,0,0,0.55); font-family:'Plus Jakarta Sans',sans-serif; transition:color 0.3s; }
.calc-item--monthly::after { content:'monatlich'; position:absolute; top:8px; right:8px; font-size:0.45rem; text-transform:uppercase; letter-spacing:2px; color:rgba(0,0,0,0.2); font-family:'Plus Jakarta Sans',sans-serif; }
.calc-item--monthly.active::after { color:rgba(255,255,255,0.3); }

/* ══════════════════════════════════════════════════════════════════
   FOOTER
   ══════════════════════════════════════════════════════════════════ */

.footer-link:hover { color:#bc3626 !important; opacity:1 !important; transition:color 0.3s ease; }
.footer-link { display:inline-block; width:fit-content; }
@keyframes ftDrift { 0%{transform:translateY(0px) translateX(0px);} 25%{transform:translateY(-3px) translateX(1px);} 50%{transform:translateY(-1px) translateX(-2px);} 75%{transform:translateY(-4px) translateX(1px);} 100%{transform:translateY(0px) translateX(0px);} }
.ft { display:inline-block; padding:5px 12px; border:1px solid rgba(255,255,255,0.18); border-radius:100px; font-size:0.62rem; letter-spacing:1.5px; text-transform:uppercase; color:rgba(255,255,255,0.55); opacity:0; transform:translateY(8px); transition:opacity 0.6s ease var(--d), transform 0.6s ease var(--d), border-color 0.3s ease, color 0.3s ease; cursor:default; }
.ft:hover { border-color:rgba(188,54,38,0.3); }
#footer-tags-col.tags-visible .ft { opacity:1; transform:translateY(0); animation:ftDrift 6s ease-in-out infinite; animation-delay:var(--d); }

/* ══════════════════════════════════════════════════════════════════
   FORM AUTOFILL OVERRIDE
   ══════════════════════════════════════════════════════════════════ */

input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,textarea:-webkit-autofill,textarea:-webkit-autofill:hover,textarea:-webkit-autofill:focus { -webkit-box-shadow:0 0 0px 1000px rgba(0,0,0,0.06) inset,inset 0 2px 6px rgba(0,0,0,0.08) !important; box-shadow:0 0 0px 1000px rgba(0,0,0,0.06) inset,inset 0 2px 6px rgba(0,0,0,0.08) !important; -webkit-text-fill-color:#2D2D2D !important; background-color:rgba(0,0,0,0.06) !important; transition:background-color 5000s ease-in-out 0s; }
header.scrolled .nav-glitch-wrap { background:transparent; border:none; padding:2px 12px; }
header.scrolled .nav-glitch-wrap:hover { background:transparent; }
header.scrolled .nav-glitch-wrap:has(.nav-link.active) { background:transparent; }
.footer-contact-link { transition:color 0.08s ease 0.01s,opacity 0.01s ease !important; display:inline-flex; width:fit-content; }
.footer-contact-link:hover { opacity:1 !important; color:#bc3626 !important; }

/* ══════════════════════════════════════════════════════════════════
   ABOUT SECTION
   ══════════════════════════════════════════════════════════════════ */

.about-half { width:100%; box-sizing:border-box; }
.object-cover{object-fit:cover;}
.object-contain{object-fit:contain;}
.group:hover .group-hover\:grayscale-0{filter:grayscale(0);}
.group:hover .group-hover\:scale-105{transform:scale(1.05);}
.transition-all{transition:all;}
.duration-700{transition-duration:700ms;}
.grayscale{filter:grayscale(1);}
.work-item .aspect-\[4\/3\] img,.work-item .aspect-\[4\/5\] img{width:100%;height:100%;object-fit:cover;}
.aspect-\[4\/3\]{aspect-ratio:4/3;}
.aspect-\[4\/5\]{aspect-ratio:4/5;}
.text-\[0\.6rem\]{font-size:0.6rem;}
.text-\[0\.55rem\]{font-size:0.55rem;}
.tracking-\[4px\]{letter-spacing:4px;}
.tracking-\[3px\]{letter-spacing:3px;}
.mb-4{margin-bottom:1rem;}
.font-medium{font-weight:500;}
.text-black{color:#000;}
.about-flex-row{display:flex;flex-direction:column;gap:3.5rem;align-items:center;}
.gap-20{gap:5rem;}
.gap-24{gap:6rem;}
.items-start{align-items:flex-start;}
.items-center{align-items:center;}
.justify-between{justify-content:space-between;}
.flex-shrink-0{flex-shrink:0;}
.mb-10{margin-bottom:2.5rem;}
.mb-16{margin-bottom:4rem;}
.text-lg{font-size:1.125rem;line-height:1.75rem;}
.text-xl{font-size:1.25rem;line-height:1.75rem;}
.px-\[5\%\]{padding-left:5%;padding-right:5%;}
.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr));}
.text-\[0\.7rem\]{font-size:0.7rem;}
.tracking-\[2px\]{letter-spacing:2px;}
.group{position:relative;}
.opacity-50{opacity:0.5;}
.opacity-30{opacity:0.3;}
.mb-32{margin-bottom:8rem;}
.calc-item:hover,.calc-item:hover *,.k53-lb-nav,.k53-lb-nav:hover,.k53-lb-close,.k53-lb-close:hover,.k53-lb-dot,.k53-lb-dot:hover,.dae20-lb-nav,.dae20-lb-nav:hover,.dae20-lb-close,.dae20-lb-close:hover,.dae20-lb-dot,.dae20-lb-dot:hover,#dae20lp-lightbox button,#dae20lp-lightbox button:hover,.work-item *,.work-item *:hover{color:inherit !important;}
#calc-quote-btn{color:#fff !important;}
#calc-reset-btn{color:#2D2D2D !important;}
.calc-item.active,.calc-item.active:hover{color:#fff !important;}
.k53-lb-nav:hover,.dae20-lb-nav:hover,#dae20lp-lightbox .k53-lb-nav:hover{color:#fff !important;}
.k53-lb-close:hover,.dae20-lb-close:hover{color:#fff !important;}
.calc-cat-grid{display:grid;grid-template-columns:200px 1fr;gap:40px;align-items:start;}
.cf7-grid{display:grid;grid-template-columns:1fr;gap:1.5rem;}
.bunny-logo{height:2.875rem !important;max-height:2.875rem !important;width:auto !important;}
.mx-auto{margin-left:auto;margin-right:auto;}
.max-w-6xl{max-width:72rem;}
.max-w-7xl{max-width:80rem;}
.max-w-xl{max-width:36rem;}
.max-w-lg{max-width:32rem;}
.w-full{width:100%;}
.h-full{height:100%;}
.block{display:block;}
.hidden{display:none;}
.relative{position:relative;}
.overflow-hidden{overflow:hidden;}
.shadow-sm{box-shadow:0 1px 2px rgba(0,0,0,0.05);}
.uppercase{text-transform:uppercase;}
.font-bold{font-weight:700;}
.font-light{font-weight:300;}
.leading-relaxed{line-height:1.625;}
.leading-snug{line-height:1.375;}
.tracking-tight{letter-spacing:-0.025em;}
.tracking-tighter{letter-spacing:-0.05em;}
.opacity-40{opacity:0.4;}
.opacity-60{opacity:0.6;}
.opacity-70{opacity:0.7;}
.opacity-80{opacity:0.8;}
.opacity-90{opacity:0.9;}
.mb-1{margin-bottom:0.25rem;}
.mb-2{margin-bottom:0.5rem;}
.mb-6{margin-bottom:1.5rem;}
.mb-8{margin-bottom:2rem;}
.mb-20{margin-bottom:5rem;}
.mt-6{margin-top:1.5rem;}
.pt-5{padding-top:1.25rem;}
.flex{display:flex;}
.flex-col{flex-direction:column;}
.flex-1{flex:1;}
.flex-\[2\]{flex:2;}
.gap-6{gap:1.5rem;}
.gap-12{gap:3rem;}
.gap-16{gap:4rem;}
.gap-x-12{column-gap:3rem;}
.gap-y-16{row-gap:4rem;}
.grid{display:grid;}
.col-span-2{grid-column:span 2/span 2;}
.text-xs{font-size:0.75rem;line-height:1rem;}
.text-sm{font-size:0.875rem;line-height:1.25rem;}
.text-2xl{font-size:1.5rem;line-height:2rem;}
.text-4xl{font-size:2.25rem;line-height:2.5rem;}
.text-\[0\.65rem\]{font-size:0.65rem;}
.text-\[1\.25rem\]{font-size:1.25rem;}
.italic{font-style:italic;}
.about-img-wrap{perspective:800px;cursor:pointer;}
.about-img-inner img{width:100%;height:580px;object-fit:cover;display:block;filter:grayscale(100%);transition:filter 0.8s cubic-bezier(0.16,1,0.3,1);}
.about-img-wrap:hover .about-img-inner img{filter:grayscale(0%);}
.about-img-inner::before,.about-img-inner::after{content:'';position:absolute;inset:0;background-image:url('https://riptight.com/wp-content/uploads/2026/03/A_close-up_moody_202603220933-scaled.avif');background-size:cover;background-position:center;opacity:0;mix-blend-mode:screen;transition:opacity 0.05s;}
.about-img-inner::before{background-color:rgba(255,0,0,0.4);mix-blend-mode:multiply;}
.about-img-inner::after{background-color:rgba(0,200,255,0.4);mix-blend-mode:multiply;}
.about-img-wrap.glitching .about-img-inner::before{opacity:1;transform:translateX(-6px);animation:glitch-r 0.3s steps(2) forwards;}
.about-img-wrap.glitching .about-img-inner::after{opacity:1;transform:translateX(6px);animation:glitch-b 0.3s steps(2) forwards;}
@keyframes glitch-r{0%{transform:translateX(-6px) scaleY(1);clip-path:inset(20% 0 60% 0)}25%{transform:translateX(4px) scaleY(1.02);clip-path:inset(50% 0 10% 0)}50%{transform:translateX(-3px);clip-path:inset(70% 0 5% 0)}100%{transform:translateX(0);opacity:0}}
@keyframes glitch-b{0%{transform:translateX(6px) scaleY(0.98);clip-path:inset(10% 0 70% 0)}25%{transform:translateX(-4px);clip-path:inset(60% 0 20% 0)}50%{transform:translateX(2px);clip-path:inset(30% 0 40% 0)}100%{transform:translateX(0);opacity:0}}

/* ══════════════════════════════════════════════════════════════════
   LIGHTBOXES
   ══════════════════════════════════════════════════════════════════ */

#k53-lightbox{position:fixed;inset:0;z-index:9999999;background:rgba(0,0,0,0.96);display:none;flex-direction:column;align-items:center;justify-content:center;}
#k53-lightbox.open{display:flex}
#core-lightbox{position:fixed;inset:0;z-index:9999999;background:rgba(0,0,0,0.96);display:none;flex-direction:column;align-items:center;justify-content:center;}
#core-lightbox.open{display:flex}
#k53-lightbox-img{max-width:88vw;max-height:72vh;object-fit:contain;border-radius:2px;box-shadow:0 32px 80px rgba(0,0,0,0.6);transition:opacity 0.3s ease;}
#k53-lightbox-img.fading{opacity:0}
.k53-lb-header{position:fixed;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:24px 40px;z-index:10;}
.k53-lb-title{font-family:'Plus Jakarta Sans',sans-serif;font-size:0.65rem;text-transform:uppercase;letter-spacing:4px;color:rgba(255,255,255,0.4);}
.k53-lb-close{background:none;border:none;cursor:pointer;color:rgba(255,255,255,0.5);font-size:1.4rem;line-height:1;transition:color 0.2s;padding:0;}
.k53-lb-close:hover{color:#fff}
.k53-lb-nav{position:fixed;top:50%;transform:translateY(-50%);background:none;border:1px solid rgba(255,255,255,0.15);color:rgba(255,255,255,0.5);width:48px;height:48px;cursor:pointer;font-size:1.2rem;display:flex;align-items:center;justify-content:center;transition:border-color 0.2s,color 0.2s;border-radius:0;}
.k53-lb-nav:hover{border-color:rgba(255,255,255,0.5);color:#fff !important;background:rgba(255,255,255,0.1) !important;}
#k53-lb-prev{left:32px}
#k53-lb-next{right:32px}
.k53-lb-footer{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:48px;padding:28px 40px;}
.k53-lb-label{font-family:'Plus Jakarta Sans',sans-serif;font-size:0.7rem;text-transform:uppercase;letter-spacing:3px;color:rgba(255,255,255,0.7);}
.k53-lb-dots{display:flex;gap:8px;align-items:center}
.k53-lb-dot{width:4px;height:4px;border-radius:50%;background:rgba(255,255,255,0.2);cursor:pointer;transition:background 0.3s,transform 0.3s;border:none;padding:0;}
.k53-lb-dot.active{background:#fff;transform:scale(1.4);}

/* ══════════════════════════════════════════════════════════════════
   BACK-TO-TOP BUTTON
   ══════════════════════════════════════════════════════════════════ */

#btt{position:fixed;bottom:120px;right:40px;z-index:9000;width:44px;height:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;pointer-events:none;transition:opacity 0.3s ease;border:1px solid rgba(0,0,0,0.15);background:rgba(255,255,255,0.85);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}
#btt.visible{opacity:1;pointer-events:auto;}
#btt-label{font-family:'Plus Jakarta Sans',sans-serif;font-size:0.6rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#111;position:relative;transition:opacity 0.2s;}
#btt-label::before,#btt-label::after{content:attr(data-text);position:absolute;inset:0;font-family:'Plus Jakarta Sans',sans-serif;font-size:0.6rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;opacity:0;pointer-events:none;}
#btt-label::before{color:#bc3626;}
#btt-label::after{color:#131a44;}
@keyframes bttGlitchMain{0%,100%{transform:translateY(0) scaleY(1);opacity:1}10%{transform:translateY(-6px) scaleY(1.05);opacity:0.7}25%{transform:translateY(8px) scaleY(0.95);opacity:0.9}40%{transform:translateY(-5px);opacity:0.6}55%{transform:translateY(6px);opacity:0.85}70%{transform:translateY(-3px);opacity:1}85%{transform:translateY(2px);opacity:0.9}}
@keyframes bttGlitchR{0%,100%{opacity:0;transform:translateY(0)}15%{opacity:0.9;transform:translateY(-10px);clip-path:inset(0 0 60% 0)}30%{opacity:0.7;transform:translateY(8px);clip-path:inset(65% 0 0 0)}45%{opacity:0.8;transform:translateY(-12px);clip-path:inset(0 0 40% 0)}60%{opacity:0.5;transform:translateY(6px);clip-path:inset(75% 0 0 0)}75%{opacity:0.6;transform:translateY(-8px);clip-path:inset(0 0 25% 0)}90%{opacity:0;transform:translateY(0)}}
@keyframes bttGlitchB{0%,100%{opacity:0;transform:translateY(0)}20%{opacity:0.8;transform:translateY(10px);clip-path:inset(55% 0 0 0)}35%{opacity:0.6;transform:translateY(-8px);clip-path:inset(0 0 65% 0)}50%{opacity:0.7;transform:translateY(12px);clip-path:inset(35% 0 0 0)}65%{opacity:0.5;transform:translateY(-6px);clip-path:inset(0 0 70% 0)}80%{opacity:0.4;transform:translateY(8px);clip-path:inset(20% 0 0 0)}95%{opacity:0;transform:translateY(0)}}
#btt.glitching #btt-label{animation:bttGlitchMain 0.55s steps(3) forwards;}
#btt.glitching #btt-label::before{animation:bttGlitchR 0.55s steps(3) forwards;opacity:1;}
#btt.glitching #btt-label::after{animation:bttGlitchB 0.55s steps(3) forwards;opacity:1;}
@keyframes bttFlash{0%{opacity:0}10%{opacity:0.25}20%{opacity:0}40%{opacity:0.18}55%{opacity:0}75%{opacity:0.12}100%{opacity:0}}
#btt-flash{position:absolute;inset:0;background:white;opacity:0;pointer-events:none;}
#btt.glitching #btt-flash{animation:bttFlash 0.55s steps(3) forwards;}
#dae20-lightbox{position:fixed;inset:0;z-index:9999999;background:rgba(0,0,0,0.96);display:none;flex-direction:column;align-items:center;justify-content:center;}
#dae20-lightbox.open{display:flex}
.dae20-slide{width:min(900px,88vw);height:min(560px,65vh);border-radius:2px;overflow:hidden;box-shadow:0 32px 80px rgba(0,0,0,0.6);transition:opacity 0.3s ease;flex-shrink:0;}
.dae20-slide.fading{opacity:0}
.dae20-lb-header{position:fixed;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:24px 40px;z-index:10;}
.dae20-lb-title{font-family:'Plus Jakarta Sans',sans-serif;font-size:0.65rem;text-transform:uppercase;letter-spacing:4px;color:rgba(255,255,255,0.4);}
.dae20-lb-close{background:none;border:none;cursor:pointer;color:rgba(255,255,255,0.5);font-size:1.4rem;transition:color 0.2s;padding:0;}
.dae20-lb-close:hover{color:#fff}
.dae20-lb-nav{position:fixed;top:50%;transform:translateY(-50%);background:none;border:1px solid rgba(255,255,255,0.15);color:rgba(255,255,255,0.5);width:48px;height:48px;cursor:pointer;font-size:1.2rem;display:flex;align-items:center;justify-content:center;transition:border-color 0.2s,color 0.2s;}
.dae20-lb-nav:hover{border-color:rgba(255,255,255,0.5);color:#fff !important;background:rgba(255,255,255,0.1) !important;}
#dae20-lb-prev{left:32px}
#dae20-lb-next{right:32px}
.dae20-lb-footer{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:48px;padding:28px 40px;}
.dae20-lb-label{font-family:'Plus Jakarta Sans',sans-serif;font-size:0.7rem;text-transform:uppercase;letter-spacing:3px;color:rgba(255,255,255,0.7);}
.dae20-lb-dots{display:flex;gap:8px;align-items:center;}
.dae20-lb-dot{width:4px;height:4px;border-radius:50%;background:rgba(255,255,255,0.2);cursor:pointer;transition:background 0.3s,transform 0.3s;border:none;padding:0;}
.dae20-lb-dot.active{background:#fff;transform:scale(1.4);}
.rt-btn:not(:disabled):hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(0,0,0,0.15) !important;}
.rt-btn:not(:disabled):active{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,0.1) !important;}
.rt-btn--glass:hover{background:rgba(255,255,255,0.45) !important;box-shadow:0 10px 28px rgba(0,0,0,0.1),inset 0 1px 0 rgba(255,255,255,0.9) !important;}

/* ══════════════════════════════════════════════════════════════════
   LEGAL OVERLAY
   ══════════════════════════════════════════════════════════════════ */

#legal-overlay{position:fixed;inset:0;z-index:9999999;background:rgba(0,0,0,0.25);backdrop-filter:blur(1.5px);-webkit-backdrop-filter:blur(1.5px);display:none;align-items:center;justify-content:center;padding:40px 24px;box-sizing:border-box;}
#legal-overlay.open{display:flex;}
#legal-card{background:rgba(255,255,255,0.07);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid #bc3626;border-radius:3px;width:100%;max-width:760px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 32px 80px rgba(0,0,0,0.5),inset 0 1px 0 rgba(255,255,255,0.08);animation:legalFadeIn 0.3s ease forwards;}
@keyframes legalFadeIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
#legal-header{display:flex;align-items:center;justify-content:space-between;padding:28px 36px;border-bottom:1px solid rgba(188,54,38,0.25);flex-shrink:0;}
#legal-title{font-family:'Plus Jakarta Sans',sans-serif;font-size:0.65rem;text-transform:uppercase;letter-spacing:4px;color:rgba(255,255,255,0.6);margin:0;}
#legal-close{background:none;border:none;cursor:pointer;color:rgba(255,255,255,0.4);font-size:1.4rem;line-height:1;padding:0;transition:color 0.2s;}
#legal-close:hover{color:#bc3626;}
#legal-close:focus,#legal-close:focus-visible{outline:none;}
#legal-body{padding:36px;overflow-y:auto;flex:1;color:rgba(255,255,255,0.75);font-family:'Plus Jakarta Sans',sans-serif;font-size:0.875rem;line-height:1.8;scrollbar-width:thin;scrollbar-color:rgba(188,54,38,0.4) transparent;}
#legal-body::-webkit-scrollbar{width:4px;}
#legal-body::-webkit-scrollbar-track{background:transparent;}
#legal-body::-webkit-scrollbar-thumb{background:rgba(188,54,38,0.4);border-radius:2px;}
#legal-body h2{font-family:'Plus Jakarta Sans',sans-serif;font-size:1.4rem;font-weight:600;color:#fff;letter-spacing:-0.5px;margin:0 0 24px;}
#legal-body h3{font-family:'Plus Jakarta Sans',sans-serif;font-size:0.75rem;font-weight:600;text-transform:uppercase;letter-spacing:3px;color:#bc3626;margin:28px 0 10px;}
#legal-body p{margin:0 0 16px;}
#legal-body a{color:#bc3626;text-decoration:none;}
#legal-body a:hover{text-decoration:underline;}
#legal-body hr{border:none;border-top:1px solid rgba(255,255,255,0.08);margin:24px 0;}

/* ══════════════════════════════════════════════════════════════════
   ELEMENTOR COMPATIBILITY
   ══════════════════════════════════════════════════════════════════ */

.header-left-slot{flex:1;display:flex;align-items:center;}
.bunny-logo.h-8{height:38px;max-height:38px;width:auto;display:block;}
.bunny-logo.h-10{height:46px;max-height:46px;width:auto;display:block;}
#hero-bg{object-fit:cover;object-position:center center;}
.work-item.group{overflow:visible;}

/* ══════════════════════════════════════════════════════════════════
   CONTACT SECTION
   ══════════════════════════════════════════════════════════════════ */

#contact { isolation: isolate; }
#contact::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(135deg, rgba(255,255,255,0.28) 0%, rgba(255,255,255,0.08) 35%, transparent 65%); pointer-events: none; z-index: 1; }
#rt-contact-form input::placeholder, #rt-contact-form textarea::placeholder { color: rgba(255,255,255,0.35); }
#cf7-reset-btn { color: rgba(255,255,255,0.7) !important; border-color: rgba(255,255,255,0.25) !important; }
#calc-quote-btn:not(:disabled) { background: linear-gradient(135deg,#787878 0%,#444444 100%) !important; color: #fff !important; }

/* ══════════════════════════════════════════════════════════════════
   SERVICES COLOUR OVERRIDES
   ══════════════════════════════════════════════════════════════════ */

#services { color: #111 !important; }
#services h2 { color: #111 !important; }
#services p { color: #2D2D2D !important; }
#services .service-item h3, #services .service-item:not(.expanded) h3 { color: #111 !important; -webkit-text-fill-color: #111 !important; background-image: none !important; opacity: 1 !important; }
#services .service-item.expanded h3 { color: #bc3626 !important; -webkit-text-fill-color: #bc3626 !important; background-image: none !important; }
#services .service-process-label { color: rgba(45,45,45,0.4) !important; opacity: 1; }
#services .service-process-step { color: #2D2D2D !important; opacity: 0.7; }
#services .service-process-step * { color: #2D2D2D !important; }
#services .service-process-step-title { color: #bc3626 !important; }
#services .service-inner-text p { color: #2D2D2D !important; }
#services .toggle-icon { color: #2D2D2D !important; }
#services span:not(.accent-dot):not(.service-process-step-title):not(.toggle-icon):not(.service-bg-num) { color: #2D2D2D !important; }
.svc-num-1 { color: #E8621A !important; }
.svc-num-2 { color: #2E86AB !important; }
.svc-num-3 { color: #A23B72 !important; }
.svc-num-4 { color: #3D9970 !important; }
.svc-num-5 { color: #F7C948 !important; }

/* ══════════════════════════════════════════════════════════════════
   CONTACT: TIMESLOT PILLS
   ══════════════════════════════════════════════════════════════════ */

.ts-pill { font-family:'Plus Jakarta Sans',sans-serif; font-size:0.55rem; text-transform:uppercase; letter-spacing:2px; color:rgba(255,255,255,0.7) !important; background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.2); border-radius:100px; padding:8px 14px; cursor:pointer; transition:all 0.2s ease; display:inline-block; }
.ts-pill:hover { border-color:rgba(188,54,38,0.6) !important; color:#fff !important; background:rgba(255,255,255,0.12) !important; }
.ts-pill.ts-active { background:rgba(188,54,38,0.15) !important; border-color:#bc3626 !important; color:#fff !important; }

/* ══════════════════════════════════════════════════════════════════
   RESPONSIVE — TABLET & DESKTOP (min-width: 768px)
   ══════════════════════════════════════════════════════════════════ */

@media(min-width:768px){
.about-flex-row{flex-direction:row;}
.about-half{width:50%;}
.service-text-col{width:66.666%;}
.md\:flex{display:flex;}
.md\:hidden{display:none;}
.hidden.md\:flex{display:flex;}
.md\:flex-row{flex-direction:row;}
.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}
.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr));}
.md\:col-span-1{grid-column:span 1/span 1;}
.md\:col-span-2{grid-column:span 2/span 2;}
.md\:w-1\/2{width:50%;}
.md\:w-2\/3{width:66.666667%;}
.md\:text-2xl{font-size:1.5rem;line-height:2rem;}
.md\:text-4xl{font-size:2.25rem;line-height:2.5rem;}
.md\:text-lg{font-size:1.125rem;line-height:1.75rem;}
.cf7-grid{grid-template-columns:repeat(2,1fr);}
}

/* ══════════════════════════════════════════════════════════════════
   RESPONSIVE — MOBILE (max-width: 767px)
   ══════════════════════════════════════════════════════════════════ */

@media(max-width:767px){
.service-process-step{flex-direction:row;gap:8px;align-items:flex-start;}
.service-process-step-title{min-width:90px;flex-shrink:0;padding-top:2px;}
.service-header{padding:20px 16px;}
br.svc-br{display:block;}
.md\:flex{display:none;}
.md\:hidden{display:block;}
.md\:grid-cols-2,.md\:grid-cols-3,.md\:grid-cols-4{grid-template-columns:1fr !important;}
.md\:col-span-1,.md\:col-span-2{grid-column:span 1 !important;}
.hero{height:65vh;min-height:420px;}
.section-spacing{padding:60px 5%;}
.hero-text{bottom:auto;top:50%;transform:translateY(-30%);padding-left:6%;padding-right:6%;max-width:100%;}
.calc-cat-grid{grid-template-columns:1fr !important;gap:16px !important;}
.calc-item{min-width:0 !important;width:100%;}
.k53-lb-footer,.dae20-lb-footer{gap:16px;padding:16px 20px;}
.k53-lb-nav,.dae20-lb-nav{width:36px;height:36px;font-size:1rem;}
#k53-lb-prev,#dae20-lb-prev{left:12px;}
#k53-lb-next,#dae20-lb-next{right:12px;}
.k53-lb-header,.dae20-lb-header{padding:16px 20px;}
.footer-grid{gap:2rem !important;}
.core-featured{grid-template-columns:1fr;margin-bottom:48px;}
.core-visual{min-height:260px;}
.core-info{padding:32px 24px;}

.work-masonry{grid-template-columns:1fr;grid-auto-rows:260px;}
.work-item--tall,.work-item--mid,.work-item--short{grid-row:span 1;}
#cf7-submit{width:100%;box-sizing:border-box;}
#cf7-reset-btn{width:auto;padding:12px 24px !important;font-size:0.55rem !important;opacity:0.6;}
.cf7-btn-row{flex-direction:column;align-items:stretch !important;}
}

@media(max-width:900px){
.core-featured{grid-template-columns:1fr;}
.core-visual{min-height:260px;}
.core-info{padding:36px 28px;}
}/* End custom CSS */