/* ═══════════════════════════════════════════════════════════
   RESET & VARIABLES
═══════════════════════════════════════════════════════════ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --black:#0a0a0a;--white:#f8f6f2;--off:#111111;
  --accent:#e05c10;--accent2:#f07030;--gold:#c9860a;
  --gray:#888;--lgray:#aaa;
  --border:rgba(255,255,255,.08);--border2:rgba(255,255,255,.12);
  --cream:#f5f2eb;--cream2:#ede9df;
  --shadow-xl:0 32px 80px rgba(0,0,0,.5);
}
html{scroll-behavior:smooth}
body{
  font-family:'Outfit',sans-serif;
  background:var(--black);color:var(--white);
  overflow-x:hidden;
}
.lenis.lenis-smooth{scroll-behavior:auto!important}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}
.lenis.lenis-smooth iframe{pointer-events:none}
body.cursor-ready{cursor:none}
body.cursor-ready button{cursor:none}
@media(hover:none),(pointer:coarse){body,body.cursor-ready,body.cursor-ready button{cursor:auto!important;}}
a{text-decoration:none;color:inherit}
button{font-family:'Outfit',sans-serif;}
img{max-width:100%}

/* ═══════════════════════════════════════════════════════════
   CURSOR
═══════════════════════════════════════════════════════════ */
#cursor{position:fixed;top:0;left:0;z-index:9999;pointer-events:none;mix-blend-mode:difference}
#cursor-dot{width:8px;height:8px;background:#fff;border-radius:50%;position:absolute;transform:translate(-50%,-50%);transition:width .2s,height .2s,opacity .2s}
#cursor-ring{width:40px;height:40px;border:1.5px solid rgba(255,255,255,.5);border-radius:50%;position:absolute;transform:translate(-50%,-50%);transition:width .35s cubic-bezier(.16,1,.3,1),height .35s cubic-bezier(.16,1,.3,1),opacity .3s}
body.cursor-hover #cursor-dot{width:0;height:0;opacity:0}
body.cursor-hover #cursor-ring{width:70px;height:70px;border-color:rgba(255,255,255,.8)}
/* ── Hide custom cursor on touch/mobile devices ── */
@media(hover:none),(pointer:coarse){
  #cursor{display:none!important}
  body,button,a,[onclick],input,select,textarea{cursor:auto!important}
}

/* ═══════════════════════════════════════════════════════════
   LOADER
═══════════════════════════════════════════════════════════ */
#loader{position:fixed;inset:0;background:var(--black);z-index:9000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem}
#loader-logo{font-family:'Fraunces',serif;font-size:clamp(2rem,6vw,5rem);opacity:0;letter-spacing:-.03em}
#loader-logo span{color:var(--accent)}
#loader-line{width:0;height:1px;background:var(--accent);transition:width 1.2s cubic-bezier(.16,1,.3,1)}
#loader-pct{font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--lgray);opacity:0}

/* ═══════════════════════════════════════════════════════════
   GRADIENT + GRAIN
═══════════════════════════════════════════════════════════ */
.gradient-bg{position:fixed;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(ellipse 60% 50% at 20% 20%,rgba(224,92,16,.13) 0%,transparent 60%),
             radial-gradient(ellipse 50% 60% at 85% 80%,rgba(224,92,16,.08) 0%,transparent 60%),
             radial-gradient(ellipse 30% 40% at 60% 50%,rgba(255,255,255,.02) 0%,transparent 60%)}
.grain{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.04;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23noise)' opacity='1'/%3E%3C/svg%3E");
  background-repeat:repeat}

/* ═══════════════════════════════════════════════════════════
   NAV
═══════════════════════════════════════════════════════════ */
nav{position:fixed;top:0;left:0;right:0;z-index:500;display:flex;align-items:center;justify-content:space-between;padding:1.4rem 4rem;transition:padding .4s,background .4s}

/* Hide main nav when mobile menu is open */
body.menu-open #mainNav {
  display: none !important;
  z-index: -1 !important;
  pointer-events: none !important;
}
nav.scrolled{padding:.9rem 4rem;background:rgba(10,10,10,.88);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-bottom:1px solid var(--border)}
.logo{font-family:'Fraunces',serif;font-size:1.5rem;color:var(--white);flex-shrink:0;letter-spacing:-.02em}
.logo span{color:var(--accent)}
.nav-links{display:flex;align-items:center;gap:2.5rem;list-style:none}
.nav-links a{font-size:.82rem;font-weight:500;color:rgba(255,255,255,.5);transition:color .2s;position:relative;letter-spacing:.04em}
.nav-links a::after{content:'';position:absolute;bottom:-4px;left:0;right:0;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .28s}
.nav-links a:hover{color:#fff}
.nav-links a:hover::after{transform:scaleX(1)}
.nav-cta{display:inline-flex;align-items:center;gap:.5rem;background:var(--accent);color:#fff!important;font-size:.78rem!important;font-weight:600!important;padding:.55rem 1.3rem;border-radius:10px;transition:background .2s!important;letter-spacing:.06em;text-transform:uppercase}
.nav-cta::after{display:none!important}
.nav-cta:hover{background:var(--accent2)!important}
.hamburger{display:none;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:10px 11px;min-width:44px;min-height:44px;background:none;border:none}
.hamburger span{display:block;width:22px;height:1.5px;background:#fff;transition:all .3s}
.hamburger.open span:nth-child(1){transform:rotate(45deg) translate(4px,4px)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(4px,-4px)}
/* ═══════════════════════════════════════════════════════════
   HERO — Awake Dark Agency
═══════════════════════════════════════════════════════════ */
.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:flex-end;padding:0 4rem 7rem;position:relative;overflow:hidden}
.hero-lines{position:absolute;inset:0;z-index:0;overflow:hidden}
.hero-line{position:absolute;background:linear-gradient(to bottom,transparent,rgba(224,92,16,.18),transparent);width:1px;animation:linePulse 4s ease-in-out infinite}
.hero-line:nth-child(1){left:20%;height:100%;animation-delay:0s}
.hero-line:nth-child(2){left:40%;height:60%;top:20%;animation-delay:.8s}
.hero-line:nth-child(3){left:60%;height:80%;animation-delay:1.6s}
.hero-line:nth-child(4){left:80%;height:50%;top:30%;animation-delay:2.4s}
@keyframes linePulse{0%,100%{opacity:.3}50%{opacity:.9}}
.hero-tag-row{display:flex;align-items:center;gap:1.2rem;margin-bottom:2rem;position:relative;z-index:2}
.hero-tag{font-size:.68rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);display:flex;align-items:center;gap:.8rem}
.hero-tag::before{content:'';display:block;width:32px;height:1px;background:var(--accent)}
.hero-tag-divider{width:1px;height:14px;background:rgba(255,255,255,.15)}
.hero-year{font-size:.68rem;letter-spacing:.15em;color:rgba(255,255,255,.3)}
.hero h1{font-family:'Fraunces',serif;font-size:clamp(4rem,10vw,10rem);line-height:.96;letter-spacing:-.03em;max-width:1100px;position:relative;z-index:2}
.hero h1 em{font-style:italic;color:var(--accent)}
.typing-wrapper{display:inline-block;min-width:4ch}
.hero-sub-row{display:flex;align-items:flex-end;justify-content:space-between;margin-top:4rem;position:relative;z-index:2;gap:3rem}
.hero-left-bottom{display:flex;flex-direction:column;gap:2rem}
.hero-sub{font-size:1rem;color:rgba(255,255,255,.5);font-weight:300;max-width:420px;line-height:1.8}
/* Avatar rating (Awake style) */
.hero-rating{display:flex;align-items:center;gap:1.2rem}
.avatar-stack{display:flex}
.avatar-stack .av{width:36px;height:36px;border-radius:50%;border:2px solid var(--black);overflow:hidden;margin-left:-10px;background:var(--off);display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-size:.85rem;color:#fff;flex-shrink:0}
.avatar-stack .av:first-child{margin-left:0}
.av-c0{background:linear-gradient(135deg,#c94b0a,#7a2e00)}
.av-c1{background:linear-gradient(135deg,#0a4bc9,#002f7a)}
.av-c2{background:linear-gradient(135deg,#0a9440,#005724)}
.av-c3{background:linear-gradient(135deg,#7a0ac9,#420077)}
.rating-info{display:flex;flex-direction:column;gap:.15rem}
.rating-stars{color:var(--accent);font-size:.8rem;letter-spacing:2px}
.rating-txt{font-size:.74rem;color:rgba(255,255,255,.4)}
.hero-actions{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}
.scroll-wheel{width:28px;height:44px;border:1.5px solid rgba(255,255,255,.2);border-radius:14px;display:flex;align-items:flex-start;justify-content:center;padding:5px}
.scroll-dot{width:4px;height:8px;background:var(--accent);border-radius:4px;animation:scrollDown 2s ease-in-out infinite}
@keyframes scrollDown{0%{transform:translateY(0);opacity:1}100%{transform:translateY(16px);opacity:0}}
/* Rotating badge */
.hero-badge{position:absolute;right:4rem;top:50%;margin-top:-70px;border:1px solid var(--border);border-radius:50%;width:140px;height:140px;display:flex;align-items:center;justify-content:center;animation:rotateBadge 20s linear infinite;z-index:2}
.hero-badge-inner{font-size:.6rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.4);text-align:center;line-height:2;animation:rotateBadge 20s linear infinite reverse}
@keyframes rotateBadge{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
.hero-badge-dot{position:absolute;width:6px;height:6px;background:var(--accent);border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%)}

/* ═══════════════════════════════════════════════════════════
   BRAND LOGOS STRIP (Awake)
═══════════════════════════════════════════════════════════ */
.logos-section{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:2.5rem 0;position:relative;z-index:2;background:rgba(255,255,255,.01)}
.logos-label{text-align:center;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.2);margin-bottom:2rem}
.logos-track-wrap{overflow:hidden;position:relative}
.logos-track-wrap::before,.logos-track-wrap::after{content:'';position:absolute;top:0;bottom:0;width:120px;z-index:2}
.logos-track-wrap::before{left:0;background:linear-gradient(to right,var(--black),transparent)}
.logos-track-wrap::after{right:0;background:linear-gradient(to left,var(--black),transparent)}
.logos-track{display:flex;gap:3rem;animation:logoScroll 28s linear infinite;white-space:nowrap}
.logos-track2{animation-direction:reverse;animation-duration:22s}
.brand-logo-item{display:flex;align-items:center;gap:.6rem;flex-shrink:0;opacity:.35;transition:opacity .3s}
.brand-logo-item:hover{opacity:.7}
.brand-logo-item svg{height:22px;fill:currentColor;color:var(--white)}
.brand-logo-item span{font-family:'Fraunces',serif;font-size:1.1rem;font-style:italic;letter-spacing:.04em;color:rgba(255,255,255,.6)}
@keyframes logoScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ═══════════════════════════════════════════════════════════
   MARQUEE (text)
═══════════════════════════════════════════════════════════ */
.marquee-section{overflow:hidden;position:relative;z-index:2;padding:.9rem 0;background:rgba(224,92,16,.05);border-bottom:1px solid var(--border)}
.marquee-track{display:flex;gap:3rem;white-space:nowrap;animation:marqueeRoll 30s linear infinite}
.marquee-item{font-family:'Fraunces',serif;font-size:1rem;font-style:italic;color:rgba(255,255,255,.38);display:flex;align-items:center;gap:3rem;flex-shrink:0}
.marquee-dot{width:5px;height:5px;background:var(--accent);border-radius:50%;display:inline-block}
@keyframes marqueeRoll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ═══════════════════════════════════════════════════════════
   NUMBERS
═══════════════════════════════════════════════════════════ */
.numbers{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--border);border-radius:0}
.number-item{padding:4rem 3rem;border-right:1px solid var(--border);position:relative;overflow:hidden}
.number-item:last-child{border-right:none}
.number-item::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .6s ease}
.number-item:hover::before{transform:scaleX(1)}
.number-item .val{font-family:'Fraunces',serif;font-size:clamp(2.5rem,5vw,4.5rem);line-height:1;letter-spacing:-.03em;color:var(--white)}
.val-accent{color:var(--accent)}
.number-item p{margin-top:.8rem;font-size:.8rem;color:rgba(255,255,255,.38);line-height:1.6}

/* ═══════════════════════════════════════════════════════════
   ABOUT / CRAFTING (Awake badges + LaunchLab content)
═══════════════════════════════════════════════════════════ */
.about-section{padding:12rem 0;position:relative;overflow:hidden}
.about-bg-num{position:absolute;right:-2rem;top:50%;transform:translateY(-50%);font-family:'Fraunces',serif;font-size:28rem;font-style:italic;color:rgba(255,255,255,.025);line-height:1;pointer-events:none;white-space:nowrap}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:8rem;align-items:center}
.about-left h2{font-family:'Fraunces',serif;font-size:clamp(2.5rem,5vw,4.5rem);line-height:1.05;letter-spacing:-.025em;margin-bottom:2.5rem}
.about-left h2 em{font-style:italic;color:var(--accent)}
.about-left p{font-size:.95rem;color:rgba(255,255,255,.5);line-height:1.9;margin-bottom:1.2rem}
/* Awake-style badges */
.badges-row{display:flex;gap:.8rem;flex-wrap:wrap;margin:2rem 0}
.badge-pill{display:inline-flex;align-items:center;gap:.5rem;padding:.55rem 1.1rem;border:1px solid var(--border);border-radius:40px;font-size:.78rem;font-weight:500;color:rgba(255,255,255,.6);transition:all .25s;backdrop-filter:blur(8px)}
.badge-pill svg{width:16px;height:16px;color:var(--accent);flex-shrink:0}
.badge-pill:hover{border-color:rgba(224,92,16,.4);color:var(--white);background:rgba(224,92,16,.06)}
/* About stats grid */
.about-right{display:flex;flex-direction:column;gap:1.2rem}
.about-stat-card{padding:2rem 1.8rem;border:1px solid var(--border);border-radius:16px;transition:border-color .3s,background .3s;position:relative;overflow:hidden}
.about-stat-card:hover{border-color:rgba(224,92,16,.4);background:rgba(224,92,16,.05)}
.about-stat-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .4s}
.about-stat-card:hover::before{transform:scaleX(1)}
.about-stat-num{font-family:'Fraunces',serif;font-size:2.8rem;letter-spacing:-.03em;margin-bottom:.4rem;color:var(--white)}
.about-stat-num span{color:var(--accent)}
.about-stat-label{font-size:.78rem;color:rgba(255,255,255,.4)}
.about-stats-row{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
/* Countup block */
.count-block{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:16px;overflow:hidden;margin-top:1.2rem}
.count-item{background:rgba(255,255,255,.03);padding:1.8rem 1.5rem;text-align:center;transition:background .25s}
.count-item:hover{background:rgba(224,92,16,.06)}
.count-num{font-family:'Fraunces',serif;font-size:2.5rem;color:var(--white);line-height:1;display:flex;justify-content:center;align-items:baseline;gap:.1rem}
.count-num .plus{color:var(--accent);font-size:1.5rem}
.count-label{font-size:.72rem;color:rgba(255,255,255,.35);margin-top:.5rem;line-height:1.5}

/* ═══════════════════════════════════════════════════════════
   SERVICES
═══════════════════════════════════════════════════════════ */
.services-section{padding:10rem 0;position:relative}
.services-grid{display:grid;grid-template-columns:1fr;border:1px solid var(--border);border-radius:16px;overflow:hidden;max-width:900px;margin-left:auto;margin-right:auto}
.svc-card{padding:4rem 3rem;border-right:none;border-bottom:none;position:relative;overflow:hidden;cursor:pointer;transition:background .35s;border-radius:0;min-height:500px;display:flex;flex-direction:column;justify-content:center;align-items:center}
.svc-card-main{padding:5rem 4rem 4rem;width:100%}
.svc-card:hover{background:rgba(224,92,16,.04)}
.svc-card:nth-child(3n){border-right:none}
.svc-card:nth-last-child(-n+3){border-bottom:none}
.svc-card-hover-fill{position:absolute;inset:0;background:radial-gradient(ellipse 80% 50% at 50% 30%,rgba(224,92,16,.1),transparent 70%);opacity:0;transition:opacity .4s}
.svc-card:hover .svc-card-hover-fill{opacity:1}
.svc-num{font-family:'Fraunces',serif;font-size:.75rem;font-style:italic;color:rgba(255,255,255,.18);margin-bottom:2rem;display:block}
.svc-icon{width:32px;height:32px;margin-bottom:1.4rem;color:var(--accent);transition:transform .4s}
.svc-card:hover .svc-icon{transform:scale(1.15) rotate(5deg)}
.svc-card h3{font-family:'Fraunces',serif;font-size:1.4rem;letter-spacing:-.02em;margin-bottom:.9rem;color:var(--white)}
.svc-card p{font-size:.84rem;color:rgba(255,255,255,.43);line-height:1.78}
.svc-arrow{position:absolute;bottom:2rem;right:2rem;width:24px;height:24px;opacity:0;transition:opacity .3s,transform .3s;color:var(--accent)}
.svc-card:hover .svc-arrow{opacity:1;transform:translate(3px,-3px)}
.svc-card-main .svc-arrow{position:relative;bottom:auto;right:auto;opacity:1;transform:none}
.svc-bottom-line{position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:center;transition:transform .5s cubic-bezier(.16,1,.3,1)}
.svc-card:hover .svc-bottom-line{transform:scaleX(1)}
.svc-explore{display:inline-flex;align-items:center;gap:.4rem;font-size:.9rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-top:1.4rem;background:none;border:none;padding:0;cursor:pointer;position:relative;white-space:nowrap}
.svc-explore::after{content:'';position:absolute;bottom:-2px;left:0;width:100%;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .25s}
.svc-card:hover .svc-explore::after{transform:scaleX(1)}

/* ═══════════════════════════════════════════════════════════
   SERVICE DETAIL OVERLAY
═══════════════════════════════════════════════════════════ */
.sp-overlay{position:fixed;inset:0;z-index:700;background:var(--black);overflow-y:auto;overflow-x:hidden;opacity:0;pointer-events:none;transition:opacity .45s ease;touch-action:pan-y;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scroll-behavior:smooth}
.sp-overlay.open{opacity:1;pointer-events:auto;outline:none;overscroll-behavior:none}
.sp-overlay::-webkit-scrollbar{width:6px}
.sp-overlay::-webkit-scrollbar-track{background:transparent}
.sp-overlay::-webkit-scrollbar-thumb{background:rgba(255,255,255,.15);border-radius:3px}
.sp-overlay::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.3)}
.sp-nav{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:1.2rem 4rem;background:rgba(10,10,10,.9);backdrop-filter:blur(20px);border-bottom:1px solid var(--border)}
.sp-back-btn{display:flex;align-items:center;gap:.6rem;font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.5);background:none;border:none;cursor:none;transition:color .2s}
.sp-back-btn:hover{color:var(--white)}
.sp-hero{min-height:65vh;display:flex;flex-direction:column;justify-content:flex-end;padding:8rem 4rem 5rem;position:relative;overflow:hidden}
.sp-hero-bg-dark{position:absolute;inset:0;background:var(--off)}
.sp-hero-gradient{position:absolute;inset:0}
.sp-hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:64px 64px}
.sp-hero-tag{font-size:.66rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:1.5rem;display:block;position:relative;z-index:1}
.sp-hero h1{font-family:'Fraunces',serif;font-size:clamp(3rem,7vw,6.5rem);line-height:1.02;letter-spacing:-.03em;color:#fff;position:relative;z-index:1}
.sp-hero h1 em{font-style:italic;color:var(--accent)}
.sp-hero-sub{margin-top:1.8rem;font-size:1rem;color:rgba(255,255,255,.5);max-width:540px;line-height:1.85;position:relative;z-index:1}
.sp-hero-ctas{margin-top:3rem;display:flex;gap:1rem;flex-wrap:wrap;position:relative;z-index:1}
.sp-body{padding:8rem 0}
.sp-content-grid{display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:start}
.sp-left h2{font-family:'Fraunces',serif;font-size:2.4rem;line-height:1.12;letter-spacing:-.025em;margin-bottom:1.8rem;color:var(--white)}
.sp-left p{font-size:.92rem;color:rgba(255,255,255,.5);line-height:1.9;margin-bottom:1.2rem}
.sp-features-list{margin-top:2.5rem;display:flex;flex-direction:column;gap:.8rem}
.sp-feat{display:flex;align-items:flex-start;gap:1rem;padding:1.2rem 1.5rem;border:1px solid var(--border);border-radius:12px;transition:border-color .25s,background .25s}
.sp-feat:hover{border-color:rgba(224,92,16,.4);background:rgba(224,92,16,.05)}
.sp-feat-ico{width:34px;height:34px;border-radius:50%;background:rgba(224,92,16,.12);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--accent)}
.sp-feat-ico svg{width:16px;height:16px}
.sp-feat-text h4{font-size:.88rem;font-weight:600;margin-bottom:.25rem;color:var(--white)}
.sp-feat-text p{font-size:.8rem;color:rgba(255,255,255,.4);line-height:1.6}
.sp-right-card{background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:16px;padding:2.8rem;position:sticky;top:8rem;backdrop-filter:blur(10px)}
.sp-price-label{font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:.8rem}
.sp-price-big{font-family:'Fraunces',serif;font-size:3.5rem;letter-spacing:-.04em;color:var(--white);line-height:1;margin-bottom:.3rem}
.sp-price-period{font-size:.8rem;color:rgba(255,255,255,.35);margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid var(--border)}
.sp-checklist{list-style:none;margin-bottom:2.5rem}
.sp-checklist li{display:flex;align-items:flex-start;gap:.7rem;font-size:.84rem;color:rgba(255,255,255,.5);padding:.55rem 0;border-bottom:1px solid var(--border)}
.sp-checklist li:last-child{border-bottom:none}
.sp-checklist li svg{flex-shrink:0;color:var(--accent);margin-top:2px}
.sp-steps-section{padding:8rem 0;border-top:1px solid var(--border)}
.sp-steps-title{font-family:'Fraunces',serif;font-size:2rem;text-align:center;margin-bottom:5rem;color:var(--white)}
.sp-steps-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;position:relative}
.sp-steps-grid::before{content:'';position:absolute;top:1.6rem;left:calc(12.5% + 2rem);right:calc(12.5% + 2rem);height:1px;background:linear-gradient(to right,var(--accent),rgba(255,255,255,.1))}
.sp-step{text-align:center;position:relative;z-index:1}
.sp-step-n{width:3.2rem;height:3.2rem;border-radius:50%;background:var(--accent);color:#fff;font-family:'Fraunces',serif;font-size:1.2rem;display:flex;align-items:center;justify-content:center;margin:0 auto 1.3rem}
.sp-step h4{font-size:.88rem;font-weight:600;margin-bottom:.4rem;color:var(--white)}
.sp-step p{font-size:.78rem;color:rgba(255,255,255,.4);line-height:1.65}
.sp-faq-section{padding:6rem 0;border-top:1px solid var(--border)}
.sp-faq-title{font-family:'Fraunces',serif;font-size:2rem;margin-bottom:3rem;color:var(--white)}
.sp-faq-item{border-bottom:1px solid var(--border)}
.sp-faq-q{display:flex;justify-content:space-between;align-items:center;padding:1.3rem 0;cursor:none;font-size:.9rem;font-weight:500;color:rgba(255,255,255,.7);gap:1rem;transition:color .2s}
.sp-faq-q:hover{color:var(--white)}
.sp-faq-a{font-size:.86rem;color:rgba(255,255,255,.4);line-height:1.8;padding:0 0 1.3rem;display:none}
.sp-faq-a.open{display:block;animation:fadeIn .3s ease}
.sp-faq-icon{flex-shrink:0;width:18px;height:18px;color:var(--accent);transition:transform .3s}
.sp-faq-icon.open{transform:rotate(45deg)}

/* ═══════════════════════════════════════════════════════════
   WORK / PROJECTS
═══════════════════════════════════════════════════════════ */
.work-section{padding:10rem 0;border-top:1px solid var(--border)}
#projects-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1.5rem;margin-top:4rem}
.proj-card{border-radius:14px;overflow:hidden;position:relative;cursor:none;background:var(--off);transition:transform .5s cubic-bezier(.16,1,.3,1),box-shadow .5s ease}
.proj-card:hover{transform:translateY(-8px);box-shadow:0 40px 80px rgba(0,0,0,.6)}
.proj-card:nth-child(odd){grid-column:span 7}
.proj-card:nth-child(even){grid-column:span 5}
.proj-mock{width:100%;aspect-ratio:16/10;position:relative;overflow:hidden}
.proj-card:nth-child(odd) .proj-mock{aspect-ratio:16/9}
.proj-mock-inner{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transition:transform .7s cubic-bezier(.16,1,.3,1)}
.proj-card:hover .proj-mock-inner{transform:scale(1.07)}
.mock-0{background:linear-gradient(135deg,#1a0a00,#3d1500)}
.mock-1{background:linear-gradient(135deg,#1a1a1a,#2a2a2a)}
.mock-2{background:linear-gradient(135deg,#0a0a14,#14142a)}
.mock-3{background:linear-gradient(135deg,#0d1b2a,#1a3045)}
.mock-4{background:linear-gradient(135deg,#0a1628,#1a3a5c)}
.mock-5{background:linear-gradient(135deg,#1a0a28,#2d1a44)}
.mock-chrome{position:absolute;top:0;left:0;right:0;height:26px;background:rgba(255,255,255,.06);display:flex;align-items:center;padding:0 .8rem;gap:.35rem}
.mock-dot{width:6px;height:6px;border-radius:50%}
.mock-dot-r{background:rgba(255,80,80,.5)}
.mock-dot-y{background:rgba(255,190,0,.5)}
.mock-dot-g{background:rgba(50,200,80,.5)}
.mock-label{font-family:'Fraunces',serif;font-size:clamp(.6rem,1.3vw,1.1rem);letter-spacing:.1em;color:rgba(255,255,255,.5);padding:1rem;text-align:center;position:relative;z-index:1}
.mock-bar{position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--accent)}
.proj-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(10,10,10,.95) 0%,rgba(10,10,10,.2) 55%,transparent 100%);display:flex;flex-direction:column;justify-content:flex-end;padding:1.8rem;opacity:0;transition:opacity .4s}
.proj-card:hover .proj-overlay{opacity:1}
.proj-overlay h4{font-family:'Fraunces',serif;font-size:1.15rem;color:#fff}
.proj-overlay p{font-size:.75rem;color:rgba(255,255,255,.5);margin-top:.3rem}
.proj-open-btn{margin-top:1rem;display:inline-flex;align-items:center;gap:.4rem;font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);background:none;border:1px solid rgba(224,92,16,.35);padding:.35rem .85rem;border-radius:8px;cursor:none;transition:all .2s}
.proj-open-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
.proj-tag{position:absolute;top:1rem;left:1rem;background:var(--accent);color:#fff;font-size:.6rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:.25rem .65rem;border-radius:20px;z-index:1}
.proj-year{position:absolute;top:1rem;right:1rem;font-size:.62rem;color:rgba(255,255,255,.35);letter-spacing:.05em}

/* ═══════════════════════════════════════════════════════════
   PROJECT MODAL
═══════════════════════════════════════════════════════════ */
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:800;display:none;align-items:center;justify-content:center;padding:2rem;backdrop-filter:blur(8px);touch-action:auto;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.modal-backdrop.open{display:flex;animation:fadeIn .25s ease}
.modal-box{background:#111;border:1px solid var(--border);width:100%;max-width:900px;max-height:90vh;overflow-y:auto;border-radius:20px;position:relative;animation:scaleIn .3s ease;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.modal-box::-webkit-scrollbar{width:3px}
.modal-box::-webkit-scrollbar-thumb{background:rgba(255,255,255,.1)}
.modal-close-btn{position:sticky;top:1rem;float:right;margin:1rem 1rem 0 0;width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14);cursor:none;display:flex;align-items:center;justify-content:center;font-size:1rem;color:rgba(255,255,255,.72);transition:all .2s;z-index:3;backdrop-filter:blur(12px)}
.modal-close-btn:hover{background:rgba(255,255,255,.15);color:#fff}
.modal-close-btn svg{display:block;flex-shrink:0}
.modal-close-btn:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(224,92,16,.28)}
.modal-hero{width:100%;aspect-ratio:16/8;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;clear:both}
.modal-body{padding:3rem 3.5rem 4rem}
.modal-meta{display:flex;gap:1rem;margin-bottom:2rem;align-items:center;flex-wrap:wrap}
.modal-chip{font-size:.66rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);border:1px solid rgba(224,92,16,.3);padding:.2rem .75rem;border-radius:20px}
.modal-year-txt{font-size:.78rem;color:rgba(255,255,255,.3)}
.modal-box h2{font-family:'Fraunces',serif;font-size:2.6rem;letter-spacing:-.02em;margin-bottom:1rem;color:var(--white)}
.modal-desc{font-size:.93rem;color:rgba(255,255,255,.5);line-height:1.88;margin-bottom:2.5rem}
.modal-info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-bottom:2rem;border-top:1px solid var(--border);padding-top:2rem}
.modal-info-item label{font-size:.65rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.25);display:block;margin-bottom:.4rem}
.modal-info-item span{font-size:.88rem;color:var(--white);font-weight:500}
.modal-tech-row{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:2rem;border-top:1px solid var(--border);padding-top:2rem}
.tech-chip{font-size:.72rem;background:rgba(255,255,255,.06);color:rgba(255,255,255,.5);padding:.28rem .85rem;border-radius:20px;border:1px solid var(--border)}
.modal-cta-row{display:flex;gap:1rem;border-top:1px solid var(--border);padding-top:2rem;flex-wrap:wrap}

/* ═══════════════════════════════════════════════════════════
   TEAM (Awake)
═══════════════════════════════════════════════════════════ */
.team-section{padding:10rem 0;border-top:1px solid var(--border)}
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-top:5rem}
.team-card{position:relative;overflow:hidden;border-radius:14px;cursor:none;border:1px solid var(--border);background:rgba(255,255,255,.03)}
.team-card:hover{border-color:rgba(224,92,16,.35)}
.team-img{width:100%;aspect-ratio:3/4;position:relative;overflow:hidden}
.team-img-inner{position:absolute;inset:0;transition:transform .6s cubic-bezier(.16,1,.3,1)}
.team-card:hover .team-img-inner{transform:scale(1.06)}
.team-avatar{width:100%;height:100%;display:flex;align-items:flex-end;justify-content:flex-start;padding:1.5rem;position:relative}
.team-avatar-bg{position:absolute;inset:0}
.team-avatar-initials{position:absolute;top:50%;left:50%;transform:translate(-50%,-60%);font-family:'Fraunces',serif;font-size:4rem;font-style:italic;color:rgba(255,255,255,.15)}
.team-info{padding:1.4rem 1.5rem;position:relative}
.team-name{font-family:'Fraunces',serif;font-size:1.15rem;color:var(--white);margin-bottom:.2rem}
.team-role{font-size:.74rem;color:rgba(255,255,255,.38);letter-spacing:.06em;text-transform:uppercase;margin-bottom:1rem}
.team-socials{display:flex;gap:.6rem}
.team-social{width:28px;height:28px;border-radius:50%;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.3);transition:all .2s}
.team-social:hover{border-color:var(--accent);color:var(--accent)}
.team-social svg{width:12px;height:12px}

/* ═══════════════════════════════════════════════════════════
   TESTIMONIALS BENTO (Awake-style)
═══════════════════════════════════════════════════════════ */
.testimonials-section{padding:10rem 0;border-top:1px solid var(--border)}
.test-bento{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:auto auto;gap:1.5rem;margin-top:5rem}
.test-card-main{background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:16px;padding:3.5rem;grid-row:span 2;display:flex;flex-direction:column;justify-content:space-between;transition:border-color .3s}
.test-card-main:hover{border-color:rgba(224,92,16,.3)}
.test-label{font-size:.66rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.35);margin-bottom:2rem;display:flex;align-items:center;gap:.7rem}
.test-label::before{content:'';display:block;width:20px;height:1px;background:rgba(255,255,255,.2)}
.test-quote{font-family:'Fraunces',serif;font-size:1.5rem;font-style:italic;color:rgba(255,255,255,.85);line-height:1.55;margin-bottom:2.5rem}
.test-quote .accent{color:var(--accent)}
.test-author-row{display:flex;align-items:center;gap:1rem}
.test-author-av{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-size:1.1rem;color:#fff;flex-shrink:0}
.test-author-name{font-size:.9rem;font-weight:600;color:var(--white)}
.test-author-role{font-size:.74rem;color:rgba(255,255,255,.35)}
.test-card-stat{background:rgba(224,92,16,.08);border:1px solid rgba(224,92,16,.2);border-radius:16px;padding:2.5rem;display:flex;flex-direction:column;justify-content:center;transition:all .3s}
.test-card-stat:hover{background:rgba(224,92,16,.12);border-color:rgba(224,92,16,.35)}
.test-stat-num{font-family:'Fraunces',serif;font-size:4rem;letter-spacing:-.04em;color:var(--white);line-height:1}
.test-stat-num em{font-style:italic;color:var(--accent)}
.test-stat-label{font-size:.82rem;color:rgba(255,255,255,.5);margin-top:.6rem;line-height:1.6}
.test-card-mini{background:rgba(255,255,255,.03);border:1px solid var(--border);border-radius:16px;padding:2rem 2.5rem;transition:all .3s}
.test-card-mini:hover{border-color:rgba(224,92,16,.25);background:rgba(224,92,16,.04)}
.test-mini-text{font-family:'Fraunces',serif;font-size:1rem;font-style:italic;color:rgba(255,255,255,.7);line-height:1.65;margin-bottom:1.5rem}
.test-mini-author{font-size:.78rem;color:rgba(255,255,255,.35)}
.test-stars{color:var(--accent);font-size:.8rem;letter-spacing:3px;margin-bottom:1rem}

/* ═══════════════════════════════════════════════════════════
   REVIEWS (dynamic)
═══════════════════════════════════════════════════════════ */
.reviews-section{padding:10rem 0;border-top:1px solid var(--border)}
#reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:5rem}
.review-card{padding:2.8rem;border:1px solid var(--border);border-radius:16px;background:rgba(255,255,255,.03);transition:border-color .3s,transform .3s,background .3s;backdrop-filter:blur(8px)}
.review-card:hover{border-color:rgba(224,92,16,.3);transform:translateY(-4px);background:rgba(224,92,16,.04)}
.review-stars{color:var(--accent);font-size:.95rem;letter-spacing:3px;margin-bottom:1.5rem}
.review-text{font-family:'Fraunces',serif;font-size:1.08rem;font-style:italic;color:rgba(255,255,255,.7);line-height:1.65;margin-bottom:2rem}
.review-author{display:flex;align-items:center;gap:.9rem}
.review-avatar{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-size:.95rem;color:#fff;flex-shrink:0}
.review-name{font-size:.88rem;font-weight:600;color:var(--white)}
.review-role{font-size:.76rem;color:rgba(255,255,255,.35)}
.review-date{font-size:.68rem;color:rgba(255,255,255,.2);margin-top:1.2rem;padding-top:1.2rem;border-top:1px solid var(--border)}
.reviews-cta{display:flex;justify-content:center;margin-top:2rem}
.leave-review-wrap{background:rgba(255,255,255,.03);border:1px solid var(--border);border-radius:16px;padding:3.5rem;margin-top:4rem;backdrop-filter:blur(10px)}
.leave-review-wrap h3{font-family:'Fraunces',serif;font-size:2rem;color:var(--white);margin-bottom:.6rem}
.leave-review-wrap>p{font-size:.86rem;color:rgba(255,255,255,.4);margin-bottom:2.5rem}
.star-picker{display:flex;gap:.4rem;margin-bottom:2rem}
.star-picker button{font-size:1.8rem;background:none;border:none;cursor:none;color:rgba(255,255,255,.15);transition:color .15s,transform .15s;line-height:1}
.star-picker button:hover,.star-picker button.active{color:var(--accent)}
.star-picker button:hover{transform:scale(1.15)}
.review-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.rv-field{display:flex;flex-direction:column;gap:.4rem}
.rv-field label{font-size:.68rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:rgba(255,255,255,.35)}
.rv-field input,.rv-field textarea{padding:.88rem 1rem;border:1px solid var(--border);background:rgba(255,255,255,.04);font-family:'Outfit',sans-serif;font-size:.88rem;color:var(--white);outline:none;border-radius:10px;transition:border-color .2s}
.rv-field input:focus,.rv-field textarea:focus{border-color:rgba(224,92,16,.5);background:rgba(224,92,16,.04)}
.rv-field.full{grid-column:span 2}
.rv-field textarea{resize:vertical;min-height:90px}
.rv-submit-row{grid-column:span 2;display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}
.rv-note{font-size:.73rem;color:rgba(255,255,255,.25)}

/* ═══════════════════════════════════════════════════════════
   PRICING
═══════════════════════════════════════════════════════════ */
.pricing-section{padding:10rem 0;border-top:1px solid var(--border)}
.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:5rem}
.price-card{border:1px solid var(--border);border-radius:16px;padding:2.8rem;position:relative;background:rgba(255,255,255,.03);transition:border-color .3s,background .3s,transform .3s;backdrop-filter:blur(10px)}
.price-card:hover{border-color:rgba(224,92,16,.35);transform:translateY(-6px);background:rgba(224,92,16,.04)}
.price-card.featured{background:rgba(224,92,16,.08);border-color:rgba(224,92,16,.3)}
.price-card.featured:hover{background:rgba(224,92,16,.12)}
.badge-best{position:absolute;top:-1px;left:50%;transform:translateX(-50%);background:var(--accent);color:#fff;font-size:.62rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:.28rem 1.1rem;border-radius:0 0 20px 20px;white-space:nowrap}
.price-name{font-size:.7rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:1rem}
.price-val{font-family:'Fraunces',serif;font-size:3.8rem;letter-spacing:-.04em;line-height:1;color:var(--white);margin-bottom:.3rem}
.price-period{font-size:.78rem;color:rgba(255,255,255,.35);margin-bottom:1.8rem}
.price-desc{font-size:.84rem;color:rgba(255,255,255,.4);line-height:1.65;margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid var(--border)}
.price-list{list-style:none;margin-bottom:2.5rem}
.price-feature{display:flex;align-items:flex-start;gap:.7rem;font-size:.83rem;color:rgba(255,255,255,.5);padding:.6rem 0;border-bottom:1px solid var(--border)}
.price-feature:last-child{border-bottom:none}
.price-feature svg{flex-shrink:0;color:var(--accent);margin-top:2px}
.btn-price{display:block;text-align:center;font-size:.84rem;font-weight:600;padding:1rem;border-radius:12px;transition:all .25s;cursor:none;letter-spacing:.04em;width:100%}
.btn-price-outline{border:1.5px solid rgba(255,255,255,.2);color:rgba(255,255,255,.7);background:none}
.btn-price-outline:hover{border-color:#fff;color:#fff;background:rgba(255,255,255,.05)}
.btn-price-accent{background:var(--accent);color:#fff;border:1.5px solid var(--accent)}
.btn-price-accent:hover{background:var(--accent2);border-color:var(--accent2)}

/* ═══════════════════════════════════════════════════════════
   AWARDS (Awake)
═══════════════════════════════════════════════════════════ */
.awards-section{padding:8rem 0;border-top:1px solid var(--border)}
.awards-list{margin-top:4rem;display:flex;flex-direction:column;gap:0}
.award-row{display:flex;align-items:center;justify-content:space-between;padding:2rem 0;border-bottom:1px solid var(--border);gap:2rem;transition:background .25s;position:relative}
.award-row:last-child{border-bottom:none}
.award-row::before{content:'';position:absolute;left:-2rem;right:-2rem;top:0;bottom:0;background:rgba(224,92,16,.04);opacity:0;transition:opacity .3s;border-radius:12px}
.award-row:hover::before{opacity:1}
.award-left{display:flex;align-items:center;gap:1.8rem;position:relative;z-index:1}
.award-icon{width:44px;height:44px;border:1px solid var(--border);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--accent);flex-shrink:0;transition:all .25s}
.award-row:hover .award-icon{border-color:var(--accent);background:rgba(224,92,16,.1)}
.award-name{font-family:'Fraunces',serif;font-size:1.3rem;color:var(--white)}
.award-desc{font-size:.8rem;color:rgba(255,255,255,.38);margin-top:.2rem;max-width:500px;line-height:1.6}
.award-year{font-family:'Fraunces',serif;font-size:1.8rem;font-style:italic;color:rgba(255,255,255,.15);position:relative;z-index:1}
.award-arrow{color:rgba(255,255,255,.2);position:relative;z-index:1;transition:all .3s}
.award-row:hover .award-arrow{color:var(--accent);transform:translate(4px,-4px)}

/* ═══════════════════════════════════════════════════════════
   FAQ
═══════════════════════════════════════════════════════════ */
.faq-section{padding:8rem 0;border-top:1px solid var(--border)}
.faq-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:6rem;align-items:start;margin-top:5rem}
.faq-left h2{font-family:'Fraunces',serif;font-size:clamp(2rem,4vw,3.2rem);line-height:1.1;letter-spacing:-.025em;margin-bottom:1.5rem}
.faq-left p{font-size:.88rem;color:rgba(255,255,255,.4);line-height:1.85}
.faq-right{display:flex;flex-direction:column}
.faq-item{border-bottom:1px solid var(--border)}
.faq-q{display:flex;justify-content:space-between;align-items:center;padding:1.4rem 0;cursor:none;font-size:.92rem;font-weight:500;color:rgba(255,255,255,.7);gap:1rem;transition:color .2s}
.faq-q:hover{color:var(--white)}
.faq-a{font-size:.86rem;color:rgba(255,255,255,.4);line-height:1.8;padding:0 2rem 1.4rem 0;display:none}
.faq-a.open{display:block;animation:fadeIn .3s ease}
.faq-icon{flex-shrink:0;width:20px;height:20px;border:1px solid var(--border);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--accent);transition:all .3s}
.faq-icon.open{transform:rotate(45deg);background:rgba(224,92,16,.1);border-color:rgba(224,92,16,.4)}

/* ═══════════════════════════════════════════════════════════
   QUOTE SELECTION
═══════════════════════════════════════════════════════════ */
.quote-section{padding:10rem 0;border-top:1px solid var(--border)}
.quote-selection-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-top:3rem}
.quote-card{padding:2rem;border:1px solid var(--border);border-radius:12px;cursor:pointer;transition:all .3s;position:relative;overflow:hidden;background:rgba(224,92,16,0);display:flex;flex-direction:column}
.quote-card::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 80% 50% at 50% 0%,rgba(224,92,16,.12),transparent 70%);opacity:0;transition:opacity .3s;pointer-events:none}
.quote-card:hover{background:rgba(224,92,16,.04);border-color:rgba(224,92,16,.3)}
.quote-card:hover::before{opacity:1}
.quote-card.selected{border-color:var(--accent);background:rgba(224,92,16,.08)}
.quote-card-checkbox{position:absolute;top:1rem;right:1rem;width:20px;height:20px;border:2px solid var(--border);border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .3s;pointer-events:none}
.quote-card.selected .quote-card-checkbox{background:var(--accent);border-color:var(--accent);color:var(--black)}
.quote-card-content{position:relative;z-index:2}
.quote-card-title{font-family:'Fraunces',serif;font-size:1.3rem;margin-bottom:.5rem;color:var(--white);letter-spacing:-.01em}
.quote-card-desc{font-size:.85rem;color:rgba(255,255,255,.5);margin-bottom:1rem;line-height:1.6;flex-grow:1}
.quote-card-price{font-size:1.5rem;font-weight:600;color:var(--accent);margin-bottom:.3rem}
.quote-card-period{font-size:.78rem;color:rgba(255,255,255,.4)}
.quote-selected-summary{transition:all .3s}
.quote-selected-summary h3{font-family:'Fraunces',serif;font-size:1.3rem;color:var(--white)}

/* ═══════════════════════════════════════════════════════════
   CONTACT
═══════════════════════════════════════════════════════════ */
.contact-section{padding:10rem 0;border-top:1px solid var(--border)}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:8rem;align-items:start}
.contact-left h2{font-family:'Fraunces',serif;font-size:clamp(2.5rem,5vw,4rem);line-height:1.08;letter-spacing:-.025em;margin:1.5rem 0 2rem;color:var(--white)}
.contact-left p{font-size:.93rem;color:rgba(255,255,255,.45);line-height:1.88;margin-bottom:3rem}
.contact-items{display:flex;flex-direction:column;gap:1.4rem}
.contact-item{display:flex;align-items:center;gap:1.2rem}
.contact-ico{width:40px;height:40px;border-radius:50%;background:rgba(224,92,16,.1);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--accent)}
.contact-item span{font-size:.88rem;color:rgba(255,255,255,.5)}
.contact-form-wrap{background:rgba(255,255,255,.03);border:1px solid var(--border);border-radius:20px;padding:3rem;backdrop-filter:blur(10px)}
.contact-form-wrap h3{font-family:'Fraunces',serif;font-size:1.8rem;color:var(--white);margin-bottom:2rem;letter-spacing:-.02em}
.cf-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.cf-group{display:flex;flex-direction:column;gap:.4rem}
.cf-group label{font-size:.68rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:rgba(255,255,255,.35)}
.cf-group input,.cf-group select,.cf-group textarea{padding:.9rem 1.1rem;border:1px solid var(--border);background:rgba(255,255,255,.04);font-family:'Outfit',sans-serif;font-size:.88rem;color:var(--white);outline:none;border-radius:10px;transition:border-color .2s;-webkit-appearance:none}
.cf-group input:focus,.cf-group select:focus,.cf-group textarea:focus{border-color:rgba(224,92,16,.5);background:rgba(224,92,16,.04)}
.cf-group textarea{resize:vertical;min-height:100px}
.cf-group.full{grid-column:span 2}
.cf-group select option{background:#111;color:#fff}
.cf-submit{padding:1.1rem 2.5rem;background:var(--accent);color:#fff;border:none;font-family:'Outfit',sans-serif;font-size:.88rem;font-weight:600;border-radius:12px;transition:all .25s;letter-spacing:.04em}
.cf-submit:hover{background:var(--accent2);transform:translateY(-2px);box-shadow:0 8px 24px rgba(224,92,16,.3)}
.cf-note{font-size:.73rem;color:rgba(255,255,255,.25)}

/* ═══════════════════════════════════════════════════════════
   CTA FINAL
═══════════════════════════════════════════════════════════ */
.cta-section{padding:12rem 4rem;text-align:center;position:relative;overflow:hidden;border-top:1px solid var(--border)}
.cta-bg{position:absolute;inset:0;background:radial-gradient(ellipse 80% 70% at 50% 50%,rgba(224,92,16,.13),transparent 70%)}
.cta-section h2{font-family:'Fraunces',serif;font-size:clamp(3rem,7vw,7rem);line-height:1.02;letter-spacing:-.04em;margin:1.5rem auto 1.5rem;max-width:800px;position:relative;z-index:1;color:var(--white)}
.cta-section h2 em{font-style:italic;color:var(--accent)}
.cta-section>p{font-size:1rem;color:rgba(255,255,255,.4);max-width:420px;margin:0 auto 4rem;line-height:1.8;position:relative;z-index:1}
.cta-btns{display:flex;gap:1.2rem;justify-content:center;flex-wrap:wrap;position:relative;z-index:1}
/* Infinite text loop */
.cta-marquee{overflow:hidden;margin:3rem -4rem 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:.8rem 0;position:relative;z-index:1}
.cta-mq-track{display:flex;gap:2rem;animation:marqueeRoll 20s linear infinite;white-space:nowrap}
.cta-mq-item{font-family:'Fraunces',serif;font-size:1.2rem;font-style:italic;color:rgba(255,255,255,.15);flex-shrink:0;display:flex;align-items:center;gap:2rem}

/* ═══════════════════════════════════════════════════════════
   FOOTER
═══════════════════════════════════════════════════════════ */
footer{border-top:1px solid var(--border)}
.footer-top{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3rem;padding:5rem 4rem 4rem}
.footer-brand .logo{font-size:1.5rem;display:block;margin-bottom:1.3rem}
.footer-brand p{font-size:.8rem;color:rgba(255,255,255,.35);line-height:1.75;max-width:240px}
.footer-col h5{font-size:.66rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-bottom:1.5rem}
.footer-col a,.footer-col span{display:block;font-size:.82rem;color:rgba(255,255,255,.35);margin-bottom:.7rem;transition:color .2s}
.footer-col a:hover{color:var(--accent)}
.footer-socials{display:flex;gap:.8rem;margin-top:1.5rem}
.footer-social{width:36px;height:36px;border:1px solid var(--border);border-radius:50%;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.35);transition:all .2s}
.footer-social:hover{border-color:var(--accent);color:var(--accent)}
.footer-social svg{width:14px;height:14px}
.footer-bottom{padding:1.8rem 4rem;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.6rem}
.footer-bottom p{font-size:.74rem;color:rgba(255,255,255,.2)}
.admin-hint{font-size:.66rem;color:rgba(255,255,255,.08);cursor:none;transition:color .3s;user-select:none}
.admin-hint:hover{color:var(--accent)}

/* ═══════════════════════════════════════════════════════════
   SHARED COMPONENTS
═══════════════════════════════════════════════════════════ */
.section-tag{font-size:.68rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:1rem;display:flex;align-items:center;gap:.9rem}
.section-tag::before{content:'';display:block;width:28px;height:1px;background:var(--accent)}
.section-title{font-family:'Fraunces',serif;font-size:clamp(2.2rem,4.5vw,3.8rem);line-height:1.07;letter-spacing:-.025em;color:var(--white)}
.section-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:5rem;padding-bottom:2rem;border-bottom:1px solid var(--border);gap:2rem}
.section-note{font-size:.82rem;color:rgba(255,255,255,.35);max-width:220px;text-align:right;line-height:1.7}
.container{max-width:1200px;margin:0 auto;padding:0 4rem}
.btn-primary{display:inline-flex;align-items:center;gap:.55rem;background:var(--accent);color:#fff;font-size:.86rem;font-weight:600;padding:1rem 2.5rem;border-radius:12px;border:none;transition:all .25s;letter-spacing:.03em}
.btn-primary:hover{background:var(--accent2);transform:translateY(-2px);box-shadow:0 8px 28px rgba(224,92,16,.35)}
/* Rimozione frecce SVG dai bottoni principali */
.btn-primary > svg:not(.scroll-wheel *), .btn-secondary > svg { display: none !important; }
.btn-secondary{display:inline-flex;align-items:center;gap:.55rem;border:1.5px solid rgba(255,255,255,.2);color:rgba(255,255,255,.65);font-size:.86rem;font-weight:500;padding:1rem 2.5rem;border-radius:12px;background:none;transition:all .25s;letter-spacing:.03em}
.btn-secondary:hover{border-color:#fff;color:#fff;background:rgba(255,255,255,.05)}
.btn-text{display:inline-flex;align-items:center;gap:.4rem;color:rgba(255,255,255,.5);font-size:.86rem;background:none;border:none;transition:color .2s}
.btn-text:hover{color:#fff}
/* Rimozione frecce anche nei link-come-bottoni (service pages, sp-nav etc.) */
.mega-link-arrow { display: none !important; }
.svc-arrow { display: none !important; }
.reveal{opacity:0;transform:translateY(35px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-left{opacity:0;transform:translateX(-35px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}
.reveal-left.visible{opacity:1;transform:translateX(0)}
.reveal-right{opacity:0;transform:translateX(35px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}
.reveal-right.visible{opacity:1;transform:translateX(0)}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes scaleIn{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}

/* ═══════════════════════════════════════════════════════════
   RESPONSIVE — Mobile-first overrides
═══════════════════════════════════════════════════════════ */
@media(max-width:1024px){
  nav,nav.scrolled{padding:.9rem 2.5rem}
  .container{padding:0 2.5rem}
  .hero{padding:0 2.5rem 6rem}
  .hero-badge{display:none}
  .numbers{padding:0 2.5rem!important}
  .footer-top{padding:4rem 2.5rem 3rem}
  .footer-bottom{padding:1.5rem 2.5rem}
  .cta-section{padding:8rem 2.5rem}
}

@media(max-width:900px){
  /* Nav */
  nav,nav.scrolled{padding:.85rem 1.6rem}
  .nav-links{display:none}
  .hamburger{display:flex}
  .container{padding:0 1.6rem}

  /* Hero */
  .hero{padding:5.5rem 1.6rem 4.5rem;min-height:100svh;justify-content:flex-end}
  .hero h1{font-size:clamp(2.8rem,10vw,5.5rem)}
  .hero-sub-row{flex-direction:column;align-items:flex-start;gap:2rem;margin-top:2.5rem}
  .hero-sub{font-size:.92rem;max-width:100%}
  .hero-actions{flex-wrap:wrap;gap:.8rem}
  .hero-tag-row{margin-bottom:1rem}
  .hero-badge{display:none}

  /* Numbers */
  .numbers{grid-template-columns:repeat(2,1fr);padding:0 1.6rem!important}
  .number-item:nth-child(2n){border-right:none}
  .number-item{border-bottom:1px solid var(--border);padding:2.5rem 1.5rem}
  .number-item:nth-last-child(-n+2){border-bottom:none}

  /* About */
  .about-section{padding:6rem 0}
  .about-grid{grid-template-columns:1fr;gap:3.5rem}
  .about-stats-row{grid-template-columns:1fr 1fr}
  .count-block{grid-template-columns:repeat(3,1fr)}
  .about-bg-num{font-size:16rem;opacity:.02}

  /* Services */
  .services-section{padding:6rem 0}
  .services-grid{grid-template-columns:1fr;max-width:700px;margin:0 auto}
  .svc-card{padding:3.5rem 2.5rem;min-height:420px}
  .svc-card-main{padding:3.5rem 2.5rem 3rem;width:100%}
  .svc-card h3{font-size:1.85rem}
  .svc-card p{font-size:.92rem}
  .svc-card .svc-icon{width:70px;height:70px}
  .svc-card:nth-child(2n){border-right:none}
  .svc-card:nth-child(3n){border-right:none}
  .svc-card:nth-last-child(-n+2){border-bottom:none}
  .svc-card:last-child{border-bottom:none!important}
  .svc-arrow{opacity:1!important;transform:translate(0,0)!important}

  /* Work/Projects */
  .work-section{padding:6rem 0}
  #projects-grid{grid-template-columns:1fr;gap:1rem}
  .proj-card,.proj-card:nth-child(odd),.proj-card:nth-child(even){grid-column:span 1}
  .proj-mock,.proj-card:nth-child(odd) .proj-mock{aspect-ratio:16/9}
  .proj-overlay{opacity:1;background:linear-gradient(to top,rgba(10,10,10,.92) 0%,rgba(10,10,10,.15) 55%,transparent 100%)}

  /* Team */
  .team-section{padding:6rem 0}
  .team-grid{grid-template-columns:repeat(2,1fr);gap:1rem}

  /* Testimonials */
  .testimonials-section{padding:6rem 0}
  .test-bento{grid-template-columns:1fr}
  .test-card-main{grid-row:span 1;padding:2.5rem}
  .test-quote{font-size:1.2rem}

  /* Quote Section */
  .quote-section{padding:6rem 0}
  .quote-selection-grid{grid-template-columns:1fr;gap:1rem}

  /* Pricing */
  .pricing-section{padding:6rem 0}
  .pricing-grid{grid-template-columns:1fr;gap:1.2rem}
  .price-card.featured{order:-1}

  /* Reviews */
  .reviews-section{padding:6rem 0}
  #reviews-grid{grid-template-columns:1fr}
  .review-form-grid{grid-template-columns:1fr}
  .rv-field.full,.rv-submit-row{grid-column:span 1}
  .leave-review-wrap{padding:2rem 1.6rem}

  /* Awards */
  .awards-section{padding:5rem 0}
  .award-desc{display:none}

  /* FAQ */
  .faq-section{padding:6rem 0}
  .faq-grid{grid-template-columns:1fr;gap:2rem}
  .faq-left{display:none}

  /* Contact */
  .contact-section{padding:6rem 0}
  .contact-grid{grid-template-columns:1fr;gap:3rem}
  .cf-row{grid-template-columns:1fr}
  .cf-group.full{grid-column:span 1}
  .contact-form-wrap{padding:2rem 1.6rem}

  /* CTA */
  .cta-section{padding:6rem 1.6rem}
  .cta-btns{flex-direction:column;align-items:center}
  .cta-marquee{margin:2.5rem -1.6rem 0}

  /* Footer */
  .footer-top{grid-template-columns:1fr 1fr;padding:3rem 1.6rem 2.5rem;gap:2rem}
  .footer-bottom{flex-direction:column;text-align:center;padding:1.5rem 1.6rem;gap:1rem}

  /* Section headers */
  .section-header{flex-direction:column;align-items:flex-start;gap:1rem;margin-bottom:3rem}
  .section-note{text-align:left;max-width:none}
  .section-title{font-size:clamp(1.8rem,6vw,2.8rem)}

  /* Modal */
  .modal-body{padding:1.5rem 1.2rem}
  .modal-info-grid{grid-template-columns:1fr 1fr}
  .modal-box h2{font-size:1.9rem}
  .modal-cta-row{flex-direction:column;gap:.8rem}
  .modal-cta-row a,.modal-cta-row button{width:100%;justify-content:center}

  /* Quote Section */
  .quote-section{padding:4.5rem 0}
  .quote-selection-grid{grid-template-columns:1fr;gap:1rem}
  .quote-card{padding:1.5rem;min-height:auto}
  .quote-card-title{font-size:1.1rem}
  .quote-card-desc{font-size:.8rem}
  .quote-card-price{font-size:1.3rem}

  /* Admin */
  .adm-stats{grid-template-columns:repeat(2,1fr)}
  .adm-form-grid{grid-template-columns:1fr}
  .adm-form-grid .adm-field.full{grid-column:span 1}
  /* admin sidebar handled in admin.css */
  .admin-body{flex-direction:column}
  .admin-main{padding:1.2rem;min-height:0}

  /* Service overlay */
  .sp-overlay{overflow-y:auto;-webkit-overflow-scrolling:touch}
  .sp-content-grid{grid-template-columns:1fr;gap:3rem}
  .sp-right-card{position:static}
  .sp-steps-grid{grid-template-columns:repeat(2,1fr)}
  .sp-steps-grid::before{display:none}
  .sp-hero{padding:5rem 1.6rem 3.5rem;min-height:50vh}
  .sp-hero h1{font-size:clamp(2.2rem,8vw,4.5rem)}
  .sp-nav{padding:1rem 1.6rem}
  .sp-body{padding:4rem 0}
  .sp-faq-section{padding:4rem 0}
  .sp-steps-section{padding:5rem 0}
}

@media(max-width:600px){
  /* Hero */
  .hero{padding:5rem 1.2rem 3.5rem}
  .hero h1{font-size:clamp(2.3rem,12vw,3.5rem);line-height:1.0}
  .hero-sub{font-size:.87rem}
  .hero-actions{flex-direction:column;width:100%}
  .hero-actions .btn-primary,.hero-actions .btn-secondary{width:100%;justify-content:center;text-align:center}
  .hero-actions .btn-text{justify-content:center}
  .hero-rating{flex-wrap:wrap;gap:.7rem}

  /* Numbers */
  .numbers{padding:0 1.2rem!important}
  .number-item{padding:1.8rem 1rem}
  .number-item .val{font-size:2rem}

  /* About */
  .about-section{padding:4.5rem 0}
  .about-stats-row{grid-template-columns:1fr}
  .count-block{grid-template-columns:1fr 1fr}
  .about-left h2{font-size:2rem}
  .badges-row{gap:.5rem}
  .badge-pill{font-size:.72rem;padding:.45rem .9rem}

  /* Services */
  .services-grid{grid-template-columns:1fr;max-width:100%;padding:0;border:1px solid var(--border);border-radius:16px}
  .svc-card{padding:2.2rem 1.6rem;min-height:480px}
  .svc-card-main{padding:2.5rem 1.6rem;width:100%}
  .svc-card h3{font-size:1.6rem;margin-bottom:0.8rem}
  .svc-card p{font-size:.88rem;margin:0 auto 1.2rem}
  .svc-card .svc-icon{width:60px;height:60px;margin-bottom:1.2rem}
  .svc-explore{font-size:.8rem!important;margin-top:0.8rem!important}
  .svc-arrow{width:20px;height:20px;margin-top:1rem}
  .svc-card:nth-child(2n){border-right:none!important}
  .svc-card:last-child{border-bottom:none!important}
  .sp-steps-grid{grid-template-columns:1fr 1fr}

  /* Team */
  .team-section{padding:5rem 0}

  /* Testimonials */
  .test-card-stat{padding:2rem 1.5rem}
  .test-stat-num{font-size:3rem}

  /* Pricing */
  .price-card{padding:2rem 1.4rem}
  .price-val{font-size:2.8rem}

  /* Reviews */
  .leave-review-wrap{padding:1.8rem 1.2rem}
  .star-picker button{font-size:1.5rem}

  /* Contact */
  .contact-form-wrap{padding:1.8rem 1.2rem}

  /* Modal */
  .modal-box{border-radius:0;max-height:100dvh;border-left:none;border-right:none}
    .modal-info-grid{grid-template-columns:1fr}

  /* Footer */
  .footer-top{grid-template-columns:1fr;gap:1.8rem}

  /* CTA */
  .cta-section{padding:5rem 1.2rem}
  .cta-section h2{font-size:clamp(2rem,9vw,3.5rem)}

  /* Admin */
  .adm-stats{grid-template-columns:1fr 1fr}
}

@media(max-width:380px){
  .hero h1{font-size:2.1rem}
  nav,nav.scrolled{padding:.75rem 1rem}
  .container{padding:0 1rem}
  .hero{padding:4.5rem 1rem 3rem}
  .team-grid{grid-template-columns:1fr}
  .adm-stats{grid-template-columns:1fr}
}

/* ═══════════════════════════════════════════════════════════
   THEME TOGGLE BUTTON
═══════════════════════════════════════════════════════════ */
.nav-right{display:flex;align-items:center;gap:.6rem}
.theme-toggle{width:38px;height:38px;border-radius:50%;border:1.5px solid var(--border2);background:rgba(255,255,255,.05);display:flex;align-items:center;justify-content:center;cursor:pointer;color:rgba(255,255,255,.5);transition:all .25s;flex-shrink:0}
.theme-toggle:hover{border-color:var(--accent);color:var(--accent);background:rgba(224,92,16,.08)}
.theme-toggle svg,
.theme-toggle-mobile svg{display:block;flex-shrink:0}
.theme-toggle .icon-moon{display:none}
.theme-toggle .icon-sun{display:block}
body.light .theme-toggle .icon-moon{display:block}
body.light .theme-toggle .icon-sun{display:none}
/* theme-toggle-mobile now inside .mm-header */
.theme-toggle-mobile{width:38px;height:38px;border-radius:50%;border:1.5px solid rgba(255,255,255,.12);background:none;display:flex;align-items:center;justify-content:center;cursor:pointer;color:rgba(255,255,255,.45);transition:all .25s}
.theme-toggle-mobile:hover{border-color:var(--accent);color:var(--accent)}

/* Numbers section fix */
.numbers-section{max-width:100%;padding:0;border-bottom:1px solid var(--border)}
.numbers-section .number-item{padding:3.5rem 3rem}

/* Admin dashboard grid */
.adm-dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
@media(max-width:900px){
  .adm-dashboard-grid{grid-template-columns:1fr}
}

/* ═══════════════════════════════════════════════════════════
   LIGHT MODE
═══════════════════════════════════════════════════════════ */
body.light{
  background:#f0ede6;
  color:#1a1a1a;
  --black:#f0ede6;
  --white:#1a1a1a;
  --off:#e6e2da;
  --border:rgba(0,0,0,.1);
  --border2:rgba(0,0,0,.15);
}

/* Light: grain & gradient */
body.light .grain{opacity:.02;filter:invert(1)}
body.light .gradient-bg{background:radial-gradient(ellipse 60% 50% at 20% 20%,rgba(224,92,16,.08) 0%,transparent 60%),radial-gradient(ellipse 50% 60% at 85% 80%,rgba(224,92,16,.05) 0%,transparent 60%)}

/* Light: loader */
body.light #loader{background:#f0ede6}

/* Light: nav */
body.light nav.scrolled{background:rgba(240,237,230,.9);border-bottom:1px solid rgba(0,0,0,.1)}
body.light .nav-links a{color:rgba(0,0,0,.5)}
body.light .nav-links a:hover{color:#1a1a1a}
body.light .hamburger span{background:#1a1a1a}
body.light .theme-toggle{
  border-color:rgba(0,0,0,.16);
  background:rgba(255,255,255,.96);
  color:#111;
  box-shadow:0 10px 22px rgba(0,0,0,.08);
}
body.light .theme-toggle:hover{
  border-color:var(--accent);
  color:var(--accent);
  background:#fff7f1;
}
body.light .theme-toggle-mobile{
  border-color:rgba(0,0,0,.18);
  background:rgba(255,255,255,.96);
  color:#111;
  box-shadow:0 10px 22px rgba(0,0,0,.08);
}
body.light .theme-toggle-mobile:hover{
  border-color:var(--accent);
  color:var(--accent);
  background:#fff7f1;
}

/* Light: mobile menu — overrides now in mm-* selectors block */

/* Light: hero */
body.light .hero{color:#1a1a1a}
body.light .hero-year{color:rgba(0,0,0,.3)}
body.light .hero h1{color:#1a1a1a}
body.light .hero-sub{color:rgba(0,0,0,.5)}
body.light .hero-badge-inner{color:rgba(0,0,0,.35)}
body.light .hero-badge{border-color:rgba(0,0,0,.12)}
body.light .hero-line{background:linear-gradient(to bottom,transparent,rgba(224,92,16,.12),transparent)}
body.light .scroll-wheel{border-color:rgba(0,0,0,.2)}
body.light .btn-secondary{border-color:rgba(0,0,0,.2);color:rgba(0,0,0,.6)}
body.light .btn-secondary:hover{border-color:#1a1a1a;color:#1a1a1a;background:rgba(0,0,0,.04)}
body.light .btn-text{color:rgba(0,0,0,.45)}
body.light .btn-text:hover{color:#1a1a1a}
body.light .rating-txt{color:rgba(0,0,0,.4)}
body.light .avatar-stack .av{border-color:#f0ede6}

/* Light: logos strip */
body.light .logos-section{background:rgba(0,0,0,.02);border-color:rgba(0,0,0,.08)}
body.light .logos-label{color:rgba(0,0,0,.3)}
body.light .brand-logo-item{opacity:.4}
body.light .brand-logo-item:hover{opacity:.8}
body.light .brand-logo-item svg{color:#1a1a1a}
body.light .logos-track-wrap::before{background:linear-gradient(to right,#f0ede6,transparent)}
body.light .logos-track-wrap::after{background:linear-gradient(to left,#f0ede6,transparent)}

/* Light: marquee */
body.light .marquee-section{background:rgba(224,92,16,.04);border-color:rgba(0,0,0,.08)}
body.light .marquee-item{color:rgba(0,0,0,.35)}

/* Light: numbers */
body.light .number-item{border-color:rgba(0,0,0,.08)}
body.light .number-item .val{color:#1a1a1a}
body.light .number-item p{color:rgba(0,0,0,.4)}
body.light .number-item:hover::before{background:var(--accent)}

/* Light: about */
body.light .about-section{color:#1a1a1a}
body.light .about-left h2{color:#1a1a1a}
body.light .about-left p{color:rgba(0,0,0,.5)}
body.light .about-bg-num{color:rgba(0,0,0,.04)}
body.light .badge-pill{border-color:rgba(0,0,0,.1);color:rgba(0,0,0,.55)}
body.light .badge-pill:hover{border-color:rgba(224,92,16,.4);color:#1a1a1a;background:rgba(224,92,16,.06)}
body.light .about-stat-card{border-color:rgba(0,0,0,.1);background:rgba(255,255,255,.6)}
body.light .about-stat-card:hover{border-color:rgba(224,92,16,.35);background:rgba(224,92,16,.05)}
body.light .about-stat-num{color:#1a1a1a}
body.light .about-stat-label{color:rgba(0,0,0,.4)}
body.light .count-block{background:rgba(0,0,0,.06);border-color:rgba(0,0,0,.1)}
body.light .count-item{background:rgba(255,255,255,.5)}
body.light .count-item:hover{background:rgba(224,92,16,.06)}
body.light .count-num{color:#1a1a1a}
body.light .count-label{color:rgba(0,0,0,.35)}
body.light .plus{color:var(--accent)}

/* Light: services */
body.light .services-section{color:#1a1a1a}
body.light .services-grid{border-color:rgba(0,0,0,.08)}
body.light .svc-card{border-color:rgba(0,0,0,.08);background:rgba(255,255,255,.35)}
body.light .svc-card:hover{background:rgba(224,92,16,.05)}
body.light .svc-card h3{color:#1a1a1a}
body.light .svc-card p{color:rgba(0,0,0,.5)}
body.light .svc-num{color:rgba(0,0,0,.18)}

/* Light: service overlay */
body.light .sp-overlay{background:#f0ede6}
body.light .sp-hero{color:#fff}
body.light .sp-body{color:#1a1a1a}
body.light .sp-left h2{color:#1a1a1a}
body.light .sp-left p{color:rgba(0,0,0,.5)}
body.light .sp-feat{border-color:rgba(0,0,0,.1);background:rgba(255,255,255,.5)}
body.light .sp-feat:hover{border-color:rgba(224,92,16,.35);background:rgba(224,92,16,.04)}
body.light .sp-feat-text h4{color:#1a1a1a}
body.light .sp-feat-text p{color:rgba(0,0,0,.45)}
body.light .sp-right-card{background:rgba(255,255,255,.7);border-color:rgba(0,0,0,.12)}
body.light .sp-price-big{color:#1a1a1a}
body.light .sp-price-period{color:rgba(0,0,0,.4);border-color:rgba(0,0,0,.08)}
body.light .sp-checklist li{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.08)}
body.light .sp-nav{background:rgba(240,237,230,.9);border-color:rgba(0,0,0,.1)}
body.light .sp-back-btn{color:rgba(0,0,0,.4)}
body.light .sp-back-btn:hover{color:#1a1a1a}
body.light .sp-steps-section{border-color:rgba(0,0,0,.08)}
body.light .sp-steps-title{color:#1a1a1a}
body.light .sp-step h4{color:#1a1a1a}
body.light .sp-step p{color:rgba(0,0,0,.45)}
body.light .sp-faq-section{border-color:rgba(0,0,0,.08)}
body.light .sp-faq-title{color:#1a1a1a}
body.light .sp-faq-item{border-color:rgba(0,0,0,.08)}
body.light .sp-faq-q{color:rgba(0,0,0,.65)}
body.light .sp-faq-q:hover{color:#1a1a1a}
body.light .sp-faq-a{color:rgba(0,0,0,.45)}

/* Light: work/projects */
body.light .work-section{border-color:rgba(0,0,0,.08)}
body.light .proj-card{background:#e4e0d8}

/* Light: modal */
body.light .modal-box{background:#f0ede6;border-color:rgba(0,0,0,.12)}
body.light .modal-close-btn{background:rgba(0,0,0,.06);border-color:rgba(0,0,0,.1);color:rgba(0,0,0,.4)}
body.light .modal-close-btn:hover{background:rgba(0,0,0,.12);color:#1a1a1a}
body.light .modal-box h2{color:#1a1a1a}
body.light .modal-desc{color:rgba(0,0,0,.5)}
body.light .modal-chip{color:var(--accent);border-color:rgba(224,92,16,.3)}
body.light .modal-year-txt{color:rgba(0,0,0,.35)}
body.light .modal-info-grid{border-color:rgba(0,0,0,.08)}
body.light .modal-info-item label{color:rgba(0,0,0,.3)}
body.light .modal-info-item span{color:#1a1a1a}
body.light .modal-tech-row{border-color:rgba(0,0,0,.08)}
body.light .tech-chip{background:rgba(0,0,0,.05);color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}
body.light .modal-cta-row{border-color:rgba(0,0,0,.08)}
body.light .modal-backdrop{background:rgba(0,0,0,.5)}

/* Light: team */
body.light .team-section{border-color:rgba(0,0,0,.08)}
body.light .team-card{border-color:rgba(0,0,0,.1);background:rgba(255,255,255,.5)}
body.light .team-card:hover{border-color:rgba(224,92,16,.35)}
body.light .team-name{color:#1a1a1a}
body.light .team-role{color:rgba(0,0,0,.4)}
body.light .team-social{border-color:rgba(0,0,0,.12);color:rgba(0,0,0,.35)}
body.light .team-social:hover{border-color:var(--accent);color:var(--accent)}

/* Light: testimonials */
body.light .testimonials-section{border-color:rgba(0,0,0,.08)}
body.light .test-card-main{background:rgba(255,255,255,.6);border-color:rgba(0,0,0,.1)}
body.light .test-card-main:hover{border-color:rgba(224,92,16,.3)}
body.light .test-label{color:rgba(0,0,0,.35)}
body.light .test-label::before{background:rgba(0,0,0,.15)}
body.light .test-quote{color:rgba(0,0,0,.8)}
body.light .test-author-name{color:#1a1a1a}
body.light .test-author-role{color:rgba(0,0,0,.35)}
body.light .test-card-stat{background:rgba(224,92,16,.07);border-color:rgba(224,92,16,.2)}
body.light .test-stat-num{color:#1a1a1a}
body.light .test-stat-label{color:rgba(0,0,0,.5)}
body.light .test-card-mini{background:rgba(255,255,255,.5);border-color:rgba(0,0,0,.1)}
body.light .test-card-mini:hover{border-color:rgba(224,92,16,.25)}
body.light .test-mini-text{color:rgba(0,0,0,.7)}
body.light .test-mini-author{color:rgba(0,0,0,.35)}

/* Light: pricing */
body.light .pricing-section{border-color:rgba(0,0,0,.08)}
body.light .price-card{background:rgba(255,255,255,.6);border-color:rgba(0,0,0,.1)}
body.light .price-card:hover{border-color:rgba(224,92,16,.3);background:rgba(224,92,16,.04)}
body.light .price-card.featured{background:rgba(224,92,16,.08);border-color:rgba(224,92,16,.3)}
body.light .price-card.featured:hover{background:rgba(224,92,16,.12)}
body.light .price-val{color:#1a1a1a}
body.light .price-period{color:rgba(0,0,0,.4)}
body.light .price-desc{color:rgba(0,0,0,.45);border-color:rgba(0,0,0,.08)}
body.light .price-feature{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.08)}
body.light .btn-price-outline{border-color:rgba(0,0,0,.2);color:rgba(0,0,0,.65)}
body.light .btn-price-outline:hover{border-color:#1a1a1a;color:#1a1a1a;background:rgba(0,0,0,.04)}

/* Light: reviews */
body.light .reviews-section{border-color:rgba(0,0,0,.08)}
body.light #reviews-grid .review-card{background:rgba(255,255,255,.6);border-color:rgba(0,0,0,.1)}
body.light .review-card:hover{border-color:rgba(224,92,16,.3);background:rgba(224,92,16,.04)}
body.light .review-text{color:rgba(0,0,0,.65)}
body.light .review-name{color:#1a1a1a}
body.light .review-role{color:rgba(0,0,0,.35)}
body.light .review-date{color:rgba(0,0,0,.25);border-color:rgba(0,0,0,.08)}
body.light .leave-review-wrap{background:rgba(255,255,255,.6);border-color:rgba(0,0,0,.1)}
body.light .leave-review-wrap h3{color:#1a1a1a}
body.light .leave-review-wrap>p{color:rgba(0,0,0,.4)}
body.light .star-picker button{color:rgba(0,0,0,.15)}
body.light .star-picker button:hover,body.light .star-picker button.active{color:var(--accent)}
body.light .rv-field label{color:rgba(0,0,0,.35)}
body.light .rv-field input,body.light .rv-field textarea{border-color:rgba(0,0,0,.12);background:rgba(255,255,255,.7);color:#1a1a1a}
body.light .rv-field input:focus,body.light .rv-field textarea:focus{border-color:rgba(224,92,16,.5);background:rgba(224,92,16,.04)}
body.light .rv-note{color:rgba(0,0,0,.28)}

/* Light: awards */
body.light .awards-section{border-color:rgba(0,0,0,.08)}
body.light .award-row{border-color:rgba(0,0,0,.08)}
body.light .award-name{color:#1a1a1a}
body.light .award-desc{color:rgba(0,0,0,.4)}
body.light .award-year{color:rgba(0,0,0,.14)}
body.light .award-icon{border-color:rgba(0,0,0,.12)}
body.light .award-row:hover .award-icon{border-color:var(--accent);background:rgba(224,92,16,.07)}
body.light .award-arrow{color:rgba(0,0,0,.2)}

/* Light: FAQ */
body.light .faq-section{border-color:rgba(0,0,0,.08)}
body.light .faq-left h2{color:#1a1a1a}
body.light .faq-left p{color:rgba(0,0,0,.4)}
body.light .faq-item{border-color:rgba(0,0,0,.08)}
body.light .faq-q{color:rgba(0,0,0,.65)}
body.light .faq-q:hover{color:#1a1a1a}
body.light .faq-a{color:rgba(0,0,0,.45)}
body.light .faq-icon{border-color:rgba(0,0,0,.12)}
body.light .faq-icon.open{background:rgba(224,92,16,.08);border-color:rgba(224,92,16,.3)}

/* Light: contact */
body.light .contact-section{border-color:rgba(0,0,0,.08)}
body.light .contact-left h2{color:#1a1a1a}
body.light .contact-left p{color:rgba(0,0,0,.45)}
body.light .contact-ico{background:rgba(224,92,16,.1)}
body.light .contact-item span{color:rgba(0,0,0,.5)}
body.light .contact-form-wrap{background:rgba(255,255,255,.65);border-color:rgba(0,0,0,.1)}
body.light .contact-form-wrap h3{color:#1a1a1a}
body.light .cf-group label{color:rgba(0,0,0,.35)}
body.light .cf-group input,body.light .cf-group select,body.light .cf-group textarea{border-color:rgba(0,0,0,.12);background:rgba(255,255,255,.8);color:#1a1a1a}
body.light .cf-group input:focus,body.light .cf-group select:focus,body.light .cf-group textarea:focus{border-color:rgba(224,92,16,.5);background:rgba(224,92,16,.04)}
body.light .cf-group select option{background:#f0ede6;color:#1a1a1a}
body.light .cf-note{color:rgba(0,0,0,.28)}

/* Light: CTA */
body.light .cta-section{border-color:rgba(0,0,0,.08)}
body.light .cta-bg{background:radial-gradient(ellipse 80% 70% at 50% 50%,rgba(224,92,16,.1),transparent 70%)}
body.light .cta-section h2{color:#1a1a1a}
body.light .cta-section>p{color:rgba(0,0,0,.4)}
body.light .cta-marquee{border-color:rgba(0,0,0,.08)}
body.light .cta-mq-item{color:rgba(0,0,0,.15)}

/* Light: footer */
body.light footer{border-color:rgba(0,0,0,.08)}
body.light .footer-top{background:rgba(255,255,255,.3)}
body.light .footer-brand p{color:rgba(0,0,0,.4)}
body.light .footer-col h5{color:rgba(0,0,0,.5)}
body.light .footer-col a,body.light .footer-col span{color:rgba(0,0,0,.4)}
body.light .footer-col a:hover{color:var(--accent)}
body.light .footer-social{border-color:rgba(0,0,0,.12);color:rgba(0,0,0,.35)}
body.light .footer-social:hover{border-color:var(--accent);color:var(--accent)}
body.light .footer-bottom{border-color:rgba(0,0,0,.08)}
body.light .footer-bottom p{color:rgba(0,0,0,.25)}
body.light .admin-hint{color:rgba(0,0,0,.1)}

/* Light: section common */
body.light .section-tag{color:var(--accent)}
body.light .section-title{color:#1a1a1a}
body.light .section-note{color:rgba(0,0,0,.35)}
body.light .section-header{border-color:rgba(0,0,0,.08)}

/* Light: toast */
body.light .toast-msg{background:#fff;color:#1a1a1a;box-shadow:0 16px 40px rgba(0,0,0,.15)}

/* Light: admin panel */
body.light #admin-overlay{background:#f0ede6}
body.light .admin-topbar{background:rgba(240,237,230,.95);border-color:rgba(0,0,0,.1)}
body.light .admin-topbar-logo{color:#1a1a1a}
body.light .admin-sidebar{background:#e8e4dc;border-color:rgba(0,0,0,.1)}
body.light .adm-section{color:rgba(0,0,0,.3)}
body.light .adm-nav-item{color:rgba(0,0,0,.45)}
body.light .adm-nav-item:hover{background:rgba(0,0,0,.06);color:rgba(0,0,0,.8)}
body.light .adm-nav-item.active{background:rgba(224,92,16,.1);color:var(--accent)}
body.light .admin-main{background:rgba(240,237,230,.5)}
body.light .adm-page-header h2{color:#1a1a1a}
body.light .adm-page-header p{color:rgba(0,0,0,.4)}
body.light .adm-stat{background:rgba(255,255,255,.7);border-color:rgba(0,0,0,.1)}
body.light .adm-stat-val{color:#1a1a1a}
body.light .adm-stat-label{color:rgba(0,0,0,.4)}
body.light .adm-stat-sub{color:rgba(0,0,0,.25)}
body.light .adm-card{background:rgba(255,255,255,.7);border-color:rgba(0,0,0,.1)}
body.light .adm-card-title{color:#1a1a1a}
body.light th{color:rgba(0,0,0,.35);border-color:rgba(0,0,0,.08)}
body.light td{color:rgba(0,0,0,.6);border-color:rgba(0,0,0,.08)}
body.light tr:hover td{background:rgba(0,0,0,.03)}
body.light .td-main{color:#1a1a1a}
body.light .td-sub{color:rgba(0,0,0,.35)}
body.light .adm-btn-ghost{border-color:rgba(0,0,0,.15);color:rgba(0,0,0,.55)}
body.light .adm-btn-ghost:hover{background:rgba(0,0,0,.06);border-color:rgba(0,0,0,.2);color:rgba(0,0,0,.8)}
body.light .adm-form-panel{background:rgba(255,255,255,.6);border-color:rgba(0,0,0,.1)}
body.light .adm-form-panel h3{color:#1a1a1a}
body.light .adm-field label{color:rgba(0,0,0,.35)}
body.light .adm-field input,body.light .adm-field select,body.light .adm-field textarea{border-color:rgba(0,0,0,.12);background:rgba(255,255,255,.8);color:#1a1a1a}
body.light .adm-field input:focus,body.light .adm-field select:focus,body.light .adm-field textarea:focus{border-color:rgba(224,92,16,.5)}
body.light .adm-field select option{background:#f0ede6;color:#1a1a1a}
body.light .adm-search-input{border-color:rgba(0,0,0,.12);background:rgba(255,255,255,.7);color:#1a1a1a}
body.light .adm-search-input:focus{border-color:rgba(224,92,16,.4)}
body.light .adm-filter-select{border-color:rgba(0,0,0,.12);background:rgba(255,255,255,.7);color:rgba(0,0,0,.6)}
body.light .adm-filter-select option{background:#f0ede6;color:#1a1a1a}
body.light .admin-login-screen{background:transparent}
body.light .admin-login-card{background:rgba(255,255,255,.7);border-color:rgba(0,0,0,.12)}
body.light .admin-login-card h2{color:#1a1a1a}
body.light .admin-login-card p{color:rgba(0,0,0,.4)}
body.light .adm-modal-box{background:#f0ede6;border-color:rgba(0,0,0,.12)}
body.light .adm-modal-box h3{color:#1a1a1a}
body.light .adm-modal-close{color:rgba(0,0,0,.4)}
body.light .adm-modal-close:hover{color:#1a1a1a}
body.light .mini-bar-label{color:rgba(0,0,0,.45)}
body.light .mini-bar-track{background:rgba(0,0,0,.08)}
body.light .mini-bar-val{color:rgba(0,0,0,.35)}
body.light .adm-form-actions{border-color:rgba(0,0,0,.08)}

/* Light: admin sidebar mobile */
body.light .admin-sidebar::-webkit-scrollbar-thumb{background:var(--accent)}

/* ═══════════════════════════════════════════════════════════
   ADDITIONAL MOBILE IMPROVEMENTS
═══════════════════════════════════════════════════════════ */
/* Mobile nav right alignment */
@media(max-width:900px){
  .nav-right{gap:.4rem}
  .theme-toggle{width:36px;height:36px}
}

/* Better touch targets on mobile */
@media(max-width:600px){
  .svc-explore{padding:.6rem 0}
  .star-picker button{font-size:2rem;padding:.3rem}
  .sp-hero-ctas{flex-direction:column}
  .sp-hero-ctas .btn-primary,.sp-hero-ctas .btn-secondary{width:100%;justify-content:center}
  .hero-actions{flex-direction:column;width:100%}
  .hero-actions .btn-primary{width:100%;justify-content:center}
  .hero-actions .btn-text{justify-content:center}
}

/* Footer meta links */
.footer-meta-link{font-size:.74rem;color:rgba(255,255,255,.2);transition:color .2s}
.footer-meta-link:hover{color:var(--accent)!important}
body.light .footer-meta-link{color:rgba(0,0,0,.2)}
body.light .footer-meta-link:hover{color:var(--accent)!important}

/* Admin sidebar footer light mode */
body.light .admin-sidebar-footer{border-color:rgba(0,0,0,.1)}
body.light .admin-sidebar-footer p{color:rgba(0,0,0,.25)!important}

/* Better scrollbar in light mode */
body.light .sp-overlay::-webkit-scrollbar-thumb{background:rgba(0,0,0,.15)}
body.light .sp-overlay::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.25)}
body.light .modal-box::-webkit-scrollbar-thumb{background:rgba(0,0,0,.12)}
body.light .admin-main::-webkit-scrollbar-track{background:transparent}
body.light .admin-main::-webkit-scrollbar-thumb{background:rgba(0,0,0,.15);border-radius:3px}
body.light .admin-sidebar::-webkit-scrollbar-thumb{background:var(--accent)}

/* Admin dashboard grid responsive fix */
@media(max-width:700px){
  .adm-dashboard-grid{grid-template-columns:1fr!important}
}

/* Mobile: better admin sidebar with nav-item tooltip */
@media(max-width:640px){
  .admin-sidebar{position:relative}
  .adm-nav-item{position:relative}
  .adm-nav-item .adm-icon{margin:0 auto}
  /* Show text label below icon */
  .adm-nav-item span.adm-nav-label{display:none}
}

/* SP overlay hero mobile */
@media(max-width:480px){
  .sp-hero{padding:4rem 1.2rem 2.5rem;min-height:45vh}
  .sp-hero h1{font-size:clamp(1.9rem,10vw,3rem)}
  .sp-body{padding:3rem 0}
  .sp-left h2{font-size:1.6rem}
  .sp-steps-grid{grid-template-columns:1fr}
  .sp-faq-section{padding:3rem 0}
}

/* Improve service card on small mobile */
@media(max-width:380px){
  .svc-card{padding:1.6rem 1.2rem}
  .services-grid{border-radius:12px}
  .about-left h2{font-size:1.75rem}
}

/* Light mode: logo color in footer-top */
body.light .footer-top .logo{color:#1a1a1a}
body.light .footer-top .logo span{color:var(--accent)}

/* Light mode: numbers section proper bg reset */
body.light .numbers{background:transparent}
body.light .number-item::before{background:var(--accent)}

/* Light mode: gradient bg overlay in SP hero stays dark */
body.light .sp-hero-bg-dark{background:#1a1608}

/* Light mode: project cards */
body.light .proj-card{background:#dedad2}
body.light .proj-overlay{background:linear-gradient(to top,rgba(20,16,8,.92) 0%,rgba(20,16,8,.2) 55%,transparent 100%)}
body.light .proj-card:hover{box-shadow:0 40px 80px rgba(0,0,0,.25)}

/* Light mode: admin delete modal */
body.light #deleteConfirmModal .adm-modal-box p{color:rgba(0,0,0,.45)}

/* Light mode: contact detail modal grid labels */
body.light #contDetailContent label{color:rgba(0,0,0,.3)!important}
body.light #contDetailContent p{color:rgba(0,0,0,.5)!important;background:rgba(0,0,0,.03)!important;border-color:rgba(0,0,0,.08)!important}

/* Light mode: adm-chip in light */
body.light .chip-gray{background:rgba(0,0,0,.06);color:rgba(0,0,0,.4)}
body.light .chip-blue{background:rgba(10,109,201,.1);color:#0a6dc9}
body.light .chip-green{background:rgba(26,138,58,.1);color:#1a7a3a}
body.light .chip-orange{background:rgba(224,92,16,.1);color:var(--accent)}
body.light .chip-red{background:rgba(192,57,43,.1);color:#c0392b}

/* Light mode: adm badge */
body.light .adm-badge{background:var(--accent)}
body.light .adm-badge-sm{background:var(--accent)}

/* Loader light bg sync */
body.light #loader{background:#f0ede6}
body.light #loader-logo{color:#1a1a1a}
body.light #loader-logo span{color:var(--accent)}
body.light #loader-pct{color:rgba(0,0,0,.4)}

/* ═══════════════════════════════════════════════════════════
   MOBILE RESPONSIVE — blocco unico, nessuna duplicazione
   Aggiunto dopo audit completo della sessione corrente
═══════════════════════════════════════════════════════════ */

/* ── Cursore: touch/mouse pointer override unico ── */
@media(hover:none),(pointer:coarse){
  #cursor{display:none!important}
  body,*{cursor:auto!important}
  .btn-primary,.btn-secondary,.btn-text,.btn-price,
  .svc-card,.svc-explore,.faq-q,.sp-faq-q,
  .proj-card,.proj-open-btn,.hamburger,.mobile-close,
  .mobile-link,.sp-back-btn,.modal-close-btn,
  .star-picker button,.cf-submit,.theme-toggle,
  .theme-toggle-mobile,.team-card,.footer-social,
  .team-social,.sp-feat,.adm-btn,.adm-nav-item,
  .adm-modal-close,.admin-hint,.adm-filter-select,
  label[for]{cursor:pointer!important}
}

/* ── Hero actions: stack su mobile ── */
@media(max-width:600px){
  .hero-actions{flex-direction:column;width:100%;align-items:stretch}
  .hero-actions .btn-primary,
  .hero-actions .btn-secondary,
  .hero-actions .btn-text{width:100%;justify-content:center}
  .cf-submit{width:100%;justify-content:center}
}

/* ── Service overlay: scroll lock iOS ── */
@media(max-width:900px){
  .sp-overlay.open{overscroll-behavior:contain}
}

/* ── Modal progetto: sheet dal basso su mobile ── */
@media(max-width:600px){
  .modal-backdrop{align-items:flex-end;padding:0}
  .modal-box{border-radius:20px 20px 0 0;max-height:92dvh}
}

/* ── Review submit row: stack su mobile ── */
@media(max-width:600px){
  .rv-submit-row{flex-direction:column;align-items:stretch}
  .rv-submit-row .btn-primary{width:100%;justify-content:center}
}

/* ── Numbers section: rimuovi border-bottom sulle ultime 2 celle (2-col grid) ── */
@media(max-width:900px){
  .number-item:nth-last-child(-n+2){border-bottom:none!important}
  .price-card.featured{margin-top:.5rem}
}

/* ── Team grid: 1 colonna su schermi molto piccoli ── */
@media(max-width:400px){
  .team-grid{grid-template-columns:1fr}
  .sp-steps-grid{grid-template-columns:1fr}
}

/* ── Footer brand: span 2 colonne su tablet ── */
@media(max-width:900px) and (min-width:601px){
  .footer-brand{grid-column:span 2}
}

/* ── Toast: full-width su mobile ── */
@media(max-width:600px){
  #toast{bottom:1rem;right:.8rem;left:.8rem;max-width:none}
}

/* ── Section title: no overflow su mobile ── */
@media(max-width:600px){
  .section-title{word-break:break-word;overflow-wrap:break-word}
}

/* ═══════════════════════════════════════════════════════════
   MOBILE MENU — GLOW EFFECT ON CLICK
═══════════════════════════════════════════════════════════ */
@keyframes menuGlow{
  0%{text-shadow:none;opacity:1}
  30%{text-shadow:0 0 18px rgba(224,92,16,.9),0 0 40px rgba(224,92,16,.5);color:var(--accent);opacity:1}
  100%{text-shadow:none;opacity:1}
}
.mm-link.glow-active,.mm-sub-link.glow-active{animation:menuGlow .35s ease forwards}

/* ═══════════════════════════════════════════════════════════
   WHATSAPP FLOATING BUTTON
═══════════════════════════════════════════════════════════ */
.whatsapp-float{
  position:fixed;bottom:2rem;right:2rem;z-index:500;
  width:58px;height:58px;border-radius:50%;
  background:#25D366;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 20px rgba(37,211,102,.4),0 2px 8px rgba(0,0,0,.2);
  transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s;
  cursor:pointer;
  text-decoration:none;
}
.whatsapp-float:hover{
  transform:scale(1.12) translateY(-2px);
  box-shadow:0 8px 32px rgba(37,211,102,.55),0 4px 12px rgba(0,0,0,.25);
}
.whatsapp-float svg{width:30px;height:30px;fill:#fff}
.whatsapp-float .wa-tooltip{
  position:absolute;right:72px;top:50%;transform:translateY(-50%);
  background:rgba(10,10,10,.92);backdrop-filter:blur(10px);
  color:#fff;font-size:.78rem;font-family:'Outfit',sans-serif;
  padding:.5rem 1rem;border-radius:8px;white-space:nowrap;
  opacity:0;pointer-events:none;
  transition:opacity .25s,transform .25s;
  transform:translateY(-50%) translateX(6px);
}
.whatsapp-float:hover .wa-tooltip{
  opacity:1;transform:translateY(-50%) translateX(0);
}
.whatsapp-float .wa-tooltip::after{
  content:'';position:absolute;left:100%;top:50%;transform:translateY(-50%);
  border:5px solid transparent;border-left-color:rgba(10,10,10,.92);
}
@media(hover:none),(pointer:coarse){.whatsapp-float{cursor:pointer}}

/* ═══════════════════════════════════════════════════════════
   INSTAGRAM SECTION / SOCIAL STRIP
═══════════════════════════════════════════════════════════ */
.instagram-strip{
  padding:4rem 0;border-top:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;
}
.instagram-link-btn{
  display:flex;align-items:center;gap:1rem;
  padding:1rem 2.2rem;border:1px solid var(--border);
  border-radius:50px;color:rgba(255,255,255,.65);
  font-family:'Outfit',sans-serif;font-size:.9rem;
  transition:all .3s;text-decoration:none;
  background:rgba(255,255,255,.03);
}
.instagram-link-btn:hover{
  border-color:rgba(224,92,16,.5);color:var(--white);
  background:rgba(224,92,16,.06);transform:translateY(-2px);
}
.instagram-link-btn svg{width:20px;height:20px;color:var(--accent)}

/* ═══════════════════════════════════════════════════════════
   TEAM SECTION — ENHANCED ANIMATIONS
═══════════════════════════════════════════════════════════ */
.team-card{transform:translateY(20px);opacity:0;transition:transform .6s cubic-bezier(.16,1,.3,1),opacity .6s,border-color .3s,box-shadow .3s}
.team-card.visible{transform:translateY(0);opacity:1}
/* Override reveal for team cards so team-card animation takes priority */
.team-card.reveal{transform:translateY(20px);opacity:0}
.team-card.reveal.visible{transform:translateY(0);opacity:1}
.team-card:hover{
  border-color:rgba(224,92,16,.4);
  box-shadow:0 20px 50px rgba(0,0,0,.3),0 0 0 1px rgba(224,92,16,.1);
}
.team-card:nth-child(1){transition-delay:0s}
.team-card:nth-child(2){transition-delay:.1s}
.team-card:nth-child(3){transition-delay:.2s}
.team-card:nth-child(4){transition-delay:.3s}
.team-description{
  font-size:.79rem;color:rgba(255,255,255,.38);
  line-height:1.7;margin-bottom:1.2rem;
  margin-top:.5rem;border-top:1px solid rgba(255,255,255,.06);
  padding-top:.9rem;
}
.team-desc-inner{
  max-height:0;overflow:hidden;
  transition:max-height .4s ease,opacity .3s;
  opacity:0;
}
.team-card:hover .team-desc-inner{max-height:100px;opacity:1}
.team-card-glow{
  position:absolute;inset:0;border-radius:14px;
  background:radial-gradient(ellipse 60% 40% at 50% 0%,rgba(224,92,16,.08),transparent 70%);
  opacity:0;transition:opacity .4s;
  pointer-events:none;
}
.team-card:hover .team-card-glow{opacity:1}

/* ═══════════════════════════════════════════════════════════
   BRANDING SERVICE CARD + SUB-SERVICE PAGES
═══════════════════════════════════════════════════════════ */

/* Branding service special accent */
#sp-branding .sp-hero-gradient{
  background:radial-gradient(ellipse 70% 60% at 40% 40%,rgba(131,42,224,.2),transparent 70%);
}

/* ═══════════════════════════════════════════════════════════
   SERVICE PAGES (external .servizi/)
═══════════════════════════════════════════════════════════ */
.servizi-hero{
  min-height:55vh;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;
  padding:8rem 2rem 5rem;position:relative;overflow:hidden;
}
.servizi-hero h1{font-family:'Fraunces',serif;font-size:clamp(2.5rem,8vw,5.5rem);letter-spacing:-.03em;color:var(--white);margin-bottom:1.5rem}
.servizi-hero p{font-size:1.05rem;color:rgba(255,255,255,.5);max-width:55ch;line-height:1.7}
.servizi-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:0;border:1px solid var(--border);border-radius:16px;overflow:hidden;
  margin-top:4rem;
}
.servizi-item{
  padding:3rem 2.5rem;border-right:1px solid var(--border);
  border-bottom:1px solid var(--border);
  background:rgba(255,255,255,.02);
  transition:background .3s;cursor:pointer;
  text-decoration:none;color:inherit;display:block;
}
.servizi-item:hover{background:rgba(224,92,16,.06)}
.servizi-item:nth-child(3n){border-right:none}
.servizi-item svg{width:32px;height:32px;color:var(--accent);margin-bottom:1.5rem}
.servizi-item h3{font-family:'Fraunces',serif;font-size:1.3rem;color:var(--white);margin-bottom:.6rem}
.servizi-item p{font-size:.82rem;color:rgba(255,255,255,.38);line-height:1.7}
.servizi-sub-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1.2rem}
.servizi-sub-tag{font-size:.68rem;padding:.3rem .7rem;border:1px solid var(--border);border-radius:20px;color:rgba(255,255,255,.35)}
.breadcrumb{
  display:flex;align-items:center;gap:.5rem;
  font-size:.76rem;color:rgba(255,255,255,.3);
  margin-bottom:1.5rem;
}
.breadcrumb a{color:rgba(255,255,255,.3);text-decoration:none;transition:color .2s}
.breadcrumb a:hover{color:var(--accent)}
.breadcrumb-sep{color:rgba(255,255,255,.15)}

/* Light mode for new elements */
body.light .whatsapp-float .wa-tooltip{background:rgba(240,237,230,.95);color:#1a1a1a}
body.light .whatsapp-float .wa-tooltip::after{border-left-color:rgba(240,237,230,.95)}
body.light .instagram-link-btn{color:rgba(0,0,0,.5);background:rgba(255,255,255,.4)}
body.light .instagram-link-btn:hover{color:#1a1a1a;background:rgba(224,92,16,.06)}
body.light .team-description{color:rgba(0,0,0,.38);border-top-color:rgba(0,0,0,.06)}
body.light .team-card{background:rgba(255,255,255,.5);border-color:rgba(0,0,0,.1)}
body.light .team-card:hover{box-shadow:0 20px 50px rgba(0,0,0,.1),0 0 0 1px rgba(224,92,16,.2)}
body.light .servizi-item h3{color:#1a1a1a}
body.light .servizi-item p{color:rgba(0,0,0,.38)}
body.light .servizi-item{background:rgba(255,255,255,.4);border-color:rgba(0,0,0,.1)}
body.light .breadcrumb,body.light .breadcrumb a{color:rgba(0,0,0,.3)}

/* ═══════════════════════════════════════════════════════════
   MOBILE OVERHAUL v2 — Comprehensive responsive fixes
   Mobile-first principles, clean hierarchy
═══════════════════════════════════════════════════════════ */

/* ── NAV: compact header on mobile ── */
@media(max-width:900px){
  nav,nav.scrolled{
    padding:.75rem 1.4rem;
    min-height:56px;
  }
  .logo{font-size:1.3rem}
  .nav-right{gap:.4rem}
  .theme-toggle{width:34px;height:34px}
}

/* ── HERO: better mobile scaling ── */
@media(max-width:900px){
  .hero{
    padding:calc(56px + 3rem) 1.4rem 4rem;
    min-height:100svh;
  }
  .hero h1{
    font-size:clamp(2.5rem,11vw,4.5rem);
    line-height:1.0;
  }
  .hero-sub-row{margin-top:2rem;gap:1.8rem}
}
@media(max-width:480px){
  .hero{padding:calc(56px + 2rem) 1.2rem 3.5rem}
  .hero h1{font-size:clamp(2.2rem,13vw,3.2rem);line-height:1.02}
  .hero-tag{font-size:.62rem;letter-spacing:.16em}
  .hero-rating{gap:.6rem}
  .avatar-stack .av{width:32px;height:32px;font-size:.78rem}
  .rating-stars{font-size:.82rem}
  .rating-txt{font-size:.72rem}
}

/* ── NUMBERS: 2-col on mobile ── */
@media(max-width:600px){
  .numbers{grid-template-columns:repeat(2,1fr)!important}
  .number-item{padding:1.6rem 1rem}
  .number-item .val{font-size:1.9rem}
  .number-item p{font-size:.75rem}
}
@media(max-width:380px){
  .numbers{grid-template-columns:1fr!important}
  .number-item:nth-child(2n){border-right:1px solid var(--border)!important}
}

/* ── ABOUT: better mobile layout ── */
@media(max-width:900px){
  .about-section{padding:5rem 0}
  .about-grid{grid-template-columns:1fr;gap:2.5rem}
  .about-left h2{font-size:clamp(1.9rem,7vw,3rem)}
  .count-block{grid-template-columns:repeat(3,1fr);gap:.5rem}
}
@media(max-width:480px){
  .about-section{padding:4rem 0}
  .count-block{grid-template-columns:1fr 1fr;gap:.5rem}
  .count-num{font-size:2rem}
  .badges-row{gap:.4rem}
  .badge-pill{font-size:.7rem;padding:.4rem .8rem;gap:.4rem}
}

/* ── SERVICES SECTION: clean mobile (rules defined above in main breakpoints) ── */
@media(max-width:480px){
  .svc-card{padding:1.6rem 1.2rem}
  .svc-card h3{font-size:1.2rem}
  .svc-num{font-size:.72rem}
  .svc-explore{opacity:1!important}
  .svc-arrow{opacity:1!important;transform:none!important}
}

/* ── TEAM: responsive grid ── */
@media(max-width:900px){
  .team-section{padding:5rem 0}
  .team-grid{grid-template-columns:repeat(2,1fr);gap:1rem}
}
@media(max-width:480px){
  .team-grid{grid-template-columns:1fr 1fr;gap:.8rem}
  .team-name{font-size:1rem}
  .team-role{font-size:.68rem}
  .team-avatar-initials{font-size:3rem}
}
@media(max-width:360px){
  .team-grid{grid-template-columns:1fr}
}

/* ── TESTIMONIALS ── */
@media(max-width:900px){
  .testimonials-section{padding:5rem 0}
  .test-bento{grid-template-columns:1fr;gap:1rem}
  .test-card-main{padding:2rem 1.6rem}
  .test-quote{font-size:1.1rem;line-height:1.6}
}

/* ── PRICING: single col on mobile ── */
@media(max-width:900px){
  .pricing-section{padding:5rem 0}
  .pricing-grid{grid-template-columns:1fr;gap:1rem;max-width:420px;margin-inline:auto}
  .price-card.featured{order:-1;margin:0}
}
@media(max-width:480px){
  .pricing-grid{max-width:none}
  .price-card{padding:1.8rem 1.4rem}
  .price-val{font-size:2.6rem}
}

/* ── REVIEWS ── */
@media(max-width:900px){
  .reviews-section{padding:5rem 0}
  #reviews-grid{grid-template-columns:1fr;gap:1rem}
  .review-form-grid{grid-template-columns:1fr}
  .rv-field.full{grid-column:span 1}
  .rv-submit-row{grid-column:span 1;flex-direction:column;align-items:stretch}
  .rv-submit-row .btn-primary{width:100%;justify-content:center}
  .leave-review-wrap{padding:2rem 1.4rem}
}

/* ── CONTACT FORM ── */
@media(max-width:900px){
  .contact-section{padding:5rem 0}
  .contact-grid{grid-template-columns:1fr;gap:2.5rem}
  .cf-row{grid-template-columns:1fr}
  .cf-group.full{grid-column:span 1}
  .contact-form-wrap{padding:2rem 1.4rem;border-radius:14px}
}
@media(max-width:480px){
  .contact-form-wrap{padding:1.6rem 1.2rem}
  .contact-left h2{font-size:clamp(1.8rem,8vw,2.5rem)}
  .contact-items{gap:.9rem}
}

/* ── FAQ ── */
@media(max-width:900px){
  .faq-section{padding:5rem 0}
  .faq-grid{grid-template-columns:1fr;gap:0}
  .faq-left{display:none}
  .faq-q{font-size:.9rem;padding:1rem 0}
  .faq-a{font-size:.84rem;padding-bottom:1rem}
}

/* ── FOOTER ── */
@media(max-width:900px){
  .footer-top{grid-template-columns:1fr 1fr;padding:3rem 1.4rem 2.5rem;gap:2rem}
  .footer-brand{grid-column:span 2}
  .footer-bottom{flex-direction:column;text-align:center;padding:1.2rem 1.4rem;gap:.8rem}
  footer .footer-social{width:34px;height:34px}
}
@media(max-width:560px){
  .footer-top{grid-template-columns:1fr;gap:1.8rem}
  .footer-brand{grid-column:span 1}
  .footer-socials{justify-content:flex-start}
}

/* ── CTA SECTION ── */
@media(max-width:900px){
  .cta-section{padding:5rem 1.4rem}
  .cta-section h2{font-size:clamp(1.9rem,7vw,3rem)}
  .cta-btns{flex-direction:column;align-items:stretch;gap:.8rem;max-width:320px;margin:0 auto}
  .cta-btns a{width:100%;justify-content:center;text-align:center}
  .cta-marquee{margin-top:2rem}
}

/* ── SECTION HEADERS ── */
@media(max-width:900px){
  .section-header{flex-direction:column;align-items:flex-start;gap:1rem;margin-bottom:3rem}
  .section-note{text-align:left;max-width:none;font-size:.82rem}
  .section-title{font-size:clamp(1.7rem,6vw,2.6rem)}
  .section-tag{font-size:.62rem;letter-spacing:.18em}
}

/* ── AWARDS ── */
@media(max-width:900px){
  .awards-section{padding:5rem 0}
  .award-desc{display:none}
  .award-name{font-size:.9rem}
  .award-year{font-size:.82rem}
}

/* ── MODAL ── */
@media(max-width:600px){
  .modal-backdrop{align-items:flex-end;padding:0}
  .modal-box{
    border-radius:20px 20px 0 0;
    max-height:92dvh;
    border-left:none;border-right:none;border-bottom:none;
  }
  .modal-body{padding:1.4rem 1.2rem}
  .modal-info-grid{grid-template-columns:1fr 1fr}
  .modal-box h2{font-size:1.7rem}
  .modal-cta-row{flex-direction:column;gap:.7rem}
  .modal-cta-row a,.modal-cta-row button{width:100%;justify-content:center}
}

/* ── SERVICE OVERLAYS (sp-overlay) ── */
@media(max-width:900px){
  .sp-overlay{overflow-y:auto;-webkit-overflow-scrolling:touch}
  .sp-content-grid{grid-template-columns:1fr;gap:2.5rem}
  .sp-right-card{position:static}
  .sp-hero{padding:5rem 1.4rem 3rem;min-height:45vh}
  .sp-hero h1{font-size:clamp(2rem,8vw,4rem)}
  .sp-hero p{font-size:.9rem}
  .sp-nav{padding:.9rem 1.4rem}
  .sp-body{padding:3.5rem 0}
  .sp-steps-grid{grid-template-columns:repeat(2,1fr)}
  .sp-steps-grid::before{display:none}
  .sp-faq-section{padding:3.5rem 0}
  .sp-steps-section{padding:4rem 0}
}
@media(max-width:480px){
  .sp-hero{padding:4.5rem 1.2rem 2.5rem;min-height:40vh}
  .sp-hero h1{font-size:clamp(1.9rem,10vw,3rem)}
  .sp-steps-grid{grid-template-columns:1fr}
  .sp-hero-ctas{flex-direction:column;gap:.7rem}
  .sp-hero-ctas .btn-primary,.sp-hero-ctas .btn-secondary{width:100%;justify-content:center}
  .sp-feat{padding:1.2rem}
  .sp-feat-text h4{font-size:.92rem}
  .sp-faq-q{font-size:.9rem;padding:1rem 0}
}

/* ── BUTTONS on mobile ── */
@media(max-width:480px){
  .hero-actions{flex-direction:column;align-items:stretch;gap:.7rem}
  .hero-actions .btn-primary,.hero-actions .btn-secondary,.hero-actions .btn-text{
    width:100%;justify-content:center;text-align:center;
  }
  .btn-primary{font-size:.88rem;padding:.9rem 2rem}
  .cf-submit{width:100%;justify-content:center}
}

/* ── LOGOS STRIP ── */
@media(max-width:600px){
  .logos-section{padding:1.5rem 0}
  .logos-label{font-size:.68rem;padding:0 1.2rem;margin-bottom:.8rem}
}

/* ── MARQUEE ── */
@media(max-width:600px){
  .marquee-section{padding:.7rem 0}
  .marquee-item{font-size:.72rem;gap:.7rem}
}

/* ── WHATSAPP FLOAT ── */
@media(max-width:600px){
  .whatsapp-float{bottom:1.2rem;right:1.2rem;width:52px;height:52px}
  .whatsapp-float svg{width:26px;height:26px}
  .wa-tooltip{display:none}
}

/* ── PROJECT CARDS ── */
@media(max-width:900px){
  #projects-grid{grid-template-columns:1fr!important;gap:1rem}
  .proj-mock{aspect-ratio:16/9}
  .proj-overlay{opacity:1;background:linear-gradient(to top,rgba(10,10,10,.92) 0%,rgba(10,10,10,.1) 55%,transparent 100%)}
  .proj-open-btn{opacity:1;transform:none}
}
@media(max-width:480px){
  .proj-overlay h4{font-size:1rem}
  .proj-tag{font-size:.68rem}
}

/* ── GENERAL CONTAINER ── */
@media(max-width:900px){.container{padding:0 1.4rem}}
@media(max-width:480px){.container{padding:0 1.2rem}}

/* ── Touch cursor fix ── */
@media(hover:none),(pointer:coarse){
  .mm-link,.mm-cat-toggle,.mm-cat-btn,.mm-sub-link,.mm-close,
  .mm-accordion-toggle,.mm-accordion-btn,
  .btn-primary,.btn-secondary,.btn-text,.btn-price,
  .hamburger,.svc-card,.svc-explore,.proj-card,
  .faq-q,.sp-faq-q,.star-picker button,.theme-toggle,.theme-toggle-mobile,
  .team-social,.footer-social,.adm-btn,.adm-nav-item{cursor:pointer!important}
}

/* ── Remove glow animation on mobile menu (now handled with mm-* classes) ── */
@media(max-width:900px){
  .mm-link.glow-active{animation:menuGlow .3s ease forwards}
}

/* ═══════════════════════════════════════════════════════════
   GLOBAL UTILITIES + FINAL FIXES
═══════════════════════════════════════════════════════════ */

/* Page wrap: accounts for fixed nav (56-68px) */
.page-wrap{padding-top:5rem}
@media(max-width:900px){.page-wrap{padding-top:4rem}}

/* Sub-page and servizi-page: ensure nav clearance on mobile */
@media(max-width:900px){
  .sub-page,.servizi-page{padding-top:4.5rem!important}
  .sub-hero{padding:5rem 0 3.5rem!important}
  .sub-hero h1{font-size:clamp(2rem,8vw,3.5rem)!important}
  .sub-hero p{font-size:.9rem}
  .sub-services-grid{grid-template-columns:1fr!important;margin-top:3rem!important}
  .sub-svc-card{padding:2rem 1.6rem!important}
}
@media(max-width:480px){
  .sub-page,.servizi-page{padding-top:3.5rem!important}
  .sub-hero{padding:4rem 0 3rem!important}
}

/* section-tag: keep readable on mobile */
@media(max-width:480px){
  .section-tag{font-size:.6rem;letter-spacing:.15em;padding:.35rem .8rem}
}

/* Servizi hub grid */
@media(max-width:900px){
  .servizi-grid{grid-template-columns:repeat(2,1fr)!important;gap:1rem!important}
  .servizi-hero{padding:2.5rem 0 2rem!important}
  .servizi-hero h1{font-size:clamp(1.9rem,7vw,3rem)!important}
}
@media(max-width:500px){
  .servizi-grid{grid-template-columns:1fr!important}
  .servizi-card{padding:2rem 1.5rem!important}
}

/* Fix hero min-height for short mobile screens */
@media(max-width:900px) and (max-height:700px){
  .hero{min-height:auto;padding:calc(56px + 2.5rem) 1.4rem 3rem}
}

/* Remove horizontal scroll caused by marquee/animations */
.marquee-section,.logos-section{overflow:hidden;max-width:100%}

/* Improve text readability on mobile */
@media(max-width:480px){
  p{font-size:.88rem;line-height:1.75}
  .sp-feat-text p{font-size:.83rem}
}

/* Instagram strip responsive */
@media(max-width:600px){
  .instagram-strip{padding:3rem 1.2rem!important;text-align:center}
  .instagram-strip h3{font-size:1.2rem!important}
}

/* Make all form inputs comfortable on mobile */
@media(max-width:600px){
  input,textarea,select{font-size:16px!important} /* prevent iOS zoom */
  .cf-input,.cf-textarea,.rv-input,.rv-textarea{font-size:16px!important}
}
/* ═══════════════════════════════════════════════════════════
   DESKTOP MEGA-MENU — Services dropdown
   Appears on hover/focus of .nav-servizi-trigger
═══════════════════════════════════════════════════════════ */

/* Nav item that has a dropdown */
.nav-links .has-dropdown {
  position: static;
}

.nav-servizi-trigger {
  display: flex;
  align-items: center;
  gap: .35rem;
  font-size: .82rem;
  font-weight: 500;
  color: rgba(255,255,255,.5);
  transition: color .2s;
  cursor: none;
  background: none;
  border: none;
  font-family: 'Outfit', sans-serif;
  letter-spacing: .04em;
  position: relative;
  padding: 0;
}

.nav-servizi-trigger::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0; right: 0;
  height: 1px;
  background: var(--accent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .28s;
}

.nav-servizi-trigger:hover,
.nav-servizi-trigger.active {
  color: #fff;
}

.nav-servizi-trigger:hover::after,
.nav-servizi-trigger.active::after {
  transform: scaleX(1);
}

.nav-dd-chevron {
  width: 12px;
  height: 12px;
  transition: transform .28s cubic-bezier(.16,1,.3,1);
  opacity: .45;
}

.nav-servizi-trigger[aria-expanded="true"] .nav-dd-chevron,
.has-dropdown:hover .nav-dd-chevron {
  transform: rotate(180deg);
  opacity: .8;
}

/* Mega-menu panel */
.mega-menu {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 490;
  background: rgba(10,10,10,.97);
  backdrop-filter: blur(32px);
  -webkit-backdrop-filter: blur(32px);
  border-bottom: 1px solid rgba(255,255,255,.06);
  padding-top: 80px; /* nav height */
  opacity: 0;
  pointer-events: none;
  transform: translateY(-8px);
  transition: opacity .3s ease, transform .3s cubic-bezier(.16,1,.3,1);
  will-change: opacity, transform;
}

.mega-menu.open {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.mega-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 2.5rem 4rem 3.5rem;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  gap: 2rem;
}

/* First column: overview link */
.mega-overview {
  padding-right: 2rem;
  border-right: 1px solid rgba(255,255,255,.06);
}

.mega-overview-label {
  font-size: .62rem;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(255,255,255,.25);
  margin-bottom: 1.2rem;
  display: flex;
  align-items: center;
  gap: .7rem;
}

.mega-overview-label::before {
  content: '';
  display: block;
  width: 20px;
  height: 1px;
  background: rgba(255,255,255,.2);
}

.mega-overview-title {
  font-family: 'Fraunces', serif;
  font-size: 1.5rem;
  font-style: italic;
  color: var(--white);
  line-height: 1.25;
  margin-bottom: 1rem;
}

.mega-overview-desc {
  font-size: .8rem;
  color: rgba(255,255,255,.38);
  line-height: 1.75;
  margin-bottom: 1.8rem;
}

.mega-overview-link {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--accent);
  border: 1px solid rgba(224,92,16,.3);
  padding: .5rem 1.1rem;
  border-radius: 8px;
  transition: all .2s;
}

.mega-overview-link:hover {
  background: rgba(224,92,16,.1);
  border-color: var(--accent);
}

/* Service columns */
.mega-col {}

.mega-col-header {
  display: flex;
  align-items: center;
  gap: .7rem;
  font-size: .66rem;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(255,255,255,.35);
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(255,255,255,.06);
}

.mega-col-icon {
  width: 24px;
  height: 24px;
  border-radius: 6px;
  background: rgba(224,92,16,.12);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--accent);
}

.mega-col-icon svg {
  width: 13px;
  height: 13px;
}

.mega-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: .58rem 0;
  font-size: .83rem;
  color: rgba(255,255,255,.48);
  border-bottom: 1px solid rgba(255,255,255,.03);
  transition: color .18s, padding-left .18s;
  gap: .5rem;
}

.mega-link:last-child {
  border-bottom: none;
}

.mega-link:hover {
  color: var(--white);
  padding-left: .4rem;
}

.mega-link-arrow {
  opacity: 0;
  transition: opacity .18s, transform .18s;
  flex-shrink: 0;
}

.mega-link:hover .mega-link-arrow {
  opacity: 1;
  transform: translate(2px, -2px);
}

/* Backdrop overlay when mega-menu is open */
.mega-backdrop {
  position: fixed;
  inset: 0;
  z-index: 489;
  background: rgba(0,0,0,.4);
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s;
}

.mega-backdrop.open {
  opacity: 1;
  pointer-events: auto;
}

/* Light mode mega-menu */
body.light .mega-menu {
  background: rgba(240,237,230,.97);
  border-color: rgba(0,0,0,.08);
}

body.light .mega-overview {
  border-color: rgba(0,0,0,.07);
}

body.light .mega-overview-title { color: #1a1a1a; }
body.light .mega-overview-desc  { color: rgba(0,0,0,.45); }
body.light .mega-col-header { color: rgba(0,0,0,.4); border-color: rgba(0,0,0,.07); }
body.light .mega-col-header .mega-col-icon { background: rgba(224,92,16,.1); }
body.light .mega-link { color: rgba(0,0,0,.45); border-color: rgba(0,0,0,.04); }
body.light .mega-link:hover { color: #1a1a1a; }
body.light .mega-backdrop { background: rgba(0,0,0,.25); }

/* Hide mega-menu on mobile — handled by mobile-menu */
@media (max-width: 900px) {
  .mega-menu, .mega-backdrop { display: none !important; }
  .has-dropdown .nav-servizi-trigger { display: none; }
}

/* ═══════════════════════════════════════════════════════════
   TEAM CARD — DB Photo support improvements
═══════════════════════════════════════════════════════════ */

/* When team member has a real photo, display it properly */
.team-img img.team-photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  transition: transform .6s cubic-bezier(.16,1,.3,1);
}

.team-card:hover .team-img img.team-photo {
  transform: scale(1.06);
}

/* Team description (optional bio) */
.team-description {
  font-size: .8rem;
  color: rgba(255,255,255,.38);
  line-height: 1.65;
  margin-bottom: .9rem;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-clamp: 3;
  overflow: hidden;
}

.team-card-glow {
  position: absolute;
  top: -40px;
  left: 50%;
  transform: translateX(-50%);
  width: 140px;
  height: 80px;
  background: radial-gradient(ellipse, rgba(224,92,16,.15), transparent 70%);
  pointer-events: none;
  opacity: 0;
  transition: opacity .4s;
}

.team-card:hover .team-card-glow { opacity: 1; }

/* Team section loading state */
.team-grid .team-skeleton {
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.03);
  animation: pulse 1.5s ease infinite;
}

.team-skeleton .skel-img {
  width: 100%;
  aspect-ratio: 3/4;
  background: rgba(255,255,255,.05);
}

.team-skeleton .skel-info {
  padding: 1.4rem 1.5rem;
  display: flex;
  flex-direction: column;
  gap: .6rem;
}

.skel-line {
  height: 10px;
  border-radius: 5px;
  background: rgba(255,255,255,.06);
}

@keyframes pulse {
  0%, 100% { opacity: .7; }
  50% { opacity: 1; }
}

/* ═══════════════════════════════════════════════════════════
   STANDARDIZED RESPONSIVE BREAKPOINTS v5
   --bp-xl: 1280px  (large desktop)
   --bp-lg: 1024px  (tablet landscape / small laptop)
   --bp-md: 900px   (tablet portrait — nav collapse)
   --bp-sm: 640px   (large phone)
   --bp-xs: 480px   (small phone)
   --bp-2xs: 380px  (tiny phone)
═══════════════════════════════════════════════════════════ */

/* XL: Large desktop adjustments */
@media (min-width: 1280px) {
  .mega-inner { padding: 3rem 4rem 4rem; }
}

/* Team grid: better at intermediate widths */
@media (max-width: 1024px) and (min-width: 901px) {
  .team-grid { grid-template-columns: repeat(2, 1fr); }
  .about-grid { gap: 5rem; }
}

/* Improved team grid on mobile */
@media (max-width: 640px) {
  .team-grid { grid-template-columns: repeat(2, 1fr); gap: .8rem; }
  .team-info { padding: 1rem 1.1rem; }
  .team-name { font-size: 1rem; }
  .team-role { font-size: .68rem; }
  .team-description { font-size: .75rem; -webkit-line-clamp: 2; }
}

@media (max-width: 380px) {
  .team-grid { grid-template-columns: 1fr; }
}

/* Admin improvements for mobile */
@media (max-width: 640px) {
  .adm-form-grid { grid-template-columns: 1fr; }
  .adm-form-grid .adm-field.full { grid-column: span 1; }
  .adm-stats { grid-template-columns: repeat(2, 1fr); }
}

/* ═══════════════════════════════════════════════════════════
   ADMIN — Team Members + Services forms
   (CSS for new admin sections)
═══════════════════════════════════════════════════════════ */

/* Social links row in team form */
.adm-social-row {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: .8rem;
}

@media (max-width: 640px) {
  .adm-social-row { grid-template-columns: 1fr; }
}

/* Service toggle switch */
.adm-toggle-wrap {
  display: flex;
  align-items: center;
  gap: .8rem;
  padding: .5rem 0;
}

.adm-toggle {
  position: relative;
  width: 40px;
  height: 22px;
  flex-shrink: 0;
}

.adm-toggle input {
  opacity: 0;
  width: 0;
  height: 0;
}

.adm-toggle-slider {
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,.12);
  border-radius: 22px;
  cursor: pointer;
  transition: background .2s;
}

.adm-toggle-slider::before {
  content: '';
  position: absolute;
  height: 16px;
  width: 16px;
  left: 3px;
  bottom: 3px;
  background: white;
  border-radius: 50%;
  transition: transform .2s;
}

.adm-toggle input:checked + .adm-toggle-slider {
  background: var(--accent);
}

.adm-toggle input:checked + .adm-toggle-slider::before {
  transform: translateX(18px);
}

.adm-toggle-label {
  font-size: .82rem;
  color: rgba(255,255,255,.5);
}

/* Chip variants */
.adm-chip { display:inline-block; font-size:.66rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; padding:.2rem .7rem; border-radius:20px; }
.chip-blue   { background:rgba(59,130,246,.15); color:rgba(147,197,253,1); border:1px solid rgba(59,130,246,.25); }
.chip-green  { background:rgba(34,197,94,.12);  color:rgba(134,239,172,1); border:1px solid rgba(34,197,94,.25); }
.chip-orange { background:rgba(251,146,60,.12); color:rgba(253,186,116,1); border:1px solid rgba(251,146,60,.25); }
.chip-red    { background:rgba(239,68,68,.12);  color:rgba(252,165,165,1); border:1px solid rgba(239,68,68,.25); }

/* Footer meta links */
.footer-meta-link {
  font-size: .72rem;
  color: rgba(255,255,255,.18);
  transition: color .2s;
}

.footer-meta-link:hover { color: rgba(255,255,255,.5); }

/* Instagram strip */
.instagram-strip {
  border-top: 1px solid var(--border);
  padding: 1.5rem 4rem;
  display: flex;
  justify-content: center;
  background: rgba(255,255,255,.01);
}

.instagram-link-btn {
  display: inline-flex;
  align-items: center;
  gap: .8rem;
  font-size: .78rem;
  font-weight: 500;
  color: rgba(255,255,255,.35);
  border: 1px solid var(--border);
  padding: .6rem 1.4rem;
  border-radius: 30px;
  transition: all .25s;
}

.instagram-link-btn:hover {
  border-color: rgba(224,92,16,.4);
  color: var(--white);
  background: rgba(224,92,16,.05);
}

@media (max-width: 640px) {
  .instagram-strip { padding: 1.2rem 1.2rem; }
}

/* WhatsApp float tooltip */
.wa-tooltip {
  position: absolute;
  right: 100%;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(10,10,10,.9);
  border: 1px solid var(--border);
  color: rgba(255,255,255,.7);
  font-size: .72rem;
  padding: .4rem .9rem;
  border-radius: 8px;
  white-space: nowrap;
  margin-right: .6rem;
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s;
}

.whatsapp-float:hover .wa-tooltip { opacity: 1; }

/* ═══════════════════════════════════════════════════════════
   LIGHT MODE — Complete theme overrides
═══════════════════════════════════════════════════════════ */

/* (Keep existing light mode styles, just add missing ones) */
body.light .team-card {
  background: rgba(0,0,0,.04);
  border-color: rgba(0,0,0,.08);
}

body.light .team-card:hover { border-color: rgba(224,92,16,.35); }
body.light .team-name { color: #1a1a1a; }
body.light .team-role { color: rgba(0,0,0,.4); }
body.light .team-description { color: rgba(0,0,0,.5); }
body.light .team-social { border-color: rgba(0,0,0,.12); color: rgba(0,0,0,.3); }

body.light .mega-overview-label { color: rgba(0,0,0,.35); }
body.light .mega-overview-link { color: var(--accent); }

/* ═══════════════════════════════════════════════════════════
   TEAM SKELETON — Loading placeholders
   ═══════════════════════════════════════════════════════════ */
.team-skeleton {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.07);
  border-radius: var(--radius-card, 16px);
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.skel-img {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: rgba(255,255,255,.07);
  animation: skelPulse 1.4s ease-in-out infinite;
}
.skel-info { display: flex; flex-direction: column; gap: .5rem; }
.skel-line {
  height: 12px;
  border-radius: 6px;
  background: rgba(255,255,255,.07);
  animation: skelPulse 1.4s ease-in-out infinite;
}
@keyframes skelPulse {
  0%,100% { opacity: .5; }
  50% { opacity: 1; }
}

/* Admin upload label */
.adm-upload-label {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .5rem 1rem;
  border: 1px dashed rgba(255,255,255,.2);
  border-radius: 8px;
  font-size: .82rem;
  cursor: pointer;
  color: rgba(255,255,255,.6);
  transition: border-color .2s, color .2s;
}
.adm-upload-label:hover {
  border-color: var(--accent);
  color: var(--accent);
}

/* ═══════════════════════════════════════════════════════════
/* ═══════════════════════════════════════════════════════════
   PAGINE INTERNE — Struttura coerente
═══════════════════════════════════════════════════════════ */

/* Wrapper per le pagine di dettaglio servizio */
.service-page-wrap {
  padding-top: 4.5rem;
}

/* Breadcrumb migliorato */
.breadcrumb {
  display: flex;
  align-items: center;
  gap: .4rem;
  font-size: .76rem;
  color: rgba(255,255,255,.3);
  flex-wrap: wrap;
  margin-bottom: 1.8rem;
}
.breadcrumb a {
  color: rgba(255,255,255,.35);
  text-decoration: none;
  transition: color .2s;
}
.breadcrumb a:hover { color: var(--accent); }
.breadcrumb-sep { color: rgba(255,255,255,.15); }
body.light .breadcrumb,
body.light .breadcrumb a { color: rgba(0,0,0,.3); }

/* Pagina hero per subpages */
.sub-page-hero {
  padding: 7rem 0 4rem;
  position: relative;
  overflow: hidden;
}
.sub-page-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 60% 55% at 50% 40%, rgba(224,92,16,.1), transparent 70%);
  pointer-events: none;
}

/* CTA Banner — interna alle pagine */
.cta-banner {
  background: linear-gradient(135deg, rgba(224,92,16,.12), rgba(224,92,16,.04));
  border: 1px solid rgba(224,92,16,.2);
  border-radius: 20px;
  padding: 3rem 3rem;
  text-align: center;
  margin: 4rem 0;
}
.cta-banner h3 {
  font-family: 'Fraunces', serif;
  font-size: clamp(1.5rem, 4vw, 2.2rem);
  margin-bottom: 1rem;
}
.cta-banner p {
  color: rgba(255,255,255,.55);
  margin-bottom: 1.8rem;
  max-width: 48ch;
  margin-left: auto;
  margin-right: auto;
}
.cta-banner-btns {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
}
body.light .cta-banner { background: rgba(224,92,16,.06); }
body.light .cta-banner p { color: rgba(0,0,0,.5); }

/* Related services strip */
.related-services {
  padding: 4rem 0;
  border-top: 1px solid var(--border);
}
.related-services h3 {
  font-family: 'Fraunces', serif;
  font-size: 1.4rem;
  margin-bottom: 2rem;
  color: rgba(255,255,255,.7);
}
.related-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}
.related-card {
  display: block;
  padding: 1.5rem;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: rgba(255,255,255,.02);
  transition: all .3s;
  color: inherit;
  text-decoration: none;
}
.related-card:hover {
  background: rgba(224,92,16,.06);
  border-color: rgba(224,92,16,.25);
  transform: translateY(-3px);
}
.related-card h4 {
  font-size: .95rem;
  font-weight: 600;
  margin-bottom: .4rem;
  color: var(--white);
}
.related-card p {
  font-size: .8rem;
  color: rgba(255,255,255,.4);
  line-height: 1.6;
}
.related-card-arrow {
  font-size: .75rem;
  color: var(--accent);
  margin-top: .75rem;
  display: block;
}
body.light .related-card { background: rgba(255,255,255,.5); border-color: rgba(0,0,0,.08); }
body.light .related-card h4 { color: #1a1a1a; }
body.light .related-card p { color: rgba(0,0,0,.45); }

@media(max-width:700px){
  .related-grid { grid-template-columns: 1fr 1fr; }
  .cta-banner { padding: 2.5rem 1.5rem; }
}
@media(max-width:480px){
  .related-grid { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════
   SERVICE OVERLAY — fix visualizzazione su pagine sub
═══════════════════════════════════════════════════════════ */
.sp-overlay.page-mode {
  display: block !important;
  position: relative !important;
  z-index: auto !important;
  overflow: visible !important;
  background: transparent !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
}
.sp-overlay.page-mode .sp-nav { display: none !important; }
.sp-overlay.page-mode .sp-hero { min-height: 55vh; }

/* ═══════════════════════════════════════════════════════════
   SP HERO — Fix mobile
═══════════════════════════════════════════════════════════ */
@media(max-width:600px){
  .sp-hero {
    padding: 5rem 1.2rem 3.5rem;
  }
  .sp-hero h1 { font-size: clamp(2rem, 11vw, 3.5rem); }
  .sp-hero-ctas { flex-direction: column; gap: .8rem; }
  .sp-hero-ctas a, .sp-hero-ctas button {
    width: 100%;
    justify-content: center;
  }
}

/* ═══════════════════════════════════════════════════════════
   MEGA MENU — Fix sovrascrittura display su mobile
═══════════════════════════════════════════════════════════ */
@media(max-width:900px){
  .mega-menu, .mega-backdrop { display: none !important; }
  .nav-servizi-trigger { display: none; }
}

/* ═══════════════════════════════════════════════════════════
   NAV MOBILE — hamburger sempre visibile al posto giusto
═══════════════════════════════════════════════════════════ */
@media(max-width:900px){
  .nav-right { display: flex !important; align-items: center; gap: .5rem; }
  .hamburger { display: flex !important; }
}

/* ═══════════════════════════════════════════════════════════
   MOBILE MENU v2 — completo restyling
═══════════════════════════════════════════════════════════ */
/* ═══════════════════════════════════════════════════════════
   SERVICE CATEGORY PAGE — struttura standard
═══════════════════════════════════════════════════════════ */
.svc-page-wrap{padding-top:4.5rem}

/* Category hero (no price) */
.cat-hero{padding:7rem 0 5rem;position:relative;overflow:hidden}
.cat-hero::before{content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse 55% 50% at 50% 40%,
    rgba(224,92,16,.1),transparent 70%);pointer-events:none}
.cat-hero .container{position:relative;z-index:1}
.cat-tag{display:inline-flex;align-items:center;gap:.6rem;
  font-size:.72rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--accent);margin-bottom:1.5rem}
.cat-hero h1{font-family:'Fraunces',serif;
  font-size:clamp(2.5rem,7vw,4.5rem);letter-spacing:-.03em;
  line-height:1.05;margin-bottom:1.2rem}
.cat-hero p{font-size:1.05rem;color:rgba(255,255,255,.5);
  max-width:54ch;line-height:1.75;margin-bottom:2rem}
.cat-hero-ctas{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
body.light .cat-hero p{color:rgba(0,0,0,.5)}

/* What's included section */
.cat-includes{padding:5rem 0;border-top:1px solid var(--border)}
.cat-includes-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:5rem;
  align-items:start}
.cat-includes h2{font-family:'Fraunces',serif;font-size:2rem;margin-bottom:1.2rem}
.cat-includes p{color:rgba(255,255,255,.5);line-height:1.75;margin-bottom:1.5rem}
.cat-includes-list{display:flex;flex-direction:column;gap:.75rem}
.cat-include-item{display:flex;align-items:flex-start;gap:1rem;
  padding:1.2rem 1.4rem;border:1px solid var(--border);border-radius:12px;
  background:rgba(255,255,255,.02);transition:all .25s}
.cat-include-item:hover{background:rgba(224,92,16,.05);
  border-color:rgba(224,92,16,.2)}
.cat-inc-ico{width:36px;height:36px;border-radius:8px;
  background:rgba(224,92,16,.12);color:var(--accent);
  display:flex;align-items:center;justify-content:center;flex-shrink:0}
.cat-inc-ico svg{width:18px;height:18px}
.cat-inc-text h4{font-size:.92rem;font-weight:600;margin-bottom:.3rem}
.cat-inc-text p{font-size:.83rem;color:rgba(255,255,255,.45);line-height:1.6;margin:0}
body.light .cat-includes p{color:rgba(0,0,0,.5)}
body.light .cat-include-item{background:rgba(255,255,255,.5);border-color:rgba(0,0,0,.08)}
body.light .cat-inc-text p{color:rgba(0,0,0,.45)}

/* Sub-services grid */
.cat-subs{padding:5rem 0;border-top:1px solid var(--border)}
.cat-subs-header{margin-bottom:3rem}
.cat-subs-header h2{font-family:'Fraunces',serif;font-size:2rem;margin-bottom:.6rem}
.cat-subs-header p{color:rgba(255,255,255,.45);font-size:.95rem}
body.light .cat-subs-header p{color:rgba(0,0,0,.45)}
.sub-cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.sub-card{display:block;padding:2rem 1.8rem;border:1px solid var(--border);
  border-radius:16px;background:rgba(255,255,255,.02);
  transition:all .3s cubic-bezier(.16,1,.3,1);
  color:inherit;text-decoration:none;position:relative;overflow:hidden}
.sub-card::before{content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(224,92,16,.08),transparent 60%);
  opacity:0;transition:opacity .3s}
.sub-card:hover{transform:translateY(-5px);
  border-color:rgba(224,92,16,.3);
  box-shadow:0 20px 50px rgba(0,0,0,.25)}
.sub-card:hover::before{opacity:1}
.sub-card-num{font-size:.68rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:rgba(255,255,255,.22);margin-bottom:1rem}
.sub-card h3{font-family:'Fraunces',serif;font-size:1.45rem;
  margin-bottom:.6rem;color:var(--white)}
.sub-card p{font-size:.84rem;color:rgba(255,255,255,.42);
  line-height:1.7;margin-bottom:1.5rem}
.sub-card-price{font-size:1.6rem;font-weight:700;color:var(--accent);
  margin-bottom:1.2rem;font-family:'Fraunces',serif}
.sub-card-price span{font-size:.9rem;font-weight:400;
  color:rgba(255,255,255,.35);font-family:'Outfit',sans-serif}
.sub-card-features{display:flex;flex-direction:column;gap:.4rem;
  margin-bottom:1.5rem}
.sub-card-feat{font-size:.8rem;color:rgba(255,255,255,.45);
  display:flex;align-items:center;gap:.5rem}
.sub-card-feat::before{content:'✓';color:var(--accent);
  font-weight:700;flex-shrink:0}
.sub-card-cta{display:inline-flex;align-items:center;gap:.4rem;
  font-size:.8rem;font-weight:600;color:var(--accent);
  letter-spacing:.04em;transition:gap .2s}
.sub-card:hover .sub-card-cta{gap:.7rem}
.sub-card-badge{position:absolute;top:1.2rem;right:1.2rem;
  font-size:.65rem;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;background:var(--accent);color:#fff;
  padding:.3rem .7rem;border-radius:20px}
body.light .sub-card{background:rgba(255,255,255,.6);border-color:rgba(0,0,0,.09)}
body.light .sub-card h3{color:#1a1a1a}
body.light .sub-card p{color:rgba(0,0,0,.45)}
body.light .sub-card-feat{color:rgba(0,0,0,.45)}
body.light .sub-card-num{color:rgba(0,0,0,.18)}

@media(max-width:900px){
  .sub-cards-grid{grid-template-columns:1fr 1fr}
  .cat-includes-grid{grid-template-columns:1fr;gap:3rem}
}
@media(max-width:580px){
  .sub-cards-grid{grid-template-columns:1fr}
  .cat-hero{padding:5.5rem 0 4rem}
}

/* ═══════════════════════════════════════════════════════════
   SUB-SERVICE PAGE — struttura standard
═══════════════════════════════════════════════════════════ */
.sub-page-hero{padding:6.5rem 0 4.5rem;position:relative;overflow:hidden}
.sub-page-hero::before{content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse 60% 55% at 45% 40%,
    rgba(224,92,16,.14),transparent 70%);pointer-events:none}
.sub-page-hero .container{position:relative;z-index:1}

/* breadcrumb */
.bc{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;
  font-size:.75rem;color:rgba(255,255,255,.28);margin-bottom:2rem}
.bc a{color:rgba(255,255,255,.32);text-decoration:none;transition:color .2s}
.bc a:hover{color:var(--accent)}
.bc-sep{color:rgba(255,255,255,.15)}
body.light .bc,.bc a{color:rgba(0,0,0,.3)}

.sub-page-tag{display:inline-block;font-size:.7rem;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;
  color:var(--accent);margin-bottom:1rem;
  padding:.35rem .8rem;border:1px solid rgba(224,92,16,.3);
  border-radius:20px;background:rgba(224,92,16,.06)}
.sub-page-hero h1{font-family:'Fraunces',serif;
  font-size:clamp(2.2rem,6vw,4rem);letter-spacing:-.03em;
  line-height:1.05;margin-bottom:1rem}
.sub-page-hero .hero-sub{font-size:1rem;color:rgba(255,255,255,.48);
  max-width:52ch;line-height:1.75;margin-bottom:2rem}
.sub-page-ctas{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
body.light .sub-page-hero .hero-sub{color:rgba(0,0,0,.48)}

/* content grid */
.sub-content-grid{display:grid;grid-template-columns:1fr 360px;
  gap:4rem;align-items:start;padding:5rem 0}
.sub-body h2{font-family:'Fraunces',serif;font-size:1.8rem;
  margin-bottom:1rem}
.sub-body p{color:rgba(255,255,255,.5);line-height:1.75;
  margin-bottom:1.2rem}
body.light .sub-body p{color:rgba(0,0,0,.5)}

/* features */
.sub-feat-list{display:flex;flex-direction:column;gap:1rem;margin-top:2rem}
.sub-feat{display:flex;align-items:flex-start;gap:1rem;padding:1.2rem;
  border:1px solid var(--border);border-radius:12px;
  background:rgba(255,255,255,.02);transition:all .25s}
.sub-feat:hover{background:rgba(224,92,16,.04);border-color:rgba(224,92,16,.18)}
.sub-feat-ico{width:38px;height:38px;flex-shrink:0;border-radius:8px;
  background:rgba(224,92,16,.1);color:var(--accent);
  display:flex;align-items:center;justify-content:center}
.sub-feat-ico svg{width:18px;height:18px}
.sub-feat-text h4{font-size:.9rem;font-weight:600;margin-bottom:.3rem}
.sub-feat-text p{font-size:.82rem;color:rgba(255,255,255,.42);line-height:1.6;margin:0}
body.light .sub-feat{background:rgba(255,255,255,.5);border-color:rgba(0,0,0,.08)}
body.light .sub-feat-text p{color:rgba(0,0,0,.45)}

/* price card (sticky) */
.sub-price-card{position:sticky;top:6rem;border:1px solid rgba(224,92,16,.25);
  border-radius:20px;background:rgba(255,255,255,.03);
  padding:2.2rem 2rem;backdrop-filter:blur(8px)}
.sub-price-card .sp-price-label{font-size:.72rem;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:var(--accent);
  margin-bottom:.8rem}
.sub-price-card .sp-price-big{font-family:'Fraunces',serif;
  font-size:2.8rem;font-weight:300;letter-spacing:-.02em;margin-bottom:.2rem}
.sub-price-card .sp-price-period{font-size:.8rem;color:rgba(255,255,255,.38);
  margin-bottom:1.5rem}
.sub-checklist{list-style:none;padding:0;margin:0 0 1.8rem;
  display:flex;flex-direction:column;gap:.6rem}
.sub-checklist li{display:flex;align-items:center;gap:.7rem;
  font-size:.84rem;color:rgba(255,255,255,.7)}
.sub-checklist li svg{color:var(--accent);flex-shrink:0}
body.light .sub-price-card{background:rgba(255,255,255,.6);
  border-color:rgba(224,92,16,.2)}
body.light .sub-price-card .sp-price-period{color:rgba(0,0,0,.38)}
body.light .sub-checklist li{color:rgba(0,0,0,.7)}

/* process */
.sub-process{padding:5rem 0;border-top:1px solid var(--border)}
.sub-process h2{font-family:'Fraunces',serif;font-size:1.8rem;
  margin-bottom:3rem;text-align:center}
.sub-steps{display:grid;grid-template-columns:repeat(4,1fr);
  gap:2rem;position:relative}
.sub-steps::before{content:'';position:absolute;top:1.5rem;
  left:calc(12.5% + 1rem);right:calc(12.5% + 1rem);height:1px;
  background:linear-gradient(90deg,transparent,var(--border),
    var(--border),transparent)}
.sub-step{text-align:center}
.sub-step-n{width:3rem;height:3rem;border-radius:50%;
  background:rgba(224,92,16,.12);border:1px solid rgba(224,92,16,.25);
  color:var(--accent);font-size:.9rem;font-weight:700;
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 1rem}
.sub-step h4{font-size:.9rem;font-weight:600;margin-bottom:.5rem}
.sub-step p{font-size:.8rem;color:rgba(255,255,255,.42);line-height:1.6}
body.light .sub-step p{color:rgba(0,0,0,.42)}

/* FAQ */
.sub-faq{padding:5rem 0;border-top:1px solid var(--border)}
.sub-faq h2{font-family:'Fraunces',serif;font-size:1.8rem;
  margin-bottom:2rem;text-align:center}
.faq-item{border-bottom:1px solid var(--border)}
.faq-q{display:flex;align-items:center;justify-content:space-between;
  padding:1.3rem 0;cursor:pointer;font-size:.95rem;font-weight:500;
  transition:color .2s;-webkit-tap-highlight-color:transparent}
.faq-q:hover{color:var(--accent)}
.faq-q svg{flex-shrink:0;transition:transform .25s;
  color:rgba(255,255,255,.3)}
.faq-q.open{color:var(--accent)}
.faq-q.open svg{transform:rotate(45deg);color:var(--accent)}
.faq-a{font-size:.88rem;color:rgba(255,255,255,.48);
  line-height:1.75;padding-bottom:1.2rem;display:none}
.faq-a.open{display:block}
body.light .faq-q svg{color:rgba(0,0,0,.3)}
body.light .faq-a{color:rgba(0,0,0,.5)}

/* CTA band */
.sub-cta-band{margin:4rem 0;padding:3rem;
  background:linear-gradient(135deg,rgba(224,92,16,.1),rgba(224,92,16,.03));
  border:1px solid rgba(224,92,16,.18);border-radius:20px;text-align:center}
.sub-cta-band h3{font-family:'Fraunces',serif;
  font-size:clamp(1.4rem,3.5vw,2rem);margin-bottom:.9rem}
.sub-cta-band p{color:rgba(255,255,255,.48);margin-bottom:1.8rem;
  max-width:46ch;margin-left:auto;margin-right:auto;font-size:.95rem}
.sub-cta-btns{display:flex;align-items:center;justify-content:center;
  gap:1rem;flex-wrap:wrap}
body.light .sub-cta-band p{color:rgba(0,0,0,.48)}

/* related */
.sub-related{padding:4rem 0;border-top:1px solid var(--border)}
.sub-related h3{font-family:'Fraunces',serif;font-size:1.2rem;
  color:rgba(255,255,255,.55);margin-bottom:1.8rem;font-weight:400}
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.rel-card{display:block;padding:1.4rem;border:1px solid var(--border);
  border-radius:12px;background:rgba(255,255,255,.02);
  transition:all .28s;color:inherit;text-decoration:none}
.rel-card:hover{background:rgba(224,92,16,.05);
  border-color:rgba(224,92,16,.22);transform:translateY(-3px)}
.rel-card h4{font-size:.92rem;font-weight:600;margin-bottom:.35rem;
  color:var(--white)}
.rel-card p{font-size:.8rem;color:rgba(255,255,255,.38);
  line-height:1.6;margin-bottom:.6rem}
.rel-card span{font-size:.78rem;color:var(--accent);font-weight:600}
body.light .rel-card{background:rgba(255,255,255,.55);border-color:rgba(0,0,0,.08)}
body.light .rel-card h4{color:#1a1a1a}
body.light .rel-card p{color:rgba(0,0,0,.42)}
body.light .sub-related h3{color:rgba(0,0,0,.5)}

/* shared footer for subpages */
.sub-footer{border-top:1px solid var(--border);padding:1.5rem 2rem;
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:1rem;font-size:.82rem;color:rgba(255,255,255,.3)}
.sub-footer-links{display:flex;gap:1.5rem;flex-wrap:wrap}
.sub-footer a{color:rgba(255,255,255,.35);text-decoration:none;
  transition:color .2s}
.sub-footer a:hover{color:var(--accent)}
body.light .sub-footer{color:rgba(0,0,0,.3)}
body.light .sub-footer a{color:rgba(0,0,0,.35)}

@media(max-width:900px){
  .sub-content-grid{grid-template-columns:1fr;gap:3rem}
  .sub-price-card{position:static}
  .sub-steps{grid-template-columns:repeat(2,1fr)}
  .sub-steps::before{display:none}
  .related-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
  .sub-page-hero{padding:5rem 0 3.5rem}
  .sub-page-hero h1{font-size:clamp(2rem,10vw,3rem)}
  .sub-page-ctas{flex-direction:column;width:100%}
  .sub-page-ctas a,.sub-page-ctas button{width:100%;justify-content:center}
  .sub-steps{grid-template-columns:1fr}
  .related-grid{grid-template-columns:1fr}
  .sub-cta-band{padding:2rem 1.4rem}
}

/* ─── whatsapp float on subpages ─── */
.whatsapp-float{position:fixed;bottom:2rem;right:2rem;z-index:700;
  width:52px;height:52px;background:#25D366;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 20px rgba(37,211,102,.4);
  transition:transform .25s,box-shadow .25s;text-decoration:none}
.whatsapp-float:hover{transform:scale(1.1);
  box-shadow:0 6px 30px rgba(37,211,102,.55)}
.whatsapp-float svg{width:28px;height:28px;fill:#fff}
.wa-tooltip{position:absolute;right:calc(100% + .7rem);
  white-space:nowrap;background:rgba(0,0,0,.85);color:#fff;
  font-size:.75rem;padding:.4rem .8rem;border-radius:6px;
  pointer-events:none;opacity:0;transition:opacity .2s}
.whatsapp-float:hover .wa-tooltip{opacity:1}

/* ═══════════════════════════════════════════════════════════
   MOBILE MENU — definizione unica e autoritativa
   Classi unificate (fix v2):
   - index.html usa mm-accordion-btn / mm-cat-btn (aggiornato)
   - sub-pages via nav.js usa mm-accordion-btn / mm-cat-btn
   CSS mantiene anche le vecchie classi (toggle) per retrocompat
═══════════════════════════════════════════════════════════ */

/* ── Overlay container ── */
.mobile-menu {
  /* Bulletproof fixed overlay - works on iOS Safari, Android, desktop */
  position: fixed !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  z-index: 10000 !important; /* above #cursor (9999) */
  display: none;
  flex-direction: column;
  /* ONLY backdrop, non il contenuto! */
  background-color: transparent !important;
  /* Scroll ONLY inside the nav area, not the whole menu */
  overflow: hidden;
  pointer-events: none;
}

.mobile-menu.open {
  pointer-events: auto;
  /* Backdrop COMPLETAMENTE opaco per bloccare il contenuto dietro */
  background-color: #000000 !important;
}

@media (min-width: 480px) {
  .mobile-menu {
    left: auto !important;
    width: min(420px, 100%) !important;
    right: 0 !important;
  }
}
.mobile-menu.open {
  display: flex !important;
  opacity: 1 !important;
  visibility: visible !important;
  /* Simple slide-in, NO 'both' fill which keeps opacity:0 */
  animation: mmSlide .25s ease-out forwards;
}
@keyframes mmSlide {
  from { transform: translateX(30px); opacity: .4; }
  to   { transform: none; opacity: 1; }
}
@media (max-width: 479px) {
  @keyframes mmSlide {
    from { transform: translateY(-12px); opacity: .4; }
    to   { transform: none; opacity: 1; }
  }
}

/* ── Header ── */
.mm-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.1rem 1.4rem;
  border-bottom: 1px solid rgba(255,255,255,.1);
  flex-shrink: 0;
  /* Not sticky - it's a flex sibling, always at top */
  position: relative;
  z-index: 10001;
  background: #0d0d0d;
  min-height: 62px;
}
.mm-logo {
  font-family: 'Fraunces', serif;
  font-size: 1.3rem;
  color: #f8f6f2;
  letter-spacing: -.02em;
  text-decoration: none;
  flex-shrink: 0;
}
.mm-logo span { color: var(--accent); }
.mm-header-right {
  display: flex;
  align-items: center;
  gap: .4rem;
}
.mm-close {
  width: 40px;
  height: 40px;
  min-width: 40px;
  border-radius: 50%;
  border: 1.5px solid rgba(255,255,255,.15);
  background: none;
  color: rgba(255,255,255,.6);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: border-color .2s, color .2s, background .2s;
  -webkit-tap-highlight-color: transparent;
}
.mm-close:hover,
.mm-close:active {
  border-color: rgba(255,255,255,.4);
  color: #fff;
  background: rgba(255,255,255,.06);
}

/* ── Nav scroll area ── */
.mm-nav {
  flex: 1;
  min-height: 0; /* Critical: allows flex child to shrink and scroll */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  position: relative;
  z-index: 10001;
}

.mm-accordion {
  width: 100%;
  align-self: stretch;
  flex: 0 0 auto;
}

/* ── Base link (a and button) ── */
.mm-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 1.4rem;
  height: 62px;
  min-height: 62px;
  font-family: 'Outfit', sans-serif;
  font-size: 1.05rem;
  font-weight: 500;
  color: rgba(255,255,255,.72);
  border: none;
  border-bottom: 1px solid rgba(255,255,255,.07);
  background: none;
  text-align: left;
  width: 100%;
  cursor: pointer;
  transition: color .18s, background .15s;
  -webkit-tap-highlight-color: transparent;
  letter-spacing: .01em;
  text-decoration: none;
  box-sizing: border-box;
}
.mm-link:first-child {
  border-top: 1px solid rgba(255,255,255,.07);
}
.mm-link:hover,
.mm-link:active {
  color: #fff;
  background: rgba(255,255,255,.04);
}

/* ── Accordion chevron ── */
.mm-chevron {
  flex-shrink: 0;
  opacity: .35;
  margin-left: auto;
  transition: transform .28s cubic-bezier(.16,1,.3,1);
}
/* Support BOTH old (mm-accordion-toggle) and new (mm-accordion-btn) */
.mm-accordion-toggle[aria-expanded="true"] .mm-chevron,
.mm-accordion-btn[aria-expanded="true"] .mm-chevron {
  transform: rotate(180deg);
  opacity: .8;
  color: var(--accent);
}
.mm-accordion-toggle[aria-expanded="true"],
.mm-accordion-btn[aria-expanded="true"] {
  color: #fff;
}

/* ── Accordion panel ── */
.mm-accordion-panel {
  background: rgba(0,0,0,.25);
  border-bottom: 1px solid rgba(255,255,255,.07);
  padding: .4rem 0 1rem;
  display: block;
}
.mm-accordion-panel[hidden] {
  display: none !important;
}

/* ── Category heading (button) ── */
/* Support BOTH old (mm-cat-toggle) and new (mm-cat-btn) */
.mm-cat-toggle,
.mm-cat-btn {
  display: flex;
  align-items: center;
  gap: .65rem;
  width: 100%;
  padding: 0 1.4rem 0 1.8rem;
  height: 56px;
  min-height: 56px;
  font-family: 'Outfit', sans-serif;
  font-size: .80rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.38);
  background: none;
  border: none;
  border-bottom: 1px solid rgba(255,255,255,.05);
  cursor: pointer;
  transition: color .18s;
  text-align: left;
  -webkit-tap-highlight-color: transparent;
  box-sizing: border-box;
}
.mm-cat-toggle:hover,
.mm-cat-btn:hover {
  color: rgba(255,255,255,.65);
}
.mm-cat-toggle[aria-expanded="true"],
.mm-cat-btn[aria-expanded="true"] {
  color: var(--accent);
}
.mm-cat-chevron {
  margin-left: auto;
  flex-shrink: 0;
  opacity: .4;
  transition: transform .22s;
}
.mm-cat-toggle[aria-expanded="true"] .mm-cat-chevron,
.mm-cat-btn[aria-expanded="true"] .mm-cat-chevron {
  transform: rotate(180deg);
  opacity: .8;
}
.mm-cat-toggle > svg:first-child,
.mm-cat-btn > svg:first-child {
  flex-shrink: 0;
  opacity: .5;
}
.mm-cat:last-of-type > .mm-cat-toggle,
.mm-cat:last-of-type > .mm-cat-btn {
  border-bottom: none;
}

/* ── Sub-links container ── */
.mm-cat-links {
  display: block;
  padding: .2rem 0 .5rem;
}
.mm-cat-links[hidden] {
  display: none !important;
}

/* ── Individual sub-link ── */
.mm-sub-link {
  display: flex;
  align-items: center;
  padding: 0 1.4rem 0 3rem;
  height: 54px;
  min-height: 54px;
  font-size: .95rem;
  color: rgba(255,255,255,.5);
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,.04);
  transition: color .15s, background .12s;
  -webkit-tap-highlight-color: transparent;
  box-sizing: border-box;
}
.mm-sub-link:last-child {
  border-bottom: none;
}
.mm-sub-link:hover,
.mm-sub-link:active {
  color: var(--accent);
  background: rgba(224,92,16,.06);
}
/* "Parent" sub-links (link to category index) */
.mm-sub-parent {
  color: rgba(255,255,255,.78) !important;
  font-weight: 600;
  padding-left: 1.8rem !important; /* visually separate from child links (3rem) — shows hierarchy clearly */
  border-top: 1px solid rgba(255,255,255,.07) !important;
  border-bottom: 1px solid rgba(255,255,255,.07) !important;
  margin-top: .3rem;
  letter-spacing: .01em;
}

/* ── View all link ── */
.mm-view-all {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  margin: .9rem 1.4rem .5rem;
  padding: .55rem 1rem;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--accent);
  border: 1.5px solid rgba(224,92,16,.28);
  border-radius: 8px;
  text-decoration: none;
  transition: background .2s, border-color .2s;
  -webkit-tap-highlight-color: transparent;
  width: fit-content;
}
.mm-view-all:hover,
.mm-view-all:active {
  background: rgba(224,92,16,.08);
  border-color: var(--accent);
}

/* ── Footer ── */
.mm-footer {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 1.2rem 1.4rem 1.6rem;
  border-top: 1px solid rgba(255,255,255,.1);
  background: #0d0d0d;
}
.mm-cta {
  width: 100%;
  justify-content: center;
  font-size: .92rem;
  padding: 1rem;
  text-align: center;
  display: flex !important;
  text-decoration: none;
}
.mm-contacts {
  display: flex;
  flex-direction: column;
  gap: .55rem;
}
.mm-contact-item {
  display: flex;
  align-items: center;
  gap: .65rem;
  font-size: .8rem;
  color: rgba(255,255,255,.35);
  text-decoration: none;
  transition: color .2s;
}
.mm-contact-item:hover {
  color: rgba(255,255,255,.65);
}
.mm-contact-item svg {
  flex-shrink: 0;
  opacity: .55;
}

/* ── Light mode ── */
body.light .mobile-menu {
  background-color: #f0ede6 !important;
}
body.light .mm-header {
  background: #f0ede6;
  border-color: rgba(0,0,0,.1);
}
body.light .mm-footer {
  background: #f0ede6;
}
body.light .mm-logo { color: #1a1a1a; }
body.light .mm-close {
  border-color: rgba(0,0,0,.15);
  color: rgba(0,0,0,.5);
}
body.light .mm-close:hover { color: #1a1a1a; border-color: rgba(0,0,0,.3); }
body.light .mm-link {
  color: rgba(0,0,0,.65);
  border-color: rgba(0,0,0,.08);
}
body.light .mm-link:first-child { border-top-color: rgba(0,0,0,.08); }
body.light .mm-link:hover { color: #1a1a1a; background: rgba(0,0,0,.04); }
body.light .mm-accordion-panel { background: rgba(0,0,0,.03); }
body.light .mm-cat-toggle,
body.light .mm-cat-btn { color: rgba(0,0,0,.38); border-color: rgba(0,0,0,.07); }
body.light .mm-cat-toggle:hover,
body.light .mm-cat-btn:hover { color: rgba(0,0,0,.65); }
body.light .mm-sub-link { color: rgba(0,0,0,.5); border-color: rgba(0,0,0,.05); }
body.light .mm-sub-link:hover { color: var(--accent); background: rgba(224,92,16,.05); }
body.light .mm-sub-parent { color: rgba(0,0,0,.80) !important; border-color: rgba(0,0,0,.10) !important; }
body.light .mm-footer {
  background: rgba(235,232,225,.8);
  border-color: rgba(0,0,0,.1);
}
body.light .mm-contact-item { color: rgba(0,0,0,.38); }
body.light .mm-view-all { color: var(--accent); }

/* ── Force hamburger visible on mobile ── */
@media (max-width: 900px) {
  .hamburger   { display: flex !important; }
  .nav-right   { display: flex !important; align-items: center; gap: .5rem; }
  .mega-menu,
  .mega-backdrop { display: none !important; }
}

/* ── Desktop guard: mobile menu must never appear on wide screens ── */
@media (min-width: 901px) {
  .mobile-menu { display: none !important; }
  .hamburger   { display: none !important; }
}

/* ── iOS-safe scroll lock when mobile menu is open ── */
body.menu-open {
  position: fixed;
  top: var(--scroll-y, 0px); /* set by JS: document.documentElement.style.setProperty('--scroll-y', ...) */
  left: 0;
  right: 0;
  width: 100%;
  overflow-y: scroll; /* keep scrollbar width to prevent layout shift */
}

/* Hide floating elements when menu is open */
body.menu-open .whatsapp-float {
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
}

/* ─────────────────────────────────────────────────────────
   QUOTE SELECTION SYSTEM (v1.0)
   ───────────────────────────────────────────────────────── */

/* Quote Section Wrapper */
.quote-section {
  padding: 6rem 0;
  border-top: 1px solid var(--border);
  background: rgba(224, 92, 16, .02);
}

.quote-section .container {
  max-width: 1100px;
}

/* Section Header */
.section-header {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 3rem;
  align-items: start;
  margin-bottom: 3rem;
}

.section-header > div {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.section-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
  width: fit-content;
}

.section-title {
  font-family: 'Fraunces', serif;
  font-size: clamp(1.8rem, 5vw, 2.5rem);
  letter-spacing: -0.03em;
  line-height: 1.1;
  color: var(--white);
}

.section-note {
  font-size: 0.95rem;
  color: rgba(255, 255, 255, 0.45);
  line-height: 1.6;
  max-width: 65ch;
}

/* Quote Cards Grid */
.quote-cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1.2rem;
  margin-bottom: 3rem;
}

/* Quote Card (Checkbox Label) */
.quote-card {
  display: flex;
  flex-direction: column;
  position: relative;
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}

.quote-card input[type="checkbox"] {
  display: none;
}

.quote-card-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 2rem 1.5rem;
  border: 1.5px solid var(--border);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.02);
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  position: relative;
  overflow: hidden;
}

.quote-card-inner::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(224, 92, 16, 0.1), transparent 60%);
  opacity: 0;
  transition: opacity 0.3s;
}

/* Card Header (Icon + Check) */
.quote-card-header {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
  width: 100%;
  z-index: 1;
}

.quote-card-icon {
  font-size: 2.5rem;
  display: block;
}

.quote-card-check {
  position: absolute;
  top: -8px;
  right: -8px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--accent);
  color: #fff;
  font-size: 0.9rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transform: scale(0.5);
  transition: opacity 0.3s, transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Card Title & Price */
.quote-card-title {
  font-family: 'Outfit', sans-serif;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--white);
  margin-bottom: 0.6rem;
  line-height: 1.4;
  position: relative;
  z-index: 1;
}

.quote-card-price {
  font-family: 'Fraunces', serif;
  font-size: 1.4rem;
  font-weight: 300;
  color: var(--accent);
  position: relative;
  z-index: 1;
}

/* HOVER & SELECTED STATES */
.quote-card:hover .quote-card-inner {
  border-color: rgba(224, 92, 16, 0.35);
  background: rgba(224, 92, 16, 0.04);
  transform: translateY(-3px);
}

.quote-card:hover .quote-card-inner::before {
  opacity: 1;
}

.quote-card.selected .quote-card-inner {
  border-color: var(--accent);
  background: rgba(224, 92, 16, 0.08);
  box-shadow: 0 0 0 1px var(--accent), 0 8px 32px rgba(224, 92, 16, 0.15);
}

.quote-card.selected .quote-card-check {
  opacity: 1;
  transform: scale(1);
}

/* Quote Summary Wrapper */
.quote-summary-wrapper {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  padding: 0;
}

/* Summary Box */
.quote-summary-box {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  padding: 2.2rem;
  border: 1px solid rgba(224, 92, 16, 0.25);
  border-radius: 20px;
  background: rgba(224, 92, 16, 0.04);
  backdrop-filter: blur(8px);
}

.quote-summary-left {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.quote-summary-left h3 {
  font-family: 'Fraunces', serif;
  font-size: 1.4rem;
  margin-bottom: 0.8rem;
  color: var(--white);
}

.quote-summary-items {
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.5);
  line-height: 1.6;
}

.quote-summary-right {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-end;
}

.quote-total-label {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.4);
  margin-bottom: 0.6rem;
}

.quote-total-price {
  font-family: 'Fraunces', serif;
  font-size: clamp(2rem, 5vw, 3rem);
  font-weight: 300;
  color: var(--accent);
  letter-spacing: -0.02em;
}

/* Contact Info Section */
.quote-contact-info {
  padding: 2rem;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.01);
}

.quote-contact-info h4 {
  font-size: 1.1rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
  color: var(--white);
}

.quote-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  margin-bottom: 1.5rem;
}

.quote-form-row:last-of-type {
  margin-bottom: 0;
}

.quote-form-group {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.quote-form-group label {
  font-size: 0.8rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.6);
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.quote-form-group input,
.quote-form-group select,
.quote-form-group textarea {
  padding: 0.9rem 1.2rem;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.02);
  color: var(--white);
  font-family: 'Outfit', sans-serif;
  font-size: 0.9rem;
  transition: all 0.2s;
}

.quote-form-group input::placeholder,
.quote-form-group textarea::placeholder {
  color: rgba(255, 255, 255, 0.25);
}

.quote-form-group input:focus,
.quote-form-group select:focus,
.quote-form-group textarea:focus {
  outline: none;
  border-color: rgba(224, 92, 16, 0.5);
  background: rgba(224, 92, 16, 0.02);
}

/* Actions */
.quote-actions {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}

.quote-actions button {
  flex: 1;
  min-width: 200px;
}

#quoteSubmitBtn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* Light Mode Support */
body.light .quote-section {
  background: rgba(224, 92, 16, 0.06);
  border-color: rgba(0, 0, 0, 0.08);
}

body.light .section-title {
  color: #1a1a1a;
}

body.light .section-note {
  color: rgba(0, 0, 0, 0.5);
}

body.light .quote-card-inner {
  background: rgba(255, 255, 255, 0.6);
  border-color: rgba(0, 0, 0, 0.1);
}

body.light .quote-card-title {
  color: #1a1a1a;
}

body.light .quote-card.selected .quote-card-inner {
  background: rgba(224, 92, 16, 0.12);
  border-color: var(--accent);
}

body.light .quote-summary-box {
  background: rgba(255, 255, 255, 0.5);
  border-color: rgba(0, 0, 0, 0.1);
}

body.light .quote-summary-left h3 {
  color: #1a1a1a;
}

body.light .quote-contact-info {
  background: rgba(255, 255, 255, 0.5);
  border-color: rgba(0, 0, 0, 0.1);
}

body.light .quote-form-group label {
  color: rgba(0, 0, 0, 0.6);
}

body.light .quote-form-group input,
body.light .quote-form-group select,
body.light .quote-form-group textarea {
  border-color: rgba(0, 0, 0, 0.1);
  background: rgba(255, 255, 255, 0.7);
  color: #1a1a1a;
}

body.light .quote-form-group input::placeholder,
body.light .quote-form-group textarea::placeholder {
  color: rgba(0, 0, 0, 0.35);
}

/* Responsive */
@media (max-width: 900px) {
  .quote-cards-grid {
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 1rem;
  }

  .section-header {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .quote-summary-box {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }

  .quote-summary-right {
    align-items: flex-start;
  }

  .quote-form-row {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 600px) {
  .quote-section {
    padding: 4rem 0;
  }

  .quote-cards-grid {
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 0.8rem;
  }

  .quote-card-inner {
    padding: 1.4rem 1rem;
  }

  .quote-card-icon {
    font-size: 2rem;
  }

  .quote-card-title {
    font-size: 0.85rem;
  }

  .quote-summary-box {
    padding: 1.5rem;
  }

  .quote-total-price {
    font-size: clamp(1.4rem, 4vw, 2.2rem);
  }

  .quote-contact-info {
    padding: 1.5rem;
  }

  .quote-actions {
    flex-direction: column;
  }

  .quote-actions button {
    width: 100%;
  }
}

/* =======================================================================
   FASCIA 1 - UI/UX improvements (mobile menu, buttons, forms, animations)
   ======================================================================= */

/* Mobile menu overlay + panel */
.mobile-menu {
  display: flex;
  align-items: stretch;
  justify-content: flex-end;
  opacity: 0;
  background: rgba(8, 9, 12, 0);
  transition: opacity .28s ease, background .28s ease;
  pointer-events: none;
  visibility: hidden;
}
.mobile-menu.open {
  opacity: 1;
  background: rgba(8, 9, 12, .62);
  backdrop-filter: blur(8px);
  pointer-events: auto;
  visibility: visible;
}
.mm-panel {
  width: min(88vw, 380px);
  height: 100%;
  display: flex;
  flex-direction: column;
  background: #0d0d10;
  border-left: 1px solid rgba(255,255,255,.08);
  box-shadow: -30px 0 60px rgba(0,0,0,.4);
  transform: translateX(100%);
  transition: transform .35s cubic-bezier(.16,1,.3,1);
  position: relative;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  will-change: transform;
}
/* Fix scroll mobile menu: quando Servizi si espande, mm-nav deve scrollare */
.mm-nav {
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
  overscroll-behavior-y: contain !important;
  flex: 1 1 0 !important;
  min-height: 0 !important;
}
.mobile-menu.open .mm-panel { transform: translateX(0); }
.mm-panel::before{
  content:'';
  position:absolute;
  inset:0;
  background: radial-gradient(90% 60% at 10% 0%, rgba(255,255,255,.08), transparent 60%);
  opacity:.5;
  pointer-events:none;
}
.mm-panel > *{ position:relative; z-index:1; }
@media (max-width: 480px) {
  .mm-panel { width: 100%; border-radius: 0; }
}
@media (min-width: 481px) {
  .mm-panel { border-radius: 18px 0 0 18px; }
}
.mm-header,
.mm-footer { background: transparent; }
.mm-header { padding: .9rem 1.1rem; }
.mm-link { height: 56px; min-height: 56px; padding: 0 1.2rem; font-size: 1rem; }
.mm-sub-link { height: 48px; min-height: 48px; padding: 0 1.2rem 0 2.6rem; font-size: .92rem; }
.mm-cat-btn { height: 50px; min-height: 50px; padding: 0 1.2rem 0 1.6rem; font-size: .74rem; }
.mm-close { background: rgba(255,255,255,.04); }
.mm-cta { border-radius: 14px; box-shadow: 0 12px 30px rgba(224,92,16,.25); }

body.light .mobile-menu { background: rgba(245,242,236,0); }
body.light .mobile-menu.open { background: rgba(240,237,230,.7); }
body.light .mm-panel { background: #f7f4ee; border-left-color: rgba(0,0,0,.08); }

/* Buttons: modern look, hover/tap micro-animations */
:root {
  --btn-radius: 14px;
  --btn-shadow: 0 12px 28px rgba(0,0,0,.22);
  --btn-shadow-hover: 0 18px 38px rgba(0,0,0,.28);
}
.btn-primary,
.btn-secondary,
.btn-price,
.cf-submit {
  position: relative;
  overflow: hidden;
  border-radius: var(--btn-radius);
}
.btn-primary::after,
.cf-submit::after {
  content:'';
  position:absolute;
  inset:-2px;
  background: linear-gradient(120deg, rgba(255,255,255,.35), rgba(255,255,255,0) 55%);
  opacity: 0;
  transform: translateX(-40%);
  transition: opacity .3s ease, transform .6s ease;
}
@media (hover:hover) {
  .btn-primary:hover,
  .cf-submit:hover { transform: translateY(-2px); box-shadow: var(--btn-shadow-hover); }
  .btn-primary:hover::after,
  .cf-submit:hover::after { opacity: 1; transform: translateX(10%); }
  .btn-secondary:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(0,0,0,.2); }
}
.btn-primary:active,
.btn-secondary:active,
.cf-submit:active { transform: translateY(0); box-shadow: var(--btn-shadow); }
.btn-text { position: relative; }
.btn-text::after{
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:-6px;
  height:2px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .25s ease;
  opacity:.5;
}
@media (hover:hover) { .btn-text:hover::after { transform: scaleX(1); } }

/* Focus-visible for accessibility */
.btn-primary:focus-visible,
.btn-secondary:focus-visible,
.btn-text:focus-visible,
.btn-price:focus-visible,
.cf-submit:focus-visible,
.mm-link:focus-visible,
.mm-close:focus-visible,
.cf-service-card:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

/* Form cards + service selection cards */
.contact-form-wrap,
.leave-review-wrap {
  position: relative;
  overflow: hidden;
  border-radius: 18px;
  box-shadow: 0 18px 50px rgba(0,0,0,.22);
}
.contact-form-wrap::before,
.leave-review-wrap::before {
  content:'';
  position:absolute;
  inset:0;
  background: linear-gradient(135deg, rgba(224,92,16,.10), transparent 60%);
  opacity:.6;
  pointer-events:none;
}
.contact-form-wrap > *,
.leave-review-wrap > * { position: relative; z-index: 1; }
.contact-form-wrap:focus-within,
.leave-review-wrap:focus-within {
  border-color: rgba(224,92,16,.45);
  box-shadow: 0 20px 60px rgba(224,92,16,.18);
}
.cf-service-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:.9rem;
  margin-top:.6rem;
}
.cf-service-card{
  display:grid;
  grid-template-columns: 40px 1fr;
  column-gap:.9rem;
  row-gap:.2rem;
  align-items:center;
  padding:.9rem 1rem;
  border:1px solid var(--border);
  background: rgba(255,255,255,.04);
  border-radius:14px;
  text-align:left;
  color: rgba(255,255,255,.7);
  cursor:pointer;
  transition: border-color .2s, background .2s, transform .2s, box-shadow .2s;
  min-height: 64px;
}
.cf-service-card .cf-service-icon{
  width:36px;height:36px;border-radius:10px;
  background: rgba(224,92,16,.12);
  color: var(--accent);
  display:flex;align-items:center;justify-content:center;
  font-size:1.1rem;flex-shrink:0;
  grid-row: 1 / span 2;
}
.cf-service-card .cf-service-title{ font-size:.9rem; color: var(--white); display:block; font-weight:600; grid-column: 2; }
.cf-service-card .cf-service-desc{ font-size:.74rem; color: rgba(255,255,255,.45); display:block; grid-column: 2; }
.cf-service-card.active{
  border-color: rgba(224,92,16,.55);
  background: rgba(224,92,16,.10);
  box-shadow: 0 12px 30px rgba(224,92,16,.18);
  transform: translateY(-2px);
}
@media (hover:hover){
  .cf-service-card:hover{
    border-color: rgba(224,92,16,.35);
    background: rgba(224,92,16,.06);
    transform: translateY(-2px);
  }
}
.cf-service-grid.error .cf-service-card{
  border-color: rgba(255,90,90,.5);
}
.cf-helper{ margin-top:.5rem; font-size:.75rem; color: rgba(255,255,255,.45); }
.cf-helper.error{ color: #ff8a8a; }
@media (max-width: 680px){
  .cf-service-grid{ grid-template-columns: 1fr; }
}

body.light .cf-service-card{
  background: rgba(255,255,255,.85);
  color: rgba(0,0,0,.6);
  border-color: rgba(0,0,0,.08);
}
body.light .cf-service-card .cf-service-desc{ color: rgba(0,0,0,.45); }
body.light .cf-helper{ color: rgba(0,0,0,.45); }
body.light .cf-helper.error{ color: #c0392b; }

/* Page load + section target transitions */
body.page-loaded .hero { animation: pageIn .6s ease both; }
@keyframes pageIn { from{ opacity:0; transform: translateY(12px); } to{ opacity:1; transform: none; } }
section { position: relative; scroll-margin-top: 90px; }
section:target::after{
  content:'';
  position:absolute;
  inset:0;
  background: rgba(224,92,16,.08);
  pointer-events:none;
  animation: sectionFocus .8s ease;
}
@keyframes sectionFocus { from{ opacity:.7; } to{ opacity:0; } }

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  .mobile-menu,
  .mm-panel,
  .btn-primary,
  .btn-secondary,
  .btn-text,
  .cf-submit,
  .cf-service-card,
  .reveal,
  .reveal-left,
  .reveal-right {
    animation: none !important;
    transition: none !important;
  }
}

/* =======================================================================
   FASCIA 2 - Services, reviews, team (dynamic UI + empty states)
   ======================================================================= */
.services-grid{
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem;
  border: none;
  max-width: 1200px;
}
.svc-card{
  border: 1px solid var(--border);
  border-radius: 16px;
  min-height: 320px;
  align-items: flex-start;
  text-align: left;
  padding: 2.6rem 2.2rem;
  background: rgba(255,255,255,.03);
}
.svc-card:hover{
  border-color: rgba(224,92,16,.35);
  box-shadow: 0 18px 40px rgba(0,0,0,.25);
}
.svc-card-main:hover{ box-shadow: none; }
.svc-card-main{
  grid-column: 1 / -1;
  align-items: center;
  text-align: center;
  min-height: 360px;
}
.svc-card .svc-icon{ margin-bottom: 1rem; }
.svc-price{
  margin-top: 1.1rem;
  font-size: .92rem;
  font-weight: 600;
  color: var(--accent);
}
.svc-empty,
.review-empty,
.team-empty{
  grid-column: 1 / -1;
  padding: 2rem;
  border: 1px dashed var(--border);
  border-radius: 16px;
  text-align: center;
  color: rgba(255,255,255,.45);
  background: rgba(255,255,255,.02);
}
body.light .svc-empty,
body.light .review-empty,
body.light .team-empty{
  border-color: rgba(0,0,0,.12);
  color: rgba(0,0,0,.5);
  background: rgba(255,255,255,.6);
}
@media (max-width: 1100px){
  .services-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px){
  .services-grid{ grid-template-columns: 1fr; }
  .svc-card-main{ grid-column: auto; }
  .svc-card{ min-height: 280px; }
}

/* =======================================================================
   FASCIA 3 - Projects section (premium grid + cards)
   ======================================================================= */
#projects-grid{
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.6rem;
}
.proj-card{
  background: rgba(255,255,255,.03);
  border: 1px solid var(--border);
  border-radius: 18px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform .35s cubic-bezier(.16,1,.3,1), box-shadow .35s ease, border-color .35s;
  grid-column: auto;
}
.proj-card:nth-child(odd),
.proj-card:nth-child(even){ grid-column: auto; }
.proj-card:hover{
  transform: translateY(-6px);
  box-shadow: 0 24px 60px rgba(0,0,0,.35);
  border-color: rgba(224,92,16,.35);
}
.proj-card--lg{ grid-column: span 2; }
.proj-card--md{ grid-row: span 2; }
.proj-media{
  width: 100%;
  aspect-ratio: 4 / 3;
  position: relative;
  overflow: hidden;
}
.proj-card--lg .proj-media{ aspect-ratio: 16 / 9; }
.proj-media .proj-mock-inner,
.proj-media .proj-img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.proj-body{
  padding: 1.6rem 1.6rem 1.8rem;
  display: flex;
  flex-direction: column;
  gap: .7rem;
  flex: 1;
}
.proj-meta{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .6rem;
}
.proj-meta .proj-tag{
  position: static;
  font-size: .62rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  background: rgba(224,92,16,.12);
  color: var(--accent);
  border: 1px solid rgba(224,92,16,.25);
  padding: .25rem .6rem;
  border-radius: 20px;
}
.proj-meta .proj-year{
  position: static;
  font-size: .72rem;
  color: rgba(255,255,255,.35);
}
.proj-title{
  font-family: 'Fraunces', serif;
  font-size: 1.3rem;
  color: var(--white);
}
.proj-desc{
  font-size: .85rem;
  color: rgba(255,255,255,.45);
  line-height: 1.7;
  min-height: 3.2em;
}
.proj-tech{
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
}
.proj-tech-chip{
  font-size: .7rem;
  color: rgba(255,255,255,.55);
  border: 1px solid var(--border);
  background: rgba(255,255,255,.04);
  padding: .25rem .6rem;
  border-radius: 999px;
}
.proj-actions{
  margin-top: auto;
  display: flex;
  gap: .6rem;
  align-items: center;
  flex-wrap: wrap;
}
.proj-open-btn{
  font-size: .72rem;
  padding: .45rem .95rem;
  border-radius: 10px;
}
.proj-link{
  font-size: .74rem;
  color: rgba(255,255,255,.85);
  border: 1px solid rgba(255,255,255,.15);
  padding: .4rem .8rem;
  border-radius: 10px;
  text-decoration: none;
  transition: all .2s;
}
.proj-link:hover{
  color: #fff;
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.3);
}
.proj-empty{
  grid-column: 1 / -1;
  padding: 2rem;
  border: 1px dashed var(--border);
  border-radius: 16px;
  text-align: center;
  color: rgba(255,255,255,.45);
  background: rgba(255,255,255,.02);
}
body.light .proj-empty{
  border-color: rgba(0,0,0,.12);
  color: rgba(0,0,0,.5);
  background: rgba(255,255,255,.6);
}
body.light .proj-card{
  background: rgba(255,255,255,.8);
  border-color: rgba(0,0,0,.08);
}
body.light .proj-card:hover{
  box-shadow: 0 20px 45px rgba(0,0,0,.15);
  border-color: rgba(224,92,16,.3);
}
body.light .proj-desc{ color: rgba(0,0,0,.55); }
body.light .proj-tech-chip{
  color: rgba(0,0,0,.6);
  border-color: rgba(0,0,0,.12);
  background: rgba(255,255,255,.8);
}
body.light .proj-meta .proj-year{ color: rgba(0,0,0,.4); }
body.light .proj-link{
  color: #1a1a1a;
  border-color: rgba(0,0,0,.2);
}
@media (max-width: 1100px){
  #projects-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .proj-card--lg{ grid-column: span 2; }
}
@media (max-width: 720px){
  #projects-grid{ grid-template-columns: 1fr; }
  .proj-card--lg,
  .proj-card--md{ grid-column: span 1; grid-row: span 1; }
}

/* =======================================================================
   FASCIA 4 - WhatsApp floating button (light/dark variants)
   ======================================================================= */
.whatsapp-float{
  width: 56px;
  height: 56px;
  bottom: 1.6rem;
  right: 1.6rem;
  background: #0b0b0c;
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 8px 24px rgba(0,0,0,.25);
  transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
}
.whatsapp-float svg{ width: 26px; height: 26px; fill: #25D366; }
.whatsapp-float:hover{
  transform: translateY(-3px) scale(1.05);
  box-shadow: 0 14px 30px rgba(0,0,0,.35);
}
.whatsapp-float:active{ transform: scale(0.98); }
.whatsapp-float:focus-visible{
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}
.whatsapp-float .wa-tooltip{
  background: #0b0b0c;
  color: #fff;
  border: 1px solid rgba(255,255,255,.08);
}
.whatsapp-float .wa-tooltip::after{
  border-left-color: #0b0b0c;
}
body.light .whatsapp-float{
  background: #ffffff;
  border-color: rgba(0,0,0,.12);
  box-shadow: 0 10px 24px rgba(0,0,0,.15);
}
body.light .whatsapp-float .wa-tooltip{
  background: #ffffff;
  color: #111;
  border-color: rgba(0,0,0,.12);
}
body.light .whatsapp-float .wa-tooltip::after{
  border-left-color: #ffffff;
}
@media (max-width: 600px){
  .whatsapp-float{
    width: 52px;
    height: 52px;
    bottom: 1.2rem;
    right: 1.2rem;
  }
  .whatsapp-float svg{ width: 24px; height: 24px; }
}

/* =======================================================================
   FASCIA 5 - General polish
   ======================================================================= */
img{ max-width: 100%; height: auto; }
.review-text,
.proj-desc,
.team-description,
.contact-left p{
  overflow-wrap: anywhere;
}

#quoteSubmitBtn,
#quoteTotalPrice{
  display:none !important;
}

.cf-selection-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.85rem;
  flex-wrap:wrap;
}

.cf-mode-switch{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding:.25rem;
  border:1px solid var(--border);
  border-radius:999px;
  background:rgba(255,255,255,.04);
}

.cf-mode-btn{
  border:0;
  background:transparent;
  color:rgba(255,255,255,.55);
  padding:.5rem .9rem;
  border-radius:999px;
  font-size:.74rem;
  font-weight:600;
  letter-spacing:.04em;
  cursor:pointer;
  transition:background .2s ease,color .2s ease,transform .2s ease;
}

.cf-mode-btn:hover{
  color:var(--white);
}

.cf-mode-btn.active{
  background:rgba(224,92,16,.16);
  color:var(--accent);
}

.cf-service-card .cf-service-state{
  font-size:.74rem;
  color:rgba(255,255,255,.45);
  display:block;
  grid-column:2;
}

.cf-selected-services{
  display:flex;
  flex-wrap:wrap;
  gap:.45rem;
  margin-top:.75rem;
}

.cf-selected-chip{
  display:inline-flex;
  align-items:center;
  gap:.3rem;
  padding:.38rem .72rem;
  border-radius:999px;
  border:1px solid rgba(224,92,16,.28);
  background:rgba(224,92,16,.08);
  color:var(--accent);
  font-size:.72rem;
  font-weight:600;
}

body.light .cf-mode-switch{
  background:rgba(255,255,255,.8);
  border-color:rgba(0,0,0,.1);
}

body.light .cf-mode-btn{
  color:rgba(0,0,0,.5);
}

body.light .cf-mode-btn:hover{
  color:#1a1a1a;
}

body.light .cf-mode-btn.active{
  background:rgba(224,92,16,.12);
  color:var(--accent);
}

body.light .cf-service-card .cf-service-state{
  color:rgba(0,0,0,.45);
}

body.light .cf-selected-chip{
  background:rgba(224,92,16,.1);
  border-color:rgba(224,92,16,.22);
}

@media (max-width: 680px){
  .cf-selection-toolbar{
    align-items:flex-start;
  }
}

#servizi .services-grid[data-grid-mode="gateway"]{
  grid-template-columns:1fr;
}

.svc-card-gateway{
  grid-column:1 / -1;
  min-height:380px;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:3rem 2.2rem;
  background:
    linear-gradient(135deg, rgba(224,92,16,.12), rgba(255,255,255,.02) 48%, rgba(255,255,255,.02)),
    rgba(255,255,255,.03);
}

.svc-card-gateway .svc-card-hover-fill{
  opacity:1;
  background:radial-gradient(ellipse 85% 60% at 15% 15%, rgba(224,92,16,.16), transparent 72%);
}

.svc-gateway-copy{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  gap:1.05rem;
  height:100%;
}

.svc-gateway-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}

.svc-card-gateway .svc-gateway-icon{
  width:172px;
  height:172px;
  margin:0 0 .35rem;
  padding:2.15rem;
  border-radius:40px;
  background:linear-gradient(180deg, rgba(224,92,16,.22), rgba(224,92,16,.1));
  color:var(--accent);
  flex-shrink:0;
  position:relative;
  box-shadow:0 24px 54px rgba(224,92,16,.16);
  animation:svcGatewayIconFloat 5.2s ease-in-out infinite;
}

.svc-card-gateway .svc-gateway-icon::before{
  content:'';
  position:absolute;
  inset:-14px;
  border-radius:48px;
  background:radial-gradient(circle, rgba(224,92,16,.18), transparent 68%);
  z-index:-1;
  animation:svcGatewayIconHalo 5.2s ease-in-out infinite;
}

.svc-card-gateway .svc-gateway-icon svg{
  width:100%;
  height:100%;
  display:block;
}

.svc-card-gateway .svc-gateway-title{
  font-size:clamp(2.1rem,3.8vw,3rem);
  line-height:1.02;
  max-width:none;
  margin:0;
}

.svc-card-gateway p.svc-gateway-sub{
  max-width:720px;
  margin:0;
  font-size:1rem;
  line-height:1.8;
  color:rgba(255,255,255,.62);
}

.svc-gateway-pills{
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
}

.svc-gateway-pill{
  display:inline-flex;
  align-items:center;
  padding:.58rem .92rem;
  border-radius:999px;
  border:1px solid rgba(224,92,16,.2);
  background:rgba(255,255,255,.04);
  color:rgba(255,255,255,.82);
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.03em;
}

.svc-gateway-features{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:1rem;
}

.svc-gateway-feature{
  padding:1rem 1.05rem;
  border:1px solid var(--border);
  border-radius:14px;
  background:rgba(255,255,255,.035);
}

.svc-gateway-feature strong{
  display:block;
  margin-bottom:.35rem;
  font-size:.92rem;
  color:var(--white);
}

.svc-gateway-feature span{
  display:block;
  font-size:.8rem;
  line-height:1.65;
  color:rgba(255,255,255,.48);
}

.svc-gateway-footer{
  margin-top:auto;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:1.2rem;
  padding-top:.7rem;
}

.svc-gateway-meta{
  display:flex;
  flex-direction:column;
  gap:.2rem;
}

.svc-gateway-count{
  font-size:.8rem;
  font-weight:700;
  letter-spacing:.11em;
  text-transform:uppercase;
  color:var(--accent);
}

.svc-gateway-note{
  font-size:.84rem;
  color:rgba(255,255,255,.46);
}

.svc-gateway-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  flex-shrink:0;
}

.svc-card-gateway .svc-arrow{
  position:relative;
  right:auto;
  bottom:auto;
  opacity:1;
  transform:translateX(0);
  color:var(--accent);
  transition:transform .28s ease;
}

.svc-card-gateway:hover .svc-gateway-icon{
  animation-duration:3.8s;
}

.svc-card-gateway:hover .svc-arrow{
  transform:translateX(6px);
}

body.light .svc-card-gateway{
  background:
    linear-gradient(135deg, rgba(224,92,16,.12), rgba(255,255,255,.82) 48%, rgba(255,255,255,.74)),
    rgba(255,255,255,.85);
}

body.light .svc-card-gateway .svc-gateway-icon{
  background:linear-gradient(180deg, rgba(224,92,16,.18), rgba(224,92,16,.08));
  box-shadow:0 22px 46px rgba(224,92,16,.14);
}

body.light .svc-gateway-pill{
  color:#1a1a1a;
  border-color:rgba(224,92,16,.18);
  background:rgba(255,255,255,.82);
}

body.light .svc-card-gateway p.svc-gateway-sub,
body.light .svc-gateway-note{
  color:rgba(0,0,0,.55);
}

body.light .svc-gateway-feature{
  background:rgba(255,255,255,.72);
  border-color:rgba(0,0,0,.08);
}

body.light .svc-gateway-feature strong{
  color:#1a1a1a;
}

body.light .svc-gateway-feature span{
  color:rgba(0,0,0,.5);
}

@media (max-width: 900px){
  .svc-card-gateway{
    min-height:unset;
    padding:2.1rem 1.8rem;
  }

  .svc-gateway-features{
    grid-template-columns:1fr;
  }

  .svc-gateway-footer{
    flex-direction:column;
    align-items:flex-start;
  }
}

@media (max-width: 600px){
  .svc-gateway-icon{
    width:128px;
    height:128px;
    padding:1.55rem;
  }

  .svc-gateway-title{
    max-width:none;
  }
}

@media (prefers-reduced-motion: reduce){
  .svc-card-gateway .svc-gateway-icon,
  .svc-card-gateway .svc-gateway-icon::before{
    animation:none;
  }

  .svc-card-gateway .svc-arrow{
    transition:none;
  }
}

@keyframes svcGatewayIconFloat{
  0%,100%{
    transform:translateY(0) scale(1) rotate(0deg);
  }
  25%{
    transform:translateY(-8px) scale(1.035) rotate(-4deg);
  }
  55%{
    transform:translateY(6px) scale(.985) rotate(3deg);
  }
  78%{
    transform:translateY(-3px) scale(1.02) rotate(-2deg);
  }
}

@keyframes svcGatewayIconHalo{
  0%,100%{
    opacity:.55;
    transform:scale(.92);
  }
  50%{
    opacity:1;
    transform:scale(1.08);
  }
}

#sp-manutenzione .sp-content-grid{
  grid-template-columns:minmax(0, .92fr) minmax(380px, 1.08fr);
  gap:4.75rem;
}

#sp-manutenzione .sp-right-card{
  transform:scale(1.12);
  transform-origin:center right;
  padding:3.5rem 3.1rem;
  border-radius:24px;
  max-width:480px;
  width:100%;
  justify-self:end;
  box-shadow:0 24px 70px rgba(0,0,0,.32);
}

#sp-manutenzione .sp-price-label{
  font-size:.8rem;
  margin-bottom:1rem;
}

#sp-manutenzione .sp-price-big{
  font-size:clamp(4.1rem, 6.8vw, 5.8rem);
}

#sp-manutenzione .sp-price-period{
  font-size:.92rem;
  margin-bottom:2.25rem;
  padding-bottom:2.25rem;
}

#sp-manutenzione .sp-checklist li{
  font-size:.9rem;
  padding:.72rem 0;
}

@media (max-width: 1200px){
  #sp-manutenzione .sp-content-grid{
    grid-template-columns:1fr 1fr;
    gap:4rem;
  }

  #sp-manutenzione .sp-right-card{
    transform:scale(1.07);
  }
}

@media (max-width: 900px){
  #sp-manutenzione .sp-content-grid{
    grid-template-columns:1fr;
    gap:2.5rem;
  }

  #sp-manutenzione .sp-right-card{
    transform:none;
    max-width:none;
    padding:2.6rem 2rem;
  }

  #sp-manutenzione .sp-price-big{
    font-size:clamp(3.2rem, 11vw, 4.6rem);
  }
}

.whatsapp-float{
  color:#ffffff;
}

.whatsapp-float svg{
  fill:currentColor !important;
}

body.light .whatsapp-float{
  color:#111111;
}

/* ─────────────────────────────────────────────────────────
   END QUOTE SELECTION SYSTEM
   ───────────────────────────────────────────────────────── */

/* ==========================================================================
   FINAL POLISH - Admin panel + maintenance emphasis
   ========================================================================== */

.admin-topbar{
  gap:1rem;
}

.adm-topbar-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:.55rem;
  flex-wrap:wrap;
}

.adm-top-action{
  min-width:84px;
  justify-content:center;
  padding:.46rem .9rem;
  border-radius:999px;
  background:rgba(255,255,255,.04);
  border-color:rgba(255,255,255,.12);
  color:rgba(255,255,255,.72);
}

.adm-top-action:hover{
  background:rgba(255,255,255,.09);
  border-color:rgba(255,255,255,.2);
  color:#fff;
}

.adm-stats{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:1rem;
}

.adm-stat,
.adm-stat.green,
.adm-stat.blue,
.adm-stat.red{
  min-height:152px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  background:
    linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.025)),
    rgba(255,255,255,.035);
  border:1px solid rgba(255,255,255,.08);
}

.adm-stat::after,
.adm-stat.green::after,
.adm-stat.blue::after,
.adm-stat.red::after{
  height:3px;
  background:linear-gradient(90deg, rgba(255,255,255,.92), rgba(224,92,16,.58));
}

.adm-dashboard-grid{
  grid-template-columns:repeat(2, minmax(0, 1fr));
  align-items:start;
}

.adm-settings-layout{
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  gap:1.2rem;
}

.adm-settings-card{
  margin-bottom:0;
}

.adm-settings-grid{
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:1rem;
}

.adm-settings-card textarea{
  min-height:112px;
}

.adm-settings-card .adm-form-actions{
  justify-content:flex-start;
}

.adm-page-header .adm-btn-primary{
  box-shadow:0 18px 40px rgba(224,92,16,.18);
}

.adm-toggle-slider{
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.14);
}

.adm-toggle-slider::before{
  background:#ffffff;
  box-shadow:0 6px 14px rgba(0,0,0,.22);
}

.adm-toggle input:checked + .adm-toggle-slider{
  background:#ffffff;
  border-color:#ffffff;
}

.adm-toggle input:checked + .adm-toggle-slider::before{
  background:#101010;
}

.sub-cards-grid-maintenance{
  grid-template-columns:minmax(0, 1.08fr) minmax(0, .92fr);
  align-items:stretch;
}

.sub-cards-grid-maintenance .sub-card{
  min-height:100%;
}

body.light .adm-top-action{
  background:rgba(255,255,255,.78);
  border-color:rgba(0,0,0,.08);
  color:rgba(0,0,0,.6);
}

body.light .adm-top-action:hover{
  background:#ffffff;
  border-color:rgba(0,0,0,.16);
  color:#111111;
}

body.light .adm-stat,
body.light .adm-stat.green,
body.light .adm-stat.blue,
body.light .adm-stat.red{
  background:
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(246,242,235,.88)),
    rgba(255,255,255,.88);
  border-color:rgba(0,0,0,.08);
}

body.light .adm-stat::after,
body.light .adm-stat.green::after,
body.light .adm-stat.blue::after,
body.light .adm-stat.red::after{
  background:linear-gradient(90deg, #111111, rgba(224,92,16,.65));
}

body.light .adm-toggle-slider{
  background:rgba(0,0,0,.12);
  border-color:rgba(0,0,0,.08);
}

body.light .adm-toggle-slider::before{
  background:#ffffff;
}

body.light .adm-toggle input:checked + .adm-toggle-slider{
  background:#111111;
  border-color:#111111;
}

body.light .adm-toggle input:checked + .adm-toggle-slider::before{
  background:#ffffff;
}

@media (max-width: 1180px){
  .adm-stats{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 900px){
  .adm-dashboard-grid,
  .adm-settings-grid,
  .sub-cards-grid-maintenance{
    grid-template-columns:1fr;
  }

  .adm-topbar-actions{
    justify-content:flex-start;
  }

  .adm-top-action{
    min-width:unset;
    flex:1 1 140px;
  }
}

@media (max-width: 560px){
  .adm-stats{
    grid-template-columns:1fr;
  }

  .adm-stat{
    min-height:132px;
  }

  .adm-topbar-actions{
    width:100%;
  }
}

/* ==========================================================================
   Mobile rebuild: public menu + admin drawer
   ========================================================================== */

.adm-topbar-left{
  display:flex;
  align-items:center;
  gap:.8rem;
  min-width:0;
}

.adm-mobile-toggle,
.adm-sidebar-close{
  display:none;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.04);
  color:rgba(255,255,255,.72);
  transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease;
}

.adm-mobile-toggle{
  gap:4px;
  flex-direction:column;
  flex:0 0 auto;
}

.adm-mobile-toggle span{
  display:block;
  width:18px;
  height:1.5px;
  border-radius:999px;
  background:currentColor;
  transition:transform .22s ease,opacity .22s ease;
}

.adm-mobile-toggle.open span:nth-child(1){
  transform:translateY(5.5px) rotate(45deg);
}

.adm-mobile-toggle.open span:nth-child(2){
  opacity:0;
}

.adm-mobile-toggle.open span:nth-child(3){
  transform:translateY(-5.5px) rotate(-45deg);
}

.adm-mobile-toggle:hover,
.adm-sidebar-close:hover{
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.2);
  color:#ffffff;
}

.admin-sidebar-head,
.adm-mobile-backdrop{
  display:none;
}

.admin-sidebar-brand{
  font-family:'Fraunces', serif;
  font-size:1rem;
  letter-spacing:-.02em;
  color:var(--white);
}

@media (max-width: 900px){
  .mobile-menu{
    display:flex !important;
    align-items:stretch;
    justify-content:flex-end;
    inset:0 !important;
    width:100% !important;
    height:100dvh !important;
    z-index:10020 !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    background:rgba(7,8,11,0) !important;
    backdrop-filter:none;
    transition:opacity .28s ease,background .28s ease,visibility .28s ease !important;
  }

  .mobile-menu.open{
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    background:rgba(7,8,11,.62) !important;
    animation:none !important;
    transform:none !important;
  }

  .mm-panel{
    width:min(92vw, 380px);
    height:100dvh;
    margin-left:auto;
    display:flex;
    flex-direction:column;
    background:#0c0d10;
    border-left:1px solid rgba(255,255,255,.08);
    border-radius:24px 0 0 24px;
    box-shadow:-28px 0 64px rgba(0,0,0,.38);
    transform:translateX(100%);
    transition:transform .32s cubic-bezier(.16,1,.3,1) !important;
    overflow-x:hidden;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
  }

  .mobile-menu.open .mm-panel{
    transform:translateX(0);
  }

  .mm-panel::before{
    content:'';
    position:absolute;
    inset:0;
    background:
      radial-gradient(80% 60% at 0% 0%, rgba(255,255,255,.08), transparent 62%),
      linear-gradient(180deg, rgba(255,255,255,.02), transparent 34%);
    pointer-events:none;
    opacity:.7;
  }

  .mm-header{
    flex-shrink:0;
    padding:1rem 1.05rem 1rem 1.15rem;
    min-height:72px;
    border-bottom:1px solid rgba(255,255,255,.08);
    background:rgba(255,255,255,.02);
  }

  .mm-header-right{
    gap:.55rem;
  }

  .mm-logo{
    font-size:1.22rem;
  }

  .mm-close,
  .theme-toggle-mobile{
    width:42px;
    height:42px;
    min-width:42px;
  }

  .mm-close{
    background:rgba(255,255,255,.05);
  }

  .mm-nav{
    flex:1 1 auto;
    min-height:0;
    padding:0;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
  }

  .mm-link{
    min-height:58px;
    height:auto;
    padding:0 1.15rem;
    font-size:1rem;
    border-bottom:1px solid rgba(255,255,255,.06);
  }

  .mm-link:first-child{
    border-top:0;
  }

  .mm-accordion-panel{
    padding:.35rem 0 .85rem;
    background:rgba(255,255,255,.025);
  }

  .mm-cat{
    padding:0 .75rem;
  }

  .mm-cat-btn{
    min-height:50px;
    height:auto;
    margin-top:.45rem;
    padding:0 .95rem;
    border:1px solid rgba(255,255,255,.06);
    border-radius:14px;
    background:rgba(255,255,255,.025);
    font-size:.74rem;
    letter-spacing:.1em;
  }

  .mm-cat-links{
    padding:.35rem 0 .15rem;
  }

  .mm-sub-link{
    min-height:46px;
    height:auto;
    padding:0 .95rem 0 1.35rem;
    font-size:.92rem;
    border-bottom:1px solid rgba(255,255,255,.05);
  }

  .mm-sub-parent{
    margin-top:0;
    margin-bottom:.2rem;
    padding-left:1rem !important;
    border:1px solid rgba(224,92,16,.2) !important;
    border-radius:12px;
    background:rgba(224,92,16,.08);
    color:#ffffff !important;
  }

  .mm-view-all{
    display:flex;
    width:calc(100% - 1.5rem);
    justify-content:center;
    margin:1rem .75rem 0;
    padding:.95rem 1rem;
    border-radius:14px;
    font-size:.76rem;
    letter-spacing:.09em;
  }

  .mm-footer{
    flex-shrink:0;
    padding:1rem .95rem calc(1.2rem + env(safe-area-inset-bottom));
    gap:.85rem;
    border-top:1px solid rgba(255,255,255,.08);
    background:rgba(255,255,255,.02);
  }

  .mm-cta{
    min-height:52px;
    padding:.95rem 1rem;
    border-radius:14px;
    box-shadow:0 16px 36px rgba(224,92,16,.24);
  }

  .mm-contacts{
    gap:.45rem;
  }

  .mm-contact-item{
    padding:.78rem .9rem;
    border:1px solid rgba(255,255,255,.07);
    border-radius:12px;
    background:rgba(255,255,255,.03);
    font-size:.78rem;
    color:rgba(255,255,255,.62);
  }

  .mm-contact-item:hover{
    color:#ffffff;
    border-color:rgba(255,255,255,.14);
  }

  .nav-right{
    gap:.5rem;
  }

  body.light .mobile-menu{
    background:rgba(240,237,230,0) !important;
  }

  body.light .mobile-menu.open{
    background:rgba(240,237,230,.68) !important;
  }

  body.light .mm-panel{
    background:#f7f4ee;
    border-left-color:rgba(0,0,0,.08);
    box-shadow:-24px 0 48px rgba(43,36,24,.16);
  }

  body.light .mm-header{
    background:rgba(255,255,255,.68);
    border-color:rgba(0,0,0,.08);
  }

  body.light .mm-link{
    color:rgba(0,0,0,.72);
    border-color:rgba(0,0,0,.07);
  }

  body.light .mm-link:hover{
    color:#111111;
    background:rgba(0,0,0,.035);
  }

  body.light .mm-accordion-panel{
    background:rgba(0,0,0,.025);
  }

  body.light .mm-cat-btn{
    background:rgba(255,255,255,.58);
    border-color:rgba(0,0,0,.07);
    color:rgba(0,0,0,.56);
  }

  body.light .mm-sub-link{
    color:rgba(0,0,0,.56);
    border-color:rgba(0,0,0,.05);
  }

  body.light .mm-sub-parent{
    color:#1a1a1a !important;
    background:rgba(224,92,16,.1);
    border-color:rgba(224,92,16,.22) !important;
  }

  body.light .mm-footer{
    background:rgba(255,255,255,.72);
    border-color:rgba(0,0,0,.08);
  }

  body.light .mm-contact-item{
    background:rgba(255,255,255,.7);
    border-color:rgba(0,0,0,.08);
    color:rgba(0,0,0,.58);
  }

  body.light .mm-contact-item:hover{
    color:#111111;
    border-color:rgba(0,0,0,.14);
  }

  .admin-topbar{
    position:sticky;
    top:0;
    z-index:40;
    padding:1rem;
    align-items:center;
    justify-content:space-between;
    backdrop-filter:blur(18px);
  }

  .adm-mobile-toggle{
    display:inline-flex;
  }

  .adm-topbar-actions{
    gap:.45rem;
  }

  .adm-top-action{
    min-width:auto;
    flex:0 0 auto;
    padding:.48rem .82rem;
  }

  .admin-body{
    position:relative;
    flex:1;
    min-height:0;
  }

  .admin-sidebar{
    position:fixed;
    top:0;
    left:0;
    bottom:0;
    width:min(86vw, 320px);
    max-width:320px;
    padding:1rem .9rem calc(1rem + env(safe-area-inset-bottom));
    transform:translateX(-104%);
    transition:transform .32s cubic-bezier(.16,1,.3,1);
    z-index:80;
    overflow-y:auto;
    box-shadow:22px 0 50px rgba(0,0,0,.38);
  }

  #admin-overlay.admin-nav-open .admin-sidebar{
    transform:translateX(0);
  }

  .admin-sidebar-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.75rem;
    padding:0 0 .9rem;
    margin-bottom:.9rem;
    border-bottom:1px solid rgba(255,255,255,.08);
  }

  .adm-sidebar-close{
    display:inline-flex;
    flex:0 0 auto;
  }

  .adm-mobile-backdrop{
    display:block;
    position:fixed;
    inset:0;
    z-index:70;
    opacity:0;
    pointer-events:none;
    background:rgba(4,5,8,.46);
    transition:opacity .28s ease;
  }

  #admin-overlay.admin-nav-open .adm-mobile-backdrop{
    opacity:1;
    pointer-events:auto;
  }

  .admin-main{
    padding:1rem;
    min-height:0;
    overflow:auto;
  }

  .adm-page-header,
  .adm-card-header,
  .adm-search-row,
  .adm-form-actions{
    flex-direction:column;
    align-items:stretch;
  }

  .adm-page-header{
    gap:.9rem;
  }

  .adm-card-header,
  .adm-search-row,
  .adm-form-actions{
    gap:.75rem;
  }

  .adm-page-header .adm-btn,
  .adm-card-header .adm-btn,
  .adm-form-actions .adm-btn,
  .adm-search-input,
  .adm-filter-select{
    width:100%;
  }

  .adm-stats{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .adm-dashboard-grid,
  .adm-settings-grid,
  .adm-form-grid{
    grid-template-columns:1fr !important;
  }

  .adm-field.full{
    grid-column:span 1 !important;
  }

  .adm-card,
  .adm-form-panel,
  .adm-settings-card{
    padding:1rem;
    border-radius:20px;
  }

  .adm-table-wrap{
    overflow:visible;
  }

  .adm-table-wrap table,
  .adm-table-wrap thead,
  .adm-table-wrap tbody,
  .adm-table-wrap tr,
  .adm-table-wrap th,
  .adm-table-wrap td{
    display:block;
    width:100%;
  }

  .adm-table-wrap thead{
    display:none;
  }

  .adm-table-wrap tbody{
    display:grid;
    gap:.85rem;
  }

  .adm-table-wrap tr{
    padding:1rem;
    border:1px solid rgba(255,255,255,.08);
    border-radius:18px;
    background:rgba(255,255,255,.03);
  }

  .adm-table-wrap td{
    border:0;
    padding:.36rem 0;
    text-align:left;
  }

  .adm-table-wrap td::before{
    content:attr(data-label);
    display:block;
    margin-bottom:.24rem;
    font-size:.64rem;
    font-weight:700;
    letter-spacing:.11em;
    text-transform:uppercase;
    color:rgba(255,255,255,.34);
  }

  .adm-table-wrap td.td-actions{
    display:flex;
    flex-wrap:wrap;
    gap:.5rem;
    margin-top:.55rem;
    padding-top:.85rem;
    border-top:1px solid rgba(255,255,255,.08);
  }

  .adm-table-wrap td.td-actions::before{
    display:none;
  }

  .adm-table-wrap td.td-actions .adm-btn{
    flex:1 1 140px;
    justify-content:center;
  }

  body.light .adm-mobile-toggle,
  body.light .adm-sidebar-close{
    background:rgba(255,255,255,.82);
    border-color:rgba(0,0,0,.1);
    color:#111111;
  }

  body.light .adm-mobile-toggle:hover,
  body.light .adm-sidebar-close:hover{
    background:#ffffff;
    border-color:rgba(0,0,0,.16);
  }

  body.light .admin-sidebar{
    box-shadow:22px 0 50px rgba(43,36,24,.14);
  }

  body.light .admin-sidebar-head{
    border-color:rgba(0,0,0,.08);
  }

  body.light .adm-mobile-backdrop{
    background:rgba(32,24,12,.18);
  }

  body.light .adm-table-wrap tr{
    background:rgba(255,255,255,.84);
    border-color:rgba(0,0,0,.08);
  }

  body.light .adm-table-wrap td::before{
    color:rgba(0,0,0,.34);
  }

  body.light .adm-table-wrap td.td-actions{
    border-top-color:rgba(0,0,0,.08);
  }
}

@media (max-width: 520px){
  .mm-panel{
    width:100%;
    border-radius:0;
  }

  .mm-header{
    padding:.95rem .95rem 1rem;
  }

  .mm-link{
    padding:0 1rem;
  }

  .mm-cat{
    padding:0 .55rem;
  }

  .mm-cat-btn{
    padding:0 .85rem;
  }

  .mm-sub-link{
    padding:0 .85rem 0 1.15rem;
  }

  .mm-view-all{
    width:calc(100% - 1.1rem);
    margin:.9rem .55rem 0;
  }

  .mm-footer{
    padding:.95rem .75rem calc(1rem + env(safe-area-inset-bottom));
  }

  .admin-topbar{
    padding:.85rem .8rem;
    gap:.75rem;
    flex-wrap:wrap;
  }

  .admin-topbar-logo{
    font-size:.96rem;
  }

  #adm-time{
    display:none;
  }

  .adm-topbar-actions{
    width:100%;
  }

  .adm-top-action{
    flex:1 1 calc(50% - .25rem);
  }

  .admin-main{
    padding:.85rem .8rem 1rem;
  }

  .adm-stats{
    grid-template-columns:1fr;
  }

  .adm-stat{
    min-height:126px;
  }

  .adm-table-wrap tr{
    padding:.9rem;
  }
}

/* ==========================================================================
   Final UI Polish
   ========================================================================== */

body.light nav .logo{
  color:#1a1a1a;
}

body.light .nav-servizi-trigger{
  color:rgba(0,0,0,.62);
}

body.light .nav-servizi-trigger:hover,
body.light .nav-servizi-trigger.active,
body.light .nav-servizi-trigger[aria-expanded="true"]{
  color:#111111;
}

body.light .nav-servizi-trigger .nav-dd-chevron{
  color:currentColor;
  opacity:.68;
}

body.light .nav-servizi-trigger::after{
  background:var(--accent);
}

/* ==========================================================================
   Final Mobile WhatsApp Polish
   ========================================================================== */

@media (max-width: 900px){
  .whatsapp-float{
    width:64px;
    height:64px;
    bottom:max(1rem, env(safe-area-inset-bottom));
    right:1rem;
    border-radius:50%;
    background:#25D366;
    border:1px solid rgba(255,255,255,.16);
    box-shadow:0 18px 36px rgba(37,211,102,.26),0 12px 28px rgba(0,0,0,.22);
    -webkit-tap-highlight-color:transparent;
  }

  .whatsapp-float svg{
    width:32px;
    height:32px;
    fill:#ffffff;
  }

  .whatsapp-float .wa-tooltip{
    display:block;
    position:absolute;
    top:50%;
    right:calc(100% + .72rem);
    transform:translateY(-50%) translateX(8px);
    padding:.58rem .86rem;
    border-radius:999px;
    background:rgba(7,8,11,.92);
    color:#ffffff;
    font-size:.78rem;
    font-weight:600;
    line-height:1;
    letter-spacing:.01em;
    white-space:nowrap;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    box-shadow:0 14px 32px rgba(0,0,0,.24);
    transition:opacity .22s ease,transform .22s ease,visibility .22s ease;
  }

  .whatsapp-float .wa-tooltip::after{
    content:'';
    position:absolute;
    top:50%;
    right:-6px;
    width:12px;
    height:12px;
    border-radius:2px;
    transform:translateY(-50%) rotate(45deg);
    background:inherit;
  }

  .whatsapp-float:hover .wa-tooltip,
  .whatsapp-float:focus-visible .wa-tooltip,
  .whatsapp-float:active .wa-tooltip{
    opacity:1;
    visibility:visible;
    transform:translateY(-50%) translateX(0);
  }

  body.light .whatsapp-float{
    background:#25D366;
    border-color:rgba(0,0,0,.08);
    box-shadow:0 16px 34px rgba(37,211,102,.18),0 10px 24px rgba(0,0,0,.14);
  }

  body.light .whatsapp-float .wa-tooltip{
    background:#ffffff;
    color:#111111;
    box-shadow:0 12px 28px rgba(0,0,0,.14);
  }
}

@media (max-width: 520px){
  .whatsapp-float{
    width:62px;
    height:62px;
    right:.9rem;
  }

  .whatsapp-float svg{
    width:31px;
    height:31px;
  }

  .whatsapp-float .wa-tooltip{
    right:calc(100% + .58rem);
    padding:.54rem .8rem;
    font-size:.74rem;
  }
}

.whatsapp-float{
  width:64px;
  height:64px;
  bottom:1.2rem;
  right:1.2rem;
  border-radius:50%;
  background:#25D366;
  border:1px solid rgba(255,255,255,.16);
  box-shadow:0 18px 36px rgba(37,211,102,.26),0 12px 28px rgba(0,0,0,.22);
}

.whatsapp-float svg{
  width:32px;
  height:32px;
  fill:#ffffff;
  display:block;
}

.whatsapp-float:hover{
  transform:translateY(-3px) scale(1.06);
  box-shadow:0 22px 42px rgba(37,211,102,.32),0 14px 32px rgba(0,0,0,.26);
}

.whatsapp-float .wa-tooltip{
  right:78px;
}

body.light .whatsapp-float{
  background:#25D366;
  border-color:rgba(0,0,0,.08);
  box-shadow:0 16px 34px rgba(37,211,102,.18),0 10px 24px rgba(0,0,0,.14);
}

body.light .whatsapp-float .wa-tooltip{
  background:#ffffff;
  color:#111111;
}

body.light .whatsapp-float .wa-tooltip::after{
  border-left-color:#ffffff;
}

@media (max-width: 900px){
  .mobile-menu .mm-nav{
    padding:.38rem .72rem 0;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:.28rem;
  }

  .mobile-menu .mm-nav > .mm-accordion{
    width:100%;
    margin:0;
    align-self:stretch;
  }

  .mobile-menu .mm-nav > .mm-link,
  .mobile-menu .mm-nav > .mm-accordion > .mm-accordion-btn{
    width:100%;
    min-height:52px;
    padding:0 .92rem;
    border:1px solid rgba(255,255,255,.08);
    border-radius:14px;
    background:rgba(255,255,255,.035);
  }

  .mobile-menu .mm-accordion-panel{
    padding:.04rem 0 0;
    background:transparent;
    border:0;
  }

  .mobile-menu .mm-cat{
    padding:0;
    margin:0;
  }

  .mobile-menu .mm-cat-btn{
    min-height:48px;
    margin-top:.24rem;
    padding:0 .92rem;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.55rem;
    align-items:center;
    border:1px solid rgba(255,255,255,.06);
    border-radius:12px;
    background:rgba(255,255,255,.025);
    text-align:left;
    font-size:.76rem;
    letter-spacing:.09em;
  }

  .mobile-menu .mm-cat-btn > svg:first-child{
    display:none;
  }

  .mobile-menu .mm-cat-links{
    padding:.06rem 0 0;
  }

  .mobile-menu .mm-sub-link{
    min-height:42px;
    margin-top:.18rem;
    padding:0 .92rem;
    display:flex;
    align-items:center;
    border:1px solid rgba(255,255,255,.05);
    border-radius:10px;
    background:rgba(255,255,255,.02);
    font-size:.88rem;
  }

  .mobile-menu .mm-sub-parent{
    min-height:44px;
    padding-left:.92rem !important;
    background:rgba(224,92,16,.1);
    border-color:rgba(224,92,16,.22) !important;
    color:#ffffff !important;
  }

  .mobile-menu .mm-view-all{
    width:100%;
    margin:.46rem 0 0;
    min-height:48px;
    padding:.82rem .92rem;
  }

  .mobile-menu .mm-footer{
    padding:.8rem .72rem calc(.92rem + env(safe-area-inset-bottom));
  }

  .mobile-menu .mm-contact-item{
    width:100%;
    min-height:46px;
    padding:.72rem .92rem;
    display:grid;
    grid-template-columns:auto 1fr;
    align-items:center;
    column-gap:.68rem;
    border-radius:10px;
  }

  .mobile-menu .mm-contact-item svg{
    width:18px;
    height:18px;
    opacity:.88;
  }

  body.light .mobile-menu .mm-nav > .mm-link,
  body.light .mobile-menu .mm-nav > .mm-accordion > .mm-accordion-btn{
    background:rgba(255,255,255,.7);
    border-color:rgba(0,0,0,.08);
  }

  body.light .mobile-menu .mm-cat-btn{
    background:rgba(255,255,255,.58);
    border-color:rgba(0,0,0,.08);
    color:rgba(0,0,0,.62);
  }

  body.light .mobile-menu .mm-sub-link{
    background:rgba(255,255,255,.62);
    border-color:rgba(0,0,0,.05);
    color:rgba(0,0,0,.6);
  }

  body.light .mobile-menu .mm-sub-parent{
    color:#1a1a1a !important;
    background:rgba(224,92,16,.1);
  }

  .hero{
    padding:calc(54px + 1.35rem) 1.2rem 2.45rem !important;
    min-height:auto !important;
  }

  .hero-tag-row{
    margin-bottom:1.2rem !important;
  }

  .hero-sub-row{
    margin-top:1.45rem !important;
    gap:1.25rem !important;
    align-items:flex-start;
  }

  .page-wrap{
    padding-top:3.65rem !important;
  }

  .sub-page,
  .servizi-page,
  .svc-page-wrap{
    padding-top:3.75rem !important;
  }

  .servizi-hero{
    padding:2rem 0 1.45rem !important;
  }

  .sub-page-hero{
    padding:4.3rem 0 2.65rem !important;
  }

  .cat-hero{
    padding:4.6rem 0 2.9rem !important;
  }

  .sp-hero{
    padding:3.7rem 1.15rem 1.95rem !important;
    min-height:36vh !important;
  }

  .sp-body{
    padding:2.25rem 0 0 !important;
  }
}

@media (max-width: 600px){
  .mobile-menu .mm-nav{
    padding:.34rem .62rem 0;
    align-items:stretch;
    justify-content:flex-start;
    gap:.22rem;
  }

  .mobile-menu .mm-nav > .mm-link,
  .mobile-menu .mm-nav > .mm-accordion > .mm-accordion-btn,
  .mobile-menu .mm-cat-btn{
    width:100%;
    min-height:48px;
    padding:0 .84rem;
  }

  .mobile-menu .mm-sub-link{
    min-height:40px;
    padding:0 .84rem;
  }

  .mobile-menu .mm-footer{
    padding:.72rem .62rem calc(.9rem + env(safe-area-inset-bottom));
  }

  .whatsapp-float{
    width:64px;
    height:64px;
    bottom:1rem;
    right:1rem;
  }

  .whatsapp-float svg{
    width:32px;
    height:32px;
  }

  .whatsapp-float .wa-tooltip{
    display:none;
  }

  .whatsapp-float .wa-tooltip{
    display:block !important;
    position:absolute !important;
    top:50% !important;
    right:calc(100% + .72rem) !important;
    transform:translateY(-50%) translateX(8px) !important;
    padding:.58rem .86rem !important;
    border-radius:999px !important;
    background:rgba(7,8,11,.92) !important;
    color:#ffffff !important;
    font-size:.78rem !important;
    font-weight:600 !important;
    line-height:1 !important;
    letter-spacing:.01em !important;
    white-space:nowrap !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    box-shadow:0 14px 32px rgba(0,0,0,.24) !important;
    transition:opacity .22s ease,transform .22s ease,visibility .22s ease !important;
  }

  .whatsapp-float .wa-tooltip::after{
    content:'' !important;
    position:absolute !important;
    top:50% !important;
    right:-6px !important;
    width:12px !important;
    height:12px !important;
    border-radius:2px !important;
    transform:translateY(-50%) rotate(45deg) !important;
    background:inherit !important;
  }

  .whatsapp-float:hover .wa-tooltip,
  .whatsapp-float:focus-visible .wa-tooltip,
  .whatsapp-float:active .wa-tooltip{
    opacity:1 !important;
    visibility:visible !important;
    transform:translateY(-50%) translateX(0) !important;
  }

  body.light .whatsapp-float{
    background:#25D366 !important;
    border-color:rgba(0,0,0,.08) !important;
    box-shadow:0 16px 34px rgba(37,211,102,.18),0 10px 24px rgba(0,0,0,.14) !important;
  }

  body.light .whatsapp-float .wa-tooltip{
    background:#ffffff !important;
    color:#111111 !important;
    box-shadow:0 12px 28px rgba(0,0,0,.14) !important;
  }

  .hero{
    padding:calc(54px + 1rem) 1rem 2rem !important;
  }

  .servizi-hero{
    padding:1.7rem 0 1.25rem !important;
  }

  .sub-page-hero{
    padding:3.85rem 0 2.35rem !important;
  }

  .cat-hero{
    padding:4.1rem 0 2.45rem !important;
  }

  .sp-hero{
    padding:3.35rem 1rem 1.7rem !important;
  }
}

/* ==========================================================================
   Final Scroll + CTA Cleanup
   ========================================================================== */

html.project-modal-open,
body.project-modal-open{
  overflow:hidden;
}

body.project-modal-open .whatsapp-float{
  opacity:0;
  pointer-events:none;
}

.mega-link-arrow,
.svc-arrow{
  display:none !important;
}

.svc-explore{
  gap:0 !important;
}

.modal-close-btn,
.adm-modal-close,
.proj-open-btn{
  touch-action:manipulation;
}

@media (max-width: 900px){
  .modal-backdrop{
    align-items:flex-end;
    justify-content:stretch;
    padding:max(.75rem, env(safe-area-inset-top)) 0 0;
  }

  .modal-box{
    width:100%;
    max-width:none;
    max-height:100dvh;
    min-height:min(70dvh, 100%);
    border-left:none;
    border-right:none;
    border-bottom:none;
    border-radius:22px 22px 0 0;
  }

  .modal-body{
    padding:1.35rem 1.15rem calc(1.5rem + env(safe-area-inset-bottom));
  }

  .modal-info-grid{
    grid-template-columns:1fr;
    gap:1rem;
  }

  .modal-close-btn{
    top:max(.85rem, env(safe-area-inset-top));
    margin:.85rem .9rem 0 auto;
    width:46px;
    height:46px;
    min-width:46px;
  }

  .modal-box h2{
    overflow-wrap:anywhere;
  }

  .modal-desc,
  .modal-info-item span{
    overflow-wrap:anywhere;
  }
}

/* Final theme-aware WhatsApp button override */
.whatsapp-float{
  background:#ffffff !important;
  color:#111111 !important;
  border-color:rgba(255,255,255,.2) !important;
  box-shadow:0 18px 36px rgba(0,0,0,.26),0 10px 24px rgba(0,0,0,.18) !important;
}

.whatsapp-float svg{
  fill:currentColor !important;
}

.whatsapp-float:hover{
  box-shadow:0 24px 44px rgba(0,0,0,.3),0 14px 30px rgba(0,0,0,.22) !important;
}

.whatsapp-float .wa-tooltip{
  background:#ffffff !important;
  color:#111111 !important;
  box-shadow:0 14px 32px rgba(0,0,0,.16) !important;
}

.whatsapp-float .wa-tooltip::after{
  border-left-color:#ffffff !important;
}

body.light .whatsapp-float{
  background:#111111 !important;
  color:#ffffff !important;
  border-color:rgba(0,0,0,.12) !important;
  box-shadow:0 18px 36px rgba(0,0,0,.18),0 10px 24px rgba(0,0,0,.12) !important;
}

body.light .whatsapp-float:hover{
  box-shadow:0 24px 44px rgba(0,0,0,.22),0 14px 30px rgba(0,0,0,.16) !important;
}

body.light .whatsapp-float .wa-tooltip{
  background:#111111 !important;
  color:#ffffff !important;
  box-shadow:0 14px 32px rgba(0,0,0,.18) !important;
}

body.light .whatsapp-float .wa-tooltip::after{
  border-left-color:#111111 !important;
}

/* Final nav, mobile menu and WhatsApp polish */
.nav-right{
  display:flex;
  align-items:center;
  gap:.75rem;
  min-width:0;
}

.nav-socials{
  display:flex;
  align-items:center;
  gap:.4rem;
  padding:.28rem;
  border:1px solid rgba(255,255,255,.08);
  border-radius:999px;
  background:rgba(255,255,255,.03);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}

.nav-social{
  width:40px;
  height:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  color:rgba(255,255,255,.72);
  transition:transform .22s ease,background .22s ease,color .22s ease,box-shadow .22s ease;
}

.nav-social svg{
  width:17px;
  height:17px;
  flex-shrink:0;
}

.nav-social:hover{
  color:#fff;
  background:rgba(224,92,16,.14);
  transform:translateY(-1px);
  box-shadow:0 10px 20px rgba(0,0,0,.14);
}

body.light .nav-socials{
  border-color:rgba(0,0,0,.08);
  background:rgba(255,255,255,.72);
}

body.light .nav-social{
  color:rgba(0,0,0,.62);
}

body.light .nav-social:hover{
  color:#111;
  background:rgba(224,92,16,.12);
}

.mobile-menu .mm-footer{
  gap:.85rem;
  padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom));
  border-top:1px solid rgba(255,255,255,.08);
}

.mobile-menu .mm-cta{
  width:100%;
  justify-content:center;
}

.mobile-menu .mm-contacts{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.7rem;
}

.mobile-menu .mm-contact-item{
  min-height:54px;
  padding:.88rem .85rem;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  text-align:center;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.04);
  color:rgba(255,255,255,.82);
}

.mobile-menu .mm-contact-item.mm-contact-item-full{
  grid-column:1 / -1;
  justify-content:flex-start;
  text-align:left;
}

.mobile-menu .mm-contact-item svg{
  width:16px;
  height:16px;
  flex-shrink:0;
}

.mobile-menu .mm-contact-item:hover{
  background:rgba(224,92,16,.08);
  border-color:rgba(224,92,16,.24);
  color:#fff;
}

body.light .mobile-menu .mm-footer{
  border-top-color:rgba(0,0,0,.08);
}

body.light .mobile-menu .mm-contact-item{
  border-color:rgba(0,0,0,.1);
  background:rgba(255,255,255,.82);
  color:rgba(0,0,0,.7);
}

body.light .mobile-menu .mm-contact-item:hover{
  color:#111;
  background:rgba(224,92,16,.1);
  border-color:rgba(224,92,16,.22);
}

.whatsapp-float{
  right:max(1rem, calc(env(safe-area-inset-right) + 1rem)) !important;
  bottom:max(1rem, calc(env(safe-area-inset-bottom) + 1rem)) !important;
  width:56px !important;
  height:56px !important;
  border-radius:18px !important;
}

.whatsapp-float .wa-tooltip{
  right:calc(100% + .85rem);
}

@media(max-width:1180px){
  .nav-socials{
    display:none;
  }
}

@media(max-width:900px){
  nav{
    padding:1rem 1rem;
  }

  nav.scrolled{
    padding:.78rem 1rem;
  }

  .nav-right{
    gap:.5rem;
  }

  .whatsapp-float{
    right:max(.8rem, calc(env(safe-area-inset-right) + .8rem)) !important;
    bottom:max(.8rem, calc(env(safe-area-inset-bottom) + .8rem)) !important;
    width:50px !important;
    height:50px !important;
    border-radius:16px !important;
  }

  .whatsapp-float svg{
    width:22px !important;
    height:22px !important;
  }

  .whatsapp-float .wa-tooltip{
    display:none !important;
  }
}

@media(max-width:520px){
  .mobile-menu .mm-footer{
    gap:.75rem;
    padding:.95rem .85rem calc(.95rem + env(safe-area-inset-bottom));
  }

  .mobile-menu .mm-contacts{
    gap:.6rem;
  }

  .mobile-menu .mm-contact-item{
    min-height:50px;
    padding:.8rem .72rem;
    font-size:.82rem;
  }
}

/* Final project modal mobile spacing */
@media(max-width:900px){
  .modal-box{
    max-height:100dvh;
    border-radius:24px 24px 0 0;
  }

  .modal-hero{
    aspect-ratio:5 / 4;
    min-height:clamp(240px, 62vw, 380px);
  }

  .modal-body{
    padding:1.5rem 1.15rem calc(1.65rem + env(safe-area-inset-bottom));
  }

  .modal-meta{
    gap:.7rem;
    margin-bottom:1.1rem;
  }

  .modal-box h2{
    font-size:1.7rem;
    line-height:1.08;
    margin-bottom:.85rem;
  }

  .modal-desc{
    font-size:.96rem;
    line-height:1.78;
    margin-bottom:1.4rem;
  }

  .modal-info-grid,
  .modal-tech-row,
  .modal-cta-row{
    padding-top:1.2rem;
  }
}

@media(max-width:560px){
  .modal-hero{
    aspect-ratio:4 / 3;
    min-height:230px;
  }

  .modal-body{
    padding:1.35rem .98rem calc(1.45rem + env(safe-area-inset-bottom));
  }

  .modal-box h2{
    font-size:1.5rem;
  }

  .modal-desc{
    font-size:.92rem;
    line-height:1.72;
  }

  .modal-info-item span{
    font-size:.9rem;
  }
}
