:root {
  --white: #ffffff;
  --black: #000000;
  --main: #141415;
  --primary-2: #137e9b;
  --primary: #004E6F;
  --text-main: #F4F7F5A3;
  --text-2: #F4F7F5;
  --text-3: #F4F7F552;
  --text-4: #F4F7F52E;
  --text-5: #5997FF;
  --text-6: #F4F7F5B3;
  --text-7: #F4F7F580;
  --bg: #EEF5FF;
  --bg-2: #141415D1;
  --bg-3: #D9E7FF;
  --bg-4: #BCD6FF;
  --bg-5: #8EBCFF;
  --bg-6: #5997FF;
  --bg-7: #1B4EF5;
  --bg-8: #143AE1;
  --bg-9: #172FB6;
  --bg-10: #192E8F;
  --bg-11: #141E57;
  --bg-12: #000000A3;
  --line: #FFFFFF1A;
  --shadow-1: #A3A3A340;
  --green: #3FC53A;
  --star: #F1913D;
}

/*---------- Reset css styles ----------- */
/* ---------------------------------------------------------
    * Name: Vemus - Jewelry Ecommerce HTML Template
    * Version: 1.0.0
    * Author: Themesflat
    * Author URI: http://themesflat.com 

	* Abstracts variable

    * Reset css styles

    * Components

        * header
        * footer
        * accordion
        * animation
        * blog
        * box iocn
        * button
        * carousel
        * avatar
        * form
        * hover
        * nice select
        * popup
        * product
        * shop
        * slider
        * projects
        * zoom

    * Section
 ------------------------------------------------------------------------------ */
/*--------- Abstracts variable ---------- */
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
  font-family: inherit;
  font-size: 100%;
  font-style: inherit;
  font-weight: inherit;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}

/* Elements
-------------------------------------------------------------- */
html {
  margin-right: 0 !important;
  scroll-behavior: smooth;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 24px;
  font-weight: 400;
  letter-spacing: -0.16px;
  color: var(--text-main);
  background-color: var(--black);
}
body::-webkit-scrollbar {
  width: 4px;
}
body::-webkit-scrollbar-thumb {
  background-color: var(--primary);
  border-radius: 5px;
  cursor: grab;
}

img {
  max-width: 100%;
  height: auto;
  transform: scale(1);
  vertical-align: middle;
  -ms-interpolation-mode: bicubic;
}

ul,
li {
  list-style-type: none;
  margin-bottom: 0;
  padding-left: 0;
  list-style: none;
}

table {
  width: 100%;
  overflow-x: auto;
  table-layout: auto;
  border-collapse: collapse;
}

thead {
  background-color: var(--line);
}

tbody tr:nth-child(even) {
  background-color: var(--line);
}

tr th:not(:first-child) {
  border-left: 1px solid var(--white);
}

td,
th {
  padding: 10px 14px;
}

.row {
  margin-right: -6px;
  margin-left: -6px;
}
.row > * {
  padding-left: 6px;
  padding-right: 6px;
}

.container {
  max-width: 1328px;
  width: 100%;
  margin: auto;
  padding-left: 16px;
  padding-right: 16px;
}

.container-full {
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
  padding: 0px 15px;
}
@media (min-width: 1600px) {
  .container-full {
    padding-left: 48px;
    padding-right: 48px;
  }
}

.container-layout-right {
  width: calc(100vw - (100vw - 1548px) / 2 - 4px);
  margin-right: unset;
  max-width: 100%;
  margin-left: auto;
  padding-left: 15px;
}

svg path {
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

button {
  background: transparent;
  border: 0;
  display: inline-flex;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
  color: var(--main);
}

/* Since FF19 lowers the opacity of the placeholder by default */
:-ms-input-placeholder {
  color: var(--secondary-2);
}

/* Typography
-------------------------------------------------------------- */
h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
  font-family: "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;
  text-rendering: optimizeLegibility;
  font-weight: 500;
  margin-bottom: 0;
  letter-spacing: 0;
}

h1,
.h1 {
  font-size: clamp(36px, 5vw, 64px);
  line-height: clamp(40px, 5.3vw, 50px);
  letter-spacing: -0.32px;
}

h2,
.h2 {
  font-size: clamp(30px, 4.5vw, 52px);
  line-height: clamp(34px, 4.8vw, 56px);
  letter-spacing: -0.26px;
}

h3,
.h3 {
  font-size: clamp(26px, 4vw, 44px);
  line-height: clamp(30px, 4.3vw, 48px);
  letter-spacing: -0.22px;
}

h4,
.h4 {
  font-size: clamp(22px, 3.5vw, 36px);
  line-height: clamp(26px, 3.8vw, 40px);
  letter-spacing: -0.18px;
}

h5,
.h5 {
  font-size: clamp(18px, 2.8vw, 28px);
  line-height: clamp(22px, 3vw, 32px);
  letter-spacing: -0.14px;
}

h6,
.h6 {
  font-size: clamp(18px, 2vw, 20px);
  line-height: clamp(24px, 2.5vw, 28px);
  letter-spacing: -0.1px;
}

.text-body-1 {
  font-size: 18px;
  line-height: 28px;
  letter-spacing: -0.18px;
}

.text-body-2 {
  font-size: 16px;
  line-height: 24px;
  letter-spacing: -0.12px;
}

.text-body-3 {
  font-size: 14px;
  line-height: 20px;
  letter-spacing: -0.14px;
}

.text-caption {
  font-size: 10px;
  line-height: 16px;
}

.font-main {
  font-family: "Geist", system-ui, sans-serif;
}

.font-2 {
  font-family: "Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;
}

.font-3 {
  font-family: "Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;
}

.letter-space-0 {
  letter-spacing: 0 !important;
}

b,
strong {
  font-weight: bolder;
}

video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.text-primary {
  color: var(--primary) !important;
}

.text-stroke-white {
  -webkit-text-stroke: 2px var(--white);
  color: transparent;
}

a {
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
  text-decoration: none;
  cursor: pointer;
  display: inline-block;
  font-family: "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;
  color: var(--text-main);
}
a:focus, a:hover {
  text-decoration: none;
  outline: 0;
}

.link {
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
.link:hover {
  color: var(--primary) !important;
}

.link-secondary {
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
.link-secondary:hover {
  color: var(--secondary) !important;
}

.text-main {
  color: var(--text-main);
}

.text-main-2 {
  color: var(--text-2);
}

.text-main-3 {
  color: var(--text-3);
}

.text-main-4 {
  color: var(--text-4);
}

.text-main-5 {
  color: var(--text-5);
}

.text-main-6 {
  color: var(--text-6);
}

.text-main-7 {
  color: var(--text-7);
}

.fs-20 {
  font-size: 20px;
}

.fs-16 {
  font-size: 16px;
}

.fs-8 {
  font-size: 8px;
}

.fs-7 {
  font-size: 7px;
}

.lh-18 {
  line-height: 18px;
}

.lh-20 {
  line-height: 20px;
}

.lh-13 {
  line-height: 13px !important;
}

.grid-2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}

.grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

.grid-4 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}

.grid-6 {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
}

.gap-4 {
  gap: 4px !important;
}

.gap-12 {
  gap: 12px !important;
}

.flat-spacing {
  padding-top: 100px;
  padding-bottom: 100px;
}
@media (max-width: 1024px) {
  .flat-spacing {
    padding-top: 80px;
    padding-bottom: 80px;
  }
}
@media (max-width: 767px) {
  .flat-spacing {
    padding-top: 60px;
    padding-bottom: 60px;
  }
}

.flat-spacing-2 {
  padding-top: 85px;
  padding-bottom: 85px;
}
@media (max-width: 767px) {
  .flat-spacing-2 {
    padding-top: 60px;
    padding-bottom: 60px;
  }
}

.flat-spacing-3 {
  padding-top: 53px;
  padding-bottom: 53px;
}

[data-grid=grid-1] {
  display: grid;
  gap: 30px;
  grid-template-columns: 1fr;
}

[data-grid=grid-2] {
  display: grid;
  gap: 30px;
  grid-template-columns: 1fr 1fr;
}

[data-grid=grid-3] {
  display: grid;
  gap: 30px;
  grid-template-columns: repeat(3, 1fr);
}

[data-grid=grid-4] {
  display: grid;
  gap: 30px;
  grid-template-columns: repeat(4, 1fr);
}

[data-grid=grid-5] {
  display: grid;
  gap: 30px;
  grid-template-columns: repeat(5, 1fr);
}

[data-grid=grid-6] {
  display: grid;
  gap: 30px;
  grid-template-columns: repeat(6, 1fr);
}

[data-grid=grid-7] {
  display: grid;
  gap: 30px;
  grid-template-columns: repeat(7, 1fr);
}

.tf-grid-layout {
  display: grid;
  column-gap: 15px;
  row-gap: 30px;
}
.tf-grid-layout.tf-col-2 {
  grid-template-columns: 1fr 1fr;
}
.tf-grid-layout.tf-col-3 {
  grid-template-columns: repeat(3, 1fr);
}
.tf-grid-layout.tf-col-4 {
  grid-template-columns: repeat(4, 1fr);
}
.tf-grid-layout.tf-col-5 {
  grid-template-columns: repeat(5, 1fr);
}
.tf-grid-layout.tf-col-6 {
  grid-template-columns: repeat(6, 1fr);
}
.tf-grid-layout.tf-col-7 {
  grid-template-columns: repeat(7, 1fr);
}
.tf-grid-layout .wd-full {
  grid-column: 1/-1;
}
.tf-grid-layout .wd-2-cols {
  grid-column: span 2;
}
@media (min-width: 576px) {
  .tf-grid-layout.sm-col-2 {
    grid-template-columns: 1fr 1fr;
  }
  .tf-grid-layout.sm-col-3 {
    grid-template-columns: repeat(3, 1fr);
  }
  .tf-grid-layout.sm-col-4 {
    grid-template-columns: repeat(4, 1fr);
  }
  .tf-grid-layout.sm-col-5 {
    grid-template-columns: repeat(5, 1fr);
  }
  .tf-grid-layout.sm-col-6 {
    grid-template-columns: repeat(6, 1fr);
  }
  .tf-grid-layout.sm-col-7 {
    grid-template-columns: repeat(7, 1fr);
  }
}
@media (min-width: 768px) {
  .tf-grid-layout.md-col-2 {
    grid-template-columns: 1fr 1fr;
  }
  .tf-grid-layout.md-col-3 {
    grid-template-columns: repeat(3, 1fr);
  }
  .tf-grid-layout.md-col-4 {
    grid-template-columns: repeat(4, 1fr);
  }
  .tf-grid-layout.md-col-5 {
    grid-template-columns: repeat(5, 1fr);
  }
  .tf-grid-layout.md-col-6 {
    grid-template-columns: repeat(6, 1fr);
  }
  .tf-grid-layout.md-col-7 {
    grid-template-columns: repeat(7, 1fr);
  }
}
@media (min-width: 992px) {
  .tf-grid-layout {
    column-gap: 30px;
  }
  .tf-grid-layout.lg-col-2 {
    grid-template-columns: 1fr 1fr;
  }
  .tf-grid-layout.lg-col-3 {
    grid-template-columns: repeat(3, 1fr);
  }
  .tf-grid-layout.lg-col-4 {
    grid-template-columns: repeat(4, 1fr);
  }
  .tf-grid-layout.lg-col-5 {
    grid-template-columns: repeat(5, 1fr);
  }
  .tf-grid-layout.lg-col-6 {
    grid-template-columns: repeat(6, 1fr);
  }
  .tf-grid-layout.lg-col-7 {
    grid-template-columns: repeat(7, 1fr);
  }
}
@media (min-width: 1200px) {
  .tf-grid-layout {
    row-gap: 64px;
  }
  .tf-grid-layout.xl-col-2 {
    grid-template-columns: 1fr 1fr;
  }
  .tf-grid-layout.xl-col-3 {
    grid-template-columns: repeat(3, 1fr);
  }
  .tf-grid-layout.xl-col-4 {
    grid-template-columns: repeat(4, 1fr);
  }
  .tf-grid-layout.xl-col-5 {
    grid-template-columns: repeat(5, 1fr);
  }
  .tf-grid-layout.xl-col-6 {
    grid-template-columns: repeat(6, 1fr);
  }
  .tf-grid-layout.xl-col-7 {
    grid-template-columns: repeat(7, 1fr);
  }
}
@media (min-width: 1440px) {
  .tf-grid-layout.xxl-col-2 {
    grid-template-columns: 1fr 1fr;
  }
  .tf-grid-layout.xxl-col-3 {
    grid-template-columns: repeat(3, 1fr);
  }
  .tf-grid-layout.xxl-col-4 {
    grid-template-columns: repeat(4, 1fr);
  }
  .tf-grid-layout.xxl-col-5 {
    grid-template-columns: repeat(5, 1fr);
  }
  .tf-grid-layout.xxl-col-6 {
    grid-template-columns: repeat(6, 1fr);
  }
  .tf-grid-layout.xxl-col-7 {
    grid-template-columns: repeat(7, 1fr);
  }
}

.overflow-unset {
  overflow: unset !important;
}

.sticky-top {
  position: sticky !important;
  z-index: 50;
  top: 15px;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

.cursor-not-allowed {
  cursor: not-allowed;
}

.cursor-auto {
  cursor: auto;
}

.z-1 {
  z-index: 1 !important;
}

.z-5 {
  z-index: 5 !important;
}

.text-line-clamp-1 {
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  display: -webkit-box !important;
  overflow: hidden;
}

.text-line-clamp-2 {
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  display: -webkit-box;
  overflow: hidden;
}

.text-line-clamp-3 {
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  display: -webkit-box;
  overflow: hidden;
}

.text-line-clamp-4 {
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  display: -webkit-box;
  overflow: hidden;
}

.aspect-ratio-0 {
  aspect-ratio: 0 !important;
}

.aspect-ratio-1 {
  aspect-ratio: 1/1 !important;
}

#scroll-top {
  position: fixed;
  display: block;
  width: 48px;
  height: 48px;
  line-height: 50px;
  border-radius: 4px;
  z-index: 1;
  border-radius: 50%;
  opacity: 0;
  visibility: hidden;
  cursor: pointer;
  overflow: hidden;
  z-index: 100;
  background-color: var(--main);
  border: 0;
  bottom: 92px;
  right: 20px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
#scroll-top.show {
  opacity: 1;
  visibility: visible;
}
#scroll-top.type-1 {
  bottom: 140px;
}
#scroll-top:hover {
  transform: translateY(-5px);
  background-color: var(--primary);
}

/* Preload 
------------------------------------------- */
.preload-container {
  display: flex;
  position: relative;
  width: 100%;
  height: 100%;
  background: #ffffff;
  position: fixed;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  z-index: 99999999999;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.spinner {
  width: 60px;
  height: 60px;
  border: 3px solid transparent;
  border-top: 3px solid var(--primary);
  border-radius: 100%;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  animation: spin 1s infinite linear;
}

.br-line {
  width: 100%;
  height: 1px;
  display: flex;
  background-color: var(--line);
}
.br-line.has-dot {
  position: relative;
}
.br-line.has-dot::after, .br-line.has-dot::before {
  content: "";
  position: absolute;
  width: 2px;
  height: 2px;
  background-color: var(--white);
  bottom: 0;
}
.br-line.has-dot::before {
  left: 0;
}
.br-line.has-dot::after {
  right: 0;
}
.br-line.type-hor {
  height: 100%;
  width: 1px;
}
.br-line.type-hor::before {
  top: 0;
  right: 0;
  left: unset;
}
.br-line.type-hor::after {
  bottom: 0;
}

.tf-swiper .swiper-slide {
  height: auto;
}
.tf-swiper .swiper-slide > * {
  height: 100%;
}

.cs-pointer {
  cursor: pointer;
}

#goTop {
  position: fixed;
  padding: 0;
  bottom: 40px;
  right: 20px;
  width: 38px;
  height: 38px;
  background: var(--black);
  color: var(--white);
  font-size: 20px;
  text-align: center;
  line-height: 50px;
  cursor: pointer;
  border: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease;
  box-shadow: 0px 4px 20px 0px rgba(255, 255, 255, 0.1019607843);
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
#goTop .border-progress {
  position: absolute;
  top: -1px;
  left: -1px;
  width: calc(100% + 2px);
  height: calc(100% + 2px);
  border: 1px solid #fff;
  mask-image: conic-gradient(#fff var(--progress-angle, 0deg), transparent 0);
  -webkit-mask-image: conic-gradient(#fff var(--progress-angle, 0deg), transparent 0);
  content: "";
  z-index: 1;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
#goTop.show {
  opacity: 1;
  visibility: visible;
}
#goTop .icon {
  font-size: 20px;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
  animation: iconBounce 2s linear 0s infinite;
}
#goTop .icon-arrow-right-2 {
  transform: rotate(-90deg);
}
#goTop:hover {
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.5);
}
@media (min-width: 992px) {
  #goTop {
    right: 40px;
  }
}

.mx-1 {
  margin-left: 1px !important;
  margin-right: 1px !important;
}

/* sib-form */
.sib-form {
  padding: 0;
  box-sizing: border-box !important;
}

.sib-form *,
.sib-form ::after,
.sib-form ::before {
  box-sizing: border-box !important;
}

.sib-form-inner {
  flex-grow: 1;
  max-width: 237px;
}

#sib-container {
  background-color: unset;
  padding: 0;
}

.sib-form .entry__field {
  background-color: unset;
  border: 0;
  box-shadow: none !important;
  margin: 0;
}

.sib-form .sib-form-container .input {
  outline: 0;
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
  width: 100%;
  padding: 7px 11px;
  font-weight: 400;
  font-size: 14px;
  line-height: 20px;
  letter-spacing: -0.14px;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
  border-radius: 0px;
  background: transparent;
  color: var(--white);
  border-radius: 8px;
  background: var(--bg-2);
  border: 1px solid var(--line);
  height: 36px;
}

.sib-form .entry__specification,
.sib-form .entry__error,
.entry__specification,
.entry__label {
  margin: 0 !important;
}

.sib-form .entry__error {
  margin-top: 5px !important;
}

.sib-form-block {
  padding: 0;
}

.sib-optin {
  display: none;
}

#sib-form {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}

#sib-form .sib-form-block__button {
  line-height: 26px;
  min-height: unset;
}

.sib-form .clickable__icon {
  margin: 0 5px 0 0;
  fill: #fff;
}

.sib-form-message-panel {
  border: 0;
  padding: 0;
  border-radius: 0px;
  background: transparent;
}
.sib-form-message-panel.sib-form-message-panel--active {
  justify-content: center;
  display: flex;
}

.sib-notification__icon {
  width: 20px !important;
  height: 20px !important;
}

.sib-form-message-panel__text {
  justify-content: center;
  max-width: 500px;
}

.form__entry.entry_errored .entry__error {
  position: absolute;
  width: calc(100% + 75px + 12px);
}

#error-message .sib-form-message-panel__inner-text {
  color: #ff4949;
}

#error-message svg path {
  fill: #ff4949;
}

#success-message .sib-form-message-panel__inner-text {
  color: #6BC044;
}

#success-message svg path {
  fill: #6BC044;
}

.content-1200 {
  max-width: 1232px;
  width: 100%;
  margin: auto;
  padding-left: 16px;
  padding-right: 16px;
}

.px-12 {
  padding-left: 12px;
  padding-right: 12px;
}

.px-16 {
  padding-left: 16px;
  padding-right: 16px;
}

.align-items-unset {
  align-items: unset !important;
}

/*------------ Components ---------------- */
/*------------ header ---------------- */
/* ---------------------------------------------------------
    * Name: Vemus - Jewelry Ecommerce HTML Template
    * Version: 1.0.0
    * Author: Themesflat
    * Author URI: http://themesflat.com 

	* Abstracts variable

    * Reset css styles

    * Components

        * header
        * footer
        * accordion
        * animation
        * blog
        * box iocn
        * button
        * carousel
        * avatar
        * form
        * hover
        * nice select
        * popup
        * product
        * shop
        * slider
        * projects
        * zoom

    * Section
 ------------------------------------------------------------------------------ */
/*--------- Abstracts variable ---------- */
.tf-header {
  padding-top: 28px;
  padding-bottom: 28px;
  position: sticky;
  z-index: 100;
}
.tf-header .header-left {
  padding-left: 15px;
}

.logo-site {
  display: inline-block;
  line-height: 0;
}

.logo-site img {
  display: block;
  max-width: 180px;
  height: auto;
  width: auto;
  min-height: 30px;
}
.tf-header .header-right {
  padding-right: 15px;
}

/* Effet arc-en-ciel sur le logo du header au survol */
.tf-header .logo-site {
  position: relative;
}
.tf-header .logo-site::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90.9deg, #9F9DFB 0%, #709AF5 50%, #A5DCF3 100%);
  -webkit-mask: url("../images/logo/logo-ubg-dot.svg") no-repeat center / contain;
  mask: url("../images/logo/logo-ubg-dot.svg") no-repeat center / contain;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
.tf-header .logo-site:hover::after {
  opacity: 1;
  animation: hue-rotate 5s infinite linear;
}

/* Style d’origine du menu (comme about-us.html au scroll) : léger fond sombre + blur */
.header-sticky {
  background: rgba(0, 0, 0, 0.1);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

/* Uniquement le header de navigation (pas les <header> des articles) */
#header {
  position: fixed;
  width: 100%;
  top: 0;
  background: transparent;
  transition: top 0.3s ease, background 0.3s ease, backdrop-filter 0.3s ease;
  z-index: 999;
}

.menu-item {
  position: relative;
  z-index: 1;
  cursor: pointer;
}
.menu-item::before {
  content: "";
  position: absolute;
  height: 88px;
  width: calc(100% + 64px);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: none;
}
.menu-item:hover::before {
  display: block;
}
.menu-item:hover .sub-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: all;
  transform: rotate3d(0, 0, 0, 0deg);
}

/* Liens de navigation – typo flottante + ligne HUD */
.main-nav_menu .item-link {
  position: relative;
  z-index: 1;
  height: auto;
  min-height: 32px;
  padding: 8px 14px;
  border-radius: 0;
  overflow: visible;
  font-family: "Mono", monospace;
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  white-space: nowrap;
  color: rgba(255, 255, 255, 0.92);
  border: none !important;
  background-color: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: none !important;
  transition: color 0.2s ease;
}
.main-nav_menu .item-link::before {
  display: none !important;
  content: none !important;
}
/* Pas de barre sous le texte : l’indicateur mobile gère le hover */
.main-nav_menu .item-link::after {
  display: none !important;
  content: none !important;
}
.main-nav_menu .menu-item:hover > .item-link,
.main-nav_menu .item-link:hover {
  color: #ffffff;
  background-color: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
.main-nav_menu .item-link .icon-arrow-caret-down {
  font-size: 7px;
  margin-left: 4px;
  transition: transform 0.28s ease;
  opacity: 0.65;
}
.main-nav_menu .menu-item--mega:hover .item-link .icon-arrow-caret-down {
  transform: rotate(180deg);
  opacity: 1;
}

/* Indicateur hover — barre blanche + halo (comme les blocs) */
.main-nav_menu .menu-indicator {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  border: none;
  border-radius: 0;
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow: none;
  pointer-events: none;
  z-index: 0;
  opacity: 0;
  overflow: visible;
  transition: top 0.25s ease, left 0.25s ease, width 0.25s ease, height 0.25s ease, opacity 0.2s ease;
}
.main-nav_menu .menu-indicator::before {
  content: "";
  position: absolute;
  top: 4px;
  left: 50%;
  transform: translateX(-50%);
  width: 22px;
  height: 2px;
  background-color: #ffffff;
  box-shadow:
    0 0 8px 2px rgba(255, 255, 255, 0.7),
    0 4px 16px 4px rgba(255, 255, 255, 0.45),
    0 8px 32px 8px rgba(255, 255, 255, 0.3),
    0 14px 48px 14px rgba(255, 255, 255, 0.18),
    0 0 60px 28px rgba(255, 255, 255, 0.12);
}
.main-nav_menu .menu-indicator.is-visible {
  opacity: 1;
}

/* Méga menu Expertises métiers – fin et compact */
.menu-item--mega {
  position: relative;
}
.menu-item--mega .mega-menu {
  position: absolute;
  left: 8px; /* léger décalage optique pour l’alignement visuel */
  top: 100%;
  width: min(560px, calc(100vw - 24px));
  padding-top: 4px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: none;
  transition: none;
  z-index: 100;
  /* Évite le fantôme backdrop-filter sur la vidéo */
  content-visibility: hidden;
}
.menu-item--mega:hover .mega-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: all;
  content-visibility: visible;
  transform: none;
}
.mega-menu__inner {
  position: relative;
  background: #121212;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  padding: 14px;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.55);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  overflow: hidden;
  color: #f5f4f7;
}
.menu-item--mega:hover .mega-menu__inner {
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.mega-menu__inner::before {
  content: "";
  position: absolute;
  top: 0;
  left: 24px;
  right: 24px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.12), transparent);
}
.mega-menu__inner::after {
  content: "";
  position: absolute;
  top: -60%;
  left: 50%;
  transform: translateX(-50%);
  width: 70%;
  height: 120%;
  background: radial-gradient(ellipse at top, rgba(255, 255, 255, 0.04), transparent 60%);
  pointer-events: none;
}
.mega-menu__head {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 4px 12px 12px;
}
.mega-menu__eyebrow {
  font-family: "Mono", monospace;
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #a3a1ad;
}
.mega-menu__subtitle {
  font-size: 12px;
  line-height: 1.35;
  color: #a3a1ad;
}
.mega-menu__grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px;
}
.mega-menu__foot {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 10px;
  padding: 12px 12px 4px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.mega-menu__foot-text {
  font-size: 12px;
  color: #a3a1ad;
}
.mega-menu__cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 34px;
  padding: 0 16px;
  border-radius: 10px;
  font-family: "Space Grotesk", sans-serif;
  font-weight: 600;
  font-size: 12.5px;
  color: #0f0f17;
  text-decoration: none;
  background: linear-gradient(90deg, #bcc0ca -1.05%, #feeae1 41.74%, #c0cef2 102.46%);
  border: 1px solid transparent;
  box-shadow: none;
  transition: transform 0.2s ease, filter 0.2s ease;
}
.mega-menu__cta:hover {
  transform: translateY(-1px);
  background: linear-gradient(90deg, #c8ccd4 -1.05%, #fff0e8 41.74%, #cdd6f5 102.46%);
  filter: brightness(1.06);
  box-shadow: none;
  color: #0f0f17;
}
.mega-menu__cta i,
.mega-menu__cta [data-lucide] {
  width: 15px;
  height: 15px;
  transition: transform 0.2s ease;
}
.mega-menu__cta:hover i,
.mega-menu__cta:hover [data-lucide] {
  transform: translateX(3px);
}
.mega-menu__cta [data-lucide] svg,
.mega-menu__cta i svg {
  width: 15px;
  height: 15px;
  color: #0f0f17;
  stroke: #0f0f17;
}
.mega-menu__item {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  column-gap: 12px;
  row-gap: 2px;
  align-items: center;
  padding: 12px;
  border-radius: 12px;
  border: 1px solid transparent;
  text-decoration: none;
  color: inherit;
  transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}
.mega-menu__item:hover {
  background: rgba(255, 255, 255, 0.043);
  border-color: rgba(255, 255, 255, 0.08);
  transform: translateY(-2px);
}
.mega-menu__icon {
  grid-row: 1 / span 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 11px;
  background: rgba(255, 255, 255, 0.043);
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: none;
  color: #f5f4f7;
  flex-shrink: 0;
  transition: box-shadow 0.25s ease, transform 0.25s ease, background 0.2s ease;
}
.mega-menu__item:hover .mega-menu__icon {
  background: rgba(255, 255, 255, 0.07);
  box-shadow: none;
  transform: scale(1.05);
}
.mega-menu__icon i,
.mega-menu__icon [data-lucide] {
  width: 18px;
  height: 18px;
}
.mega-menu__icon [data-lucide] svg,
.mega-menu__icon i svg {
  width: 18px;
  height: 18px;
  color: #f5f4f7;
  stroke: #f5f4f7;
}
.mega-menu__title {
  grid-column: 2;
  font-weight: 600;
  font-size: 13.5px;
  line-height: 1.2;
  color: #f5f4f7;
  font-family: "Space Grotesk", sans-serif;
  letter-spacing: 0.01em;
  transition: color 0.2s ease;
}
.mega-menu__item:hover .mega-menu__title {
  color: #f5f4f7;
}
.mega-menu__desc {
  grid-column: 2;
  font-size: 11px;
  line-height: 1.35;
  color: #a3a1ad;
  font-weight: 400;
}
@media (max-width: 991px) {
  .mega-menu__grid {
    grid-template-columns: 1fr;
  }
}

.menu-indicator {
  position: absolute;
  border: none;
  background: transparent;
  transition: all 0.3s ease;
  pointer-events: none;
  z-index: 0;
}

.header-right {
  display: flex;
  justify-content: flex-end;
}

.btn_group {
  display: flex;
  align-items: center;
  gap: 12px;
}

.box-navigation {
  display: flex;
  justify-content: center;
}

.main-nav_menu {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  flex-wrap: nowrap;
  position: relative;
  padding: 0;
  border-radius: 0;
  background: transparent;
  border: none;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.main-nav_menu::before,
.main-nav_menu::after {
  content: none;
  display: none;
}

/* Séparateurs = traits site (comme .br-line) */
.main-nav_menu > .menu-item + .menu-item {
  position: relative;
  padding-left: 0;
}
.main-nav_menu > .menu-item + .menu-item::after {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 18px;
  background-color: var(--line);
  pointer-events: none;
}

.btn-menu_mobile {
  display: flex;
  font-size: 24px;
  color: var(--text-2);
}

.offcanvas.canvas-mb {
  --bs-offcanvas-width: 100%;
  --bs-offcanvas-bg: transparent;
  background-color: rgba(18, 18, 18, 0.42);
  color: #f5f4f7;
  backdrop-filter: blur(20px) saturate(140%);
  -webkit-backdrop-filter: blur(20px) saturate(140%);
  border-right: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  flex-direction: column;
  padding-top: env(safe-area-inset-top);
  padding-bottom: env(safe-area-inset-bottom);
}
@media (min-width: 576px) {
  .offcanvas.canvas-mb {
    --bs-offcanvas-width: 400px;
  }
}

.canvas-mb .canvas-header {
  padding: 18px 20px 16px;
  padding-left: max(20px, env(safe-area-inset-left));
  padding-right: max(20px, env(safe-area-inset-right));
}
.canvas-mb .canvas-header .logo-site {
  display: flex;
  align-items: center;
}
.canvas-mb .canvas-header .logo-site img {
  height: 28px;
  width: auto;
}
.canvas-mb .icon-close-popup {
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-right: -8px;
  color: #fff;
}
.offcanvas.canvas-mb .icon-close-popup:hover,
.offcanvas.canvas-mb .icon-close-popup:focus-visible {
  color: #fff;
}
.canvas-mb .canvas-body {
  padding: 8px 16px 12px;
  padding-left: max(16px, env(safe-area-inset-left));
  padding-right: max(16px, env(safe-area-inset-right));
}
.canvas-mb .canvas-footer {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 16px;
  padding: 16px 16px 24px;
  padding-left: max(16px, env(safe-area-inset-left));
  padding-right: max(16px, env(safe-area-inset-right));
  padding-bottom: max(24px, calc(16px + env(safe-area-inset-bottom)));
}
.canvas-mb .canvas-mb-copy {
  margin: 0;
  padding: 0 4px;
  text-align: center;
}

.canvas-mb .nav-ul-mb {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.canvas-mb .nav-ul-mb > li + li {
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}
.canvas-mb .mb-menu-link {
  min-height: 48px;
  padding: 12px 8px;
  font-size: 18px;
  line-height: 1.3;
  font-weight: 500;
  color: #f5f4f7;
  gap: 12px;
}
.canvas-mb .mb-menu-link__main {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}
.canvas-mb .mb-menu-link__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.043);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: #f5f4f7;
}
.canvas-mb .mb-menu-link__icon [data-lucide],
.canvas-mb .mb-menu-link__icon i {
  display: flex;
  width: 18px;
  height: 18px;
}
.canvas-mb .mb-menu-link__icon svg {
  width: 18px;
  height: 18px;
}
.canvas-mb .nav-ul-mb li:not(:last-child) .mb-menu-link {
  padding-bottom: 12px;
}
.canvas-mb .mb-menu-link:not(.collapsed) {
  padding-bottom: 8px;
}
.canvas-mb .mb-menu-link .icon {
  font-size: 10px;
  color: #a3a1ad;
}
.canvas-mb .mb-menu-link:hover,
.canvas-mb .mb-menu-link:focus-visible {
  color: #fff;
}

.canvas-mb .mb-mega {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 4px 0 16px;
}
.canvas-mb .mb-mega__eyebrow {
  font-family: "Mono", monospace;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #a3a1ad;
  margin: 0 8px 4px;
}
.canvas-mb .mb-mega__item {
  display: grid;
  grid-template-columns: 40px 1fr;
  gap: 0 12px;
  align-items: center;
  min-height: 44px;
  padding: 12px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.03);
  color: inherit;
  text-decoration: none;
}
.canvas-mb .mb-mega__item:hover,
.canvas-mb .mb-mega__item:focus-visible {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.12);
  color: inherit;
}
.canvas-mb .mb-mega__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 11px;
  background: rgba(255, 255, 255, 0.043);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: #f5f4f7;
  flex-shrink: 0;
}
.canvas-mb .mb-mega__icon [data-lucide],
.canvas-mb .mb-mega__icon i {
  display: flex;
  width: 18px;
  height: 18px;
}
.canvas-mb .mb-mega__icon svg {
  width: 18px;
  height: 18px;
}
.canvas-mb .mb-mega__copy {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.canvas-mb .mb-mega__title {
  font-size: 15px;
  line-height: 1.3;
  font-weight: 500;
  color: #f5f4f7;
}
.canvas-mb .mb-mega__desc {
  font-size: 13px;
  line-height: 1.35;
  color: #a3a1ad;
}
.canvas-mb .mb-mega__cta {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 44px;
  margin-top: 4px;
  padding: 10px 12px;
  border-radius: 12px;
  font-size: 15px;
  font-weight: 500;
  color: #f5f4f7;
  text-decoration: none;
  border: 1px solid rgba(255, 255, 255, 0.08);
}
.canvas-mb .mb-mega__cta:hover,
.canvas-mb .mb-mega__cta:focus-visible {
  color: #fff;
  background: rgba(255, 255, 255, 0.06);
}
.canvas-mb .mb-mega__cta [data-lucide],
.canvas-mb .mb-mega__cta i {
  display: flex;
  width: 16px;
  height: 16px;
}
.canvas-mb .mb-mega__cta svg {
  width: 16px;
  height: 16px;
}

.canvas-mb-cta {
  margin: 0;
  padding: 0;
}
.canvas-mb-cta .ubg-home-cta {
  margin: 0;
  padding: 32px 16px;
  min-height: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(0, 0, 0, 0.22);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.canvas-mb-cta .ubg-home-cta__inner {
  max-width: none;
  grid-template-rows: auto auto;
  align-content: start;
  row-gap: 12px;
}
.canvas-mb-cta .ubg-bento-cta__title {
  font-size: clamp(22px, 6vw, 28px);
  font-weight: 600;
  max-width: none;
  grid-row: auto;
}
.canvas-mb-cta .ubg-bento-cta__chip {
  width: 100%;
  justify-content: center;
  grid-row: auto;
  margin-top: 0;
}

.nav-ul-mb {
  display: grid;
  gap: 24px;
}

.mb-item-link {
  font-weight: 500;
  font-size: 36px;
  line-height: 40px;
  letter-spacing: -0.18px;
}
.mb-item-link:hover, .mb-item-link.active {
  color: var(--white);
}

/* Update Inner */
.item-link {
  gap: 6px;
}

.sub-menu {
  position: absolute;
  top: calc(100% + 28px);
  background-color: rgba(15, 15, 15, 0.9);
  box-shadow: rgba(0, 0, 0, 0.05) 0px 10px 20px 0px;
  min-width: 150px;
  left: -31px;
  opacity: 0;
  visibility: hidden;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
  pointer-events: none;
  transform: rotate3d(1, 0, 0, -90deg);
  transform-origin: 0 0 0;
  border-radius: 8px;
}

.sub-menu_list {
  padding: 12px 0px;
}

.sub-menu_link {
  color: var(--white);
  padding: 4px 16px;
  display: flex;
  font-weight: 400;
  font-size: 14px;
  line-height: 20px;
}
.sub-menu_link:hover {
  color: var(--primary);
}

.nav-ul-mb li:not(:last-child) .mb-menu-link {
  padding-bottom: 24px;
}
.nav-ul-mb li:not(:last-child) .sub-nav-menu:not(.sub-menu-level-2) {
  margin-bottom: 24px;
}

.mb-menu-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-weight: 500;
  font-size: 16px;
  line-height: 24px;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
.mb-menu-link .icon {
  font-size: 9px;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
  transform: rotate(0deg);
}
.mb-menu-link:not(.collapsed) {
  padding-bottom: 24px;
}
.mb-menu-link:not(.collapsed) .icon {
  transform: rotate(180deg);
}

.sub-nav-menu {
  padding-left: 16px;
  padding-top: 4px;
  padding-bottom: 4px;
  margin-left: 16px;
  border-left: 1px solid var(--line);
}
.sub-nav-menu .sub-nav-link {
  font-weight: 400;
  font-size: 16px;
  line-height: 24px;
  display: flex;
  padding-top: 8px;
  padding-bottom: 8px;
  align-items: center;
  justify-content: space-between;
}
.sub-nav-menu .sub-nav-link .icon {
  font-size: 14px;
}
.sub-nav-menu .sub-nav-link.active {
  font-weight: 700;
}

/*------------ footer ---------------- */
/* ---------------------------------------------------------
    * Name: Vemus - Jewelry Ecommerce HTML Template
    * Version: 1.0.0
    * Author: Themesflat
    * Author URI: http://themesflat.com 

	* Abstracts variable

    * Reset css styles

    * Components

        * header
        * footer
        * accordion
        * animation
        * blog
        * box iocn
        * button
        * carousel
        * avatar
        * form
        * hover
        * nice select
        * popup
        * product
        * shop
        * slider
        * projects
        * zoom

    * Section
 ------------------------------------------------------------------------------ */
/*--------- Abstracts variable ---------- */
.ft-bg_item {
  position: absolute;
  top: 0;
  left: 0;
  pointer-events: none;
}

.footer-inner-wrap {
  position: relative;
  padding-left: 48px;
  padding-right: 48px;
  overflow: hidden;
}
@media (max-width: 1199px) {
  .footer-inner-wrap {
    padding-left: 30px;
    padding-right: 30px;
  }
}
@media (max-width: 991px) {
  .footer-inner-wrap {
    padding-left: 16px;
    padding-right: 16px;
  }
}

.footer-inner_link {
  gap: 30px 12px;
  padding-top: 88px;
  padding-bottom: 88px;
}
@media (max-width: 1199px) {
  .footer-inner_link {
    padding-top: 70px;
    padding-bottom: 70px;
  }
}
@media (max-width: 991px) {
  .footer-inner_link {
    padding-top: 50px;
    padding-bottom: 50px;
  }
}

.footer-col-block {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
@media (max-width: 1199px) {
  .footer-col-block {
    gap: 16px;
  }
}

.footer-heading {
  font-weight: 400;
  font-size: 12px;
  line-height: 18px;
  letter-spacing: 0px;
  text-transform: uppercase;
  text-decoration: underline;
  text-underline-offset: 3px;
}
@media (min-width: 1200px) {
  .footer-heading {
    min-width: 97px;
  }
}

.tf-collapse-content {
  flex: 1;
}

.footer-menu-list {
  display: grid;
  gap: 8px;
}
.footer-menu-list li a,
.footer-menu-list li .ubg-consent-footer-btn {
  font-family: "Mono", monospace;
  color: var(--white);
  font-size: 12px;
  line-height: 16px;
  text-transform: uppercase;
  letter-spacing: 0;
  font-weight: 400;
}
@media (max-width: 767px) {
  .footer-menu-list {
    gap: 6px;
  }
}

.footer-inner_bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 44px;
  padding-bottom: 44px;
  gap: 12px;
  flex-wrap: wrap;
}
.footer-monkees-link {
  display: inline;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  color: inherit;
  text-decoration: none;
}
.footer-monkees-link:hover {
  color: inherit;
  text-decoration: none;
}
@media (max-width: 1199px) {
  .footer-inner_bottom {
    padding-top: 25px;
    padding-bottom: 25px;
  }
}
@media (max-width: 991px) {
  .footer-inner_bottom {
    padding-top: 15px;
    padding-bottom: 15px;
  }
}
@media (max-width: 767px) {
  .footer-inner_bottom {
    padding-top: 12px;
    padding-bottom: 12px;
  }
}

/* Footer Halo Background */
.tf-footer {
  position: relative;
}

.tf-footer::before {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 500px;
  background-image:
    linear-gradient(180deg, #000 0%, rgba(0, 0, 0, 0) 45%);
  background-position: center top, center bottom;
  background-repeat: no-repeat, no-repeat;
  background-size: 100% 100%, 100% auto;
  opacity: 0.25;
  pointer-events: none;
  z-index: 0;
}

.tf-footer > * {
  position: relative;
  z-index: 1;
}

@media (max-width: 1199px) {
  .tf-footer::before {
    height: 300px;
  }
}

@media (max-width: 767px) {
  .tf-footer::before {
    height: 200px;
  }
}

/*------------ button ---------------- */
/* ---------------------------------------------------------
    * Name: Vemus - Jewelry Ecommerce HTML Template
    * Version: 1.0.0
    * Author: Themesflat
    * Author URI: http://themesflat.com 

	* Abstracts variable

    * Reset css styles

    * Components

        * header
        * footer
        * accordion
        * animation
        * blog
        * box iocn
        * button
        * carousel
        * avatar
        * form
        * hover
        * nice select
        * popup
        * product
        * shop
        * slider
        * projects
        * zoom

    * Section
 ------------------------------------------------------------------------------ */
/*--------- Abstracts variable ---------- */
.tf-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--text-2);
  height: 32px;
  padding-left: 12px;
  padding-right: 12px;
  border-radius: 8px;
  border: 1px solid var(--line);
  background-color: var(--bg-2);
  backdrop-filter: blur(12px);
}
.tf-btn.style-2 {
  box-shadow: 0px 1px 1px 0px rgba(255, 255, 255, 0.1803921569) inset, 0px 0px 4px 0px rgba(255, 255, 255, 0.0588235294) inset, 0px 0px 8px 0px rgba(255, 255, 255, 0.0784313725) inset, 0px 0px 16px 0px rgba(255, 255, 255, 0.1215686275) inset;
  background-color: var(--primary);
  backdrop-filter: blur(0px);
  border: 1px solid rgba(255, 255, 255, 0.1019607843);
}

/* Let's Go + Parlons de votre projet : style Premium (GetLayers) */
.tf-header .btn_group .tf-btn.style-2,
.canvas-mb .canvas-footer .tf-btn.style-2,
.how-to-cta.tf-btn.style-2,
.ubg-bento-cta__chip.tf-btn.style-2,
.ubg-cas-dialog__cta.tf-btn.style-2,
.ubg-cas-cta__chip.tf-btn.style-2,
.ubg-blog-cta__chip.tf-btn.style-2 {
  background: linear-gradient(90deg, #bcc0ca -1.05%, #feeae1 41.74%, #c0cef2 102.46%);
  color: #0f0f17;
  border: 1px solid transparent;
  box-shadow: none;
  backdrop-filter: none;
  font-weight: 600;
}
.tf-header .btn_group .tf-btn.style-2 span,
.canvas-mb .canvas-footer .tf-btn.style-2 span,
.how-to-cta.tf-btn.style-2 span,
.ubg-bento-cta__chip.tf-btn.style-2 span,
.ubg-cas-dialog__cta.tf-btn.style-2 span,
.ubg-cas-cta__chip.tf-btn.style-2 span,
.ubg-blog-cta__chip.tf-btn.style-2 span {
  color: inherit;
}
.tf-header .btn_group .tf-btn.style-2:hover,
.canvas-mb .canvas-footer .tf-btn.style-2:hover,
.how-to-cta.tf-btn.style-2:hover,
.ubg-bento-cta__chip.tf-btn.style-2:hover,
.ubg-cas-dialog__cta.tf-btn.style-2:hover,
.ubg-cas-cta__chip.tf-btn.style-2:hover,
.ubg-blog-cta__chip.tf-btn.style-2:hover {
  background: linear-gradient(90deg, #c8ccd4 -1.05%, #fff0e8 41.74%, #cdd6f5 102.46%);
  color: #0f0f17;
  border-color: transparent;
  filter: brightness(1.06);
}
.tf-btn.style-3 {
  background: linear-gradient(0deg, #141415, #141415), linear-gradient(180deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0) 100%);
  border: 1px solid rgba(255, 255, 255, 0.1019607843);
  box-shadow: 0px 1px 1px 0px rgba(255, 255, 255, 0.1803921569) inset, 0px 0px 4px 0px rgba(255, 255, 255, 0.0588235294) inset, 0px 0px 8px 0px rgba(255, 255, 255, 0.0784313725) inset, 0px 0px 16px 0px rgba(255, 255, 255, 0.1215686275) inset;
}
.tf-btn.style-4 {
  background: linear-gradient(0deg, #141415, #141415), linear-gradient(180deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0) 100%);
  border: 1px solid var(--line);
  box-shadow: 0px 1px 1px 0px rgba(255, 255, 255, 0.1803921569) inset, 0px 0px 4px 0px rgba(255, 255, 255, 0.0588235294) inset, 0px 0px 8px 0px rgba(255, 255, 255, 0.0784313725) inset, 0px 0px 16px 0px rgba(255, 255, 255, 0.1215686275) inset;
  height: 36px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
  gap: 8px;
}
.tf-btn.style-4 .icon {
  font-size: 20px;
}
.tf-btn.style-transparent {
  color: var(--text-main);
  border-color: transparent;
  background-color: transparent;
}
.tf-btn.style-transparent:hover {
  color: var(--text-2);
}
.tf-btn.style-gradient {
  background: var(--primary);
  border: none;
  color: var(--white);
  font-weight: 500;
}
.tf-btn.style-gradient:hover {
  opacity: 0.9;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(27, 78, 245, 0.3);
}
.tf-btn.style-high {
  height: 36px;
}
.tf-btn.style-high-2 {
  height: 44px;
}

.animate-btn {
  position: relative;
  overflow: hidden;
}
.animate-btn:hover::after {
  animation: shine-reverse 1s forwards;
}

.animate-btn:after {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  background-image: linear-gradient(120deg, rgba(255, 255, 255, 0) 30%, rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 0) 70%);
  top: 0;
  left: -100%;
  opacity: 0.6;
}

button.animate-btn::after,
.animate-btn.tf-btn::after {
  background-image: linear-gradient(120deg, rgba(0, 0, 0, 0) 20%, rgba(255, 255, 255, 0.4), rgba(0, 0, 0, 0) 70%);
}

.animate-btn.animate-dark::after {
  background-image: linear-gradient(90deg, transparent, rgba(0, 0, 0, 0.25), transparent);
}

@keyframes shine-reverse {
  0% {
    left: 100%;
  }
  100% {
    left: -100%;
  }
}
.tf-loading {
  font-size: 14px;
  line-height: 20px;
  width: auto;
  height: 42px;
  min-width: 118px;
  padding: 10px;
}
.tf-loading.loadmore .spinner-circle {
  display: none;
}
.tf-loading.loadmore.loading .spinner-circle {
  display: block;
}
.tf-loading.loadmore.loading .text {
  display: none;
}
.tf-loading.loadmore:hover .spinner-child::before {
  background-color: var(--white);
}
.tf-loading.loadmore .spinner-child::before {
  background-color: var(--main);
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

.spinner-circle {
  width: 24px;
  height: 24px;
  position: relative;
}
.spinner-circle .spinner-child {
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}
.spinner-circle .spinner-child::before {
  content: "";
  display: block;
  margin: 0 auto;
  width: 20%;
  height: 20%;
  background-color: var(--white);
  border-radius: 100%;
  -webkit-animation: spinner-circleBounceDelay 1s infinite ease-in-out both;
  animation: spinner-circleBounceDelay 1s infinite ease-in-out both;
}
.spinner-circle .spinner-circle2 {
  -webkit-transform: rotate(40deg);
  -ms-transform: rotate(40deg);
  transform: rotate(40deg);
}
.spinner-circle .spinner-circle2::before {
  -webkit-animation-delay: -0.9s;
  animation-delay: -0.9s;
}
.spinner-circle .spinner-circle3 {
  -webkit-transform: rotate(80deg);
  -ms-transform: rotate(80deg);
  transform: rotate(80deg);
}
.spinner-circle .spinner-circle3::before {
  -webkit-animation-delay: -0.8s;
  animation-delay: -0.8s;
}
.spinner-circle .spinner-circle4 {
  -webkit-transform: rotate(120deg);
  -ms-transform: rotate(120deg);
  transform: rotate(120deg);
}
.spinner-circle .spinner-circle4::before {
  -webkit-animation-delay: -0.7s;
  animation-delay: -0.7s;
}
.spinner-circle .spinner-circle5 {
  -webkit-transform: rotate(160deg);
  -ms-transform: rotate(160deg);
  transform: rotate(160deg);
}
.spinner-circle .spinner-circle5::before {
  -webkit-animation-delay: -0.6s;
  animation-delay: -0.6s;
}
.spinner-circle .spinner-circle6 {
  -webkit-transform: rotate(200deg);
  -ms-transform: rotate(200deg);
  transform: rotate(200deg);
}
.spinner-circle .spinner-circle6::before {
  -webkit-animation-delay: -0.5s;
  animation-delay: -0.5s;
}
.spinner-circle .spinner-circle7 {
  -webkit-transform: rotate(240deg);
  -ms-transform: rotate(240deg);
  transform: rotate(240deg);
}
.spinner-circle .spinner-circle7::before {
  -webkit-animation-delay: -0.4s;
  animation-delay: -0.4s;
}
.spinner-circle .spinner-circle8 {
  -webkit-transform: rotate(280deg);
  -ms-transform: rotate(280deg);
  transform: rotate(280deg);
}
.spinner-circle .spinner-circle8::before {
  -webkit-animation-delay: -0.3s;
  animation-delay: -0.3s;
}
.spinner-circle .spinner-circle9 {
  -webkit-transform: rotate(320deg);
  -ms-transform: rotate(320deg);
  transform: rotate(320deg);
}
.spinner-circle .spinner-circle9::before {
  -webkit-animation-delay: -0.2s;
  animation-delay: -0.2s;
}

@-webkit-keyframes spinner-circleBounceDelay {
  0%, 80%, 100% {
    -webkit-transform: scale(0);
    transform: scale(0);
  }
  40% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }
}
@keyframes spinner-circleBounceDelay {
  0%, 80%, 100% {
    -webkit-transform: scale(0);
    transform: scale(0);
  }
  40% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }
}
.tf-pin-btn {
  cursor: pointer;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
  position: relative;
}
.tf-pin-btn span {
  display: block;
  width: 23px;
  height: 23px;
  background-color: var(--black);
  border: 5px solid var(--white-2);
  border-radius: 50%;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
.tf-pin-btn span::after, .tf-pin-btn span::before {
  position: absolute;
  content: "";
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  border: solid 1px var(--white);
  border-radius: 50%;
}
.tf-pin-btn span::before {
  animation: ripple-line 2s linear infinite;
}
.tf-pin-btn span::after {
  animation: ripple-line 2s 1s linear infinite;
}

.wrap-btn-viewer {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background-color: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 1px 5px rgba(0, 0, 0, 0.3);
  z-index: 5;
}
.wrap-btn-viewer .icon {
  font-size: 20px;
}

.tf-btn-tab {
  background: var(--bg-2);
  border: 1px solid var(--line);
  min-width: 115px;
  height: 32px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
}
.tf-btn-tab.active, .tf-btn-tab:hover {
  background: #1B4EF5;
  box-shadow: 0px 1px 1px 0px rgba(255, 255, 255, 0.1803921569) inset, 0px 0px 4px 0px rgba(255, 255, 255, 0.0588235294) inset, 0px 0px 8px 0px rgba(255, 255, 255, 0.0784313725) inset, 0px 0px 16px 0px rgba(255, 255, 255, 0.1215686275) inset;
}

/*------------ form ---------------- */
/* ---------------------------------------------------------
    * Name: Vemus - Jewelry Ecommerce HTML Template
    * Version: 1.0.0
    * Author: Themesflat
    * Author URI: http://themesflat.com 

	* Abstracts variable

    * Reset css styles

    * Components

        * header
        * footer
        * accordion
        * animation
        * blog
        * box iocn
        * button
        * carousel
        * avatar
        * form
        * hover
        * nice select
        * popup
        * product
        * shop
        * slider
        * projects
        * zoom

    * Section
 ------------------------------------------------------------------------------ */
/*--------- Abstracts variable ---------- */
form {
  position: relative;
  z-index: 30;
}
form textarea,
form input[type=text],
form input[type=password],
form input[type=datetime],
form input[type=datetime-local],
form input[type=date],
form input[type=month],
form input[type=time],
form input[type=week],
form input[type=number],
form input[type=email],
form input[type=url],
form input[type=search],
form input[type=tel],
form input[type=color] {
  outline: 0;
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
  width: 100%;
  padding: 7px 11px;
  font-weight: 400;
  font-size: 14px;
  line-height: 20px;
  letter-spacing: -0.14px;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
  border-radius: 0px;
  background: transparent;
  color: var(--white);
  border-radius: 8px;
  background: var(--bg-2);
  border: 1px solid var(--line);
  min-height: 36px;
}
form textarea::placeholder,
form input[type=text]::placeholder,
form input[type=password]::placeholder,
form input[type=datetime]::placeholder,
form input[type=datetime-local]::placeholder,
form input[type=date]::placeholder,
form input[type=month]::placeholder,
form input[type=time]::placeholder,
form input[type=week]::placeholder,
form input[type=number]::placeholder,
form input[type=email]::placeholder,
form input[type=url]::placeholder,
form input[type=search]::placeholder,
form input[type=tel]::placeholder,
form input[type=color]::placeholder {
  font-weight: 400;
  font-size: 14px;
  line-height: 20px;
  letter-spacing: -0.14px;
  color: var(--text-main);
}
form textarea:focus,
form input[type=text]:focus,
form input[type=password]:focus,
form input[type=datetime]:focus,
form input[type=datetime-local]:focus,
form input[type=date]:focus,
form input[type=month]:focus,
form input[type=time]:focus,
form input[type=week]:focus,
form input[type=number]:focus,
form input[type=email]:focus,
form input[type=url]:focus,
form input[type=search]:focus,
form input[type=tel]:focus,
form input[type=color]:focus {
  border-color: var(--white);
}
form textarea.style-2,
form input[type=text].style-2,
form input[type=password].style-2,
form input[type=datetime].style-2,
form input[type=datetime-local].style-2,
form input[type=date].style-2,
form input[type=month].style-2,
form input[type=time].style-2,
form input[type=week].style-2,
form input[type=number].style-2,
form input[type=email].style-2,
form input[type=url].style-2,
form input[type=search].style-2,
form input[type=tel].style-2,
form input[type=color].style-2 {
  animation: hue-rotate 5s infinite linear;
}
form textarea.style-2::placeholder,
form input[type=text].style-2::placeholder,
form input[type=password].style-2::placeholder,
form input[type=datetime].style-2::placeholder,
form input[type=datetime-local].style-2::placeholder,
form input[type=date].style-2::placeholder,
form input[type=month].style-2::placeholder,
form input[type=time].style-2::placeholder,
form input[type=week].style-2::placeholder,
form input[type=number].style-2::placeholder,
form input[type=email].style-2::placeholder,
form input[type=url].style-2::placeholder,
form input[type=search].style-2::placeholder,
form input[type=tel].style-2::placeholder,
form input[type=color].style-2::placeholder {
  width: max-content;
  color: transparent;
  background: linear-gradient(90.9deg, #9F9DFB 0%, #709AF5 50%, #A5DCF3 100%);
  background-clip: text;
}
form textarea.style-large,
form input[type=text].style-large,
form input[type=password].style-large,
form input[type=datetime].style-large,
form input[type=datetime-local].style-large,
form input[type=date].style-large,
form input[type=month].style-large,
form input[type=time].style-large,
form input[type=week].style-large,
form input[type=number].style-large,
form input[type=email].style-large,
form input[type=url].style-large,
form input[type=search].style-large,
form input[type=tel].style-large,
form input[type=color].style-large {
  padding: 13px 20px;
}
form textarea.type-radius-2,
form input[type=text].type-radius-2,
form input[type=password].type-radius-2,
form input[type=datetime].type-radius-2,
form input[type=datetime-local].type-radius-2,
form input[type=date].type-radius-2,
form input[type=month].type-radius-2,
form input[type=time].type-radius-2,
form input[type=week].type-radius-2,
form input[type=number].type-radius-2,
form input[type=email].type-radius-2,
form input[type=url].type-radius-2,
form input[type=search].type-radius-2,
form input[type=tel].type-radius-2,
form input[type=color].type-radius-2 {
  border-radius: 28px;
}
@media (min-width: 1200px) {
  form textarea.style-large,
  form input[type=text].style-large,
  form input[type=password].style-large,
  form input[type=datetime].style-large,
  form input[type=datetime-local].style-large,
  form input[type=date].style-large,
  form input[type=month].style-large,
  form input[type=time].style-large,
  form input[type=week].style-large,
  form input[type=number].style-large,
  form input[type=email].style-large,
  form input[type=url].style-large,
  form input[type=search].style-large,
  form input[type=tel].style-large,
  form input[type=color].style-large {
    padding: 17px 24px;
  }
}
form button,
form input[type=button],
form input[type=reset],
form input[type=submit] {
  background-color: transparent;
  overflow: hidden;
  padding: 0;
}
form textarea {
  height: 100px;
  resize: none;
}
form .f-col {
  display: flex;
  flex-direction: column;
  gap: 15px;
}
form .cols {
  gap: 15px;
}
form .label-text {
  margin-bottom: 10px;
}
form.style-border input,
form.style-border textarea {
  padding: 11px 12px;
  border: 1px solid var(--line-8);
}
form.style-border textarea:focus {
  border-color: var(--primary);
}
form.style-btn-abs .btn-submit {
  position: absolute;
  right: 4px;
  top: 4px;
  bottom: 4px;
}
form.style-radius fieldset input {
  padding: 9px 10px 9px 52px;
  border-top: 1px solid var(--line);
  border-right: 1px solid var(--line);
  border-left: 1px solid var(--line);
  border-radius: 30px;
}
form.style-radius fieldset input:focus {
  border-color: var(--primary);
}
form .form-content-2 {
  gap: 12px;
  display: grid;
}
form .tf-grid-layout {
  gap: 12px;
}
@media (min-width: 1200px) {
  form .form-content-2 {
    gap: 24px;
  }
}

input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.tf-check {
  position: relative;
  background: transparent;
  cursor: pointer;
  outline: 0;
  -webkit-appearance: none;
  width: 16px;
  height: 16px;
  min-width: 16px;
  border: 1px solid var(--line-10);
  padding: 0;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  background-color: var(--white);
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
.tf-check:checked {
  border-color: var(--primary);
  background-color: var(--primary);
}
.tf-check:checked::before {
  opacity: 1;
  transform: scale(1);
}
.tf-check::before {
  font-weight: 500;
  font-family: "icomoon";
  content: "\e944";
  position: absolute;
  color: var(--white);
  opacity: 0;
  font-size: 7px;
  transform: scale(0);
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
.tf-check.style-2 {
  width: 24px;
  height: 24px;
  min-width: 24px;
}
.tf-check.style-2:before {
  font-size: 10px;
}
.tf-check.style-3 {
  width: 40px;
  height: 40px;
  min-width: 40px;
}
.tf-check.style-4 {
  width: 20px;
  height: 20px;
  min-width: 20px;
}

.checkbox-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
}
.checkbox-wrap input {
  padding: 0;
}
.checkbox-wrap label {
  cursor: pointer;
}
.checkbox-wrap .type-2 {
  gap: 8px;
}

.tf-field {
  position: relative;
}
.tf-field .tf-input {
  padding: 22px 0px 3px !important;
}
.tf-field .tf-input:not(:placeholder-shown) ~ .tf-lable, .tf-field .tf-input:focus ~ .tf-lable {
  top: 0;
  transform: translateY(0%);
  font-size: 12px;
  line-height: 20px;
  letter-spacing: 0;
}
.tf-field .tf-input::placeholder {
  color: transparent;
}
.tf-field .tf-lable {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  cursor: text;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
  font-size: 16px;
  line-height: 24px;
  letter-spacing: -0.32px;
  pointer-events: none;
}
.tf-field .tf-lable.type-2 {
  top: 22px;
  transform: 0;
}

.tf-select {
  position: relative;
}
.tf-select select {
  border-radius: 0;
  width: 100%;
  padding: 16px 10px;
  border: 1px solid var(--line);
  -webkit-appearance: none;
  appearance: none;
  background-color: transparent;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
  font-size: 16px;
  line-height: 24px;
  color: var(--main);
  outline: unset;
}
.tf-select::after {
  font-family: "icomoon";
  position: absolute;
  content: "\e928";
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 10px;
  z-index: -1;
  font-weight: 400;
}
.tf-select:hover select {
  border-color: var(--primary);
}
.tf-select.select-square select {
  padding-top: 14px;
  padding-bottom: 14px;
  border-radius: 6px;
  font-size: 14px;
  line-height: 20px;
  color: var(--main-4);
  opacity: 0.8;
  height: 50px;
}

.tf-check-rounded {
  padding: 0 !important;
  position: relative;
  border: 1px solid #9a9a9a;
  border-radius: 50%;
  background: none;
  cursor: pointer;
  outline: 0;
  height: 10px;
  width: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  -webkit-appearance: none;
}
.tf-check-rounded::before {
  content: "";
  position: absolute;
  border-radius: 50%;
  width: 6px;
  height: 6px;
  background-color: var(--primary);
  opacity: 0;
}
.tf-check-rounded:checked {
  border-color: var(--primary);
}
.tf-check-rounded:checked::before {
  opacity: 1;
}

.form-ask {
  padding: 11px;
  border: 1px solid var(--line);
  backdrop-filter: blur(16px);
  border-radius: 28px;
  background: var(--bg-2);
}
.form-ask .form-content input {
  padding: 2px 4px 26px;
  border: 0;
}
.form-ask .field-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
}
.form-ask .field_left,
.form-ask .field_right {
  display: flex;
  align-items: center;
  gap: 8px;
}

.btn-ip {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: linear-gradient(0deg, rgba(20, 20, 21, 0.82), rgba(20, 20, 21, 0.82)), linear-gradient(180deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0) 100%);
  border: 1px solid var(--line);
  box-shadow: 0px 1px 1px 0px rgba(255, 255, 255, 0.1803921569) inset, 0px 0px 4px 0px rgba(255, 255, 255, 0.0588235294) inset, 0px 0px 8px 0px rgba(255, 255, 255, 0.0784313725) inset, 0px 0px 16px 0px rgba(255, 255, 255, 0.1215686275) inset;
  padding: 7px 12px;
  border-radius: 999px;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
  color: var(--text-2);
}
.btn-ip .icon {
  font-size: 20px;
  width: 20px;
}
.btn-ip.type-circle {
  border-radius: 50%;
  padding: 7px;
}
.btn-ip.type-transparent {
  border: transparent;
  background: transparent;
  box-shadow: unset;
}
.btn-ip:hover {
  color: var(--primary);
}

.form-get .form-content {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}
.form-get fieldset {
  max-width: 237px;
  width: 100%;
}

.form-search {
  position: relative;
}
.form-search input {
  border-radius: 24px;
}
.form-search .btn_submit {
  position: absolute;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  top: 4px;
  right: 4px;
  bottom: 4px;
  font-size: 18px;
}
@media (min-width: 1200px) {
  .form-search .btn_submit {
    width: 48px;
    height: 48px;
    font-size: 24px;
  }
}

.form-review .form-content {
  display: grid;
  gap: 12px;
  margin-bottom: 24px;
}
.form-review .form-content fieldset {
  display: grid;
}
.form-review .form-content label {
  margin-bottom: 8px;
}
.form-review .form-content textarea {
  height: 100px;
}
.form-review .tf-grid-layout {
  gap: 12px;
}
@media (min-width: 1200px) {
  .form-review .form-content {
    gap: 24px;
  }
}

.form-get_in {
  width: 100%;
}
.form-get_in .form-content-2 {
  margin-bottom: 24px;
}
.form-get_in .form-content-2 .label-text {
  margin-bottom: 8px;
}
.form-get_in .form-content-2 fieldset {
  display: grid;
}
@media (min-width: 1200px) {
  .form-get_in {
    max-width: 675px;
    width: 100%;
    margin-left: auto;
    padding-left: 12px;
  }
}

/*------------ pop up ---------------- */
/* ---------------------------------------------------------
    * Name: Vemus - Jewelry Ecommerce HTML Template
    * Version: 1.0.0
    * Author: Themesflat
    * Author URI: http://themesflat.com 

	* Abstracts variable

    * Reset css styles

    * Components

        * header
        * footer
        * accordion
        * animation
        * blog
        * box iocn
        * button
        * carousel
        * avatar
        * form
        * hover
        * nice select
        * popup
        * product
        * shop
        * slider
        * projects
        * zoom

    * Section
 ------------------------------------------------------------------------------ */
/*--------- Abstracts variable ---------- */
.offcanvas {
  border: none !important;
  color: var(--black);
  z-index: 3000;
}
.offcanvas .icon-close-popup {
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
  cursor: pointer;
  background: transparent;
  border: none;
  color: var(--white);
  z-index: 10;
  font-size: 20px;
}
.offcanvas .icon-close-popup:hover {
  color: var(--primary);
}

.offcanvas-backdrop {
  z-index: 2999;
  cursor: url(../images/cursor-close.svg), auto;
}

.overflow-x-auto::-webkit-scrollbar,
.overflow-y-auto::-webkit-scrollbar {
  width: 0px;
}

.modal {
  cursor: url(../images/cursor-close.svg), auto;
}
.modal .icon-close-popup {
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
  cursor: pointer;
  background: transparent;
  font-size: 16px;
  padding: 16px;
  border: none;
  color: var(--black);
  z-index: 10;
  top: 0px;
  right: 0px;
}
.modal .icon-close-popup:hover {
  color: var(--primary);
}
@media (min-width: 576px) {
  .modal .icon-close-popup {
    top: 10px;
    right: 10px;
  }
}
.modal .modal-body {
  padding: 0;
}
.modal.fullRight .modal-dialog {
  transform: translate(100%, 0);
  min-width: 100%;
  height: 100%;
  margin: 0;
  transition: transform 1s ease-out;
}
.modal.fullRight .modal-dialog .modal-content {
  border-radius: 0;
  border: 0;
  margin: auto;
  overflow: hidden;
  position: absolute;
  right: 0;
  bottom: 0;
  top: 0;
  padding: 0;
}
.modal.fullRight .modal-dialog .modal-content .modal-body {
  overflow: auto;
  padding: 0;
  padding-bottom: 30px;
}
.modal.fullRight.show .modal-dialog {
  transform: none;
  transition: transform 0.4s ease-out;
}
.modal.fullLeft .modal-dialog {
  transform: translate(-100%, 0) !important;
  min-width: 100%;
  height: 100%;
  margin: 0;
  transition: all 0.3s !important;
}
.modal.fullLeft .modal-content {
  border-radius: 0;
  border: 0;
  margin: auto;
  overflow: hidden;
  position: absolute;
  left: 0;
  bottom: 0;
  top: 0;
  padding: 0;
}
.modal.fullLeft .modal-body {
  overflow: auto;
  padding: 0;
  padding-bottom: 30px;
}
.modal.fullLeft.show .modal-dialog {
  transform: translate(0, 0) !important;
}
.modal.fullBottom .modal-dialog {
  transform: translate(0, 100%);
  min-width: 100%;
  height: 100%;
  max-height: unset;
  margin: 0;
  transition: transform 0.3s linear !important;
}
.modal.fullBottom .modal-content {
  border-radius: 0;
  border: 0;
  margin: auto;
  overflow: hidden;
  position: absolute;
  right: 0;
  bottom: 0;
  padding: 0;
  max-height: max-content;
}
.modal.fullBottom .modal-body {
  overflow: auto;
  padding: 0;
  padding-bottom: 30px;
}
.modal.fullBottom.show .modal-dialog {
  transform: translate(0, 0);
}
.modal.modalCentered .modal-dialog {
  transform: translate(0, 0) !important;
}
.modal.fade:not(.show) {
  opacity: 0;
}
.modal .modal-content {
  cursor: default !important;
  border-radius: 0px;
}

.canvas-sidebar {
  max-width: 320px;
  width: 100%;
  background-color: var(--black);
}
.canvas-sidebar .blog-sidebar {
  max-width: unset;
}
.canvas-sidebar .canvas-body {
  padding-left: 20px;
  padding-right: 20px;
}
@media (min-width: 992px) {
  .canvas-sidebar {
    max-width: 535px;
    width: 100% !important;
  }
}

.canvas-wrapper {
  padding: 0;
  isolation: isolate;
  height: 100%;
  width: 100%;
  max-height: none;
  display: grid;
  grid-auto-rows: auto minmax(0, 1fr) auto;
  align-content: start;
}

.canvas-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 28px 32px;
  position: relative;
}

.canvas-body {
  background-color: transparent;
  padding: 12px 32px 15px;
  overscroll-behavior-y: contain;
  overflow-y: auto;
  flex: 1;
}
.canvas-body::-webkit-scrollbar {
  width: 5px;
}
.canvas-body::-webkit-scrollbar-track {
  background-color: transparent;
}
.canvas-body::-webkit-scrollbar-thumb {
  background: var(--primary);
  border-radius: 4px;
}
@media (min-width: 1200px) {
  .canvas-body {
    padding: 12px 32px 15px;
  }
}

.canvas-footer {
  padding: 0px 32px 34px;
}
.modal-log .modal-top .title {
  margin-bottom: 30px;
}
.modal-log .modal-content {
  padding: 32px;
}
.modal-log .modal-bottom {
  width: 100%;
  max-width: 440px;
  margin: 0 auto;
}
.modal-log .other-login {
  display: grid;
  gap: 15px;
  margin-bottom: 40px;
}
@media (min-width: 768px) {
  .modal-log .modal-top .title {
    margin-bottom: 52px;
  }
}
@media (min-width: 1200px) {
  .modal-log .modal-content {
    padding-bottom: 100px;
  }
  .modal-log .modal-dialog {
    max-width: 934px;
  }
}
@media (max-width: 575px) {
  .modal-log .modal-content {
    padding: 20px 15px;
  }
}

.popup-body {
  overscroll-behavior-y: contain;
  overflow-y: auto;
  padding: 20px;
}
@media (min-width: 1200px) {
  .popup-body {
    padding: 20px 32px;
  }
}

/*------------ box icon ---------------- */
/* ---------------------------------------------------------
    * Name: Vemus - Jewelry Ecommerce HTML Template
    * Version: 1.0.0
    * Author: Themesflat
    * Author URI: http://themesflat.com 

	* Abstracts variable

    * Reset css styles

    * Components

        * header
        * footer
        * accordion
        * animation
        * blog
        * box iocn
        * button
        * carousel
        * avatar
        * form
        * hover
        * nice select
        * popup
        * product
        * shop
        * slider
        * projects
        * zoom

    * Section
 ------------------------------------------------------------------------------ */
/*--------- Abstracts variable ---------- */
.box-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
  cursor: pointer;
}

.tf-icon-box {
  display: flex;
  flex-direction: column;
  gap: 20px;
  align-items: center;
}
.tf-icon-box .icon-box {
  font-size: 40px;
}
.tf-icon-box .content {
  display: grid;
  gap: 8px;
}
.tf-icon-box.style-2 {
  flex-direction: row;
  align-items: flex-start;
  justify-content: center;
  gap: 12px;
}
.tf-icon-box.style-2 .icon-box {
  flex-shrink: 0;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  border: 1px solid var(--line);
  display: flex;
  align-items: center;
  justify-content: center;
}
.tf-icon-box.style-2.type-column {
  flex-direction: column;
  gap: 22px;
}
.tf-icon-box.style-3 {
  padding-right: 20px;
  gap: 12px;
}
.tf-icon-box.style-3 .icon-box {
  padding: 12px;
}

.slider-icon-box {
  padding: 30px;
  border-radius: 16px;
}

.tf-social-icon {
  display: inline-flex;
  gap: 15px;
  --facebook-cl: rgb(59, 89, 152);
  --x-cl: rgb(85, 85, 85);
  --instagram-cl: linear-gradient(#8a3ab9, #e95950, #fccc63);
  --threads-cl: rgb(224, 53, 102);
  --youtube-cl: rgb(205, 32, 31);
  --tiktok-cl: linear-gradient(#25f4ee, #000, #fe2c55);
  --tiktok-cl2: rgb(254, 44, 85);
  --pinterest-cl: rgb(203, 32, 39);
  --tumblr-cl: rgb(55, 69, 92);
  --vimeo-cl: rgb(26, 183, 234);
  --snapchat-cl: rgb(255, 221, 0);
  --whatsapp-cl: rgb(0, 230, 118);
  --linked_in-cl: rgb(23, 106, 255);
  --wechat-cl: rgb(26, 173, 24);
  --reddit-cl: rgb(255, 69, 0);
  --line-cl: rgb(0, 195, 77);
  --spotify-cl: rgb(30, 125, 96);
}
.tf-social-icon a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1px solid var(--line-3);
  position: relative;
}
.tf-social-icon a .icon {
  display: inline-flex;
  position: relative;
  z-index: 1;
  font-size: 16px;
}
.tf-social-icon a::after {
  content: "";
  border-radius: 50%;
  position: absolute;
  background: transparent;
  top: -1px;
  left: -1px;
  right: -1px;
  bottom: -1px;
  z-index: 0;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
  opacity: 0;
  visibility: hidden;
}
.tf-social-icon .social-facebook::after {
  background: var(--facebook-cl);
}
.tf-social-icon .social-facebook:hover {
  color: var(--white);
}
.tf-social-icon .social-facebook:hover::after {
  opacity: 1;
  visibility: visible;
}
.tf-social-icon .social-instagram::after {
  background: var(--instagram-cl);
}
.tf-social-icon .social-instagram:hover {
  color: var(--white);
}
.tf-social-icon .social-instagram:hover::after {
  opacity: 1;
  visibility: visible;
}
.tf-social-icon .social-x::after {
  background: var(--x-cl);
}
.tf-social-icon .social-x:hover {
  color: var(--white);
}
.tf-social-icon .social-x:hover::after {
  opacity: 1;
  visibility: visible;
}
.tf-social-icon .social-snapchat::after {
  background: var(--snapchat-cl);
}
.tf-social-icon .social-snapchat:hover {
  color: var(--white);
}
.tf-social-icon .social-snapchat:hover::after {
  opacity: 1;
  visibility: visible;
}
.tf-social-icon .social-pinterest::after {
  background: var(--pinterest-cl);
}
.tf-social-icon .social-pinterest:hover {
  color: var(--white);
}
.tf-social-icon .social-pinterest:hover::after {
  opacity: 1;
  visibility: visible;
}
.tf-social-icon .social-linkin::after {
  background: var(--linked_in-cl);
}
.tf-social-icon .social-linkin:hover {
  color: var(--white);
}
.tf-social-icon .social-linkin:hover::after {
  opacity: 1;
  visibility: visible;
}
.tf-social-icon.style-white a {
  color: var(--white);
  border-color: var(--line-4);
}
@media (min-width: 1200px) {
  .tf-social-icon.style-large a {
    width: 48px;
    height: 48px;
  }
  .tf-social-icon.style-large a i {
    font-size: 20px;
  }
}

/*------------ hover ---------------- */
/* ---------------------------------------------------------
    * Name: Vemus - Jewelry Ecommerce HTML Template
    * Version: 1.0.0
    * Author: Themesflat
    * Author URI: http://themesflat.com 

	* Abstracts variable

    * Reset css styles

    * Components

        * header
        * footer
        * accordion
        * animation
        * blog
        * box iocn
        * button
        * carousel
        * avatar
        * form
        * hover
        * nice select
        * popup
        * product
        * shop
        * slider
        * projects
        * zoom

    * Section
 ------------------------------------------------------------------------------ */
/*--------- Abstracts variable ---------- */
.hover-img .img-style {
  overflow: hidden;
}
.hover-img .img-style > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  -webkit-transition: opacity 0.5s ease, transform 1.5s cubic-bezier(0, 0, 0.44, 1.18);
  transition: opacity 0.5s ease, transform 1.5s cubic-bezier(0, 0, 0.44, 1.18);
}
.hover-img:hover .img-style > img {
  -webkit-transform: scale(1.1);
  transform: scale(1.1);
}
.hover-img .img-style2 {
  overflow: hidden;
  border-radius: 10px;
}
.hover-img .img-style2 .img-hv {
  width: 100%;
  object-fit: cover;
  -webkit-transition: all 1s cubic-bezier(0.3, 1, 0.35, 1) 0s;
  transition: all 1s cubic-bezier(0.3, 1, 0.35, 1) 0s;
  transition: transform 500ms ease;
}

.hover-img2 .img-style2 {
  overflow: hidden;
  border-radius: 8px;
}
.hover-img2 .img-style2 .img2 {
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
.hover-img2:hover .img2 {
  transform: scale(1.1) rotate(3deg);
}

.hover-img3 .img-style3 {
  border-radius: 8px;
  overflow: hidden;
}
.hover-img3 .img-style3 img {
  width: 100%;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
.hover-img3:hover img {
  transform: scale(1.075);
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

.hover-img4 .img-style4 {
  position: relative;
  overflow: hidden;
}
.hover-img4 .img-style4:after {
  content: "";
  position: absolute;
  width: 200%;
  height: 0%;
  left: 50%;
  top: 50%;
  background-color: rgba(255, 255, 255, 0.3);
  transform: translate(-50%, -50%) rotate(-45deg);
  z-index: 1;
  pointer-events: none;
}
.hover-img4 .img-style4 img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: all 1s;
}
.hover-img4:hover .img-style4:after {
  height: 250%;
  transition: all 600ms linear;
  background-color: transparent;
}
.hover-img4:hover .img-style4 img {
  transform: scale(1.1);
}

.hover-img5 .img-style5 {
  position: relative;
  overflow: hidden;
}
.hover-img5 .img-style5:after {
  content: "";
  position: absolute;
  width: 200%;
  height: 0%;
  left: 50%;
  top: 50%;
  background-color: rgba(255, 255, 255, 0.3);
  transform: translate(-50%, -50%) rotate(-45deg);
  z-index: 1;
  pointer-events: none;
}
.hover-img5:hover .img-style5:after {
  height: 250%;
  transition: all 600ms linear;
  background-color: transparent;
}

.pagi2 .swiper-pagination2:hover .box-img .icon-practice,
.swiper-button-next2:hover .box-img .icon-practice,
.swiper-button-prev2:hover .box-img .icon-practice,
.hv-one:hover .box-img .icon-practice {
  opacity: 1;
  z-index: 99;
  top: 50%;
  transition-delay: 0.5s;
}
.pagi2 .swiper-pagination2:hover .img-style::before,
.swiper-button-next2:hover .img-style::before,
.swiper-button-prev2:hover .img-style::before,
.hv-one:hover .img-style::before {
  opacity: 1;
}
.pagi2 .swiper-pagination2 .img-style,
.swiper-button-next2 .img-style,
.swiper-button-prev2 .img-style,
.hv-one .img-style {
  border-radius: 10px;
  overflow: hidden;
}
.pagi2 .swiper-pagination2 .img-style::before,
.swiper-button-next2 .img-style::before,
.swiper-button-prev2 .img-style::before,
.hv-one .img-style::before {
  content: "";
  top: 0;
  right: 0;
  left: 0;
  bottom: 0;
  position: absolute;
  background: rgba(0, 0, 0, 0.5019607843);
  width: 100%;
  height: 100%;
  -webkit-transition: all 0.5s ease;
  -moz-transition: all 0.5s ease;
  -ms-transition: all 0.5s ease;
  -o-transition: all 0.5s ease;
  transition: all 0.5s ease;
  z-index: 99;
  opacity: 0;
  border-radius: 10px;
}
.pagi2 .swiper-pagination2 .img-style.s-one::before,
.swiper-button-next2 .img-style.s-one::before,
.swiper-button-prev2 .img-style.s-one::before,
.hv-one .img-style.s-one::before {
  border-radius: 50%;
}

.hv-one2:hover .img-style2::before {
  opacity: 1;
  visibility: visible;
}
.hv-one2 .img-style2::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  -webkit-transition: all 0.4s ease-out 0s;
  -moz-transition: all 0.4s ease-out 0s;
  -ms-transition: all 0.4s ease-out 0s;
  -o-transition: all 0.4s ease-out 0s;
  transition: all 0.4s ease-out 0s;
  opacity: 0;
  visibility: hidden;
  background: rgba(0, 0, 0, 0.5);
  z-index: 1;
  border-radius: 10px;
}

.hv-tool {
  position: relative;
  transition: all 0.3s ease;
}

.hover-tooltip {
  position: relative;
}
.hover-tooltip .tooltip {
  position: absolute;
  white-space: nowrap;
  padding: 0px 8.5px;
  height: 24px;
  border-radius: 2px;
  bottom: calc(100% + 7px);
  left: 50%;
  transform: translateX(-50%);
  opacity: 0;
  visibility: hidden;
  color: var(--white);
  max-width: 250px;
  width: max-content;
  background-color: var(--main);
  transition: transform 0.3s ease 0.1s, opacity 0.3s ease 0.1s;
  z-index: 5;
  font-size: 12px;
  line-height: 22px;
}
.hover-tooltip .tooltip::before {
  content: "";
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
  top: 20px;
  position: absolute;
  background: var(--main);
  width: 8px;
  height: 8px;
  z-index: -1;
}
.hover-tooltip:hover .tooltip {
  opacity: 1;
  visibility: visible;
}
.hover-tooltip.tooltip-bot .tooltip {
  top: calc(100% + 5px);
  bottom: unset;
}
.hover-tooltip.tooltip-bot .tooltip::before {
  top: -2px;
}
.hover-tooltip.tooltip-left .tooltip {
  right: 100%;
  bottom: auto;
  transform: translateX(0px);
  left: unset;
}
.hover-tooltip.tooltip-left .tooltip::before {
  top: 50%;
  left: auto;
  transform: translateY(-50%) rotate(45deg);
  right: -2px;
}
.hover-tooltip.tooltip-left:hover .tooltip {
  transform: translateX(-8px);
}
.hover-tooltip.tooltip-right .tooltip {
  left: 100%;
  bottom: auto;
  transform: translateX(0px);
}
.hover-tooltip.tooltip-right .tooltip::before {
  top: 50%;
  right: auto;
  transform: translateY(-50%) rotate(45deg);
  left: -2px;
}
.hover-tooltip.tooltip-right:hover .tooltip {
  transform: translateX(8px);
}

.hover-overlay {
  position: relative;
}
.hover-overlay::before {
  position: absolute;
  z-index: 2;
  content: "";
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.1);
  top: 0;
  left: 0;
  transition: 0.4s ease 0.1s;
  opacity: 0;
  visibility: hidden;
}
.hover-overlay:hover::before {
  opacity: 1;
  visibility: visible;
}

.hover-cursor-img .hover-image {
  display: none;
}
@media (min-width: 1200px) {
  .hover-cursor-img {
    position: relative;
  }
  .hover-cursor-img .hover-image {
    position: fixed;
    display: block;
    transform: scale(0);
    pointer-events: none;
    opacity: 0;
    transition: transform 0.3s ease, opacity 0.3s ease;
    z-index: 1000;
  }
  .hover-cursor-img .hover-image img {
    border-radius: 50%;
    max-width: 150px;
    box-shadow: 0px 10px 25px 0px rgba(43, 52, 74, 0.1215686275);
  }
}

/*------------ tabs ---------------- */
/* ---------------------------------------------------------
    * Name: Vemus - Jewelry Ecommerce HTML Template
    * Version: 1.0.0
    * Author: Themesflat
    * Author URI: http://themesflat.com 

	* Abstracts variable

    * Reset css styles

    * Components

        * header
        * footer
        * accordion
        * animation
        * blog
        * box iocn
        * button
        * carousel
        * avatar
        * form
        * hover
        * nice select
        * popup
        * product
        * shop
        * slider
        * projects
        * zoom

    * Section
 ------------------------------------------------------------------------------ */
/*--------- Abstracts variable ---------- */
.flat-animate-tab .tab-content {
  position: relative;
}
.flat-animate-tab .tab-pane {
  display: block;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  right: 0;
  -webkit-transform: translateY(30px);
  -ms-transform: translateY(30px);
  transform: translateY(30px);
  transition-timing-function: ease-in;
  transition-duration: 0.2s;
}
.flat-animate-tab .tab-pane.active {
  pointer-events: auto;
  opacity: 1;
  visibility: visible;
  position: relative;
  z-index: 2;
  -webkit-transform: none;
  -ms-transform: none;
  transform: none;
  transition-timing-function: ease-out;
  transition-duration: 0.3s;
  transition-delay: 0.3s;
}

.tab-can_do {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 32px;
  padding: 0px 12px;
}
.tab-can_do .nav-tab-item {
  padding: 32px 0px;
  position: relative;
}
.tab-can_do .nav-tab-item::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  height: 2px;
  width: 70%;
  background-color: var(--text-2);
  box-shadow: 0px -0.66px 1.6px 0px rgba(244, 247, 245, 0.1411764706);
  box-shadow: 0px -1.5px 3.6px 0px rgba(244, 247, 245, 0.0196078431), 0px -2.5px 6.25px 0px rgba(244, 247, 245, 0.2509803922), 0px -4.2px 10.5px 0px rgba(244, 247, 245, 0.3019607843), 0px -12px 24px 0px rgba(244, 247, 245, 0.5607843137), 0px -10px 24px 0px rgba(244, 247, 245, 0.4784313725), 0px -16px 40px 0px rgba(244, 247, 245, 0.6392156863), 0px -33px 80px 0px rgba(244, 247, 245, 0.6);
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
  opacity: 0;
  visibility: hidden;
}
.tab-can_do .nav-tab-item.active::after {
  opacity: 1;
  visibility: visible;
}
.tab-can_do .btn_tab.active, .tab-can_do .btn_tab:hover {
  background: linear-gradient(0deg, #141415, #141415), linear-gradient(180deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0) 100%);
}
@media (max-width: 991px) {
  .tab-can_do {
    justify-content: start;
    overflow-x: auto;
    white-space: nowrap;
    gap: 24px;
  }
}

.tab-how_to {
  padding-left: 16px;
  padding-right: 16px;
}
.tab-how_to .btn_tab {
  display: grid;
  gap: 12px;
  cursor: pointer;
}
.tab-how_to .btn_tab .name {
  position: relative;
}
.tab-how_to .btn_tab .name::before {
  content: attr(data-text);
  position: absolute;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(90.9deg, #9F9DFB 0%, #709AF5 50%, #A5DCF3 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  color: transparent;
  z-index: 2;
  pointer-events: none;
  opacity: 0;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
.tab-how_to .btn_tab.active .name::before {
  opacity: 1;
}
.tab-how_to .nav-tab-item:not(:first-child) .btn_tab {
  padding-top: 48px;
}
.tab-how_to .nav-tab-item:not(:last-child) .btn_tab {
  padding-bottom: 48px;
}
.tab-how_to .name {
  color: var(--text-2);
}
@media (max-width: 1199px) {
  .tab-how_to .nav-tab-item:not(:first-child) .btn_tab {
    padding-top: 24px;
  }
  .tab-how_to .nav-tab-item:not(:last-child) .btn_tab {
    padding-bottom: 24px;
  }
}
@media (max-width: 767px) {
  .tab-how_to .desc {
    font-size: 14px;
  }
}

.image-how_to img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/*------------ animation ---------------- */
/* ---------------------------------------------------------
    * Name: Vemus - Jewelry Ecommerce HTML Template
    * Version: 1.0.0
    * Author: Themesflat
    * Author URI: http://themesflat.com 

	* Abstracts variable

    * Reset css styles

    * Components

        * header
        * footer
        * accordion
        * animation
        * blog
        * box iocn
        * button
        * carousel
        * avatar
        * form
        * hover
        * nice select
        * popup
        * product
        * shop
        * slider
        * projects
        * zoom

    * Section
 ------------------------------------------------------------------------------ */
/*--------- Abstracts variable ---------- */
@keyframes sliderShape {
  0%, 100% {
    border-radius: 42% 58% 70% 30%/45% 45% 55% 55%;
    transform: translate3d(0, 0, 0) rotateZ(0.01deg);
  }
  34% {
    border-radius: 70% 30% 46% 54%/30% 29% 71% 70%;
    transform: translate3d(0, 5px, 0) rotateZ(0.01deg);
  }
  50% {
    transform: translate3d(0, 0, 0) rotateZ(0.01deg);
  }
  67% {
    border-radius: 100% 60% 60% 100%/100% 100% 60% 60%;
    transform: translate3d(0, -3px, 0) rotateZ(0.01deg);
  }
}
@keyframes tf-animate-zoom-in-out {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.2);
  }
  100% {
    transform: scale(1);
  }
}
@keyframes ripple-line {
  to {
    transform: scale(2);
    opacity: 0;
  }
}
@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
@keyframes background-animate {
  0% {
    background-position: 50% 0;
  }
  100% {
    background-position: 50% 100%;
  }
}
@keyframes flicker {
  0% {
    opacity: 1;
  }
  50% {
    opacity: 0.8;
  }
  100% {
    opacity: 1;
  }
}
@keyframes iconBounce {
  0%, 100%, 20%, 50%, 80% {
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
  40% {
    -webkit-transform: translateY(-8px);
    -ms-transform: translateY(-8px);
    transform: translateY(-8px);
  }
  60% {
    -webkit-transform: translateY(-5px);
    -ms-transform: translateY(-5px);
    transform: translateY(-5px);
  }
}
@keyframes moveUp {
  0% {
    background-position-y: 0;
  }
  100% {
    background-position-y: -1000px;
  }
}
@keyframes waveAnim {
  0% {
    opacity: 0.3;
    transform: scaleY(0.5);
    background-color: var(--text-3);
  }
  50% {
    opacity: 0.6;
    transform: scaleY(0.8);
    background-color: var(--text-main);
  }
  100% {
    opacity: 1;
    transform: scaleY(1);
    background-color: var(--text-2);
  }
}
@keyframes shineMove {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(50%);
  }
}
@keyframes sparkleWave {
  0% {
    background-position: 0 0;
  }
  100% {
    background-position: 200% 200%;
  }
}
@keyframes hue-rotate {
  0% {
    filter: hue-rotate(0deg);
  }
  to {
    filter: hue-rotate(360deg);
  }
}
@keyframes shimmerBlur {
  0% {
    transform: translateX(-2%) translateY(-2%) scale(1);
  }
  50% {
    transform: translateX(2%) translateY(2%) scale(1.02);
  }
  100% {
    transform: translateX(-1%) translateY(1%) scale(1);
  }
}
@keyframes rotateWave {
  0% {
    background-position: 0% 0%;
  }
  100% {
    background-position: 100% 100%;
  }
}
@keyframes fogDrift {
  0% {
    transform: translate(0%, 0%);
  }
  25% {
    transform: translate(-1%, 1%);
  }
  50% {
    transform: translate(1%, -1%);
  }
  75% {
    transform: translate(-0.5%, -0.5%);
  }
  100% {
    transform: translate(0%, 0%);
  }
}
@keyframes waveFlag {
  0% {
    transform: perspective(1000px) rotateY(0deg) translateX(0) skewY(0deg);
  }
  25% {
    transform: perspective(1000px) rotateY(4deg) translateX(-1%) skewY(1.5deg);
  }
  50% {
    transform: perspective(1000px) rotateY(0deg) translateX(1%) skewY(-1.5deg);
  }
  75% {
    transform: perspective(1000px) rotateY(-4deg) translateX(-0.5%) skewY(1deg);
  }
  100% {
    transform: perspective(1000px) rotateY(0deg) translateX(0) skewY(0deg);
  }
}
/*------------ blog ---------------- */
/* ---------------------------------------------------------
    * Name: Vemus - Jewelry Ecommerce HTML Template
    * Version: 1.0.0
    * Author: Themesflat
    * Author URI: http://themesflat.com 

	* Abstracts variable

    * Reset css styles

    * Components

        * header
        * footer
        * accordion
        * animation
        * blog
        * box iocn
        * button
        * carousel
        * avatar
        * form
        * hover
        * nice select
        * popup
        * product
        * shop
        * slider
        * projects
        * zoom

    * Section
 ------------------------------------------------------------------------------ */
/*--------- Abstracts variable ---------- */
.blog-article {
  padding: 20px 16px;
  border: 1px solid var(--line);
  border-radius: 16px;
  position: relative;
  overflow: hidden;
}

.blog-article .article_content {
  position: relative;
  z-index: 1;
}
.blog-article .entry_image {
  border-radius: 12px;
  overflow: hidden !important;
  display: block !important;
  margin-bottom: 20px;
  height: 180px !important;
  max-height: 180px !important;
  width: 100% !important;
  position: relative;
}

.blog-article a.entry_image,
.blog-article .entry_image.img-style {
  display: block !important;
  width: 100% !important;
  height: 180px !important;
  max-height: 180px !important;
  overflow: hidden !important;
  border-radius: 12px;
  position: relative;
  z-index: 1;
  text-decoration: none;
}

.blog-article .entry_image img,
.blog-article .entry_image.img-style > img,
.blog-article .entry_image.img-style img,
.blog-article.hover-img .img-style > img,
.blog-article.hover-img .entry_image.img-style > img,
.blog-article.hover-img .entry_image.img-style img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  max-width: 100% !important;
  max-height: 100% !important;
}
.blog-article .entry_title {
  margin-bottom: 16px;
  font-family: "Mono" !important;
  font-size: 16px !important;
  line-height: 1.4 !important;
  display: block;
  overflow: visible;
}

.blog-article .entry_title.font-3 {
  font-family: "Mono" !important;
  font-size: 16px !important;
  line-height: 1.4 !important;
}

.blog-article .entry_title.h5 {
  font-size: 16px !important;
  line-height: 1.4 !important;
}
.blog-article .entry_desc {
  margin-bottom: 20px;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  display: -webkit-box;
  overflow: hidden;
  font-size: 13px !important;
  line-height: 1.5 !important;
}

/* STYLES FORCÉS POUR LES KEYWORDS BLOG.PHP ET HOME.PHP - PRIORITÉ MAXIMALE */
.blog-article .article_content .article-keywords,
.wg-blog-article .article-content .article-keywords {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin-bottom: 16px !important;
  margin-top: 0 !important;
  width: 100% !important;
}

.blog-article .article_content .article-keywords .keyword-tag,
.blog-article .article_content .keyword-tag,
.wg-blog-article .article-content .article-keywords .keyword-tag,
.wg-blog-article .article-content .keyword-tag {
  padding: 6px 12px !important;
  border-radius: 6px !important;
  background: rgba(255, 255, 255, 0.05) !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  color: var(--text-main) !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  transition: all 0.3s ease !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  white-space: nowrap !important;
  line-height: 1.5 !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  height: auto !important;
  min-height: 24px !important;
}

.blog-article .article_content .article-keywords .keyword-tag:hover,
.blog-article .article_content .keyword-tag:hover,
.wg-blog-article .article-content .article-keywords .keyword-tag:hover,
.wg-blog-article .article-content .keyword-tag:hover {
  background: rgba(255, 255, 255, 0.08) !important;
  border-color: rgba(255, 255, 255, 0.15) !important;
}

.blog-article .article_content .article-keywords .keyword-tag svg,
.blog-article .article_content .keyword-tag svg,
.blog-article .article_content .article-keywords .keyword-tag > svg,
.blog-article .article_content .keyword-tag > svg,
.wg-blog-article .article-content .article-keywords .keyword-tag svg,
.wg-blog-article .article-content .keyword-tag svg,
.wg-blog-article .article-content .article-keywords .keyword-tag > svg,
.wg-blog-article .article-content .keyword-tag > svg {
  width: 14px !important;
  height: 14px !important;
  min-width: 14px !important;
  min-height: 14px !important;
  max-width: 14px !important;
  max-height: 14px !important;
  color: var(--primary) !important;
  stroke: var(--primary) !important;
  fill: none !important;
  stroke-width: 2.5 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  flex-shrink: 0 !important;
  display: inline-block !important;
  margin: 0 !important;
  padding: 0 !important;
  vertical-align: middle !important;
  box-sizing: border-box !important;
}
.blog-article .br-line {
  margin-bottom: 20px;
}
.blog-article .entry_meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 16px;
}
.blog-article .entry_meta .meta {
  display: flex;
  align-items: center;
  gap: 8px;
}

.blog-article .entry_meta--above-title {
  margin-bottom: 8px;
  gap: 8px;
}
.blog-article .entry_meta .entry_date,
.blog-article .entry_meta .meta-text {
  font-family: "Mono" !important;
  color: var(--text-3);
  font-size: 12px !important;
  font-weight: 500 !important;
}
.blog-article .entry_meta .icon {
  color: var(--white);
  font-size: 20px;
}
.blog-article .entry_meta .meta__date {
  gap: 4px;
}
.blog-article .entry_meta .meta__date [data-lucide],
.blog-article .entry_meta .meta [data-lucide] {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  display: inline-block;
  color: var(--text-3);
  margin-right: 0;
}
.blog-article .entry_meta .meta__date [data-lucide] svg,
.blog-article .entry_meta .meta [data-lucide] svg {
  width: 14px;
  height: 14px;
  color: var(--text-3);
  stroke: var(--text-3);
  fill: none;
  stroke-width: 2;
}
@media (min-width: 1200px) {
  .blog-article {
    padding: 32px;
  }
  .blog-article .entry_desc,
  .blog-article .entry_image,
  .blog-article .br-line {
    margin-bottom: 32px;
  }
  .blog-article .entry_meta {
    gap: 24px;
  }
}

.blog-article::before {
  content: "";
  position: absolute;
  top: 0;
  left: 16px;
  width: 24px;
  height: 2px;
  background-color: var(--text-2);
  box-shadow: 0px 0px 6px 0px rgba(255, 255, 255, 0.5019607843), 0px 2px 12px 1px rgba(255, 255, 255, 0.3019607843), 0px 1px 24px 2px rgba(255, 255, 255, 0.2), 0px 2px 36px 3px rgba(255, 255, 255, 0.2), 0px 0px 40px 30px rgba(255, 255, 255, 0.1019607843);
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
  z-index: 2;
}

.blog-article::after {
  content: "";
  position: absolute;
  inset: 0;
  background-position: top right;
  background-repeat: no-repeat;
  z-index: 0;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
  opacity: 0;
  visibility: hidden;
}

.blog-article .item {
  position: absolute;
  bottom: 0;
  width: 100%;
  z-index: 0;
  filter: blur(50px);
  opacity: 0;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

.blog-article .item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.blog-article:hover::after {
  opacity: 1;
  visibility: visible;
}

.blog-article:hover::before {
  background-color: var(--bg-7);
  box-shadow: 0px 0px 6px 0px rgba(35, 101, 255, 0.6), 0px 2px 12px 1px rgba(35, 101, 255, 0.4), 0px 1px 24px 2px rgba(35, 101, 255, 0.3019607843), 0px 2px 36px 3px rgba(35, 101, 255, 0.3019607843), 0px 0px 40px 30px rgba(35, 101, 255, 0.2);
}

.blog-article:hover .item {
  opacity: 0.82;
}

@media (min-width: 1200px) {
  .blog-article::before {
    left: 32px;
  }
}

.pagination-list {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  margin-top: 40px;
}

.pagination-item {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  font-size: 20px;
  color: var(--white);
  background: linear-gradient(0deg, #141415, #141415), linear-gradient(180deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0) 100%);
  border: 1px solid rgba(255, 255, 255, 0.1019607843);
  box-shadow: 0px 1px 1px 0px rgba(255, 255, 255, 0.1803921569) inset, 0px 0px 4px 0px rgba(255, 255, 255, 0.0588235294) inset, 0px 0px 8px 0px rgba(255, 255, 255, 0.0784313725) inset, 0px 0px 16px 0px rgba(255, 255, 255, 0.1215686275) inset;
  position: relative;
  text-decoration: none;
  transition: all 0.3s ease;
}

.pagination-item span {
  position: relative;
  z-index: 1;
}

.pagination-item [data-lucide] {
  position: relative;
  z-index: 1;
  width: 20px;
  height: 20px;
  color: inherit;
}

.pagination-item [data-lucide] svg {
  width: 20px;
  height: 20px;
  color: inherit;
  stroke: currentColor;
  fill: none;
  stroke-width: 2;
}

.pagination-item::after {
  position: absolute;
  content: "";
  z-index: 0;
  inset: 0;
  border-radius: 50%;
  background-color: var(--white);
  opacity: 0;
  visibility: hidden;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

.pagination-item:hover,
.pagination-item.active {
  color: var(--black) !important;
}

.pagination-item:hover::after,
.pagination-item.active::after {
  opacity: 1 !important;
  visibility: visible !important;
}

.blog-filters {
  position: fixed !important;
  bottom: 0 !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  max-width: 1200px !important;
  width: calc(100% - 32px) !important;
  margin-bottom: 0 !important;
  padding: 20px 24px !important;
  border-top: 1px solid var(--line) !important;
  border-left: 1px solid var(--line) !important;
  border-right: 1px solid var(--line) !important;
  border-bottom: none !important;
  border-radius: 16px 16px 0 0 !important;
  background: var(--main) !important;
  z-index: 1000 !important;
  box-shadow: 0px -4px 20px rgba(0, 0, 0, 0.3) !important;
  backdrop-filter: blur(10px) !important;
}

.page-blog_content .col-left {
  padding-bottom: 200px !important;
}

.categories-filter {
  margin-bottom: 24px;
}

.categories-filter .article-keywords {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin-bottom: 0 !important;
}

.categories-filter .keyword-tag {
  padding: 6px 12px !important;
  border-radius: 6px !important;
  background: rgba(255, 255, 255, 0.05) !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  color: var(--text-main) !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  transition: all 0.3s ease !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  white-space: nowrap !important;
  line-height: 1.5 !important;
  text-decoration: none !important;
  cursor: pointer !important;
}

.categories-filter .keyword-tag:hover {
  background: rgba(255, 255, 255, 0.08) !important;
  border-color: rgba(255, 255, 255, 0.15) !important;
}

.categories-filter .keyword-tag.active {
  background: rgba(27, 78, 245, 0.15) !important;
  border-color: var(--primary) !important;
  color: var(--primary) !important;
}

.categories-filter .keyword-tag.active [data-lucide],
.categories-filter .keyword-tag.active [data-lucide] svg {
  color: var(--primary) !important;
  stroke: var(--primary) !important;
}

.categories-filter .keyword-tag [data-lucide] {
  width: 14px !important;
  height: 14px !important;
  flex-shrink: 0 !important;
  display: inline-block !important;
  color: var(--text-main) !important;
  margin: 0 !important;
  padding: 0 !important;
}

.categories-filter .keyword-tag [data-lucide] svg {
  width: 14px !important;
  height: 14px !important;
  color: var(--text-main) !important;
  stroke: var(--text-main) !important;
  fill: none !important;
  stroke-width: 2.5 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  transition: all 0.3s ease !important;
}

.categories-filter .keyword-tag:hover [data-lucide],
.categories-filter .keyword-tag:hover [data-lucide] svg {
  color: var(--primary) !important;
  stroke: var(--primary) !important;
}

.search-filter {
  margin-bottom: 0;
}

.search-filter .form-search {
  position: relative;
  display: flex;
  align-items: center;
}

.search-filter .form-search input {
  flex: 1;
  padding: 13px 60px 13px 20px !important;
  border-radius: 28px !important;
  background: var(--bg-2) !important;
  border: 1px solid var(--line) !important;
  color: var(--white) !important;
  font-size: 14px !important;
  transition: all 0.3s ease !important;
  min-height: 48px !important;
}

.search-filter .form-search input::placeholder {
  color: var(--text-3) !important;
}

.search-filter .form-search input:focus {
  border-color: var(--primary) !important;
  outline: none !important;
}

.search-filter .form-search .btn_submit {
  position: absolute !important;
  right: 4px !important;
  top: 4px !important;
  bottom: 4px !important;
  width: 40px !important;
  height: 40px !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  border: none !important;
  background: var(--primary) !important;
  color: var(--white) !important;
  transition: all 0.3s ease !important;
  cursor: pointer !important;
  flex-shrink: 0 !important;
}

.search-filter .form-search .btn_submit:hover {
  background: var(--primary) !important;
  transform: scale(1.05) !important;
  box-shadow: 0px 0px 12px rgba(27, 78, 245, 0.5) !important;
}

.search-filter .form-search .btn_submit .icon {
  color: var(--white) !important;
  font-size: 18px !important;
}

@media (min-width: 1200px) {
  .search-filter .form-search .btn_submit {
    width: 48px !important;
    height: 48px !important;
  }
  
  .search-filter .form-search input {
    padding: 17px 70px 17px 24px !important;
  }
}

.blog-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  width: 100%;
}

.blog-list > * {
  margin-bottom: 0;
}

@media (max-width: 991px) {
  .blog-list {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 767px) {
  .blog-list {
    grid-template-columns: 1fr;
  }
}

.page-blog_content {
  display: block;
  width: 100%;
}
.page-blog_content.detail .col-left {
  padding-bottom: 0 !important;
}
.article-toc {
  display: none;
}
.main-blog_detail .detail_text.s2 h2,
.main-blog_detail .detail_text.s2 h3,
.main-blog_detail #article-sources,
.main-blog_detail #faq,
.main-blog_detail .faq_title {
  scroll-margin-top: 108px;
}
@media (min-width: 1200px) {
  .page-blog_content.detail.has-toc {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 220px;
    gap: 40px;
    align-items: start;
  }
  .page-blog_content.detail.has-toc .col-left {
    width: auto !important;
    max-width: none !important;
    min-width: 0;
  }
  .article-toc {
    display: block;
    position: sticky;
    top: 108px;
    padding: 2px 0 2px 18px;
    border-left: 1px solid var(--line);
  }
  .article-toc__label {
    margin: 0 0 14px;
    font-family: "Mono", ui-monospace, monospace;
    font-size: 10px;
    line-height: 1.3;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-3);
  }
  .article-toc__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 10px;
  }
  .article-toc__item--h3 {
    padding-left: 12px;
  }
  .article-toc a {
    display: block;
    color: var(--text-3);
    font-size: 13px;
    line-height: 1.35;
    text-decoration: none;
    transition: color 0.2s ease;
  }
  .article-toc a:hover,
  .article-toc a.is-active {
    color: #ffffff;
  }
}
.page-blog_content.detail .col-left > *:not(:last-child) {
  margin-bottom: 40px;
}
.page-blog_content .col-left {
  width: 100% !important;
  max-width: 100% !important;
  padding-bottom: 200px !important;
}
@media (min-width: 992px) {
  .page-blog_content .col-left {
    width: 100% !important;
    max-width: 100% !important;
  }
}
@media (min-width: 1200px) {
  .page-blog_content .col-left {
    max-width: 100% !important;
    width: 100% !important;
  }
  .page-blog_content .col-right {
    max-width: 364px;
    width: 100%;
  }
}
@media (min-width: 1440px) {
  .page-blog_content {
    gap: 40px;
  }
}

.blog-sidebar > *:not(:last-child) {
  margin-bottom: 24px;
}

.sidebar-item {
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 31px;
}
.sidebar-item .sb-title,
.sidebar-item .br-line {
  margin-bottom: 32px;
}
@media (max-width: 1199px) {
  .sidebar-item {
    padding: 20px 16px;
  }
  .sidebar-item .sb-title,
  .sidebar-item .br-line {
    margin-bottom: 20px;
  }
}

.sb-category {
  display: grid;
  gap: 8px;
}
.sb-category a {
  padding: 13px 24px;
  background-color: var(--main);
  border: 1px solid var(--line);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: var(--white);
}
.sb-category a .icon,
.sb-category a [data-lucide] {
  font-size: 20px;
  color: var(--text-5);
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
  flex-shrink: 0;
  width: 20px;
  height: 20px;
}
.sb-category a [data-lucide] svg {
  width: 20px;
  height: 20px;
  color: var(--text-5);
  stroke: var(--text-5);
  fill: none;
  stroke-width: 2;
}
.sb-category a:hover {
  color: var(--text-5);
}
.sb-category a:hover .icon,
.sb-category a:hover [data-lucide] {
  transform: rotate(45deg);
}
.sb-category a:hover [data-lucide] svg {
  color: var(--primary);
  stroke: var(--primary);
}

.sb-recent {
  display: grid;
  gap: 20px;
}
@media (min-width: 1200px) {
  .sb-recent {
    gap: 32px;
  }
}

.sb-recent_item {
  display: flex;
  align-items: center;
  gap: 12px;
}
.sb-recent_item .recent__image {
  max-width: 94px;
  width: 100%;
  border-radius: 12px;
  overflow: hidden;
  flex-shrink: 0;
}
.sb-recent_item .entry_date {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}
.sb-recent_item .entry_date .icon {
  font-size: 20px;
  color: var(--white);
}
.sb-recent_item .entry_date .date {
  color: var(--text-main);
}
.sb-recent_item .entry_name {
  color: var(--text-2);
}
@media (max-width: 991px) {
  .sb-recent_item .entry_name {
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    display: -webkit-box;
    overflow: hidden;
  }
}

.sb-tag {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.sb-tag a {
  background-color: var(--main);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 7px 11px;
  color: var(--white);
}

.sb-tag-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.sb-tag-list li {
  margin: 0;
  padding: 0;
}

.sb-tag-list a {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--text-main);
  text-decoration: none;
  padding: 0;
  transition: all 0.3s ease;
  font-size: 14px;
  line-height: 1.5;
  font-weight: 400;
}

.sb-tag-list a span {
  flex: 1;
  font-weight: 700;
}

.sb-tag-list a [data-lucide] {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  color: var(--text-main);
  transition: all 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.sb-tag-list a [data-lucide] svg {
  width: 20px;
  height: 20px;
  color: var(--text-main);
  stroke: var(--text-main);
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: all 0.3s ease;
}

.sb-tag-list a:hover [data-lucide],
.sb-tag-list a:hover [data-lucide] svg {
  color: var(--primary);
  stroke: var(--primary);
}

.sb-tag-list a.active {
  color: var(--primary);
}

.sb-tag-list a.active [data-lucide],
.sb-tag-list a.active [data-lucide] svg {
  color: var(--primary);
  stroke: var(--primary);
}

.sb-case {
  display: grid;
  gap: 8px;
}

.sb-case_item a {
  display: flex;
  gap: 24px;
  color: var(--white);
  padding: 11px 24px;
  border: 1px solid var(--line);
  background-color: var(--main);
  border-radius: 12px;
}
.sb-case_item a .text {
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
.sb-case_item a .icon {
  font-size: 20px;
}
.sb-case_item a:hover {
  color: var(--primary);
}
.sb-case_item a:hover .text {
  color: var(--primary);
}
.sb-case_item .br-line {
  margin-bottom: 0;
}

.btn-sidebar-mb {
  position: fixed;
  top: 30%;
  left: 0;
  z-index: 50;
}
.btn-sidebar-mb button {
  width: 40px;
  height: 40px;
  border: 1px solid var(--white);
  background-color: var(--white);
  color: var(--black);
  display: flex;
  justify-content: center;
  align-items: center;
}
.btn-sidebar-mb button i {
  font-size: 20px;
}
.btn-sidebar-mb button:hover {
  background-color: var(--black);
  color: var(--white);
}
.btn-sidebar-mb.right {
  left: unset;
  right: 0;
  transform: rotate(180deg);
}

/* En-tête de l'article (titre + meta) : dans la carte main-blog_detail */
.blog-detail_heading {
  max-width: 859px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.blog-detail_heading .title_detail {
  margin-bottom: 34px;
  font-family: "Outfit", sans-serif;
  font-size: 28px;
  line-height: 1.2;
  font-weight: 600;
  text-transform: none;
  letter-spacing: -0.02em;
  overflow: visible;
  white-space: normal;
  overflow-wrap: anywhere;
}
.blog-detail_heading .title_detail.text-linear {
  background: linear-gradient(180deg, #F4F7F5 0%, rgba(244, 247, 245, 0.82) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  padding-right: 0.12em;
  padding-bottom: 0.1em;
}
.blog-detail_heading .title_detail.font-3 {
  font-family: "Outfit", sans-serif;
}
@media (max-width: 767px) {
  .blog-detail_heading .title_detail {
    font-size: 20px;
  }
}
.blog-detail_heading .br-line {
  margin-bottom: 32px;
}
.blog-detail_heading .meta_detail {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 16px 24px;
}
.blog-detail_heading .meta_detail .meta {
  display: flex;
  align-items: center;
  gap: 8px;
}
.blog-detail_heading .meta_detail .icon {
  color: var(--white);
  font-size: 20px;
}
.blog-detail_heading .meta_detail .meta-text {
  color: var(--white);
}
.blog-detail_heading .meta_detail .meta [data-lucide] {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  color: var(--white);
  stroke: var(--white);
  fill: none;
  stroke-width: 2;
}
.blog-detail_heading .meta_detail .meta [data-lucide] svg {
  width: 18px;
  height: 18px;
  color: var(--white);
  stroke: var(--white);
  fill: none;
  stroke-width: 2;
}
.blog-detail_heading .meta_tags-list {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 12px 16px;
  margin-top: 20px;
}
.blog-detail_heading .meta_tags-list .meta {
  display: flex;
  align-items: center;
  gap: 8px;
}
.blog-detail_heading .meta_tags-list .meta [data-lucide] {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  color: var(--white);
  stroke: var(--white);
  fill: none;
  stroke-width: 2;
}
.blog-detail_heading .meta_tags-list .meta [data-lucide] svg {
  width: 18px;
  height: 18px;
  color: var(--white);
  stroke: var(--white);
  fill: none;
  stroke-width: 2;
}
/* Badge Archive - style générique pour liste et détail */
.article-archive-badge {
  display: inline-flex;
  align-items: center;
  height: 20px;
  padding: 0 8px;
  border-radius: 999px;
  border: 1px solid rgba(255, 59, 59, 0.85);
  color: rgba(255, 59, 59, 0.95);
  background: rgba(255, 59, 59, 0.06);
  font-family: "Mono";
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.main-blog_detail {
  padding: 31px;
  border: 1px solid var(--line);
  border-radius: 16px;
}
.main-blog_detail .detail_title {
  margin-bottom: 20px;
}
.main-blog_detail .detail_text {
  margin-bottom: 24px;
}

/* Article detail: typographie contenu riche (HTML) */
.main-blog_detail .detail_text.s2 {
  color: var(--text-6);
  line-height: 1.75;
}
.main-blog_detail .detail_text.s2 > *:first-child {
  margin-top: 0;
}
.main-blog_detail .detail_text.s2 > *:last-child {
  margin-bottom: 0;
}

.main-blog_detail .detail_text.s2 h1,
.main-blog_detail .detail_text.s2 h2,
.main-blog_detail .detail_text.s2 h3,
.main-blog_detail .detail_text.s2 h4,
.main-blog_detail .detail_text.s2 h5,
.main-blog_detail .detail_text.s2 h6 {
  font-family: "Outfit", sans-serif;
  font-weight: 600;
  letter-spacing: -0.02em;
  text-transform: none;
  margin: 22px 0 12px;
  color: #ffffff;
}
.main-blog_detail .detail_text.s2 h1 { font-size: 30px; line-height: 1.15; }
.main-blog_detail .detail_text.s2 h2 { font-size: 24px; line-height: 1.2; }
.main-blog_detail .detail_text.s2 h3 { font-size: 20px; line-height: 1.25; }
.main-blog_detail .detail_text.s2 h4 { font-size: 18px; line-height: 1.3; }

.main-blog_detail .detail_text.s2 p {
  margin: 0 0 14px;
  text-align: justify;
}
.main-blog_detail .detail_text.s2 .faq-list {
  margin: 24px 0;
  padding: 0;
}
.main-blog_detail .detail_text.s2 .faq-item {
  padding: 18px 0;
  margin: 0;
  border-bottom: 1px solid var(--line);
  position: relative;
}
.main-blog_detail .detail_text.s2 .faq-item:last-child {
  border-bottom: none;
}
.main-blog_detail .detail_text.s2 .faq-item .faq_title {
  font-size: 16px;
  line-height: 1.4;
  letter-spacing: -0.12px;
  margin: 0;
  padding-right: 36px;
  color: var(--text-2);
}
.main-blog_detail .detail_text.s2 .faq-item .faq_label,
.main-blog_detail .detail_text.s2 .faq-list p.faq_label {
  text-align: left;
  margin: 0;
  padding: 0;
  font-size: 14px;
  line-height: 1.55;
}
.main-blog_detail .detail_text.s2 .faq-item.is-open .faq_label {
  margin-top: 10px;
  max-height: 2000px;
}
.main-blog_detail .detail_text.s2 .faq-list .br-line,
.main-blog_detail .faq-list .br-line {
  display: none;
}
.main-blog_detail .detail_text.s2 br {
  line-height: 0.4;
  display: block;
  margin: 3px 0;
}

/* Listes */
.main-blog_detail .detail_text.s2 ul,
.main-blog_detail .detail_text.s2 ol {
  margin: 0 0 16px;
  padding-left: 20px;
  color: var(--text-6);
}
.main-blog_detail .detail_text.s2 ul { list-style: disc; }
.main-blog_detail .detail_text.s2 ol { list-style: decimal; }
.main-blog_detail .detail_text.s2 li {
  list-style: inherit;
  margin: 8px 0;
  color: var(--text-6);
  position: relative;
}
.main-blog_detail .detail_text.s2 li::marker {
  color: var(--text-6);
}
/* Li avec lien en premier enfant : remplacer le marker par une icône Lucide */
.main-blog_detail .detail_text.s2 li.has-link-first {
  list-style: none;
  padding-left: 24px;
}
.main-blog_detail .detail_text.s2 li.has-link-first i[data-lucide="link"] {
  position: absolute;
  left: 0;
  top: 0.3em;
  width: 16px !important;
  height: 16px !important;
  color: var(--text-6) !important;
}
.main-blog_detail .detail_text.s2 li.has-link-first i[data-lucide="link"] svg {
  width: 16px !important;
  height: 16px !important;
  color: var(--text-6) !important;
  stroke: var(--text-6) !important;
  fill: none !important;
  stroke-width: 2 !important;
}
.main-blog_detail .detail_text.s2 li > ul,
.main-blog_detail .detail_text.s2 li > ol {
  margin-top: 8px;
}

/* Liens */
.main-blog_detail .detail_text.s2 a {
  color: var(--white);
  text-decoration: none;
  font-weight: 500;
  transition: color 0.2s ease;
}
.main-blog_detail .detail_text.s2 a:hover {
  color: var(--text-5);
}

/* Emphase */
.main-blog_detail .detail_text.s2 strong,
.main-blog_detail .detail_text.s2 b {
  color: var(--white);
  font-weight: 700;
}
.main-blog_detail .detail_text.s2 em,
.main-blog_detail .detail_text.s2 i {
  font-style: italic;
  color: var(--text-2);
}

/* Citations / séparateurs */
.main-blog_detail .detail_text.s2 blockquote {
  margin: 24px 0;
  padding: 22px 28px 20px 32px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background-color: rgba(255, 255, 255, 0.02);
  background-image: url("../images/item/item-bg-1.png");
  background-position: center;
  background-size: cover;
  position: relative;
  color: var(--text-2);
  font-family: "Outfit", sans-serif;
  font-size: 18px;
  font-weight: 400;
  font-style: italic;
  letter-spacing: -0.02em;
  line-height: 1.5;
}
.main-blog_detail .detail_text.s2 blockquote::before {
  content: "“";
  position: absolute;
  top: 6px;
  right: 16px;
  font-family: "Outfit", sans-serif;
  font-style: normal;
  font-weight: 600;
  font-size: 56px;
  line-height: 1;
  color: rgba(255, 255, 255, 0.08);
  pointer-events: none;
}
.main-blog_detail .detail_text.s2 blockquote::after {
  content: "";
  position: absolute;
  width: 2px;
  height: 24px;
  background: #1B4EF5;
  box-shadow: 0px 0px 6px 0px rgba(35, 101, 255, 0.6), 0px 2px 12px 1px rgba(35, 101, 255, 0.4), 0px 1px 24px 2px rgba(35, 101, 255, 0.3019607843), 0px 2px 36px 3px rgba(35, 101, 255, 0.3019607843), 0px 0px 40px 30px rgba(35, 101, 255, 0.2);
  top: 22px;
  left: -1px;
}
.main-blog_detail .detail_text.s2 blockquote p {
  margin: 0 0 10px;
  text-align: left;
  font: inherit;
  color: inherit;
}
.main-blog_detail .detail_text.s2 blockquote p:last-child {
  margin-bottom: 0;
}
.main-blog_detail .detail_text.s2 blockquote cite,
.main-blog_detail .detail_text.s2 blockquote footer {
  display: block;
  margin-top: 14px;
  font-family: "Mono", ui-monospace, monospace;
  font-size: 11px;
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-5);
}
@media (max-width: 767px) {
  .main-blog_detail .detail_text.s2 blockquote {
    padding: 18px 16px 16px 20px;
    font-size: 16px;
  }
  .main-blog_detail .detail_text.s2 blockquote::before {
    font-size: 42px;
    right: 10px;
  }
}
.main-blog_detail .detail_text.s2 hr,
.main-blog_detail .detail_text.s2 .br-line {
  border: 0;
  width: 100%;
  height: 1px;
  background: var(--line);
  margin: 20px 0 0;
}
.main-blog_detail .detail_text.s2 .br-line + h1,
.main-blog_detail .detail_text.s2 .br-line + h2,
.main-blog_detail .detail_text.s2 .br-line + h3,
.main-blog_detail .detail_text.s2 .br-line + h4 {
  margin-top: 16px;
}
.main-blog_detail .detail_text.s2 .br-line + p:empty,
.main-blog_detail .detail_text.s2 .br-line + p:has(> br:only-child) {
  display: none;
}
.main-blog_detail .detail_text.s2 table {
  margin: 20px 0;
}
.main-blog_detail .detail_text.s2 thead {
  background-color: rgba(255, 255, 255, 0.06);
}
.main-blog_detail .detail_text.s2 th {
  font-family: "Outfit", sans-serif;
  font-weight: 650;
  font-size: 14px;
  line-height: 1.35;
  letter-spacing: -0.02em;
  color: #ffffff;
  text-align: left;
  vertical-align: middle;
}

/* Code */
.main-blog_detail .detail_text.s2 pre,
.main-blog_detail .detail_text.s2 code {
  font-family: "Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}
.main-blog_detail .detail_text.s2 code {
  padding: 2px 6px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.08);
  font-family: "Mono";
  text-transform: uppercase;
  color: #9a9a9a;
}
.main-blog_detail .detail_text.s2 pre {
  margin: 18px 0;
  padding: 16px 18px 16px 22px;
  border-radius: 12px;
  overflow: auto;
  border: 1px solid var(--line);
  background-color: rgba(255, 255, 255, 0.03);
  background-image: url("../images/item/item-bg-1.png");
  background-position: center;
  background-size: cover;
  position: relative;
}

/* Blocs de code en fenêtre terminal */
.main-blog_detail .detail_text.s2 .ubg-article-term {
  margin: 22px 0;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #070707;
  overflow: hidden;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.35);
}
.main-blog_detail .detail_text.s2 .ubg-article-term__bar {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 38px;
  padding: 0 14px;
  border-bottom: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.03);
}
.main-blog_detail .detail_text.s2 .ubg-article-term__dots {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.main-blog_detail .detail_text.s2 .ubg-article-term__dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
}
.main-blog_detail .detail_text.s2 .ubg-article-term__dot--close {
  background: #ff5f57;
}
.main-blog_detail .detail_text.s2 .ubg-article-term__dot--min {
  background: #febc2e;
}
.main-blog_detail .detail_text.s2 .ubg-article-term__dot--max {
  background: #28c840;
}
.main-blog_detail .detail_text.s2 .ubg-article-term__title {
  font-family: "Mono", ui-monospace, monospace;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #6a6873;
}
.main-blog_detail .detail_text.s2 .ubg-article-term__pre,
.main-blog_detail .detail_text.s2 .ubg-article-term pre {
  margin: 0;
  padding: 16px 18px 18px;
  border: 0;
  border-radius: 0;
  background: transparent;
  background-image: none;
  overflow: auto;
  position: static;
}
.main-blog_detail .detail_text.s2 .ubg-article-term pre::after,
.main-blog_detail .detail_text.s2 .ubg-article-term__pre::after {
  content: none;
}
.main-blog_detail .detail_text.s2 .ubg-article-term code,
.main-blog_detail .detail_text.s2 .ubg-article-term__pre code {
  display: block;
  padding: 0;
  border: 0;
  background: transparent;
  text-transform: none;
  color: #cfcdd6;
  font-family: "Mono", ui-monospace, Menlo, Monaco, Consolas, monospace;
  font-size: 13px;
  line-height: 1.7;
  white-space: pre;
  tab-size: 2;
}
.main-blog_detail .detail_text.s2 .ubg-hl-key { color: #5997FF; }
.main-blog_detail .detail_text.s2 .ubg-hl-str { color: #3FC53A; }
.main-blog_detail .detail_text.s2 .ubg-hl-kw { color: #8b7cf6; }
.main-blog_detail .detail_text.s2 .ubg-hl-num { color: #F1913D; }
.main-blog_detail .detail_text.s2 .ubg-hl-fn { color: #5997FF; }
.main-blog_detail .detail_text.s2 .ubg-hl-cm { color: #4a4a4a; font-style: italic; }

/* Code en "bloc" sans <pre> (souvent avec <br>) */
.main-blog_detail .detail_text.s2 > code,
.main-blog_detail .detail_text.s2 p > code:only-child {
  display: block;
  margin: 18px 0;
  padding: 16px 18px 16px 22px;
  border-radius: 12px;
  overflow: auto;
  border: 1px solid var(--line);
  background-color: rgba(255, 255, 255, 0.03);
  background-image: url("../images/item/item-bg-1.png");
  background-position: center;
  background-size: cover;
  position: relative;
  text-transform: none;
  color: #e7eaf0;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 13px;
  line-height: 1.6;
  white-space: pre-wrap;
}
.main-blog_detail .detail_text.s2 > code::after,
.main-blog_detail .detail_text.s2 p > code:only-child::after {
  content: "";
  position: absolute;
  width: 2px;
  height: 24px;
  background: #1B4EF5;
  box-shadow: 0px 0px 6px 0px rgba(35, 101, 255, 0.6), 0px 2px 12px 1px rgba(35, 101, 255, 0.4), 0px 1px 24px 2px rgba(35, 101, 255, 0.3019607843), 0px 2px 36px 3px rgba(35, 101, 255, 0.3019607843), 0px 0px 40px 30px rgba(35, 101, 255, 0.2);
  top: 18px;
  left: -1px;
}
.main-blog_detail .detail_text.s2 pre code {
  padding: 0;
  border: 0;
  background: transparent;
  text-transform: none;
  color: #e7eaf0;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 13px;
  line-height: 1.6;
}
.main-blog_detail .detail_text.s2 pre::after {
  content: "";
  position: absolute;
  width: 2px;
  height: 24px;
  background: #1B4EF5;
  box-shadow: 0px 0px 6px 0px rgba(35, 101, 255, 0.6), 0px 2px 12px 1px rgba(35, 101, 255, 0.4), 0px 1px 24px 2px rgba(35, 101, 255, 0.3019607843), 0px 2px 36px 3px rgba(35, 101, 255, 0.3019607843), 0px 0px 40px 30px rgba(35, 101, 255, 0.2);
  top: 18px;
  left: -1px;
}

/* Médias */
.main-blog_detail .detail_text.s2 img,
.main-blog_detail .detail_text.s2 video {
  max-width: 100%;
  height: auto;
  border-radius: 12px;
  border: 1px solid var(--line);
}
.main-blog_detail .detail_text.s2 figure.article-figure {
  margin: 22px 0;
  text-align: center;
}
.main-blog_detail .detail_text.s2 figure.article-figure img {
  display: inline-block;
  margin: 0;
}
.main-blog_detail .detail_text.s2 figure.article-figure figcaption {
  margin: 8px 0 0;
  font-size: 14px;
  line-height: 1.45;
  font-style: italic;
  text-align: center;
  color: var(--text-3);
}
.main-blog_detail .detail_image {
  border-radius: 12px;
  overflow: hidden;
}
.main-blog_detail .detail_image img {
  width: 100%;
  min-height: 300px;
  object-fit: cover;
}
@media (min-width: 992px) {
  .main-blog_detail .detail_image img {
    min-height: 225px;
  }
}
.ubg-mindmap {
  margin: 28px 0;
  padding: 22px 20px 20px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 24px;
  background: #0d0d0d;
  text-align: left;
}
.ubg-mindmap__root {
  display: block;
  position: relative;
  width: fit-content;
  max-width: 100%;
  margin: 0 auto 28px;
  padding: 10px 18px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  background: linear-gradient(180deg, #F4F7F5 0%, rgba(244, 247, 245, 0.82) 100%);
  color: #0f0f17;
  font-family: "Outfit", sans-serif;
  font-size: 16px;
  font-weight: 600;
  font-style: normal;
  letter-spacing: -0.02em;
  line-height: 1.3;
  text-align: center;
  -webkit-text-fill-color: #0f0f17;
}
.ubg-mindmap__root::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 100%;
  width: 1px;
  height: 16px;
  background: rgba(255, 255, 255, 0.16);
}
.ubg-mindmap__branches {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  align-items: start;
}
.ubg-mindmap__branch {
  position: relative;
  padding: 14px 14px 12px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  background: #111111;
}
.ubg-mindmap__hub {
  margin: 0 0 10px;
  font-family: "Outfit", sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: #fff;
}
.ubg-mindmap__leaves {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.main-blog_detail .detail_text.s2 .ubg-mindmap__leaves,
.main-blog_detail .detail_text.s2 .ubg-mindmap ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.ubg-mindmap__leaves li,
.main-blog_detail .detail_text.s2 .ubg-mindmap__leaves li {
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: #cfcdd6;
  font-size: 12px;
  line-height: 1.35;
  text-align: left;
}
.main-blog_detail .detail_text.s2 .ubg-mindmap__leaves li::marker {
  content: none;
}
@media (max-width: 991px) {
  .ubg-mindmap__branches {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 767px) {
  .ubg-mindmap__branches {
    grid-template-columns: 1fr;
  }
  .ubg-mindmap__root::after {
    display: none;
  }
}

.ubg-flowchart {
  margin: 28px 0;
  padding: 22px 18px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 24px;
  background: #0d0d0d;
  overflow-x: auto;
}
.ubg-flowchart__canvas {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px 8px;
  min-width: min-content;
}
.ubg-flowchart--td .ubg-flowchart__canvas {
  flex-direction: column;
}
.ubg-flowchart__col {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
}
.ubg-flowchart__node {
  display: block;
  padding: 10px 14px;
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: #111111;
  color: #fff;
  font-family: "Outfit", sans-serif;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.35;
  text-align: center;
  white-space: nowrap;
}
.ubg-flowchart__arrow {
  flex: 0 0 auto;
  color: rgba(255, 255, 255, 0.45);
  font-size: 18px;
  line-height: 1;
}
.ubg-flowchart--lr .ubg-flowchart__arrow::before {
  content: "→";
}
.ubg-flowchart--td .ubg-flowchart__arrow::before {
  content: "↓";
}
@media (max-width: 767px) {
  .ubg-flowchart--lr .ubg-flowchart__canvas {
    flex-direction: column;
  }
  .ubg-flowchart--lr .ubg-flowchart__arrow::before {
    content: "↓";
  }
  .ubg-flowchart__node {
    white-space: normal;
  }
}

.main-blog_detail > *:not(:last-child) {
  margin-bottom: 32px;
}
.main-blog_detail .article-sources {
  margin: 8px 0 0;
}
.main-blog_detail .article-sources .br-line {
  margin: 0 0 24px;
}
.main-blog_detail .article-sources__title {
  margin: 0 0 14px;
  font-family: "Outfit", sans-serif;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: #ffffff;
}
.main-blog_detail .article-sources__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
}
.main-blog_detail .article-sources__list a {
  display: inline-flex;
  align-items: flex-start;
  gap: 8px;
  color: var(--text-2);
  text-decoration: none;
  font-size: 14px;
  line-height: 1.45;
}
.main-blog_detail .article-sources__list a:hover {
  color: #ffffff;
}
.main-blog_detail .article-sources__list [data-lucide] {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  margin-top: 3px;
  color: var(--text-2);
}
.main-blog_detail .article-sources__list a:hover [data-lucide] {
  color: #ffffff;
}
.main-blog_detail .article-keywords {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 24px;
}
.main-blog_detail .article-keywords .keyword-tag {
  padding: 6px 12px !important;
  border-radius: 6px !important;
  background: rgba(255, 255, 255, 0.05) !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  color: var(--text-main) !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  transition: all 0.3s ease !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  white-space: nowrap !important;
  line-height: 1.5 !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  min-height: 24px !important;
  text-decoration: none !important;
}
.main-blog_detail .article-keywords .keyword-tag:hover {
  background: rgba(255, 255, 255, 0.08) !important;
  border-color: rgba(255, 255, 255, 0.15) !important;
}
.main-blog_detail .article-keywords .keyword-tag [data-lucide] {
  width: 14px !important;
  height: 14px !important;
  flex-shrink: 0 !important;
  color: var(--primary) !important;
}
.main-blog_detail .article-keywords .keyword-tag [data-lucide] svg {
  width: 14px !important;
  height: 14px !important;
  color: var(--primary) !important;
  stroke: var(--primary) !important;
  fill: none !important;
  stroke-width: 3 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}
.main-blog_detail .tag-list {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.main-blog_detail .tag-list a {
  background-color: var(--main);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 7px 12px;
  color: var(--white);
}
.main-blog_detail .block-quote,
.main-blog_detail .br-line {
  margin-bottom: 24px;
}
@media (max-width: 1199px) {
  .main-blog_detail {
    padding: 20px 16px;
  }
}

.block-quote {
  padding: 23px 31px;
  border-radius: 16px;
  border: 1px solid var(--line);
  background-image: url("../images/item/item-bg-1.png");
  background-position: center;
  background-size: cover;
  position: relative;
}
.block-quote .quote-text {
  margin-bottom: 24px;
}
.block-quote .quote-author {
  color: var(--text-5);
}
.block-quote::after {
  content: "";
  position: absolute;
  width: 2px;
  height: 24px;
  background: #1B4EF5;
  box-shadow: 0px 0px 6px 0px rgba(35, 101, 255, 0.6), 0px 2px 12px 1px rgba(35, 101, 255, 0.4), 0px 1px 24px 2px rgba(35, 101, 255, 0.3019607843), 0px 2px 36px 3px rgba(35, 101, 255, 0.3019607843), 0px 0px 40px 30px rgba(35, 101, 255, 0.2);
  top: 44px;
  left: -1px;
}
@media (max-width: 1199px) {
  .block-quote {
    padding: 20px 16px;
  }
}

.rate-wrap {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 14px;
  color: var(--star);
}

.blog-detail_comment {
  padding: 31px;
  border: 1px solid var(--line);
  border-radius: 16px;
}
.blog-detail_comment .title {
  margin-bottom: 24px;
}
.blog-detail_comment .comment-item {
  padding-bottom: 27px;
  border-bottom: 1px solid var(--line);
}
.blog-detail_comment .comment-item:not(:last-child) {
  margin-bottom: 32px;
}
.blog-detail_comment .cmt_head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 24px;
}
.blog-detail_comment .cmt__img {
  border-radius: 50%;
  overflow: hidden;
  max-width: 60px;
  width: 100%;
}
.blog-detail_comment .cmt--author {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 4px;
}
.blog-detail_comment .cmt__infor {
  width: 100%;
}
.blog-detail_comment .cmt__text {
  margin-bottom: 16px;
}
.blog-detail_comment .feel-action-group {
  display: flex;
  align-items: center;
  gap: 16px;
}
.blog-detail_comment .btn-feel {
  display: flex;
  align-items: center;
  gap: 6px;
}
.blog-detail_comment .btn-feel .icon {
  font-size: 18px;
}
.blog-detail_comment .load-more-cmt {
  background: linear-gradient(0deg, #141415, #141415), linear-gradient(180deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0) 100%);
  border: 1px solid var(--line);
  box-shadow: 0px 1px 1px 0px rgba(255, 255, 255, 0.1803921569) inset, 0px 0px 4px 0px rgba(255, 255, 255, 0.0588235294) inset, 0px 0px 8px 0px rgba(255, 255, 255, 0.0784313725) inset, 0px 0px 16px 0px rgba(255, 255, 255, 0.1215686275) inset;
  height: 36px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
}
@media (min-width: 1200px) {
  .blog-detail_comment .title {
    margin-bottom: 48px;
  }
}
@media (max-width: 1199px) {
  .blog-detail_comment {
    padding: 20px 16px;
  }
}

.blog-detail_add_review {
  padding: 31px;
  border: 1px solid var(--line);
  border-radius: 16px;
}
.blog-detail_add_review .title {
  margin-bottom: 16px;
}
.blog-detail_add_review .sub-title {
  margin-bottom: 24px;
}
.blog-detail_add_review .tf-btn {
  padding-left: 16px;
  padding-right: 16px;
}
@media (min-width: 1200px) {
  .blog-detail_add_review .sub-title {
    margin-bottom: 48px;
  }
}
@media (max-width: 1199px) {
  .blog-detail_add_review {
    padding: 20px 16px;
  }
}

.detail_feature {
  padding: 20px 16px;
  background: rgba(255, 255, 255, 0.0588235294);
  display: flex;
  align-items: start;
  flex-wrap: wrap;
  gap: 16px;
  border-radius: 16px;
}
.detail_feature .box-text {
  display: grid;
  gap: 16px;
}
@media (min-width: 768px) {
  .detail_feature {
    flex-wrap: nowrap;
  }
  .detail_feature .title {
    min-width: 184px;
    flex-shrink: 0;
  }
  .detail_feature .box-text {
    gap: 24px;
  }
}
@media (min-width: 1200px) {
  .detail_feature {
    padding: 32px;
    gap: 32px;
  }
}

.detail_feature_list > *:not(:last-child) {
  margin-bottom: 12px;
}

.sb-download {
  display: grid;
  gap: 12px;
}

/*------------ slider ---------------- */
/* ---------------------------------------------------------
    * Name: Vemus - Jewelry Ecommerce HTML Template
    * Version: 1.0.0
    * Author: Themesflat
    * Author URI: http://themesflat.com 

	* Abstracts variable

    * Reset css styles

    * Components

        * header
        * footer
        * accordion
        * animation
        * blog
        * box iocn
        * button
        * carousel
        * avatar
        * form
        * hover
        * nice select
        * popup
        * product
        * shop
        * slider
        * projects
        * zoom

    * Section
 ------------------------------------------------------------------------------ */
/*--------- Abstracts variable ---------- */
.sw-dot-default {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 24px;
}
.sw-dot-default .swiper-pagination-bullet {
  background: var(--bg-6);
}
.sw-dot-default.swiper-pagination-lock {
  margin: 0 !important;
}

/*------------ accordion ---------------- */
/* ---------------------------------------------------------
    * Name: Vemus - Jewelry Ecommerce HTML Template
    * Version: 1.0.0
    * Author: Themesflat
    * Author URI: http://themesflat.com 

	* Abstracts variable

    * Reset css styles

    * Components

        * header
        * footer
        * accordion
        * animation
        * blog
        * box iocn
        * button
        * carousel
        * avatar
        * form
        * hover
        * nice select
        * popup
        * product
        * shop
        * slider
        * projects
        * zoom

    * Section
 ------------------------------------------------------------------------------ */
/*--------- Abstracts variable ---------- */
.ic-accordion-custom {
  position: relative;
  width: 18px;
  height: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.35s linear;
  flex-shrink: 0;
}
.ic-accordion-custom::after, .ic-accordion-custom::before {
  content: "";
  position: absolute;
  background-color: var(--white);
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
  border-radius: 4px;
}
.ic-accordion-custom::before {
  height: 100%;
  width: 2px;
}
.ic-accordion-custom::after {
  height: 2px;
  width: 100%;
}

.accordion-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
  gap: 5px;
  color: var(--text-5);
}
.accordion-title .icon::before {
  transform: rotate(90deg);
}
.accordion-title .icon::after {
  transform: rotate(180deg);
}
.accordion-title.collapsed {
  color: var(--white);
}
.accordion-title.collapsed .icon::before {
  transform: rotate(0deg);
}
.accordion-title.collapsed .icon::after {
  transform: rotate(0deg);
}

.faq-accordion_item {
  border: 1px solid var(--line);
  border-radius: 16px;
  overflow: hidden;
  position: relative;
}
.faq-accordion_item .img-item-1 {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 0;
}
.faq-accordion_item .accordion-title {
  padding: 24px 32px;
  position: relative;
}
.faq-accordion_item .accordion-title .text {
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  display: -webkit-box;
  overflow: hidden;
}
.faq-accordion_item .accordion-title::after {
  content: "";
  position: absolute;
  left: 0px;
  top: 28px;
  height: 24px;
  width: 2px;
  box-shadow: 0px 0px 6px 0px rgba(35, 101, 255, 0.6), 0px 2px 12px 1px rgba(35, 101, 255, 0.4), 0px 1px 24px 2px rgba(35, 101, 255, 0.3019607843), 0px 2px 36px 3px rgba(35, 101, 255, 0.3019607843), 0px 0px 40px 30px rgba(35, 101, 255, 0.2);
  background-color: var(--bg-7);
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
.faq-accordion_item .accordion-title.collapsed::after {
  background-color: var(--white);
  box-shadow: 0px 0px 6px 0px rgba(255, 255, 255, 0.5019607843), 0px 2px 12px 1px rgba(255, 255, 255, 0.3019607843), 0px 2px 12px 1px rgba(255, 255, 255, 0.3019607843), 0px 2px 36px 3px rgba(255, 255, 255, 0.2), 0px 0px 40px 30px rgba(255, 255, 255, 0.1019607843);
}
.faq-accordion_item .accordion-body {
  padding: 22px 32px;
  padding-top: 0;
  position: relative;
  z-index: 1;
}
.faq-accordion_item .img-item-1 {
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
  opacity: 0;
  visibility: hidden;
}
.faq-accordion_item .img-item-1 img {
  height: 100%;
}
.faq-accordion_item.active .img-item-1 {
  opacity: 1;
  visibility: visible;
}
@media (max-width: 1199px) {
  .faq-accordion_item .accordion-body {
    padding: 20px 16px;
    padding-top: 0;
  }
  .faq-accordion_item .accordion-title {
    padding: 20px 16px;
  }
  .faq-accordion_item .accordion-title.collapsed::after {
    top: 20px;
  }
}

.faq-accordion-list {
  display: grid;
  gap: 12px;
}

/*------------ Section ---------------- */
/* ---------------------------------------------------------
    * Name: Vemus - Jewelry Ecommerce HTML Template
    * Version: 1.0.0
    * Author: Themesflat
    * Author URI: http://themesflat.com 

	* Abstracts variable

    * Reset css styles

    * Components

        * header
        * footer
        * accordion
        * animation
        * blog
        * box iocn
        * button
        * carousel
        * avatar
        * form
        * hover
        * nice select
        * popup
        * product
        * shop
        * slider
        * projects
        * zoom

    * Section
 ------------------------------------------------------------------------------ */
/*--------- Abstracts variable ---------- */
#wrapper {
  position: relative;
}

.line_page {
  position: absolute;
  inset: 0;
  max-width: 1296px;
  margin-left: auto;
  margin-right: auto;
  border-left: 1px solid rgba(255, 255, 255, 0.1);
  border-right: 1px solid rgba(255, 255, 255, 0.1);
  z-index: 1;
  pointer-events: none;
}
@media (max-width: 1199px) {
  .line_page {
    max-width: unset;
    width: calc(100% - 32px);
  }
}

.line_section {
  position: absolute;
  inset: 0;
  max-width: 860px;
  top: 0;
  bottom: 0;
  margin-left: auto;
  margin-right: auto;
  border-left: 1px solid rgba(255, 255, 255, 0.1);
  border-right: 1px solid rgba(255, 255, 255, 0.1);
  z-index: -5;
}

.overlay_body {
  position: sticky;
  top: 0;
  height: 100vh;
  margin-bottom: -100vh;
  max-width: 100%;
  z-index: -5;
  background-image: url("../images/section/star-sky.webp");
  background-repeat: repeat-y;
  background-position: center;
  animation: moveUp 60s linear infinite;
  pointer-events: none;
}

.texture_page {
  position: sticky;
  top: 0;
  height: 100vh;
  margin-bottom: -100vh;
  max-width: 100%;
  z-index: -5;
  display: flex;
  pointer-events: none;
}
.texture_page .temp {
  display: block;
  max-width: 1296px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  height: 100%;
}
.texture_page .bg-texture {
  flex: 1;
  background-image: url("../images/section/texture.webp");
  background-repeat: repeat-y;
  background-size: contain;
  opacity: 0.02;
  min-width: 16px;
  overflow: hidden;
  position: relative;
}

.section-hero .sect-title {
  padding-top: 100px;
  padding-bottom: 100px;
}
@media (max-width: 1199px) {
  .section-hero .sect-title {
    padding-top: 88px;
    padding-bottom: 48px;
  }
}

.section-feature .sect-title {
  padding-top: 40px;
  padding-bottom: 20px;
  padding-left: 0;
  padding-right: 0;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  width: 100%;
}
.section-feature .sect-title .s-sub_title {
  max-width: 100%;
  width: 100%;
}
@media (max-width: 1199px) {
  .section-feature .sect-title {
    padding-top: 32px;
    padding-bottom: 16px;
    padding-left: 16px;
    padding-right: 16px;
  }
}

.section-how-to .sect-title {
  padding-top: 221px;
  padding-bottom: 92px;
}
.section-how-to .has-hafl_plus {
  padding-bottom: 88px;
}
@media (max-width: 1199px) {
  .section-how-to .sect-title {
    padding-top: 48px;
    padding-bottom: 32px;
  }
  .section-how-to .has-hafl_plus {
    padding-bottom: 48px;
  }
}

.section-pricing .sect-title {
  padding-top: 44px;
  padding-bottom: 91px;
}
@media (max-width: 1199px) {
  .section-pricing .sect-title {
    padding-top: 48px;
    padding-bottom: 32px;
  }
}

/* Vidéo scrub au scroll (remplace le bloc pricing) */
.section-pricing .sect-scroll-video {
  padding: 0;
  margin: 0;
}
.scroll-video {
  position: relative;
  /* Sous les particules (.overlay_body z-index: -5), comme le hero */
  z-index: -10;
  /* Hauteur de parcours — affinée en JS selon la durée vidéo */
  height: 350vh;
  background: transparent;
}
.scroll-video__sticky {
  position: sticky;
  top: 0;
  height: 100vh;
  width: 100%;
  z-index: -10;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  overflow: hidden;
  background: transparent;
}
.scroll-video__block {
  width: 100%;
  flex-shrink: 0;
}
.scroll-video__sticky .br-line {
  margin: 0;
}
.scroll-video__sticky > .scroll-video__block > .container {
  width: 100%;
  max-width: 1296px;
  height: auto;
  padding-left: 0;
  padding-right: 0;
  margin: 0 auto;
  display: block;
}
.scroll-video__frame {
  position: relative;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: transparent;
  border: none;
  margin: 0;
}
.scroll-video__frame::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(270deg, #000 0%, rgba(0, 0, 0, 0) 20%, rgba(0, 0, 0, 0) 80%, #000 100%);
  z-index: 1;
  pointer-events: none;
}
.scroll-video__media {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  pointer-events: none;
  user-select: none;
  transform: translateZ(0);
  backface-visibility: hidden;
}
@media (max-width: 767px) {
  .scroll-video__sticky {
    height: 100vh;
  }
}

.section-projects .sect-title {
  padding-top: 45px;
  padding-bottom: 127px;
}
@media (max-width: 1199px) {
  .section-projects .sect-title {
    padding-top: 48px;
    padding-bottom: 100px;
  }
}

.section-blog-articles .sect-title {
  padding-top: 45px;
  padding-bottom: 28px;
}
@media (max-width: 1199px) {
  .section-blog-articles .sect-title {
    padding-top: 32px;
    padding-bottom: 20px;
  }
}

.section-faq .has-hafl_plus {
  padding-bottom: 88px;
}
.section-faq .sect-title {
  padding-top: 44px;
  padding-bottom: 91px;
}
@media (min-width: 1200px) {
  .section-faq.faq-2 {
    padding-top: 50px;
  }
}
@media (max-width: 1199px) {
  .section-faq .sect-title {
    padding-top: 48px;
    padding-bottom: 32px;
  }
  .section-faq .has-hafl_plus {
    padding-bottom: 48px;
  }
}

.section-cta .ubg-home-cta {
  margin-top: 48px;
  margin-bottom: 48px;
  padding: 56px 48px;
  min-height: 280px;
  display: flex;
  align-items: center;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(0, 0, 0, 0.22);
  backdrop-filter: blur(12px);
}
.section-cta .ubg-home-cta__inner {
  max-width: 720px;
  row-gap: 16px;
}
.section-cta .ubg-home-cta .ubg-bento-cta__title {
  font-size: clamp(32px, 4.2vw, 52px);
  font-family: inherit;
  font-weight: 600;
}
.section-cta .ubg-home-cta .ubg-bento-cta__eyebrow {
  color: rgba(255, 255, 255, 0.45);
}
.section-cta .ubg-home-cta .ubg-bento-cta__title {
  max-width: none;
}
.ubg-cta-rotate {
  display: inline-flex;
  align-items: baseline;
  white-space: nowrap;
  vertical-align: baseline;
}
.ubg-cta-rotate__slot {
  display: inline-block;
  overflow: hidden;
  height: 1.15em;
  vertical-align: baseline;
  text-align: left;
}
.ubg-cta-rotate__inner {
  display: inline-flex;
  align-items: baseline;
  gap: 0.08em;
  line-height: 1.15;
  transform: translateY(0);
  opacity: 1;
  transition:
    transform 0.38s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.28s ease;
}
.ubg-cta-rotate__inner.is-out {
  transform: translateY(-110%);
  opacity: 0;
}
.ubg-cta-rotate__inner.is-in {
  animation: ubg-cta-rotate-in 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}
.ubg-cta-rotate__word {
  display: inline-block;
  font-weight: 700;
  line-height: 1.15;
  background: linear-gradient(90.9deg, #9F9DFB 0%, #709AF5 50%, #A5DCF3 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  animation: hue-rotate 5s infinite linear;
}
.ubg-cta-rotate__q {
  display: inline-block;
  color: #ffffff;
  font-weight: 700;
  line-height: 1.15;
  -webkit-text-fill-color: #ffffff;
}
@keyframes ubg-cta-rotate-in {
  from {
    transform: translateY(110%);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}
@media (max-width: 1199px) {
  .section-cta .ubg-home-cta {
    margin-top: 32px;
    margin-bottom: 32px;
    padding: 40px 28px;
    min-height: 220px;
  }
}
@media (max-width: 767px) {
  .section-cta .ubg-home-cta {
    margin-top: 24px;
    margin-bottom: 24px;
    padding: 32px 20px;
    min-height: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .ubg-cta-rotate__inner,
  .ubg-cta-rotate__inner.is-out,
  .ubg-cta-rotate__inner.is-in {
    transition: none;
    animation: none;
    transform: none;
    opacity: 1;
  }
  .ubg-cta-rotate__word {
    animation: none;
  }
}

.section-feature {
  position: relative;
}
.section-feature .s-img_item {
  z-index: -1;
  position: absolute;
  left: 0;
  right: 0;
  display: flex;
  justify-content: center;
}
.section-feature .s-img_item img {
  filter: blur(200px);
  opacity: 0.82;
}
.section-feature .image-with-text {
  margin-bottom: 64px;
}
@media (max-width: 1199px) {
  .section-feature .image-with-text {
    margin-bottom: 48px;
  }
}

.orther-overlay {
  position: absolute;
  inset: 0;
  /* background-color: #000dff; filter video */
  mix-blend-mode: hue;
  pointer-events: none;
}

.hero-video {
  max-width: 1296px;
  margin-left: auto;
  margin-right: auto;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  object-fit: cover;
  z-index: -50;
  display: flex;
  opacity: 72%;
}
.hero-video video {
  min-height: 425px;
  width: 100%;
  object-fit: cover;
}
.section-hero--cas,
.section-hero--compact,
.section-hero--article {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
.hero-video--cas,
.hero-video--compact {
  position: absolute;
  inset: 0;
  z-index: 0;
  max-width: none;
  max-height: none;
  height: 100%;
  overflow: hidden;
}
.hero-video--cas video,
.hero-video--compact video {
  min-height: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.section-hero--cas .sect-title,
.section-hero--compact .sect-title {
  padding-top: 50px;
  padding-bottom: 50px;
}
@media (max-width: 1199px) {
  .section-hero--cas .sect-title,
  .section-hero--compact .sect-title {
    padding-top: 44px;
    padding-bottom: 24px;
  }
}
.section-hero--cas .sect-bottom .box-hacker,
.section-hero--compact .sect-bottom .box-hacker {
  padding-top: 24px;
  padding-bottom: 24px;
}

.section-hero--article > .sect-header,
.section-hero--article > .sect-tagline,
.section-hero--article > .sect-main,
.section-hero--article > .sect-bottom,
.section-hero--article > .br-line {
  position: relative;
  z-index: 1;
}
.article-hero-stage {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding-top: 88px;
}
.article-hero-stage::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 168px;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(180deg, #000 0%, rgba(0, 0, 0, 0.92) 42%, rgba(0, 0, 0, 0.45) 72%, transparent 100%);
}
.article-hero-stage > .sect-tagline,
.article-hero-stage > .sect-main,
.article-hero-stage > .sect-bottom,
.article-hero-stage > .br-line {
  position: relative;
  z-index: 1;
}
.section-hero--article .sect-main > .container > .sect-header {
  padding-top: 16px;
  padding-bottom: 8px;
}
.section-hero--article .sect-header .s-meta {
  padding-left: 48px;
  padding-right: 48px;
}
.section-hero--article .sect-header .s-number_order,
.section-hero--article .sect-header .s-label {
  margin: 0;
}
.section-hero--article .sect-tagline .s-name {
  min-width: 0;
  max-width: 100%;
}
.section-hero--article .article-hero-crumbs {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
  max-width: min(100%, 920px);
  text-transform: uppercase;
}
.section-hero--article .article-hero-crumbs .current-page {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #ffffff;
}
@media (max-width: 767px) {
  .section-hero--article .article-hero-crumbs .current-page {
    max-width: 11ch;
  }
}
@media (min-width: 768px) {
  .section-hero--article .article-hero-crumbs .current-page {
    max-width: 42ch;
  }
}
.section-hero--article .hero-video--article {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 16px;
  right: 16px;
  z-index: 0;
  width: auto;
  max-width: 1296px;
  height: auto;
  max-height: 100%;
  margin-left: auto;
  margin-right: auto;
  overflow: hidden;
  opacity: 1;
}
.section-hero--article .orther-overlay {
  mix-blend-mode: normal;
  background: transparent;
}
.section-hero--article .hero-video--article img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: cover;
  object-position: center right;
  display: block;
}
.section-hero--article .hero-video--article::before {
  background: linear-gradient(180deg, #000 0%, rgba(0, 0, 0, 0.55) 28%, rgba(0, 0, 0, 0.08) 58%, transparent 78%);
}
.section-hero--article .hero-video--article::after {
  background: linear-gradient(90deg, #000 0%, rgba(0, 0, 0, 0.9) 24%, rgba(0, 0, 0, 0.5) 48%, rgba(0, 0, 0, 0.12) 70%, transparent 100%);
  z-index: 1;
}
.section-hero--article .sect-bottom {
  position: relative;
  z-index: 1;
  background: transparent;
}
.section-hero--article .s-title {
  line-height: 1.05;
  max-width: 14ch;
}
.section-hero--article .sect-title .s-title {
  width: auto;
  max-width: 100%;
}
.section-hero--article .sect-title .s-sub_title {
  max-width: 42rem;
  color: var(--text-2);
}
.section-hero--article .article-hero-meta {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px 24px;
  margin-top: 20px;
}
.section-hero--article .article-hero-meta .meta {
  display: flex;
  align-items: center;
  gap: 8px;
}
.section-hero--article .article-hero-meta .meta-text {
  color: #ffffff;
}
.section-hero--article .article-hero-meta [data-lucide] {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  color: #ffffff;
  stroke: #ffffff;
  fill: none;
}
.section-page-blog.flat-spacing-2 {
  padding-top: 32px;
}
.hero-video::after {
  position: absolute;
  content: "";
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(270deg, #000 0%, rgba(0, 0, 0, 0) 20%, rgba(0, 0, 0, 0) 80%, #000 100%);
  z-index: 0;
  pointer-events: none;
}
.hero-video::before {
  position: absolute;
  content: "";
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(180deg, #000 0%, rgba(0, 0, 0, 0) 20%, rgba(0, 0, 0, 0) 80%, #000 100%);
  z-index: 0;
  pointer-events: none;
}

/* Décalage pour que .sect-header ne soit pas sous le header fixe (hauteur ~88px) */
.section-hero > .sect-header,
.section-hero--article .article-hero-stage {
  padding-top: 88px;
}

.sect-header {
  padding-top: 16px;
  padding-bottom: 16px;
}
@media (max-width: 1199px) {
  .sect-header {
    position: unset !important;
  }
}

.s-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-left: 16px;
  padding-right: 16px;
  position: relative;
}
.s-meta::before, .s-meta::after {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 2px;
  height: 20px;
  background-color: var(--text-2);
  box-shadow: 0px 1px 3px 0px rgba(244, 247, 245, 0.0784313725), 2px 2px 8px 0px rgba(244, 247, 245, 0.1215686275);
}
.s-meta::before {
  left: 0;
}
.s-meta::after {
  right: 0;
}

.hafl-plus {
  display: block;
  width: 11px;
  height: 6px;
  position: absolute;
}
.hafl-plus::after, .hafl-plus::before {
  content: "";
  position: absolute;
  background-color: var(--white);
}
.hafl-plus::before {
  width: 100%;
  height: 1px;
}
.hafl-plus::after {
  width: 1px;
  height: 100%;
  left: 50%;
  transform: translateX(-50%);
}
.hafl-plus.pst-left_bot {
  left: -5px;
  bottom: -6px;
}
.hafl-plus.pst-right_bot {
  right: -5px;
  bottom: -6px;
}
.hafl-plus.pst-left_top {
  left: -5px;
  top: -6px;
}
.hafl-plus.pst-right_top {
  right: -5px;
  top: -6px;
}
.hafl-plus.item_bot::before {
  bottom: 0;
}
.hafl-plus.item_bot.pst-left_bot, .hafl-plus.item_bot.pst-right_bot {
  bottom: -1px;
}
.hafl-plus.item_top.pst-left_top, .hafl-plus.item_top.pst-right_top {
  top: -1px;
}
.hafl-plus.rotate-top_left {
  transform: rotate(-45deg);
}
.hafl-plus.rotate-top_right {
  transform: rotate(45deg);
}
.hafl-plus.rotate-bot_left {
  transform: rotate(45deg);
}
.hafl-plus.rotate-bot_right {
  transform: rotate(-45deg);
}

.has-hafl_plus {
  position: relative;
}

.sect-tagline {
  position: relative;
  overflow: hidden;
}

.sect-tagline_inner {
  position: relative;
  z-index: 1;
}

.section-how-to .sect-tagline {
  position: relative;
  overflow: visible;
}

.section-how-to {
  position: relative;
  overflow: visible;
}

.section-how-to .sect-tagline {
  position: relative;
  overflow: visible;
}

.section-how-to .sect-tagline .s-img_item {
  z-index: -1;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  display: flex;
  justify-content: center;
  pointer-events: none;
  width: 100%;
}

.section-how-to .sect-tagline .s-img_item img {
  filter: blur(200px);
  opacity: 0.82;
  max-width: 600px;
  width: auto;
  height: auto;
}

.sect-bottom .box-hacker {
  position: relative;
  overflow: hidden;
  padding-top: 30px;
  padding-bottom: 30px;
  margin: 0px 1px;
}
.sect-bottom .hacker-text {
  color: var(--text-4);
}
@media (min-width: 768px) {
  .sect-bottom .box-hacker {
    padding-top: 48px;
    padding-bottom: 48px;
  }
}

.sect-title {
  padding-left: 48px;
  padding-right: 12px;
}
.sect-title .s-title {
  margin-bottom: 21px;
  text-align: left;
  display: inline-block;
  width: fit-content;
  max-width: 100%;
}

.sect-title .s-sub_title {
  margin: 0;
  display: block;
  text-align: left;
  max-width: 650px;
}
.sect-title.type-2 {
  margin-bottom: 56px;
}
.sect-title.type-2 .s-title {
  margin-bottom: 0;
  padding-bottom: 16px;
}
@media (min-width: 1200px) {
  .sect-title.type-3 {
    margin-bottom: 88px;
  }
}

.s-title {
  background: linear-gradient(180deg, #F4F7F5 0%, rgba(244, 247, 245, 0.82) 100%);
  background-clip: text;
}
.s-title.only-title {
  margin-bottom: 88px;
}
.s-title.only-title.ol-tt-2 {
  margin-bottom: 56px;
}
@media (max-width: 1199px) {
  .s-title.only-title {
    margin-bottom: 40px;
  }
}

.s-sub_title {
  color: var(--text-main);
  text-align: left;
  max-width: 650px;
}

.s-sub_title strong {
  color: #ffffff;
}


.s-name {
  color: var(--text-2);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 16px;
  padding-top: 32px;
  padding-bottom: 32px;
}
@media (max-width: 575px) {
  .s-name {
    gap: 8px;
  }
}

.bar-group {
  position: relative;
  width: 14px;
  height: 10px;
  display: flex;
  justify-content: space-between;
}
.bar-group::before, .bar-group::after {
  content: "";
  display: block;
  width: 2px;
  height: 100%;
  position: relative;
  opacity: 0.3;
  transform: scaleY(0.5);
  animation: waveAnim 1.2s ease-in-out infinite alternate;
}
.bar-group .bar_center {
  width: 2px;
  height: 100%;
  opacity: 0.3;
  transform: scaleY(0.5);
  animation: waveAnim 1.2s ease-in-out infinite alternate;
}
.bar-group.type-right::before {
  animation-delay: 0s;
}
.bar-group.type-right .bar_center {
  animation-delay: 0.3s;
}
.bar-group.type-right::after {
  animation-delay: 0.6s;
}
.bar-group.type-left::after {
  animation-delay: 0s;
}
.bar-group.type-left .bar_center {
  animation-delay: 0.3s;
}
.bar-group.type-left::before {
  animation-delay: 0.6s;
}

.box-ask-wrap {
  max-width: 860px;
  margin: 0 auto;
  position: relative;
}

.box-ask {
  max-width: 750px;
  margin: 0 auto;
  padding: 16px;
  background-image: url("../images/section/encrypted-text-bg.webp");
  background-size: cover;
  background-position: center;
}
@media (min-width: 992px) {
  .box-ask {
    padding: 32px;
  }
}
@media (min-width: 1200px) {
  .box-ask {
    padding: 48px;
  }
}

.infiniteSlide_brand {
  display: flex;
  gap: 80px;
  padding-top: 0px;
  padding-bottom: 0px;
}
@media (max-width: 1199px) {
  .infiniteSlide_brand {
    gap: 40px;
    padding-top: 25px;
    padding-bottom: 25px;
  }
}
@media (max-width: 767px) {
  .infiniteSlide_brand {
    gap: 24px;
  }
}

.tf-brand_inner {
  padding-top: 48px;
  padding-bottom: 48px;
  position: relative;
}

.tf-brand .title {
  margin-bottom: 32px;
  text-align: center;
  color: var(--text-main);
}
.tf-brand .infiniteslide_wrap {
  position: relative;
  overflow: hidden;
  margin: 0px 1px;
}
.tf-brand .infiniteslide_wrap::after {
  position: absolute;
  content: "";
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, #000000 0%, rgba(0, 0, 0, 0) 18%, rgba(0, 0, 0, 0) 82%, #000000 100%);
  z-index: 0;
  pointer-events: none;
}

.has-overlay_linear::after {
  position: absolute;
  content: "";
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, #000000 0%, rgba(0, 0, 0, 0) 18%, rgba(0, 0, 0, 0) 82%, #000000 100%);
  z-index: 0;
  pointer-events: none;
}
.has-overlay_linear.type-2::after {
  background: linear-gradient(90deg, #000000 0%, rgba(0, 0, 0, 0) 28%, rgba(0, 0, 0, 0) 72%, #000000);
}

.hacker-text {
  white-space: nowrap;
  color: var(--text-4);
  margin: 0px 1px;
}
.hacker-ubg {
  color: inherit;
  opacity: 1;
  text-shadow: none;
  transition: color 1.1s ease, text-shadow 1.1s ease;
}
.hacker-ubg.is-on {
  color: #ffffff;
  text-shadow: 0 0 10px rgba(89, 151, 255, 0.55);
}
@media (prefers-reduced-motion: reduce) {
  .hacker-ubg,
  .hacker-ubg.is-on {
    transition: none;
    color: inherit;
    text-shadow: none;
  }
}

.image-with-text {
  max-width: 1078px;
  width: 100%;
  margin: 0 auto;
}

/* Mockup backoffice CRM — style Framer */
.ide-visual {
  max-width: 1200px;
  width: 100%;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 16px;
}
.ide-mockup-panels {
  margin-top: 24px;
  margin-bottom: 48px;
  overflow: hidden;
}
.ide-mockup-desc {
  display: block;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
  text-align: center;
  color: var(--text-main);
  font-size: 16px;
  line-height: 1.55;
  letter-spacing: -0.14px;
}
.section-feature .tab-can_do.ide-mockup-tabbar {
  overflow: visible;
}
.section-feature .tab-can_do .nav-tab-item {
  padding: 8px 0;
}
.section-feature .tab-can_do .nav-tab-item::after {
  display: none;
  content: none;
}
.section-feature .tab-can_do .btn_tab,
.section-feature .tab-can_do .btn_tab.active,
.section-feature .tab-can_do .btn_tab:hover,
.section-feature .tab-can_do .btn_tab:focus {
  background: transparent !important;
  background-color: transparent !important;
  border-color: transparent !important;
  backdrop-filter: none !important;
  box-shadow: none !important;
  color: rgba(255, 255, 255, 0.72);
}
.section-feature .tab-can_do .btn_tab.active {
  color: #ffffff;
}
.section-feature .tab-can_do .btn_tab:hover {
  color: rgba(255, 255, 255, 0.72);
}
.section-feature .tab-can_do .btn_tab.active:hover {
  color: #ffffff;
}
.section-feature .tab-can_do .menu-indicator {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  border: none;
  border-radius: 0;
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow: none;
  pointer-events: none;
  z-index: 0;
  opacity: 0;
  visibility: hidden;
  overflow: visible;
  transition: top 0.25s ease, left 0.25s ease, width 0.25s ease, height 0.25s ease, opacity 0.2s ease;
}
.section-feature .tab-can_do .menu-indicator.no-motion {
  transition: none !important;
}
.section-feature .tab-can_do .menu-indicator::before {
  content: "";
  position: absolute;
  top: 4px;
  left: 50%;
  transform: translateX(-50%);
  width: 22px;
  height: 2px;
  background-color: #ffffff;
  box-shadow:
    0 0 8px 2px rgba(255, 255, 255, 0.7),
    0 4px 16px 4px rgba(255, 255, 255, 0.45),
    0 8px 32px 8px rgba(255, 255, 255, 0.3),
    0 14px 48px 14px rgba(255, 255, 255, 0.18),
    0 0 60px 28px rgba(255, 255, 255, 0.12);
}
.section-feature .tab-can_do .menu-indicator.is-visible {
  opacity: 1;
  visibility: visible;
}
.section-feature .ide-visual {
  margin-bottom: 0;
}
@media (max-width: 1199px) {
  .ide-mockup-panels {
    margin-top: 20px;
    margin-bottom: 32px;
  }
  .ide-visual {
    padding: 0 16px;
    gap: 12px;
  }
  .ide-mockup-desc {
    font-size: 15px;
  }
}

/* TrackPal map mockup */
.track-app {
  min-height: 640px;
}
.track-chips {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.track-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 9px;
  border-radius: 8px;
  background: #242424;
  color: #999999;
  font-weight: 500;
  white-space: nowrap;
}
.track-chip--active {
  background: rgba(0, 153, 255, 0.14);
  color: #66c2ff;
}
.track-chip--alert {
  color: #ffa582;
}
.track-chip svg {
  width: 11px !important;
  height: 11px !important;
  stroke-width: 1.25 !important;
  opacity: 0.85;
}
.track-app .crm-brand__mark {
  background: transparent;
  border: 1px solid #2a2a2a;
  color: #b8b8b8;
}
.track-app .crm-brand__mark svg {
  width: 12px !important;
  height: 12px !important;
  stroke-width: 1.25 !important;
}
.track-app .crm-icon-btn {
  background: transparent;
  border: 1px solid #2a2a2a;
  color: #a0a0a0;
}
.track-app .crm-icon-btn svg,
.track-app .crm-btn svg,
.track-app .crm-side__head svg,
.track-app .crm-side__task-head svg {
  width: 12px !important;
  height: 12px !important;
  stroke-width: 1.25 !important;
}
.track-app .crm-btn--primary {
  font-weight: 500;
}
.track-app .crm-btn--primary svg {
  opacity: 0.95;
}
.track-side .crm-activity {
  gap: 11px;
}
.track-side .crm-activity li {
  gap: 10px;
}
.track-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 220px;
  min-height: 580px;
}
.track-map-wrap {
  position: relative;
  min-height: 580px;
  background: #0b0b0b;
}
.track-map {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: #0b0b0b;
}
.track-map__legend {
  position: absolute;
  left: 12px;
  bottom: 12px;
  z-index: 500;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  padding: 8px 10px;
  border-radius: 10px;
  background: rgba(17, 17, 17, 0.92);
  border: 1px solid #212121;
  color: #999999;
  font-size: 10px;
  font-weight: 500;
}
.track-map__legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.track-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  display: inline-block;
}
.track-dot--stock { background: #81b29a; box-shadow: 0 0 0 3px rgba(129, 178, 154, 0.2); }
.track-dot--move { background: #0099ff; box-shadow: 0 0 0 3px rgba(0, 153, 255, 0.25); }
.track-dot--alert { background: #ffa582; box-shadow: 0 0 0 3px rgba(255, 165, 130, 0.25); }
.track-dot--site { background: #bcc0ca; box-shadow: 0 0 0 3px rgba(188, 192, 202, 0.2); }
.track-side {
  border-left: 1px solid #212121;
  border-right: 0;
}
.track-mini-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
  margin-top: 10px;
}
.track-mini-stats > div {
  padding: 8px 6px;
  border-radius: 8px;
  background: #242424;
  text-align: center;
}
.track-mini-stats strong {
  display: block;
  font-size: 14px;
  font-weight: 600;
  color: #ffffff;
}
.track-mini-stats span {
  color: #999999;
  font-size: 10px;
}

/* Leaflet dark overrides inside mockup */
.track-map .leaflet-control-attribution {
  background: rgba(17, 17, 17, 0.8) !important;
  color: #666 !important;
  font-size: 9px !important;
  border-radius: 6px 0 0 0;
}
.track-map .leaflet-control-attribution a {
  color: #999 !important;
}
.track-map .leaflet-control-zoom a {
  background: #111 !important;
  color: #fff !important;
  border-color: #212121 !important;
  width: 28px !important;
  height: 28px !important;
  line-height: 28px !important;
}
.track-marker {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  border: 2px solid #111;
  box-shadow: 0 0 0 4px rgba(0, 153, 255, 0.25), 0 0 12px rgba(0, 153, 255, 0.45);
  background: #0099ff;
  position: relative;
}
.track-marker::after {
  content: "";
  position: absolute;
  inset: -8px;
  border-radius: 50%;
  border: 1px solid rgba(0, 153, 255, 0.45);
  animation: track-ping 1.8s ease-out infinite;
}
.track-marker--stock {
  background: #81b29a;
  box-shadow: 0 0 0 4px rgba(129, 178, 154, 0.2), 0 0 10px rgba(129, 178, 154, 0.35);
}
.track-marker--stock::after {
  border-color: rgba(129, 178, 154, 0.4);
}
.track-marker--alert {
  background: #ffa582;
  box-shadow: 0 0 0 4px rgba(255, 165, 130, 0.25), 0 0 12px rgba(255, 165, 130, 0.45);
}
.track-marker--alert::after {
  border-color: rgba(255, 165, 130, 0.45);
}
.track-marker--site {
  width: 18px;
  height: 18px;
  border-radius: 6px;
  background: #242424;
  border: 1px solid #666;
  box-shadow: none;
}
.track-marker--site::after {
  display: none;
}
.track-marker--site i {
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #bcc0ca, #666);
  border-radius: 4px;
  opacity: 0.85;
}
@keyframes track-ping {
  0% { transform: scale(0.7); opacity: 0.9; }
  100% { transform: scale(1.8); opacity: 0; }
}

.track-map .leaflet-tooltip {
  background: #111 !important;
  border: 1px solid #212121 !important;
  color: #fff !important;
  border-radius: 6px !important;
  box-shadow: none !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  padding: 4px 7px !important;
}
.track-map .leaflet-tooltip-top::before {
  border-top-color: #212121 !important;
}
.track-feed li {
  transition: opacity 0.35s ease, transform 0.35s ease;
}
.track-feed li.is-fresh {
  animation: crm-icon-pop 0.55s ease;
}
@media (max-width: 991px) {
  .track-body {
    grid-template-columns: 1fr;
  }
  .track-side {
    border-left: 0;
    border-top: 1px solid #212121;
  }
  .track-map-wrap {
    min-height: 420px;
  }
  .track-chips .track-chip:nth-child(n+3) {
    display: none;
  }
}
@media (max-width: 767px) {
  .track-chips {
    display: none;
  }
}

.ide-visual__shell {
  position: relative;
  width: 100%;
}
.ide-visual__shell::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 32%;
  background: linear-gradient(
    to top,
    #000000 0%,
    rgba(0, 0, 0, 0.85) 35%,
    rgba(0, 0, 0, 0.35) 70%,
    transparent 100%
  );
  border-radius: 0 0 18px 18px;
  pointer-events: none;
  z-index: 4;
}
.ide-visual__border {
  position: absolute;
  inset: 0;
  border: 1px solid #212121;
  border-radius: 18px;
  pointer-events: none;
  z-index: 2;
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 58%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 0%, #000 58%, transparent 100%);
}
.ide-visual__app,
.crm-app {
  position: relative;
  z-index: 1;
  background: #111111;
  border-radius: 18px;
  overflow: hidden;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 12px;
  line-height: 1.35;
  color: #ffffff;
  min-height: 640px;
}
.crm-app [data-lucide],
.crm-app svg,
.track-app [data-lucide],
.track-app svg {
  width: 13px;
  height: 13px;
  flex-shrink: 0;
  stroke-width: 1.35 !important;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.crm-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 10px;
  border-bottom: 1px solid #212121;
  background: #111111;
}
.crm-topbar__left,
.crm-topbar__right {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.crm-brand {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
  white-space: nowrap;
}
.crm-brand__mark {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #242424;
  color: #ffffff;
}
.crm-brand__mark svg {
  width: 14px;
  height: 14px;
}
.crm-brand__name {
  letter-spacing: -0.02em;
  font-size: 12px;
}
.crm-search {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: 220px;
  padding: 7px 10px;
  border-radius: 8px;
  background: #242424;
  color: #999999;
  font-weight: 500;
}
.crm-icon-btn {
  position: relative;
  width: 28px;
  height: 28px;
  border: 0;
  border-radius: 8px;
  background: #242424;
  color: #ffffff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: default;
}
.crm-icon-btn__dot {
  position: absolute;
  top: 5px;
  right: 6px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #0099ff;
  box-shadow: 0 0 0 2px #111111;
}
.crm-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: 0;
  border-radius: 8px;
  padding: 6px 10px;
  font: inherit;
  font-weight: 600;
  cursor: default;
  white-space: nowrap;
}
.crm-btn--primary {
  background: #0099ff;
  color: #ffffff;
}
.crm-btn--ghost {
  background: #242424;
  color: #ffffff;
}
.crm-btn--block {
  width: 100%;
  margin-top: 10px;
}
.crm-user {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding-left: 2px;
}
.crm-user__avatar {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #242424;
  box-shadow: #111111 0 0 0 1.5px;
  color: #ffffff;
  font-size: 10px;
  font-weight: 600;
}
.crm-user__meta {
  display: flex;
  flex-direction: column;
  line-height: 1.15;
}
.crm-user__meta strong {
  font-size: 11px;
  font-weight: 600;
}
.crm-user__meta small {
  color: #999999;
  font-size: 10px;
  font-weight: 500;
}
.crm-body {
  display: grid;
  grid-template-columns: 168px minmax(0, 1fr) 210px;
  min-height: 560px;
}
.crm-nav {
  background: #111111;
  border-right: 1px solid #212121;
  padding: 10px 8px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.crm-nav__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.crm-nav__item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 9px;
  border-radius: 8px;
  color: #999999;
  font-weight: 500;
}
.crm-nav__item--active {
  background: #242424;
  color: #ffffff;
  font-weight: 600;
}
.crm-nav__badge {
  margin-left: auto;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 5px;
  background: rgba(153, 153, 153, 0.12);
  color: #999999;
  font-size: 10px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.crm-nav__item--active .crm-nav__badge {
  background: rgba(0, 153, 255, 0.18);
  color: #66c2ff;
}
.crm-nav__footer {
  border-top: 1px solid #212121;
  padding-top: 8px;
}
.crm-main {
  padding: 12px 14px;
  background: #171717;
  min-width: 0;
}
.crm-main__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
.crm-main__title {
  margin: 0;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: -0.02em;
}
.crm-main__sub {
  margin: 4px 0 0;
  color: #999999;
  font-size: 11px;
  font-weight: 500;
}
.crm-main__actions {
  display: flex;
  gap: 6px;
}
.crm-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 12px;
}
.crm-kpi {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px;
  border-radius: 10px;
  background: #111111;
  border: 1px solid #212121;
  min-width: 0;
}
.crm-kpi__icon {
  width: 30px;
  height: 30px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #242424;
  color: #ffffff;
}
.crm-kpi__icon--blue { color: #66c2ff; }
.crm-kpi__icon--green { color: #81b29a; }
.crm-kpi__icon--orange { color: #ffa582; }
.crm-kpi__icon--purple { color: #bcc0ca; }
.crm-kpi__label {
  display: block;
  color: #999999;
  font-size: 10px;
  margin-bottom: 2px;
  font-weight: 500;
}
.crm-kpi__value {
  display: block;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: -0.02em;
}
.crm-kpi__trend {
  position: absolute;
  top: 8px;
  right: 8px;
  display: inline-flex;
  align-items: center;
  gap: 2px;
  font-size: 10px;
  color: #666666;
  font-weight: 500;
}
.crm-kpi__trend--up {
  color: #999999;
}
.crm-kpi__trend svg {
  width: 11px;
  height: 11px;
}
.crm-table-wrap {
  border-radius: 10px;
  border: 1px solid #212121;
  background: #111111;
  overflow: hidden;
}
.crm-table {
  width: 100%;
  border-collapse: collapse;
}
.crm-table th,
.crm-table td {
  padding: 10px 12px;
  text-align: left;
  border-bottom: 1px solid #212121;
  white-space: nowrap;
}
.crm-table th {
  color: #999999;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  background: rgba(255, 255, 255, 0.02);
}
.crm-table tbody tr:last-child td {
  border-bottom: 0;
}
.crm-table td {
  color: #cccccc;
  font-weight: 500;
}
.crm-client,
.crm-owner {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #ffffff;
}
.crm-client__avatar {
  width: 22px;
  height: 22px;
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #242424;
  color: #ffffff;
  font-size: 9px;
  font-weight: 600;
  box-shadow: #111111 0 0 0 1.5px;
}
.crm-tag {
  display: inline-flex;
  align-items: center;
  padding: 3px 7px;
  border-radius: 5px;
  font-size: 10px;
  font-weight: 600;
  background: #242424;
  color: #cccccc;
}
.crm-tag--blue { background: rgba(0, 153, 255, 0.14); color: #66c2ff; }
.crm-tag--green { background: rgba(255, 255, 255, 0.08); color: #ffffff; }
.crm-tag--orange { background: rgba(255, 165, 130, 0.14); color: #ffa582; }
.crm-tag--purple { background: rgba(188, 192, 202, 0.14); color: #bcc0ca; }
.crm-side {
  background: #111111;
  border-left: 1px solid #212121;
  padding: 10px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}
.crm-side__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.crm-side__head h4 {
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
}
.crm-side__live {
  font-size: 10px;
  font-weight: 600;
  color: #ffffff;
  padding: 2px 6px;
  border-radius: 5px;
  background: #242424;
}
.crm-activity {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.crm-activity li {
  display: flex;
  gap: 8px;
  align-items: flex-start;
}
.crm-activity__icon {
  width: 22px;
  height: 22px;
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: #8a8a8a;
}
.crm-activity__icon svg {
  width: 12px !important;
  height: 12px !important;
  stroke-width: 1.25 !important;
  opacity: 0.9;
}
.crm-activity__icon--call { color: #7eb8ff; border-color: rgba(0, 153, 255, 0.22); }
.crm-activity__icon--mail { color: #b0b0b0; }
.crm-activity__icon--meet { color: #a8abb4; }
.crm-activity__icon--note { color: #c9a090; border-color: rgba(255, 165, 130, 0.2); }
.crm-activity strong {
  display: block;
  font-size: 11px;
  font-weight: 600;
  color: #ffffff;
}
.crm-activity p {
  margin: 2px 0 0;
  color: #999999;
  font-size: 10px;
  font-weight: 500;
}
.crm-side__task {
  margin-top: auto;
  padding: 12px;
  border-radius: 15px;
  background: #1f1f1f;
  border: 1px solid rgba(255, 255, 255, 0.07);
}
.crm-side__task-head {
  display: flex;
  align-items: center;
  gap: 6px;
  color: #ffffff;
  font-weight: 600;
  margin-bottom: 6px;
}
.crm-side__task p {
  margin: 0;
  color: #cccccc;
  font-size: 11px;
  line-height: 1.4;
  font-weight: 500;
}

/* Animations mockup CRM */
.crm-app .crm-topbar,
.crm-app .crm-nav__item,
.crm-app .crm-main__head,
.crm-app .crm-kpi,
.crm-app .crm-table-wrap,
.crm-app .crm-table tbody tr,
.crm-app .crm-side__head,
.crm-app .crm-activity li,
.crm-app .crm-side__task {
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.45s ease, transform 0.45s ease, background-color 0.35s ease, box-shadow 0.35s ease;
}
.crm-app.is-alive .crm-topbar,
.crm-app.is-alive .crm-nav__item,
.crm-app.is-alive .crm-main__head,
.crm-app.is-alive .crm-kpi,
.crm-app.is-alive .crm-table-wrap,
.crm-app.is-alive .crm-table tbody tr,
.crm-app.is-alive .crm-side__head,
.crm-app.is-alive .crm-activity li,
.crm-app.is-alive .crm-side__task {
  opacity: 1;
  transform: none;
}
.crm-app.is-alive .crm-nav__item:nth-child(1) { transition-delay: 0.05s; }
.crm-app.is-alive .crm-nav__item:nth-child(2) { transition-delay: 0.09s; }
.crm-app.is-alive .crm-nav__item:nth-child(3) { transition-delay: 0.13s; }
.crm-app.is-alive .crm-nav__item:nth-child(4) { transition-delay: 0.17s; }
.crm-app.is-alive .crm-nav__item:nth-child(5) { transition-delay: 0.21s; }
.crm-app.is-alive .crm-nav__item:nth-child(6) { transition-delay: 0.25s; }
.crm-app.is-alive .crm-nav__item:nth-child(7) { transition-delay: 0.29s; }
.crm-app.is-alive .crm-kpi:nth-child(1) { transition-delay: 0.18s; }
.crm-app.is-alive .crm-kpi:nth-child(2) { transition-delay: 0.24s; }
.crm-app.is-alive .crm-kpi:nth-child(3) { transition-delay: 0.30s; }
.crm-app.is-alive .crm-kpi:nth-child(4) { transition-delay: 0.36s; }
.crm-app.is-alive .crm-table-wrap { transition-delay: 0.4s; }
.crm-app.is-alive .crm-table tbody tr:nth-child(1) { transition-delay: 0.48s; }
.crm-app.is-alive .crm-table tbody tr:nth-child(2) { transition-delay: 0.56s; }
.crm-app.is-alive .crm-table tbody tr:nth-child(3) { transition-delay: 0.64s; }
.crm-app.is-alive .crm-table tbody tr:nth-child(4) { transition-delay: 0.72s; }
.crm-app.is-alive .crm-side__head { transition-delay: 0.28s; }
.crm-app.is-alive .crm-activity li:nth-child(1) { transition-delay: 0.36s; }
.crm-app.is-alive .crm-activity li:nth-child(2) { transition-delay: 0.44s; }
.crm-app.is-alive .crm-activity li:nth-child(3) { transition-delay: 0.52s; }
.crm-app.is-alive .crm-activity li:nth-child(4) { transition-delay: 0.60s; }
.crm-app.is-alive .crm-side__task { transition-delay: 0.7s; }

.crm-app.is-alive .crm-icon-btn__dot {
  animation: crm-dot-pulse 1.8s ease-in-out infinite;
}
.crm-app.is-alive .crm-side__live {
  animation: crm-live-pulse 2s ease-in-out infinite;
}
.crm-app.is-alive .crm-search {
  position: relative;
  overflow: hidden;
}
.crm-app.is-alive .crm-search::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 40%, rgba(255, 255, 255, 0.06) 50%, transparent 60%);
  transform: translateX(-120%);
  animation: crm-shimmer 3.2s ease-in-out infinite;
  pointer-events: none;
}
.crm-app.is-alive .crm-btn--primary {
  animation: crm-btn-glow 2.8s ease-in-out infinite;
}
.crm-app.is-alive .crm-table tbody tr.is-active {
  background: rgba(0, 153, 255, 0.08);
  box-shadow: inset 2px 0 0 #0099ff;
}
.crm-app.is-alive .crm-nav__item.is-pulse .crm-nav__badge {
  animation: crm-badge-pop 0.55s ease;
}
.crm-app.is-alive .crm-activity li.is-fresh .crm-activity__icon {
  animation: crm-icon-pop 0.55s ease;
}
.crm-app.is-alive .crm-kpi__icon {
  transition: transform 0.35s ease;
}
.crm-app.is-alive .crm-kpi:hover .crm-kpi__icon {
  transform: translateY(-2px) scale(1.06);
}

@keyframes crm-dot-pulse {
  0%, 100% { transform: scale(1); opacity: 1; box-shadow: 0 0 0 2px #111111, 0 0 0 0 rgba(0, 153, 255, 0.5); }
  50% { transform: scale(1.15); opacity: 0.85; box-shadow: 0 0 0 2px #111111, 0 0 0 6px rgba(0, 153, 255, 0); }
}
@keyframes crm-live-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.55; }
}
@keyframes crm-shimmer {
  0%, 30% { transform: translateX(-120%); }
  70%, 100% { transform: translateX(120%); }
}
@keyframes crm-btn-glow {
  0%, 100% { box-shadow: 0 0 0 0 rgba(0, 153, 255, 0); }
  50% { box-shadow: 0 0 18px 0 rgba(0, 153, 255, 0.35); }
}
@keyframes crm-badge-pop {
  0% { transform: scale(1); }
  40% { transform: scale(1.25); background: rgba(0, 153, 255, 0.28); color: #66c2ff; }
  100% { transform: scale(1); }
}
@keyframes crm-icon-pop {
  0% { transform: scale(1); }
  40% { transform: scale(1.12); }
  100% { transform: scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  .crm-app .crm-topbar,
  .crm-app .crm-nav__item,
  .crm-app .crm-main__head,
  .crm-app .crm-kpi,
  .crm-app .crm-table-wrap,
  .crm-app .crm-table tbody tr,
  .crm-app .crm-side__head,
  .crm-app .crm-activity li,
  .crm-app .crm-side__task {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .crm-app.is-alive .crm-icon-btn__dot,
  .crm-app.is-alive .crm-side__live,
  .crm-app.is-alive .crm-search::after,
  .crm-app.is-alive .crm-btn--primary {
    animation: none;
  }
}

@media (max-width: 1199px) {
  .ide-visual {
    padding: 0 16px;
  }
  .crm-body {
    grid-template-columns: 148px minmax(0, 1fr) 180px;
  }
  .crm-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .crm-user__meta,
  .crm-search span {
    display: none;
  }
  .crm-search {
    min-width: 0;
    width: 32px;
    justify-content: center;
    padding: 7px;
  }
}
@media (max-width: 809px) {
  .crm-topbar {
    flex-wrap: wrap;
  }
  .crm-body {
    grid-template-columns: 1fr;
  }
  .crm-nav {
    border-right: 0;
    border-bottom: 1px solid #212121;
  }
  .crm-nav__list {
    flex-direction: row;
    overflow-x: auto;
  }
  .crm-nav__item span,
  .crm-nav__badge,
  .crm-nav__footer {
    display: none;
  }
  .crm-side {
    border-left: 0;
    border-top: 1px solid #212121;
  }
  .crm-main__actions span {
    display: none;
  }
}

.image-with-text .box-text {
  padding-top: 0;
  padding-bottom: 0;
  margin-top: -64px;
  position: relative;
  z-index: 2;
  background: linear-gradient(to top, rgb(0, 0, 0), rgba(0, 0, 0, 0));
}
.image-with-text .s-title {
  margin-bottom: 16px;
}
@media (max-width: 1199px) {
  .image-with-text img {
    padding: 0px 16px;
  }
}
@media (max-width: 767px) {
  .image-with-text .box-text {
    margin-top: -40px;
  }
}

.place-video {
  padding-top: 48px;
  padding-bottom: 62px;
}
.place-video .visual-object {
  z-index: 1;
}
@media (max-width: 1199px) {
  .place-video {
    padding-top: 48px;
    padding-bottom: 32px;
  }
}

.section-benefit .sect-title {
  margin-top: 0;
  margin-bottom: 28px;
  position: relative;
  z-index: 1;
}
.section-benefit.benefit-2 .sect-title {
  margin-top: -111px;
}
.section-benefit.benefit-2 .s-title {
  margin-bottom: 16px;
}

.visual-object {
  position: relative;
  display: flex;
  justify-content: center;
}
.visual-object .object_img {
  position: relative;
  max-width: 424px;
}

.grid-box_icon {
  gap: 12px;
  padding-bottom: 48px;
}

.box-icon-text {
  padding: 16px;
}
.box-icon-text .icon {
  margin-bottom: 24px;
  display: flex;
  justify-content: center;
  transition: all 0.8s ease;
}
.box-icon-text .icon img {
  aspect-ratio: 1;
}
.box-icon-text .title {
  margin-bottom: 6px;
  text-align: center;
}
.box-icon-text .sub-title {
  text-align: center;
}
.box-icon-text .tf-btn {
  max-width: 172px;
  width: 100%;
  margin: 0 auto;
}
.box-icon-text.style-2 .content {
  margin-bottom: 24px;
}
.box-icon-text.style-3 {
  border: 1px solid var(--line);
  border-radius: 16px;
}
.box-icon-text.style-3 .br-line {
  margin-bottom: 24px;
}
.box-icon-text.style-3 .title {
  margin-bottom: 12px;
}
.box-icon-text.style-3::after {
  content: "";
  position: absolute;
  width: 24px;
  height: 2px;
  background-color: var(--white);
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  box-shadow: 0px 0px 6px 0px rgba(255, 255, 255, 0.5019607843), 0px 2px 12px 1px rgba(255, 255, 255, 0.3019607843), 0px 1px 24px 2px rgba(255, 255, 255, 0.2), 0px 2px 36px 3px rgba(255, 255, 255, 0.2), 0px 0px 40px 30px rgba(255, 255, 255, 0.1019607843);
}
.box-icon-text.has-line {
  border: 1px solid var(--line);
  border-radius: 16px;
}
.box-icon-text:hover .icon {
  transform: rotateY(360deg);
}
@media (min-width: 1200px) {
  .box-icon-text {
    padding: 32px;
  }
  .box-icon-text.has-line {
    padding: 31px;
  }
  .box-icon-text .sub-title {
    padding: 0px 32px;
  }
  .box-icon-text.style-3 {
    padding-top: 56px;
  }
  .box-icon-text.style-3 .icon,
  .box-icon-text.style-3 .br-line {
    margin-bottom: 32px;
  }
}

.section-how-to .sect-main {
  position: relative;
  overflow: visible;
  padding-top: 0;
  padding-bottom: 0;
}

.section-how-to .sect-main .container {
  position: relative;
  z-index: 1;
  padding: 48px;
  padding-top: 0;
}


.section-how-to .sect-main .row {
  margin-left: auto;
  margin-right: auto;
  justify-content: center;
  max-width: 100%;
  width: 100%;
}

.section-how-to .sect-main .row > [class*="col-"] {
  padding-left: 0;
  padding-right: 0;
}

.section-how-to .sect-main .row > .col-lg-5,
.section-how-to .sect-main .row > .col-xl-5 {
  padding-right: 24px;
}

.section-how-to .sect-main .row > .col-lg-7,
.section-how-to .sect-main .row > .col-xl-6 {
  padding-left: 24px;
}
.section-how-to .tab-content {
  margin-bottom: 30px;
  overflow: hidden;
}

/* Nouvelle structure How To Use */
.how-to-content {
  display: flex;
  flex-direction: column;
  gap: 32px;
  padding-right: 0;
  padding-left: 0;
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

.how-to-badge {
  display: inline-block;
  margin-bottom: 24px;
}

.how-to-badge .badge-text {
  color: var(--text-2);
  font-size: 11px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  font-weight: 400;
  opacity: 0.9;
}

.how-to-title {
  font-size: 48px;
  line-height: 1.2;
  color: var(--text-2);
  margin-bottom: 24px;
  margin-top: 0;
  font-weight: 700;
}

.how-to-title strong {
  font-weight: 700;
}

.how-to-title .s-title-light {
  font-weight: 300;
}

.how-to-title .s-title-light .text-gradient {
  font-weight: 700;
}

.how-to-title .text-gradient {
  background: linear-gradient(90.9deg, #9F9DFB 0%, #709AF5 50%, #A5DCF3 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.how-to-desc {
  color: var(--text-main);
  line-height: 1.7;
  margin-bottom: 32px;
  font-size: 16px;
  padding-right: 24px;
}

.how-to-cta {
  align-self: flex-start;
  margin-top: 0;
  margin-bottom: 8px;
}

.how-to-info-box {
  margin-top: 48px;
  padding: 31px;
  border-radius: 16px;
  border: 1px solid var(--line);
  position: relative;
  overflow: hidden;
}

.how-to-info-box::before {
  content: "";
  position: absolute;
  top: 0;
  left: 32px;
  width: 24px;
  height: 2px;
  background-color: #ffffff;
  box-shadow: 0px 0px 6px 0px rgba(255, 255, 255, 0.55), 0px 2px 12px 1px rgba(255, 255, 255, 0.4), 0px 1px 24px 2px rgba(255, 255, 255, 0.3), 0px 2px 36px 3px rgba(255, 255, 255, 0.25), 0px 0px 40px 30px rgba(255, 255, 255, 0.15);
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}



.info-box-text {
  position: relative;
  z-index: 2;
}

.info-box-text {
  color: var(--text-2);
  font-family: "DM Sans", sans-serif;
  font-size: 18px;
  line-height: 1.6;
  margin-bottom: 32px;
  font-weight: 500;
  position: relative;
  z-index: 1;
}

.info-box-schema {
  position: relative;
  z-index: 2;
  width: 100%;
  margin: 32px 0;
  overflow: hidden;
}

.tech-stack-scroll {
  position: relative;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 16px;
  overflow: hidden;
}

.tech-stack-scroll::before,
.tech-stack-scroll::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 100px;
  z-index: 2;
  pointer-events: none;
}

.tech-stack-scroll::before {
  left: 0;
  background: linear-gradient(to right, rgba(0, 0, 0, 1) 0%, transparent 100%);
}

.tech-stack-scroll::after {
  right: 0;
  background: linear-gradient(to left, rgba(0, 0, 0, 1) 0%, transparent 100%);
}

.tech-stack-row {
  display: flex;
  gap: 12px;
  width: fit-content;
  will-change: transform;
}

.tech-scroll-left {
  animation: scrollLeft 30s linear infinite;
}

.tech-scroll-right {
  animation: scrollRight 30s linear infinite;
}

@keyframes scrollLeft {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

@keyframes scrollRight {
  0% {
    transform: translateX(-50%);
  }
  100% {
    transform: translateX(0);
  }
}

.tech-stack-item {
  padding: 2px 14px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: var(--text-main);
  font-size: 12px;
  font-weight: 400;
  transition: all 0.3s ease;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  white-space: nowrap;
}

.tech-stack-item:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.2);
}

.tech-logo {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  object-fit: contain;
  filter: brightness(0) invert(1);
}

.tech-name {
  color: var(--text-main);
  font-size: 12px;
  font-weight: 400;
  white-space: nowrap;
}

.schema-circles {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  opacity: 0.6;
}

.circle-line {
  stroke: rgba(255, 255, 255, 0.2);
  stroke-width: 1;
  transition: stroke 0.3s ease;
}

.schema-icon {
  position: absolute;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
}

.icon-circle {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.25);
  background: rgba(255, 255, 255, 0.05);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
  cursor: pointer;
  backdrop-filter: blur(4px);
}

.schema-icon:hover .icon-circle,
.schema-icon.auto-hover .icon-circle {
  border-color: rgba(27, 78, 245, 0.8);
  background: rgba(27, 78, 245, 0.15);
  transform: scale(1.15);
  box-shadow: 0 0 40px rgba(27, 78, 245, 0.6), 0 0 80px rgba(27, 78, 245, 0.4);
  transition: all 0.5s ease;
}

.schema-icon.auto-hover .icon-circle {
  animation: haloPulse 2s ease-in-out infinite;
}

@keyframes haloPulse {
  0%, 100% {
    box-shadow: 0 0 40px rgba(27, 78, 245, 0.6), 0 0 80px rgba(27, 78, 245, 0.4);
  }
  50% {
    box-shadow: 0 0 60px rgba(27, 78, 245, 0.8), 0 0 120px rgba(27, 78, 245, 0.6);
  }
}

.schema-icon-svg {
  width: 28px;
  height: 28px;
  filter: brightness(0) invert(1);
  object-fit: contain;
}

/* Positionnement des icônes - Symétrie horizontale parfaite */
/* Toutes les icônes sur le cercle extérieur (r=120) */
/* Centre du schéma : 50% horizontal, 50% vertical */
/* ViewBox 400x300, centre (200, 150) */

/* Icône haut-centre (0°) */
.icon-top-center {
  top: 10%;
  left: 50%;
  transform: translate(-50%, -50%);
}

/* Icônes à gauche - alignées verticalement */
/* Angle 135° (haut-gauche) : x=115, y=235 → 28.75%, 78.33% */
.icon-top-left {
  top: 21.67%;
  left: 28.75%;
  transform: translate(-50%, -50%);
}

/* Angle 225° (bas-gauche) : x=115, y=235 → 28.75%, 78.33% */
.icon-bottom-left {
  bottom: 21.67%;
  left: 28.75%;
  transform: translate(-50%, 50%);
}

/* Icônes à droite - alignées verticalement */
/* Angle 45° (haut-droite) : x=285, y=65 → 71.25%, 21.67% */
.icon-top-right {
  top: 21.67%;
  right: 28.75%;
  transform: translate(50%, -50%);
}

/* Angle 315° (bas-droite) : x=285, y=235 → 71.25%, 78.33% */
.icon-bottom-right {
  bottom: 21.67%;
  right: 28.75%;
  transform: translate(50%, 50%);
}

/* Nouvelles icônes - PostgreSQL (gauche, 180°), Symfony (droite, 0°), Google Cloud (bas, 270°) */
/* Cercle extérieur r=120, centre (200, 150) dans viewBox 400x300 */
/* Angle 180° (gauche) : x=80 (20%), y=150 (50%) */
.icon-left {
  top: 50%;
  left: 25%;
  transform: translate(-50%, -50%);
}

/* Angle 0° (droite) : x=320 (80%), y=150 (50%) */
.icon-right {
  top: 50%;
  right: 25%;
  transform: translate(50%, -50%);
}

/* Angle 270° (bas) : x=200 (50%), y=270 (90%) */
.icon-bottom-center {
  bottom: 10%;
  left: 50%;
  transform: translate(-50%, 50%);
}

.info-box-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  position: relative;
  z-index: 2;
}

.info-tag {
  color: var(--text-2);
  font-size: 13px;
  padding: 8px 14px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  font-weight: 400;
}

.info-tag::before {
  content: "◆";
  color: var(--primary);
  margin-right: 6px;
  font-size: 12px;
}

/* Étapes - Style inspiré de wg-plan */
.how-to-steps {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding-left: 0;
  padding-right: 0;
  padding-top: 48px;
  margin-top: 0;
  align-items: flex-start;
  width: 100%;
  max-width: 100%;
}

.step-item {
  display: flex;
  gap: 24px;
  padding: 31px;
  border-radius: 16px;
  border: 1px solid var(--line);
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  position: relative;
  overflow: visible;
  isolation: isolate;
  transition: transform 0.5s ease-in-out;
  transform: scale(1);
}
a.step-item {
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}

@property --step-ring-angle {
  syntax: "<angle>";
  inherits: false;
  initial-value: 0deg;
}

/* Anneau tournant type GetLayers Full Stack — visible au hover */
.step-border-glow {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1.5px;
  pointer-events: none;
  z-index: 2;
  opacity: 0;
  transition: opacity 0.35s ease;
  background: conic-gradient(
    from var(--step-ring-angle, 0deg),
    transparent 0deg,
    transparent 180deg,
    rgba(106, 104, 115, 0.08) 220deg,
    rgba(140, 138, 150, 0.22) 255deg,
    rgba(180, 178, 190, 0.45) 290deg,
    rgba(210, 208, 218, 0.7) 320deg,
    rgba(235, 234, 240, 0.9) 345deg,
    #ffffff 358deg,
    transparent 360deg
  );
  filter:
    drop-shadow(0 0 2px rgba(255, 255, 255, 0.95))
    drop-shadow(0 0 10px rgba(255, 255, 255, 0.45))
    drop-shadow(0 0 24px rgba(255, 255, 255, 0.2));
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  mask-composite: exclude;
  animation: step-border-glow-spin 1.8s linear infinite;
  animation-play-state: paused;
}

.step-item:hover .step-border-glow {
  opacity: 1;
  animation-play-state: running;
}

@keyframes step-border-glow-spin {
  to {
    --step-ring-angle: 360deg;
  }
}

.step-item::before {
  content: "";
  position: absolute;
  top: 0;
  left: 32px;
  width: 24px;
  height: 2px;
  background-color: var(--text-2);
  box-shadow: 0px 0px 6px 0px rgba(255, 255, 255, 0.5019607843), 0px 2px 12px 1px rgba(255, 255, 255, 0.3019607843), 0px 1px 24px 2px rgba(255, 255, 255, 0.2), 0px 2px 36px 3px rgba(255, 255, 255, 0.2), 0px 0px 40px 30px rgba(255, 255, 255, 0.1019607843);
  -webkit-transition: background-color 0.5s ease-in-out, box-shadow 0.5s ease-in-out;
  -moz-transition: background-color 0.5s ease-in-out, box-shadow 0.5s ease-in-out;
  -ms-transition: background-color 0.5s ease-in-out, box-shadow 0.5s ease-in-out;
  -o-transition: background-color 0.5s ease-in-out, box-shadow 0.5s ease-in-out;
  transition: background-color 0.5s ease-in-out, box-shadow 0.5s ease-in-out;
}

.step-item::after {
  content: "";
  position: absolute;
  inset: 0;
  /* background-image: 
    linear-gradient(135deg, rgba(0, 78, 111, 0.55) 0%, rgba(56, 182, 212, 0.4) 100%),
    url("../images/section/gradient-ring-bg-green.png"); */
  background-position: top right;
  background-repeat: no-repeat;
  background-size: cover;
  background-blend-mode: overlay;
  z-index: -1;
  -webkit-transition: opacity 0.5s ease-in-out, visibility 0.5s ease-in-out;
  -moz-transition: opacity 0.5s ease-in-out, visibility 0.5s ease-in-out;
  -ms-transition: opacity 0.5s ease-in-out, visibility 0.5s ease-in-out;
  -o-transition: opacity 0.5s ease-in-out, visibility 0.5s ease-in-out;
  transition: opacity 0.5s ease-in-out, visibility 0.5s ease-in-out;
  opacity: 0;
  visibility: hidden;
}

.step-item:hover::after {
  opacity: 1;
  visibility: visible;
}

.step-item:hover::before {
  background-color: #38B6D4;
  box-shadow: 0px 0px 6px 0px rgba(56, 182, 212, 0.6), 0px 2px 12px 1px rgba(56, 182, 212, 0.4), 0px 1px 24px 2px rgba(0, 78, 111, 0.35), 0px 2px 36px 3px rgba(0, 78, 111, 0.3), 0px 0px 40px 30px rgba(0, 78, 111, 0.2);
  -webkit-transition: background-color 0.5s ease-in-out, box-shadow 0.5s ease-in-out;
  -moz-transition: background-color 0.5s ease-in-out, box-shadow 0.5s ease-in-out;
  -ms-transition: background-color 0.5s ease-in-out, box-shadow 0.5s ease-in-out;
  -o-transition: background-color 0.5s ease-in-out, box-shadow 0.5s ease-in-out;
  transition: background-color 0.5s ease-in-out, box-shadow 0.5s ease-in-out;
}

.step-item.active::before {
  background-color: #38B6D4;
  box-shadow: 0px 0px 6px 0px rgba(56, 182, 212, 0.6), 0px 2px 12px 1px rgba(56, 182, 212, 0.4), 0px 1px 24px 2px rgba(0, 78, 111, 0.35), 0px 2px 36px 3px rgba(0, 78, 111, 0.3), 0px 0px 40px 30px rgba(0, 78, 111, 0.2);
  -webkit-transition: background-color 0.5s ease-in-out, box-shadow 0.5s ease-in-out;
  -moz-transition: background-color 0.5s ease-in-out, box-shadow 0.5s ease-in-out;
  -ms-transition: background-color 0.5s ease-in-out, box-shadow 0.5s ease-in-out;
  -o-transition: background-color 0.5s ease-in-out, box-shadow 0.5s ease-in-out;
  transition: background-color 0.5s ease-in-out, box-shadow 0.5s ease-in-out;
}

.step-item.active::after {
  opacity: 1;
  visibility: visible;
}

.step-item.active {
  transform: scale(1.02);
}

.step-number {
  font-size: 45px;
  line-height: 1;
  color: var(--text-2);
  font-weight: 700;
  min-width: 70px;
  flex-shrink: 0;
  font-family: "DM Sans", sans-serif;
  letter-spacing: -3px;
  text-transform: uppercase;
  text-shadow: 
    0 0 10px rgba(255, 255, 255, 0.1),
    1px 1px 0 rgba(255, 255, 255, 0.05);
  position: relative;
  z-index: 2;
  font-variant-numeric: tabular-nums;
  -webkit-font-smoothing: antialiased;
  image-rendering: pixelated;
}

.step-item.active .step-number {
  color: var(--text-2);
}

.step-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 16px;
  position: relative;
  z-index: 2;
}

.step-title {
  font-family: "DM Sans", sans-serif;
  font-size: 22px;
  line-height: 1.4;
  color: var(--text-2);
  margin: 0;
  font-weight: 600;
  text-transform: uppercase;
}

.step-desc {
  color: var(--text-main);
  line-height: 1.7;
  margin: 0;
  font-size: 14px;
}

.step-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 16px;
}

.step-tag {
  padding: 6px 14px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: var(--text-main);
  font-size: 12px;
  font-weight: 400;
  transition: all 0.3s ease;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.step-tag-icon {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  display: inline-block;
  color: var(--text-5);
}

.step-tag-icon svg,
.step-tag [data-lucide] svg {
  width: 14px;
  height: 14px;
  color: var(--text-main) !important;
  stroke: var(--text-main) !important;
  fill: none;
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.step-tag:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.15);
}

@media (max-width: 1199px) {
  .how-to-content {
    padding-right: 32px;
    padding-left: 12px;
    margin-bottom: 48px;
  }
  
  .how-to-title {
    font-size: 40px;
  }
  
  .step-number {
    font-size: 48px;
    min-width: 60px;
  }
  
  .how-to-steps {
    padding-left: 12px;
    padding-right: 12px;
    padding-top: 40px;
  }
}

@media (max-width: 1024px) {
  .step-item {
    padding: 20px 16px;
  }
  
  .how-to-info-box {
    padding: 20px 16px;
  }
}

@media (max-width: 991px) {
  .section-how-to .sect-main .container {
    padding: 16px;
    padding-top: 0;
  }
  
  .how-to-content {
    gap: 28px;
  }
  
  .how-to-title {
    font-size: 36px;
  }
  
  .how-to-desc {
    padding-right: 16px;
  }
  
  .step-item {
    gap: 24px;
    padding: 32px 24px;
  }
  
  .step-number {
    font-size: 42px;
    min-width: 55px;
  }
  
  .step-title {
    font-size: 18px;
  }
  
  .how-to-info-box {
    padding: 20px 16px;
  }
  
  .how-to-cta {
    padding: 12px 24px;
    font-size: 13px;
  }
  
  .how-to-steps {
    padding-left: 8px;
    padding-right: 8px;
    gap: 16px;
    padding-top: 32px;
  }
}

@media (max-width: 767px) {
  .section-how-to .sect-main .container {
    padding: 16px;
    padding-top: 0;
  }
  
  .section-how-to .sect-main .row {
    flex-direction: column;
  }
  
  .how-to-content {
    gap: 24px;
    padding-left: 16px;
    padding-right: 16px;
    margin-bottom: 40px;
  }
  
  .how-to-steps {
    gap: 12px;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  
  .how-to-badge {
    margin-bottom: 16px;
  }
  
  .how-to-title {
    font-size: 28px;
    line-height: 1.3;
    margin-bottom: 20px;
  }
  
  .how-to-desc {
    font-size: 14px;
    padding-right: 0;
    margin-bottom: 24px;
    line-height: 1.6;
  }
  
  .how-to-cta {
    width: 100%;
    justify-content: center;
    padding: 14px 24px;
  }
  
  .how-to-info-box {
    margin-top: 32px;
    padding: 20px 16px;
  }
  
  .step-item {
    flex-direction: row;
    gap: 16px;
    padding: 24px 16px;
  }
  
  .step-item::before {
    left: 16px;
    width: 20px;
    height: 20px;
  }
  
  .step-number {
    font-size: 36px;
    min-width: 50px;
  }
  
  .step-title {
    font-size: 16px;
    margin-bottom: 8px;
  }
  
  .step-desc {
    font-size: 13px;
    line-height: 1.5;
  }
  
  .step-content {
    gap: 12px;
  }
  
  .step-tags {
    gap: 8px;
    margin-top: 12px;
    flex-wrap: wrap;
  }
  
  .info-box-tags {
    gap: 8px;
  }
  
  .info-tag,
  .step-tag {
    font-size: 11px;
    padding: 6px 12px;
  }
  
  .info-box-text {
    font-size: 14px;
    margin-bottom: 24px;
    line-height: 1.6;
  }
  
  .info-box-schema {
    margin: 24px 0;
  }
  
  .tech-stack-scroll {
    gap: 12px;
  }
  
  .tech-stack-scroll::before,
  .tech-stack-scroll::after {
    width: 40px;
  }
  
  .tech-stack-item {
    padding: 6px 12px;
    gap: 6px;
    font-size: 11px;
  }
  
  .tech-logo {
    width: 14px;
    height: 14px;
  }
  
  .tech-name {
    font-size: 11px;
  }
  
  .tech-stack-row {
    gap: 8px;
  }
  
  .icon-circle {
    width: 44px;
    height: 44px;
  }
  
  .schema-icon-svg {
    width: 20px;
    height: 20px;
  }
  
  .icon-top-center {
    top: 10%;
    left: 50%;
    transform: translate(-50%, -50%);
  }
  
  .icon-top-left {
    top: 21.67%;
    left: 28.75%;
    transform: translate(-50%, -50%);
  }
  
  .icon-top-right {
    top: 21.67%;
    right: 28.75%;
    transform: translate(50%, -50%);
  }
  
  .icon-bottom-left {
    bottom: 21.67%;
    left: 28.75%;
    transform: translate(-50%, 50%);
  }
  
  .icon-bottom-right {
    bottom: 21.67%;
    right: 28.75%;
    transform: translate(50%, 50%);
  }
  
  .icon-left {
    top: 50%;
    left: 20%;
    transform: translate(-50%, -50%);
  }
  
  .icon-right {
    top: 50%;
    right: 20%;
    transform: translate(50%, -50%);
  }
  
  .icon-bottom-center {
    bottom: 8%;
    left: 50%;
    transform: translate(-50%, 50%);
  }
  
  .how-to-steps {
    padding-left: 16px;
    padding-right: 16px;
    gap: 16px;
    padding-top: 24px;
  }
}

/* Très petits écrans - Optimisation supplémentaire */
@media (max-width: 575px) {
  .section-how-to .sect-main .container {
    padding: 12px;
  }
  
  .how-to-content {
    padding-left: 12px;
    padding-right: 12px;
    gap: 20px;
  }
  
  .how-to-badge {
    font-size: 10px;
    padding: 6px 12px;
  }
  
  .how-to-title {
    font-size: 24px;
    line-height: 1.3;
    margin-bottom: 16px;
  }
  
  .how-to-desc {
    font-size: 13px;
    margin-bottom: 20px;
  }
  
  .how-to-cta {
    font-size: 14px;
    padding: 12px 20px;
  }
  
  .how-to-info-box {
    padding: 16px 12px;
    margin-top: 24px;
  }
  
  .info-box-text {
    font-size: 13px;
    margin-bottom: 20px;
  }
  
  .step-item {
    padding: 20px 12px;
    gap: 12px;
  }
  
  .step-item::before {
    left: 12px;
    width: 18px;
    height: 18px;
  }
  
  .step-number {
    font-size: 32px;
    min-width: 45px;
  }
  
  .step-title {
    font-size: 15px;
  }
  
  .step-desc {
    font-size: 12px;
  }
  
  .step-tag {
    font-size: 10px;
    padding: 5px 10px;
  }
  
  .tech-stack-scroll::before,
  .tech-stack-scroll::after {
    width: 30px;
  }
  
  .tech-stack-item {
    padding: 4px 10px;
    gap: 4px;
    font-size: 10px;
  }
  
  .tech-logo {
    width: 12px;
    height: 12px;
  }
  
  .tech-name {
    font-size: 10px;
  }
  
  .tech-stack-row {
    gap: 6px;
  }
  
  .how-to-steps {
    padding-left: 12px;
    padding-right: 12px;
    gap: 12px;
  }
}

.text-bg-linear {
  color: transparent;
  background: linear-gradient(90.9deg, #9F9DFB 0%, #709AF5 50%, #A5DCF3 100%);
  background-clip: text;
}

.lang-indicator {
  color: var(--primary);
  margin-right: 6px;
  font-size: 14px;
}

/* Texte en bleu sans animation */
.text-gradient-animated {
  color: hsl(0, 0%, 100%);
  font-weight: 900;
  transform: skew(-8deg);
  font-family: 'Hind', sans-serif;
  display: inline-block;
}

/* Hero titles – Outfit */
.section-hero .s-title {
  background: none;
  -webkit-background-clip: unset;
  background-clip: unset;
  color: #ffffff;
  -webkit-text-fill-color: #ffffff;
  font-family: "Outfit", sans-serif;
  line-height: 0.85;
}
.section-hero .s-title .text-gradient-animated {
  font-family: "Outfit", sans-serif;
  font-weight: 400;
  font-style: normal;
  transform: none;
  display: block;
  margin: 0;
  padding: 0;
  line-height: 0.85;
  color: #ffffff;
  -webkit-text-fill-color: #ffffff;
  background: none;
}
.section-hero .s-title .text-gradient-animated + .text-gradient-animated {
  margin-top: 0.12em;
}
.section-hero .s-title .text-gradient-animated .hero-beyond {
  display: block;
  font-weight: 500;
  font-style: normal;
  font-size: 0.34em;
  letter-spacing: 0.08em;
  line-height: 1;
  margin: 0 0 0.1em;
}
.section-hero .s-title .text-gradient-animated .hero-italic {
  display: inline;
  font-style: normal;
  font-weight: 900;
  line-height: 0.85;
  background: linear-gradient(90.9deg, #9F9DFB 0%, #709AF5 50%, #A5DCF3 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  animation: hue-rotate 5s infinite linear;
}
.section-hero .s-title .text-gradient-animated .hero-italic.hero-code,
.section-hero .s-title .text-gradient-animated .hero-italic.hero-screen {
  font-family: "Outfit", sans-serif;
  font-weight: 700;
  letter-spacing: -0.02em;
}
.section-hero .s-title .hero-code-line .hero-beyond,
.section-hero .s-title .hero-screen-line .hero-beyond {
  font-family: "Outfit", sans-serif;
  font-weight: 500;
  letter-spacing: 0.08em;
}
.section-hero .s-title .text-change_wrap {
  margin-top: 0.25em;
}



.how-to-title .text-gradient {
  background: linear-gradient(90.9deg, #9F9DFB 0%, #709AF5 50%, #A5DCF3 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  color: transparent;
  animation: hue-rotate 5s infinite linear;
}

.grid-pricing {
  padding: 48px;
  padding-top: 0;
  gap: 12px;
  position: relative;
  display: flex;
}
.grid-pricing .wg-plan {
  width: 100%;
  flex: 1;
}
@media (max-width: 991px) {
  .grid-pricing {
    padding: 16px;
    padding-top: 0;
  }
}
@media (max-width: 767px) {
  .grid-pricing {
    flex-direction: column;
  }
}

.wg-plan {
  padding: 31px;
  border-radius: 16px;
  border: 1px solid var(--line);
  position: relative;
  overflow: hidden;
}
.wg-plan .br-line {
  margin-top: 32px;
  margin-bottom: 32px;
}
.wg-plan .plan_type {
  margin-bottom: 24px;
}
.wg-plan .plan_price {
  margin-bottom: 12px;
  display: flex;
  align-items: end;
  gap: 8px;
}
.wg-plan .price-amount {
  color: transparent;
  background: linear-gradient(180deg, #F4F7F5 0%, rgba(244, 247, 245, 0.82) 100%);
  background-clip: text;
  font-weight: 525;
}
.wg-plan .price-duration {
  line-height: 28px;
}
.wg-plan .plan-description {
  margin-bottom: 32px;
  color: var(--text-2);
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  display: -webkit-box !important;
  overflow: hidden;
}
.wg-plan .plan-feature {
  display: grid;
  gap: 24px;
}
.wg-plan .features_list {
  display: grid;
  gap: 12px;
}
.wg-plan .features_list li {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--text-2);
}
.wg-plan::before {
  content: "";
  position: absolute;
  top: 0;
  left: 32px;
  width: 24px;
  height: 2px;
  background-color: var(--text-2);
  box-shadow: 0px 0px 6px 0px rgba(255, 255, 255, 0.5019607843), 0px 2px 12px 1px rgba(255, 255, 255, 0.3019607843), 0px 1px 24px 2px rgba(255, 255, 255, 0.2), 0px 2px 36px 3px rgba(255, 255, 255, 0.2), 0px 0px 40px 30px rgba(255, 255, 255, 0.1019607843);
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
.wg-plan::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("../images/section/visual-object-2.webp");
  background-position: top right;
  background-repeat: no-repeat;
  z-index: 0;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
  opacity: 0;
  visibility: hidden;
}
.wg-plan .content {
  position: relative;
  z-index: 1;
}
.wg-plan .item {
  position: absolute;
  bottom: 0;
  width: 100%;
  z-index: 0;
  filter: blur(50px);
  opacity: 0;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
.wg-plan.type-2::after {
  opacity: 1;
  visibility: visible;
}
.wg-plan.type-2::before {
  background-color: var(--bg-7);
  box-shadow: 0px 0px 6px 0px rgba(35, 101, 255, 0.6), 0px 2px 12px 1px rgba(35, 101, 255, 0.4), 0px 1px 24px 2px rgba(35, 101, 255, 0.3019607843), 0px 2px 36px 3px rgba(35, 101, 255, 0.3019607843), 0px 0px 40px 30px rgba(35, 101, 255, 0.2);
}
.wg-plan.type-2 .item {
  opacity: 0.82;
}
.wg-plan:hover::after {
  opacity: 1;
  visibility: visible;
}
.wg-plan:hover::before {
  background-color: var(--bg-7);
  box-shadow: 0px 0px 6px 0px rgba(35, 101, 255, 0.6), 0px 2px 12px 1px rgba(35, 101, 255, 0.4), 0px 1px 24px 2px rgba(35, 101, 255, 0.3019607843), 0px 2px 36px 3px rgba(35, 101, 255, 0.3019607843), 0px 0px 40px 30px rgba(35, 101, 255, 0.2);
}
.wg-plan:hover .item {
  opacity: 0.82;
}
@media (max-width: 1024px) {
  .wg-plan {
    padding: 20px 16px;
  }
}

.section-projects .sect-main {
  position: relative;
}
.section-projects .s-img_item {
  position: absolute;
  top: 113px;
  left: 0;
  right: 0;
  z-index: -5;
  display: flex;
  justify-content: center;
  align-items: center;
}
.section-projects .s-img_item .globe-cont {
  position: relative;
  z-index: -1;
  overflow: hidden;
  margin: 0px 16px;
  opacity: 0.55;
}
.section-projects .s-img_item .globe-cont::before {
  content: none;
  position: absolute;
  inset: 0;
}
.section-projects .s-img_item .img-2 {
  position: absolute;
  top: 0;
  z-index: -1;
  filter: blur(120px);
  opacity: 0.45;
}
.section-projects .ubg-metrics {
  position: relative;
  z-index: 1;
}
.section-projects.tes-2 {
  padding-top: 50px;
}
@media (max-width: 1199px) {
  .section-projects.tes-2 .s-img_item {
    top: 0px;
  }
}
@media (max-width: 991px) {
  .section-projects .s-img_item {
    top: 70px;
  }
  .section-projects .s-img_item .globe-cont,
  #cobe {
    display: none;
  }
}

.wg-project {
  padding: 27px;
  background: rgba(0, 0, 0, 0.6392156863);
  border: 1px solid var(--line);
  backdrop-filter: blur(32px);
  border-radius: 16px;
  display: flex !important;
  flex-direction: column !important;
  gap: 28px;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
}
a.wg-project {
  text-decoration: none;
  color: inherit;
  cursor: pointer;
  transition: border-color 0.2s ease, background 0.2s ease;
}
a.wg-project:hover {
  border-color: rgba(255, 255, 255, 0.28);
  background: rgba(0, 0, 0, 0.78);
}
.wg-project .tes-author {
  display: flex;
  align-items: center;
  gap: 16px;
}
.wg-project .author_image {
  border-radius: 50%;
  overflow: hidden;
  max-width: 44px;
}
.wg-project .tes-text {
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  display: -webkit-box;
  overflow: hidden;
}

.infiniteSlide-projects {
  display: flex !important;
  gap: 12px;
  align-items: stretch !important;
}
.infiniteSlide-projects > * {
  max-width: 424px;
  display: flex !important;
  flex: 0 0 auto !important;
  height: auto !important;
}
.infiniteSlide-projects:not(.reverse) {
  margin-bottom: 12px;
}
@media (max-width: 991px) {
  .infiniteSlide-projects > * {
    max-width: 300px;
  }
}

/* ===== UBG metrics (projects counters) ===== */
.ubg-metrics {
  margin: 8px 0 40px;
}
.ubg-metrics__frame {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(0, 0, 0, 0.28);
  backdrop-filter: blur(18px);
}
.ubg-metrics__row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.ubg-metrics__cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 10px;
  padding: 28px 28px 32px;
  min-height: 100%;
  border-left: 1px solid rgba(255, 255, 255, 0.1);
  opacity: 0;
  transform: translateY(14px);
  transition:
    opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}
.ubg-metrics__cell:first-child {
  border-left: none;
}
.ubg-metrics.counted .ubg-metrics__cell {
  opacity: 1;
  transform: translateY(0);
}
.ubg-metrics.counted .ubg-metrics__cell:nth-child(2) {
  transition-delay: 0.12s;
}
.ubg-metrics.counted .ubg-metrics__cell:nth-child(3) {
  transition-delay: 0.24s;
}
.ubg-metrics__idx {
  margin: 0;
  color: rgba(255, 255, 255, 0.45);
  letter-spacing: 0.04em;
}
.ubg-metrics__value {
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  gap: 0.14em;
  margin: 0;
  font-size: clamp(40px, 4.2vw, 56px);
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.03em;
  color: #f4f7f5;
  font-variant-numeric: tabular-nums;
}
.ubg-count {
  display: inline-block;
  font: inherit;
  font-weight: inherit;
  color: inherit;
  letter-spacing: inherit;
  font-variant-numeric: tabular-nums;
  text-align: center;
  transition: opacity 0.25s ease;
}
.ubg-count.is-ticking {
  opacity: 0.88;
}
.ubg-count.is-done {
  opacity: 1;
}
.ubg-metrics__prefix {
  font-size: 0.42em;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: rgba(244, 247, 245, 0.7);
  transform: translateY(-0.15em);
}
.ubg-metrics__unit {
  font-size: 0.55em;
  font-weight: 800;
  color: inherit;
}
.ubg-metrics__label {
  margin: 0;
  max-width: 28ch;
  color: rgba(255, 255, 255, 0.55);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  line-height: 1.45;
}
.ubg-metrics__desc {
  margin: 2px 0 0;
  max-width: 32ch;
  color: rgba(255, 255, 255, 0.48);
  line-height: 1.55;
}
@media (max-width: 991px) {
  .ubg-metrics {
    margin-bottom: 32px;
  }
  .ubg-metrics__row {
    grid-template-columns: 1fr;
  }
  .ubg-metrics__cell {
    padding: 22px 20px;
    border-left: none;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
  }
  .ubg-metrics__cell:first-child {
    border-top: none;
  }
}
@media (max-width: 767px) {
  .ubg-metrics {
    margin-bottom: 24px;
  }
  .ubg-metrics__value {
    font-size: 36px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .ubg-metrics__cell {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

.projects-slide-wrap {
  position: relative;
  padding-bottom: 49px;
}

/* Project Cards Styles */
.wg-project .project-content {
  display: flex;
  flex-direction: column;
  gap: 16px;
  flex: 1;
}

.wg-project .project-title {
  font-family: "Outfit", sans-serif;
  font-size: 20px;
  font-weight: 700;
  margin: 0;
  line-height: 1.3;
}

.wg-project .project-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.wg-project .project-type {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 2px 12px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 20px;
  width: fit-content;
}

.wg-project .project-client {
  display: inline-flex;
  align-items: center;
  padding: 2px 12px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: var(--text-main);
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.wg-project .project-client--confidential {
  color: rgba(244, 247, 245, 0.55);
  font-style: italic;
}

.wg-project .type-indicator {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  display: block;
}

.wg-project .type-indicator.type-web {
  background: #2365FF;
  box-shadow: 0 0 8px rgba(35, 101, 255, 0.6),
              0 0 12px rgba(35, 101, 255, 0.4),
              0 0 16px rgba(35, 101, 255, 0.2);
}

.wg-project .type-indicator.type-mobile {
  background: #10B981;
  box-shadow: 0 0 8px rgba(16, 185, 129, 0.6),
              0 0 12px rgba(16, 185, 129, 0.4),
              0 0 16px rgba(16, 185, 129, 0.2);
}

.wg-project .type-indicator.type-ia {
  background: #EF4444;
  box-shadow: 0 0 8px rgba(239, 68, 68, 0.6),
              0 0 12px rgba(239, 68, 68, 0.4),
              0 0 16px rgba(239, 68, 68, 0.2);
}

.wg-project .type-indicator.type-iot {
  background: #F59E0B;
  box-shadow: 0 0 8px rgba(245, 158, 11, 0.6),
              0 0 12px rgba(245, 158, 11, 0.4),
              0 0 16px rgba(245, 158, 11, 0.2);
}

.wg-project .type-label {
  font-size: 12px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--text-main);
}

.wg-project .project-description {
  color: var(--text-main);
  line-height: 1.6;
  margin: 0;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  display: -webkit-box;
  overflow: hidden;
}

.wg-project .project-stack {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 8px;
}

.section-faq .sect-main {
  background: radial-gradient(50% 50% at 50% 50%, rgba(27, 78, 245, 0.12) 0%, rgba(0, 0, 0, 0.12) 100%);
}

.section-faq .s-title strong,
.s-title strong {
  font-weight: 700;
}

.s-title .s-title-light {
  font-weight: 300;
}

.faq-list {
  padding: 0px 16px;
}

.faq-item {
  padding: 24px 16px;
  display: grid;
  gap: 0;
}

.faq-item .faq_title {
  position: relative;
  margin: 0;
  padding-right: 36px;
  cursor: pointer;
  user-select: none;
  transition: color 0.2s ease;
}

.faq-item .faq_title::after {
  content: "";
  position: absolute;
  right: 4px;
  top: 0.55em;
  width: 12px;
  height: 12px;
  border-right: 1.5px solid rgba(255, 255, 255, 0.7);
  border-bottom: 1.5px solid rgba(255, 255, 255, 0.7);
  transform: translateY(-40%) rotate(45deg);
  transition: transform 0.25s ease;
}

.faq-item.is-open .faq_title::after {
  transform: translateY(-10%) rotate(225deg);
}

.faq-item .faq_title:hover {
  color: #ffffff;
}

.faq-item .faq_label {
  margin: 0;
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: max-height 0.35s ease, opacity 0.25s ease, margin 0.25s ease;
}

.faq-item.is-open .faq_label {
  margin-top: 16px;
  max-height: 80rem;
  opacity: 1;
}

.section-cta .sect-main {
  position: relative;
  overflow: hidden;
}
.section-cta .s-img_item {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 1296px;
  overflow: hidden;
  z-index: -1;
  pointer-events: none;
}
@media (max-width: 1199px) {
  .section-cta .s-img_item {
    max-width: unset;
    width: calc(100% - 32px);
  }
}
.section-cta .s-img_item img {
  position: absolute;
  inset: -32px;
  width: calc(100% + 64px);
  height: calc(100% + 64px);
  max-width: none;
  object-fit: cover;
  object-position: center;
  filter: blur(24px);
}
.section-cta .image {
  position: relative;
}

.image-how_to {
  position: relative;
  margin: 10px;
}

.has-over_video {
  position: relative;
}
.has-over_video video {
  position: absolute;
  bottom: 0;
  right: 0;
  left: 0;
  top: 0;
}

/* Badge expertise hero - style similaire aux keywords */
.hero-expertise-badge {
  display: flex;
  justify-content: flex-start;
  margin-bottom: 20px;
  width: 100%;
}

.hero-expertise-text {
  padding: 6px 14px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: var(--text-main);
  font-size: 12px;
  font-weight: 400;
  transition: all 0.3s ease;
  display: inline-block;
}

.text-change_wrap {
  display: inline-flex;
  position: relative;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: center;
  gap: 0.4em;
  font-family: "Martian Mono", monospace;
  font-size: 0.48em;
  font-weight: 400;
  line-height: 1;
  min-height: 1.15em;
  height: 1.15em;
  -webkit-transition: none;
  -moz-transition: none;
  -ms-transition: none;
  -o-transition: none;
  transition: none;
}

.typewriter-prompt {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  height: 1em;
  font-weight: 500;
  color: #38B6D4;
  margin: 0;
  user-select: none;
  line-height: 1;
}

.typewriter-text {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  min-width: 0;
  height: 1em;
  white-space: nowrap;
  color: white;
  line-height: 1;
  /* Garde une boîte de ligne stable même à vide */
  min-height: 1em;
}

.typewriter-text:empty::before {
  content: "\200b";
}

.typewriter-cursor {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 0.6em;
  height: 1em;
  color: #38B6D4;
  animation: blinkCursor 1s step-end infinite;
  margin: 0;
  font-weight: 400;
  line-height: 1;
  overflow: hidden;
}

/* Police Martian Mono — héritée du wrap */
.text-change_wrap .typewriter-prompt,
.text-change_wrap .typewriter-text,
.text-change_wrap .typewriter-cursor {
  font-family: inherit;
  font-size: inherit;
}

@keyframes blinkCursor {
  0%, 50% {
    opacity: 1;
  }
  51%, 100% {
    opacity: 0;
  }
}

.text-change_rotating {
  display: flex;
  align-items: center;
  gap: 8px;
  background: linear-gradient(180deg, #F4F7F5 0%, rgba(244, 247, 245, 0.82) 100%);
  background-clip: text;
}
@media (min-width: 1200px) {
  .text-change_rotating .icon {
    font-size: 52px;
  }
}

.image-brand {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 94px;
  flex: none;
}
.image-brand img {
  height: 94px;
  width: auto;
  max-height: 94px;
  max-width: none;
  object-fit: contain;
  display: block;
}
.image-brand a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 94px;
}

/* Décalage pour que .section-page-title ne soit pas sous le header fixe */
.section-page-title {
  padding-top: 88px;
}

/* Update Inner */
.section-page-title .breadcrumbs-list {
  display: flex;
  align-items: center;
  gap: 7px;
}
.section-page-title .breadcrumbs-list a,
.section-page-title .breadcrumbs-list a.link,
.section-page-title .breadcrumbs-list a.link:hover {
  color: #ffffff !important;
}
.section-page-title .current-page {
  color: #ffffff;
  max-width: 100%;
  overflow: visible;
  text-overflow: unset;
  white-space: nowrap;
}
@media (max-width: 767px) {
  .section-page-title .current-page {
    max-width: 100%;
    white-space: normal;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .section-page-title .current-page {
    max-width: 100%;
  }
}

.text-linear {
  background: linear-gradient(180deg, #F4F7F5 0%, rgba(244, 247, 245, 0.82) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.text-linear-2 {
  background: linear-gradient(90.9deg, #9F9DFB 0%, #709AF5 50%, #A5DCF3 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.section-page-use-detail .box-image-v01 {
  margin-bottom: 48px;
}

.page-use-case_content {
  display: flex;
  justify-content: space-between;
  gap: 20px;
}
.page-use-case_content.detail .col-left > *:not(:last-child) {
  margin-bottom: 40px;
}
@media (min-width: 992px) {
  .page-use-case_content .col-left {
    width: 70%;
  }
  .page-use-case_content .col-right {
    width: 30%;
  }
}
@media (min-width: 1200px) {
  .page-use-case_content .col-left {
    max-width: 796px;
    width: 100%;
  }
  .page-use-case_content .col-right {
    max-width: 364px;
    width: 100%;
  }
}
@media (min-width: 1440px) {
  .page-use-case_content {
    gap: 40px;
  }
}

.box-head_section {
  margin-bottom: 60px;
}
@media (min-width: 1200px) {
  .box-head_section {
    margin-bottom: 88px;
  }
}

.banner-image-v01 {
  position: relative;
  border: 1px solid var(--line);
  border-radius: 16px;
  overflow: hidden;
  display: flex;
  align-items: center;
  padding: 20px 16px;
  gap: 8px;
  justify-content: space-between;
}
.banner-image-v01 .content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: start;
  position: relative;
  z-index: 3;
}
.banner-image-v01 .image {
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid var(--line);
  width: 100%;
}
.banner-image-v01 .image img {
  object-fit: cover;
}
.banner-image-v01 .img-abs {
  position: absolute;
}
.banner-image-v01 .img-abs.img-bg {
  inset: 0;
  z-index: 0;
}
.banner-image-v01 .img-abs.img-bg img {
  object-fit: cover;
  height: 100%;
}
.banner-image-v01 .img-abs.img-item {
  max-width: 212px;
  width: 100%;
  bottom: -12px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1;
}
.banner-image-v01 .title {
  margin-bottom: 16px;
}
.banner-image-v01 .sub-title {
  margin-bottom: 30px;
}
.banner-image-v01 .tf-btn {
  max-width: 226px;
  width: 100%;
}
@media (min-width: 1200px) {
  .banner-image-v01 {
    padding: 30px 24px 30px 56px;
  }
  .banner-image-v01 .sub-title {
    margin-bottom: 45px;
  }
  .banner-image-v01 .title {
    margin-bottom: 24px;
  }
  .banner-image-v01 .image {
    max-width: 498px;
  }
}
@media (max-width: 1199px) {
  .banner-image-v01 .content {
    width: 100%;
  }
}
@media (max-width: 991px) {
  .banner-image-v01 {
    flex-wrap: wrap-reverse;
    gap: 30px;
  }
  .banner-image-v01 .image img {
    width: 100%;
  }
  .banner-image-v01 .img-abs.img-item {
    bottom: -12px;
    left: unset;
    right: 12px;
    transform: unset;
    z-index: 1;
  }
}

.banner-image-v02 {
  display: flex;
  align-items: center;
  gap: 30px;
  padding: 20px 16px;
  border: 1px solid var(--line);
  border-radius: 16px;
  flex-wrap: wrap;
}
.banner-image-v02 .image {
  width: 100%;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid var(--line);
}
.banner-image-v02 .image img {
  width: 100%;
  object-fit: cover;
  min-height: 300px;
}
.banner-image-v02 .title {
  margin-bottom: 24px;
}
.banner-image-v02 .sub-title {
  margin-bottom: 32px;
}
.banner-image-v02 .content {
  width: 100%;
}
.banner-image-v02 .grid-benefit {
  gap: 12px;
}
.banner-image-v02 .benefit-list {
  display: grid;
  gap: 12px;
}
.banner-image-v02 .benefit-item {
  display: flex;
  align-items: center;
  gap: 8px;
}
.banner-image-v02 .benefit-item .icon {
  font-size: 24px;
}
@media (min-width: 992px) {
  .banner-image-v02 {
    flex-wrap: nowrap;
    padding: 16px 24px 16px 8px;
    gap: 40px;
  }
  .banner-image-v02 .content {
    max-width: 473px;
  }
}
@media (min-width: 1440px) {
  .banner-image-v02 .grid-benefit {
    gap: 12px 32px;
  }
}

.section-hero-about {
  position: relative;
}
.section-hero-about .img-item-1,
.section-hero-about .img-item-2 {
  position: absolute;
  inset: 0;
  top: 160px;
  display: flex;
  align-items: start;
  justify-content: center;
  z-index: 0;
  pointer-events: none;
}
.section-hero-about .img-item-1 {
  filter: blur(100px);
}
.section-hero-about .sect-title {
  margin-bottom: 56px;
}
.section-hero-about .s-title {
  margin-bottom: 16px;
}
.section-hero-about .text-caption {
  margin-bottom: 32px;
}
.section-hero-about .image img {
  width: 100%;
  object-fit: cover;
  min-height: 350px;
}
.section-hero-about .rate-per {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 8px;
}
.section-hero-about .title-2 {
  margin-bottom: 32px;
  animation: hue-rotate 5s infinite linear;
}
.section-hero-about .brand-wrap {
  display: flex;
  align-items: center;
  gap: 12px 24px;
  margin-bottom: 30px;
  flex-wrap: wrap;
}

.section-team .tf-grid-layout {
  gap: 12px;
}

.info-us-list {
  display: grid;
  gap: 24px;
  margin-bottom: 30px;
}
.info-us-list li {
  display: grid;
}
.info-us-list .title-sub {
  margin-bottom: 8px;
}
@media (min-width: 1200px) {
  .info-us-list {
    gap: 32px;
  }
}

.section-hero-landing {
  position: relative;
}
.section-hero-landing .img-item {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  display: flex;
  justify-content: center;
  z-index: 0;
}
.section-hero-landing .img-item.item_1 {
  filter: blur(200px);
  z-index: 1;
}
.section-hero-landing .content {
  position: relative;
}
.section-hero-landing .image-wrap {
  position: absolute;
}
.section-hero-landing .image-wrap .text {
  color: var(--white);
  display: inline-flex;
}
.section-hero-landing .image-wrap .img {
  box-shadow: 0.99px 0.9px 3.78px 0px rgba(0, 0, 0, 0.0784313725), 4.31px 3.92px 7.38px 0px rgba(0, 0, 0, 0.1333333333), 10.48px 9.53px 13.28px 0px rgba(0, 0, 0, 0.168627451), 20.02px 18.2px 23.99px 0px rgba(0, 0, 0, 0.2), 33.44px 30.4px 42.01px 0px rgba(0, 0, 0, 0.2392156863), 51.25px 46.6px 69.85px 0px rgba(0, 0, 0, 0.2901960784), 73.99px 67.27px 110px 0px rgba(0, 0, 0, 0.368627451);
}
.section-hero-landing .image-wrap.wrap-1 {
  top: 5px;
  left: 86px;
}
.section-hero-landing .image-wrap.wrap-1 .text {
  padding-bottom: 39px;
}
.section-hero-landing .image-wrap.wrap-1 .icon {
  display: inline-flex;
  transform: rotate(30deg);
  position: absolute;
  top: 45px;
}
.section-hero-landing .image-wrap.wrap-1 .img {
  padding-left: 24px;
}
.section-hero-landing .image-wrap.wrap-2 {
  top: 118px;
  right: 8.4%;
  display: flex;
  flex-direction: column;
  align-items: end;
  gap: 9px;
}
.section-hero-landing .image-wrap.wrap-2 .icon,
.section-hero-landing .image-wrap.wrap-2 .text {
  padding-right: 60px;
}
.section-hero-landing .image {
  display: flex;
  justify-content: center;
}
@media (max-width: 1199px) {
  .section-hero-landing .image-wrap.wrap-1 {
    left: 12px;
  }
  .section-hero-landing .image-wrap.wrap-2 {
    right: 12px;
  }
  .section-hero-landing .image-wrap .img {
    width: 75%;
  }
}
@media (max-width: 767px) {
  .section-hero-landing .image-wrap {
    display: none !important;
  }
}

.section-build .image {
  border-radius: 16px;
  padding: 8px;
  border: 1px solid var(--line);
  margin-bottom: 24px;
}
.section-build .image img {
  border-radius: 16px;
}
.section-build .title {
  margin-bottom: 8px;
}
.section-build .sub-title {
  margin-bottom: 48px;
  line-height: 13px;
}
.section-build .tf-grid-layout {
  gap: 32px 12px;
}
@media (min-width: 1200px) {
  .section-build .tf-grid-layout {
    gap: 48px 12px;
  }
}

.section-core-feature .tf-grid-layout {
  gap: 12px;
}

@media (min-width: 1200px) {
  .section-wp-option .sect-title {
    margin-bottom: 88px;
  }
}

.section-footer-landing .s-sub_title {
  margin-bottom: 32px;
}
.section-footer-landing .tf-btn {
  max-width: 226px;
  width: 100%;
}
@media (min-width: 1200px) {
  .section-footer-landing {
    padding-bottom: 150px;
  }
}

.section-404 {
  text-align: center;
}
.section-404 .content {
  max-width: 544px;
  width: 100%;
  margin: 0 auto;
}
.section-404 .image {
  margin-bottom: 48px;
}
.section-404 .title {
  padding-bottom: 30px;
}
.section-404 .desc {
  margin-bottom: 28px;
}
.section-404 .tf-btn {
  max-width: 226px;
  width: 100%;
}

@media (min-width: 1200px) {
  .section-pricing-2 .sect-title {
    margin-bottom: 88px;
  }
  .section-pricing-2 .sect-title .s-title {
    margin-bottom: 24px;
  }
  .section-pricing-2.pricing-2 .sect-title {
    margin-bottom: 56px;
  }
}

.section-inner-page .tf-grid-layout {
  gap: 32px 12px;
}

/*------------ Widget ---------------- */
/* ---------------------------------------------------------
    * Name: Vemus - Jewelry Ecommerce HTML Template
    * Version: 1.0.0
    * Author: Themesflat
    * Author URI: http://themesflat.com 

	* Abstracts variable

    * Reset css styles

    * Components

        * header
        * footer
        * accordion
        * animation
        * blog
        * box iocn
        * button
        * carousel
        * avatar
        * form
        * hover
        * nice select
        * popup
        * product
        * shop
        * slider
        * projects
        * zoom

    * Section
 ------------------------------------------------------------------------------ */
/*--------- Abstracts variable ---------- */
.box-image-v01 {
  position: relative;
}
.box-image-v01 .box_image {
  border-radius: 24px;
  overflow: hidden;
  margin-bottom: 20px;
}
.box-image-v01 .box_image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  min-height: 350px;
}
.box-image-v01 .box_content_wrap {
  padding: 20px 16px;
  border-radius: 16px;
  background-color: var(--bg-12);
  backdrop-filter: blur(16px);
  border: 1px solid var(--line);
}
.box-image-v01 .box_content_wrap .tag {
  margin-bottom: 16px;
}
.box-image-v01 .box_content_wrap .title,
.box-image-v01 .box_content_wrap .br-line {
  margin-bottom: 28px;
}
@media (min-width: 768px) {
  .box-image-v01 .box_image {
    margin-bottom: 0;
  }
  .box-image-v01 .box_content {
    position: absolute;
    left: 16px;
    top: 16px;
    bottom: 16px;
    right: 16px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    max-width: 509px;
  }
  .box-image-v01 .box_content_wrap {
    padding: 28px;
  }
}
@media (min-width: 1200px) {
  .box-image-v01 .box_content {
    left: 40px;
  }
}
@media (max-width: 991px) {
  .box-image-v01 .title {
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    display: -webkit-box;
    overflow: hidden;
  }
}

.card-case {
  display: grid;
  gap: 32px;
  padding: 20px 16px;
  border: 1px solid var(--line);
  border-radius: 16px;
}
.card-case .case_image {
  border-radius: 12px;
  overflow: hidden;
  aspect-ratio: 1.7767184876;
}
.card-case .case_image img {
  width: 100%;
  object-fit: cover;
}
.card-case .name {
  margin-bottom: 16px;
}
.card-case .case_meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px 24px;
}
.card-case .meta-item {
  display: flex;
  align-items: center;
  gap: 8px;
}
.card-case .meta-item .icon {
  font-size: 20px;
  color: var(--white);
}
@media (min-width: 1200px) {
  .card-case {
    padding: 31px;
  }
}

.card-team {
  padding: 20px 16px;
  background: rgba(0, 0, 0, 0.6392156863);
  border: 1px solid var(--line);
  backdrop-filter: blur(16px);
  border-radius: 16px;
}
.card-team .team_image {
  border-radius: 16px;
  overflow: hidden;
}
.card-team .content {
  position: relative;
}
.card-team .content::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 61.83%, #000000 100%);
  z-index: 1;
}
.card-team .team_info {
  position: absolute;
  bottom: 16px;
  left: 16px;
  right: 13px;
  z-index: 2;
}
.card-team .name {
  margin-bottom: 4px;
}
@media (min-width: 1200px) {
  .card-team {
    padding: 27px;
  }
}

.wg-build {
  text-align: center;
}
.wg-build .image {
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 16px;
  margin-bottom: 24px;
}
.wg-build .name {
  margin-bottom: 4px;
}

.image-border {
  padding: 8px;
  border-radius: 16px;
  border: 1px solid var(--line);
}
.image-border .image {
  border-radius: 3px;
  border: 1px solid var(--line);
  overflow: hidden;
}

.tab-btn_list {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 3px;
  border: 1px solid var(--line);
  border-radius: 12px;
}

.wg-map {
  border-radius: 16px;
  overflow: hidden;
  height: 522px;
}
.wg-map iframe {
  width: 100%;
  height: 100%;
}
@media (max-width: 1199px) {
  .wg-map {
    height: 350px;
  }
}

/* Blog Articles Section */
.grid-blog-articles {
  padding: 48px;
  padding-top: 0;
  gap: 12px;
  position: relative;
  display: flex;
}

.grid-blog-articles .wg-blog-article {
  width: 100%;
  flex: 1;
}

@media (max-width: 991px) {
  .grid-blog-articles {
    padding: 16px;
    padding-top: 0;
  }
}

@media (max-width: 767px) {
  .grid-blog-articles {
    flex-direction: column;
  }
}

.wg-blog-article {
  padding: 31px;
  border-radius: 16px;
  border: 1px solid var(--line);
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.wg-blog-article .content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}

.wg-blog-article .article-image {
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 24px;
  position: relative;
}

.wg-blog-article .article-image .article-image-link {
  display: block;
  width: 100%;
  height: 100%;
  text-decoration: none;
}

.wg-blog-article .article-image img {
  width: 100%;
  height: 250px;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.wg-blog-article:hover .article-image img {
  transform: scale(1.05);
}

.wg-blog-article .article-content {
  padding: 0;
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}

.wg-blog-article .article-title-link {
  text-decoration: none;
  color: inherit;
}

.wg-blog-article .article-title-link:hover .article-title {
  color: var(--primary);
}

.wg-blog-article .article-title {
  margin-bottom: 12px;
  font-size: 18px;
  line-height: 1.4;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  display: -webkit-box;
  overflow: hidden;
}

.wg-blog-article .article-date {
  color: var(--text-3);
  margin-bottom: 8px;
  margin-top: 0;
  font-size: 12px;
  font-family: "Mono";
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.wg-blog-article .article-description {
  color: var(--text-2);
  margin-bottom: 16px;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  display: -webkit-box;
  overflow: hidden;
  line-height: 1.6;
}

.wg-blog-article .article-content .tf-btn {
  margin-bottom: 0;
  margin-top: auto;
}

.wg-blog-article .tf-btn.style-3.style-high:hover {
  background: linear-gradient(0deg, var(--primary), var(--primary)), linear-gradient(180deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0) 100%);
  border-color: var(--primary);
  box-shadow: 0px 0px 6px 0px rgba(35, 101, 255, 0.6), 0px 2px 12px 1px rgba(35, 101, 255, 0.4), 0px 1px 24px 2px rgba(35, 101, 255, 0.3019607843), 0px 2px 36px 3px rgba(35, 101, 255, 0.3019607843), 0px 0px 40px 30px rgba(35, 101, 255, 0.2);
}

.wg-blog-article .article-keywords,
.blog-article .article-keywords,
.blog-article .article_content .article-keywords {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin-bottom: 16px !important;
  margin-top: 0 !important;
}

.wg-blog-article .keyword-tag,
.blog-article .keyword-tag,
.blog-article .article_content .keyword-tag {
  padding: 0px 12px !important;
  border-radius: 6px !important;
  background: rgba(255, 255, 255, 0.05) !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  color: var(--text-main) !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  transition: all 0.3s ease !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  white-space: nowrap !important;
  line-height: 1.5 !important;
}

.wg-blog-article .keyword-tag [data-lucide],
.wg-blog-article .article-keywords .keyword-tag i,
.blog-article .keyword-tag [data-lucide],
.blog-article .article-keywords .keyword-tag i,
.blog-article .article_content .keyword-tag [data-lucide],
.blog-article .article_content .article-keywords .keyword-tag i {
  width: 14px !important;
  height: 14px !important;
  flex-shrink: 0 !important;
  display: inline-block !important;
  color: var(--primary) !important;
  margin: 0 !important;
  padding: 0 !important;
}

.wg-blog-article .keyword-tag [data-lucide] svg,
.wg-blog-article .keyword-tag i svg,
.blog-article .keyword-tag [data-lucide] svg,
.blog-article .keyword-tag i svg,
.blog-article .article_content .keyword-tag [data-lucide] svg,
.blog-article .article_content .keyword-tag i svg,
.blog-article .article_content .article-keywords .keyword-tag [data-lucide] svg,
.blog-article .article_content .article-keywords .keyword-tag i svg {
  width: 14px !important;
  height: 14px !important;
  color: var(--primary) !important;
  stroke: var(--primary) !important;
  fill: none !important;
  stroke-width: 3 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}

/* Styles pour les keywords dans blog.php (classe .blog-article) */
.blog-article .article_content .article-keywords,
.blog-article .article-content .article-keywords,
.blog-article .article_keywords,
.blog-article .article-keywords {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin-bottom: 16px !important;
  margin-top: 0 !important;
}

.blog-article .article_content .keyword-tag,
.blog-article .article-content .keyword-tag,
.blog-article .article_keywords .keyword-tag,
.blog-article .article-keywords .keyword-tag,
.blog-article .keyword-tag {
  padding: 0px 12px !important;
  border-radius: 6px !important;
  background: rgba(255, 255, 255, 0.05) !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  color: var(--text-main) !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  transition: all 0.3s ease !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  white-space: nowrap !important;
  line-height: 1.5 !important;
}

.blog-article .article_content .keyword-tag [data-lucide],
.blog-article .article-content .keyword-tag [data-lucide],
.blog-article .article_keywords .keyword-tag [data-lucide],
.blog-article .article-keywords .keyword-tag [data-lucide],
.blog-article .keyword-tag [data-lucide],
.blog-article .article_content .article-keywords .keyword-tag i,
.blog-article .article-content .article-keywords .keyword-tag i,
.blog-article .article_keywords .keyword-tag i,
.blog-article .article-keywords .keyword-tag i,
.blog-article .keyword-tag i,
.blog-article .keyword-tag i[data-lucide] {
  width: 14px !important;
  height: 14px !important;
  flex-shrink: 0 !important;
  display: inline-block !important;
  color: var(--primary) !important;
  margin: 0 !important;
  padding: 0 !important;
}

.blog-article .article_content .keyword-tag [data-lucide] svg,
.blog-article .article-content .keyword-tag [data-lucide] svg,
.blog-article .article_keywords .keyword-tag [data-lucide] svg,
.blog-article .article-keywords .keyword-tag [data-lucide] svg,
.blog-article .keyword-tag [data-lucide] svg,
.blog-article .article_content .keyword-tag i svg,
.blog-article .article-content .keyword-tag i svg,
.blog-article .article_keywords .keyword-tag i svg,
.blog-article .article-keywords .keyword-tag i svg,
.blog-article .keyword-tag i svg,
.blog-article .keyword-tag i[data-lucide] svg {
  width: 14px !important;
  height: 14px !important;
  color: var(--primary) !important;
  stroke: var(--primary) !important;
  fill: none !important;
  stroke-width: 3 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}

.blog-article .article_content .keyword-tag:hover,
.blog-article .article-content .keyword-tag:hover,
.blog-article .article_keywords .keyword-tag:hover,
.blog-article .article-keywords .keyword-tag:hover,
.blog-article .keyword-tag:hover {
  background: rgba(255, 255, 255, 0.08) !important;
  border-color: rgba(255, 255, 255, 0.15) !important;
}

/* FORCER les styles pour les SVG générés par Lucide dans blog.php - TRÈS SPÉCIFIQUE */
.blog-article .article_content .article-keywords .keyword-tag svg,
.blog-article .article_content .keyword-tag svg,
.blog-article .article-keywords .keyword-tag svg,
.blog-article .keyword-tag svg,
.blog-article .article_content .article-keywords .keyword-tag svg[data-lucide],
.blog-article .article_content .keyword-tag svg[data-lucide],
.blog-article .article-keywords .keyword-tag svg[data-lucide],
.blog-article .keyword-tag svg[data-lucide],
.blog-article .article_content .article-keywords .keyword-tag svg.lucide,
.blog-article .article_content .keyword-tag svg.lucide,
.blog-article .article-keywords .keyword-tag svg.lucide,
.blog-article .keyword-tag svg.lucide {
  width: 14px !important;
  height: 14px !important;
  min-width: 14px !important;
  min-height: 14px !important;
  max-width: 14px !important;
  max-height: 14px !important;
  color: var(--primary) !important;
  stroke: var(--primary) !important;
  fill: none !important;
  stroke-width: 2.5 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  flex-shrink: 0 !important;
  display: inline-block !important;
  margin: 0 !important;
  padding: 0 !important;
  vertical-align: middle !important;
  box-sizing: border-box !important;
}

/* Cibler aussi les conteneurs SVG directement */
.blog-article .article_content .article-keywords .keyword-tag > svg,
.blog-article .article_content .keyword-tag > svg,
.blog-article .article-keywords .keyword-tag > svg,
.blog-article .keyword-tag > svg {
  width: 14px !important;
  height: 14px !important;
  min-width: 14px !important;
  min-height: 14px !important;
  max-width: 14px !important;
  max-height: 14px !important;
}

/* Forcer les styles même avec des attributs width/height inline */
.blog-article .article_content .article-keywords .keyword-tag svg[width],
.blog-article .article_content .keyword-tag svg[width],
.blog-article .article-keywords .keyword-tag svg[width],
.blog-article .keyword-tag svg[width] {
  width: 14px !important;
  height: 14px !important;
}

/* Icône dans les boutons Lire la suite */
.wg-blog-article .tf-btn [data-lucide],
.wg-blog-article .tf-btn i {
  width: 16px;
  height: 16px;
  display: inline-block;
  vertical-align: middle;
}

.wg-blog-article .tf-btn [data-lucide] svg,
.wg-blog-article .tf-btn i svg {
  width: 16px;
  height: 16px;
  stroke: currentColor !important;
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Footer logo block */
.footer-logo-block {
  display: flex;
  flex-direction: column;
  gap: 24px;
  max-width: 100%;
}

.footer-logo-block .footer-logo {
  display: inline-block;
  margin-bottom: 0;
  background: #000;
  line-height: 0;
}
.footer-logo-block .footer-logo img {
  display: block;
  max-width: 180px;
  width: 100%;
  height: auto;
  background: #000;
}
@media (min-width: 992px) {
  .footer-logo-block .footer-logo {
    margin-top: -10px;
  }
  .footer-logo-block .footer-logo img {
    max-width: 200px;
  }
}

.footer-logo-block .footer-description {
  line-height: 1.6;
  color: var(--text-2);
  max-width: 400px;
  text-align: justify;
  opacity: 0.7;
}

/* Footer grille 3 colonnes avec répartition 2:1:1 */
.footer-grid-3cols {
  grid-template-columns: 1fr;
}

@media (min-width: 992px) {
  .footer-grid-3cols {
    grid-template-columns: 2fr 1fr 1fr;
  }
}

@media (max-width: 991px) {
  .footer-logo-block {
    gap: 16px;
    margin-bottom: 32px;
  }
  
  .footer-logo-block .footer-description {
    max-width: 100%;
  }
  
  .footer-inner_link.tf-grid-layout {
    grid-template-columns: 1fr 1fr;
    gap: 40px 20px;
  }
}

@media (max-width: 767px) {
  .footer-inner_link.tf-grid-layout {
    grid-template-columns: 1fr;
    gap: 24px;
    padding-left: 16px;
    padding-right: 16px;
  }
  
  .footer-logo-block {
    gap: 16px;
    margin-bottom: 24px;
    max-width: 100%;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  
  .footer-logo-block .footer-description {
    font-size: 14px;
    line-height: 1.6;
  }
  
  .footer-col-block {
    gap: 16px;
    margin-bottom: 0;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  
  .footer-heading {
    font-size: 16px;
    margin-bottom: 4px;
    text-align: left;
  }
  
  .footer-menu-list {
    gap: 6px;
    text-align: left;
  }
  
  .footer-menu-list li {
    text-align: left;
  }
  
  .footer-menu-list li a,
  .footer-menu-list li .ubg-consent-footer-btn {
    font-size: 14px;
    text-align: left;
    font-family: "Mono", monospace;
    color: var(--white);
    text-transform: uppercase;
  }
  
  .footer-inner_bottom {
    flex-direction: column;
    gap: 16px;
    text-align: center;
  }
}

@media (max-width: 575px) {
  .footer-inner_link {
    padding-top: 40px;
    padding-bottom: 40px;
    padding-left: 20px;
    padding-right: 20px;
  }
  
  .footer-inner_link.tf-grid-layout {
    gap: 20px;
  }
  
  .footer-logo-block {
    margin-bottom: 20px;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  
  .footer-logo-block .footer-logo img {
    max-width: 140px;
  }
  
  .footer-logo-block .footer-description {
    font-size: 13px;
    line-height: 1.5;
  }
  
  .footer-col-block {
    margin-bottom: 0;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  
  .footer-heading {
    font-size: 15px;
    text-align: left;
  }
  
  .footer-menu-list {
    gap: 6px;
  }
  
  .footer-menu-list li a {
    font-size: 13px;
    font-family: "Mono";
    color: var(--white);
    text-transform: uppercase;
  }
  
  .footer-inner_bottom {
    padding-top: 10px;
    padding-bottom: 10px;
  }
  
  .footer-inner_bottom p,
  .footer-inner_bottom a {
    font-size: 11px;
  }
}

.wg-blog-article .keyword-tag:hover,
.blog-article .keyword-tag:hover,
.blog-article .article_content .keyword-tag:hover {
  background: rgba(255, 255, 255, 0.08) !important;
  border-color: rgba(255, 255, 255, 0.15) !important;
}

.wg-blog-article::before {
  content: "";
  position: absolute;
  top: 0;
  left: 32px;
  width: 24px;
  height: 2px;
  background-color: var(--text-2);
  box-shadow: 0px 0px 6px 0px rgba(255, 255, 255, 0.5019607843), 0px 2px 12px 1px rgba(255, 255, 255, 0.3019607843), 0px 1px 24px 2px rgba(255, 255, 255, 0.2), 0px 2px 36px 3px rgba(255, 255, 255, 0.2), 0px 0px 40px 30px rgba(255, 255, 255, 0.1019607843);
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

.wg-blog-article::after {
  content: "";
  position: absolute;
  inset: 0;
  background-position: top right;
  background-repeat: no-repeat;
  z-index: 0;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
  opacity: 0;
  visibility: hidden;
}

.wg-blog-article .item {
  position: absolute;
  bottom: 0;
  width: 100%;
  z-index: 0;
  filter: blur(50px);
  opacity: 0;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

.wg-blog-article:hover::after {
  opacity: 1;
  visibility: visible;
}

.wg-blog-article:hover::before {
  background-color: var(--bg-7);
  box-shadow: 0px 0px 6px 0px rgba(35, 101, 255, 0.6), 0px 2px 12px 1px rgba(35, 101, 255, 0.4), 0px 1px 24px 2px rgba(35, 101, 255, 0.3019607843), 0px 2px 36px 3px rgba(35, 101, 255, 0.3019607843), 0px 0px 40px 30px rgba(35, 101, 255, 0.2);
}

.wg-blog-article:hover .item {
  opacity: 0.82;
}


@media (max-width: 1024px) {
  .wg-blog-article {
    padding: 20px 16px;
  }
  
  .wg-blog-article .article-image img {
    height: 200px;
  }
}

@media (max-width: 767px) {
  .wg-blog-article .article-image img {
    height: 180px;
  }
  
  .wg-blog-article .article-title {
    font-size: 16px;
  }
}

/* Cas Clients Section */
.cas-clients-list {
  padding: 48px;
  padding-top: 0;
  gap: 12px;
  position: relative;
  display: flex;
  flex-direction: column;
}

.cas-clients-list .wg-blog-article {
  margin-bottom: 0;
  padding: 0 !important;
  overflow: hidden;
  border-radius: 16px;
}

.cas-clients-list .wg-blog-article .col-md-3 {
  border-radius: 0;
  overflow: visible;
}

.cas-clients-list .wg-blog-article .col-md-3 .article-image {
  border-radius: 16px 0 0 16px;
  overflow: hidden;
}

.cas-clients-list .wg-blog-article .col-md-3 .article-image img {
  border-radius: 16px 0 0 16px;
  object-position: center;
}

.cas-clients-list .wg-blog-article .col-md-9 {
  border-radius: 0 16px 16px 0;
  overflow: hidden;
}

.cas-clients-list .wg-blog-article .content {
  padding: 0 !important;
  width: 100%;
  height: 100%;
  margin: 0;
}

.cas-clients-list .row {
  height: 100%;
  min-height: 250px;
  align-items: stretch;
  margin: 0;
}

.cas-clients-list .wg-blog-article .row {
  width: 100%;
  height: 100%;
}

.cas-clients-list .col-md-3 {
  padding: 0 !important;
  margin: 0 !important;
  display: block;
  overflow: hidden;
  height: 100%;
  width: 25% !important;
  flex: 0 0 25% !important;
  max-width: 25% !important;
  position: relative;
}

.cas-clients-list .article-image {
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden;
  width: 100% !important;
  height: 100% !important;
  display: block;
  position: relative;
  min-height: 250px;
}

.cas-clients-list .article-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  transition: transform 0.3s ease;
  display: block;
  margin: 0 !important;
  padding: 0 !important;
  min-height: 250px;
  border: none !important;
  outline: none !important;
  vertical-align: top;
  object-position: center;
}

.cas-clients-list .wg-blog-article:hover .article-image img {
  transform: scale(1.05);
}

.cas-clients-list .col-md-9 {
  padding-left: 24px;
  padding-right: 0;
  display: flex;
  align-items: center;
  border-radius: 0 !important;
  flex: 0 0 75%;
  max-width: 75%;
}

.cas-clients-list .cas-client-content {
  padding-left: 24px;
}

.cas-clients-list .article-content {
  padding: 0;
}

.cas-client-section {
  margin-bottom: 16px;
}

.cas-client-label {
  color: var(--text-3);
  margin-bottom: 8px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  font-size: 11px;
}

.cas-client-text {
  color: var(--text-2);
  line-height: 1.6;
}

.cas-client-stack {
  margin-bottom: 20px;
}

.cas-client-stack .article-keywords {
  margin-top: 12px;
  gap: 8px;
}

@media (max-width: 991px) {
  .cas-clients-list {
    padding: 16px;
    padding-top: 0;
  }
  
  .cas-clients-list .col-md-3 {
    padding: 0;
    margin-bottom: 20px;
  }
  
  .cas-clients-list .col-md-9 {
    padding-left: 0;
    padding-right: 0;
  }
  
  .cas-clients-list .cas-client-content {
    padding-left: 0;
    padding-top: 0;
  }
  
  .cas-clients-list .article-image img {
    min-height: 180px;
  }
  
  .cas-clients-list .row {
    min-height: auto;
  }
}

/* STYLES FORCÉS POUR LES KEYWORDS DANS BLOG.PHP - PRIORITÉ ABSOLUE À LA FIN DU FICHIER */
.blog-article .article_content .article-keywords {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin-bottom: 16px !important;
  margin-top: 0 !important;
  width: 100% !important;
}

.blog-article .article_content .article-keywords .keyword-tag,
.blog-article .article_content .keyword-tag {
  padding: 6px 12px !important;
  border-radius: 6px !important;
  background: rgba(255, 255, 255, 0.05) !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  color: var(--text-main) !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  transition: all 0.3s ease !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  white-space: nowrap !important;
  line-height: 1.5 !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  height: auto !important;
  min-height: 24px !important;
}

.blog-article .article_content .article-keywords .keyword-tag:hover,
.blog-article .article_content .keyword-tag:hover {
  background: rgba(255, 255, 255, 0.08) !important;
  border-color: rgba(255, 255, 255, 0.15) !important;
}

.blog-article .article_content .article-keywords .keyword-tag svg,
.blog-article .article_content .keyword-tag svg,
.blog-article .article_content .article-keywords .keyword-tag > svg,
.blog-article .article_content .keyword-tag > svg {
  width: 14px !important;
  height: 14px !important;
  min-width: 14px !important;
  min-height: 14px !important;
  max-width: 14px !important;
  max-height: 14px !important;
  color: var(--primary) !important;
  stroke: var(--primary) !important;
  fill: none !important;
  stroke-width: 2.5 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  flex-shrink: 0 !important;
  display: inline-block !important;
  margin: 0 !important;
  padding: 0 !important;
  vertical-align: middle !important;
  box-sizing: border-box !important;
}

/* ========== Page Loader ========== */
body.has-page-loader {
  overflow: hidden;
}
body.has-page-loader #wrapper,
body.has-page-loader #goTop {
  visibility: hidden;
}
body.has-page-loader.page-loader-done {
  overflow: auto;
}

.page-loader {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #000;
  opacity: 1;
  visibility: visible;
  transition: opacity 0.4s ease, visibility 0.4s ease;
  contain: layout paint style;
}

/* Anneau léger (sans canvas / sans filtres lourds) */
@property --page-loader-angle {
  syntax: "<angle>";
  inherits: false;
  initial-value: 0deg;
}

.page-loader__border {
  position: absolute;
  inset: 1.25rem;
  border-radius: 0.875rem;
  padding: 1px;
  pointer-events: none;
  z-index: 3;
  background: conic-gradient(
    from var(--page-loader-angle, 0deg),
    transparent 0deg,
    transparent 210deg,
    rgba(255, 255, 255, 0.15) 280deg,
    rgba(255, 255, 255, 0.75) 340deg,
    #fff 355deg,
    transparent 360deg
  );
  box-shadow: 0 0 24px rgba(255, 255, 255, 0.12);
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  mask-composite: exclude;
  animation: page-loader-border-spin 2s linear infinite;
}

@keyframes page-loader-border-spin {
  to {
    --page-loader-angle: 360deg;
  }
}

@media (max-width: 767px) {
  .page-loader__border {
    inset: 0.875rem;
  }
}

.page-loader.is-done {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.page-loader.is-done .page-loader__border {
  animation: none;
  opacity: 0;
  transition: opacity 0.25s ease;
}

.page-loader__content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(200px, 40vw);
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.4s ease;
}

.page-loader.is-done .page-loader__content {
  transform: scale(1.35);
  opacity: 0;
}

.page-loader__logo {
  position: relative;
  width: 100%;
  line-height: 0;
}

.page-loader__logo img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 auto;
}

.page-loader__logo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90.9deg, #9F9DFB 0%, #709AF5 50%, #A5DCF3 100%);
  -webkit-mask: url("../images/logo/logo-ubg-dot.svg") no-repeat center / contain;
  mask: url("../images/logo/logo-ubg-dot.svg") no-repeat center / contain;
  pointer-events: none;
  animation: hue-rotate 5s infinite linear;
}

@media (prefers-reduced-motion: reduce) {
  .page-loader,
  .page-loader__content,
  .page-loader__border,
  .page-loader__logo::after {
    animation: none !important;
    transition-duration: 0.01ms !important;
  }
}

/* Cookie consent — layout type GetLayers, classes UBG */
.footer-bottom-links {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}
.footer-bottom-links .ubg-consent-reopen,
.footer-menu-list .ubg-consent-footer-btn,
.ubg-consent-inline {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  text-align: left;
  -webkit-appearance: none;
  appearance: none;
}
.footer-menu-list .ubg-consent-footer-btn {
  display: inline;
  font-family: "Mono", monospace;
  color: var(--white);
  font-size: 12px;
  line-height: 16px;
  text-transform: uppercase;
  font-weight: 400;
}
.legal-content ul {
  margin: 0 0 1.25em;
  padding-left: 1.25em;
}
.legal-content li {
  margin-bottom: 0.4em;
}
.legal-content a.link,
.legal-content a.ubg-mail {
  text-decoration: underline;
  text-underline-offset: 2px;
}
.legal-content .ubg-consent-inline {
  display: inline;
  font: inherit;
  font-weight: inherit;
  color: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  text-transform: none;
  text-decoration: underline;
  text-underline-offset: 2px;
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  vertical-align: baseline;
  box-shadow: none;
  border-radius: 0;
}
.legal-content .ubg-consent-inline:hover {
  color: inherit !important;
}
.ubg-mail__rev {
  unicode-bidi: bidi-override;
  direction: rtl;
  display: inline-block;
}
.ubg-mail__rev.is-decoded {
  unicode-bidi: normal;
  direction: ltr;
}
.ubg-consent-root[hidden] {
  display: none !important;
}
.ubg-consent-toast {
  position: fixed;
  z-index: 9999;
  bottom: 16px;
  left: 16px;
  right: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 20px;
  border-radius: 12px;
  background: #121212;
  color: #f5f4f7;
  font-family: "Outfit", sans-serif;
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.45s ease, transform 0.45s ease;
}
.ubg-consent-toast.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.ubg-consent-toast[hidden] {
  display: none !important;
}
.ubg-consent-toast__title {
  margin: 0;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.35;
  color: #f5f4f7;
}
.ubg-consent-toast__text {
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
  color: #a3a1ad;
}
.ubg-consent-toast__link {
  color: #f5f4f7;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.ubg-consent-toast__link:hover {
  color: #a3a1ad;
}
.ubg-consent-toast__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 4px;
}
.ubg-consent-btn {
  cursor: pointer;
  font-family: inherit;
  font-size: 14px;
  font-weight: 400;
  line-height: 1;
  border-radius: 999px;
  transition: opacity 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}
.ubg-consent-btn--solid {
  padding: 10px 16px;
  border: none;
  background: #bcc0ca;
  color: #060507;
}
.ubg-consent-btn--solid:hover {
  opacity: 0.9;
}
.ubg-consent-btn--ghost {
  padding: 10px 16px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.043);
  color: #f5f4f7;
}
.ubg-consent-btn--ghost:hover {
  background: rgba(255, 255, 255, 0.07);
}
.ubg-consent-btn--text {
  padding: 8px;
  border: none;
  background: transparent;
  color: #a3a1ad;
  text-decoration: underline;
  text-underline-offset: 2px;
  border-radius: 0;
}
.ubg-consent-btn--text:hover {
  color: #f5f4f7;
}
.ubg-consent-scrim {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background: rgba(6, 5, 7, 0.55);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  opacity: 0;
  transition: opacity 0.3s ease;
}
.ubg-consent-scrim.is-visible {
  opacity: 1;
}
.ubg-consent-scrim[hidden] {
  display: none !important;
}
.ubg-consent-sheet {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 20px;
  width: calc(100vw - 1.5rem);
  max-width: 34rem;
  max-height: calc(100vh - 2rem);
  overflow: hidden;
  padding: 24px;
  border-radius: 24px;
  background: #121212;
  color: #f5f4f7;
  font-family: "Outfit", sans-serif;
  transform: scale(0.96);
  transition: transform 0.3s ease;
}
.ubg-consent-scrim.is-visible .ubg-consent-sheet {
  transform: scale(1);
}
.ubg-consent-sheet__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.ubg-consent-sheet__title {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.25;
  color: #f5f4f7;
}
.ubg-consent-sheet__close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: transparent;
  color: #f5f4f7;
  cursor: pointer;
}
.ubg-consent-sheet__close:hover {
  background: rgba(255, 255, 255, 0.07);
}
.ubg-consent-sheet__intro {
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
  color: #a3a1ad;
}
.ubg-consent-sheet__list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 0;
  flex: 1;
  overflow-y: auto;
  padding: 4px 0;
}
.ubg-consent-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 16px;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.043);
}
.ubg-consent-row__copy {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.ubg-consent-row__title {
  margin: 0;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.35;
  color: #f5f4f7;
}
.ubg-consent-row__desc {
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
  color: #7d7b88;
}
.ubg-consent-switch {
  position: relative;
  width: 44px;
  height: 24px;
  flex-shrink: 0;
  border: none;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.12);
  cursor: pointer;
  padding: 0;
}
.ubg-consent-switch.is-on {
  background: #bcc0ca;
}
.ubg-consent-switch.is-locked {
  cursor: not-allowed;
  opacity: 0.55;
}
.ubg-consent-switch__knob {
  position: absolute;
  top: 3px;
  left: 3px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #060507;
  transition: transform 0.2s ease;
}
.ubg-consent-switch.is-on .ubg-consent-switch__knob {
  transform: translateX(20px);
}
.ubg-consent-sheet__foot {
  display: flex;
  flex-direction: column-reverse;
  gap: 8px;
  margin-top: 4px;
}
.ubg-consent-sheet__foot-right {
  display: flex;
  flex-direction: column-reverse;
  gap: 8px;
}
@media (min-width: 640px) {
  .ubg-consent-toast {
    right: auto;
    width: 400px;
    padding: 24px;
  }
  .ubg-consent-toast__title {
    font-size: 18px;
  }
  .ubg-consent-sheet {
    padding: 28px;
  }
  .ubg-consent-sheet__foot {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
  .ubg-consent-sheet__foot-right {
    flex-direction: row;
    align-items: center;
  }
}
@media (prefers-reduced-motion: reduce) {
  .ubg-consent-toast,
  .ubg-consent-scrim,
  .ubg-consent-sheet,
  .ubg-consent-switch__knob {
    transition: none;
  }
}

/* Espace client — sign-in (style GetLayers, classes UBG) */
.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.ubg-signin-root[hidden] {
  display: none !important;
}
.ubg-signin-scrim {
  position: fixed;
  inset: 0;
  z-index: 10020;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background: rgba(6, 5, 7, 0.55);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  opacity: 0;
  transition: opacity 0.3s ease;
}
.ubg-signin-root.is-open .ubg-signin-scrim {
  opacity: 1;
}
.ubg-signin-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  width: calc(100vw - 1.5rem);
  max-width: 26rem;
  max-height: calc(100vh - 2rem);
  overflow: auto;
  padding: 32px 24px 24px;
  border-radius: 24px;
  background: #121212;
  color: #f5f4f7;
  text-align: center;
  font-family: "Outfit", sans-serif;
  transform: scale(0.96);
  transition: transform 0.3s ease;
}
.ubg-signin-root.is-open .ubg-signin-card {
  transform: scale(1);
}
.ubg-signin-close {
  position: absolute;
  top: 16px;
  right: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  margin: 0;
  padding: 0;
  flex-shrink: 0;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: transparent;
  color: #f5f4f7;
  cursor: pointer;
  line-height: 0;
}
.ubg-signin-close:hover,
.ubg-signin-close:focus-visible {
  background: rgba(255, 255, 255, 0.07);
  outline: none;
}
.ubg-signin-brand {
  display: inline-flex;
  margin-bottom: 8px;
  line-height: 0;
}
.ubg-signin-brand img {
  width: 72px;
  height: 72px;
  display: block;
}
.ubg-signin-title {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.25;
  color: #f5f4f7;
}
.ubg-signin-sub {
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
  color: #a3a1ad;
}
.ubg-signin-form {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
  margin-top: 12px;
  text-align: left;
}
.ubg-signin-field {
  display: block;
  width: 100%;
  height: 42px;
  padding: 10px 14px;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.043);
  color: #f5f4f7;
  font-family: inherit;
  font-size: 14px;
  line-height: 1.4;
  outline: none;
  transition: border-color 0.2s ease, background-color 0.2s ease;
}
.ubg-signin-field::placeholder {
  color: #6a6873;
}
.ubg-signin-field:focus {
  border-color: rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.07);
}
.ubg-signin-pass {
  position: relative;
  width: 100%;
}
.ubg-signin-field--pass {
  padding-right: 42px;
}
.ubg-signin-eye {
  position: absolute;
  top: 50%;
  right: 10px;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #a3a1ad;
  cursor: pointer;
  line-height: 0;
}
.ubg-signin-eye:hover,
.ubg-signin-eye:focus-visible {
  color: #f5f4f7;
  background: rgba(255, 255, 255, 0.07);
  outline: none;
}
.ubg-signin-submit {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 42px;
  margin-top: 4px;
  padding: 10px 16px;
  border: none;
  border-radius: 999px;
  background: #bcc0ca;
  color: #060507;
  font-family: inherit;
  font-size: 14px;
  font-weight: 400;
  line-height: 1;
  cursor: pointer;
  transition: opacity 0.2s ease;
}
.ubg-signin-submit:hover {
  opacity: 0.9;
}
.ubg-signin-feedback {
  margin: 2px 0 0;
  font-size: 13px;
  line-height: 1.45;
  color: #f0b4b4;
  text-align: center;
}
.ubg-signin-field.is-invalid {
  border-color: rgba(232, 96, 96, 0.55);
}
.ubg-signin-legal {
  margin: 16px 0 0;
  font-size: 12px;
  line-height: 1.45;
  color: #6a6873;
}
@media (min-width: 640px) {
  .ubg-signin-card {
    padding: 36px 28px 28px;
  }
  .ubg-signin-brand img {
    width: 84px;
    height: 84px;
  }
  .ubg-signin-title {
    font-size: 22px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .ubg-signin-scrim,
  .ubg-signin-card {
    transition: none;
  }
}

/* ---------- Page Agence — équipe ---------- */
.section-agence-team .sect-main {
  padding-top: 40px;
  padding-bottom: 48px;
  overflow: visible;
  position: relative;
}
.section-agence-team .sect-title {
  margin-bottom: 36px;
  position: relative;
  z-index: 1;
}
.ubg-team {
  position: relative;
  z-index: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(0, 0, 0, 0.22);
}
.ubg-team__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.ubg-team__card {
  position: relative;
  display: flex;
  flex-direction: column;
  border-left: 1px solid rgba(255, 255, 255, 0.1);
  min-width: 0;
}
.ubg-team__card:first-child {
  border-left: none;
}
.ubg-team__figure {
  margin: 0;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.03);
  position: relative;
  isolation: isolate;
}
/* Particules locales sur la photo (sans z-index négatif qui cassait le hover) */
.ubg-team__figure::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 4;
  pointer-events: none;
  background-image: url("../images/section/star-sky.webp");
  background-repeat: repeat;
  background-size: 420px auto;
  opacity: 0.5;
  mix-blend-mode: screen;
}
.ubg-team__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  position: relative;
  z-index: 1;
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1), filter 0.25s ease;
  filter: saturate(1.02);
}
.ubg-team__glitch,
.ubg-team__scan {
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0;
  z-index: 2;
}
.ubg-team__glitch {
  background-image: var(--ubg-team-photo);
  background-size: cover;
  background-position: center top;
  will-change: transform, clip-path, opacity;
}
.ubg-team__glitch--r {
  filter: grayscale(1) contrast(1.35) brightness(1.2);
  mix-blend-mode: screen;
}
.ubg-team__glitch--b {
  filter: grayscale(1) contrast(1.5) brightness(0.85);
  mix-blend-mode: lighten;
}
.ubg-team__scan {
  z-index: 3;
  background: repeating-linear-gradient(
    0deg,
    rgba(255, 255, 255, 0.045) 0,
    rgba(255, 255, 255, 0.045) 1px,
    transparent 1px,
    transparent 3px
  );
  mix-blend-mode: overlay;
}
.ubg-team__figure:hover .ubg-team__img {
  transform: scale(1.03);
  animation: ubg-team-glitch-base 0.45s steps(2, end) infinite;
}
.ubg-team__figure:hover .ubg-team__glitch--r {
  opacity: 1;
  animation: ubg-team-glitch-r 0.45s steps(2, end) infinite;
}
.ubg-team__figure:hover .ubg-team__glitch--b {
  opacity: 1;
  animation: ubg-team-glitch-b 0.45s steps(2, end) infinite;
}
.ubg-team__figure:hover .ubg-team__scan {
  opacity: 0.7;
  animation: ubg-team-scan 0.55s linear infinite;
}
@keyframes ubg-team-glitch-base {
  0%,
  100% {
    transform: scale(1.03) translate(0, 0);
    filter: grayscale(0.15) contrast(1.05);
  }
  25% {
    transform: scale(1.03) translate(-3px, 1px);
    filter: grayscale(0.45) contrast(1.25) brightness(1.05);
  }
  50% {
    transform: scale(1.03) translate(3px, -1px);
    filter: grayscale(0.25) contrast(1.15) brightness(1.1);
  }
  75% {
    transform: scale(1.03) translate(-1px, 2px);
    filter: grayscale(0.55) contrast(1.3) brightness(0.95);
  }
}
@keyframes ubg-team-glitch-r {
  0% {
    transform: translate(5px, -2px);
    clip-path: inset(8% -8px 60% 0);
  }
  25% {
    transform: translate(-8px, 3px);
    clip-path: inset(35% 0 20% -8px);
  }
  50% {
    transform: translate(6px, 1px);
    clip-path: inset(55% -6px 10% 0);
  }
  75% {
    transform: translate(-4px, -3px);
    clip-path: inset(15% 0 45% -6px);
  }
  100% {
    transform: translate(5px, -2px);
    clip-path: inset(70% -8px 5% 0);
  }
}
@keyframes ubg-team-glitch-b {
  0% {
    transform: translate(-6px, 2px);
    clip-path: inset(20% 0 50% -8px);
  }
  25% {
    transform: translate(8px, -2px);
    clip-path: inset(48% -8px 15% 0);
  }
  50% {
    transform: translate(-5px, 3px);
    clip-path: inset(5% 0 65% -6px);
  }
  75% {
    transform: translate(7px, 1px);
    clip-path: inset(62% -6px 8% 0);
  }
  100% {
    transform: translate(-6px, 2px);
    clip-path: inset(30% 0 40% -8px);
  }
}
@keyframes ubg-team-scan {
  0% {
    transform: translateY(-120%);
  }
  100% {
    transform: translateY(120%);
  }
}
.ubg-team__info {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 20px 18px 24px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  flex: 1 1 auto;
}
.ubg-team__role {
  margin: 0;
  color: rgba(255, 255, 255, 0.42);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.ubg-team__name {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: #f4f7f5;
}
.ubg-team__desc {
  margin: 0;
  color: rgba(255, 255, 255, 0.55);
  line-height: 1.5;
}
@media (prefers-reduced-motion: reduce) {
  .ubg-team__figure:hover .ubg-team__img,
  .ubg-team__figure:hover .ubg-team__glitch--r,
  .ubg-team__figure:hover .ubg-team__glitch--b,
  .ubg-team__figure:hover .ubg-team__scan {
    animation: none;
  }
  .ubg-team__figure:hover .ubg-team__glitch,
  .ubg-team__figure:hover .ubg-team__scan {
    opacity: 0;
  }
  .ubg-team__figure:hover .ubg-team__img {
    transform: scale(1.02);
  }
}
@media (max-width: 991px) {
  .ubg-team__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ubg-team__card:nth-child(2n + 1) {
    border-left: none;
  }
  .ubg-team__card:nth-child(n + 3) {
    border-top: 1px solid rgba(255, 255, 255, 0.1);
  }
}
@media (max-width: 575px) {
  .ubg-team__grid {
    grid-template-columns: 1fr;
  }
  .ubg-team__card {
    border-left: none;
  }
  .ubg-team__card + .ubg-team__card {
    border-top: 1px solid rgba(255, 255, 255, 0.1);
  }
  .section-agence-team .sect-main {
    padding-top: 28px;
    padding-bottom: 32px;
  }
}

/* ---------- Page Agence — frise horizontale (GSAP pin/scrub) ---------- */
/* ===== Agence pitch (intro above timeline) ===== */
.section-agence-pitch .sect-main {
  padding-top: 40px;
  padding-bottom: 40px;
}
.section-agence-pitch .sect-title {
  margin-bottom: 28px;
}
.ubg-pitch__frame {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(0, 0, 0, 0.28);
  backdrop-filter: blur(18px);
  padding: 12px 12px 40px 0;
}
.ubg-pitch__layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(220px, 0.65fr);
  gap: 36px;
  align-items: stretch;
}
.ubg-pitch__copy {
  min-width: 0;
  padding-left: 48px;
}
.ubg-pitch__block {
  margin: 0 0 1.45em;
}
.ubg-pitch__block:last-of-type {
  margin-bottom: 0;
}
.ubg-pitch__heading {
  margin: 0 0 8px;
  color: #fff;
  font-size: 13px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.ubg-pitch__text {
  margin: 0;
  max-width: none;
  font-size: 15px;
  line-height: 1.7;
  letter-spacing: -0.01em;
  color: rgba(244, 247, 245, 0.9);
}
.ubg-pitch__text strong {
  color: #f4f7f5;
  font-weight: 700;
}
.ubg-pitch__stat {
  color: #f4f7f5;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.ubg-pitch__media {
  margin: 0;
  height: 100%;
  min-height: 280px;
  display: flex;
  flex-direction: column;
}
.ubg-pitch__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
  border-radius: 18px;
  max-width: none;
  flex: 1 1 auto;
}
.ubg-pitch__credit {
  margin: 8px 0 0;
  padding: 0;
  font-size: 12px;
  line-height: 1.3;
  color: rgba(255, 255, 255, 0.42);
  text-align: left;
}
.ubg-pitch__values {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px 16px;
  margin: 28px 0 0;
  padding: 24px 0 0;
  list-style: none;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}
.ubg-pitch__value {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  text-align: center;
  margin: 0;
  padding: 0;
}
.ubg-pitch__value i,
.ubg-pitch__value svg {
  width: 32px;
  height: 32px;
  stroke: #f4f7f5;
  stroke-width: 1.4;
  color: #f4f7f5;
}
.ubg-pitch__value span {
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  font-style: italic;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #fff;
  line-height: 1.2;
}
@media (max-width: 991px) {
  .ubg-pitch__layout {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .ubg-pitch__media {
    min-height: 0;
    max-height: 360px;
    padding-left: 48px;
  }
  .ubg-pitch__media img {
    height: 320px;
  }
  .ubg-pitch__values {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    row-gap: 20px;
  }
}
@media (max-width: 767px) {
  .section-agence-pitch .sect-main {
    padding-top: 28px;
    padding-bottom: 28px;
  }
  .ubg-pitch__frame {
    padding: 8px 12px 28px 0;
  }
  .ubg-pitch__copy {
    padding-left: 48px;
  }
  .ubg-pitch__media {
    display: none;
  }
}

.section-agence-timeline .sect-main {
  padding-top: 40px;
  padding-bottom: 48px;
  position: relative;
  overflow: visible;
}
.section-agence-timeline .sect-title {
  margin-bottom: 36px;
}
.ubg-timeline {
  position: relative;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(0, 0, 0, 0.22);
  /* pas d'overflow:hidden ici : ça casse le pin ScrollTrigger */
}
.ubg-timeline__pin {
  min-height: min(70vh, 620px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 40px;
  padding: 48px 0 36px;
}
.ubg-timeline__viewport {
  overflow: hidden;
  width: 100%;
}
.ubg-timeline__track {
  display: flex;
  align-items: stretch;
  gap: clamp(28px, 4vw, 56px);
  will-change: transform;
  padding: 0 36px;
  width: max-content;
}
.ubg-timeline__panel {
  flex: 0 0 min(560px, 78vw);
  max-width: min(560px, 78vw);
  min-height: 220px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  opacity: 0.28;
  transition: opacity 0.35s ease;
}
.ubg-timeline__panel.is-active {
  opacity: 1;
}
.ubg-timeline__panel--lead .ubg-timeline__text {
  color: rgba(255, 255, 255, 0.78);
  font-size: 1.12em;
  max-width: 36ch;
}
.ubg-timeline__index {
  margin: 0 0 12px;
  color: rgba(255, 255, 255, 0.38);
  letter-spacing: 0.06em;
}
.ubg-timeline__title {
  margin: 0 0 14px;
  font-size: clamp(22px, 2.4vw, 30px);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: #f4f7f5;
}
.ubg-timeline__text {
  margin: 0;
  color: rgba(255, 255, 255, 0.58);
  line-height: 1.55;
  max-width: 42ch;
}
.ubg-timeline__rail {
  padding: 0 36px;
}
.ubg-timeline__rail-track {
  position: relative;
  height: 1px;
  background: rgba(255, 255, 255, 0.12);
  margin-bottom: 18px;
  overflow: hidden;
}
.ubg-timeline__rail-fill {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(56, 182, 212, 0.85), rgba(255, 255, 255, 0.55));
  transform: scaleX(0);
  transform-origin: left center;
  will-change: transform;
}
.ubg-timeline__markers {
  display: flex;
  justify-content: space-between;
  gap: 8px;
}
.ubg-timeline__marker {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  flex: 1 1 0;
  min-width: 0;
  opacity: 0.35;
  transition: opacity 0.3s ease;
}
.ubg-timeline__marker.is-active {
  opacity: 1;
}
.ubg-timeline__marker-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.35);
  background: #0a0a0a;
  box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.45);
  transition: border-color 0.3s ease, background 0.3s ease, box-shadow 0.3s ease;
}
.ubg-timeline__marker.is-active .ubg-timeline__marker-dot {
  border-color: rgba(56, 182, 212, 0.9);
  background: rgba(56, 182, 212, 0.35);
  box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.45), 0 0 12px rgba(56, 182, 212, 0.35);
}
.ubg-timeline__marker-label {
  color: rgba(255, 255, 255, 0.55);
  letter-spacing: 0.04em;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}
.ubg-timeline__marker.is-active .ubg-timeline__marker-label {
  color: rgba(255, 255, 255, 0.9);
}
/* Fallback reduced-motion / no GSAP : scroll horizontal natif */
.ubg-timeline.is-static .ubg-timeline__viewport {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.ubg-timeline.is-static .ubg-timeline__track {
  transform: none !important;
}
.ubg-timeline.is-static .ubg-timeline__panel {
  opacity: 1;
}
@media (max-width: 767px) {
  .ubg-timeline__pin {
    min-height: min(64vh, 520px);
    gap: 28px;
    padding: 32px 0 24px;
  }
  .ubg-timeline__track,
  .ubg-timeline__rail {
    padding-left: 18px;
    padding-right: 18px;
  }
  .ubg-timeline__panel {
    flex-basis: min(300px, 84vw);
    max-width: min(300px, 84vw);
    min-height: 200px;
  }
  .ubg-timeline__marker-label {
    font-size: 10px;
  }
  .section-agence-timeline .sect-main {
    padding-top: 28px;
    padding-bottom: 32px;
  }
}

/* ---------- Bento Web / SaaS (page expertise) ---------- */
.section-bento-web {
  position: relative;
  overflow-x: hidden;
}
.section-bento-web__intro {
  position: relative;
  overflow: visible;
  z-index: 0;
  padding-bottom: 40px;
}
.section-bento-web__intro .sect-title {
  margin-bottom: 0;
}
.section-bento-web__intro .s-img_item {
  z-index: -1;
  position: absolute;
  inset: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  pointer-events: none;
  overflow: visible;
}
.section-bento-web__intro .s-img_item img {
  filter: blur(200px);
  opacity: 0.82;
  width: min(720px, 115vw);
  height: 100%;
  min-height: 420px;
  max-width: none;
  object-fit: cover;
  object-position: center 40%;
}
.section-bento-web__intro .sect-tagline {
  position: relative;
  overflow: visible;
}
.section-bento-web__intro > .container {
  position: relative;
  z-index: 1;
}
.section-bento-web .sect-main {
  position: relative;
  overflow-x: hidden;
  padding-bottom: 0;
}
.section-bento-web .sect-main .container {
  position: relative;
  z-index: 1;
}
.section-bento-web .ubg-bento {
  margin-left: 20px;
  width: calc(100% - 20px);
}
.ubg-bento {
  --ubg-bento-line: rgba(255, 255, 255, 0.08);
  --ubg-bento-line-v: linear-gradient(
    180deg,
    transparent 0%,
    rgba(255, 255, 255, 0.08) 14%,
    rgba(255, 255, 255, 0.08) 86%,
    transparent 100%
  );
  --ubg-bento-line-h: linear-gradient(
    90deg,
    transparent 0%,
    rgba(255, 255, 255, 0.08) 10%,
    rgba(255, 255, 255, 0.08) 90%,
    transparent 100%
  );
  --ubg-bento-card: transparent;
  --ubg-bento-card-2: rgba(255, 255, 255, 0.03);
  --ubg-bento-text: #f5f4f7;
  --ubg-bento-muted: #a3a1ad;
  --ubg-bento-faint: #6a6873;
  --ubg-bento-blue: #5997FF;
  --ubg-bento-blue-deep: #004E6F;
  --ubg-bento-green: #3FC53A;
  --ubg-bento-amber: #F1913D;
  --ubg-bento-violet: #8b7cf6;
  width: 100%;
  max-width: none;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 0;
  background: transparent;
  position: relative;
  border: none;
  border-radius: 24px;
  overflow: hidden;
  font-family: "Outfit", sans-serif;
  color: var(--ubg-bento-text);
}
.ubg-bento__cell,
.ubg-bento__stack {
  position: relative;
}
.ubg-bento__cell::before,
.ubg-bento__stack::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    var(--ubg-bento-line-h),
    var(--ubg-bento-line-h),
    var(--ubg-bento-line-v),
    var(--ubg-bento-line-v);
  background-repeat: no-repeat;
  background-size:
    88% 1px,
    88% 1px,
    1px 84%,
    1px 84%;
  background-position:
    center top,
    center bottom,
    left center,
    right center;
  pointer-events: none;
  z-index: 2;
}
.ubg-bento__cell {
  background-color: var(--ubg-bento-card);
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding: 28px;
  min-height: 400px;
  overflow: hidden;
}
.ubg-bento__visual {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  min-height: 0;
  order: 1;
}
.ubg-bento__head {
  order: 0;
  margin: 0 0 20px;
}
.ubg-bento__label {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 6px;
  font-size: 17px;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--ubg-bento-text);
  font-family: "Outfit", sans-serif;
}
.ubg-bento__desc {
  margin: 0;
  font-size: 13px;
  line-height: 1.45;
  color: var(--ubg-bento-muted);
  font-weight: 400;
  font-family: "Outfit", sans-serif;
  max-width: 36em;
}
.ubg-bento__arrow {
  transition: transform 0.25s ease;
  color: var(--ubg-bento-muted);
}
.ubg-bento__cell:hover .ubg-bento__arrow {
  transform: translateX(5px);
  color: var(--ubg-bento-text);
}
.ubg-bento__cell--span-2 {
  grid-column: span 2;
}
.ubg-bento__cell--span-4 {
  grid-column: span 4;
}
.ubg-bento__cell--span-6 {
  grid-column: span 6;
}
.ubg-bento__stack {
  grid-column: span 2;
  display: grid;
  grid-template-rows: 1fr auto;
  align-content: stretch;
  align-self: stretch;
  height: auto;
  gap: 0;
  background-color: var(--ubg-bento-card);
  padding: 0;
  min-height: 0;
}
.ubg-bento__stack--wide {
  grid-column: span 4;
  grid-template-rows: 1fr auto;
  align-content: stretch;
  align-self: stretch;
  height: auto;
}
.ubg-bento__stack .ubg-bento__cell::before {
  background-size:
    84% 1px,
    84% 1px,
    1px 80%,
    1px 80%;
}
.ubg-bento__stack .ubg-bento__cell {
  min-height: 0;
  height: auto;
  padding: 18px 22px;
}
.ubg-bento__stack .ubg-bento__head {
  margin: 0 0 12px;
}
.ubg-bento__stack .ubg-bento__visual {
  flex: 1 1 auto;
  justify-content: center;
  min-height: 0;
}
.ubg-bento__stack--wide .ubg-bento__cell {
  min-height: 0;
}
.ubg-bento__stack--wide .ubg-bento__cell:not(.ubg-bento__cell--cta) {
  min-height: 0;
  height: auto;
  padding: 18px 22px 16px;
}
.ubg-bento__stack--wide .ubg-bento__cell:not(.ubg-bento__cell--cta) .ubg-bento__visual {
  flex: 0 0 auto;
}
.ubg-bento__stack--wide .ubg-bento__cell--cta {
  min-height: 0;
  height: auto;
  padding: 28px 32px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.ubg-bento__stack--wide .ubg-bento__cell--cta .ubg-bento__visual {
  flex: 0 0 auto;
  justify-content: center;
  min-height: 0;
}
.ubg-bento__stack .ubg-bento__cell--waf .ubg-bento__visual {
  flex: 0 0 auto;
  justify-content: flex-start;
}
.ubg-bento__cell--cta::after {
  content: "";
  position: absolute;
  inset: -28px;
  background: url("../images/section/color-bg-2.webp") center / cover no-repeat;
  filter: blur(24px);
  opacity: 0.9;
  pointer-events: none;
  z-index: 0;
}
.ubg-bento__cell--cta .ubg-bento__visual {
  position: relative;
  z-index: 1;
  flex: 0 0 auto;
  justify-content: center;
}

/* Retire les bordures externes gauche/droite du bloc bento */
.ubg-bento > :nth-child(1)::before,
.ubg-bento > :nth-child(3)::before {
  background-image:
    var(--ubg-bento-line-h),
    var(--ubg-bento-line-h),
    var(--ubg-bento-line-v);
  background-size:
    88% 1px,
    88% 1px,
    1px 84%;
  background-position:
    center top,
    center bottom,
    right center;
}
.ubg-bento > :nth-child(2)::before,
.ubg-bento > :nth-child(5)::before {
  background-image:
    var(--ubg-bento-line-h),
    var(--ubg-bento-line-h),
    var(--ubg-bento-line-v);
  background-size:
    88% 1px,
    88% 1px,
    1px 84%;
  background-position:
    center top,
    center bottom,
    left center;
}
/* Rangée du bas : pas de bordure basse externe */
.ubg-bento > :nth-child(6)::before {
  background-image:
    var(--ubg-bento-line-h),
    var(--ubg-bento-line-v);
  background-size:
    88% 1px,
    1px 84%;
  background-position:
    center top,
    right center;
}
.ubg-bento > :nth-child(7)::before {
  background-image:
    var(--ubg-bento-line-h),
    var(--ubg-bento-line-v);
  background-size:
    88% 1px,
    1px 84%;
  background-position:
    center top,
    left center;
}
.ubg-bento > :nth-child(3) .ubg-bento__cell::before {
  background-image:
    var(--ubg-bento-line-h),
    var(--ubg-bento-line-h),
    var(--ubg-bento-line-v);
  background-size:
    84% 1px,
    84% 1px,
    1px 80%;
  background-position:
    center top,
    center bottom,
    right center;
}
.ubg-bento > :nth-child(5) .ubg-bento__cell::before {
  background-image:
    var(--ubg-bento-line-h),
    var(--ubg-bento-line-h),
    var(--ubg-bento-line-v);
  background-size:
    84% 1px,
    84% 1px,
    1px 80%;
  background-position:
    center top,
    center bottom,
    left center;
}
.ubg-bento > :nth-child(6) .ubg-bento__cell::before {
  background-image:
    var(--ubg-bento-line-h),
    var(--ubg-bento-line-h),
    var(--ubg-bento-line-v);
  background-size:
    84% 1px,
    84% 1px,
    1px 80%;
  background-position:
    center top,
    center bottom,
    right center;
}
.ubg-bento > :nth-child(7) .ubg-bento__cell::before {
  background-image:
    var(--ubg-bento-line-h),
    var(--ubg-bento-line-h),
    var(--ubg-bento-line-v);
  background-size:
    84% 1px,
    84% 1px,
    1px 80%;
  background-position:
    center top,
    center bottom,
    left center;
}
.ubg-bento > :nth-child(6) .ubg-bento__cell:last-child::before {
  background-image:
    var(--ubg-bento-line-h),
    var(--ubg-bento-line-v);
  background-size:
    84% 1px,
    1px 80%;
  background-position:
    center top,
    right center;
}
.ubg-bento > :nth-child(7) .ubg-bento__cell:last-child::before {
  background-image:
    var(--ubg-bento-line-h),
    var(--ubg-bento-line-v);
  background-size:
    84% 1px,
    1px 80%;
  background-position:
    center top,
    left center;
}

/* SaaS mock */
.ubg-bento-saas {
  background: var(--ubg-bento-card-2);
  border: 1px solid var(--ubg-bento-line);
  border-radius: 14px 14px 0 0;
  border-bottom: none;
  margin: 0 -4px -8px;
  overflow: hidden;
  flex: 1;
  display: flex;
  min-height: 0;
}
.ubg-bento-saas__side {
  width: 180px;
  flex-shrink: 0;
  border-right: 1px solid var(--ubg-bento-line);
  padding: 14px 10px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.ubg-bento-saas__nav {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 12.5px;
  color: var(--ubg-bento-muted);
  padding: 8px 11px;
  border-radius: 8px;
}
.ubg-bento-saas__nav.is-on {
  background: rgba(255, 255, 255, 0.07);
  color: var(--ubg-bento-text);
}
.ubg-bento-saas__ico {
  width: 16px;
  text-align: center;
  color: var(--ubg-bento-faint);
  font-size: 11px;
}
.ubg-bento-saas__nav.is-on .ubg-bento-saas__ico {
  color: var(--ubg-bento-blue);
}
.ubg-bento-saas__cnt {
  margin-left: auto;
  font-size: 10.5px;
  color: var(--ubg-bento-faint);
  font-variant-numeric: tabular-nums;
}
.ubg-bento-saas__main {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.ubg-bento-saas__top {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--ubg-bento-line);
}
.ubg-bento-saas__tt {
  font-size: 13px;
  font-weight: 600;
}
.ubg-bento-saas__spacer {
  flex: 1;
}
.ubg-bento-saas__tool {
  color: var(--ubg-bento-faint);
  font-size: 14px;
  padding: 0 4px;
}
.ubg-bento-saas__new {
  font-size: 11px;
  color: #fff;
  background: var(--ubg-bento-blue-deep);
  border-radius: 7px;
  padding: 5px 10px;
}
.ubg-bento-saas__th {
  display: flex;
  gap: 12px;
  padding: 9px 16px;
  border-bottom: 1px solid var(--ubg-bento-line);
  font-size: 11px;
  color: var(--ubg-bento-faint);
}
.ubg-bento-saas__tr {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 11px 16px;
  border-bottom: 1px solid var(--ubg-bento-line);
  font-size: 12.5px;
}
.ubg-bento-saas__tr:last-child {
  border-bottom: none;
}
.ubg-bento-saas__tr.is-dim {
  opacity: 0.45;
}
.ubg-bento-saas__drag {
  color: rgba(255, 255, 255, 0.18);
  font-size: 11px;
  letter-spacing: -1px;
}
.ubg-bento-saas__cbx {
  width: 13px;
  height: 13px;
  border-radius: 4px;
  border: 1.5px solid rgba(255, 255, 255, 0.18);
  flex-shrink: 0;
}
.ubg-bento-saas__client {
  flex: 1;
  color: var(--ubg-bento-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}
.ubg-bento-saas__amount {
  width: 80px;
  text-align: right;
  color: var(--ubg-bento-muted);
  font-variant-numeric: tabular-nums;
  flex-shrink: 0;
}
.ubg-bento-saas__status {
  width: 90px;
  flex-shrink: 0;
  text-align: right;
}
.ubg-bento-pill {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.05em;
  padding: 3px 8px;
  border-radius: 5px;
  white-space: nowrap;
}
.ubg-bento-pill--ok {
  color: var(--ubg-bento-green);
  border: 1px solid rgba(63, 197, 58, 0.35);
}
.ubg-bento-pill--mid {
  color: var(--ubg-bento-amber);
  border: 1px solid rgba(241, 145, 61, 0.35);
}
.ubg-bento-pill--info {
  color: var(--ubg-bento-blue);
  border: 1px solid rgba(89, 151, 255, 0.35);
}

/* Architecture */
.ubg-bento-arch__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}
.ubg-bento-arch__head h3 {
  margin: 0;
  font-size: 15px;
  font-weight: 600;
  color: var(--ubg-bento-text);
}
.ubg-bento-badge {
  font-family: "Mono", monospace;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: var(--ubg-bento-green);
  border: 1px solid rgba(63, 197, 58, 0.35);
  padding: 3px 9px;
  border-radius: 6px;
}
.ubg-bento-arch {
  width: 100%;
  max-width: 320px;
  margin: 0 auto;
  display: block;
}
.ubg-bento-arch text {
  font-family: "Outfit", sans-serif;
}
.ubg-bento-arch__user {
  animation: ubg-bento-arch-user 2.4s ease-in-out infinite;
}
.ubg-bento-arch__user:nth-child(2) {
  animation-delay: 0.35s;
}
.ubg-bento-arch__user:nth-child(3) {
  animation-delay: 0.7s;
}
.ubg-bento-arch__lb rect {
  animation: ubg-bento-arch-lb 2.8s ease-in-out infinite;
}
.ubg-bento-arch__flow {
  stroke-dasharray: 5 7;
  animation: ubg-bento-arch-flow 1.4s linear infinite;
}
.ubg-bento-arch__flow--a { animation-delay: 0.05s; }
.ubg-bento-arch__flow--b { animation-delay: 0.15s; }
.ubg-bento-arch__flow--c { animation-delay: 0.3s; }
.ubg-bento-arch__flow--d { animation-delay: 0.4s; }
.ubg-bento-arch__flow--e { animation-delay: 0.5s; }
.ubg-bento-arch__flow--f { animation-delay: 0.55s; }
.ubg-bento-arch__dot {
  animation: ubg-bento-arch-dot 1.6s ease-in-out infinite;
}
.ubg-bento-arch__node--2 .ubg-bento-arch__dot {
  animation-delay: 0.25s;
}
.ubg-bento-arch__node--3 {
  animation: ubg-bento-arch-scale-in 4.8s ease-in-out infinite;
  transform-origin: 260px 174px;
}
.ubg-bento-arch__dot--scale {
  transform-box: fill-box;
  transform-origin: center;
  animation: ubg-bento-arch-dot-blue 1.6s ease-in-out infinite;
}
.ubg-bento-arch__scale-label {
  animation: ubg-bento-arch-scale-label 4.8s ease-in-out infinite;
}
.ubg-bento-arch__db rect,
.ubg-bento-arch__cache rect {
  animation: ubg-bento-arch-db 3.2s ease-in-out infinite;
}
.ubg-bento-arch__cache rect {
  animation-delay: 0.4s;
}

@keyframes ubg-bento-arch-user {
  0%, 100% { opacity: 0.45; }
  50% { opacity: 1; stroke: rgba(89, 151, 255, 0.7); }
}
@keyframes ubg-bento-arch-lb {
  0%, 100% { stroke: rgba(89, 151, 255, 0.35); }
  50% { stroke: rgba(89, 151, 255, 0.85); }
}
@keyframes ubg-bento-arch-flow {
  to { stroke-dashoffset: -24; }
}
@keyframes ubg-bento-arch-dot {
  0%, 100% { opacity: 0.55; }
  50% { opacity: 1; }
}
@keyframes ubg-bento-arch-dot-blue {
  0%, 100% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.25); }
}
@keyframes ubg-bento-arch-scale-in {
  0%, 18% { opacity: 0.28; }
  30%, 68% { opacity: 1; }
  82%, 100% { opacity: 0.28; }
}
@keyframes ubg-bento-arch-scale-label {
  0%, 18% { opacity: 0.25; }
  30%, 68% { opacity: 1; }
  82%, 100% { opacity: 0.25; }
}
@keyframes ubg-bento-arch-db {
  0%, 100% { stroke: rgba(255, 255, 255, 0.1); }
  50% { stroke: rgba(89, 151, 255, 0.35); }
}
@media (prefers-reduced-motion: reduce) {
  .ubg-bento-arch__user,
  .ubg-bento-arch__lb rect,
  .ubg-bento-arch__flow,
  .ubg-bento-arch__dot,
  .ubg-bento-arch__node--3,
  .ubg-bento-arch__scale-label,
  .ubg-bento-arch__db rect,
  .ubg-bento-arch__cache rect {
    animation: none !important;
  }
}

/* Stat */
.ubg-bento__cell--stat {
  background: transparent;
}
.ubg-bento__bg {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  z-index: 0;
  overflow: hidden;
}
.ubg-bento__bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to right,
    rgba(0, 0, 0, 0.35) 0%,
    transparent 52%
  );
  z-index: 1;
  pointer-events: none;
}
.ubg-bento__bg img {
  width: 160%;
  max-width: none;
  height: auto;
  filter: blur(80px);
  opacity: 0.82;
}
.ubg-bento__cell--stat .ubg-bento__visual,
.ubg-bento__cell--stat .ubg-bento__head {
  position: relative;
  z-index: 1;
}
.ubg-bento__bignum {
  font-family: "Grotesk", sans-serif;
  font-size: clamp(52px, 5.4vw, 72px);
  font-weight: 700;
  letter-spacing: -0.03em;
  text-align: center;
  line-height: 1.05;
  color: var(--ubg-bento-text);
  width: 100%;
  margin: auto 0;
}
.ubg-bento__bignum small {
  display: block;
  font-family: "Outfit", sans-serif;
  font-size: 0.4em;
  color: #ffffff;
  font-weight: 300;
  margin-top: 6px;
  letter-spacing: 0;
}

/* Editor */
.ubg-bento-editor {
  background: var(--black);
  border: 1px solid var(--ubg-bento-line);
  border-radius: 12px;
  overflow: hidden;
  font-family: "Mono", ui-monospace, Menlo, monospace;
  font-size: 11.5px;
}
.ubg-bento-editor__tabs {
  display: flex;
  border-bottom: 1px solid var(--ubg-bento-line);
  background: rgba(255, 255, 255, 0.03);
}
.ubg-bento-editor__tab {
  padding: 8px 14px;
  color: var(--ubg-bento-faint);
  font-size: 11px;
  border-right: 1px solid var(--ubg-bento-line);
}
.ubg-bento-editor__tab.is-on {
  color: #ddd;
  background: var(--black);
}
.ubg-bento-editor__body {
  padding: 12px 0;
  line-height: 1.75;
}
.ubg-bento-editor__ln {
  display: flex;
  gap: 14px;
  padding: 0 14px;
}
.ubg-bento-editor__no {
  color: #333;
  width: 14px;
  text-align: right;
  flex-shrink: 0;
  user-select: none;
}
.ubg-bento-editor__ln code {
  color: #c9c9c9;
  white-space: pre;
  font-family: inherit;
}
.ubg-bento-editor__kw { color: var(--ubg-bento-violet); }
.ubg-bento-editor__fn { color: var(--ubg-bento-blue); }
.ubg-bento-editor__str { color: var(--ubg-bento-green); }
.ubg-bento-editor__cm { color: #4a4a4a; font-style: italic; }

/* Stack tech (catégories bento + pastilles home) */
.ubg-bento__cell--tech .ubg-bento__visual {
  justify-content: flex-start;
  overflow: hidden;
}
.ubg-bento-tech {
  width: 100%;
  flex: 1;
  -webkit-mask-image: linear-gradient(to bottom, #000 72%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 72%, transparent 100%);
}
.ubg-bento-pole {
  margin-bottom: 16px;
}
.ubg-bento-pole:last-child {
  margin-bottom: 0;
}
.ubg-bento-pole__name {
  font-family: "Mono", monospace;
  font-size: 11px;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--ubg-bento-faint);
  margin-bottom: 9px;
}
.ubg-bento-tech__list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-content: flex-start;
}

/* Lists */
.ubg-bento-mini__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 14px;
  padding: 0 4px;
}
.ubg-bento-mini__t {
  font-size: 13.5px;
  font-weight: 500;
}
.ubg-bento-mini__plus {
  color: var(--ubg-bento-faint);
  font-size: 16px;
}
.ubg-bento-connect__lead {
  margin: 0 0 14px;
  padding: 0 4px;
  color: #dedede;
  font-size: 13px;
  line-height: 1.5;
}
.ubg-bento-connect {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
}
.ubg-bento-connect__scroll {
  position: relative;
  overflow: hidden;
  width: 100%;
  padding: 4px 0 2px;
}
.ubg-bento-connect__scroll::before,
.ubg-bento-connect__scroll::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 34px;
  z-index: 1;
  pointer-events: none;
}
.ubg-bento-connect__scroll::before {
  left: 0;
  background: linear-gradient(to right, rgba(10, 10, 10, 1) 0%, rgba(10, 10, 10, 0) 100%);
}
.ubg-bento-connect__scroll::after {
  right: 0;
  background: linear-gradient(to left, rgba(10, 10, 10, 1) 0%, rgba(10, 10, 10, 0) 100%);
}
.ubg-bento-connect__row {
  display: flex;
  gap: 10px;
  width: max-content;
  will-change: transform;
}
.ubg-bento-connect__row--left {
  animation: scrollLeft 24s linear infinite;
}
.ubg-bento-connect__item {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-width: 92px;
  padding: 12px 14px 10px;
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.04);
  color: #f1f1f1;
  font-size: 11px;
  line-height: 1.15;
  text-align: center;
  white-space: nowrap;
}
.ubg-bento-connect__item .tech-logo {
  width: 24px;
  height: 24px;
  opacity: 0.9;
}
.ubg-bento-connect__item .tech-logo--color {
  filter: none;
  opacity: 1;
}
.ubg-bento-connect__more {
  padding: 0 4px;
  text-align: center;
}
.ubg-bento-connect__count {
  margin: 0 0 6px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  font-size: 15px;
  line-height: 1.25;
  color: var(--ubg-bento-text);
}
.ubg-bento-connect__count strong {
  font-weight: 700;
  font-size: 28px;
  letter-spacing: -0.03em;
}
.ubg-bento-connect__count span {
  color: var(--ubg-bento-muted);
  font-weight: 400;
  font-size: 14px;
}
.ubg-bento-connect__note {
  margin: 0;
  font-size: 13px;
  line-height: 1.45;
  color: var(--ubg-bento-muted);
}
.ubg-bento-li {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  border-radius: 9px;
  font-size: 13px;
}
.ubg-bento-li.is-on {
  background: rgba(255, 255, 255, 0.06);
}
.ubg-bento-li.is-faded {
  opacity: 0.45;
}
.ubg-bento-li__ico {
  width: 20px;
  height: 20px;
  border-radius: 5px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  flex-shrink: 0;
  background: rgba(255, 255, 255, 0.07);
  color: #bbb;
}
.ubg-bento-li__n {
  flex: 1;
  color: #dedede;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ubg-bento-li__r {
  color: var(--ubg-bento-faint);
  font-size: 11.5px;
  font-variant-numeric: tabular-nums;
}
.ubg-bento-li__ok {
  color: var(--ubg-bento-green);
  font-size: 12px;
  width: 16px;
  text-align: center;
  flex-shrink: 0;
}

/* Responsive : redimension animée */
.ubg-bento__visual--resp {
  display: flex;
  align-items: center;
  justify-content: center;
  padding-bottom: 8px;
}
.ubg-bento-resize {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  width: 100%;
}
.ubg-bento-resize__frame {
  width: 190px;
  height: 118px;
  border: 1.5px solid rgba(255, 255, 255, 0.16);
  border-radius: 10px;
  background: var(--black);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  animation: ubg-bento-resize-frame 7.5s ease-in-out infinite;
  transform-origin: center center;
}
.ubg-bento-resize__bar {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 7px 10px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  flex-shrink: 0;
}
.ubg-bento-resize__bar span {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.18);
}
.ubg-bento-resize__screen {
  flex: 1;
  min-height: 0;
  padding: 10px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.ubg-bento-resize__hero {
  height: 28px;
  border-radius: 6px;
  background: linear-gradient(90deg, #1d3a63, #173054);
  flex-shrink: 0;
  animation: ubg-bento-resize-hero 7.5s ease-in-out infinite;
}
.ubg-bento-resize__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
  flex: 1;
  min-height: 0;
  animation: ubg-bento-resize-grid 7.5s ease-in-out infinite;
}
.ubg-bento-resize__card {
  border-radius: 5px;
  background: rgba(255, 255, 255, 0.07);
  border: 1px solid rgba(255, 255, 255, 0.06);
  min-height: 18px;
}
.ubg-bento-resize__card:nth-child(3) {
  animation: ubg-bento-resize-card3 7.5s ease-in-out infinite;
}
.ubg-bento-resize__line {
  height: 5px;
  border-radius: 3px;
  background: rgba(255, 255, 255, 0.08);
  flex-shrink: 0;
}
.ubg-bento-resize__line--short {
  width: 55%;
}
.ubg-bento-resize__cap {
  position: relative;
  height: 16px;
  width: 72px;
  text-align: center;
}
.ubg-bento-resize__px {
  position: absolute;
  inset: 0;
  font-size: 11px;
  font-family: "Mono", monospace;
  color: var(--ubg-bento-faint);
  font-variant-numeric: tabular-nums;
  opacity: 0;
}
.ubg-bento-resize__px--d {
  animation: ubg-bento-resize-cap-d 7.5s ease-in-out infinite;
}
.ubg-bento-resize__px--t {
  animation: ubg-bento-resize-cap-t 7.5s ease-in-out infinite;
}
.ubg-bento-resize__px--m {
  animation: ubg-bento-resize-cap-m 7.5s ease-in-out infinite;
}

@keyframes ubg-bento-resize-frame {
  0%, 22% {
    width: 190px;
    height: 118px;
    border-radius: 10px;
  }
  33%, 55% {
    width: 112px;
    height: 142px;
    border-radius: 12px;
  }
  66%, 88% {
    width: 64px;
    height: 126px;
    border-radius: 16px;
  }
  100% {
    width: 190px;
    height: 118px;
    border-radius: 10px;
  }
}
@keyframes ubg-bento-resize-grid {
  0%, 22% {
    grid-template-columns: repeat(3, 1fr);
  }
  33%, 55% {
    grid-template-columns: repeat(2, 1fr);
  }
  66%, 88% {
    grid-template-columns: 1fr;
  }
  100% {
    grid-template-columns: repeat(3, 1fr);
  }
}
@keyframes ubg-bento-resize-card3 {
  0%, 22% {
    opacity: 1;
    max-height: 80px;
  }
  33%, 55% {
    opacity: 0;
    max-height: 0;
    min-height: 0;
    border: 0;
    padding: 0;
  }
  66%, 88% {
    opacity: 0;
    max-height: 0;
    min-height: 0;
    border: 0;
  }
  100% {
    opacity: 1;
    max-height: 80px;
  }
}
@keyframes ubg-bento-resize-hero {
  0%, 22% { height: 28px; }
  33%, 55% { height: 36px; }
  66%, 88% { height: 22px; }
  100% { height: 28px; }
}
@keyframes ubg-bento-resize-cap-d {
  0%, 20% { opacity: 1; }
  28%, 100% { opacity: 0; }
}
@keyframes ubg-bento-resize-cap-t {
  0%, 28% { opacity: 0; }
  33%, 53% { opacity: 1; }
  61%, 100% { opacity: 0; }
}
@keyframes ubg-bento-resize-cap-m {
  0%, 61% { opacity: 0; }
  66%, 86% { opacity: 1; }
  94%, 100% { opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .ubg-bento-resize__frame,
  .ubg-bento-resize__grid,
  .ubg-bento-resize__card:nth-child(3),
  .ubg-bento-resize__hero,
  .ubg-bento-resize__px {
    animation: none !important;
  }
  .ubg-bento-resize__px--d {
    opacity: 1;
  }
}

/* SEO / GEO */
.ubg-bento-mon {
  background: var(--ubg-bento-card-2);
  border: 1px solid var(--ubg-bento-line);
  border-radius: 16px;
  padding: 20px 22px 16px;
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.ubg-bento-mon h3 {
  margin: 0 0 4px;
  font-size: 19px;
  font-weight: 600;
}
.ubg-bento-mon__sub {
  margin: 0 0 14px;
  font-size: 12px;
  color: var(--ubg-bento-faint);
  line-height: 1.45;
}
.ubg-bento-mon__stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--ubg-bento-line);
}
.ubg-bento-ms__l {
  font-size: 12px;
  color: var(--ubg-bento-muted);
  margin-bottom: 6px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.ubg-bento-ms__live {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--ubg-bento-blue);
  animation: ubg-bento-pulse 2s infinite;
}
@keyframes ubg-bento-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.3; }
}
.ubg-bento-ms__v {
  font-size: 22px;
  font-weight: 600;
  letter-spacing: -0.02em;
}
.ubg-bento-ms.is-dim .ubg-bento-ms__v {
  color: var(--ubg-bento-faint);
}
.ubg-bento-geo {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-top: 14px;
  flex: 0 0 auto;
}
.ubg-bento-geo__h {
  font-family: "Mono", monospace;
  font-size: 11px;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--ubg-bento-faint);
  margin-bottom: 10px;
}
.ubg-bento-geo__row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border-radius: 8px;
  font-size: 12.5px;
}
.ubg-bento-geo__row.is-on {
  background: rgba(255, 255, 255, 0.06);
}
.ubg-bento-geo__i {
  width: 20px;
  height: 20px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.07);
  color: #ccc;
  font-size: 10px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.ubg-bento-geo__n {
  flex: 1;
  color: #e0e0e0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ubg-bento-geo__v {
  font-size: 11px;
  color: var(--ubg-bento-muted);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.ubg-bento-geo__foot {
  display: flex;
  gap: 7px;
  margin-top: 10px;
  flex-wrap: wrap;
  flex: 0 0 auto;
}
.ubg-bento-tag {
  font-size: 10.5px;
  color: var(--ubg-bento-muted);
  border: 1px solid var(--ubg-bento-line);
  border-radius: 6px;
  padding: 3px 8px;
}
.ubg-bento-tag b {
  color: var(--ubg-bento-green);
  font-weight: 600;
}

/* Security URL bar */
.ubg-bento-urlbar {
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--ubg-bento-card-2);
  border: 1px solid var(--ubg-bento-line);
  border-radius: 999px;
  padding: 9px 15px;
  margin-bottom: 16px;
}
.ubg-bento-urlbar__nav {
  color: var(--ubg-bento-faint);
  font-size: 13px;
  white-space: nowrap;
}
.ubg-bento-urlbar__field {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 9px;
  background: rgba(255, 255, 255, 0.043);
  border-radius: 999px;
  padding: 7px 13px;
  font-size: 12.5px;
  color: #d6d6d6;
  white-space: nowrap;
  overflow: hidden;
}
.ubg-bento-urlbar__lock {
  width: 17px;
  height: 17px;
  border-radius: 5px;
  background: var(--ubg-bento-blue);
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ubg-bento-urlbar__lock svg {
  width: 9px;
  height: 9px;
}
.ubg-bento-urlbar__proto {
  display: inline-flex;
  align-items: center;
  gap: 0;
  flex-shrink: 0;
}
.ubg-bento-urlbar__s {
  display: inline-block;
  color: #8dff3b;
  animation: ubg-https-s-alert 1.05s steps(1) infinite;
}
.ubg-bento-monitor {
  margin: -4px 0 10px;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.035);
  border: 1px solid rgba(255, 255, 255, 0.08);
}
.ubg-bento-monitor__head,
.ubg-bento-monitor__services {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.ubg-bento-monitor__head {
  margin-bottom: 9px;
}
.ubg-bento-monitor__badge {
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.72);
}
.ubg-bento-monitor__uptime {
  font-size: 11px;
  color: #ffffff;
  font-weight: 600;
}
.ubg-bento-monitor__services {
  margin-bottom: 10px;
}
.ubg-bento-monitor__svc {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 10.5px;
  color: #d9d9d9;
}
.ubg-bento-monitor__svc i {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #3fc53a;
  box-shadow: 0 0 8px rgba(63, 197, 58, 0.35);
  animation: ubg-monitor-dot 2.1s ease-in-out infinite;
}
.ubg-bento-monitor__services .ubg-bento-monitor__svc:nth-child(2) i {
  animation-delay: 0.45s;
}
.ubg-bento-monitor__services .ubg-bento-monitor__svc:nth-child(3) i {
  animation-delay: 0.9s;
}
.ubg-bento-monitor__graph {
  position: relative;
  height: 34px;
  border-radius: 10px;
  display: flex;
  align-items: flex-end;
  gap: 2px;
  padding: 5px 7px;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.03) 0%, rgba(255,255,255,0.015) 100%);
  border: 1px solid rgba(255, 255, 255, 0.06);
}
.ubg-bento-monitor__graph::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.06) 50%, transparent 100%);
  opacity: 0.35;
}
.ubg-bento-monitor__bar {
  position: relative;
  z-index: 1;
  flex: 1;
  min-width: 0;
  align-self: flex-end;
  height: 100%;
  border-radius: 2px 2px 0 0;
  background: rgba(255, 255, 255, 0.14);
  transform-origin: bottom center;
  animation: ubg-monitor-bar 2.6s ease-in-out infinite;
}
.ubg-bento-monitor__bar.is-ok {
  background: linear-gradient(180deg, rgba(141, 255, 59, 0.96) 0%, rgba(63, 197, 58, 0.88) 100%);
  box-shadow: 0 0 10px rgba(63, 197, 58, 0.22);
}
.ubg-bento-monitor__bar.is-warn {
  background: linear-gradient(180deg, rgba(255, 115, 115, 0.96) 0%, rgba(255, 77, 77, 0.9) 100%);
  box-shadow: 0 0 10px rgba(255, 77, 77, 0.18);
}
.ubg-bento-monitor__bar:nth-child(1) { transform: scaleY(0.74); animation-delay: 0s; }
.ubg-bento-monitor__bar:nth-child(2) { transform: scaleY(0.48); animation-delay: 0.08s; }
.ubg-bento-monitor__bar:nth-child(3) { transform: scaleY(0.66); animation-delay: 0.16s; }
.ubg-bento-monitor__bar:nth-child(4) { transform: scaleY(0.58); animation-delay: 0.24s; }
.ubg-bento-monitor__bar:nth-child(5) { transform: scaleY(0.36); animation-delay: 0.32s; }
.ubg-bento-monitor__bar:nth-child(6) { transform: scaleY(0.82); animation-delay: 0.4s; }
.ubg-bento-monitor__bar:nth-child(7) { transform: scaleY(0.61); animation-delay: 0.48s; }
.ubg-bento-monitor__bar:nth-child(8) { transform: scaleY(0.91); animation-delay: 0.56s; }
.ubg-bento-monitor__bar:nth-child(9) { transform: scaleY(0.33); animation-delay: 0.64s; }
.ubg-bento-monitor__bar:nth-child(10) { transform: scaleY(0.72); animation-delay: 0.72s; }
.ubg-bento-monitor__bar:nth-child(11) { transform: scaleY(0.54); animation-delay: 0.8s; }
.ubg-bento-monitor__bar:nth-child(12) { transform: scaleY(0.78); animation-delay: 0.88s; }
.ubg-bento-monitor__bar:nth-child(13) { transform: scaleY(0.69); animation-delay: 0.96s; }
.ubg-bento-monitor__bar:nth-child(14) { transform: scaleY(0.38); animation-delay: 1.04s; }
.ubg-bento-monitor__bar:nth-child(15) { transform: scaleY(0.84); animation-delay: 1.12s; }
.ubg-bento-monitor__bar:nth-child(16) { transform: scaleY(0.57); animation-delay: 1.2s; }
.ubg-bento-monitor__bar:nth-child(17) { transform: scaleY(0.75); animation-delay: 1.28s; }
.ubg-bento-monitor__bar:nth-child(18) { transform: scaleY(0.88); animation-delay: 1.36s; }
.ubg-bento-monitor__bar::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -2px;
  height: 2px;
  border-radius: 2px;
  background: rgba(255, 255, 255, 0.3);
}
.ubg-bento__cell--waf .ubg-bento__visual {
  justify-content: flex-start;
  gap: 8px;
}
.ubg-bento-waf {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
  margin: 0;
  padding: 0;
}
.ubg-bento-waf__label {
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.72);
  white-space: nowrap;
}
.ubg-bento-waf__lane {
  position: relative;
  height: 64px;
  border-radius: 16px;
  overflow: hidden;
  background:
    radial-gradient(circle at center, rgba(67, 122, 255, 0.08) 0%, rgba(67, 122, 255, 0) 48%),
    linear-gradient(180deg, rgba(255,255,255,0.045) 0%, rgba(255,255,255,0.02) 100%);
  border: 1px solid rgba(255, 255, 255, 0.08);
}
.ubg-bento-waf__lane::before {
  content: "";
  position: absolute;
  left: 14px;
  right: 14px;
  top: 50%;
  height: 1px;
  transform: translateY(-50%);
  background: linear-gradient(90deg, rgba(255,255,255,0.08) 0%, rgba(255,255,255,0.18) 50%, rgba(255,255,255,0.08) 100%);
}
.ubg-bento-waf__gate {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 42px;
  height: 42px;
  transform: translate(-50%, -50%);
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(20, 24, 36, 0.95) 0%, rgba(14, 16, 24, 0.95) 100%);
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.03) inset,
    0 0 22px rgba(77, 136, 255, 0.12);
  overflow: visible;
}
.ubg-bento-waf__gate::before {
  content: "";
  position: absolute;
  inset: 10px;
  background: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23ffffff' d='M12 2l7 3v5c0 4.6-2.8 8.8-7 10-4.2-1.2-7-5.4-7-10V5l7-3Zm0 4.2-4 1.7V10c0 3.2 1.8 6.1 4 7 2.2-.9 4-3.8 4-7V7.9l-4-1.7Z'/%3E%3C/svg%3E");
  opacity: 0.92;
}
.ubg-bento-waf__gate::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 54px;
  height: 54px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.12);
  animation: ubg-waf-gate 2s ease-in-out infinite;
}
.ubg-bento-waf__packet {
  position: absolute;
  top: 50%;
  left: 10px;
  width: 20px;
  height: 20px;
  margin-top: -10px;
  background: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23ff5a5a' d='M12 2.5c-4.2 0-7.5 3.2-7.5 7.2 0 2.7 1.5 5 3.8 6.2V18c0 1.1.9 2 2 2v-1.5c0-.5.4-.9.9-.9h1.6c.5 0 .9.4.9.9V20c1.1 0 2-.9 2-2v-2.1c2.3-1.2 3.8-3.5 3.8-6.2 0-4-3.3-7.2-7.5-7.2Zm-2.5 8.2a1.4 1.4 0 1 1 0-2.8 1.4 1.4 0 0 1 0 2.8Zm5 0a1.4 1.4 0 1 1 0-2.8 1.4 1.4 0 0 1 0 2.8Zm-4.1 3.5c.4-.8 1-1.2 1.6-1.2s1.2.4 1.6 1.2c-.3.4-.8.7-1.6.7s-1.3-.3-1.6-.7Z'/%3E%3C/svg%3E");
  filter: drop-shadow(0 0 6px rgba(255, 77, 77, 0.42));
  animation: ubg-waf-packet 2.6s linear infinite;
}
.ubg-bento-waf__packet--2 {
  animation-delay: 0.85s;
}
.ubg-bento-waf__packet--3 {
  animation-delay: 1.7s;
}
.ubg-bento-waf__good {
  position: absolute;
  top: 50%;
  left: 58%;
  width: 8px;
  height: 8px;
  margin-top: -4px;
  border-radius: 50%;
  background: #8dff3b;
  box-shadow: 0 0 8px rgba(141, 255, 59, 0.35);
  animation: ubg-waf-good 2.1s linear infinite;
}
.ubg-bento-cta {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: auto auto auto;
  align-items: start;
  align-content: center;
  row-gap: 12px;
  width: 100%;
  max-width: 640px;
  height: auto;
}
.ubg-bento-cta__eyebrow {
  margin: 0;
  grid-column: 1;
  grid-row: 1;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ubg-bento-faint);
}
.ubg-bento-cta__title {
  margin: 0;
  grid-column: 1;
  grid-row: 2;
  font-size: clamp(28px, 3.4vw, 46px);
  line-height: 1.08;
  letter-spacing: -0.02em;
  color: #ffffff;
  max-width: 12em;
}
.ubg-bento-cta__text {
  margin: 0;
  font-size: 16px;
  color: var(--ubg-bento-muted);
}
.ubg-bento-cta__chip {
  grid-column: 1;
  grid-row: 3;
  margin-top: 6px;
  width: fit-content;
  text-decoration: none;
  white-space: nowrap;
}
.ubg-bento-waf__good--2 {
  animation-delay: 1.05s;
}
.ubg-bento-sec-shields {
  display: flex;
  gap: 8px;
  margin-top: 0;
  flex-wrap: wrap;
}
.ubg-bento-sec-shield {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  flex: 1;
  min-width: 0;
  padding: 6px 10px;
  border-radius: 9px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.07);
}
.ubg-bento-sec-shield__dot {
  position: relative;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  flex-shrink: 0;
  background: #3fc53a;
}
.ubg-bento-sec-shield__dot::after {
  content: "";
  position: absolute;
  inset: -2px;
  border-radius: 50%;
  background: rgba(63, 197, 58, 0.22);
  animation: ubg-sec-pulse 2.2s ease-in-out infinite;
}
.ubg-bento-sec-shield__dot--2 {
  background: #3fc53a;
  animation-delay: 0.7s;
}
.ubg-bento-sec-shield__dot--2::after {
  animation-delay: 0.7s;
}
.ubg-bento-sec-shield__dot--3 {
  background: #3fc53a;
}
.ubg-bento-sec-shield__dot--3::after {
  animation-delay: 1.4s;
}
.ubg-bento-sec-shield__name {
  font-size: 10.8px;
  font-weight: 600;
  color: #f1f1f1;
  text-align: center;
}
.ubg-bento-sec-shield__sub {
  font-size: 9.2px;
  color: rgba(255, 255, 255, 0.72);
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  text-align: center;
}
@keyframes ubg-sec-pulse {
  0%, 100% { opacity: 0.22; transform: scale(1); }
  50%       { opacity: 0.55; transform: scale(1.5); }
}
@keyframes ubg-https-s-alert {
  0%, 42%, 100% {
    opacity: 1;
    text-shadow:
      0 0 8px rgba(141, 255, 59, 0.5),
      0 0 14px rgba(141, 255, 59, 0.28);
  }
  43%, 58% {
    opacity: 0.35;
    text-shadow: none;
  }
}
@keyframes ubg-monitor-dot {
  0%, 100% {
    opacity: 0.75;
    transform: scale(1);
  }
  50% {
    opacity: 1;
    transform: scale(1.2);
  }
}
@keyframes ubg-monitor-bar {
  0%, 100% {
    opacity: 0.82;
    filter: saturate(0.95);
  }
  50% {
    opacity: 1;
    filter: saturate(1.12);
  }
}
@keyframes ubg-waf-packet {
  0% {
    left: 10px;
    opacity: 0;
    transform: translateX(0) scale(0.9);
  }
  12% {
    opacity: 1;
  }
  70% {
    left: 34%;
    opacity: 1;
  }
  76% {
    left: 38%;
    transform: translateX(0) scale(0.62);
    opacity: 0;
  }
  100% {
    left: 38%;
    transform: translateX(0) scale(0.62);
    opacity: 0;
  }
}
@keyframes ubg-waf-gate {
  0%, 100% {
    opacity: 0.18;
    transform: translate(-50%, -50%) scale(1);
  }
  50% {
    opacity: 0.42;
    transform: translate(-50%, -50%) scale(1.18);
  }
}
@keyframes ubg-waf-good {
  0% {
    left: 58%;
    opacity: 0;
  }
  18% {
    opacity: 1;
  }
  100% {
    left: 92%;
    opacity: 0;
  }
}


/* ---------- Bento Mobile (page apps iOS/Android) ---------- */
.ubg-bento__cell--span-3 {
  grid-column: span 3;
  min-height: 340px;
}

/* Reset SaaS border exceptions, then apply mobile edges */
.ubg-bento--mobile > ::before,
.ubg-bento--mobile > .ubg-bento__stack .ubg-bento__cell::before {
  background-image:
    var(--ubg-bento-line-h),
    var(--ubg-bento-line-h),
    var(--ubg-bento-line-v),
    var(--ubg-bento-line-v);
  background-size: 88% 1px, 88% 1px, 1px 84%, 1px 84%;
  background-position: center top, center bottom, left center, right center;
}
.ubg-bento--mobile > .ubg-bento__stack .ubg-bento__cell::before {
  background-size: 84% 1px, 84% 1px, 1px 80%, 1px 80%;
}
/* Left edge: 1 phone, 3 feats, 4 stack, 6 os, 8 mon */
/* Left edge: 1 phone, 3 feats, 4 stack, 6 os, 8 mon+cta */
.ubg-bento--mobile > :nth-child(1)::before,
.ubg-bento--mobile > :nth-child(3)::before,
.ubg-bento--mobile > :nth-child(4)::before,
.ubg-bento--mobile > :nth-child(6)::before,
.ubg-bento--mobile > :nth-child(8)::before {
  background-image: var(--ubg-bento-line-h), var(--ubg-bento-line-h), var(--ubg-bento-line-v);
  background-size: 88% 1px, 88% 1px, 1px 84%;
  background-position: center top, center bottom, right center;
}
.ubg-bento--mobile > :nth-child(4) .ubg-bento__cell::before,
.ubg-bento--mobile > :nth-child(8) .ubg-bento__cell::before {
  background-image: var(--ubg-bento-line-h), var(--ubg-bento-line-h), var(--ubg-bento-line-v);
  background-size: 84% 1px, 84% 1px, 1px 80%;
  background-position: center top, center bottom, right center;
}
/* Right edge: 2 deploy, 5 stack, 7 aso, 9 connect+watch */
.ubg-bento--mobile > :nth-child(2)::before,
.ubg-bento--mobile > :nth-child(5)::before,
.ubg-bento--mobile > :nth-child(7)::before,
.ubg-bento--mobile > :nth-child(9)::before {
  background-image: var(--ubg-bento-line-h), var(--ubg-bento-line-h), var(--ubg-bento-line-v);
  background-size: 88% 1px, 88% 1px, 1px 84%;
  background-position: center top, center bottom, left center;
}
.ubg-bento--mobile > :nth-child(5) .ubg-bento__cell::before,
.ubg-bento--mobile > :nth-child(9) .ubg-bento__cell::before {
  background-image: var(--ubg-bento-line-h), var(--ubg-bento-line-h), var(--ubg-bento-line-v);
  background-size: 84% 1px, 84% 1px, 1px 80%;
  background-position: center top, center bottom, left center;
}
/* Bottom row: pas de bordure basse externe */
.ubg-bento--mobile > :nth-child(8)::before {
  background-image: var(--ubg-bento-line-h), var(--ubg-bento-line-v);
  background-size: 88% 1px, 1px 84%;
  background-position: center top, right center;
}
.ubg-bento--mobile > :nth-child(9)::before {
  background-image: var(--ubg-bento-line-h), var(--ubg-bento-line-v);
  background-size: 88% 1px, 1px 84%;
  background-position: center top, left center;
}
.ubg-bento--mobile > :nth-child(8) .ubg-bento__cell:last-child::before {
  background-image: var(--ubg-bento-line-h), var(--ubg-bento-line-v);
  background-size: 84% 1px, 1px 80%;
  background-position: center top, right center;
}
.ubg-bento--mobile > :nth-child(9) .ubg-bento__cell:last-child::before {
  background-image: var(--ubg-bento-line-h), var(--ubg-bento-line-v);
  background-size: 84% 1px, 1px 80%;
  background-position: center top, left center;
}

/* Phone mockup */
.ubg-bento-phone {
  display: flex;
  justify-content: center;
  align-items: flex-end;
  height: 100%;
  padding-top: 10px;
}
.ubg-bento-phone__device {
  width: 210px;
  height: 390px;
  flex-shrink: 0;
  background: #000;
  border: 6px solid #262626;
  border-bottom: none;
  border-radius: 34px 34px 0 0;
  position: relative;
  overflow: hidden;
  box-shadow: 0 0 0 1.5px #0a0a0a, 0 30px 60px rgba(0, 0, 0, 0.6);
  margin-bottom: -28px;
}
.ubg-bento-phone__island {
  position: absolute;
  top: 10px;
  left: 50%;
  transform: translateX(-50%);
  width: 64px;
  height: 18px;
  background: #000;
  border-radius: 999px;
  z-index: 5;
  border: 1px solid #1a1a1a;
}
.ubg-bento-phone__screen {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #0e1420 0%, #0a0a0d 40%);
}
.ubg-bento-phone__head { padding: 44px 16px 12px; }
.ubg-bento-phone__hi { font-size: 10px; color: var(--ubg-bento-faint); }
.ubg-bento-phone__hn { font-size: 15px; font-weight: 700; margin-top: 2px; }
.ubg-bento-phone__card {
  margin: 8px 14px;
  padding: 12px;
  border-radius: 14px;
  background: linear-gradient(135deg, #1d3a63, #173054);
  position: relative;
  overflow: hidden;
}
.ubg-bento-phone__card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, 0.07) 48%, transparent 60%);
  transform: translateX(-100%);
  animation: ubg-phone-shine 4.5s ease-in-out infinite;
}
@keyframes ubg-phone-shine {
  0%, 60% { transform: translateX(-100%); }
  90%, 100% { transform: translateX(100%); }
}
.ubg-bento-phone__cl { font-size: 9px; color: #9db8dd; }
.ubg-bento-phone__cv { font-size: 19px; font-weight: 700; margin-top: 3px; }
.ubg-bento-phone__cs { font-size: 9px; color: var(--ubg-bento-green); margin-top: 4px; }
.ubg-bento-phone__skel {
  margin: 10px 14px;
  display: flex;
  gap: 10px;
  align-items: center;
}
.ubg-bento-phone__sq {
  width: 30px;
  height: 30px;
  border-radius: 9px;
  background: #1c1c1c;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
}
.ubg-bento-phone__sl { flex: 1; }
.ubg-bento-phone__sl i {
  display: block;
  height: 6px;
  border-radius: 3px;
  background: #1e1e1e;
}
.ubg-bento-phone__sl i + i {
  margin-top: 5px;
  width: 60%;
  background: #181818;
}
.ubg-bento-phone__tabbar {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 44px;
  background: rgba(16, 16, 18, 0.9);
  border-top: 1px solid #1c1c1c;
  display: flex;
  align-items: center;
  justify-content: space-around;
  backdrop-filter: blur(8px);
}
.ubg-bento-phone__tabbar span {
  width: 17px;
  height: 17px;
  border-radius: 5px;
  background: #2a2a2a;
}
.ubg-bento-phone__tabbar span.is-on { background: var(--ubg-bento-blue); }
.ubg-bento-phone__notif {
  position: absolute;
  top: 34px;
  left: 10px;
  right: 10px;
  z-index: 6;
  background: rgba(40, 40, 44, 0.92);
  border: 1px solid #3a3a3a;
  border-radius: 12px;
  padding: 8px 10px;
  display: flex;
  gap: 8px;
  align-items: center;
  backdrop-filter: blur(6px);
  transform: translateY(-70px);
  animation: ubg-phone-drop 7s ease-in-out infinite;
}
@keyframes ubg-phone-drop {
  0%, 12% { transform: translateY(-70px); opacity: 0; }
  18%, 55% { transform: translateY(0); opacity: 1; }
  62%, 100% { transform: translateY(-70px); opacity: 0; }
}
.ubg-bento-phone__notif-ico {
  width: 22px;
  height: 22px;
  border-radius: 6px;
  background: linear-gradient(135deg, var(--ubg-bento-blue), var(--ubg-bento-violet));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  font-weight: 700;
  flex-shrink: 0;
}
.ubg-bento-phone__notif-t { display: block; font-size: 9px; font-weight: 600; }
.ubg-bento-phone__notif-m { display: block; font-size: 8.5px; color: #b5b5b5; margin-top: 1px; }
.ubg-bento-phone__ping {
  position: absolute;
  bottom: 96px;
  right: 30px;
  width: 10px;
  height: 10px;
  z-index: 4;
}
.ubg-bento-phone__ping::before,
.ubg-bento-phone__ping::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
}
.ubg-bento-phone__ping::before { background: var(--ubg-bento-blue); }
.ubg-bento-phone__ping::after {
  border: 1.5px solid var(--ubg-bento-blue);
  animation: ubg-phone-ping 2.4s ease-out infinite;
}
@keyframes ubg-phone-ping {
  0% { transform: scale(1); opacity: 0.9; }
  100% { transform: scale(4.5); opacity: 0; }
}

/* Deploy map */
.ubg-bento-deploy {
  flex: 1;
  position: relative;
  min-height: 0;
}
.ubg-bento-deploy svg {
  width: 100%;
  height: 100%;
  display: block;
  min-height: 260px;
}
.ubg-bento-deploy__rail {
  stroke: #242424;
  stroke-width: 1.5;
  fill: none;
}
.ubg-bento-deploy__core-t {
  font-size: 12px;
  fill: var(--ubg-bento-blue);
  font-weight: 600;
  font-family: "Outfit", sans-serif;
}
.ubg-bento-deploy__node-t {
  font-size: 10.5px;
  fill: #cfcfcf;
  font-family: "Outfit", sans-serif;
}
.ubg-bento-deploy__node-s {
  font-size: 8.5px;
  fill: #5a5a5a;
  font-family: "Outfit", sans-serif;
}
.ubg-bento-deploy__dev {
  animation: ubg-deploy-float 4.5s ease-in-out infinite;
  transform-box: fill-box;
  transform-origin: center;
}
.ubg-bento-deploy__hub {
  transform-box: fill-box;
  transform-origin: center;
  animation: ubg-deploy-float 5.5s ease-in-out infinite;
}
@keyframes ubg-deploy-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}

/* Features carousel */
.ubg-bento-feat-scroll {
  height: 280px;
  overflow: hidden;
  position: relative;
  -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 14%, #000 86%, transparent 100%);
  mask-image: linear-gradient(to bottom, transparent 0, #000 14%, #000 86%, transparent 100%);
}
.ubg-bento-feat-track {
  display: flex;
  flex-direction: column;
  gap: 8px;
  animation: ubg-feat-scroll 18s linear infinite;
}
.ubg-bento-feat-scroll:hover .ubg-bento-feat-track {
  animation-play-state: paused;
}
@keyframes ubg-feat-scroll {
  to { transform: translateY(calc(-50% - 4px)); }
}
.ubg-bento-feat {
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--ubg-bento-card-2);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  padding: 10px 13px;
  flex-shrink: 0;
}
.ubg-bento-feat__ico {
  width: 32px;
  height: 32px;
  border-radius: 9px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ubg-bento-feat__ico svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.ubg-bento-feat__ico.c-blue { background: #152238; }
.ubg-bento-feat__ico.c-blue svg { stroke: var(--ubg-bento-blue); }
.ubg-bento-feat__ico.c-green { background: #152b1c; }
.ubg-bento-feat__ico.c-green svg { stroke: var(--ubg-bento-green); }
.ubg-bento-feat__ico.c-violet { background: #1e1a33; }
.ubg-bento-feat__ico.c-violet svg { stroke: var(--ubg-bento-violet); }
.ubg-bento-feat__ico.c-amber { background: #2b2312; }
.ubg-bento-feat__ico.c-amber svg { stroke: var(--ubg-bento-amber); }
.ubg-bento-feat__txt { flex: 1; min-width: 0; }
.ubg-bento-feat__t {
  display: block;
  font-size: 12.5px;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ubg-bento-feat__s {
  display: block;
  font-size: 10.5px;
  color: var(--ubg-bento-faint);
  margin-top: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Stat glow */
/* Push notifications */
.ubg-bento-push {
  position: relative;
  width: 100%;
  min-height: 220px;
  flex: 1 1 auto;
}
.ubg-bento__stack .ubg-bento__visual:has(.ubg-bento-push),
.ubg-bento__stack .ubg-bento__visual.ubg-bento-push {
  min-height: 220px;
  flex: 1 1 auto;
}
.ubg-bento__stack .ubg-bento__cell:has(.ubg-bento-push) {
  min-height: 320px;
}
.ubg-bento-push__card {
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  background: rgba(32, 32, 36, 0.78);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 22px;
  padding: 12px 14px;
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.45);
  transform: translateY(-50%);
}
.ubg-bento-push__card--1 { animation: ubg-push-cycle 9s ease-in-out infinite; }
.ubg-bento-push__card--2 {
  animation: ubg-push-cycle 9s ease-in-out 4.5s infinite;
  opacity: 0;
}
@keyframes ubg-push-cycle {
  0% { opacity: 0; transform: translateY(calc(-50% - 18px)) scale(0.95); }
  5%, 42% { opacity: 1; transform: translateY(-50%) scale(1); }
  48%, 100% { opacity: 0; transform: translateY(calc(-50% + 12px)) scale(0.97); }
}
.ubg-bento-push__row {
  display: flex;
  gap: 10px;
  align-items: flex-start;
}
.ubg-bento-push__ico {
  width: 36px;
  height: 36px;
  border-radius: 8.5px;
  flex-shrink: 0;
  background: linear-gradient(135deg, var(--ubg-bento-blue), var(--ubg-bento-violet));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  font-weight: 700;
  color: #fff;
  box-shadow: inset 0 -6px 10px rgba(0, 0, 0, 0.25);
}
.ubg-bento-push__ico--alt {
  background: linear-gradient(135deg, #7c4dcc, #4b9bff);
}
.ubg-bento-push__txt { flex: 1; min-width: 0; }
.ubg-bento-push__title {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 10px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: -0.01em;
}
.ubg-bento-push__title em {
  font-style: normal;
  font-weight: 400;
  color: rgba(235, 235, 245, 0.45);
  font-size: 11px;
  flex-shrink: 0;
}
.ubg-bento-push__body {
  font-size: 12.5px;
  color: rgba(235, 235, 245, 0.75);
  margin-top: 2px;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.ubg-bento-push__thumb {
  width: 36px;
  height: 36px;
  border-radius: 9px;
  flex-shrink: 0;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.12);
}
.ubg-bento-push__img {
  margin-top: 11px;
  height: 72px;
  border-radius: 13px;
  overflow: hidden;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  font-size: 19px;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: #fff;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.1);
}
.ubg-bento-push__img small {
  font-size: 9.5px;
  font-weight: 600;
  opacity: 0.9;
  letter-spacing: 0.16em;
}

/* Backoffice sync */
.ubg-bento-bosync {
  display: flex;
  align-items: center;
  gap: 14px;
  justify-content: center;
}
.ubg-bento-bosync__panel {
  flex: 1;
  max-width: 190px;
  background: var(--ubg-bento-card-2);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 13px;
  overflow: hidden;
}
.ubg-bento-bosync__ph {
  padding: 10px 12px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.ubg-bento-bosync__t { font-size: 11.5px; font-weight: 600; }
.ubg-bento-bosync__pub {
  font-size: 9.5px;
  color: #fff;
  background: var(--ubg-bento-blue-deep);
  border-radius: 6px;
  padding: 3px 8px;
  animation: ubg-bo-pub 5s ease-in-out infinite;
}
@keyframes ubg-bo-pub {
  0%, 70%, 100% { box-shadow: 0 0 0 0 rgba(0, 78, 111, 0); }
  80% { box-shadow: 0 0 0 6px rgba(0, 78, 111, 0.25); }
}
.ubg-bento-bosync__r {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 10.5px;
  color: #d5d5d5;
}
.ubg-bento-bosync__r:last-child { border-bottom: none; }
.ubg-bento-bosync__n {
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ubg-bento-bosync__toggle {
  width: 26px;
  height: 15px;
  border-radius: 999px;
  background: #2a2a2a;
  position: relative;
  flex-shrink: 0;
}
.ubg-bento-bosync__toggle::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: #fff;
  transition: left 0.3s;
}
.ubg-bento-bosync__toggle.is-on {
  background: var(--ubg-bento-blue-deep);
}
.ubg-bento-bosync__toggle.is-on::after { left: 13px; }
.ubg-bento-bosync__toggle.is-anim {
  animation: ubg-bo-toggle-bg 5s ease-in-out infinite;
}
.ubg-bento-bosync__toggle.is-anim::after {
  animation: ubg-bo-toggle-knob 5s ease-in-out infinite;
}
@keyframes ubg-bo-toggle-bg {
  0%, 35% { background: #2a2a2a; }
  45%, 100% { background: var(--ubg-bento-blue-deep); }
}
@keyframes ubg-bo-toggle-knob {
  0%, 35% { left: 2px; }
  45%, 100% { left: 13px; }
}
.ubg-bento-bosync__arrow {
  color: #3c3c3c;
  font-size: 16px;
  position: relative;
}
.ubg-bento-bosync__dot {
  position: absolute;
  top: 50%;
  left: -4px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--ubg-bento-blue);
  transform: translateY(-50%);
  animation: ubg-bo-sync 5s ease-in-out infinite;
  opacity: 0;
}
@keyframes ubg-bo-sync {
  0%, 45% { left: -4px; opacity: 0; }
  50% { opacity: 1; }
  62% { left: 26px; opacity: 1; }
  68%, 100% { left: 26px; opacity: 0; }
}
.ubg-bento-bosync__phone {
  width: 64px;
  height: 118px;
  border: 4px solid #262626;
  border-radius: 14px;
  background: #0d1118;
  position: relative;
  overflow: hidden;
  flex-shrink: 0;
}
.ubg-bento-bosync__mh {
  height: 22px;
  background: linear-gradient(135deg, #1d3a63, #173054);
  margin: 8px 6px 5px;
  border-radius: 5px;
  animation: ubg-bo-refresh 5s ease-in-out infinite;
}
@keyframes ubg-bo-refresh {
  0%, 60% { opacity: 0.55; }
  70%, 100% { opacity: 1; }
}
.ubg-bento-bosync__ml {
  height: 5px;
  background: #1c1c1c;
  border-radius: 3px;
  margin: 5px 6px;
}
.ubg-bento-bosync__ml.is-short { width: 55%; }

/* Lang chips */
.ubg-bento-lang {
  display: flex;
  gap: 8px;
  margin-top: 12px;
  justify-content: center;
  flex-wrap: wrap;
}
.ubg-bento-lang__chip {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11.5px;
  color: #dedede;
  background: var(--ubg-bento-card-2);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 9px;
  padding: 6px 11px;
}
.ubg-bento-lang__ico {
  width: 20px;
  height: 20px;
  border-radius: 5px;
  overflow: hidden;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* OS strip */
.ubg-bento-os {
  display: flex;
  flex-direction: column;
  gap: 14px;
  justify-content: center;
}
.ubg-bento-os__line {
  display: flex;
  align-items: center;
  gap: 16px;
  background: var(--ubg-bento-card-2);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  padding: 16px 18px;
}
.ubg-bento-os__brand {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 118px;
  flex-shrink: 0;
}
.ubg-bento-os__brand svg {
  width: 26px;
  height: 26px;
  flex-shrink: 0;
}
.ubg-bento-os__name { font-size: 14px; font-weight: 600; }
.ubg-bento-os__sep {
  width: 1px;
  align-self: stretch;
  background: rgba(255, 255, 255, 0.08);
  flex-shrink: 0;
}
.ubg-bento-os__devs {
  display: flex;
  flex: 1;
  justify-content: space-around;
  gap: 8px;
}
.ubg-bento-os__dev {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  font-size: 9.5px;
  color: var(--ubg-bento-faint);
  transition: transform 0.25s ease, color 0.25s ease;
}
.ubg-bento-os__line:hover .ubg-bento-os__dev { color: var(--ubg-bento-muted); }
.ubg-bento-os__dev:hover {
  transform: translateY(-3px);
  color: #dedede;
}
.ubg-bento-os__dev svg {
  width: 26px;
  height: 26px;
  fill: none;
  stroke: #cfcfcf;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* ASO */
.ubg-bento-aso {
  display: flex;
  flex-direction: column;
  gap: 10px;
  justify-content: center;
  max-width: 420px;
  margin: 0 auto;
  width: 100%;
}
.ubg-bento-aso__search {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #1a1a1a;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  padding: 9px 13px;
  font-size: 12.5px;
  color: var(--ubg-bento-muted);
}
.ubg-bento-aso__cursor {
  width: 1px;
  height: 13px;
  background: var(--ubg-bento-blue);
  animation: ubg-aso-caret 1.1s ease-in-out infinite;
}
@keyframes ubg-aso-caret {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.15; }
}
.ubg-bento-aso__result {
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--ubg-bento-card-2);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 13px;
  padding: 12px 14px;
}
.ubg-bento-aso__icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  flex-shrink: 0;
  background: linear-gradient(135deg, var(--ubg-bento-blue), var(--ubg-bento-violet));
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 15px;
}
.ubg-bento-aso__nb { flex: 1; min-width: 0; }
.ubg-bento-aso__nn {
  font-size: 13px;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 8px;
}
.ubg-bento-aso__rank {
  font-size: 9.5px;
  font-weight: 700;
  color: var(--ubg-bento-green);
  border: 1px solid rgba(63, 197, 58, 0.35);
  border-radius: 5px;
  padding: 1px 6px;
  white-space: nowrap;
}
.ubg-bento-aso__st {
  font-size: 11px;
  color: var(--ubg-bento-amber);
  margin-top: 2px;
  display: block;
}
.ubg-bento-aso__st em {
  font-style: normal;
  color: var(--ubg-bento-faint);
}
.ubg-bento-aso__get {
  font-size: 11px;
  font-weight: 600;
  color: var(--ubg-bento-blue);
  background: #16202f;
  border-radius: 999px;
  padding: 6px 14px;
  flex-shrink: 0;
}
.ubg-bento-aso__kw {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
}
.ubg-bento-aso__kw span {
  font-size: 10.5px;
  color: var(--ubg-bento-muted);
  border: 1px solid #262626;
  border-radius: 6px;
  padding: 3px 8px;
}
.ubg-bento-aso__kw span.is-up {
  color: var(--ubg-bento-green);
  border-color: rgba(63, 197, 58, 0.3);
}

/* Firebase chip + chart */
.ubg-bento-mon--mobile {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
  padding: 28px;
}
.ubg-bento-mon--mobile .ubg-bento-mon__stats {
  gap: 16px;
  padding-bottom: 20px;
}
.ubg-bento-mon__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 22px;
}
.ubg-bento-mon__head h3 {
  font-size: 19px;
  font-weight: 600;
  margin: 0;
}
.ubg-bento-fb {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 11.5px;
  color: var(--ubg-bento-muted);
  border: 1px solid #262626;
  border-radius: 8px;
  padding: 5px 10px;
}
.ubg-bento-fb svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}
.ubg-bento-fb b {
  color: #dedede;
  font-weight: 600;
}
.ubg-bento-chart {
  flex: 1;
  position: relative;
  margin-top: 18px;
  min-height: 150px;
}
.ubg-bento-chart svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.ubg-bento-chart__note {
  position: absolute;
  left: 0;
  top: -2px;
  font-size: 11px;
  color: var(--ubg-bento-faint);
}
.ubg-bento-chart__line {
  stroke: #8b7cf6;
  stroke-width: 2;
  fill: none;
  stroke-linejoin: round;
  stroke-dasharray: 1000;
  stroke-dashoffset: 1000;
  animation: ubg-chart-draw 2.8s ease-out forwards 0.4s;
}
@keyframes ubg-chart-draw {
  to { stroke-dashoffset: 0; }
}
.ubg-bento-chart__fill {
  opacity: 0;
  animation: ubg-chart-fade 1.2s ease-out forwards 2.2s;
}
.ubg-bento-chart__dot {
  opacity: 0;
  animation: ubg-chart-fade 0.6s ease-out forwards 2.6s;
}
@keyframes ubg-chart-fade {
  to { opacity: 1; }
}
.ubg-bento-chart__tip {
  position: absolute;
  top: 0;
  left: 52%;
  background: #181818;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  padding: 12px 14px;
  font-size: 12px;
  min-width: 190px;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.5);
  opacity: 0;
  animation: ubg-chart-fade 0.6s ease-out forwards 2.8s;
}
.ubg-bento-chart__td {
  color: var(--ubg-bento-muted);
  margin-bottom: 8px;
  font-size: 11.5px;
}
.ubg-bento-chart__tr {
  display: flex;
  align-items: center;
  gap: 8px;
  justify-content: space-between;
  margin-top: 5px;
}
.ubg-bento-chart__k {
  color: #cfcfcf;
  display: flex;
  align-items: center;
  gap: 7px;
}
.ubg-bento-chart__k i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  display: inline-block;
}
.ubg-bento-chart__v { font-variant-numeric: tabular-nums; }

/* Watch / wearables */
.ubg-bento-watch {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
}
.ubg-bento-watch__device {
  width: 96px;
  height: 116px;
  background: #000;
  border: 5px solid #2a2a2a;
  border-radius: 26px;
  position: relative;
  flex-shrink: 0;
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.5);
}
.ubg-bento-watch__device::before {
  content: "";
  position: absolute;
  right: -9px;
  top: 32px;
  width: 4px;
  height: 22px;
  background: #2a2a2a;
  border-radius: 3px;
}
.ubg-bento-watch__screen {
  position: absolute;
  inset: 5px;
  border-radius: 18px;
  background: #0b0e14;
  overflow: hidden;
  padding: 9px;
}
.ubg-bento-watch__wt {
  font-size: 7.5px;
  color: var(--ubg-bento-faint);
  margin-top: 7px;
}
.ubg-bento-watch__wt:first-child { margin-top: 0; }
.ubg-bento-watch__wv {
  font-size: 15px;
  font-weight: 700;
  margin-top: 1px;
}
.ubg-bento-watch__wv b {
  color: var(--ubg-bento-green);
  font-weight: 700;
}
.ubg-bento-watch__ecg {
  margin-top: 8px;
  width: 100%;
}
.ubg-bento-watch__heart {
  stroke: var(--ubg-bento-green);
  stroke-width: 1.6;
  fill: none;
  stroke-linejoin: round;
  stroke-linecap: round;
  stroke-dasharray: 120;
  stroke-dashoffset: 120;
  animation: ubg-watch-draw 2.6s linear infinite;
}
@keyframes ubg-watch-draw {
  0% { stroke-dashoffset: 120; }
  55%, 100% { stroke-dashoffset: 0; }
}
.ubg-bento-watch__ok { color: var(--ubg-bento-green); }
.ubg-bento-watch__list { flex: 1; min-width: 0; }
.ubg-bento-watch__led {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--ubg-bento-green);
  animation: ubg-watch-blink 1.8s ease-in-out infinite;
  flex-shrink: 0;
}
@keyframes ubg-watch-blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.25; }
}
.ubg-bento-watch .ubg-bento-li { padding: 7px 10px; }

@media (prefers-reduced-motion: reduce) {
  .ubg-bento--mobile *,
  .ubg-bento--mobile *::before,
  .ubg-bento--mobile *::after,
  .ubg-bento--iot *,
  .ubg-bento--iot *::before,
  .ubg-bento--iot *::after,
  .ubg-bento--ia *,
  .ubg-bento--ia *::before,
  .ubg-bento--ia *::after {
    animation: none !important;
    transition: none !important;
  }
  .ubg-bento-chart__line { stroke-dashoffset: 0; }
  .ubg-bento-chart__fill,
  .ubg-bento-chart__dot,
  .ubg-bento-chart__tip,
  .ubg-bento-push__card--2 { opacity: 1; }
  .ubg-bento-push {
    display: flex;
    flex-direction: column;
    gap: 10px;
    justify-content: center;
  }
  .ubg-bento-push__card {
    position: static;
    transform: none;
  }
  .ubg-bento-phone__notif { transform: translateY(0); }
  .ubg-bento-iot-steps__track::after { width: 46%; }
}

/* ---------- Bento IoT (page prototypage / objets connectés) ---------- */
.ubg-bento--iot > ::before,
.ubg-bento--iot > .ubg-bento__stack .ubg-bento__cell::before {
  background-image:
    var(--ubg-bento-line-h),
    var(--ubg-bento-line-h),
    var(--ubg-bento-line-v),
    var(--ubg-bento-line-v);
  background-size: 88% 1px, 88% 1px, 1px 84%, 1px 84%;
  background-position: center top, center bottom, left center, right center;
}
.ubg-bento--iot > .ubg-bento__stack .ubg-bento__cell::before {
  background-size: 84% 1px, 84% 1px, 1px 80%, 1px 80%;
}
/* Left edge: 1 board, 3 feats, 6 steps */
.ubg-bento--iot > :nth-child(1)::before,
.ubg-bento--iot > :nth-child(3)::before,
.ubg-bento--iot > :nth-child(6)::before {
  background-image: var(--ubg-bento-line-h), var(--ubg-bento-line-h), var(--ubg-bento-line-v);
  background-size: 88% 1px, 88% 1px, 1px 84%;
  background-position: center top, center bottom, right center;
}
/* Right edge: 2 arch, 5 stack, 7 telemetry */
.ubg-bento--iot > :nth-child(2)::before,
.ubg-bento--iot > :nth-child(5)::before,
.ubg-bento--iot > :nth-child(7)::before {
  background-image: var(--ubg-bento-line-h), var(--ubg-bento-line-h), var(--ubg-bento-line-v);
  background-size: 88% 1px, 88% 1px, 1px 84%;
  background-position: center top, center bottom, left center;
}
.ubg-bento--iot > :nth-child(5) .ubg-bento__cell::before {
  background-image: var(--ubg-bento-line-h), var(--ubg-bento-line-h), var(--ubg-bento-line-v);
  background-size: 84% 1px, 84% 1px, 1px 80%;
  background-position: center top, center bottom, left center;
}
/* Bottom row: pas de bordure basse externe */
.ubg-bento--iot > :nth-child(6)::before {
  background-image: var(--ubg-bento-line-h), var(--ubg-bento-line-v);
  background-size: 88% 1px, 1px 84%;
  background-position: center top, right center;
}
.ubg-bento--iot > :nth-child(7)::before {
  background-image: var(--ubg-bento-line-h), var(--ubg-bento-line-v);
  background-size: 88% 1px, 1px 84%;
  background-position: center top, left center;
}

.ubg-bento-iot-led {
  animation: ubg-iot-ledblink 1.8s ease-in-out infinite;
}
@keyframes ubg-iot-ledblink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.2; }
}
.ubg-bento-iot-dot {
  width: 8px;
  height: 8px;
  border-radius: 2.5px;
  flex-shrink: 0;
}

/* Carte électronique */
.ubg-bento-iot-board {
  display: flex;
  justify-content: center;
}
.ubg-bento-iot-board svg {
  width: 100%;
  max-width: 280px;
}
.ubg-bento-iot-board__trace {
  stroke: #1c2836;
  stroke-width: 1.4;
  fill: none;
}

/* Architecture bout en bout */
.ubg-bento-iot-arch {
  flex: 1;
  position: relative;
  min-height: 0;
}
.ubg-bento-iot-arch svg {
  width: 100%;
  height: 100%;
  display: block;
}
.ubg-bento-iot-arch__rail {
  stroke: #242424;
  stroke-width: 1.5;
  fill: none;
}
.ubg-bento-iot-arch__t {
  font-size: 11px;
  fill: #e0e0e0;
  font-weight: 600;
}
.ubg-bento-iot-arch__s {
  font-size: 8.5px;
  fill: #5a5a5a;
}
.ubg-bento-iot-arch__core {
  fill: #0f1622;
  stroke: #2b4a77;
  stroke-width: 1.5;
}
.ubg-bento-iot-arch__chip {
  fill: #161616;
  stroke: #2a2a2a;
}
.ubg-bento-iot-arch__chip-t {
  font-size: 8px;
  fill: #8f8f8f;
}
.ubg-bento-iot-arch__ico {
  fill: none;
  stroke: #cfcfcf;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.ubg-bento-iot-arch__node {
  transform-box: fill-box;
  transform-origin: center;
  animation: ubg-iot-floaty 5s ease-in-out infinite;
}
@keyframes ubg-iot-floaty {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}

/* Flotte */
.ubg-bento-iot-fleet {
  background: var(--ubg-bento-card-2);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 13px;
  overflow: hidden;
}
.ubg-bento-iot-fleet__h {
  padding: 11px 13px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.ubg-bento-iot-fleet__t {
  font-size: 12px;
  font-weight: 600;
}
.ubg-bento-iot-fleet__n {
  font-size: 10px;
  color: var(--ubg-bento-green);
  display: flex;
  align-items: center;
  gap: 5px;
}
.ubg-bento-iot-fleet__n .ubg-bento-iot-led {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--ubg-bento-green);
  flex-shrink: 0;
}
.ubg-bento-iot-fleet__r {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 9px 13px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 11.5px;
}
.ubg-bento-iot-fleet__r:last-child { border-bottom: none; }
.ubg-bento-iot-fleet__ico {
  width: 20px;
  height: 20px;
  border-radius: 6px;
  background: #242424;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.ubg-bento-iot-fleet__ico svg {
  width: 12px;
  height: 12px;
  fill: none;
  stroke: #bbb;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.ubg-bento-iot-fleet__name {
  flex: 1;
  color: #dedede;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ubg-bento-iot-fleet__v {
  font-size: 10px;
  color: var(--ubg-bento-faint);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.ubg-bento-iot-batt {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.ubg-bento-iot-batt i {
  width: 16px;
  height: 8px;
  border: 1px solid #3a3a3a;
  border-radius: 2px;
  position: relative;
  display: inline-block;
}
.ubg-bento-iot-batt i::before {
  content: "";
  position: absolute;
  inset: 1px;
  width: var(--b);
  background: var(--ubg-bento-green);
  border-radius: 1px;
}
.ubg-bento-iot-batt i::after {
  content: "";
  position: absolute;
  right: -3px;
  top: 2px;
  width: 2px;
  height: 4px;
  background: #3a3a3a;
  border-radius: 1px;
}

/* M2M */
.ubg-bento-iot-m2m {
  display: flex;
  justify-content: center;
}
.ubg-bento-iot-m2m svg {
  width: 100%;
  max-width: 300px;
}

/* Stepper idée → série */
.ubg-bento-iot-steps {
  padding: 0 6px;
}
.ubg-bento-iot-steps__track {
  display: flex;
  justify-content: space-between;
  position: relative;
  margin-bottom: 6px;
}
.ubg-bento-iot-steps__track::before {
  content: "";
  position: absolute;
  left: 22px;
  right: 22px;
  top: 19px;
  height: 2px;
  background: #232323;
  border-radius: 1px;
}
.ubg-bento-iot-steps__track::after {
  content: "";
  position: absolute;
  left: 22px;
  top: 19px;
  height: 2px;
  border-radius: 1px;
  background: linear-gradient(90deg, var(--ubg-bento-green), var(--ubg-bento-blue));
  width: 0;
  animation: ubg-iot-proggrow 2.2s ease-out forwards 0.4s;
}
@keyframes ubg-iot-proggrow {
  to { width: 46%; }
}
.ubg-bento-iot-step {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  width: 64px;
  text-align: center;
}
.ubg-bento-iot-step__sc {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #131313;
  border: 1.5px solid #2c2c2c;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  color: var(--ubg-bento-faint);
}
.ubg-bento-iot-step.is-done .ubg-bento-iot-step__sc {
  border-color: rgba(74, 222, 128, 0.5);
  color: var(--ubg-bento-green);
}
.ubg-bento-iot-step.is-now .ubg-bento-iot-step__sc {
  border-color: var(--ubg-bento-blue);
  color: var(--ubg-bento-blue);
  animation: ubg-iot-steppulse 2.4s ease-in-out infinite;
}
@keyframes ubg-iot-steppulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(75, 155, 255, 0.35); }
  50% { box-shadow: 0 0 0 9px rgba(75, 155, 255, 0); }
}
.ubg-bento-iot-step__n {
  font-size: 11.5px;
  font-weight: 600;
  color: #e0e0e0;
}
.ubg-bento-iot-step__s {
  font-size: 9.5px;
  color: var(--ubg-bento-faint);
  line-height: 1.35;
}
.ubg-bento-iot-step.is-next .ubg-bento-iot-step__n {
  color: var(--ubg-bento-faint);
}

/* Télémétrie */
.ubg-bento-iot-mon {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.ubg-bento-iot-mon .ubg-bento-mon__stats {
  grid-template-columns: repeat(3, 1fr);
}
.ubg-bento-iot-mon .ubg-bento-fb {
  gap: 7px;
}
.ubg-bento-iot-mon .ubg-bento-fb .ubg-bento-iot-led {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--ubg-bento-green);
  flex-shrink: 0;
}
.ubg-bento-iot-mon__ok {
  color: var(--ubg-bento-green);
}
.ubg-bento--iot .ubg-bento__cell--cta {
  justify-content: center;
}

@media (max-width: 960px) {
  .section-bento-web .ubg-bento {
    margin-left: 0;
    width: 100%;
    max-width: 100%;
  }
  .ubg-bento__cell--span-2,
  .ubg-bento__cell--span-3,
  .ubg-bento__cell--span-4,
  .ubg-bento__cell--span-6,
  .ubg-bento__stack,
  .ubg-bento__stack--wide {
    grid-column: span 6;
    max-width: 100%;
  }
  .ubg-bento-connect__scroll {
    max-width: 100%;
  }
  .ubg-bento-chart__tip {
    left: auto;
    right: 8px;
  }
  .ubg-bento-os__devs {
    flex-wrap: wrap;
  }
  .ubg-bento-mon__stats {
    grid-template-columns: repeat(2, 1fr);
    row-gap: 20px;
  }
  .ubg-bento-iot-steps__track {
    flex-wrap: wrap;
    gap: 14px;
    justify-content: center;
  }
  .ubg-bento-iot-steps__track::before,
  .ubg-bento-iot-steps__track::after {
    display: none;
  }
  .ubg-bento-iot-mon .ubg-bento-mon__stats {
    grid-template-columns: repeat(3, 1fr);
  }
  .ubg-bento-geo {
    grid-template-columns: 1fr;
  }
  .ubg-bento-saas__side {
    width: 140px;
  }
  .ubg-bento__cell {
    max-width: 100%;
    min-height: 340px;
    padding: 22px;
  }
  .ubg-bento__stack .ubg-bento__cell {
    min-height: 0;
    padding: 16px 18px;
  }
  .ubg-bento__stack--wide .ubg-bento__cell--cta {
    min-height: 0;
    padding: 18px 20px;
  }
  .ubg-bento-cta {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto;
    row-gap: 6px;
  }
  .ubg-bento-cta__chip {
    grid-column: 1;
    grid-row: 3;
    justify-self: start;
  }
}
@media (max-width: 640px) {
  .ubg-bento-saas__side {
    display: none;
  }
  .ubg-bento__label {
    font-size: 15px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .ubg-bento-ms__live,
  .ubg-bento__arrow {
    animation: none !important;
    transition: none !important;
  }
}

/* ---------- Expertises métiers — cycle ---------- */
.section-expertises-metiers {
  position: relative;
  overflow-x: hidden;
}
.section-expertises-metiers__intro {
  position: relative;
  overflow: visible;
  z-index: 0;
}
.section-expertises-metiers__intro .s-img_item {
  z-index: -1;
  position: absolute;
  inset: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  pointer-events: none;
  overflow: visible;
}
.section-expertises-metiers__intro .s-img_item img {
  filter: blur(200px);
  opacity: 0.82;
  width: min(720px, 115vw);
  height: 100%;
  min-height: 480px;
  max-width: none;
  object-fit: cover;
  object-position: center 40%;
}
.section-expertises-metiers__intro .sect-tagline {
  position: relative;
  overflow: visible;
}
.section-expertises-metiers__intro > .container {
  position: relative;
  z-index: 1;
}
.section-expertises-metiers .sect-main {
  position: relative;
  padding-bottom: 48px;
  overflow-x: hidden;
}
.section-expertises-metiers .sect-main .container {
  position: relative;
  z-index: 1;
}
.section-expertises-metiers .sect-title {
  margin-bottom: 36px;
}
.ubg-cycle {
  --ubg-cycle-line: rgba(255, 255, 255, 0.1);
  --ubg-cycle-text: #f5f4f7;
  --ubg-cycle-muted: #a3a1ad;
  --ubg-cycle-faint: #6a6873;
  --ubg-cycle-accent: #38B6D4;
  width: 100%;
  margin: 0;
  font-family: "Outfit", sans-serif;
  color: var(--ubg-cycle-text);
}
.ubg-cycle__hero {
  padding: 0 0 28px;
  border-bottom: 1px solid var(--ubg-cycle-line);
}
.ubg-cycle-frise {
  margin-top: 0;
  padding: 0 48px;
}
.ubg-cycle-frise__title {
  margin: 0 0 14px;
  color: #ffffff;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-size: 12px;
  text-align: center;
}
.ubg-cycle-frise__track {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 18px 0;
  position: relative;
  align-items: start;
}
.ubg-cycle-frise__track::before {
  content: "";
  position: absolute;
  left: 8.333%;
  right: 8.333%;
  top: 10px;
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(255, 255, 255, 0.16) 12%,
    rgba(255, 255, 255, 0.16) 88%,
    transparent 100%
  );
}
.ubg-cycle-frise__track::after {
  content: "";
  position: absolute;
  top: 9px;
  left: 8.333%;
  width: 56px;
  height: 2px;
  border-radius: 999px;
  transform: translateX(-50%);
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 0.12) 18%,
    rgba(255, 255, 255, 0.92) 50%,
    rgba(255, 255, 255, 0.12) 82%,
    rgba(255, 255, 255, 0) 100%
  );
  box-shadow:
    0 0 8px rgba(255, 255, 255, 0.2),
    0 0 14px rgba(255, 255, 255, 0.08);
  animation: ubg-frise-sweep 8.6s linear infinite;
  pointer-events: none;
  z-index: 0;
}
.ubg-cycle-frise__step {
  position: relative;
  padding-top: 22px;
  text-align: center;
  z-index: 1;
}
.ubg-cycle-frise__step::before {
  content: "";
  position: absolute;
  top: 6px;
  left: 50%;
  transform: translateX(-50%);
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #7f8594;
  box-shadow: 0 0 0 3px rgba(10, 10, 10, 0.85);
  animation: ubg-frise-dot-glow 8.6s ease-in-out infinite;
}
.ubg-cycle-frise__label {
  display: inline-block;
  font-size: 15px;
  line-height: 1.35;
  color: var(--ubg-cycle-muted);
  text-wrap: balance;
  transition: color 0.35s ease, text-shadow 0.35s ease;
}
/* Sous-frise beta sous le segment Developpement -> Recette qualite */
.ubg-cycle-frise__subtrack {
  list-style: none;
  margin: 14px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  position: relative;
  width: 50%;
  margin-left: 25%;
}
.ubg-cycle-frise__subtrack::before {
  content: "";
  position: absolute;
  left: 16.666%;
  right: 16.666%;
  top: 9px;
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(255, 255, 255, 0.14) 18%,
    rgba(255, 255, 255, 0.14) 82%,
    transparent 100%
  );
}
.ubg-cycle-frise__subtrack::after {
  content: "";
  position: absolute;
  left: 50%;
  top: -46px;
  width: 1px;
  height: 76px;
  transform: translateX(-50%);
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.18) 0%,
    rgba(255, 255, 255, 0.18) 78%,
    rgba(255, 255, 255, 0) 100%
  );
}
.ubg-cycle-frise__substep {
  position: relative;
  padding-top: 20px;
  text-align: center;
}
.ubg-cycle-frise__substep::before {
  content: "";
  position: absolute;
  top: 5px;
  left: 50%;
  transform: translateX(-50%);
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #7f8594;
  box-shadow: 0 0 0 3px rgba(10, 10, 10, 0.72);
  animation: ubg-frise-beta-dot-glow 8.6s linear infinite;
}
.ubg-cycle-frise__sublabel {
  display: inline-block;
  font-size: 15px;
  line-height: 1.3;
  color: rgba(255, 255, 255, 0.45);
  text-transform: none;
  letter-spacing: 0.08em;
  animation: ubg-frise-beta-label-glow 8.6s linear infinite;
}
/* Frise mobile : 2 betas (Private Store / TestFlight) sous Dev → Recette */
.ubg-cycle-frise--mobile .ubg-cycle-frise__subtrack {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: 33.333%;
  margin-left: 33.333%;
}
.ubg-cycle-frise--mobile .ubg-cycle-frise__subtrack::before {
  left: 25%;
  right: 25%;
}
.ubg-cycle-frise--mobile .ubg-cycle-frise__sublabel {
  font-size: 12px;
  letter-spacing: 0.04em;
  max-width: 12em;
  text-wrap: balance;
}

@keyframes ubg-frise-sweep {
  0% {
    left: 8.333%;
    opacity: 0;
  }
  6% {
    opacity: 1;
  }
  94% {
    opacity: 1;
  }
  100% {
    left: 91.666%;
    opacity: 0;
  }
}

/* 6 etapes réparties sur toute la longueur */
.ubg-cycle-frise__step:nth-child(1)::before { animation-delay:  0.00s; }
.ubg-cycle-frise__step:nth-child(2)::before { animation-delay:  1.72s; }
.ubg-cycle-frise__step:nth-child(3)::before { animation-delay:  3.44s; }
.ubg-cycle-frise__step:nth-child(4)::before { animation-delay:  5.16s; }
.ubg-cycle-frise__step:nth-child(5)::before { animation-delay:  6.88s; }
.ubg-cycle-frise__step:nth-child(6)::before { animation-delay:  8.60s; }
.ubg-cycle-frise__step:nth-child(1) .ubg-cycle-frise__label { animation: ubg-frise-label-glow 8.6s linear infinite; animation-delay:  0.00s; }
.ubg-cycle-frise__step:nth-child(2) .ubg-cycle-frise__label { animation: ubg-frise-label-glow 8.6s linear infinite; animation-delay:  1.72s; }
.ubg-cycle-frise__step:nth-child(3) .ubg-cycle-frise__label { animation: ubg-frise-label-glow 8.6s linear infinite; animation-delay:  3.44s; }
.ubg-cycle-frise__step:nth-child(4) .ubg-cycle-frise__label { animation: ubg-frise-label-glow 8.6s linear infinite; animation-delay:  5.16s; }
.ubg-cycle-frise__step:nth-child(5) .ubg-cycle-frise__label { animation: ubg-frise-label-glow 8.6s linear infinite; animation-delay:  6.88s; }
.ubg-cycle-frise__step:nth-child(6) .ubg-cycle-frise__label { animation: ubg-frise-label-glow 8.6s linear infinite; animation-delay:  8.60s; }

@keyframes ubg-frise-dot-glow {
  0%, 7%, 100% {
    background: #7f8594;
    box-shadow: 0 0 0 3px rgba(10, 10, 10, 0.85);
  }
  2.5%, 5.5% {
    background: #ffffff;
    box-shadow:
      0 0 0 3px rgba(10, 10, 10, 0.85),
      0 0 12px rgba(255, 255, 255, 0.78);
  }
}
@keyframes ubg-frise-label-glow {
  0%, 7%, 100% {
    color: var(--ubg-cycle-muted);
    text-shadow: none;
    font-weight: 400;
  }
  2.5%, 5.5% {
    color: #ffffff;
    text-shadow:
      0 0 12px rgba(255, 255, 255, 0.78),
      0 0 22px rgba(255, 255, 255, 0.45);
    font-weight: 600;
  }
}
/* Lueur beta : entre Développement (40%) et Recette qualité (60%) */
@keyframes ubg-frise-beta-label-glow {
  0%, 39%, 62%, 100% {
    color: rgba(255, 255, 255, 0.45);
    text-shadow: none;
    font-weight: 400;
  }
  43%, 57% {
    color: #ffffff;
    text-shadow:
      0 0 12px rgba(255, 255, 255, 0.78),
      0 0 22px rgba(255, 255, 255, 0.45);
    font-weight: 600;
  }
}
@keyframes ubg-frise-beta-dot-glow {
  0%, 39%, 62%, 100% {
    background: #7f8594;
    box-shadow: 0 0 0 3px rgba(10, 10, 10, 0.72);
  }
  43%, 57% {
    background: #ffffff;
    box-shadow:
      0 0 0 3px rgba(10, 10, 10, 0.72),
      0 0 12px rgba(255, 255, 255, 0.78);
  }
}
.ubg-cycle__track {
  display: flex;
  flex-direction: column;
  padding: 8px 48px 0;
}
.ubg-cycle__row,
.ubg-cycle__cluster {
  display: grid;
  grid-template-columns: 168px 1fr;
  border-bottom: 1px solid var(--ubg-cycle-line);
  background: transparent;
  transition: background-color 0.28s ease;
}
.ubg-cycle__row--last,
.ubg-cycle__cluster:last-child {
  border-bottom: none;
}
.ubg-cycle__row:hover,
.ubg-cycle__cluster:hover {
  background: rgba(255, 255, 255, 0.02);
}
.ubg-cycle__index {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 36px 32px 36px 0;
  border-right: 1px solid var(--ubg-cycle-line);
}
.ubg-cycle__spine {
  position: absolute;
  right: -1px;
  top: 0;
  bottom: 0;
  width: 1px;
  background: linear-gradient(180deg, transparent 0%, var(--ubg-cycle-line) 12%, var(--ubg-cycle-line) 88%, transparent 100%);
}
.ubg-cycle__spine--end {
  bottom: 50%;
}
.ubg-cycle__dot {
  position: absolute;
  right: -5px;
  top: 44px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--ubg-cycle-faint);
  box-shadow: 0 0 0 4px var(--black);
  transition: background-color 0.28s ease, box-shadow 0.28s ease;
  z-index: 1;
}
.ubg-cycle__row:hover .ubg-cycle__dot,
.ubg-cycle__cluster:hover .ubg-cycle__dot {
  background: #ffffff;
  box-shadow:
    0 0 0 4px var(--black),
    0 0 16px rgba(255, 255, 255, 0.55);
}
.ubg-cycle__num {
  position: relative;
  z-index: 1;
  margin-left: 0;
  padding-left: 0;
  font-family: "DM Sans", sans-serif;
  font-size: 28px;
  font-weight: 700;
  letter-spacing: -0.05em;
  line-height: 1;
  color: var(--ubg-cycle-text);
  font-variant-numeric: tabular-nums;
}
.ubg-cycle__phase {
  position: relative;
  z-index: 1;
  margin-left: 0;
  padding-left: 0;
  font-family: "Mono", monospace;
  font-size: 10px;
  line-height: 16px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ubg-cycle-faint);
  transition: color 0.28s ease;
}
.ubg-cycle__row:hover .ubg-cycle__phase,
.ubg-cycle__cluster:hover .ubg-cycle__phase {
  color: var(--ubg-cycle-accent);
}
.ubg-cycle__body {
  width: 100%;
  min-width: 0;
  padding: 36px 48px 40px 48px;
  box-sizing: border-box;
}
.ubg-cycle__title {
  margin: 0 0 12px;
  font-size: 22px;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--ubg-cycle-text);
}
.ubg-cycle__text {
  margin: 0 0 12px;
  max-width: none;
  font-size: 15px;
  line-height: 1.7;
  color: var(--ubg-cycle-muted);
}
.ubg-cycle__text:last-child {
  margin-bottom: 0;
}
.ubg-cycle__twins {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  width: 100%;
  min-width: 0;
}
.ubg-cycle__twin {
  width: 100%;
  min-width: 0;
  padding: 36px 48px 40px 48px;
  box-sizing: border-box;
  transition: background-color 0.28s ease;
}
.ubg-cycle__twin-mark {
  display: block;
  margin-bottom: 12px;
  font-family: "DM Sans", sans-serif;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ubg-cycle-faint);
}
.ubg-cycle__twin + .ubg-cycle__twin {
  border-left: 1px solid var(--ubg-cycle-line);
  padding-left: 48px;
}
.ubg-cycle__twin:hover {
  background: rgba(255, 255, 255, 0.02);
}
@media (max-width: 991px) {
  .ubg-cycle__hero {
    padding: 32px 28px 28px;
  }
  .ubg-cycle-frise {
    padding-left: 0;
    padding-right: 0;
  }
  .ubg-cycle-frise__track {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px 10px;
  }
  .ubg-cycle-frise__track::before,
  .ubg-cycle-frise__track::after {
    display: none;
  }
  .ubg-cycle-frise__step {
    text-align: left;
    padding-top: 0;
    padding-left: 18px;
  }
  .ubg-cycle-frise__step::before {
    top: 4px;
    left: 0;
    transform: none;
    animation: none;
  }
  .ubg-cycle-frise__label {
    animation: none !important;
  }
  .ubg-cycle-frise__subtrack {
    display: none;
  }
  .ubg-cycle__row,
  .ubg-cycle__cluster {
    grid-template-columns: 1fr;
  }
  .ubg-cycle__track {
    padding: 8px 0 0;
  }
  .ubg-cycle__index {
    flex-direction: row;
    align-items: baseline;
    gap: 14px;
    padding: 28px 28px 0;
    border-right: none;
  }
  .ubg-cycle__spine,
  .ubg-cycle__dot {
    display: none;
  }
  .ubg-cycle__num,
  .ubg-cycle__phase {
    margin-left: 0;
  }
  .ubg-cycle__body,
  .ubg-cycle__twin {
    padding: 12px 28px 28px;
    border-left: none;
  }
  .ubg-cycle__twins {
    grid-template-columns: 1fr;
  }
  .ubg-cycle__twin + .ubg-cycle__twin {
    border-left: none;
    border-top: 1px solid var(--ubg-cycle-line);
  }
}
@media (max-width: 575px) {
  .ubg-bento-connect__lead {
    font-size: 12px;
  }
  .ubg-bento-connect__item {
    min-width: 82px;
    padding: 10px 10px 8px;
    font-size: 11px;
  }
  .ubg-cycle-frise__track {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 14px;
  }
  .ubg-cycle__title {
    font-size: 18px;
  }
}

/* ===== UBG Shipped gallery (home references) ===== */
.section-benefit .sect-main {
  padding-top: 48px;
  padding-bottom: 40px;
  position: relative;
  /* Pas d’overflow ici : sinon stacking context qui bloque les particules */
  overflow: visible;
}
.ubg-shipped {
  width: 100%;
  overflow: hidden;
  position: relative;
  /* Sous les particules (.overlay_body z-index: -5) */
  z-index: -10;
}
.ubg-shipped::before,
.ubg-shipped::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: min(180px, 22%);
  z-index: 2;
  pointer-events: none;
}
.ubg-shipped::before {
  left: 0;
  background: linear-gradient(
    90deg,
    #000 0%,
    rgba(0, 0, 0, 0.92) 28%,
    rgba(0, 0, 0, 0.55) 58%,
    rgba(0, 0, 0, 0.18) 82%,
    transparent 100%
  );
}
.ubg-shipped::after {
  right: 0;
  background: linear-gradient(
    270deg,
    #000 0%,
    rgba(0, 0, 0, 0.92) 28%,
    rgba(0, 0, 0, 0.55) 58%,
    rgba(0, 0, 0, 0.18) 82%,
    transparent 100%
  );
}
.ubg-shipped__gallery {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
  overflow: hidden;
}
.ubg-shipped__rail {
  overflow: hidden;
  width: 100%;
  border-radius: 6px;
}
.ubg-shipped__strip {
  display: flex;
  width: max-content;
  max-width: none;
  will-change: transform;
}
.ubg-shipped__strip--forward {
  animation: ubg-shipped-marquee 55s linear infinite;
}
.ubg-shipped__strip--reverse {
  animation: ubg-shipped-marquee 62s linear infinite;
}
.ubg-shipped__group {
  display: flex;
  align-items: stretch;
  gap: 10px;
  padding-right: 10px;
}
.ubg-shipped__shot {
  position: relative;
  margin: 0;
  flex: 0 0 auto;
  height: 320px;
  border-radius: 6px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.03);
}
.ubg-shipped__shot--desk {
  width: 497px;
}
.ubg-shipped__shot--phone {
  width: 156px;
}
.ubg-shipped__shot img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
}
@keyframes ubg-shipped-marquee {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(-50%, 0, 0);
  }
}
@media (max-width: 1199px) {
  .ubg-shipped__shot {
    height: 280px;
  }
  .ubg-shipped__shot--desk {
    width: 435px;
  }
  .ubg-shipped__shot--phone {
    width: 137px;
  }
  .ubg-shipped__strip--forward,
  .ubg-shipped__strip--reverse {
    animation-duration: 48s;
  }
}
@media (max-width: 991px) {
  .ubg-shipped__shot {
    height: 240px;
  }
  .ubg-shipped__shot--desk {
    width: 372px;
  }
  .ubg-shipped__shot--phone {
    width: 117px;
  }
  .ubg-shipped__strip--forward,
  .ubg-shipped__strip--reverse {
    animation-duration: 45s;
  }
}
@media (max-width: 767px) {
  .section-benefit .sect-main {
    padding-top: 28px;
    padding-bottom: 24px;
  }
  .section-benefit .sect-title {
    margin-bottom: 20px;
  }
  .ubg-shipped__shot {
    height: 180px;
  }
  .ubg-shipped__shot--desk {
    width: 279px;
  }
  .ubg-shipped__shot--phone {
    width: 88px;
  }
  .ubg-shipped__strip--forward,
  .ubg-shipped__strip--reverse {
    animation-duration: 38s;
  }
}
@media (prefers-reduced-motion: reduce) {
  .ubg-shipped__strip--forward,
  .ubg-shipped__strip--reverse {
    animation: none;
  }
}

/* ---------- Cas clients (galerie GetLayers + overlay) ---------- */
.section-cas-clients .sect-main {
  position: relative;
  padding-bottom: 48px;
}
.section-cas-clients .sect-title {
  padding-top: 32px;
  margin-bottom: 24px;
}
.ubg-cas {
  margin: 0;
  width: 100%;
  padding: 32px 48px 0;
}
.ubg-cas-filters {
  margin-bottom: 28px;
}
.ubg-cas-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 22px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  margin-bottom: 18px;
}
.ubg-cas-tab {
  position: relative;
  appearance: none;
  background: none;
  border: 0;
  padding: 10px 0 14px;
  margin: 0;
  font-family: "Outfit", sans-serif;
  font-size: 15px;
  color: #8f8d98;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
a.ubg-cas-tab {
  text-decoration: none;
  color: #8f8d98;
}
.ubg-cas-tab.is-on {
  color: #f5f4f7;
}
a.ubg-cas-tab.is-on {
  color: #f5f4f7;
}
.ubg-cas-tab.is-on::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 1px;
  background: #fff;
}
.ubg-cas-filter-x {
  display: none;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  margin-left: 2px;
  border-radius: 999px;
  color: #cfcdd6;
  flex-shrink: 0;
}
.ubg-cas-tab.is-on .ubg-cas-filter-x,
.ubg-cas-chip.is-on .ubg-cas-filter-x {
  display: inline-flex;
}
.ubg-cas-filter-x:hover {
  color: #fff;
  background: rgba(255, 255, 255, 0.12);
}
.ubg-cas-count {
  font-size: 12px;
  color: #6a6873;
  font-variant-numeric: tabular-nums;
}
.ubg-cas-tab.is-on .ubg-cas-count,
.ubg-cas-chip.is-on .ubg-cas-count {
  color: #a3a1ad;
}
.ubg-cas-chips {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
.ubg-cas-chips[hidden] {
  display: none;
}
.ubg-cas-chips__label {
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #6a6873;
  margin-right: 4px;
}
.ubg-cas-chip {
  appearance: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: transparent;
  color: #cfcdd6;
  font-family: "Outfit", sans-serif;
  font-size: 13px;
  cursor: pointer;
}
.ubg-cas-chip img {
  width: 12px;
  height: 12px;
  flex-shrink: 0;
}
.ubg-cas-chip.is-on {
  border-color: rgba(255, 255, 255, 0.35);
  background: rgba(255, 255, 255, 0.06);
  color: #fff;
}
.ubg-cas-chip.is-hidden {
  display: none;
}
.ubg-cas-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  contain: layout;
}
@property --ubg-cas-angle {
  syntax: "<angle>";
  initial-value: 0deg;
  inherits: false;
}
.ubg-cas-card {
  appearance: none;
  position: relative;
  display: flex;
  flex-direction: column;
  text-align: left;
  padding: 0;
  margin: 0;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 24px;
  background: #0d0d0d;
  color: inherit;
  text-decoration: none;
  overflow: hidden;
  cursor: pointer;
  min-height: 0;
  font-family: "Outfit", sans-serif;
  content-visibility: auto;
  contain-intrinsic-size: auto 280px;
  transition: transform 0.25s ease, border-color 0.25s ease;
}
.ubg-cas-card::before,
.ubg-blog-card::before,
.ubg-blog-featured::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 3;
  border-radius: inherit;
  padding: 1.5px;
  pointer-events: none;
  opacity: 0;
  background: conic-gradient(
    from var(--ubg-cas-angle),
    transparent 0deg,
    rgba(245, 244, 247, 0.95) 22deg,
    rgba(245, 244, 247, 0.35) 52deg,
    transparent 88deg,
    transparent 180deg,
    rgba(245, 244, 247, 0.7) 202deg,
    rgba(245, 244, 247, 0.22) 232deg,
    transparent 268deg
  );
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  mask-composite: exclude;
  transition: opacity 0.25s ease;
}
.ubg-cas-card:hover,
.ubg-blog-card:hover,
.ubg-blog-featured:hover {
  transform: translateY(-3px);
  border-color: rgba(255, 255, 255, 0.14);
}
.ubg-cas-card:hover::before,
.ubg-blog-card:hover::before,
.ubg-blog-featured:hover::before {
  opacity: 1;
  animation: ubg-cas-border-spin 2.8s linear infinite;
}
@keyframes ubg-cas-border-spin {
  to {
    --ubg-cas-angle: 360deg;
  }
}
.ubg-cas-card::before {
  content: none;
}
.ubg-cas-card:hover::before,
.ubg-cas-card:focus-visible::before {
  content: "";
}
@media (prefers-reduced-motion: reduce) {
  .ubg-cas-card:hover::before,
  .ubg-blog-card:hover::before,
  .ubg-blog-featured:hover::before {
    animation: none;
  }
}
.ubg-cas-card.is-hidden,
.ubg-cas-cta.is-hidden {
  display: none;
}
.ubg-cas-card__media {
  position: relative;
  display: block;
  height: 132px;
  overflow: hidden;
  background: radial-gradient(120% 80% at 70% 20%, #1a2436 0%, #0d0d0d 60%);
}
.ubg-cas-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ubg-cas-card__media.is-svg img {
  object-fit: contain;
  padding: 4px 8px;
  box-sizing: border-box;
}
.ubg-cas-card__media.is-empty {
  background: #0d0d0d;
}
.ubg-cas-card__placeholder {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(0, 0, 0, 0.28) 0%, rgba(0, 0, 0, 0.55) 100%),
    var(--ubg-cas-bg, url("../images/cas/iot.jpg")) center / cover no-repeat;
}
.ubg-cas-card__media.is-empty::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(128deg, var(--ubg-cas-tint-a, #2563eb) 0%, var(--ubg-cas-tint-b, #22d3ee) 100%);
  opacity: 0.42;
  pointer-events: none;
}
.ubg-cas-kind {
  position: absolute;
  left: 14px;
  top: 12px;
  z-index: 2;
  margin: 0;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #fff;
  text-shadow: 0 1px 10px rgba(0, 0, 0, 0.55);
  pointer-events: none;
}
.ubg-cas-kind__slashes {
  letter-spacing: 0;
  margin-right: 0.12em;
}
.ubg-cas-card__body {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 14px 16px 16px;
}
.ubg-cas-card__title {
  font-size: 16px;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: #fff;
}
.ubg-cas-card__client,
.ubg-cas-dialog__client {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.ubg-cas-card__client {
  font-size: 13px;
  color: #8f8d98;
}
.ubg-cas-client-ico {
  flex-shrink: 0;
  opacity: 0.75;
}
.ubg-cas-info {
  position: relative;
  display: inline-flex;
  align-items: center;
  z-index: 4;
}
.ubg-cas-info__i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 14px;
  height: 14px;
  color: #c8c6d0;
  cursor: help;
}
.ubg-cas-info__i svg {
  display: block;
}
.ubg-cas-info__tip {
  position: absolute;
  left: 50%;
  bottom: calc(100% + 8px);
  transform: translateX(-50%);
  width: max(220px, 16em);
  padding: 8px 10px;
  border-radius: 8px;
  background: #1c1c1c;
  border: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
  font-size: 11px;
  font-weight: 400;
  font-style: normal;
  letter-spacing: 0;
  line-height: 1.4;
  color: #e8e6ef;
  text-transform: none;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.15s ease, visibility 0.15s ease;
}
.ubg-cas-info:hover .ubg-cas-info__tip {
  opacity: 1;
  visibility: visible;
}
.ubg-cas-dialog__client .ubg-cas-info__tip {
  top: calc(100% + 8px);
  bottom: auto;
  left: 0;
  transform: none;
  z-index: 6;
}
.ubg-cas-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}
.ubg-cas-card__more {
  position: absolute;
  right: 14px;
  bottom: 12px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 500;
  color: #fff;
  text-shadow: 0 1px 10px rgba(0, 0, 0, 0.55);
  white-space: nowrap;
  pointer-events: none;
}
.ubg-cas-card__more-arrow {
  display: inline-block;
  transition: transform 0.2s ease;
}
.ubg-cas-card:hover .ubg-cas-card__more-arrow {
  transform: translateX(4px);
}
.ubg-cas-tag {
  font-size: 11px;
  color: #a3a1ad;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 999px;
  padding: 3px 9px;
}
.ubg-cas-cta {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 8px;
  grid-column: span 2;
  min-height: 0;
  padding: 22px 24px 20px;
  border-radius: 24px;
  text-decoration: none;
  color: #fff;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.08);
}
.ubg-cas-cta::after {
  content: "";
  position: absolute;
  inset: -28px;
  background: url("../images/section/color-bg-2.webp") center / cover no-repeat;
  filter: blur(24px);
  opacity: 0.9;
  pointer-events: none;
  z-index: 0;
}
.ubg-cas-cta > * {
  position: relative;
  z-index: 1;
}
.ubg-cas-cta__eyebrow {
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #8f8d98;
}
.ubg-cas-cta__title {
  font-size: clamp(22px, 2vw, 28px);
  line-height: 1.12;
  letter-spacing: -0.03em;
}
.ubg-cas-cta__text {
  font-size: 15px;
  color: #a3a1ad;
  max-width: 22em;
}
.ubg-cas-cta__chip {
  margin-top: 8px;
  width: fit-content;
}
.ubg-cas-empty {
  grid-column: 1 / -1;
  color: #8f8d98;
  font-size: 15px;
  padding: 24px 0;
}
.ubg-cas-root[hidden] {
  display: none !important;
}
.ubg-cas-scrim {
  position: fixed;
  inset: 0;
  z-index: 10020;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background: rgba(6, 5, 7, 0.55);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  opacity: 0;
  transition: opacity 0.3s ease;
}
.ubg-cas-root.is-open .ubg-cas-scrim {
  opacity: 1;
}
.ubg-cas-dialog {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
  width: min(1080px, calc(100vw - 1.5rem));
  max-height: calc(100vh - 2rem);
  overflow: auto;
  border-radius: 24px;
  background: #121212;
  color: #f5f4f7;
  font-family: "Outfit", sans-serif;
  transform: scale(0.96);
  transition: transform 0.3s ease;
}
.ubg-cas-root.is-open .ubg-cas-dialog {
  transform: scale(1);
}
.ubg-cas-close {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  margin: 0;
  padding: 0;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(18, 18, 18, 0.7);
  color: #f5f4f7;
  cursor: pointer;
}
.ubg-cas-dialog__preview {
  position: relative;
  min-height: 280px;
  background: radial-gradient(120% 80% at 70% 20%, #1a2436 0%, #0d0d0d 60%);
}
.ubg-cas-dialog__preview img {
  width: 100%;
  height: 100%;
  min-height: 280px;
  object-fit: cover;
  display: block;
  background: transparent;
}
.ubg-cas-dialog__preview.is-svg {
  display: flex;
  align-items: center;
  justify-content: center;
}
.ubg-cas-dialog__preview.is-svg img {
  width: auto;
  height: auto;
  max-width: 82%;
  max-height: 82%;
  min-height: 0;
  object-fit: contain;
  padding: 0;
  background: transparent;
}
.ubg-cas-dialog__preview.is-empty {
  background: #0d0d0d;
}
.ubg-cas-dialog__preview.is-empty::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(0, 0, 0, 0.28) 0%, rgba(0, 0, 0, 0.55) 100%),
    var(--ubg-cas-bg, url("../images/cas/iot.jpg")) center / cover no-repeat;
}
.ubg-cas-dialog__preview.is-empty::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(128deg, var(--ubg-cas-tint-a, #2563eb) 0%, var(--ubg-cas-tint-b, #22d3ee) 100%);
  opacity: 0.42;
  pointer-events: none;
}
.ubg-cas-dialog__preview.is-empty img {
  display: none;
}
.ubg-cas-dialog__preview .ubg-cas-kind {
  left: 24px;
  bottom: 22px;
  font-size: 14px;
  font-weight: 700;
}
.ubg-cas-dialog__body {
  position: relative;
  z-index: 3;
  overflow: visible;
  padding: 32px 28px 28px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.ubg-cas-dialog__client {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #8f8d98;
}
.ubg-cas-dialog__title {
  margin: 0;
  font-size: clamp(24px, 3vw, 34px);
  line-height: 1.12;
  letter-spacing: -0.03em;
}
.ubg-cas-dialog__section {
  display: grid;
  gap: 8px;
}
.ubg-cas-dialog__section[hidden] {
  display: none;
}
.ubg-cas-dialog__label {
  margin: 0;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #8f8d98;
}
.ubg-cas-dialog__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.ubg-cas-dialog__text {
  font-size: 15px;
  line-height: 1.55;
  color: #cfcdd6;
}
.ubg-cas-dialog__text p {
  margin: 0 0 0.8em;
}
.ubg-cas-dialog__text p:last-child {
  margin-bottom: 0;
}
.ubg-cas-dialog__links {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}
.ubg-cas-dialog__link {
  color: #f5f4f7;
  font-size: 14px;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.ubg-cas-dialog__link:hover {
  color: #fff;
}
.ubg-cas-dialog__cta {
  margin-top: auto;
  width: fit-content;
  text-decoration: none;
}
@media (max-width: 1199px) {
  .ubg-cas-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ubg-cas-card__media {
    height: 160px;
  }
}
@media (max-width: 767px) {
  .ubg-cas-grid {
    grid-template-columns: 1fr;
  }
  .ubg-cas-cta {
    grid-column: auto;
  }
  .ubg-cas-dialog {
    grid-template-columns: 1fr;
  }
  .ubg-cas-dialog__preview,
  .ubg-cas-dialog__preview img {
    min-height: 180px;
    max-height: 220px;
  }
  .ubg-cas-dialog__preview.is-svg img {
    min-height: 0;
    max-height: 180px;
  }
}

/* ---------- Articles (liste éditoriale) ---------- */
.section-articles .sect-main {
  position: relative;
  padding-bottom: 48px;
}
.ubg-blog {
  margin: 0;
  width: 100%;
  padding: 32px 48px 0;
}
.ubg-blog-filters__row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px 32px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.ubg-section-kicker {
  margin: 0;
  font-family: "Outfit", sans-serif;
  font-size: 24px;
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.2;
  background: linear-gradient(180deg, #F4F7F5 0%, rgba(244, 247, 245, 0.82) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.ubg-blog-search {
  margin: 0;
  flex: 0 1 240px;
  padding-bottom: 12px;
}
.ubg-blog-search__field {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 0;
  border: 0;
  color: #8f8d98;
}
.ubg-blog-search__icon {
  flex-shrink: 0;
  opacity: 0.7;
}
.ubg-blog-search__field input {
  width: 100%;
  border: 0;
  background: transparent;
  color: #f5f4f7;
  font-family: "Outfit", sans-serif;
  font-size: 14px;
  line-height: 1.4;
  padding: 0;
  outline: none;
  box-shadow: none;
  appearance: none;
  -webkit-appearance: none;
}
.ubg-blog-search__field input::placeholder {
  color: #6a6873;
}
.ubg-blog-search__field:focus-within {
  color: #c8c6d0;
}
.ubg-blog-filters {
  margin-bottom: 28px;
}
.ubg-blog-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 22px;
  min-width: 0;
  flex: 1 1 auto;
}
.ubg-blog-tab {
  position: relative;
  padding: 10px 0 14px;
  margin: 0;
  font-family: "Outfit", sans-serif;
  font-size: 15px;
  color: #8f8d98;
  text-decoration: none;
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
}
.ubg-blog-tab.is-on {
  color: #f5f4f7;
}
.ubg-blog-tab.is-on::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 1px;
  background: #fff;
}
.ubg-blog-count {
  font-size: 12px;
  color: #6a6873;
  font-variant-numeric: tabular-nums;
}
.ubg-blog-tab.is-on .ubg-blog-count {
  color: #a3a1ad;
}
.ubg-blog-more {
  margin-top: 14px;
}
.ubg-blog-more__summary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  list-style: none;
  cursor: pointer;
  font-family: "Outfit", sans-serif;
  font-size: 13px;
  color: #8f8d98;
  user-select: none;
}
.ubg-blog-more__summary::-webkit-details-marker {
  display: none;
}
.ubg-blog-more__summary::after {
  content: "";
  width: 5px;
  height: 5px;
  margin-top: -2px;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  transform: rotate(45deg);
  opacity: 0.7;
}
.ubg-blog-more[open] .ubg-blog-more__summary::after {
  margin-top: 2px;
  transform: rotate(-135deg);
}
.ubg-blog-more__summary:hover {
  color: #f5f4f7;
}
.ubg-blog-chips {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
}
.ubg-blog-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: transparent;
  color: #cfcdd6;
  font-family: "Outfit", sans-serif;
  font-size: 13px;
  text-decoration: none;
}
.ubg-blog-chip.is-on,
.ubg-blog-chip:hover {
  border-color: rgba(255, 255, 255, 0.35);
  background: rgba(255, 255, 255, 0.06);
  color: #fff;
}
.ubg-blog-featured {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: 0;
  margin-bottom: 16px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 24px;
  background: #0d0d0d;
  color: inherit;
  text-decoration: none;
  overflow: hidden;
  transition: transform 0.25s ease, border-color 0.25s ease;
}
.ubg-blog-featured:hover {
  transform: translateY(-3px);
  border-color: rgba(255, 255, 255, 0.14);
}
.ubg-blog-featured__media {
  display: block;
  min-height: 280px;
  background: radial-gradient(120% 80% at 70% 20%, #1a2436 0%, #0d0d0d 60%);
  overflow: hidden;
}
.ubg-blog-featured__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ubg-blog-featured__media.is-empty,
.ubg-blog-card__media.is-empty {
  background: #0d0d0d;
}
.ubg-blog-featured__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 10px;
  padding: 28px 32px;
}
.ubg-blog-featured__eyebrow {
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #8f8d98;
}
.ubg-blog-featured__meta,
.ubg-blog-card__meta {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 12px;
  color: #8f8d98;
  font-family: "Outfit", sans-serif;
}
.ubg-blog-card .article-archive-badge,
.ubg-blog-featured .article-archive-badge {
  width: fit-content;
}
.ubg-blog-featured__title {
  font-size: clamp(22px, 2.4vw, 32px);
  font-weight: 600;
  letter-spacing: -0.03em;
  line-height: 1.15;
  color: #fff;
}
.ubg-blog-featured__excerpt {
  font-size: 15px;
  line-height: 1.5;
  color: #a3a1ad;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.ubg-blog-featured__more {
  margin-top: 6px;
  font-size: 14px;
  font-weight: 500;
  color: #f5f4f7;
}
.ubg-blog-featured__more span {
  display: inline-block;
  transition: transform 0.2s ease;
}
.ubg-blog-featured:hover .ubg-blog-featured__more span {
  transform: translateX(4px);
}
.ubg-blog-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.ubg-blog-grid--home {
  padding: 0 48px 40px;
}
.ubg-blog-related {
  margin-top: 28px;
}
.section-articles .ubg-blog-related {
  margin-top: 0;
  padding: 32px 48px 0;
}
.ubg-blog-related__title {
  margin: 0 0 28px;
}
.ubg-blog-card {
  position: relative;
  display: flex;
  flex-direction: column;
  text-align: left;
  margin: 0;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 24px;
  background: #0d0d0d;
  color: inherit;
  text-decoration: none;
  overflow: hidden;
  font-family: "Outfit", sans-serif;
  transition: transform 0.25s ease, border-color 0.25s ease;
}
.ubg-blog-card:hover {
  transform: translateY(-3px);
  border-color: rgba(255, 255, 255, 0.14);
}
.ubg-blog-card__media {
  position: relative;
  display: block;
  height: 160px;
  overflow: hidden;
  background: radial-gradient(120% 80% at 70% 20%, #1a2436 0%, #0d0d0d 60%);
}
.ubg-blog-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ubg-blog-card__more {
  position: absolute;
  right: 14px;
  bottom: 12px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 500;
  color: #fff;
  text-shadow: 0 1px 10px rgba(0, 0, 0, 0.55);
  white-space: nowrap;
}
.ubg-blog-card__more-arrow {
  display: inline-block;
  transition: transform 0.2s ease;
}
.ubg-blog-card:hover .ubg-blog-card__more-arrow {
  transform: translateX(4px);
}
.ubg-blog-card__body {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 14px 16px 16px;
}
.ubg-blog-card__title {
  font-size: 16px;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: #fff;
}
.ubg-blog-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 6px;
}
.ubg-blog-tag {
  font-size: 11px;
  color: #a3a1ad;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 999px;
  padding: 3px 9px;
  text-decoration: none;
  line-height: 1.4;
}
a.ubg-blog-tag:hover {
  color: #f5f4f7;
  border-color: rgba(255, 255, 255, 0.25);
}
.ubg-blog-cta {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 8px;
  min-height: 0;
  padding: 22px 24px 20px;
  border-radius: 24px;
  text-decoration: none;
  color: #fff;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.08);
}
.ubg-blog-cta::after {
  content: "";
  position: absolute;
  inset: -28px;
  background: url("../images/section/color-bg-2.webp") center / cover no-repeat;
  filter: blur(24px);
  opacity: 0.9;
  pointer-events: none;
  z-index: 0;
}
.ubg-blog-cta > * {
  position: relative;
  z-index: 1;
}
.ubg-blog-cta__eyebrow {
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #8f8d98;
}
.ubg-blog-cta__title {
  font-size: clamp(22px, 2vw, 28px);
  line-height: 1.12;
  letter-spacing: -0.03em;
}
.ubg-blog-cta__text {
  font-size: 15px;
  color: #a3a1ad;
  max-width: 22em;
}
.ubg-blog-cta__chip {
  margin-top: 8px;
  width: fit-content;
}
.ubg-blog-empty {
  grid-column: 1 / -1;
  color: #8f8d98;
  font-size: 15px;
  padding: 24px 0;
}
.ubg-blog-empty a {
  display: inline-block;
  margin-left: 8px;
  color: #f5f4f7;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.ubg-blog-pager {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 36px;
}
.ubg-blog-pager__item {
  min-width: 36px;
  height: 36px;
  padding: 0 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 999px;
  color: #8f8d98;
  text-decoration: none;
  font-size: 13px;
}
.ubg-blog-pager__item.is-on,
.ubg-blog-pager__item:hover {
  color: #f5f4f7;
  border-color: rgba(255, 255, 255, 0.2);
}
.ubg-blog-pager__gap {
  color: #6a6873;
  font-size: 13px;
}
@media (max-width: 1199px) {
  .ubg-blog {
    padding: 28px 16px 0;
  }
  .ubg-blog-grid--home {
    padding: 0 16px 32px;
  }
  .ubg-blog-featured {
    grid-template-columns: 1fr;
  }
  .ubg-blog-featured__media {
    min-height: 200px;
  }
  .ubg-blog-featured__body {
    padding: 20px 22px 24px;
  }
  .ubg-blog-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 767px) {
  .ubg-blog-filters__row {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
  }
  .ubg-blog-search {
    flex-basis: auto;
    padding-bottom: 10px;
  }
  .ubg-blog-grid {
    grid-template-columns: 1fr;
  }
}

/* ---------- Bento IA ---------- */
.ubg-bento--ia {
  --ubg-bento-red: #f87171;
}
.ubg-bento--ia svg {
  font-family: "Outfit", sans-serif;
}
.ubg-bento--ia .ubg-bento__cell--cta {
  justify-content: center;
}
.ubg-bento__cell--ia-stat {
  background: radial-gradient(120% 90% at 70% 20%, #131a26 0%, transparent 55%);
}
.ubg-bento-ia-glow {
  position: absolute;
  inset: auto -30% -55% -30%;
  height: 75%;
  background: radial-gradient(50% 100% at 50% 100%, rgba(75, 155, 255, 0.22), transparent 70%);
  pointer-events: none;
}
.ubg-bento__cell--ia-band {
  min-height: 210px;
}
.ubg-bento__cell--ia-short {
  min-height: 280px;
}

.ubg-bento-ia-led {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--ubg-bento-green);
  animation: ubg-bento-ia-ledblink 1.8s ease-in-out infinite;
  flex-shrink: 0;
}
@keyframes ubg-bento-ia-ledblink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.2; }
}

.ubg-bento-ia-chat {
  background: var(--ubg-bento-card-2);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  overflow: hidden;
}
.ubg-bento-ia-chat__h {
  padding: 11px 14px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11.5px;
  color: var(--ubg-bento-muted);
}
.ubg-bento-ia-chat__h b {
  color: #dedede;
  font-weight: 600;
}
.ubg-bento-ia-chat__b {
  padding: 14px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 170px;
  position: relative;
}
.ubg-bento-ia-chat__hint {
  color: var(--ubg-bento-faint);
  font-size: 10.5px;
}
.ubg-bento-ia-bub {
  max-width: 86%;
  padding: 9px 12px;
  border-radius: 13px;
  font-size: 12px;
  line-height: 1.45;
}
.ubg-bento-ia-bub--user {
  align-self: flex-end;
  background: var(--ubg-bento-blue-deep);
  color: #fff;
  border-bottom-right-radius: 4px;
}
.ubg-bento-ia-bub--ai {
  align-self: flex-start;
  background: #1b1b1b;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-bottom-left-radius: 4px;
  position: relative;
}
.ubg-bento-ia-aiwrap {
  position: relative;
  min-height: 84px;
}
.ubg-bento-ia-aiwrap .ubg-bento-ia-bub--ai {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  max-width: 92%;
}
.ubg-bento-ia-bub--a1 {
  animation: ubg-bento-ia-aicycle 9s ease-in-out infinite;
}
.ubg-bento-ia-bub--a2 {
  animation: ubg-bento-ia-aicycle 9s ease-in-out 4.5s infinite;
  opacity: 0;
}
@keyframes ubg-bento-ia-aicycle {
  0% { opacity: 0; transform: translateY(6px); }
  5%, 42% { opacity: 1; transform: translateY(0); }
  48%, 100% { opacity: 0; transform: translateY(-4px); }
}
.ubg-bento-ia-tdots {
  display: inline-flex;
  gap: 3px;
  margin-left: 4px;
  vertical-align: middle;
}
.ubg-bento-ia-tdots i {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--ubg-bento-blue);
  animation: ubg-bento-ia-tb 1.2s ease-in-out infinite;
}
.ubg-bento-ia-tdots i:nth-child(2) { animation-delay: 0.15s; }
.ubg-bento-ia-tdots i:nth-child(3) { animation-delay: 0.3s; }
@keyframes ubg-bento-ia-tb {
  0%, 100% { opacity: 0.25; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-3px); }
}
.ubg-bento-ia-srcs {
  display: flex;
  gap: 5px;
  margin-top: 7px;
  flex-wrap: wrap;
}
.ubg-bento-ia-srcs span {
  font-size: 9px;
  color: var(--ubg-bento-muted);
  border: 1px solid #2c2c2c;
  border-radius: 5px;
  padding: 2px 6px;
}
.ubg-bento-ia-sys {
  display: flex;
  gap: 7px;
  margin-top: 12px;
  flex-wrap: wrap;
  justify-content: center;
}
.ubg-bento-ia-sys__chip {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  color: #cfcfcf;
  background: var(--ubg-bento-card-2);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 8px;
  padding: 5px 10px;
}
.ubg-bento-ia-sys__chip .ubg-bento-ia-led {
  width: 5px;
  height: 5px;
}
.ubg-bento-ia-sys__chip:nth-child(2) .ubg-bento-ia-led { animation-delay: 0.4s; }
.ubg-bento-ia-sys__chip:nth-child(3) .ubg-bento-ia-led { animation-delay: 0.8s; }
.ubg-bento-ia-sys__chip:nth-child(4) .ubg-bento-ia-led { animation-delay: 1.2s; }

.ubg-bento-ia-cv {
  display: flex;
  gap: 16px;
  flex: 1;
  min-height: 0;
  align-items: stretch;
}
.ubg-bento-ia-cv__scene {
  flex: 1.35;
  background: var(--ubg-bento-card-2);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 13px;
  overflow: hidden;
  position: relative;
}
.ubg-bento-ia-cv__scene svg {
  width: 100%;
  height: 100%;
  display: block;
}
.ubg-bento-ia-belt {
  stroke: #2a2a2a;
  stroke-width: 2;
  stroke-dasharray: 8 6;
  animation: ubg-bento-ia-beltmove 1.2s linear infinite;
}
@keyframes ubg-bento-ia-beltmove {
  to { stroke-dashoffset: -14; }
}
.ubg-bento-ia-bbox {
  fill: none;
  stroke-width: 1.6;
}
.ubg-bento-ia-bbox--ok { stroke: var(--ubg-bento-green); }
.ubg-bento-ia-bbox--ko {
  stroke: var(--ubg-bento-red);
  animation: ubg-bento-ia-ledblink 1.4s ease-in-out infinite;
}
.ubg-bento-ia-cv__tag {
  font-size: 8.5px;
  font-weight: 600;
}
.ubg-bento-ia-scan {
  animation: ubg-bento-ia-scanx 3.4s ease-in-out infinite;
}
@keyframes ubg-bento-ia-scanx {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(238px); }
}
.ubg-bento-ia-cv__side {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
  justify-content: center;
  min-width: 0;
}
.ubg-bento-ia-cvr {
  display: flex;
  align-items: center;
  gap: 9px;
  background: var(--ubg-bento-card-2);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  padding: 8px 11px;
  font-size: 11.5px;
}
.ubg-bento-ia-cvr__d {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  flex-shrink: 0;
}
.ubg-bento-ia-cvr__d--ok { background: var(--ubg-bento-green); }
.ubg-bento-ia-cvr__d--ko {
  background: var(--ubg-bento-red);
  animation: ubg-bento-ia-ledblink 1.4s ease-in-out infinite;
}
.ubg-bento-ia-cvr__n {
  flex: 1;
  color: #dedede;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ubg-bento-ia-cvr__p {
  font-size: 10.5px;
  color: var(--ubg-bento-muted);
  font-variant-numeric: tabular-nums;
}
.ubg-bento-ia-cv__stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-top: 14px;
}
.ubg-bento-ia-cvs {
  background: var(--ubg-bento-card-2);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  padding: 10px 12px;
}
.ubg-bento-ia-cvs__l {
  font-size: 10px;
  color: var(--ubg-bento-muted);
}
.ubg-bento-ia-cvs__v {
  font-size: 16px;
  font-weight: 600;
  margin-top: 2px;
  font-variant-numeric: tabular-nums;
}

.ubg-bento-ia-ml {
  background: var(--ubg-bento-card-2);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  padding: 16px;
  position: relative;
}
.ubg-bento-ia-ml__h {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
  gap: 8px;
}
.ubg-bento-ia-ml__t {
  font-size: 12px;
  color: var(--ubg-bento-muted);
}
.ubg-bento-ia-badge {
  font-size: 10.5px;
  font-weight: 600;
  color: var(--ubg-bento-green);
  border: 1px solid rgba(63, 197, 58, 0.35);
  border-radius: 6px;
  padding: 2px 7px;
}
.ubg-bento-ia-ml svg {
  width: 100%;
  display: block;
}
.ubg-bento-ia-hist {
  stroke: #8b7cf6;
  stroke-width: 2;
  fill: none;
  stroke-linejoin: round;
  stroke-dasharray: 700;
  stroke-dashoffset: 700;
  animation: ubg-bento-ia-chartdraw 2.2s ease-out forwards 0.3s;
}
.ubg-bento-ia-pred {
  stroke: #4b9bff;
  stroke-width: 2;
  fill: none;
  stroke-dasharray: 5 5;
  opacity: 0;
  animation: ubg-bento-ia-fadein 0.8s ease-out forwards 2.2s;
}
.ubg-bento-ia-predzone {
  opacity: 0;
  animation: ubg-bento-ia-fadein 1s ease-out forwards 2.4s;
}
.ubg-bento-ia-anom { fill: var(--ubg-bento-red); }
.ubg-bento-ia-anomring {
  fill: none;
  stroke: var(--ubg-bento-red);
  stroke-width: 1.2;
}
@keyframes ubg-bento-ia-chartdraw {
  to { stroke-dashoffset: 0; }
}
@keyframes ubg-bento-ia-fadein {
  to { opacity: 1; }
}
.ubg-bento-ia-ml__chips {
  display: flex;
  gap: 8px;
  margin-top: 14px;
  flex-wrap: wrap;
}
.ubg-bento-ia-mlc {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 11px;
  color: #cfcfcf;
  background: var(--ubg-bento-card-2);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 8px;
  padding: 6px 10px;
}
.ubg-bento-ia-mlc__d {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  flex-shrink: 0;
}

.ubg-bento-ia-doc {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: center;
}
.ubg-bento-ia-minidoc {
  width: 86px;
  flex-shrink: 0;
  background: #15181d;
  border: 1px solid #2a2f38;
  border-radius: 8px;
  padding: 10px 9px;
}
.ubg-bento-ia-minidoc__t {
  font-size: 7.5px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #aab4c2;
  margin-bottom: 7px;
}
.ubg-bento-ia-minidoc__l {
  display: block;
  height: 4px;
  border-radius: 2px;
  background: #232a34;
  margin-bottom: 5px;
}
.ubg-bento-ia-minidoc__l--w60 { width: 60%; }
.ubg-bento-ia-minidoc__l--w80 { width: 80%; }
.ubg-bento-ia-minidoc__l--hl {
  background: #274064;
  animation: ubg-bento-ia-hlpulse 3s ease-in-out infinite;
}
@keyframes ubg-bento-ia-hlpulse {
  0%, 100% { background: #274064; }
  50% { background: #3a5c8f; }
}
.ubg-bento-ia-ext {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.ubg-bento-ia-exr {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--ubg-bento-card-2);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 8px;
  padding: 6px 10px;
  font-size: 10.5px;
  opacity: 0;
  animation: ubg-bento-ia-fadein 0.5s ease-out forwards;
}
.ubg-bento-ia-exr:nth-child(1) { animation-delay: 0.3s; }
.ubg-bento-ia-exr:nth-child(2) { animation-delay: 0.7s; }
.ubg-bento-ia-exr:nth-child(3) { animation-delay: 1.1s; }
.ubg-bento-ia-exr:nth-child(4) { animation-delay: 1.5s; }
.ubg-bento-ia-exr__k {
  color: var(--ubg-bento-muted);
  width: 66px;
  flex-shrink: 0;
}
.ubg-bento-ia-exr__v {
  flex: 1;
  color: #e6e6e6;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-variant-numeric: tabular-nums;
}
.ubg-bento-ia-exr__v--ok { color: var(--ubg-bento-green); }
.ubg-bento-ia-exr__ok {
  color: var(--ubg-bento-green);
  font-size: 11px;
  flex-shrink: 0;
}

.ubg-bento-ia-edge {
  display: flex;
  justify-content: center;
}
.ubg-bento-ia-edge svg {
  width: 100%;
  max-width: 280px;
}
.ubg-bento-ia-rail {
  stroke: #242424;
  stroke-width: 1.5;
  fill: none;
}
.ubg-bento-ia-ico {
  fill: none;
  stroke: #cfcfcf;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.ubg-bento-ia-fl {
  transform-box: fill-box;
  transform-origin: center;
  animation: ubg-bento-ia-floaty 4.5s ease-in-out infinite;
}
@keyframes ubg-bento-ia-floaty {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}

.ubg-bento-ia-sov {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}
.ubg-bento-ia-sov svg { width: 82px; }
.ubg-bento-ia-sec {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  justify-content: center;
}
.ubg-bento-ia-sec__tag {
  font-size: 10.5px;
  color: var(--ubg-bento-muted);
  border: 1px solid #262626;
  border-radius: 6px;
  padding: 4px 9px;
}
.ubg-bento-ia-sec__tag b {
  color: var(--ubg-bento-green);
  font-weight: 600;
}

.ubg-bento-ia-vsteps {
  display: flex;
  flex-direction: column;
  gap: 0;
  position: relative;
  padding-left: 6px;
}
.ubg-bento-ia-vsteps::before {
  content: "";
  position: absolute;
  left: 24px;
  top: 20px;
  bottom: 20px;
  width: 2px;
  background: #232323;
  border-radius: 1px;
}
.ubg-bento-ia-vsteps::after {
  content: "";
  position: absolute;
  left: 24px;
  top: 20px;
  width: 2px;
  border-radius: 1px;
  background: linear-gradient(180deg, var(--ubg-bento-green), var(--ubg-bento-blue));
  height: 0;
  animation: ubg-bento-ia-vgrow 2s ease-out forwards 0.4s;
}
@keyframes ubg-bento-ia-vgrow {
  to { height: 52%; }
}
.ubg-bento-ia-vstep {
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 7px 0;
  position: relative;
  z-index: 1;
}
.ubg-bento-ia-vstep__c {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  flex-shrink: 0;
  background: #131313;
  border: 1.5px solid #2c2c2c;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  color: var(--ubg-bento-faint);
}
.ubg-bento-ia-vstep--done .ubg-bento-ia-vstep__c {
  border-color: rgba(63, 197, 58, 0.5);
  color: var(--ubg-bento-green);
}
.ubg-bento-ia-vstep--now .ubg-bento-ia-vstep__c {
  border-color: var(--ubg-bento-blue);
  color: var(--ubg-bento-blue);
  animation: ubg-bento-ia-stepdulse 2.4s ease-in-out infinite;
}
@keyframes ubg-bento-ia-stepdulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(75, 155, 255, 0.35); }
  50% { box-shadow: 0 0 0 8px rgba(75, 155, 255, 0); }
}
.ubg-bento-ia-vstep__n {
  font-size: 12.5px;
  font-weight: 600;
  color: #e0e0e0;
}
.ubg-bento-ia-vstep__s {
  font-size: 10px;
  color: var(--ubg-bento-faint);
  margin-top: 1px;
}
.ubg-bento-ia-vstep--next .ubg-bento-ia-vstep__n {
  color: var(--ubg-bento-faint);
}

.ubg-bento-ia-mon {
  background: var(--ubg-bento-card-2);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  padding: 22px;
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
  gap: 16px;
}
.ubg-bento-ia-mon__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.ubg-bento-ia-mon__head h3 {
  margin: 0;
  font-size: 18px;
  font-weight: 600;
}
.ubg-bento-ia-mqchip {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 11px;
  color: var(--ubg-bento-muted);
  border: 1px solid #262626;
  border-radius: 8px;
  padding: 4px 9px;
}
.ubg-bento-ia-mqchip b {
  color: #dedede;
  font-weight: 600;
}
.ubg-bento-ia-pipe {
  width: 100%;
  height: 56px;
  display: block;
}
.ubg-bento-ia-pnode {
  fill: #161616;
  stroke: #2a2a2a;
  stroke-width: 1.5;
}
.ubg-bento-ia-pnode--live { stroke: #2b4a77; }
.ubg-bento-ia-pnode__t {
  font-size: 10px;
  fill: #cfcfcf;
  font-weight: 600;
}
.ubg-bento-ia-pnode__t--live { fill: #4b9bff; }
.ubg-bento-ia-mlops {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 16px;
  flex: 1;
  min-height: 0;
}
.ubg-bento-ia-editor {
  background: #0d0d0d;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  overflow: hidden;
  font-family: "SF Mono", ui-monospace, Menlo, monospace;
  font-size: 11px;
}
.ubg-bento-ia-editor__tabs {
  display: flex;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  background: #101010;
}
.ubg-bento-ia-editor__tab {
  padding: 7px 13px;
  color: var(--ubg-bento-faint);
  font-size: 10.5px;
  border-right: 1px solid rgba(255, 255, 255, 0.08);
}
.ubg-bento-ia-editor__tab.is-on {
  color: #ddd;
  background: #0d0d0d;
}
.ubg-bento-ia-editor__body {
  padding: 10px 0;
  line-height: 1.75;
}
.ubg-bento-ia-ln {
  display: flex;
  gap: 12px;
  padding: 0 13px;
}
.ubg-bento-ia-ln__no {
  color: #333;
  width: 12px;
  text-align: right;
  flex-shrink: 0;
  user-select: none;
}
.ubg-bento-ia-ln code {
  color: #c9c9c9;
  white-space: pre;
}
.ubg-bento-ia-kw { color: var(--ubg-bento-violet); }
.ubg-bento-ia-fn { color: var(--ubg-bento-blue); }
.ubg-bento-ia-str { color: var(--ubg-bento-green); }
.ubg-bento-ia-cm { color: #4a4a4a; font-style: italic; }
.ubg-bento-ia-monit {
  background: #0d0d0d;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  padding: 14px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.ubg-bento-ia-monit__h {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11.5px;
  color: #dedede;
  font-weight: 600;
}
.ubg-bento-ia-monit svg {
  width: 100%;
  flex: 1;
  min-height: 44px;
}
.ubg-bento-ia-spark {
  stroke: var(--ubg-bento-green);
  stroke-width: 1.8;
  fill: none;
  stroke-linejoin: round;
  stroke-dasharray: 400;
  stroke-dashoffset: 400;
  animation: ubg-bento-ia-chartdraw 2.4s ease-out forwards 0.6s;
}

.ubg-bento-ia-radar {
  display: flex;
  flex-direction: column;
  gap: 12px;
  align-items: center;
}
.ubg-bento-ia-radar svg {
  width: 100%;
  max-width: 220px;
}
.ubg-bento-ia-rgrid {
  fill: none;
  stroke: #232323;
  stroke-width: 1;
}
.ubg-bento-ia-raxis {
  stroke: #1c1c1c;
  stroke-width: 1;
}
.ubg-bento-ia-rdata {
  fill: rgba(75, 155, 255, 0.12);
  stroke: var(--ubg-bento-blue);
  stroke-width: 1.6;
  stroke-linejoin: round;
  stroke-dasharray: 400;
  stroke-dashoffset: 400;
  animation: ubg-bento-ia-chartdraw 2.4s ease-out forwards 0.4s;
}
.ubg-bento-ia-rdot {
  fill: var(--ubg-bento-blue);
  opacity: 0;
  animation: ubg-bento-ia-fadein 0.5s ease-out forwards 2.2s;
}
.ubg-bento-ia-rlab {
  font-size: 8.5px;
  fill: #5a5a5a;
}
.ubg-bento-ia-chk {
  display: flex;
  flex-direction: column;
  gap: 5px;
  width: 100%;
}
.ubg-bento-ia-ckr {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  color: #dedede;
  background: var(--ubg-bento-card-2);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 8px;
  padding: 6px 10px;
  opacity: 0;
  animation: ubg-bento-ia-fadein 0.5s ease-out forwards;
}
.ubg-bento-ia-ckr:nth-child(1) { animation-delay: 0.5s; }
.ubg-bento-ia-ckr:nth-child(2) { animation-delay: 0.9s; }
.ubg-bento-ia-ckr:nth-child(3) { animation-delay: 1.3s; }
.ubg-bento-ia-ckr:nth-child(4) { animation-delay: 1.7s; }
.ubg-bento-ia-ckr__ok {
  color: var(--ubg-bento-green);
  font-size: 11px;
}

.ubg-bento-ia-models {
  display: flex;
  flex-direction: column;
  gap: 18px;
  justify-content: center;
  flex: 1;
}
.ubg-bento-ia-models__defs {
  position: absolute;
}
.ubg-bento-ia-models__mt {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
}
.ubg-bento-ia-models__mt h3 {
  margin: 0;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -0.01em;
}
.ubg-bento-ia-models__mt span {
  font-size: 11.5px;
  color: var(--ubg-bento-faint);
}
.ubg-bento-ia-mq {
  overflow: hidden;
  -webkit-mask-image: linear-gradient(to right, transparent 0, #000 8%, #000 92%, transparent 100%);
  mask-image: linear-gradient(to right, transparent 0, #000 8%, #000 92%, transparent 100%);
}
.ubg-bento-ia-mq__track {
  display: flex;
  width: max-content;
  animation: ubg-bento-ia-scrollh 45s linear infinite;
  will-change: transform;
}
.ubg-bento-ia-mq__half {
  display: flex;
  gap: 12px;
  padding-right: 12px;
  flex-shrink: 0;
}
.ubg-bento-ia-mq:hover .ubg-bento-ia-mq__track {
  animation-play-state: paused;
}
@keyframes ubg-bento-ia-scrollh {
  to { transform: translateX(-50%); }
}
.ubg-bento-ia-mlogo {
  display: flex;
  align-items: center;
  gap: 11px;
  flex-shrink: 0;
  background: var(--ubg-bento-card-2);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  padding: 10px 16px;
  white-space: nowrap;
  transition: border-color 0.25s ease, transform 0.25s ease;
}
.ubg-bento-ia-mlogo:hover {
  border-color: #3a3a3a;
  transform: translateY(-3px);
}
.ubg-bento-ia-mlogo svg {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}
.ubg-bento-ia-mlogo__n {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}
.ubg-bento-ia-mlogo__n b {
  font-size: 12.5px;
  font-weight: 600;
  color: #ececec;
}
.ubg-bento-ia-mlogo__n small {
  font-size: 10px;
  color: var(--ubg-bento-faint);
}

.ubg-bento-ia-approach {
  display: flex;
  flex-direction: column;
  gap: 20px;
  justify-content: center;
  flex: 1;
}
.ubg-bento-ia-approach__t {
  font-size: 14.5px;
  font-weight: 600;
  letter-spacing: -0.01em;
}
.ubg-bento-ia-apgrid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  background: var(--ubg-bento-card-2);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  overflow: hidden;
}
.ubg-bento-ia-ap {
  padding: 20px 14px;
  text-align: center;
  border-right: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 9px;
  transition: background 0.25s ease;
}
.ubg-bento-ia-ap:last-child { border-right: none; }
.ubg-bento-ia-ap:hover { background: #161616; }
.ubg-bento-ia-ap__ico {
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: #152238;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ubg-bento-ia-ap__ico svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: var(--ubg-bento-blue);
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.ubg-bento-ia-ap__w {
  font-size: 19px;
  font-weight: 700;
  letter-spacing: -0.02em;
}
.ubg-bento-ia-ap__d {
  font-size: 10px;
  color: var(--ubg-bento-faint);
  line-height: 1.45;
}

@media (max-width: 960px) {
  .ubg-bento-ia-cv { flex-direction: column; }
  .ubg-bento-ia-mlops { grid-template-columns: 1fr; }
  .ubg-bento-ia-apgrid { grid-template-columns: 1fr 1fr; }
  .ubg-bento-ia-ap {
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  }
  .ubg-bento__cell--ia-short { min-height: 240px; }
}
@media (prefers-reduced-motion: reduce) {
  .ubg-bento-ia-hist,
  .ubg-bento-ia-spark,
  .ubg-bento-ia-rdata { stroke-dashoffset: 0; }
  .ubg-bento-ia-pred,
  .ubg-bento-ia-predzone,
  .ubg-bento-ia-exr,
  .ubg-bento-ia-ckr,
  .ubg-bento-ia-rdot,
  .ubg-bento-ia-bub--a2 { opacity: 1; }
  .ubg-bento-ia-vsteps::after { height: 52%; }
  .ubg-bento-ia-aiwrap { min-height: 150px; }
  .ubg-bento-ia-aiwrap .ubg-bento-ia-bub--a2 { top: 78px; }
}

/*# sourceMappingURL=styles.css.map */
