/* GSnet refresh 2026-10 — modern, friendly motion (Bob 20/10). Rollback: remove the refresh block in ultranet-child/functions.php. */
:root { --gs-blue: #2c86cd; --gs-navy: #173b5a; --gs-sky: #5ec2ff; }

/* Scroll progress bar */
.oh-progress { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 100000; transform: scaleX(0); transform-origin: 0 50%; background: linear-gradient(90deg, var(--gs-sky), var(--gs-blue), #7b5cff); pointer-events: none; }

/* Header: soft shadow once the page scrolls */
.header-style1 { transition: box-shadow .3s ease; position: relative; z-index: 50; }
.oh-scrolled .header-style1 { box-shadow: 0 8px 30px rgba(23, 59, 90, .08); }

/* Inner page title band: animated gradient with drifting colour orbs */
#subheader { position: relative; overflow: hidden; background: linear-gradient(120deg, #0f2e4a 0%, var(--gs-navy) 35%, var(--gs-blue) 100%) !important; background-size: 200% 200% !important; animation: oh-pan 14s ease-in-out infinite alternate; padding: 46px 0 !important; }
#subheader .subheader-inner { position: relative; z-index: 2; }
#subheader h1.page-title { color: #fff !important; font-weight: 700; letter-spacing: -.01em; font-size: clamp(26px, 3.2vw, 40px); }
#subheader .breadcrumbs, #subheader .breadcrumbs a, #subheader .breadcrumbs span { color: rgba(255, 255, 255, .78) !important; }
#subheader .breadcrumbs a:hover { color: #fff !important; }
#subheader::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 26px; z-index: 1; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 40' preserveAspectRatio='none'%3E%3Cpath d='M0 22C180 2 360 0 540 14S900 44 1080 32S1350 4 1440 2L1440 40L0 40Z' fill='%23ffffff'/%3E%3C/svg%3E") center bottom / 100% 100% no-repeat; }
.oh-blobs { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.oh-blobs i { position: absolute; border-radius: 50%; filter: blur(40px); will-change: transform; }
.oh-blobs i:nth-child(1) { width: 340px; height: 340px; left: 6%; top: -40%; background: radial-gradient(circle, rgba(94, 194, 255, .65), transparent 70%); animation: oh-drift1 16s ease-in-out infinite alternate; }
.oh-blobs i:nth-child(2) { width: 300px; height: 300px; right: 10%; top: -30%; background: radial-gradient(circle, rgba(123, 92, 255, .5), transparent 70%); animation: oh-drift2 19s ease-in-out infinite alternate; }
.oh-blobs i:nth-child(3) { width: 260px; height: 260px; left: 45%; bottom: -60%; background: radial-gradient(circle, rgba(0, 214, 170, .45), transparent 70%); animation: oh-drift3 22s ease-in-out infinite alternate; }
@keyframes oh-pan { from { background-position: 0% 50%; } to { background-position: 100% 50%; } }
@keyframes oh-drift1 { to { transform: translate(120px, 60px) scale(1.15); } }
@keyframes oh-drift2 { to { transform: translate(-140px, 50px) scale(.9); } }
@keyframes oh-drift3 { to { transform: translate(-90px, -50px) scale(1.2); } }
.oh-word { display: inline-block; }
.oh-shine-text { background: linear-gradient(100deg, #fff 30%, #9fdcff 45%, #fff 60%); background-size: 250% 100%; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; animation: oh-shine 5s ease-in-out infinite; }
@keyframes oh-shine { 0%, 40% { background-position: 100% 0; } 100% { background-position: -150% 0; } }

/* Buttons: rounded, lift and a light sweep on hover */
.vc_btn3.vc_btn3-style-classic, a.btn, .iva-button, a[class*="button"]:not(.add_to_cart_button), .nf-element[type="button"], input.wpcf7-submit {
	position: relative; overflow: hidden; border-radius: 999px !important; transition: transform .25s ease, box-shadow .25s ease, filter .25s ease !important;
}
.vc_btn3.vc_btn3-style-classic:hover, a.btn:hover, .iva-button:hover, a[class*="button"]:not(.add_to_cart_button):hover, .nf-element[type="button"]:hover, input.wpcf7-submit:hover {
	transform: translateY(-2px); box-shadow: 0 12px 26px rgba(44, 134, 205, .32) !important;
}
.vc_btn3.vc_btn3-style-classic::after, a.btn::after, .iva-button::after { content: ""; position: absolute; top: 0; bottom: 0; left: -60%; width: 40%; transform: skewX(-20deg); background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .35), transparent); transition: left .6s ease; pointer-events: none; }
.vc_btn3.vc_btn3-style-classic:hover::after, a.btn:hover::after, .iva-button:hover::after { left: 130%; }

/* Images: soft corners and a gentle zoom in image tiles */
.wpb_single_image .vc_single_image-wrapper { border-radius: 14px; overflow: hidden; display: inline-block; }
.wpb_single_image .vc_single_image-wrapper img { transition: transform .7s cubic-bezier(.2, .7, .2, 1), filter .4s ease; }
.wpb_single_image:hover .vc_single_image-wrapper img { transform: scale(1.06); }

/* News cards: lift + image zoom */
.vc_grid-item .vc_gitem-zone { overflow: hidden; }
.vc_grid-item .vc_grid-item-mini { border-radius: 14px; overflow: hidden; transition: transform .3s ease, box-shadow .3s ease; background: #fff; }
.vc_grid-item:hover .vc_grid-item-mini { transform: translateY(-6px); box-shadow: 0 18px 40px rgba(23, 59, 90, .14); }
.vc_grid-item .vc_gitem-zone-img, .vc_grid-item .vc_gitem-zone { transition: transform .7s cubic-bezier(.2, .7, .2, 1); }
.vc_grid-item:hover .vc_gitem-zone-a { transform: scale(1.05); }

/* Partner logos: calm grey, colour on hover */
.lcs_logo_container img { filter: grayscale(1) opacity(.75); transition: filter .35s ease, transform .35s ease; }
.lcs_logo_container a:hover img, .lcs_logo_container img:hover { filter: none; transform: scale(1.06); }
.lcs_logo_container { border-radius: 12px; transition: box-shadow .3s ease; }
.lcs_logo_container:hover { box-shadow: 0 10px 24px rgba(23, 59, 90, .10); }

/* Icons in feature boxes: small hop on hover */
.wpb_wrapper .vc_icon_element-inner, .wpb_wrapper i.fa, .wpb_wrapper .iva-icon { transition: transform .35s cubic-bezier(.34, 1.56, .64, 1); }
.wpb_column:hover .vc_icon_element-inner, .wpb_column:hover .wpb_wrapper > p > i.fa { transform: translateY(-4px) scale(1.08); }

/* Footer links: underline that grows */
#footer .widget a:not(.iva-button):not([class*="button"]) { background-image: linear-gradient(currentColor, currentColor); background-size: 0 1px; background-repeat: no-repeat; background-position: 0 100%; transition: background-size .3s ease, color .2s ease; }
#footer .widget a:not(.iva-button):not([class*="button"]):hover { background-size: 100% 1px; color: var(--gs-blue); }

/* Scroll reveal (only set by JS, below the first screen) */
.oh-motion .oh-reveal { opacity: 0; transform: translateY(28px); }

@media (prefers-reduced-motion: reduce) {
	#subheader, .oh-blobs i, .oh-shine-text { animation: none !important; }
	.oh-blobs, .oh-progress { display: none !important; }
	.oh-shine-text { -webkit-text-fill-color: #fff; background: none; }
	.oh-motion .oh-reveal { opacity: 1 !important; transform: none !important; }
	*, *::before, *::after { transition-duration: .01ms !important; }
}

/* Price tables: lift on hover */
.mega-price-table-4 .plan { transition: transform .3s ease, box-shadow .3s ease; border-radius: 12px; overflow: hidden; }
.mega-price-table-4 .plan:hover { transform: translateY(-8px); box-shadow: 0 22px 44px rgba(23, 59, 90, .20); }
.atp-services { transition: transform .3s ease; }
.atp-services:hover { transform: translateY(-4px); }
