/* Base */
:root{--bg:#08111e;--panel:#0e1a29;--text:#f1f5fc;--muted:#9eafc4;--blue:#6caeff;--line:#233044;--max:1180px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:100px}
body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,Segoe UI,Arial,sans-serif;font-size:16px;line-height:1.65}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--blue);outline-offset:5px}
img{display:block;max-width:100%}
[hidden]{display:none!important}
h1,h2,h3,p{margin-top:0}
h1{font-size:clamp(40px,4.1vw,58px);line-height:1.12;letter-spacing:-2.2px;font-weight:650;margin-bottom:26px}
h2{font-size:39px;line-height:1.18;letter-spacing:-1.35px;font-weight:600;margin-bottom:0}
h3{font-size:18px;font-weight:600;line-height:1.35;letter-spacing:-.4px;margin-bottom:15px}
em{font-style:normal;color:var(--blue)}
.container{width:calc(100% - 96px);max-width:var(--max);margin:auto}
.skip{position:absolute;top:-100px;left:20px;z-index:100;background:#fff;color:#000;padding:10px}
.skip:focus{top:12px}

/* Shared components */
.eyebrow{font-size:10px;letter-spacing:2px;color:var(--blue);font-weight:700;margin:0 0 24px;display:flex;align-items:center;gap:10px}
.eyebrow>span{width:6px;height:6px;background:var(--blue);border-radius:50%}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:22px;border:0;border-radius:5px;font-size:13px;font-weight:650;line-height:1.5;padding:15px 21px;cursor:pointer}
.primary{color:#071323;background:#8abeff;transition:background .2s,transform .2s}
.primary:hover{background:#b1d4ff;transform:translateY(-2px)}
.secondary{color:#cbdcf1;background:transparent;border:1px solid #3b5370}
.secondary:hover{background:#1b3049}
button:disabled{opacity:.65;cursor:wait;transform:none}
.text-link{font-size:13px;font-weight:600;display:inline-flex;gap:18px;align-items:center}
.text-link span{color:var(--blue)}
.linkedin-link{color:var(--blue);gap:9px}
.linkedin-link .linkedin-link-label{color:inherit}
.linkedin-button{border:1px solid #45678e;color:#d9eaff;background:#13273d;margin-top:12px;gap:10px}
.linkedin-button:hover{background:#1b3552}
.linkedin-icon{width:21px;height:21px;flex:0 0 21px;display:block}
.linkedin-button .linkedin-icon{width:23px;height:23px;flex-basis:23px}
.section{padding-top:98px;padding-bottom:98px}
.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:70px;margin-bottom:42px}
.section-heading>div{flex:1}
.section-heading>p{max-width:400px;font-size:14px;color:var(--muted);margin-bottom:4px}

/* Header */
.header{position:sticky;top:0;z-index:20;background:rgba(8,17,30,.96);border-bottom:1px solid var(--line)}
.nav{height:92px;display:flex;align-items:center;justify-content:space-between}
.brand{display:inline-flex;align-items:center}
.brand-logo{width:240px;max-width:240px;height:64px;object-fit:contain}
nav{display:flex;align-items:center;gap:18px}
nav a{font-size:13px;color:#bac6d6}
nav a:hover{color:#fff}
.nav-contact{border:1px solid #3a4c66;border-radius:5px;padding:10px 17px;color:#fff}
.nav-contact span{margin-left:16px;color:var(--blue)}
.menu-toggle{display:none}
.lang-toggle{display:inline-flex;align-self:center;padding:3px;border:1px solid #3a4c66;border-radius:999px;background:#0b1626}
nav .lang-toggle a{min-width:34px;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.06em;text-align:center;color:#9eafc4;transition:background .2s,color .2s}
nav .lang-toggle a:hover{color:#fff}
nav .lang-toggle a[aria-current]{background:var(--blue);color:#08111e}
.lang-toggle a:focus-visible{outline:2px solid var(--blue);outline-offset:2px}

/* Hero */
.hero{display:grid;grid-template-columns:1.17fr 1fr;gap:70px;align-items:center;padding-top:70px;padding-bottom:78px}
.lead{max-width:510px;color:var(--muted);font-size:17px;line-height:1.8}
.hero-actions{display:flex;align-items:center;gap:25px;margin:32px 0}
.hero-note{display:flex;gap:9px;color:#b5c4d7;font-size:12px}
.check{color:#8acaad}
.hero-visual{position:relative;background:#101e30;border:1px solid #2b3b52;border-radius:12px;overflow:hidden;box-shadow:0 25px 90px #0005;transform:rotate(1deg)}
.visual-top{padding:18px 23px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #24344b}
.mini-label{font-size:9px;letter-spacing:2px;color:#b3c4d9}
.dots{color:#506782;font-size:8px;letter-spacing:3px}
.hero-image{width:100%;height:414px;object-fit:contain;background:#071a30;object-position:50% 50%}
.visual-caption{padding:18px 21px;font-size:11px;display:flex;align-items:center;gap:9px;background:#111f30}
.pulse{height:6px;width:6px;border-radius:50%;background:#7bccae}
.caption-arrow{margin-left:auto;color:var(--blue)}
.image-note{position:absolute;bottom:65px;right:12px;font-size:9px;color:#c3d0dd;background:#08111ec9;padding:2px 6px;border-radius:3px}
.technology-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#0b1624}
.tech-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:25px 0;color:#b2bfd0;font-size:15px;letter-spacing:-.3px}
.tech-caption{font-size:8px;letter-spacing:1.5px;max-width:155px;line-height:1.8;color:#8297af}

/* Services */
.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.service-card{position:relative;border:1px solid var(--line);border-radius:8px;padding:25px 22px;background:linear-gradient(135deg,#132134,#0d1726);transition:transform .2s,border-color .2s}
.service-card:hover{transform:translateY(-4px);border-color:#547ca8}
.service-card p{font-size:13px;color:var(--muted);line-height:1.8;margin-bottom:23px}
.surveillance-card p{max-width:750px}
.service-icon{display:flex;width:39px;height:39px;align-items:center;justify-content:center;border:1px solid #304866;border-radius:8px;color:var(--blue);font-size:26px;margin-bottom:34px}
.service-icon svg{width:22px;fill:none;stroke:currentColor;stroke-width:1.5}
.card-number{position:absolute;right:22px;top:29px;color:#6f829a;font-size:10px}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.tags span{border:1px solid #293c55;border-radius:4px;padding:3px 6px;font-size:9px;color:#bfd0e5}

/* Ubiquiti products */
.unifi-section{padding:84px 0;background:#eaf0f7;color:#102139}
.unifi-section .eyebrow{color:#306cae}
.unifi-section .section-heading>p{color:#53667e}
.product-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}
.product{background:#f9fbfe;border:1px solid #d5deeb;border-radius:10px;overflow:hidden}
.product-visual{background:radial-gradient(ellipse at center,#fff,#e4ebf5);position:relative;min-height:230px;display:flex;align-items:center;justify-content:center;padding:25px 30px 55px}
.product-visual img{height:170px;width:100%;object-fit:contain;mix-blend-mode:multiply}
.product-label{position:absolute;bottom:21px;left:27px;font-size:9px;font-weight:700;letter-spacing:1.8px;color:#576c86}
.product-copy{padding:26px 28px}
.product-copy p{color:#54667d;font-size:14px;margin-bottom:0}
.unifi-note{font-size:11px;color:#60748b;text-align:center;margin:28px 0 0}

/* About & values */
.about{display:grid;grid-template-columns:1fr 1.12fr;gap:96px;align-items:center}
.about-panel{padding:36px 40px 40px;border:1px solid #2e4159;border-radius:10px;background:radial-gradient(ellipse at left top,#1a3653,#0d1929 80%)}
.about-logo{width:100%;max-width:330px;height:auto;aspect-ratio:3/1;object-fit:contain;margin:26px auto 32px}
.about-quote{font-size:27px;line-height:1.45;letter-spacing:-.7px;margin:25px 0 30px}
.about-signature{display:flex;gap:17px;align-items:center}
.about-signature>div{min-width:0}
.about-signature b{display:block;font-size:12px}
.about-signature div>span{display:block;margin-top:4px;font-size:10px;line-height:1.6;color:var(--muted)}
.profile-avatar{position:relative;display:block;width:78px;height:78px;flex:0 0 78px;border:2px solid #8abeff;border-radius:50%;overflow:hidden;background:#13263b}
.profile-avatar img{width:100%;height:100%;object-fit:cover}
.about-context{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;border-top:1px solid #304761;margin-top:25px;padding-top:20px}
.about-context b{font-size:25px;line-height:1.2;color:var(--blue);font-weight:600;letter-spacing:-.5px}
.about-context span{font-size:11px;color:#aabed5}
.about-copy h2{margin-bottom:25px}
.about-copy p:not(.eyebrow){color:var(--muted);font-size:14px}
.about-copy .text-link{margin-top:12px}
.about-links{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:10px}
.about-values{grid-column:1 / -1;width:100%;padding-top:48px;border-top:1px solid var(--line)}
.about-values .section-heading{gap:40px}
.about-values h2{font-size:32px}
.values-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:20px}
.value-card{grid-column:span 2;padding:29px;border:1px solid #365674;border-radius:9px;background:linear-gradient(135deg,#14283e,#0d1929);border-top:3px solid var(--blue)}
.value-card:nth-child(n+4){grid-column:span 3}
.value-number{font-size:10px;letter-spacing:1.5px;color:var(--blue)}
.value-card h3{font-size:21px;margin:21px 0 14px}
.value-card p{font-size:14px;color:var(--muted);margin:0}

/* Approach */
.process-section{padding:75px 0 85px;background:#0c1827;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.steps{margin-top:43px;display:grid;grid-template-columns:repeat(4,1fr);gap:30px}
.steps article{border-top:1px solid #36516e;padding-top:22px}
.steps article>span{font-size:10px;letter-spacing:1.5px;color:var(--blue)}
.steps h3{margin:20px 0 13px;font-size:17px}
.steps p{font-size:13px;color:var(--muted);margin:0}

/* Pricing */
.pricing-section{padding:78px 0;background:#0b1726;border-bottom:1px solid var(--line)}
.pricing-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.pricing-card{padding:34px;border:1px solid #2d415b;border-radius:10px;background:#101f31}
.pricing-card .eyebrow{margin-bottom:22px}
.pricing-card h3{font-size:25px}
.pricing-card>p:not(.eyebrow){font-size:14px;color:var(--muted);max-width:480px}
.pricing-card>p.vat-note{color:var(--blue);font-size:12px;margin-bottom:20px}
.pricing-card .text-link{margin-top:10px}
.pricing-hourly{border-color:#4b78a7;background:linear-gradient(135deg,#152e49,#101f31)}
.hourly-price{font-size:39px;font-weight:600;letter-spacing:-1.2px;line-height:1.2;margin-bottom:10px}
.hourly-price span{font-size:16px;font-weight:400;letter-spacing:0;color:#bfd2e9}

/* Warranty & support */
.warranty-section{padding:78px 0;background:#0c1827;border-bottom:1px solid var(--line)}
.warranty-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.warranty-card{padding:28px;border:1px solid #2b405a;border-radius:8px;background:#102035}
.warranty-number{font-size:10px;letter-spacing:1.2px;color:var(--blue)}
.warranty-card h3{font-size:19px;margin:20px 0 15px}
.warranty-card p{font-size:13px;color:var(--muted);margin-bottom:0}
.warranty-note{font-size:11px;color:#a7bad0;margin:24px 0 18px}

/* Contact */
.contact{display:grid;grid-template-columns:1fr 1fr;gap:100px}
.contact>div>p:not(.eyebrow){color:var(--muted);font-size:15px;margin-top:25px;max-width:390px}
.contact h2{font-size:45px}
.contact-scope{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.contact-scope .scope-tag{display:flex;align-items:center;gap:6px;font-size:11px;color:#c3d2e5;background:rgba(76,140,255,.08);border:1px solid #2b3d53;border-radius:999px;padding:7px 12px}
.contact-scope .scope-tag svg{width:14px;height:14px;color:var(--blue);flex-shrink:0}
#contact-details{margin:16px 0}
#contact-details a{display:block;color:var(--blue);margin:12px 0}
#contact-details a.email-link{display:inline-flex;align-items:center;margin:0}
.email-link{display:inline-flex;align-items:center;gap:8px;color:var(--blue);background:rgba(76,140,255,.08);border:1px solid #2b3d53;border-radius:8px;padding:9px 14px;font-size:13px;text-decoration:none}
.email-link:hover{background:rgba(76,140,255,.16)}
.email-link svg{width:16px;height:16px;flex-shrink:0}

/* Project brief form */
form{background:#0f1d2d;border:1px solid #2b3d53;border-radius:10px;padding:30px}
form h3{font-size:21px;margin-bottom:23px}
label{display:block;font-size:11px;color:#cbd6e5;margin-bottom:7px}
label span{color:#8e9fb5}
input,select,textarea{width:100%;color:var(--text);border:1px solid #344760;background:#091422;border-radius:4px;padding:11px 12px;font-size:12px;margin-bottom:17px}
input::placeholder,textarea::placeholder{color:#879bb4;opacity:1}
textarea{resize:vertical;min-height:105px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.form-intro{font-size:12px;color:var(--muted);margin:-10px 0 22px}
.field-help{display:block;font-size:10px;line-height:1.5;color:var(--muted);margin:-10px 0 17px}
.hp-field{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.brief-progress{display:flex;list-style:none;margin:0 0 16px;padding:0;gap:12px}
.brief-progress li{flex:1;display:flex;align-items:center;gap:7px;color:#8fa5be;font-size:10px;white-space:nowrap}
.brief-progress li>span{width:24px;height:24px;border:1px solid #3c536f;border-radius:50%;display:grid;place-items:center;flex:0 0 24px}
.brief-progress li[aria-current=step]{color:#d7eaff}
.brief-progress li[aria-current=step]>span{background:#8abeff;color:#08111e;border-color:#8abeff}
.brief-progress li.completed>span{border-color:#8abeff;color:#8abeff}
.brief-step-status{font-size:11px;color:var(--blue);margin:0 0 18px}
.brief-fieldset{border:0;border-top:1px solid #2b3d53;margin:0 0 18px;padding:18px 0 0;min-width:0}
.brief-fieldset legend{font-size:12px;font-weight:600;color:#d6e5f7;padding:0 12px 0 0}
.brief-step legend{outline-offset:4px}
.brief-step input:focus:invalid,.brief-step select:focus:invalid,.brief-step textarea:focus:invalid{border-color:#f2ca91}
.project-extra{border:1px solid #2c435e;border-radius:5px;padding:12px;margin-bottom:18px}
.project-extra summary{font-size:12px;color:#bdd7f4;cursor:pointer}
.project-extra summary span{color:var(--muted);font-size:10px}
.project-extra[open] summary{margin-bottom:17px}
.project-extra textarea{margin-bottom:0}
.brief-review{background:#0a1728;border:1px solid #2d4562;border-radius:5px;padding:14px}
.brief-review b{font-size:11px;color:#c7def8}
.brief-review p{font-size:11px;color:var(--muted);overflow-wrap:anywhere;margin:6px 0 0}
.brief-validation-hint{font-size:12px;color:#f2ca91;margin:16px 0 12px}
.brief-validation-hint:empty{display:none}
form .button{width:100%}
.brief-actions{display:flex;gap:12px}
.brief-actions .button{width:auto}
.brief-actions #brief-next,.brief-actions #project-submit{flex:1}
.brief-actions .button[aria-disabled="true"]{opacity:.65;cursor:pointer;transform:none}
.form-help{font-size:10px;color:#9dacc0;line-height:1.6;margin:13px 0 0}
#form-status{font-size:12px;color:#abd9c6;margin:12px 0 0}
#form-status.error{color:#f2ca91}
#form-status:empty{display:none}
.brief-copy{margin-top:12px}
/* After sending, the form shows only the thank-you panel (and any PDF error below it). */
#project-form.sent{align-self:start}
#project-form.sent>:not(.brief-sent):not(#form-status){display:none!important}
.brief-sent{text-align:center;padding:18px 6px 6px;outline:0}
.brief-sent-icon{display:grid;place-items:center;width:52px;height:52px;margin:0 auto 20px;border:1px solid #8abeff;border-radius:50%;background:#13273d;color:#8abeff;font-size:22px;font-weight:700}
.brief-sent h3{margin-bottom:14px}
.brief-sent p{font-size:14px;color:var(--muted);max-width:420px;margin:0 auto 12px}
.brief-sent .brief-sent-note{font-size:12px;margin-bottom:22px}

/* Footer */
footer{border-top:1px solid var(--line);background:#07101a}
.footer-top{display:flex;align-items:center;justify-content:space-between;gap:22px;padding-top:34px;padding-bottom:30px}
.footer-top .brand-logo{height:68px}
.footer-top p{color:#9caec3;font-size:12px;margin:0}
.footer-top>a:last-child{font-size:11px;color:#bdcce0}
.footer-bottom{border-top:1px solid #1d2d41;padding-top:18px;padding-bottom:22px;display:flex;justify-content:space-between;gap:20px;color:#8295ad;font-size:9px}
.cookie-settings{background:none;border:0;padding:0;color:inherit;font-size:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.cookie-settings:hover{color:#bdcce0}

/* Cookie banner: a small corner card that never blocks the page */
.cookie-banner{position:fixed;left:20px;bottom:20px;z-index:30;max-width:380px;padding:18px 20px;background:var(--panel);border:1px solid #2d405a;border-radius:8px;box-shadow:0 12px 34px rgba(0,0,0,.4);animation:cookie-in .35s ease-out}
.cookie-banner p{font-size:13px;line-height:1.55;color:#c6d3e3;margin-bottom:14px}
.cookie-actions{display:flex;gap:10px}
.cookie-actions .button{flex:1;justify-content:center;padding:10px 16px}
@keyframes cookie-in{from{opacity:0;transform:translateY(12px)}}
@media(max-width:760px){.cookie-banner{left:16px;right:16px;bottom:16px;max-width:none}}
@media(prefers-reduced-motion:reduce){.cookie-banner{animation:none}}

/* Responsive */
@media(min-width:1450px){
.hero{padding-top:85px;padding-bottom:90px}
}
@media(max-width:1100px){
.container{width:calc(100% - 60px)}
.hero{gap:35px}
h1{font-size:46px}
.hero-actions{gap:18px;flex-wrap:wrap}
.service-grid{grid-template-columns:repeat(2,1fr)}
.service-card{padding:28px}
.about{gap:45px}
.contact{gap:45px}
.tech-inner{font-size:12px}
.steps{gap:20px}
}
@media(min-width:761px) and (max-width:1080px){
.nav .brand-logo{width:175px;max-width:175px}
.nav nav a{font-size:12px}
.nav .nav-contact{padding:9px 11px}
.nav .nav-contact span{margin-left:9px}
}
/* Collapsed navigation */
@media(max-width:1000px){
.menu-toggle{display:flex;gap:10px;background:transparent;border:1px solid #3a4c66;color:#dce6f3;border-radius:4px;padding:7px 11px;font-size:12px}
nav{display:none;position:absolute;left:0;right:0;top:92px;background:#0e1b2b;padding:20px;flex-direction:column;align-items:stretch;border-bottom:1px solid #344760}
nav.open{display:flex}
.lang-toggle{align-self:flex-start}
.nav-contact{display:flex;justify-content:space-between}
}
@media(max-width:760px){
.container{width:calc(100% - 40px)}
.nav{height:74px}
nav{top:74px}
.brand-logo{width:195px;max-width:195px;height:56px}
.hero{grid-template-columns:1fr;gap:38px;padding-top:42px;padding-bottom:45px}
h1{font-size:45px;letter-spacing:-1.8px}
h2{font-size:33px}
.eyebrow{font-size:9px;letter-spacing:1.5px;margin-bottom:20px}
.lead{font-size:15px}
.hero-actions{gap:22px;margin:26px 0}
.hero-image{height:355px}
.hero-visual{transform:none;max-width:490px;width:100%;margin:auto}
.tech-inner{flex-wrap:wrap;justify-content:flex-start;column-gap:25px;row-gap:15px;font-size:12px}
.tech-caption{max-width:none;flex-basis:100%}
.section{padding-top:60px;padding-bottom:60px}
.section-heading{display:block;margin-bottom:30px}
.section-heading>p{margin-top:22px;max-width:none}
.service-grid{gap:12px}
.service-card{padding:22px 17px}
.service-card h3{font-size:17px}
.service-card p{font-size:12px}
.service-icon{margin-bottom:25px}
.unifi-section{padding:58px 0}
.product-grid{grid-template-columns:1fr;gap:20px}
.product-visual{min-height:205px}
.about{grid-template-columns:1fr;gap:38px}
.about-panel{padding:36px 30px 30px}
.about-logo{max-width:290px;margin:24px auto 30px}
.about-quote{font-size:25px}
.about-values{padding-top:32px}
.about-values h2{font-size:28px}
.values-grid{grid-template-columns:1fr;gap:16px}
.value-card,.value-card:nth-child(n+4){grid-column:auto;padding:25px}
.steps{grid-template-columns:1fr 1fr;gap:30px 20px}
.process-section{padding:56px 0}
.pricing-section{padding:55px 0}
.pricing-grid{grid-template-columns:1fr;gap:18px}
.pricing-card{padding:27px}
.hourly-price{font-size:35px}
.warranty-section{padding:55px 0}
.warranty-grid{grid-template-columns:1fr;gap:16px}
.warranty-card{padding:25px}
.contact{grid-template-columns:1fr;gap:30px}
.contact h2{font-size:37px}
form{padding:24px}
.footer-top{flex-wrap:wrap}
.footer-top p{flex-basis:100%;order:3}
.footer-bottom{flex-direction:column;gap:9px}
}
@media(max-width:390px){
h1{font-size:39px}
.service-grid{grid-template-columns:1fr}
.steps{grid-template-columns:1fr}
.hero-actions{align-items:flex-start;flex-direction:column}
.form-row{grid-template-columns:1fr;gap:0}
.hero-image{height:300px}
.brief-progress{gap:6px}
.brief-progress li{gap:5px;font-size:9px}
.brief-progress li>span{width:21px;height:21px;flex-basis:21px}
}
@media(prefers-reduced-motion:reduce){
html{scroll-behavior:auto}
*{transition:none!important}
}
