/* subtle scroll animations: only active when JS adds .js-anim */
.js-anim .rv{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease;transition-delay:var(--d,0s);will-change:opacity,transform}
.js-anim .rv.in{opacity:1;transform:none}
.js-anim .orn.rv{opacity:1;transform:scaleX(.2);transition:transform .8s ease .1s}
.js-anim .orn.rv.in{transform:scaleX(1)}
.js-anim .hero-copy>*,.js-anim .hero-media{animation:heroIn .8s ease both}
.js-anim .hero-copy>*:nth-child(2){animation-delay:.1s}.js-anim .hero-copy>*:nth-child(3){animation-delay:.2s}
.js-anim .hero-copy>*:nth-child(4){animation-delay:.3s}.js-anim .hero-copy>*:nth-child(5){animation-delay:.4s}
.js-anim .hero-media{animation-delay:.3s}
@keyframes heroIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.card,.cat img,.btn{transition:transform .25s ease,box-shadow .25s ease,background-color .25s ease}
.card:hover{transform:translateY(-4px);box-shadow:0 10px 28px rgba(189,160,58,.18)}
.cat:hover img{transform:scale(1.04);box-shadow:0 0 22px rgba(189,160,58,.28)}
.btn:hover{transform:translateY(-2px)}
@media(prefers-reduced-motion:reduce){.js-anim .rv,.js-anim .orn.rv{opacity:1!important;transform:none!important;transition:none!important}.js-anim .hero-copy>*,.js-anim .hero-media{animation:none!important}.card:hover,.cat:hover img,.btn:hover{transform:none}}

@media(min-width:760px){.partner-mono{grid-template-columns:repeat(4,1fr)!important}.partner-mono li{min-height:150px!important}.partner-mono img{max-height:96px!important}}
.partner-mono{margin-top:22px;text-align:center}
.partner-mono img{max-height:84px;opacity:.92}
.ow-phone{text-align:center;margin-top:16px;font-size:1.25rem}.ow-phone a{color:var(--gold-l,#d8c373);text-decoration:none;font-weight:600}.ow-phone a:hover{text-decoration:underline}
.ow-phone+.ow-cta{margin-top:16px}
.ow-cta{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}
.partner-mono img[src*="neat"]{max-height:66px!important;opacity:.85}

/* ---- Contact form (deck) ---- */
.eb strong.cfp{font-size:1.45rem;color:var(--gold-l)}
.contact-card{max-width:760px;margin:0 auto;text-align:left}
.contact-card .form-lead{color:var(--mute);margin-bottom:18px;text-align:center}
.contact-card .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 20px}
.contact-card .form-field label{display:block;margin-bottom:6px;color:var(--text);font-weight:600;font-size:.95rem}
.contact-card .required-mark{color:var(--gold-l)}
.contact-card input[type=text],.contact-card input[type=tel],.contact-card input[type=email]{width:100%;box-sizing:border-box;padding:14px 14px;background:#0d0c0a;color:var(--text);border:1px solid rgba(189,160,58,.5);border-radius:2px;font:inherit;font-size:1rem}
.contact-card input:focus{outline:2px solid var(--gold-l);outline-offset:2px;border-color:var(--gold-l)}
.contact-card .form-actions{text-align:center;margin-top:26px}
.contact-card .sip-submit{cursor:pointer;border:0}
.contact-card .sip-submit[disabled]{opacity:.6;cursor:wait}
.sip-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.sip-form-status{margin-top:20px;padding:14px 16px;border:1px solid var(--gold);text-align:center;color:var(--text);background:rgba(189,160,58,.1)}
.sip-form-status.is-error{border-color:#e08a7a;background:rgba(224,138,122,.12)}
.sip-form-status[hidden]{display:none}
.sip-form-note{margin-top:16px;text-align:center;color:var(--mute);font-size:.9rem}
#contact:focus{outline:none}
@media(max-width:640px){.contact-card .form-grid{grid-template-columns:1fr}}

/* ---- Video pop-up ---- */
.video-open{display:block;width:100%;padding:0;border:0;background:none;cursor:pointer;font:inherit;color:inherit}
.video-open img{display:block;width:100%;height:auto}
.video-open:focus-visible{outline:3px solid var(--gold-l);outline-offset:4px}
.video-modal{padding:0;border:1px solid var(--gold);background:#000;max-width:none;max-height:none;width:min(420px,92vw);overflow:visible;margin:auto}
.video-modal::backdrop{background:rgba(5,4,3,.88)}
.video-modal video{display:block;width:100%;max-height:88vh;background:#000}
.video-close{position:absolute;top:-18px;right:-18px;width:40px;height:40px;border-radius:50%;border:1px solid var(--gold);background:var(--bg);color:var(--gold-l);font-size:26px;line-height:1;cursor:pointer;z-index:2}
.video-close:focus-visible{outline:3px solid var(--gold-l);outline-offset:2px}
@media(max-width:480px){.video-close{top:-14px;right:-6px}}
.hero-media .video-open{border:1px solid var(--gold);padding:8px;max-width:340px;margin:0 auto;border-radius:2px;background:var(--bg2)}
