:root{
  --color-bg:#f5f4ff;
  --color-surface:#ffffff;
  --color-panel:#edeafd;
  --color-border:#d8d5f0;
  --color-text:#1c1a33;
  --color-muted:#5c5881;
  --color-accent:#2f1ed6;
  --color-accent-soft:#5b4cff;
  --color-accent-light:#8b7bff;
  --color-dark:#08051c;
  --color-success:#17c964;
  --color-warning:#ffb357;
  --color-danger:#ff5c8a;
  --shadow-soft:0 20px 45px rgba(37,26,160,.12);
  --radius-lg:28px;
  --radius-md:18px;
  --radius-sm:12px;
  --header-height:84px;
  --font-base:"Inter","Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,sans-serif;
  --container-max:1200px;
  --color-header-bg:rgba(245,244,255,.95);
  --color-mega-bg:#ffffff;
  --color-mega-text:#1c1a33;
  --color-mega-muted:#5c5881;
  color-scheme:light;
}

@media (prefers-color-scheme: dark){
  :root:not([data-theme]){
    color-scheme:dark;
    --color-bg:#050414;
    --color-surface:#0f0e24;
    --color-panel:#18153a;
    --color-border:#2b2a4a;
    --color-text:#f6f5ff;
    --color-muted:#b3afd7;
    --color-accent:#2f1ed6;
    --color-accent-soft:#5b4cff;
    --color-accent-light:#8b7bff;
    --color-mega-bg:#08051c;
    --color-mega-text:#f2f1ff;
    --color-mega-muted:rgba(255,255,255,.65);
    --shadow-soft:0 25px 55px rgba(2,0,20,.55);
  }
}

:root[data-theme="dark"]{
  color-scheme:dark;
  --color-bg:#050414;
  --color-surface:#0f0e24;
  --color-panel:#18153a;
  --color-border:#2b2a4a;
  --color-text:#f6f5ff;
  --color-muted:#b3afd7;
  --color-accent:#2f1ed6;
  --color-accent-soft:#5b4cff;
  --color-accent-light:#8b7bff;
  --color-mega-bg:#08051c;
  --color-mega-text:#f2f1ff;
  --color-mega-muted:rgba(255,255,255,.65);
  --shadow-soft:0 25px 55px rgba(2,0,20,.55);
}

:root[data-theme="light"]{
  color-scheme:light;
  --color-mega-bg:#ffffff;
  --color-mega-text:#1c1a33;
  --color-mega-muted:#5c5881;
}

*,
*::before,
*::after{
  box-sizing:border-box;
}

body{
  margin:0;
  font-family:var(--font-base);
  position:relative;
  min-height:100vh;
  background:var(--color-bg);
  color:var(--color-text);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

body > .smoke-root{
  position:fixed;
  inset:0;
  z-index:0;
}

body > *:not(.smoke-root){
  position:relative;
  z-index:1;
}

.fade-in,
.fade-out{
  transition:opacity 1s ease;
}

.fade-in{
  opacity:1;
}

.fade-out{
  opacity:0;
}

[data-rotating-message]{
  transition:opacity 1s ease;
  opacity:1;
}

[data-rotating-message].fade-out{
  opacity:0;
}

[data-rotating-message].fade-in{
  opacity:1;
}

img{
  max-width:100%;
  display:block;
}

a{
  color:inherit;
  text-decoration:none;
}

ul{
  margin:0 0 1rem;
  padding-left:1.5rem;
}

.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  border:0;
}

.container{
  width:100%;
  max-width:var(--container-max);
  margin:0 auto;
  padding:0 5vw;
}

.section{
  padding:4rem 0;
}

.section--tight{
  padding:2.5rem 0;
}

.section__title{
  font-size:2.2rem;
  margin:0 0 1rem;
  color:var(--color-text);
}

.section__lead{
  max-width:780px;
  color:var(--color-muted);
  margin-bottom:2rem;
}

.section--languages{
  background:linear-gradient(135deg,rgba(47,30,214,.08),rgba(91,76,255,.08));
}

.lang-list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:1rem;
}

.lang-list li{
  display:flex;
  flex-direction:column;
  gap:.2rem;
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  padding:1rem 1.2rem;
  box-shadow:var(--shadow-soft);
}

.lang-flag{
  font-size:1.6rem;
}

.lang-list strong{
  font-size:1rem;
}

.lang-list span{
  color:var(--color-muted);
  font-size:.9rem;
}

.grid{
  display:grid;
  gap:1.5rem;
}

.grid--3{
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
}

.grid--2{
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
}

.card{
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  padding:1.75rem;
  box-shadow:var(--shadow-soft);
  transition:box-shadow .25s ease,border-color .25s ease,transform .25s ease;
}

.card__title{
  margin:0 0 .5rem;
  font-size:1.25rem;
}

.card__text{
  margin:0;
  color:var(--color-muted);
}

.card:hover,
.card:focus-within{
  box-shadow:0 25px 55px rgba(47,30,214,.25);
  border-color:rgba(47,30,214,.35);
  transform:translateY(-6px);
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  padding:.85rem 1.8rem;
  font-weight:600;
  border:2px solid transparent;
  cursor:pointer;
  transition:all .25s ease;
  font-size:1rem;
}

.btn--primary{
  background:var(--color-accent);
  color:#fff;
}

.btn--primary:hover,
.btn--primary:focus-visible{
  background:var(--color-accent-soft);
}

.btn--secondary{
  background:transparent;
  color:var(--color-accent);
  border-color:var(--color-accent);
}

.btn--secondary:hover,
.btn--secondary:focus-visible{
  background:var(--color-accent);
  color:#fff;
}

.btn--ghost{
  background:rgba(47,30,214,.08);
  color:var(--color-accent);
}

.badge{
  display:inline-flex;
  align-items:center;
  padding:.25rem .85rem;
  border-radius:999px;
  font-size:.85rem;
  background:rgba(47,30,214,.12);
  color:var(--color-accent);
  font-weight:600;
}

header.site-header{
  position:sticky;
  top:0;
  z-index:50;
  background:var(--color-header-bg);
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--color-border);
}

.site-header__inner{
  height:var(--header-height);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem;
}

.brand{
  display:flex;
  align-items:center;
  gap:.65rem;
  font-weight:700;
  color:var(--color-text);
}

.brand img{
  height:42px;
  width:auto;
}

.site-nav{
  display:flex;
  align-items:center;
  gap:1rem;
}

.nav-link{
  position:relative;
  font-weight:600;
  padding:.55rem 1rem;
  border-radius:999px;
  color:var(--color-muted);
  font-size:1.05rem;
  transition:color .2s ease,background .2s ease;
  border:none;
  background:none;
  cursor:pointer;
}

.nav-link:focus-visible,
.nav-link:hover{
  background:rgba(47,30,214,.1);
  color:var(--color-accent);
}

.nav-link--active{
  color:var(--color-accent);
}

.nav-link--active::after{
  content:"";
  position:absolute;
  left:1rem;
  right:1rem;
  bottom:.2rem;
  height:3px;
  background:var(--color-accent);
  border-radius:999px;
}

.nav-link.is-active{
  color:var(--color-accent);
}

.nav-link[data-trigger="mega"]{
  display:inline-flex;
  align-items:center;
  gap:.25rem;
}

.nav-link[data-trigger="mega"]::after{
  content:"▾";
  font-size:.9em;
  margin-left:.35rem;
  transition:transform .2s ease;
}

.nav-link[data-trigger="mega"].is-active::after,
.nav-link[data-trigger="mega"][aria-expanded="true"]::after{
  transform:rotate(180deg);
}

.cta-group{
  display:flex;
  align-items:center;
  gap:.75rem;
  flex-wrap:wrap;
}

.cta-group .btn{
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease,color .2s ease;
}

.cta-group .btn:hover,
.cta-group .btn:focus-visible{
  transform:translateY(-4px);
  box-shadow:0 18px 35px rgba(47,30,214,.3);
}

.header-actions{
  display:flex;
  align-items:center;
  gap:1rem;
  margin-left:auto;
}

.header-tools{
  display:flex;
  align-items:center;
  gap:1rem;
}

.theme-toggle{
  border:1px solid var(--color-border);
  border-radius:999px;
  background:var(--color-surface);
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  padding:.35rem .9rem;
  font:inherit;
  font-weight:600;
  color:var(--color-muted);
  cursor:pointer;
  transition:color .2s ease,border-color .2s ease,box-shadow .2s ease,background .2s ease;
}

.theme-toggle:hover,
.theme-toggle:focus-visible{
  border-color:var(--color-accent);
  color:var(--color-accent);
  box-shadow:0 0 0 3px rgba(47,30,214,.15);
}

.theme-toggle--dark{
  background:var(--color-panel);
  color:var(--color-text);
}

.theme-toggle__icon{
  font-size:1.1rem;
  line-height:1;
}

.nav-toggle{
  display:none;
}

.mega-menu{
  position:absolute;
  left:0;
  top:var(--header-height);
  width:100%;
  background:var(--color-mega-bg);
  color:var(--color-mega-text);
  border-bottom-left-radius:var(--radius-lg);
  border-bottom-right-radius:var(--radius-lg);
  box-shadow:var(--shadow-soft);
  padding:2.5rem 0;
  opacity:0;
  visibility:hidden;
  transform:translateY(-10px);
  transition:opacity .25s ease,transform .25s ease;
}

.mega-menu.is-open{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}

.mega-menu__grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:2rem;
}

.mega-menu__column h3{
  margin:.25rem 0 1rem;
  font-size:.95rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--color-accent-light);
}

.mega-menu__item{
  display:flex;
  flex-direction:column;
  gap:.25rem;
  padding:.85rem 1rem;
  border-radius:var(--radius-sm);
  border:none;
  background:rgba(255,255,255,.02);
  transition:background .2s ease,color .2s ease;
}

.mega-menu__item:hover,
.mega-menu__item:focus-visible{
  background:rgba(255,255,255,.08);
}

.mega-menu__item span{
  color:var(--color-mega-muted);
  font-size:.9rem;
}

.mega-menu__item strong{
  color:var(--color-mega-text);
}

.mega-menu__trigger{
  position:relative;
}

.mega-menu__trigger button{
  border:none;
  background:none;
  font:inherit;
  color:inherit;
  cursor:pointer;
}

.hero{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:3rem;
  align-items:center;
  padding:4rem 0 3rem;
}

.hero__title{
  font-size:3rem;
  margin:0 0 1rem;
  color:var(--color-text);
}

.hero__subtitle{
  color:var(--color-muted);
  margin-bottom:2rem;
}

.hero__panel{
  background:var(--color-surface);
  border-radius:var(--radius-lg);
  padding:2rem;
  border:1px solid var(--color-border);
  box-shadow:var(--shadow-soft);
  transition:box-shadow .25s ease,border-color .25s ease,transform .25s ease;
  text-align:center;
}

.hero__panel:focus-within,
.hero__panel:hover{
  box-shadow:0 30px 60px rgba(47,30,214,.28);
  border-color:rgba(47,30,214,.35);
  transform:translateY(-6px);
}

.countdown{
  display:flex;
  justify-content:space-between;
  gap:1.2rem;
}

.countdown__item{
  flex:1;
  background:var(--color-panel);
  border-radius:var(--radius-md);
  padding:1rem;
}

.countdown__value{
  font-size:1.8rem;
  font-weight:700;
  color:var(--color-accent);
}

.smoke-root{
  pointer-events:none;
  overflow:hidden;
}

.smoke-root.is-looping .smoke-wisp{
  animation-iteration-count:infinite;
}

.smoke-root .base-cloud{
  position:absolute;
  width:90vw;
  height:85vh;
  bottom:-10vh;
  left:-10vw;
  background:radial-gradient(ellipse 70% 90% at 10% 100%,rgba(99,102,241,.9) 0%,rgba(79,70,229,.7) 25%,rgba(99,102,241,.4) 60%,transparent 100%),radial-gradient(ellipse 50% 70% at 5% 95%,rgba(99,102,241,.85) 0%,rgba(79,70,229,.65) 35%,rgba(99,102,241,.3) 75%,transparent 100%),radial-gradient(ellipse 90% 60% at 15% 85%,rgba(99,102,241,.8) 0%,rgba(79,70,229,.5) 45%,rgba(99,102,241,.2) 85%,transparent 100%);
  border-radius:0 100% 0 0/0 0 60% 60%;
  filter:blur(70px);
  opacity:.4;
}

.smoke-wisp{
  position:absolute;
  border-radius:50% 50% 40% 60%/60% 60% 40% 40%;
  filter:blur(40px);
  opacity:0;
  animation:smokeDrift 25s ease-in-out infinite;
}

.smoke-wisp:nth-child(2){
  width:35vw;
  height:30vh;
  bottom:25vh;
  left:8vw;
  background:radial-gradient(ellipse 70% 50% at 30% 20%,rgba(99,102,241,.5) 0%,rgba(79,70,229,.3) 50%,transparent 100%);
  animation-duration:28s;
}

.smoke-wisp:nth-child(3){
  width:28vw;
  height:35vh;
  bottom:55vh;
  left:4vw;
  background:radial-gradient(ellipse 50% 60% at 60% 40%,rgba(99,102,241,.4) 0%,rgba(79,70,229,.2) 60%,transparent 90%);
  animation-duration:22s;
  animation-delay:-4s;
}

.smoke-wisp:nth-child(4){
  width:42vw;
  height:20vh;
  bottom:10vh;
  left:20vw;
  background:radial-gradient(ellipse 60% 40% at 20% 70%,rgba(99,102,241,.6) 0%,rgba(79,70,229,.4) 40%,transparent 100%);
  animation-duration:30s;
  animation-delay:-7s;
}

.smoke-wisp:nth-child(5){
  width:22vw;
  height:32vh;
  bottom:40vh;
  left:-3vw;
  background:radial-gradient(ellipse 80% 30% at 50% 10%,rgba(99,102,241,.45) 0%,rgba(79,70,229,.25) 50%,transparent 80%);
  animation-duration:24s;
  animation-delay:-1s;
}

.smoke-wisp:nth-child(6){
  width:38vw;
  height:28vh;
  bottom:28vh;
  left:15vw;
  background:radial-gradient(ellipse 40% 70% at 70% 50%,rgba(99,102,241,.55) 0%,rgba(79,70,229,.35) 60%,transparent 100%);
  animation-duration:26s;
  animation-delay:-6s;
}

.smoke-wisp:nth-child(7){
  width:30vw;
  height:32vh;
  bottom:48vh;
  left:18vw;
  background:radial-gradient(ellipse 55% 55% at 40% 60%,rgba(99,102,241,.5) 0%,rgba(79,70,229,.3) 70%,transparent 90%);
  animation-duration:29s;
  animation-delay:-10s;
}

.smoke-wisp:nth-child(8){
  width:24vw;
  height:26vh;
  bottom:35vh;
  left:25vw;
  background:radial-gradient(ellipse 45% 60% at 30% 60%,rgba(99,102,241,.4) 0%,rgba(79,70,229,.25) 65%,transparent 100%);
  animation-duration:27s;
  animation-delay:-13s;
}

@keyframes smokeDrift{
  0%{opacity:0;transform:translateX(0) translateY(0) scale(.3) rotate(0) skewX(0);}
  10%{opacity:.3;transform:translateX(5vw) translateY(-8vh) scale(.6) rotate(.2deg) skewX(.5deg);}
  20%{opacity:.6;transform:translateX(10vw) translateY(-12vh) scale(.9) rotate(.5deg) skewX(1deg);}
  40%{opacity:.5;transform:translateX(25vw) translateY(-5vh) scale(1.1) rotate(-.3deg) skewX(-.5deg);}
  60%{opacity:.7;transform:translateX(40vw) translateY(-10vh) scale(1.05) rotate(.2deg) skewX(.8deg);}
  80%{opacity:.4;transform:translateX(55vw) translateY(-3vh) scale(.8) rotate(-.4deg) skewX(-1deg);}
  90%{opacity:.2;transform:translateX(65vw) translateY(-6vh) scale(.5) rotate(-.2deg) skewX(-.5deg);}
  100%{opacity:0;transform:translateX(70vw) translateY(0) scale(.3) rotate(0) skewX(0);}
}

.smoke-root{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
}

.smoke-root.is-looping .smoke-wisp{
  animation-iteration-count:infinite;
}

.base-cloud{
  position:absolute;
  width:70vw;
  height:80vh;
  bottom:0;
  left:-5vw;
  background:radial-gradient(ellipse 70% 90% at 10% 100%,rgba(99,102,241,.9) 0%,rgba(79,70,229,.7) 25%,rgba(99,102,241,.4) 60%,transparent 100%),radial-gradient(ellipse 50% 70% at 5% 95%,rgba(99,102,241,.85) 0%,rgba(79,70,229,.65) 35%,rgba(99,102,241,.3) 75%,transparent 100%),radial-gradient(ellipse 90% 60% at 15% 85%,rgba(99,102,241,.8) 0%,rgba(79,70,229,.5) 45%,rgba(99,102,241,.2) 85%,transparent 100%);
  border-radius:0 100% 0 0/0 0 60% 60%;
  filter:blur(60px);
  opacity:.45;
}

.smoke-wisp{
  position:absolute;
  border-radius:50% 50% 40% 60%/60% 60% 40% 40%;
  filter:blur(40px);
  opacity:0;
  animation:smokeDrift 25s ease-in-out infinite;
}

.smoke-wisp:nth-child(2){
  width:30vw;
  height:25vh;
  bottom:30vh;
  left:10vw;
  background:radial-gradient(ellipse 70% 50% at 30% 20%,rgba(99,102,241,.5) 0%,rgba(79,70,229,.3) 50%,transparent 100%);
  animation-duration:28s;
}

.smoke-wisp:nth-child(3){
  width:25vw;
  height:35vh;
  bottom:50vh;
  left:5vw;
  background:radial-gradient(ellipse 50% 60% at 60% 40%,rgba(99,102,241,.4) 0%,rgba(79,70,229,.2) 60%,transparent 90%);
  animation-duration:22s;
  animation-delay:-4s;
}

.smoke-wisp:nth-child(4){
  width:40vw;
  height:20vh;
  bottom:15vh;
  left:15vw;
  background:radial-gradient(ellipse 60% 40% at 20% 70%,rgba(99,102,241,.6) 0%,rgba(79,70,229,.4) 40%,transparent 100%);
  animation-duration:30s;
  animation-delay:-7s;
}

.smoke-wisp:nth-child(5){
  width:20vw;
  height:30vh;
  bottom:40vh;
  left:0;
  background:radial-gradient(ellipse 80% 30% at 50% 10%,rgba(99,102,241,.45) 0%,rgba(79,70,229,.25) 50%,transparent 80%);
  animation-duration:24s;
  animation-delay:-1s;
}

.smoke-wisp:nth-child(6){
  width:35vw;
  height:28vh;
  bottom:25vh;
  left:8vw;
  background:radial-gradient(ellipse 40% 70% at 70% 50%,rgba(99,102,241,.55) 0%,rgba(79,70,229,.35) 60%,transparent 100%);
  animation-duration:26s;
  animation-delay:-6s;
}

.smoke-wisp:nth-child(7){
  width:28vw;
  height:32vh;
  bottom:45vh;
  left:12vw;
  background:radial-gradient(ellipse 55% 55% at 40% 60%,rgba(99,102,241,.5) 0%,rgba(79,70,229,.3) 70%,transparent 90%);
  animation-duration:29s;
  animation-delay:-10s;
}

.smoke-wisp:nth-child(8){
  width:24vw;
  height:26vh;
  bottom:32vh;
  left:18vw;
  background:radial-gradient(ellipse 45% 60% at 30% 60%,rgba(99,102,241,.4) 0%,rgba(79,70,229,.25) 65%,transparent 100%);
  animation-duration:27s;
  animation-delay:-13s;
}

@keyframes smokeDrift{
  0%{opacity:0;transform:translateX(0) translateY(0) scale(.3) rotate(0) skewX(0);}
  10%{opacity:.3;transform:translateX(5vw) translateY(-8vh) scale(.6) rotate(.2deg) skewX(.5deg);}
  20%{opacity:.6;transform:translateX(10vw) translateY(-12vh) scale(.9) rotate(.5deg) skewX(1deg);}
  40%{opacity:.5;transform:translateX(25vw) translateY(-5vh) scale(1.1) rotate(-.3deg) skewX(-.5deg);}
  60%{opacity:.7;transform:translateX(40vw) translateY(-10vh) scale(1.05) rotate(.2deg) skewX(.8deg);}
  80%{opacity:.4;transform:translateX(55vw) translateY(-3vh) scale(.8) rotate(-.4deg) skewX(-1deg);}
  90%{opacity:.2;transform:translateX(65vw) translateY(-6vh) scale(.5) rotate(-.2deg) skewX(-.5deg);}
  100%{opacity:0;transform:translateX(70vw) translateY(0) scale(.3) rotate(0) skewX(0);}
}

.module-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:1.2rem;
}

.module-card{
  background:var(--color-surface);
  border-radius:var(--radius-md);
  padding:1.5rem;
  border:1px solid var(--color-border);
  transition:transform .25s ease,box-shadow .25s ease;
}

.module-card:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow-soft);
}

.module-card h3{
  margin-top:0;
  margin-bottom:.4rem;
}

.module-card p{
  margin:0;
  color:var(--color-muted);
}

.luca-section,
.psd2-section,
.workflow-section{
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:var(--radius-lg);
  padding:2.5rem;
  box-shadow:var(--shadow-soft);
}

.cta-banner{
  background:linear-gradient(135deg,var(--color-accent),var(--color-accent-soft));
  color:#fff;
  border-radius:var(--radius-lg);
  padding:3rem;
  text-align:center;
  box-shadow:var(--shadow-soft);
}

.cta-banner h2{
  margin:0 0 1rem;
  font-size:2rem;
}

.contact-section form{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:1.2rem;
}

.form-control{
  display:flex;
  flex-direction:column;
  gap:.35rem;
}

.form-control label{
  font-weight:600;
  color:var(--color-text);
}

.form-control input,
.form-control select,
.form-control textarea{
  border:1px solid var(--color-border);
  border-radius:var(--radius-sm);
  padding:.85rem 1rem;
  font:inherit;
  background:var(--color-surface);
  transition:border-color .2s ease,box-shadow .2s ease;
}

.form-control input:focus,
.form-control select:focus,
.form-control textarea:focus{
  outline:none;
  border-color:var(--color-accent);
  box-shadow:0 0 0 3px rgba(47,30,214,.15);
}

.form-control textarea{
  min-height:140px;
  resize:vertical;
}

.footer{
  background:var(--color-dark);
  color:#d6d4ff;
  padding:3rem 0 2rem;
}

.footer__top{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:1.5rem;
}

.footer__links{
  display:flex;
  flex-direction:column;
  gap:.25rem;
}

.footer__links a{
  color:#d6d4ff;
  font-size:.95rem;
}

.footer__links a:hover,
.footer__links a:focus-visible{
  color:#fff;
}

.social-list{
  display:flex;
  gap:.75rem;
}

.social-list a{
  width:36px;
  height:36px;
  border-radius:50%;
  background:rgba(255,255,255,.08);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:.9rem;
}

.newsletter{
  display:flex;
  flex-direction:column;
  gap:.75rem;
}

.newsletter form{
  display:flex;
  gap:.5rem;
  flex-wrap:wrap;
}

.newsletter input{
  flex:1;
  min-width:220px;
}

.footer__bottom{
  margin-top:2rem;
  padding-top:1.5rem;
  border-top:1px solid rgba(255,255,255,.12);
  font-size:.9rem;
}

/* Product tour */
.timeline{
  position:relative;
  padding-left:2rem;
}

.timeline::before{
  content:"";
  position:absolute;
  left:12px;
  top:0;
  bottom:0;
  width:2px;
  background:var(--color-border);
}

.timeline__step{
  position:relative;
  padding:1.5rem 1.5rem 1.5rem 2rem;
  margin-bottom:1rem;
  background:var(--color-surface);
  border-radius:var(--radius-md);
  border:1px solid var(--color-border);
  box-shadow:var(--shadow-soft);
}

.timeline__step::before{
  content:"";
  position:absolute;
  width:16px;
  height:16px;
  background:var(--color-accent);
  border-radius:50%;
  left:-7px;
  top:2rem;
}

.timeline__header{
  display:flex;
  align-items:center;
  gap:.75rem;
  margin-bottom:.5rem;
}

.timeline__step h3{
  margin:0;
}

.step-media{
  margin-top:1rem;
  border-radius:var(--radius-sm);
  background:var(--color-panel);
  padding:1.25rem;
  text-align:center;
  color:var(--color-muted);
  font-size:.95rem;
}

.sticky-cta{
  position:sticky;
  top:calc(var(--header-height) + 1rem);
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  padding:1.5rem;
  box-shadow:var(--shadow-soft);
}

/* Feature pages */
.feature-hero{
  text-align:center;
  padding:4.5rem 0 3rem;
}

.feature-hero h1{
  font-size:3rem;
  margin-bottom:1rem;
}

.feature-hero__tagline{
  font-size:1.2rem;
  color:var(--color-muted);
  margin-bottom:.75rem;
}

.feature-hero p{
  color:var(--color-muted);
  max-width:760px;
  margin:0 auto;
}

.feature-layout{
  display:grid;
  grid-template-columns:2fr 1fr;
  gap:2rem;
}

.feature-content{
  display:flex;
  flex-direction:column;
  gap:2rem;
}

.feature-card{
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  padding:2rem;
  background:var(--color-surface);
  box-shadow:var(--shadow-soft);
}

.feature-card h2{
  margin-top:0;
}

.feature-aside{
  position:sticky;
  top:calc(var(--header-height) + 1.5rem);
  align-self:flex-start;
}

.faq{
  border-top:1px solid var(--color-border);
  margin-top:1.5rem;
  padding-top:1.5rem;
}

.faq__item + .faq__item{
  margin-top:1rem;
}

.faq__question{
  font-weight:600;
  margin-bottom:.35rem;
}

.related-links{
  display:flex;
  flex-wrap:wrap;
  gap:.6rem;
  margin-top:1rem;
}

.related-links a{
  background:rgba(47,30,214,.08);
  padding:.4rem .9rem;
  border-radius:999px;
  font-size:.9rem;
}

/* Infomercials */
.infomercial-layout{
  display:grid;
  grid-template-columns:2fr 1fr;
  gap:2rem;
}

.video-player{
  position:relative;
  padding-top:56.25%;
  border-radius:var(--radius-md);
  overflow:hidden;
  box-shadow:var(--shadow-soft);
}

.video-player iframe,
.video-player video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
}

.video-playlist{
  display:flex;
  flex-direction:column;
  gap:1rem;
}

.video-card{
  display:flex;
  flex-direction:column;
  gap:.35rem;
  padding:1rem;
  border-radius:var(--radius-sm);
  border:1px solid var(--color-border);
  background:var(--color-surface);
  cursor:pointer;
  transition:background .2s ease,border-color .2s ease;
}

.video-card.active,
.video-card:hover{
  border-color:var(--color-accent);
  background:rgba(47,30,214,.08);
}

.video-card__tags{
  display:flex;
  gap:.4rem;
}

.video-card__tags span{
  font-size:.75rem;
  background:rgba(47,30,214,.12);
  padding:.2rem .5rem;
  border-radius:999px;
}

.related-content{
  margin-top:2.5rem;
}

.related-content__grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:1rem;
}

.search-bar{
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
  margin-bottom:1.5rem;
  align-items:center;
}

.search-bar input{
  flex:1;
  min-width:260px;
}

.tag-filter{
  display:flex;
  gap:.5rem;
  flex-wrap:wrap;
}

.tag-filter button{
  border:none;
  background:rgba(47,30,214,.1);
  color:var(--color-accent);
  border-radius:999px;
  padding:.45rem 1rem;
  cursor:pointer;
  font-weight:600;
}

.tag-filter button.is-active{
  background:var(--color-accent);
  color:#fff;
}

/* Cookie banner */
.cookie-banner{
  position:fixed;
  bottom:1.5rem;
  left:50%;
  transform:translateX(-50%);
  background:var(--color-surface);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-soft);
  padding:1.2rem 1.5rem;
  width:min(640px,calc(100% - 2rem));
  display:flex;
  flex-direction:column;
  gap:.75rem;
  border:1px solid var(--color-border);
  z-index:100;
}

.cookie-banner__actions{
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  justify-content:flex-end;
}

.hidden{
  display:none !important;
}

/* Responsive */
@media(max-width:992px){
  .site-header__inner{
    flex-wrap:wrap;
  }
  .feature-layout,
  .infomercial-layout{
    grid-template-columns:1fr;
  }
  .feature-aside,
  .sticky-cta{
    position:static;
  }
  .site-nav{
    position:fixed;
    top:var(--header-height);
    left:0;
    right:0;
    background:var(--color-surface);
    flex-direction:column;
    padding:1.5rem;
    transform:translateY(-120%);
    transition:transform .3s ease;
    border-bottom:1px solid var(--color-border);
  }
  .site-nav.is-open{
    transform:translateY(0);
  }
  .nav-toggle{
    display:block;
  }
  .nav-toggle button{
    border:none;
    background:var(--color-surface);
    border-radius:var(--radius-sm);
    padding:.65rem .85rem;
    box-shadow:var(--shadow-soft);
  }
  .mega-menu{
    position:static;
    transform:none;
    opacity:1;
    visibility:visible;
    border-radius:var(--radius-md);
    margin-top:1rem;
    display:none;
  }
  .mega-menu.is-open{
    display:block;
  }
  .header-actions{
    width:100%;
    justify-content:flex-end;
    margin-left:0;
  }
  .header-tools{
    width:100%;
    justify-content:flex-end;
    flex-wrap:wrap;
    gap:.5rem;
  }
}

@media(max-width:640px){
  .hero{
    padding:3rem 0 2rem;
  }
  .hero__title{
    font-size:2.4rem;
  }
  .countdown{
    flex-direction:column;
  }
  .cta-banner{
    padding:2rem;
  }
  .footer__top{
    grid-template-columns:1fr;
  }
}

/* Informercials */
.informercials-page{
  background:var(--color-bg);
  color:var(--color-text);
  padding:3rem 0 4rem;
}

.informercials-hero h1{
  margin:.6rem 0 .5rem;
  font-size:2.75rem;
  color:var(--color-text);
}

.informercials-hero p{
  max-width:780px;
  color:var(--color-muted);
}

.informercials-search{
  margin:1.5rem auto 1rem;
}

#informercialsSearch{
  width:100%;
  border:1px solid var(--color-border);
  border-radius:999px;
  padding:1rem 1.5rem;
  font-size:1rem;
  background:var(--color-surface);
  color:var(--color-text);
  box-shadow:var(--shadow-soft);
}

.informercials-layout{
  display:grid;
  grid-template-columns:minmax(0,2fr) minmax(320px,420px);
  gap:2rem;
  align-items:flex-start;
}

.informercials-viewer{
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:var(--radius-lg);
  padding:2rem;
  box-shadow:var(--shadow-soft);
  display:flex;
  flex-direction:column;
  gap:1.5rem;
}

.informercials-viewer__media iframe{
  width:100%;
  min-height:420px;
  border:0;
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-soft);
}

.informercials-article-placeholder{
  min-height:320px;
  border-radius:var(--radius-md);
  background:linear-gradient(135deg,var(--color-accent),var(--color-accent-soft));
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:3rem;
  color:#fff;
  box-shadow:var(--shadow-soft);
}

.informercials-type-pill{
  display:inline-flex;
  align-items:center;
  padding:.25rem .75rem;
  border-radius:999px;
  background:rgba(47,30,214,.12);
  color:var(--color-accent);
  font-size:.85rem;
  font-weight:600;
}

.informercials-viewer__meta h2{
  margin:.5rem 0;
  font-size:2rem;
}

.informercials-meta{
  margin:0;
  color:var(--color-muted);
}

.informercials-tags,
.informercials-tag-pills{
  display:flex;
  gap:.35rem;
  flex-wrap:wrap;
  margin-top:.5rem;
}

.informercials-tag-pill,
.informercials-tag-pills span{
  background:rgba(47,30,214,.1);
  color:var(--color-accent);
  border-radius:999px;
  padding:.25rem .7rem;
  font-size:.8rem;
  font-weight:600;
}

.informercials-viewer__content{
  color:var(--color-text);
  line-height:1.7;
}

.informercials-viewer__content h2,
.informercials-viewer__content h3{
  margin:1.5rem 0 .65rem;
}

.informercials-viewer__content ul{
  padding-left:1.2rem;
}

.informercials-sidebar{
  display:flex;
  flex-direction:column;
  gap:1rem;
}

.informercials-filters{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
}

.informercials-filter{
  border:none;
  border-radius:999px;
  padding:.45rem 1.1rem;
  background:var(--color-surface);
  border:1px solid var(--color-border);
  color:var(--color-muted);
  cursor:pointer;
  transition:color .2s ease,background .2s ease,border-color .2s ease,box-shadow .2s ease;
}

.informercials-filter.is-active{
  background:var(--color-accent);
  border-color:var(--color-accent);
  color:#fff;
  box-shadow:0 10px 20px rgba(47,30,214,.25);
}

.informercials-list{
  display:flex;
  flex-direction:column;
  gap:1rem;
  max-height:80vh;
  overflow:auto;
  padding-right:.2rem;
}

.informercials-card{
  display:flex;
  gap:1rem;
  border-radius:var(--radius-md);
  border:1px solid var(--color-border);
  background:var(--color-surface);
  padding:.75rem;
  text-align:left;
  cursor:pointer;
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}

.informercials-card:hover,
.informercials-card:focus-visible{
  transform:translateY(-4px);
  box-shadow:0 18px 45px rgba(47,30,214,.18);
}

.informercials-card--active{
  border-color:var(--color-accent);
  box-shadow:0 22px 55px rgba(47,30,214,.25);
}

.informercials-thumbnail{
  position:relative;
  flex:0 0 160px;
  height:90px;
  border-radius:var(--radius-sm);
  overflow:hidden;
  background:var(--color-panel);
}

.informercials-thumbnail img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.informercials-thumbnail-icon{
  position:absolute;
  bottom:8px;
  right:10px;
  background:rgba(0,0,0,.55);
  color:#fff;
  border-radius:50%;
  width:32px;
  height:32px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:.85rem;
}

.informercials-card__body{
  flex:1;
  display:flex;
  flex-direction:column;
  gap:.35rem;
}

.informercials-card__body h3{
  margin:0;
  font-size:1rem;
}

.informercials-card__body p{
  margin:0;
  color:var(--color-muted);
  font-size:.9rem;
}

.informercials-card__meta{
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:.85rem;
  color:var(--color-muted);
}

.informercials-empty{
  border:1px dashed var(--color-border);
  border-radius:var(--radius-md);
  padding:1.5rem;
  text-align:center;
  color:var(--color-muted);
}

@media(max-width:1024px){
  .informercials-layout{
    grid-template-columns:1fr;
  }
  .informercials-viewer__media iframe{
    min-height:320px;
  }
  .informercials-list{
    max-height:none;
  }
}

@media(max-width:640px){
  .informercials-card{
    flex-direction:column;
  }
  .informercials-thumbnail{
    width:100%;
    height:180px;
  }
}
