/**
 * Styling for the widgets that had no counterpart in the reference build,
 * plus the resets that let every widget survive an arbitrary host theme.
 */

/* --------------------------------------------------------- theme insulation */
/* These widgets are dropped into whatever theme the site runs, so the handful
   of properties the layouts depend on are set explicitly rather than inherited. */
.elementor-widget[class*="securcast-"] *,
.elementor-widget[class*="securcast-"] *::before,
.elementor-widget[class*="securcast-"] *::after{box-sizing:border-box}

.elementor-widget[class*="securcast-"] ul{list-style:none;margin:0;padding:0}
.elementor-widget[class*="securcast-"] li{margin:0;list-style:none}
.elementor-widget[class*="securcast-"] a{box-shadow:none;text-decoration:none}
.elementor-widget[class*="securcast-"] img{max-width:100%;height:auto}
.elementor-widget[class*="securcast-"] svg{max-width:100%}
.elementor-widget[class*="securcast-"] button{font:inherit;color:inherit;appearance:none;-webkit-appearance:none}

/* ------------------------------------------------------------------- FAQ -- */
.faq-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(26px,4vw,72px);align-items:start}
.acc{border-top:1px solid var(--line)}
.acc-i{border-bottom:1px solid var(--line)}
.acc-b{
	width:100%;display:flex;align-items:center;justify-content:space-between;gap:20px;
	padding:clamp(16px,2vw,24px) 0;background:none;border:0;cursor:pointer;text-align:left;
	color:var(--white);font-weight:700;font-size:clamp(.95rem,.85rem + .35vw,1.18rem);line-height:1.4;
	transition:color .3s var(--ease,cubic-bezier(.16,1,.3,1));
}
.acc-b:hover{color:var(--red)}
.acc-b .ic{position:relative;flex:none;width:20px;height:20px}
.acc-b .ic::before,.acc-b .ic::after{
	content:"";position:absolute;left:50%;top:50%;background:currentColor;border-radius:2px;
	transform:translate(-50%,-50%);transition:transform .38s var(--ease,cubic-bezier(.16,1,.3,1));
}
.acc-b .ic::before{width:14px;height:1.5px}
.acc-b .ic::after{width:1.5px;height:14px}
.acc-i.is-open .acc-b{color:var(--red)}
.acc-i.is-open .acc-b .ic::after{transform:translate(-50%,-50%) rotate(90deg) scaleX(0)}
.acc-p{--acc-speed:480ms;overflow:hidden;color:var(--body)}
.acc-p > div{padding:0 0 clamp(16px,2vw,26px);max-width:70ch}
.acc-p p{margin:0 0 .8em;line-height:1.75}
.acc-p p:last-child{margin-bottom:0}

@media(max-width:900px){.faq-grid{grid-template-columns:1fr}}

/* -------------------------------------------------------------- timeline -- */
.mtd-track{position:relative;margin-top:clamp(28px,4vw,54px)}
.mtd-line{position:absolute;left:0;right:0;top:14px;height:1px;background:var(--line)}
.mtd-line i{display:block;height:100%;width:0;background:var(--red);transition:width .1s linear}
.mtd-grid{display:grid;gap:clamp(20px,3vw,44px);padding-top:38px}
.mtd-grid--2{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.mtd-grid--3{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.mtd-grid--4{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.mtd-i{position:relative}
.mtd-i::before{
	content:"";position:absolute;top:-38px;left:0;width:9px;height:9px;border-radius:50%;
	background:var(--void);border:1.5px solid var(--line);transform:translateY(9px);
	transition:border-color .5s var(--ease,cubic-bezier(.16,1,.3,1)),background .5s var(--ease,cubic-bezier(.16,1,.3,1));
}
.mtd-i.is-in::before{border-color:var(--red);background:var(--red)}
.mtd-n{display:block;font-size:.68rem;letter-spacing:.22em;color:var(--red);margin-bottom:.8rem}
.mtd-i h3{font-size:clamp(.98rem,.9rem + .3vw,1.16rem);margin:0 0 .55rem;color:var(--white)}
.mtd-i p{margin:0;color:var(--body);font-size:.9rem;line-height:1.75}

/* --------------------------------------------------------------- sectors -- */
.sect-row{--sect-h:430px;display:flex;gap:10px;margin-top:clamp(26px,4vw,52px)}
.sect-p{
	position:relative;flex:1 1 0;min-width:0;height:var(--sect-h);
	border-radius:18px;overflow:hidden;isolation:isolate;
	border:1px solid var(--line);color:inherit;text-decoration:none;
	transition:flex-grow .7s var(--ease,cubic-bezier(.16,1,.3,1)),transform .5s var(--ease,cubic-bezier(.16,1,.3,1));
}
.sect-p .shot{position:absolute;inset:0;border:0;border-radius:0}
.sect-p::after{
	content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
	background:linear-gradient(to top,rgba(7,5,12,.92) 6%,rgba(7,5,12,.28) 58%,transparent);
}
.sect-c{position:absolute;left:0;right:0;bottom:0;z-index:3;padding:clamp(16px,1.8vw,26px)}
.sect-c h3{margin:0 0 .4rem;font-size:clamp(.95rem,.85rem + .35vw,1.24rem);color:var(--white)}
.sect-c p{
	margin:0;color:var(--body);font-size:.86rem;line-height:1.65;max-width:38ch;
	opacity:0;transform:translateY(10px);
	transition:opacity .5s var(--ease,cubic-bezier(.16,1,.3,1)),transform .5s var(--ease,cubic-bezier(.16,1,.3,1));
}
.sect-row--expand .sect-p:hover,
.sect-row--expand .sect-p:focus-visible{flex-grow:2.1}
.sect-row--expand .sect-p:hover p,
.sect-row--expand .sect-p:focus-visible p,
.sect-row--lift .sect-p:hover p{opacity:1;transform:none}
.sect-row--lift .sect-p:hover{transform:translateY(-6px)}
.sect-row--none .sect-c p{opacity:1;transform:none}

@media(max-width:900px){
	.sect-row{flex-wrap:wrap}
	.sect-p{flex:1 1 calc(50% - 10px);height:300px}
	.sect-p p{opacity:1;transform:none}
}
@media(max-width:560px){.sect-p{flex:1 1 100%}}

/* --------------------------------------------------------------- reviews -- */
.rev-score{display:flex;align-items:center;gap:clamp(14px,2vw,28px);margin:clamp(24px,3vw,42px) 0}
.rev-score .n{font-size:clamp(2.4rem,1.8rem + 2.4vw,4.2rem);font-weight:900;line-height:1;color:var(--white)}
.rev-score p{margin:.35rem 0 0;color:var(--grey-2);font-size:.82rem}
.stars{display:flex;gap:3px}
.stars svg{fill:var(--red)}
.rev-rail{display:grid;gap:16px}
.rev-rail--grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.rev-rail--rail{
	--rev-w:360px;
	grid-auto-flow:column;grid-auto-columns:var(--rev-w);
	overflow-x:auto;scroll-snap-type:x mandatory;
	padding-bottom:12px;scrollbar-width:thin;
}
.rev-rail--rail .rev-c{scroll-snap-align:start}
.rev-c{
	margin:0;padding:clamp(18px,2vw,28px);border-radius:16px;
	background:rgba(255,255,255,.028);border:1px solid var(--line);
}
.rev-c blockquote{margin:14px 0 18px;color:var(--body);font-size:.92rem;line-height:1.75}
.rev-c figcaption{display:flex;align-items:center;gap:12px}
.rev-c figcaption img{width:38px;height:38px;border-radius:50%;object-fit:cover}
.rev-c figcaption b{display:block;color:var(--white);font-size:.86rem}
.rev-c figcaption i{display:block;color:var(--grey-2);font-size:.76rem;font-style:normal}

/* --------------------------------------------------------------- marquee -- */
.mq-stack{overflow:hidden}
.mq{--mq-speed:42s;overflow:hidden;padding-block:14px}
.mq--line{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.mq--line + .mq--line{border-top:0}
.mq-t{display:inline-flex;gap:clamp(24px,4vw,64px);white-space:nowrap;will-change:transform;
	animation:sc-mq var(--mq-speed) linear infinite}
.mq--rev .mq-t{animation-direction:reverse}
.mq--pause:hover .mq-t{animation-play-state:paused}
.mq-i{
	display:inline-flex;align-items:flex-start;gap:.28em;
	font-weight:900;letter-spacing:-.02em;color:var(--white);
	font-size:clamp(1.2rem,.9rem + 1.7vw,2.6rem);
	transition:color .3s var(--ease,cubic-bezier(.16,1,.3,1));
}
.mq-i:hover{color:var(--red)}
.mq-i sup{font-size:.34em;font-weight:600;color:var(--red);letter-spacing:.1em}

@keyframes sc-mq{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}

/* ------------------------------------------------------------------ form -- */
.frm{margin-top:clamp(22px,3vw,40px)}
.frm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.frm-f--100{grid-column:1/-1}
.frm-f label{display:block;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;
	color:var(--grey-2);margin-bottom:.5rem}
.frm-f label i{color:var(--red);font-style:normal;margin-left:.2em}
.frm-f input,.frm-f textarea,.frm-f select{
	width:100%;padding:.85em 1em;border-radius:12px;
	background:rgba(255,255,255,.03);border:1px solid var(--line);
	color:var(--white);font:inherit;font-size:.92rem;
	transition:border-color .3s ease,background .3s ease;
}
.frm-f input:focus,.frm-f textarea:focus,.frm-f select:focus{
	outline:none;border-color:var(--red);background:rgba(255,255,255,.05);
}
.frm-f textarea{resize:vertical;min-height:120px}
.frm-f select{appearance:none;-webkit-appearance:none;cursor:pointer}
.frm-check{display:flex !important;align-items:flex-start;gap:10px;text-transform:none !important;
	letter-spacing:0 !important;font-size:.84rem !important;color:var(--body) !important;cursor:pointer}
.frm-check input{width:auto;flex:none;margin-top:.15em;accent-color:var(--red)}
.frm-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.frm-foot{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:22px}
.frm-note{margin:0;color:var(--grey-2);font-size:.8rem}
.frm-msg{margin:14px 0 0;font-size:.88rem;min-height:1.2em}
.frm-msg.is-ok{color:#5FD08A}
.frm-msg.is-bad{color:var(--red-2,#5FBFF2)}
.frm.is-sending{opacity:.6;pointer-events:none}

@media(max-width:640px){.frm-grid{grid-template-columns:1fr}.frm-f--50{grid-column:1/-1}}

/* -------------------------------------------------------------------- CTA -- */
.fin-in{position:relative;isolation:isolate;overflow:hidden;
	padding:clamp(34px,5vw,86px);border-radius:26px;
	background:rgba(255,255,255,.025);border:1px solid var(--line)}
.fin-in--cent{text-align:center}
.fin-in--cent .btns{justify-content:center}
.fin-in .btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:clamp(20px,2.5vw,34px)}
.fin-in canvas{position:absolute;inset:0;z-index:-1;opacity:.5}

/* ------------------------------------------------------------ editor note -- */
.sc-widget-error{
	padding:18px 22px;border:1px dashed rgba(46,155,219,.6);border-radius:14px;
	background:rgba(46,155,219,.08);color:#8AD2F5;font-size:13px;
}
