/*
Theme Name: AVSOF Definitive Elementor
Theme URI: https://avsof.com/
Author: AVSOF
Description: Tema AVSOF fedele al mockup approvato, con homepage Elementor modificabile e form contatti integrato.
Version: 1.0.0
Text Domain: avsof-definitive
*/

:root{
  --avsof-navy:#031328;
  --avsof-navy-2:#061d42;
  --avsof-blue:#1767ff;
  --avsof-blue-2:#2c7cff;
  --avsof-text:#101c2f;
  --avsof-muted:#66738a;
  --avsof-line:#e5ebf3;
  --avsof-bg:#f7f9fc;
  --avsof-green:#19b98b;
  --avsof-violet:#7559ff;
  --avsof-shadow:0 18px 50px rgba(31,63,108,.08);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,Arial,Helvetica,sans-serif;color:var(--avsof-text);background:#fff;line-height:1.55}
a{text-decoration:none;color:inherit}
img{max-width:100%;height:auto;display:block}
.av-container{width:min(1180px,calc(100% - 40px));margin:0 auto}
.av-section{padding:78px 0}
.av-eyebrow{display:inline-block;color:var(--avsof-blue);font-size:12px;line-height:1;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.av-title{font-size:clamp(34px,4vw,52px);line-height:1.05;letter-spacing:-2px;margin:10px 0 12px}
.av-muted{color:var(--avsof-muted)}
.av-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:50px;padding:0 22px;border-radius:9px;font-weight:700;transition:.2s ease;border:1px solid transparent}
.av-btn:hover{transform:translateY(-1px)}
.av-btn-primary{background:linear-gradient(135deg,#2878ff,#0e5aeb);color:#fff;box-shadow:0 12px 28px rgba(28,103,255,.25)}
.av-btn-ghost{border-color:rgba(255,255,255,.3);color:#fff;background:rgba(255,255,255,.03)}

/* Header */
.av-header{position:absolute;top:0;left:0;right:0;z-index:20;color:#fff}
.av-nav{height:92px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.av-brand{display:flex;flex-direction:column;line-height:1;color:#fff;flex-shrink:0}
.av-brand-main{font-size:34px;font-weight:900;letter-spacing:-2px}
.av-brand-main .av{color:#5e9cff}.av-brand-main .sof{color:#fff}
.av-brand small{margin-top:5px;font-size:9px;letter-spacing:.32em;font-weight:700;opacity:.82}
.av-menu{display:flex;align-items:center;justify-content:center;gap:28px;flex:1}
.av-menu a{font-size:13px;font-weight:600;color:rgba(255,255,255,.92);position:relative;padding:9px 0}
.av-menu a:first-child:after,.av-menu a:hover:after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:2px;background:var(--avsof-blue-2);border-radius:99px}
.av-menu-toggle{display:none;color:#fff;background:none;border:0;font-size:27px;cursor:pointer}

/* Hero */
.av-hero{position:relative;overflow:hidden;min-height:650px;color:#fff;background:
radial-gradient(circle at 15% 48%,rgba(28,88,238,.23),transparent 31%),
radial-gradient(circle at 80% 20%,rgba(28,88,238,.10),transparent 33%),
linear-gradient(180deg,#020f22 0%,#041936 58%,#031227 100%)}
.av-hero:after{content:"";position:absolute;left:-8%;right:-8%;bottom:-80px;height:220px;background:radial-gradient(75% 110% at 50% 0%,rgba(30,105,255,.28),transparent 70%);filter:blur(24px)}
.av-hero-inner{position:relative;z-index:2;display:grid;grid-template-columns:.94fr 1.06fr;align-items:center;gap:32px;padding-top:120px;padding-bottom:40px;min-height:650px}
.av-hero-copy h1{font-size:clamp(48px,5.5vw,76px);line-height:.98;letter-spacing:-4px;margin:16px 0 20px}
.av-hero-copy h1 span{color:#2f7cff}
.av-hero-copy>p{max-width:590px;color:rgba(255,255,255,.87);font-size:18px;margin:0}
.av-hero-mini{display:flex;gap:34px;margin-top:34px;flex-wrap:wrap}
.av-hero-mini-item{display:flex;gap:11px;align-items:center;color:#fff;font-weight:650;font-size:13px}
.av-hero-mini-icon{width:34px;height:34px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.34);border-radius:10px;font-size:16px}
.av-hero-actions{display:flex;gap:15px;margin-top:31px;flex-wrap:wrap}
.av-device-stage{position:relative;height:520px}
.av-laptop{position:absolute;left:2%;top:24px;width:76%}
.av-laptop-screen{aspect-ratio:16/10;border:7px solid #202630;border-radius:19px 19px 8px 8px;background:#f6f9fd;overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.38)}
.av-screen-head{height:42px;background:#fff;border-bottom:1px solid #e7edf5;display:flex;align-items:center;gap:18px;padding:0 15px;color:#43516a;font-size:10px}
.av-screen-head strong{color:#0f2f6f;font-size:13px}
.av-dash{display:grid;grid-template-columns:76px 1fr;height:calc(100% - 42px)}
.av-dash-side{background:linear-gradient(180deg,#103e91,#061b45);padding:16px 12px}
.av-dash-side span{display:block;height:9px;border-radius:10px;background:rgba(255,255,255,.24);margin-bottom:13px}
.av-dash-main{padding:18px;background:#f4f7fb}
.av-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.av-metric{background:#fff;border:1px solid #e9eef5;border-radius:10px;padding:11px}
.av-metric b{display:block;font-size:16px}.av-metric small{font-size:8px;color:#8491a6}
.av-chart{height:122px;margin-top:12px;border:1px solid #e9eef5;border-radius:10px;background:#fff;position:relative;overflow:hidden}
.av-chart:before{content:"";position:absolute;inset:16px;background:repeating-linear-gradient(0deg,#edf2f7 0 1px,transparent 1px 24px),repeating-linear-gradient(90deg,#edf2f7 0 1px,transparent 1px 45px)}
.av-chart:after{content:"";position:absolute;left:26px;right:24px;bottom:33px;height:48px;border-bottom:3px solid #2d74ff;border-radius:45% 55% 12% 8%;transform:skewX(-18deg) rotate(-3deg)}
.av-list{margin-top:12px;background:#fff;border:1px solid #e9eef5;border-radius:10px;padding:12px}
.av-list span{display:block;height:7px;background:#e8eef7;border-radius:10px;margin:8px 0}
.av-laptop-base{height:16px;width:116%;margin-left:-8%;background:linear-gradient(#aab3c1,#828e9e);border-radius:0 0 22px 22px;box-shadow:0 12px 24px rgba(0,0,0,.2)}
.av-phone{position:absolute;right:0;bottom:16px;width:25%;height:300px;border:6px solid #171e29;border-radius:27px;background:#fff;box-shadow:0 20px 44px rgba(0,0,0,.35);padding:24px 12px 13px;color:#1a2a43}
.av-phone:before{content:"";position:absolute;top:7px;left:50%;transform:translateX(-50%);width:68px;height:15px;border-radius:99px;background:#131923}
.av-phone small{display:block;color:#2d6cff;font-weight:800;font-size:9px;margin-bottom:14px}
.av-product-img{width:72px;height:88px;border-radius:14px;background:linear-gradient(150deg,#eceff4,#8893a3);margin:0 auto 12px;position:relative}
.av-product-img:before{content:"";position:absolute;width:34px;height:52px;background:#7d8795;border-radius:20px;left:19px;top:-14px;transform:rotate(-12deg)}
.av-phone h4{font-size:13px;margin:8px 0 10px}.av-phone-line{height:8px;background:#edf1f7;border-radius:10px;margin:8px 0}.av-phone-line.short{width:65%}

/* Trust */
.av-trust{background:#fff;border-bottom:1px solid #edf1f6}
.av-trust-inner{padding:18px 0 22px}.av-trust-title{text-align:center;font-size:11px;letter-spacing:.18em;color:#8f99aa;font-weight:800;text-transform:uppercase;margin:0 0 17px}
.av-logos{display:grid;grid-template-columns:repeat(6,1fr);gap:20px;align-items:center}.av-logos span{text-align:center;color:#9ca5b3;font-size:18px;font-weight:750;opacity:.8}

/* Services */
.av-heading{text-align:center;margin-bottom:30px}.av-heading h2{font-size:clamp(32px,4vw,48px);letter-spacing:-2px;line-height:1.08;margin:9px 0 8px}.av-heading p{color:var(--avsof-muted);margin:0}
.av-service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.av-service{padding:28px;border:1px solid var(--avsof-line);border-radius:18px;background:#fff;box-shadow:var(--avsof-shadow)}
.av-service-icon{width:58px;height:58px;display:grid;place-items:center;border-radius:16px;color:#fff;font-size:24px;font-weight:800;box-shadow:0 10px 26px rgba(28,103,255,.18)}
.av-service-icon.blue{background:linear-gradient(145deg,#4b8cff,#235dff)}.av-service-icon.green{background:linear-gradient(145deg,#35d8ba,#10ae8e)}.av-service-icon.violet{background:linear-gradient(145deg,#9b7cff,#6a52ef)}
.av-service h3{font-size:22px;line-height:1.1;margin:18px 0 10px}.av-service p{color:var(--avsof-muted);font-size:14px;min-height:87px}.av-service a{font-weight:750;color:var(--avsof-blue);font-size:14px}.av-service.green a{color:var(--avsof-green)}.av-service.violet a{color:var(--avsof-violet)}

/* Why */
.av-why{background:linear-gradient(180deg,#f6f9ff,#f9fbff);border-top:1px solid #eef2f8;border-bottom:1px solid #eef2f8}
.av-why-inner{display:grid;grid-template-columns:300px 1fr;gap:34px;align-items:center;padding:43px 0}.av-why-intro h2{font-size:38px;line-height:1.05;letter-spacing:-1.8px;margin:10px 0 0}.av-benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.av-benefit{padding:12px 20px;border-left:1px solid #dfe7f2}.av-benefit-icon{font-size:28px;color:var(--avsof-blue);margin-bottom:12px}.av-benefit h3{font-size:17px;margin:0 0 8px}.av-benefit p{color:var(--avsof-muted);font-size:13px;margin:0}

/* Method */
.av-method{padding-top:64px;padding-bottom:48px}.av-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;position:relative;margin-top:38px}.av-steps:before{content:"";position:absolute;top:34px;left:8%;right:8%;border-top:2px dotted #cfd9e8;z-index:0}.av-step{text-align:center;position:relative;z-index:1}.av-step-icon{width:70px;height:70px;border-radius:50%;display:grid;place-items:center;margin:0 auto 16px;background:#f2f6ff;border:1px solid #e4ebf5;color:var(--avsof-blue);font-size:26px}.av-step h3{font-size:15px;margin:0 0 8px}.av-step p{color:var(--avsof-muted);font-size:12px;margin:0 auto;max-width:160px}

/* Solutions */
.av-solutions{padding-top:32px}.av-solution-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.av-solution{display:grid;grid-template-columns:1.07fr .93fr;min-height:315px;border:1px solid var(--avsof-line);border-radius:18px;overflow:hidden;background:linear-gradient(145deg,#fff,#fbfdff);box-shadow:var(--avsof-shadow);padding:30px}.av-pill{display:inline-block;padding:5px 11px;border-radius:99px;font-size:9px;font-weight:800;letter-spacing:.05em;background:#eafaf5;color:#17a47f}.av-pill.blue{background:#edf3ff;color:#356dff}.av-solution h3{font-size:28px;margin:12px 0 10px;letter-spacing:-1px}.av-solution p{color:var(--avsof-muted);font-size:14px}.av-checks{list-style:none;padding:0;margin:17px 0 20px}.av-checks li{font-size:13px;margin:8px 0}.av-checks li:before{content:"✓";color:var(--avsof-green);font-weight:900;margin-right:8px}.av-solution a{color:var(--avsof-blue);font-weight:750;font-size:14px}.av-solution-visual{position:relative;min-height:230px}.av-chair{position:absolute;right:4px;bottom:20px;width:160px;height:95px;border-radius:55% 35% 22% 22%;background:linear-gradient(145deg,#cbd3dd,#8793a4);transform:rotate(-8deg);box-shadow:0 18px 28px rgba(41,60,89,.16)}.av-chair:after{content:"";position:absolute;width:32px;height:76px;right:20px;top:-57px;border-radius:22px;background:#8b96a5;transform:rotate(-18deg)}.av-mini-phone{position:absolute;left:0;top:36px;width:86px;height:170px;border:5px solid #172030;border-radius:20px;background:#fff;box-shadow:0 14px 28px rgba(0,0,0,.18);padding:15px 7px;text-align:center;font-size:9px;font-weight:800}.av-qr{width:34px;height:34px;margin:20px auto 0;background:repeating-linear-gradient(45deg,#132136 0 4px,#fff 4px 8px)}
.av-mini-laptop{position:absolute;right:5px;top:50px;width:190px}.av-mini-laptop-screen{aspect-ratio:16/10;border:7px solid #182235;border-radius:10px 10px 2px 2px;background:linear-gradient(90deg,#0c3f87 0 20%,#eef4fb 20%)}.av-mini-laptop:after{content:"";display:block;height:8px;width:110%;margin-left:-5%;background:#919bab;border-radius:0 0 14px 14px}.av-floating-phone{position:absolute;right:-3px;bottom:15px;width:58px;height:118px;border:4px solid #172030;border-radius:15px;background:#fff;box-shadow:0 12px 22px rgba(0,0,0,.14)}

/* CTA + form integrated */
.av-contact-wrap{padding:48px 0 0;background:#fff}.av-contact-box{position:relative;overflow:hidden;display:grid;grid-template-columns:.86fr 1.14fr;gap:42px;align-items:center;padding:44px 48px;border-radius:22px 22px 0 0;color:#fff;background:radial-gradient(circle at 100% 30%,rgba(46,111,255,.18),transparent 35%),linear-gradient(135deg,#061b3f,#0a3d91);box-shadow:0 20px 55px rgba(7,36,83,.18)}.av-contact-box:after{content:"";position:absolute;width:430px;height:430px;right:-160px;bottom:-230px;border:1px solid rgba(102,153,255,.2);border-radius:50%;box-shadow:0 0 0 55px rgba(102,153,255,.04),0 0 0 110px rgba(102,153,255,.035)}
.av-contact-copy,.av-form-panel{position:relative;z-index:2}.av-contact-copy .av-eyebrow{color:#7bb0ff}.av-contact-copy h2{font-size:44px;line-height:1.02;letter-spacing:-2px;margin:12px 0 14px}.av-contact-copy>p{color:rgba(255,255,255,.86);font-size:16px;max-width:520px}.av-contact-points{margin:28px 0}.av-contact-points p{display:flex;align-items:center;gap:11px;margin:13px 0;font-weight:650;font-size:14px}.av-contact-points span{width:23px;height:23px;border:1px solid rgba(255,255,255,.35);border-radius:50%;display:grid;place-items:center;font-size:11px}.av-form-panel{padding:24px;background:rgba(8,40,91,.72);border:1px solid rgba(255,255,255,.12);border-radius:16px}.av-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.av-field{display:grid;gap:6px}.av-field.full{grid-column:1/-1}.av-field label{font-size:11px;font-weight:700;color:rgba(255,255,255,.86)}.av-field input,.av-field select,.av-field textarea{width:100%;border:1px solid rgba(255,255,255,.07);border-radius:7px;background:rgba(255,255,255,.08);color:#fff;padding:12px 13px;font:inherit;font-size:12px;outline:none}.av-field input::placeholder,.av-field textarea::placeholder{color:rgba(255,255,255,.58)}.av-field select option{color:#15233b}.av-field textarea{min-height:105px;resize:vertical}.av-privacy{display:flex;align-items:flex-start;gap:9px;color:rgba(255,255,255,.7);font-size:10px;margin:13px 0}.av-privacy input{margin-top:2px}.av-form-submit{width:100%;border:0;cursor:pointer;min-height:44px}.av-form-status{min-height:20px;margin-top:8px;font-size:12px;font-weight:650}.av-form-status.success{color:#9ff0c5}.av-form-status.error{color:#ffb9b9}

/* Footer */
.av-footer{background:#031328;color:#c8d4e8;padding:28px 0 18px}.av-footer-grid{display:grid;grid-template-columns:1.2fr .9fr .8fr 1.1fr;gap:38px}.av-footer .av-brand{margin-bottom:15px}.av-footer p,.av-footer a,.av-footer span{font-size:12px;color:#c3cfe2}.av-footer h4{color:#fff;font-size:12px;letter-spacing:.08em;text-transform:uppercase;margin:3px 0 13px}.av-footer-links{display:flex;flex-direction:column;gap:7px}.av-social{display:flex;gap:8px;margin-top:14px}.av-social a{width:30px;height:30px;border:1px solid rgba(255,255,255,.14);border-radius:7px;display:grid;place-items:center;color:#fff;font-weight:800}.av-footer-bottom{display:flex;justify-content:space-between;gap:20px;align-items:center;border-top:1px solid rgba(255,255,255,.08);margin-top:24px;padding-top:14px}.av-footer-bottom-links{display:flex;gap:20px;flex-wrap:wrap}

/* Elementor wrappers */
.avsof-el-section{width:100%}.avsof-el-section>.e-con-inner{max-width:none!important}.elementor-widget-html .av-full{width:100%}

@media(max-width:1050px){
  .av-menu{gap:16px}.av-menu a{font-size:12px}.av-nav>.av-btn{display:none}
  .av-hero-inner{grid-template-columns:1fr;padding-top:125px}.av-device-stage{height:430px}.av-laptop{left:9%;width:68%}.av-phone{right:10%;width:19%;height:250px}
  .av-why-inner{grid-template-columns:1fr}.av-benefits{grid-template-columns:repeat(3,1fr)}
  .av-solution-grid{grid-template-columns:1fr}.av-contact-box{grid-template-columns:1fr}
}
@media(max-width:800px){
  .av-container{width:min(100% - 28px,1180px)}.av-header{position:absolute}.av-menu-toggle{display:block}.av-menu{display:none;position:absolute;top:76px;left:14px;right:14px;flex-direction:column;align-items:stretch;padding:17px;background:#071a38;border-radius:14px;box-shadow:0 18px 45px rgba(0,0,0,.28)}.av-menu.open{display:flex}.av-menu a{padding:10px 4px;border-bottom:1px solid rgba(255,255,255,.08)}.av-nav{height:78px}
  .av-hero-copy h1{letter-spacing:-2.5px}.av-device-stage{height:330px}.av-laptop{left:1%;width:82%}.av-phone{right:2%;width:25%;height:220px}.av-logos{grid-template-columns:repeat(3,1fr)}
  .av-service-grid,.av-benefits,.av-steps,.av-footer-grid{grid-template-columns:1fr}.av-steps:before{display:none}.av-benefit{border-left:0;border-top:1px solid #dfe7f2}.av-solution{grid-template-columns:1fr}.av-contact-box{padding:32px 24px}.av-form-grid{grid-template-columns:1fr}.av-footer-bottom{flex-direction:column;align-items:flex-start}
}
@media(max-width:520px){
  .av-hero{min-height:760px}.av-hero-inner{padding-top:105px}.av-hero-actions{flex-direction:column}.av-hero-actions .av-btn{width:100%}.av-device-stage{height:260px}.av-laptop{width:92%;left:-5%}.av-phone{width:30%;height:190px;right:0;bottom:2px}.av-logos{grid-template-columns:1fr 1fr}.av-contact-copy h2{font-size:34px}.av-contact-box{border-radius:18px 18px 0 0}.av-solution{padding:24px}.av-mini-laptop{width:160px}.av-chair{width:140px}.av-footer-grid{gap:24px}
}

/* Elementor core widget adaptation */
.avsof-el-section.e-con,.avsof-el-section>.e-con-inner{max-width:none!important;width:100%!important;padding:0!important;gap:0!important}
.av-hero-inner.e-con,.av-why-inner.e-con,.av-contact-box.e-con{display:grid!important}
.av-service-grid.e-con,.av-benefits.e-con,.av-steps.e-con,.av-solution-grid.e-con{display:grid!important}
.av-hero-copy>.elementor-widget-heading .elementor-heading-title{font-size:clamp(48px,5.5vw,76px);line-height:.98;letter-spacing:-4px;color:#fff;margin:16px 0 20px}
.av-hero-copy>.elementor-widget-heading .elementor-heading-title .hero-accent{color:#2f7cff}
.av-hero-copy>.elementor-widget-text-editor p{max-width:590px;color:rgba(255,255,255,.87);font-size:18px;margin:0}
.av-el-eyebrow .elementor-heading-title{color:var(--avsof-blue)!important;font-size:12px!important;line-height:1!important;font-weight:800!important;letter-spacing:.12em!important;text-transform:uppercase}
.av-hero .av-el-eyebrow .elementor-heading-title{color:#4b8dff!important}
.av-el-primary .elementor-button,.av-el-ghost .elementor-button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 22px;border-radius:9px;font-weight:700}
.av-el-primary .elementor-button{background:linear-gradient(135deg,#2878ff,#0e5aeb);color:#fff;box-shadow:0 12px 28px rgba(28,103,255,.25)}
.av-el-ghost .elementor-button{color:#fff;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.3)}
.av-hero-actions.e-con{display:flex!important;flex-direction:row!important;gap:15px!important;margin-top:31px}
.av-heading .elementor-widget-heading .elementor-heading-title{font-size:clamp(32px,4vw,48px);letter-spacing:-2px;line-height:1.08;color:var(--avsof-text)}
.av-heading .elementor-widget-text-editor p{color:var(--avsof-muted);margin:0}
.av-service .elementor-widget-heading .elementor-heading-title{font-size:22px;line-height:1.1;color:var(--avsof-text)}
.av-service .elementor-widget-text-editor p{color:var(--avsof-muted);font-size:14px;min-height:87px}
.av-service .elementor-widget-button .elementor-button{padding:0;background:none;color:var(--avsof-blue);font-size:14px;font-weight:750}
.av-service.green .elementor-widget-button .elementor-button{color:var(--avsof-green)}
.av-service.violet .elementor-widget-button .elementor-button{color:var(--avsof-violet)}
.av-why-intro .elementor-widget-heading .elementor-heading-title{font-size:38px;line-height:1.05;letter-spacing:-1.8px;color:var(--avsof-text)}
.av-benefit .elementor-widget-heading .elementor-heading-title{font-size:17px;color:var(--avsof-text)}
.av-benefit .elementor-widget-text-editor p{color:var(--avsof-muted);font-size:13px}
.av-step .elementor-widget-heading .elementor-heading-title{font-size:15px;color:var(--avsof-text)}
.av-step .elementor-widget-text-editor p{color:var(--avsof-muted);font-size:12px;max-width:160px;margin:0 auto}
.av-solution-copy .elementor-widget-heading .elementor-heading-title{font-size:28px;letter-spacing:-1px;color:var(--avsof-text)}
.av-solution-copy .elementor-widget-text-editor p{color:var(--avsof-muted);font-size:14px}
.av-solution-copy .elementor-widget-button .elementor-button{padding:0;background:none;color:var(--avsof-blue);font-size:14px;font-weight:750}
.av-contact-copy .elementor-widget-heading .elementor-heading-title{font-size:44px;line-height:1.02;letter-spacing:-2px;color:#fff}
.av-contact-copy .elementor-widget-text-editor p{color:rgba(255,255,255,.86);font-size:16px;max-width:520px}
@media(max-width:800px){.av-hero-actions.e-con{flex-direction:column!important}.av-hero-copy>.elementor-widget-heading .elementor-heading-title{letter-spacing:-2.5px}}
