*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--font-body),sans-serif;background:var(--s);color:var(--p);overflow-x:hidden;margin:0}
h1,h2,h3,.fd{font-family:var(--font-heading),sans-serif;letter-spacing:.02em}

/* Reveal */
.rv{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}
.rv.s1{transition-delay:.12s}.rv.s2{transition-delay:.24s}.rv.s3{transition-delay:.36s}
.rv.on{opacity:1;transform:none}

/* Fade only */
.rvf{opacity:0;transition:opacity .85s ease}
.rvf.on{opacity:1}

/* CTA brass sweep */
.btn-c{position:relative;overflow:hidden;background:var(--a);transition:transform .2s,box-shadow .2s;display:inline-flex;align-items:center;justify-content:center}
.btn-c::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transform:translateX(-120%);transition:transform .55s}
.btn-c:hover::before{transform:translateX(120%)}
.btn-c:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(var(--a-rgb),.5)}

/* Ghost button */
.btn-g{background:transparent;border:1.5px solid rgba(var(--a-rgb),.5);color:var(--a);transition:background .25s,border-color .25s;display:inline-flex;align-items:center;justify-content:center}
.btn-g:hover{background:rgba(var(--a-rgb),.08);border-color:var(--a)}

/* Card hover */
.ch{transition:transform .28s cubic-bezier(.16,1,.3,1),box-shadow .28s}
.ch:hover{transform:translateY(-5px);box-shadow:0 22px 44px rgba(var(--p-rgb),.14)}

/* Animated underline */
.al{position:relative}
.al::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:1.5px;background:var(--a);transition:width .3s}
.al:hover::after{width:100%}

/* Hero diagonal — clip-path on image panel */
.hero-img-panel{clip-path:polygon(6% 0, 100% 0, 100% 100%, 0% 100%)}
@media(max-width:1023px){.hero-img-panel{clip-path:none}}

/* Vertical editorial text */
.v-text{writing-mode:vertical-rl;text-orientation:mixed;transform:rotate(180deg);font-size:10px;letter-spacing:.3em;font-weight:700;text-transform:uppercase;white-space:nowrap}

/* Lock pattern texture on dark panel */
.lock-bg{background-image:repeating-linear-gradient(90deg,rgba(255,255,255,.03) 0px,rgba(255,255,255,.03) 1px,transparent 1px,transparent 32px);background-size:32px 32px}

/* Service card number */
.svc-num{font-family:var(--font-heading),sans-serif;font-size:clamp(52px,8vw,96px);font-weight:700;line-height:1;position:absolute;top:-8px;right:12px;opacity:.07;color:var(--p)}

/* Stats */
.stat-v{font-family:var(--font-heading),sans-serif;font-size:clamp(40px,5.5vw,68px);font-weight:700;line-height:1;color:var(--a)}

/* Urgence pill */
.upill{display:inline-flex;align-items:center;gap:8px;padding:6px 14px 6px 6px;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}

/* Accent bar — diagonal brass stripe */
.diag-bar{position:absolute;top:0;left:0;width:4px;height:100%;background:var(--a)}

/* Quote testimonial */
.t-quote{font-size:48px;line-height:1;font-family:var(--font-heading),sans-serif;color:var(--a);opacity:.35;display:block;margin-bottom:-10px}

/* Navbar */
#nav{transition:background .3s,box-shadow .3s;background:var(--p)}
#nav.sc{box-shadow:0 2px 20px rgba(0,0,0,.3)}

/* Force white text on dark primary-color backgrounds — prevents color:var(--p) inheritance */
[style*="background:var(--p)"]{color:#fff}

/* Mobile menu */
#mmenu{transform:translateX(100%);opacity:0;pointer-events:none;transition:transform .35s cubic-bezier(.16,1,.3,1),opacity .3s}
#mmenu.op{transform:translateX(0);opacity:1;pointer-events:all}

/* Form focus */
input:focus,select:focus,textarea:focus{outline:2px solid var(--a);outline-offset:1px}
