@font-face {
    font-family: 'DMSans';   
    src: url('../fonts/DMSans.otf'), /* IE9 Compat Modes */ 
          url('../fonts/DMSans.woff2') format('woff2'), /* Super Modern Browsers */
         url('../fonts/DMSans.woff') format('woff'), /* Pretty Modern Browsers */
         url('../fonts/DMSans.ttf')  format('truetype'); /* Safari, Android, iOS */
    font-display: swap;     
  }
@font-face {
    font-family: 'Quantico';   
    src: url('../fonts/Quantico.otf'), /* IE9 Compat Modes */  
         url('../fonts/Quantico.woff2') format('woff2'), /* Super Modern Browsers */
         url('../fonts/Quantico.woff') format('woff'), /* Pretty Modern Browsers */
         url('../fonts/Quantico.ttf')  format('truetype'); /* Safari, Android, iOS */
    font-display: swap;     
  }
  *, *::before, *::after { box-sizing: border-box; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
  body {
    position:relative;
    margin: 0;        
    font-size: 1rem;     
    background-color: var(--dirty-white);
    color:var(--cl-txt);
    width:100%;
    overflow-x: hidden;    
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
.body-alfaraee {font-family: 'DMSans', sans-serif;}

html {scroll-behavior: smooth; scroll-padding-top: 80px; max-width:100%; overflow-x: hidden;  -webkit-overflow-scrolling: touch;}
img { max-width: 100%; }
:root { 
  --dirty-white: #F9FCFF; 
  --cl-txt: #282828; 
  --cl-lime: #D3FF00;
  --cl-petrolio: #004E64; 
  --cl-dark-petroil: #004153;
  --cl-petroil-box: #2B6C7E;
  --cl-antracite: #383838;
  --btn-opacity: #b0d500;
  --font-alfaraee: 'DMSans', sans-serif; 
  --font-tera: 'Quantico', sans-serif; 
}

/*stili generali */
.width100 {width:100%;}
.h100 {height:100vh;} 
.relative {position:relative;}
.wrap-flex {display:flex; }
.wrap-col {flex-direction:column;}
.wrap {flex-wrap: wrap;}
.wrap-flex-centrato {display:flex; align-items:center;justify-content: center;}
.wrap-col-centrato {display:flex; flex-direction:column;align-items:center;justify-content: center;}
.center {align-items:center;justify-content: center;}
.align-start {align-items:flex-start;}
.align-end {align-items:flex-end;}
.align-center {align-items:center;}
.space-btw {justify-content: space-between;}
.justify-c {justify-content: center;}
.justify-r {justify-content: flex-end;}
.justify-s {justify-content: flex-start;}
.ml-auto {margin-left:auto;}
.mr-auto {margin-right:auto;}
.m-auto {margin: 0 auto;}
.txt-c {text-align:center;}
.txt-r {text-align:right;}
.txt-l {text-align: left;}
.txt-j {text-align: justify;}
.uppercase {text-transform: uppercase;}
.underline {text-decoration: underline;}
.bold {font-weight:600;}
.pointer {cursor:pointer;}
.gap5 {gap:5px;}
.gap10 {gap:10px;}
.gap16 {gap:16px;}
.gap20 {gap:20px;}
.gap30 {gap:30px;}
.gap40 {gap:40px;}
.gap48 {gap:48px;}
.gap50 {gap:50px;}
.gap80 {gap:80px;}
.gap100 {gap:100px;}
.gap150 {gap:150px;}
.gap200 {gap:200px;}
.mt0 {margin-top:0 !important;}
.mt5 {margin-top:5px;}
.mt10 {margin-top:10px;}
.mt16 {margin-top:16px;}
.mt20 {margin-top:20px;}
.mt50 {margin-top:50px;}
.mt100 {margin-top:100px;}
.md0 {margin-bottom:0;}
.md5 {margin-bottom:5px;}
.md10 {margin-bottom:10px;}
.md50 {margin-bottom:50px;}
.md20 {margin-bottom:20px;}
.m0 {margin:0 !important;}
.p0 {padding:0;}
.p5 {padding: 5px;}
.p10 {padding:10px;}
.p16 {padding:0 16px;}
.pd0 {padding-bottom:0;}
.txt-cl {color:var(--cl-txt) !important;}
.txt-w {color:white;}
.txt-lime {color:var(--cl-lime);}
.txt-petrolio {color:var(--cl-petrolio);}

.bg-white {background:white;}

.sticky {
  position:sticky;
  position: -webkit-sticky;
  position: -moz-sticky;
  position: -ms-sticky;
  position: -o-sticky;
}
.absolute {
  position:absolute;
  position: -webkit-absolute;
  position: -moz-absolute;
  position: -ms-absolute;
  position: -o-absolute;
}

.fixed {
  position:fixed;
  position: -webkit-fixed;
  position: -moz-fixed;
  position: -ms-fixed;
  position: -o-fixed;
}
.bkgr-image_cover {
  background-size: cover;
  -webkit-background-size:cover;
   -moz-background-size: cover;
   -o-background-size:cover;
  background-repeat: no-repeat;
  background-position: center;
  width:100%;
  height:100vh;
}

/* navbar */
.header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1002;
    background: var(--cl-dark-petroil);    
    height:72px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25),  0 2px 6px rgba(0, 0, 0, 0.15);
    -webkit-box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25),  0 2px 6px rgba(0, 0, 0, 0.15);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.header-container {height:72px; padding-top: 8px; padding-bottom:8px; }
.logo {width:auto; }
.logo-img_desk {width:167px; }

.nav-desktop {display: flex; margin-left: auto;}
.nav-desktop a {
    color: white;
    text-decoration: none;
    font-weight: 500;
    font-size: 16px;
    transition: color 0.3s ease;
}
.nav-desktop a:hover {color: var(--cl-lime);}
.nav-desktop a.active,.nav-mobile a.active {color: var(--cl-lime); }
.header-right {display: flex;align-items: center; gap:48px;}
.lang-switch {background: rgba(255,255,255,0.1);border: 1px solid rgba(255,255,255,0.2);border-radius: 15px;padding: 2px;font-size: 12px;}
.lang-option {padding: 4px 8px;border-radius: 12px;cursor: pointer;transition: all 0.3s ease; display: inline-block;color: white;}
.lang-option.active {background: var(--cl-lime);color: var(--cl-petrolio);}
.mobile-menu-btn {display: none;background: none;border: none;cursor: pointer;position: relative; width: 24px;height: 16px; padding: 0;}
.header .mobile-menu-btn {position: relative; top: auto;right: auto; padding: 0;}
.mobile-menu-btn .burger-line {
    position: absolute;
    display: block;
    right: 0;
    width: 100%;
    height: 2.15px;
    opacity: 1;
    transform: rotate(0deg);
    border-radius: 0.15rem;
    background-color: white;
    transition: all 0.3s ease;
}
.mobile-menu-btn .burger-line:nth-child(1) { top: 0px;}
.mobile-menu-btn .burger-line:nth-child(2) { top: 0.5rem;width: 70%;}
.mobile-menu-btn .burger-line:nth-child(3) {top: 1rem;}
.mobile-menu-btn.is-active .burger-line:nth-child(1) {top: 0.5rem;transform: rotate(135deg);}
.mobile-menu-btn.is-active .burger-line:nth-child(2) { opacity: 0;}
.mobile-menu-btn.is-active .burger-line:nth-child(3) {top: 0.5rem;transform: rotate(-135deg);}
.nav-mobile {
  position: fixed; 
  top: 0;
  /*right: -100%; */
  width: 100%;
  height: 100vh;
  background: var(--cl-dark-petroil);
  transition: right 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94); 
  z-index: 1001;
  right: 0;
  transition: transform 0.42s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  transform: translateX(100%);
  will-change: transform;
}

.nav-mobile.active {/*right: 0;*/ transform: translateX(0);}
.nav-mobile-content { padding: 100px 30px 30px; height: 100%;  text-align: center;}
.nav-mobile a {color: white;text-decoration: none;font-size: 24px;font-weight: 500;display: block; padding: 20px 0;transform: translateY(30px); opacity: 0;transition: transform 0.42s ease, opacity 0.42s ease;}
.nav-mobile a:hover {color:var(--cl-lime);}
.nav-mobile.active a {transform: translateY(0);opacity: 1;}
.close-mobile-menu {position: absolute; top: 20px;right: 30px;background: none;border: none; color: white; font-size: 30px;cursor: pointer;}
.mobile-lang-switch {margin-top: 30px; display: inline-block;}
.mobile-menu-btn,.lang-option,.nav-desktop a,.nav-mobile a { -webkit-tap-highlight-color: transparent;-webkit-user-select: none; user-select: none;}

#autorizzazioni-alfaraee { scroll-margin-top: 100px; }

/* Fix viewport iOS */
@supports (-webkit-appearance: none) {.header {backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);}}

@media (max-width: 1057px) {.nav-desktop { display: none;}.mobile-menu-btn {display: block; }}
@media (max-width: 630px) {.header-container { padding-top: 17px; padding-bottom:17px;} .header-right {gap:24px;} #autorizzazioni-alfaraee { scroll-margin-top: 80px; }}    

.hero-h1 {font-size: clamp(38px, 4.5vw, 70px); line-height: 1.125; letter-spacing: 0; font-weight:600; margin:0; color:var(--cl-lime); }
.hero-h2 {font-size: clamp(16px, 1.5vw, 18px);  letter-spacing: 0.5px; color:white;margin:0;  max-width:850px; line-height:1.6;}

.cta-container {background:var(--cl-dark-petroil); color:var(--dirty-white);  width:fit-content; margin-bottom:20px; }
.cta-txt {color:white;margin:0; font-size: clamp(16px, 1.5vw, 18px); font-weight:700; letter-spacing: 0.5px; line-height:1.6; }

main{ padding-top:72px; }
/* buttons */
.btn-shape { border-radius: 8px 0 8px 0;}
.btn-padding {padding:12px 20px;}
.button-lime-shape { background:var(--cl-lime); color:var(--cl-petrolio); transition:background 0.5s ease-out; text-decoration:none; font-weight:600; cursor:pointer;}
.button-lime-shape:hover {background:var(--btn-opacity);}
.button-petroil-shape { background:var(--cl-petrolio); color:var(--dirty-white); transition:color 0.5s ease-out; text-decoration:none; font-weight:600;cursor:pointer;}        
.button-petroil-shape:hover { color:var(--cl-lime); }        
.cta-tera {color:var(--cl-antracite);cursor:pointer;}
.btn-link {color:var(--cl-lime);cursor:pointer;}
.btn-link-petroil {color:var(--cl-petrolio);}
.btn-link:hover {color:var(--btn-opacity);}
.btn-contatti {background:var(--dirty-white);}

.no-bradius {border-radius:0;}

/* contenitore generale */
.container_gen{
  width:100%;
  max-width:1700px;
  margin:0 auto;
  box-sizing:border-box;   
}
.home-section {padding-top: 150px; padding-bottom:150px; background:var(--dirty-white); }
.padding-container, .padding-error {padding-left:85px;padding-right:85px;}
@media (max-width:1300px) {.padding-container, .padding-error {padding-left: 45px; padding-right:45px;}.home-section {padding-top: 80px; padding-bottom:80px; }}

@media (max-width:2200px) {.container_gen {max-width: 1600px; }}
@media (max-width:1300px) {.container_gen {max-width: 1800px; }}
@media (max-width:768px) {.padding-container, .padding-error{ padding-left: 20px; padding-right:20px; } .home-section {padding-top: 50px; padding-bottom:50px;}}

/* footer */
footer {padding: 80px 85px; z-index:2; position:relative; font-family: var(--font-alfaraee);}
footer a{ color:white; text-decoration: none; }

.footer__inner{width: min(100%, 2000px);margin: 0 auto;}
.footer__logo{ width: clamp(160px, 18vw, 260px); height:auto; display:block; margin-bottom: 20px; }
.footer__grid{
  display:grid;
  grid-template-areas:
    "brand legal hours sol"
    "brand oper  phone sol"
    "brand amm  email sol";
  grid-template-columns: 1.2fr 1fr 1fr 1.2fr;
  gap: clamp(20px, 3vw, 40px);
  align-items:start;
}
.footer__brand{ grid-area: brand; }
.footer__legal{ grid-area: legal; }
.footer__hours{ grid-area: hours; }
.footer__email{ grid-area: email; }
.footer__oper{ grid-area: oper; }
.footer__phone{ grid-area: phone; }
.footer__social{ grid-area: social; }
.footer__ammin {grid-area: amm;}
.footer__soluzioni {grid-area: sol;}

.footer__h3{
  font-size: 24px;
  margin: 0 0 8px 0;
  font-weight: 700;
  color: #E9F6FF;
}
.footer__col p, .footer__col address{
  margin:0;
  font-style: normal;
  line-height: 1.5;
  opacity: .95;
  letter-spacing: 0.5px;
  font-size:16px;
}
.footer__soluzioni p {line-height:1.8;}

.tel-footer {font-weight:5    00;}

.footer__divider{
  border: none;
  height: 2px;
  margin: clamp(28px, 5vw, 48px) 0;
  background: rgba(255,255,255,.55);
}
.footer__bottom{
  display:flex;
  flex-wrap: wrap;
  justify-content: space-between;  
  align-items:center;  
  opacity: .95;
 
}
.footer__bottom p{ margin:0; font-size:16px; font-weight:400;}
.footer__social p {line-height:1;}
.footer__icon i {font-size:20px;}
@media (max-width:1210px) {
  .footer__grid{
grid-template-columns: 1fr 1fr 1fr 1fr; /* brand meno dominante per dare aria */
gap: clamp(16px, 2vw, 28px);
}
.footer__grid{ 
  grid-template-areas:
"brand brand brand"
"legal hours sol"
"oper phone sol"
"amm email sol"; 
grid-template-columns:1fr 1fr;
column-gap:50px;
 }
.footer__brand {margin-bottom:40px;}
.footer__logo {width:300px; }
.footer-wrap-mobile { gap:20px;}
}
@media (max-width:1300px) {.footer__bottom, .footer-wrap-mobile { gap:20px; }}
@media (max-width:1075px) {
  footer {padding: 40px 24px;}
  .footer__logo {width:300px; }
  .footer__grid{
    grid-template-areas:
      "brand brand"
      "legal phone"
      "oper email"
      "amm sol"
      "hours sol"; /* ← Solo questi due affiancati */
    grid-template-columns: 1fr 1fr; 
    row-gap: 28px;
    column-gap:50px;
  }
  .footer__brand {display:flex; align-items: center; margin-bottom:40px;}
  .footer__bottom, .footer-wrap-mobile {flex-direction:column; text-align:center; gap:20px;}
  .footer__h3 {font-size:20px;}
  footer address br { display: none; }
}
@media (max-width:600px) {
  footer {padding: 40px 24px;}
  .footer__logo {width:300px; }
  .footer__grid{
    grid-template-areas:
      "brand brand"
      "legal legal"
      "oper oper"
      "hours hours"
      "phone phone"
      "email email"
      "amm amm"
      "sol sol"; /* ← Solo questi due affiancati */
    grid-template-columns: 1fr 1fr; 
    row-gap: 28px;
    column-gap:50px;
  }

  .footer__brand {display:flex; align-items: center; margin-bottom:40px;}
  .footer__bottom, .footer-wrap-mobile {flex-direction:column; text-align:center; gap:20px;}
  .footer__h3 {font-size:20px;}
  footer address br { display: none; }
}
/* ========= BASE ========= */


#hero{
  position: relative;
  min-height: calc(100svh - 72px);
  background: var(--cl-petrolio);
  display: flex;
  align-items: center;  
  overflow: hidden;
  padding-top:0;
  padding-bottom:0;
}



.hero_inner{
  margin:0 auto;
  display:grid;
  grid-template-columns: 1fr 1fr;
  align-items:center;
  min-height: inherit;  
  width:100%;
}


/* Unico @supports per #hero e .hero_inner */
@supports (height: 100dvh){
  #hero, .hero_inner{ min-height: calc(100dvh - 72px); }
}

.hero_copy{ z-index:2; }
.hero_copy-centramobile{ display:flex; flex-direction:column; gap:40px; text-align:left; }

.hero_visual{
  position: relative;         
  min-height: 0;
  height: 100%;    
  overflow: hidden;  
  display:flex;
  align-items:center;
}

.hero_visual__img{
  
  max-height: clamp(280px, 65vh, 760px);
  width: auto;
  object-fit: contain;
  object-position: right bottom;
}



/* ========= <= 1200px (STACK) ========= */
@media (max-width: 1200px){ 

  .hero_inner{
    grid-template-columns: 1fr;
    grid-template-rows: auto;     /* solo il testo nel flow */
    gap: 50px;
    min-height: 100%;
  }

  .hero_copy{
    display:flex; flex-direction:column;
    align-items:center; justify-content:center;
    height:auto;
  }
  .hero_copy-centramobile{ width:auto; margin:0 auto; }

  .hero_visual{ position: static; min-height:0; height:auto; justify-content: center;}

  .hero_visual__img{
    
    max-height: 50vh;
    height: auto;
  }
}



/* ========= <= 768px PORTRAIT ========= */
@media (max-width: 768px) and (orientation: portrait){
  #hero{
    padding-left: 20px;
    padding-right: 20px;
    /* più spazio riservato sotto per evitare sovrapposizioni */
    
    overflow: hidden;
  }

  .hero_inner{
    grid-template-columns: 1fr;
    grid-template-rows: auto;     /* solo testo nel flow */
    align-items: center;
  }

  .hero_copy{
    position: relative;
    z-index: 2;                    /* testo sopra nello stacking */
    display:flex; flex-direction:column;
    align-items:center; justify-content:center;
    padding-top: clamp(12px, 3vh, 28px);
    padding-bottom: 0;
  }
  .hero_copy-centramobile{ width: 88%; max-width: 640px; gap:20px;}
  .hero_visual{ position: static; min-height:0; height:auto; }

  .hero_visual__img{
    
    width: min(54vw, 460px);
    max-height: clamp(240px, 48vh, 520px);
    height: auto;
    object-position: center bottom;
    z-index: 1;
    pointer-events: none;    
  }

  .hero-h1{ font-size: 25px; line-height: 1.05; }
  .hero-h2{ font-size: 16px; }
  .button-lime-shape{ width:100%; text-align:center; }
  .centrabtn-hero {display:flex; justify-content: center; align-items:center; width:100%; margin-bottom: clamp(8px, 2vh, 16px);}  
}

/* ========= XS TUNING ========= */
@media (max-width: 650px){
  .hero_copy-centramobile{ width:90%; }
  .hero_visual__img{ width: min(94vw, 460px); }
}

@media (max-width: 480px){
    .hero_copy-centramobile{ width: 100%; }
  .hero_visual__img{ width: 96vw; max-height: 44vh; }
}

/* ========= LANDSCAPE BASSO (tablet/laptop bassi) ========= */
@media (orientation: landscape) and (max-height: 760px) and (min-width: 900px){
  #hero{ padding: 0 85px; overflow: hidden; }

  .hero_inner{
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr;
    align-items: center;
    min-height: calc(100vh - 72px);
  }

  .hero_copy{
    display:flex; flex-direction:column;
    justify-content:center; align-items:flex-start;
    height:auto;
  }
  .hero_copy-centramobile{ width: min(90%, 640px); margin: 0; }

  .hero_visual{ position: relative; height: 100%; display: block; display:flex; align-items:center;}
  .hero_visual__img{    
    width: auto;
    max-height: min(68vh, 520px);
    object-position: right bottom;
  }

  /* micro-riduzione titoli se l’altezza è molto bassa */
  .hero-h1{ font-size: 28px; }
  .hero-h2{ font-size: 16px; }
}

/* section */

.home-section p {font-size: clamp(16px, 1vw + 12px, 20px); line-height:1.6;}
.section_n1, .section_n3, .section_cta { margin:0 auto; box-sizing: border-box; width:100%;}
.section_n1 .section-txt {max-width:55%; }
.section-h2 {color:var(--cl-petrolio); font-weight: 700; font-size: clamp(32px, 3.8vw, 60px); margin:0; line-height:1.1;}

/* parallax services */
.grid-service-parallax {display:grid; grid-template-columns: repeat(3, minmax(350px, 1fr)); gap:50px; max-width:1700px;}
.service-parallax {
  padding: 20px;
    background: white;        
    text-decoration: none;
    transition: all 0.3s ease;    
    border: 2px solid transparent;
    padding: 40px;    
    min-height: unset;    
    width:100%;
    position: relative;
    display:flex;    
    align-items:start;
    text-align:left;    
    z-index:10;
    gap:20px;    
}
.service-parallax h5 {
  color: var(--cl-petrolio);
    font-size: 18px;
    font-weight: 600;    
    line-height: 1.3;
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin:0;
}

.service-parallax p {font-size: 14px;line-height: 1.5; margin: 0; color:var(--cl-txt); }
.go-to {color:var(--cl-petrolio); font-size:14px;margin-top:auto;} 
.fa-arrow-right {transition:transform 0.5s ease-in-out; }
.service-parallax:hover .fa-arrow-right {transform: translateX(4px);}

.logo {width:auto; }
.logo-alfaraee {width:125px;}

.petrol-box {
    background: var(--cl-petrolio);
    color: white;
    padding: 40px;    
    min-height: unset;    
    width:100%;
    position: relative;
    display:flex;    
    align-items:start;
    text-align:left;
    border-radius: 20px 0 20px 0;
    z-index:10;
    gap:20px;
}

.petrol-box__number {width:50px; height:50px; min-width: 50px; min-height: 50px;  background:var(--cl-petroil-box); color:var(--cl-lime); display:flex; align-items: center; justify-content: center; font-size: 40px; font-weight:800;}
.petrol-box h3 {font-weight:700; font-size:24px; letter-spacing: 0.5px;  margin-top:0; margin-bottom:20px;}
.petrol-box p {font-size:16px;letter-spacing: 0.5px; font-weight: 400; margin:0;}
.petrol-box ul {padding-left:16px;}
.petrol-box ul li {font-size:16px;letter-spacing: 0.5px; font-weight: 400; line-height:1.6; }

@media (max-width: 1450px) {.grid-service-parallax {grid-template-columns: repeat(2, 1fr);}}
@media (max-width: 950px) {.grid-service-parallax {grid-template-columns: 1fr;}}
@media (max-width:600px) {.petrol-box {flex-direction:column;} .service-parallax {flex-direction: column;}}

/* section grid */
.petrol-box__grid {
    display: grid;   
    grid-template-columns: repeat(auto-fit, minmax(385px, 1fr));
    gap: 50px;
    margin-top: 30px;
    justify-content: stretch; 
    justify-items: stretch; 
    align-items: stretch;
    width:100%;
    max-width:2000px;    
}

.petrol-box-grid-item {
    background: var(--cl-petrolio);
    color: white;
    padding: 40px;    
    min-height: unset;
    aspect-ratio: 1 / 1;
    width:100%;
    position: relative;
    display:flex;
    flex-direction: column;
    align-items:start;
    text-align:left;
    border-radius: 20px 0 20px 0;
    z-index:10;
    gap:20px;
}
.petrol-box-grid-item .wrap-col {display: flex;flex-direction: column;  flex: 1;  gap:20px;}
.wrap-col__content {display: flex;flex-direction: column; gap: 20px;}
.wrap-col__bottom {    
    margin-top: auto;      
    height:70px; 
    display:flex;
    align-items:flex-start; 
    justify-content: flex-start;
}
.wrap-col__bottom p {margin:0;}
.petrol-box1::after, .petrol-box5::after {
    content: '';
    position: absolute;
    right: -50px;
    top: 60px;
    width: 80px;
    height: 60px;
    background: var(--cl-petrolio);
    z-index: 11;
}
.petrol-box2::after, .petrol-box4::after {
    content: '';
    position: absolute;
    right: -50px;
    bottom: 60px;
    width: 80px;
    height: 60px;
    background: var(--cl-petrolio);
    z-index: 11;
}


@media (min-width: 1900px)  {
  .petrol-box__grid{grid-template-columns: repeat(3, 1fr); gap:100px; }
  .petrol-box-grid-item{max-width: 600px;justify-self: center; }
  .petrol-box1::after, .petrol-box5::after {  right: -250px; width: 400px;}
  .petrol-box2::after {right: -280px;width: 300px; }
  .petrol-box4::after {right: -300px;width: 300px;}
  .petrol-box h3 {font-size:28px; }
.petrol-box-grid-item p {font-size:20px;}
}
@media (max-width:1600px) {
  .petrol-box__grid { grid-template-columns: repeat(auto-fit, minmax(385px, 1fr));} 
    .petrol-box-grid-item h3 {font-size:22px;}
    .petrol-box__number {width:65px; height:65px; font-size:50px;}
    .petrol-box__number-responsive {width:55px; height:55px; font-size:40px;}
    .petrol-box-grid-item p {font-size:16px;}
  }
@media (max-width:1450px) {.pagineinterne-section__wrap .pagineinterne-section__section-txt {max-width:70%; }}

@media (max-width:1424px) {
    .petrol-box__grid { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));}  
}

@media (max-width: 1270px) {
.petrol-box__grid {
    grid-template-columns: 1fr;    
    max-width: 485px;
    margin-left: auto;
    margin-right: auto;  
    justify-content: center;  
   justify-items: center;  
   align-items: center;  
}
 
.petrol-box1::after, .petrol-box3::after, .petrol-box5::after {
    right: auto;
    top: auto;
    left: 60px;
    bottom: -50px;
    width: 60px;
    height: 80px;
}
.petrol-box2::after, .petrol-box4::after{
    right: auto;
    bottom: auto;
    right:60px; 
    bottom: -50px;
    width: 60px;
    height: 80px;
}
.petrol-box3::after, .petrol-box5::after{
    content:"";
    position:absolute;
    right:60px; bottom:-50px;
    width:60px; height:80px;
    background:var(--cl-petrolio);
  }

.petro-box3-noafter::after {content:none !important;}  
}

@media (max-width:800px) {.petrol-box__number-responsive {width:65px; height:65px; font-size:50px;}}
@media (max-width: 600px) {.petrol-box__grid {max-width: 385px;}}

/* FORM */
.section-form {background:var(--cl-dark-petroil);}
.cta-title {font-size: clamp(32px, 3.8vw, 60px); line-height: 1.125; letter-spacing: 0; font-weight:600; margin:0; color:var(--cl-lime); text-align:center;}
.cta-p {color:white; font-size:18px; letter-spacing:0.5px; margin:0;}
.container-form {background:white; padding:30px 40px; max-width:1100px; margin:0 auto; margin-top:20px;}
@media (max-width:800px) {.container-form {padding:20px;}}
.form-group {margin-bottom: 22px;}        
.form-group label {display: block;font-weight: 600;color: var(--cl-dark-petroil); font-size: 1rem;}        
.form-group .required {color: var(--cl-lime);background: var(--cl-dark-petroil);font-size: 1rem; display:flex; align-items: center; justify-content: center; width:18px; height:18px; padding-top:5px;}        
.form-group label .optional {color: #999; font-weight: 400;font-size: 0.9rem; margin-left: 8px; }        
.form-group input[type="text"],
.form-group input[type="tel"],
.form-group input[type="number"],
.form-group input[type="email"],
.form-group textarea,
.form-group select {
    width: 100%;
    padding: 10px 18px;
    border: 2px solid #e0e0e0;
    border-radius: 8px;
    font-size: 1rem;
    font-family: inherit;
    transition: all 0.3s ease;
    background: white;
}        
.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus {outline: none;border-color: var(--cl-lime); box-shadow: 0 0 0 3px rgba(212, 255, 0, 0.1);}        
.form-group textarea {resize: vertical; min-height: 100px;}        
.form-group select {
    cursor: pointer;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%230d5c63' d='M6 9L1 4h10z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 18px center;
    padding-right: 45px;
}        
.form-hint {font-size: 0.9rem;color: #666;margin-top: 6px; line-height: 1.5;}        
/* Radio buttons */
.radio-group {display: flex; gap: 20px;margin-top: 12px;}
.radio-option { display: flex;align-items: center;gap: 8px;}
.radio-option input[type="radio"] { width: 20px;height: 20px;cursor: pointer; accent-color: var(--cl-dark-petroil);}
.radio-option label { margin: 0; cursor: pointer; font-weight: 400; color: #444; }        
/* File upload */
.file-upload-wrapper {
    position: relative;
    border: 2px dashed var(--cl-lime);;
    border-radius: 8px;
    padding: 20px;
    text-align: center;
    background: #f8f9fa;
    transition: all 0.3s ease;
    cursor: pointer;
}

.file-upload-wrapper:hover { background: #fff;border-color: var(--cl-dark-petroil);}        
.file-upload-wrapper input[type="file"] {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
}
.file-upload-icon { font-size: 2rem; margin-bottom: 8px;}        
.file-upload-text {color: var(--cl-dark-petroil);font-weight: 600;margin-bottom: 0;}
.file-list {margin-top: 15px;display: flex; flex-direction: column;gap: 10px;}        
.file-item {display: flex;align-items: center;justify-content: space-between;padding: 10px 15px;background: #f0f0f0;border-radius: 6px;font-size: 0.9rem;}        
.file-item-name {color: var(--cl-dark-petroil);font-weight: 500;}        
.file-item-remove {background: none;border: none;color: #dc3545;cursor: pointer;font-size: 1.2rem;padding: 0 5px;}

/* Privacy */
.privacy-check {display: flex;align-items: flex-start;gap: 12px; margin-top: 20px;padding: 15px;background: #f8f9fa;border-radius: 8px;}        
.privacy-check input[type="checkbox"] {
    width: 20px;
    height: 20px;
    margin-top: 2px;
    cursor: pointer;
    accent-color: var(--cl-petrolio);
    flex-shrink: 0;
}        
.privacy-check label { margin: 0; font-size: 0.9rem; color: #555; line-height: 1.6;cursor: pointer;}
.privacy-check label a { color: var(--cl-petrolio); text-decoration: underline;}

@media (max-width: 768px) {  .radio-group { flex-direction: column; gap: 12px;} .form-row {flex-direction:column; gap:0;}}

/* punti forza */
.punti-forza-alfaraee {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px 60px;
  margin-bottom: 60px;
  max-width: 1100px;
}
.feature-item {display: flex; gap: 20px;align-items: flex-start;}
.checkmark {color: var(--cl-lime); font-size: 2rem;font-weight: bold; flex-shrink: 0;line-height: 1;}
.feature-content h3 {
  color: #ffffff;
  font-size: 1.3rem;
  font-weight: 700;
  margin: 0 0 12px 0;
  font-family: Arial, sans-serif;
}
.feature-content p {
  color: #ffffff;
  font-size: 1rem;
  line-height: 1.6;
  margin: 0;
  opacity: 0.95;
}
@media (max-width: 968px) {.punti-forza-alfaraee { gap: 30px 40px;}  .feature-content h3 {font-size: 1.2rem;}}
@media (max-width: 768px) {.punti-forza-alfaraee{grid-template-columns: 1fr;gap: 30px;} .feature-item.full-width {grid-column: 1; } .checkmark {font-size: 1.5rem;}.feature-content h3 {font-size: 1.1rem;}.feature-content p { font-size: 0.95rem;}}
/* section cta */
.section_cta {background:var(--cl-petrolio); padding:97px 85px 0 85px; overflow: visible;}
.section_cta-mobile {
  position: relative;
  overflow: hidden; /* Importante per contenere l'immagine */
}
.richiedi-consulenza_txt {
  width: 100%; 
  max-width: 100%; 
  flex: 1 1 auto; 
  padding: 60px 0;
  z-index: 2;
  padding-bottom: 80px; 
  margin-bottom: 0;
}

.richiedi-consulenza_txt h2 {
  font-size: clamp(32px, 3.8vw, 60px); 
  font-weight: 700; 
  letter-spacing: 0.5px; 
  color: var(--cl-lime); 
  line-height: 1.2; 
  margin-top: 0;
}

.richiedi-consulenza_img {    
  position: absolute;
  right: 0;
  bottom: 0; 
  width: 550px; 
  height: 550px;
  z-index: 1;
}

.richiedi-consulenza_img img {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: bottom right;
}

@media (max-width:1540px) {
  .section_cta{overflow: visible;} 
    .section_cta-mobile {
    overflow: visible;
  }
  .richiedi-consulenza_img {
    transform: rotate(270deg);
    transform-origin: bottom right; /* Ruota dal punto in basso a destra */
    right: -100px; /* Sposta fuori (circa metà della larghezza dell'immagine ruotata) */
    bottom: 300px; /* Regola l'altezza verticale */
    width:450px;
    height:450px;
  }}
@media (max-width:1210px) {.section_cta {padding:20px 50px 0 50px;}}


@media (max-width: 968px) {
  .richiedi-consulenza_txt {padding: 60px 20px;padding-bottom: 380px;}  
 .richiedi-consulenza_img {
    transform: none; 
    right: auto; 
    left: 70%; 
    bottom: 0; 
    transform: translateX(-50%); 
    width: clamp(320px, 45vw, 480px);
    height: clamp(320px, 45vw, 480px);
  }
  
  .richiedi-consulenza_img img {object-position: bottom center; }  
  .section_cta-mobile {overflow: hidden; }  
  .cta-mobile-lenght {display: flex;width: 100%;}
}
@media (max-width:768px) {.richiedi-consulenza_img {left:50%;} .section_cta {padding:20px 20px 0 20px;}}

/* FAQ */
.faq-grid {display: grid;grid-template-columns: repeat(2, 1fr);gap: 30px; margin-top:30px;}
.faq-column {display:flex; flex-direction:column; gap:40px;}
.faq-item {border-radius: 8px;overflow: hidden;transition: all 0.3s ease; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);-webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);}
.faq-question {
    background: white;
    padding: 20px 25px;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap:10px;
    transition: background 0.3s ease;
    }
.faq-question .question {color: var(--cl-petrolio); font-size: 22px;font-weight: 700; margin: 0; flex: 1; letter-spacing:0.5px; text-align:left;}
.arrow {    
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.3s ease;
    color: var(--cl-petrolio);
    font-size: 1.2em;
    flex-shrink: 0;
    margin-top: 5px;
}

.faq-item.active .arrow {transform: rotate(180deg);}
.faq-answer {max-height: 0;overflow: hidden;transition: max-height 0.4s ease, padding 0.4s ease;background: white;}
.faq-item.active .faq-answer {max-height: 500px;padding: 25px; }
.faq-answer p {line-height: 1.8;font-size: 18px; margin:0; text-align:left;}
@media (max-width:1061px) {.faq-question .question {font-size:18px;} .arrow {font-size:1em;}.faq-answer p {font-size:16px;}}
 @media (max-width: 950px) {.faq-grid {grid-template-columns: 1fr; } }

 .bg-petrolio {background:var(--cl-petrolio);}
.bg-green-gradient {background: linear-gradient(#004153, #002732);}

/* thank you page */
.wrap-grazie {min-height:80dvh;  background:var(--cl-petrolio); padding:30px; color:white; font-family: var(--font-alfaraee);}
.wrap-grazie h2 {font-size:30px;}
@media (max-width:890px) {.wrap-btn-thank {flex-direction:column; align-items:center;} .wrap-grazie {padding:100px 20px;}}
@media (max-width:490px) {.wrap-btn-thank {font-size:14px;}}

#checkmark-animation canvas { width: 300px !important; height: 300px !important; }
@media (max-width: 768px) {  #checkmark-animation canvas {width: 250px !important; height: 250px !important;}}
@media (max-width: 480px) { #checkmark-animation canvas { width: 200px !important; height: 200px !important; } }




/* error 404 */
#hero-error {background:var(--cl-petrolio); display:flex; align-items: center; justify-content: center; min-height:100vh; }
.error-txt {text-align:center; gap:50px; display:flex; flex-direction: column; align-items: center; justify-content: center;}
.error_nb {color:var(--cl-lime); font-size: clamp(96px, 35vw, 320px); text-shadow: 0 2px 6px rgba(0, 0, 0, 0.35), 0 4px 14px rgba(0, 0, 0, 0.25); font-size:700; line-height:0.9;}
.error_disclaimer {color:var(--dirty-white); font-size: clamp(22px, 3.5vw, 50px); font-size:400;}