/*
Theme Name: Radice Lavica
Theme URI: https://www.radicelavica.it
Author: Radice Lavica
Author URI: https://www.radicelavica.it
Description: Tema WordPress su misura per Radice Lavica — design corporate luxury (hotel, grandi eventi, concorsi pubblici, business) con animazioni allo scroll, hero con parallax, contatori animati. Testi, immagini, contatti, colori del testo e font sono interamente modificabili da Personalizza (Customizer), senza toccare codice.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Tested up to: 6.6
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: radice-lavica
*/

  :root{
    --ink:#12141a;
    --ink-2:#181c26;
    --navy:#161c2c;
    --navy-2:#1c2338;
    --paper:#f6f3ec;
    --paper-2:#eee9dd;
    --gold:#c7a567;
    --gold-soft:#d9c093;
    --gold-dim:#8c7444;
    --text-onDark:#efece4;
    --text-onDark-muted:#a2a6b4;
    --text-onLight:#181a20;
    --text-onLight-muted:#5b5d66;
    --line-onDark:rgba(239,236,228,0.14);
    --line-gold:rgba(199,165,103,0.35);
    --radius:2px;
    --ease:cubic-bezier(.16,.8,.24,1);
    --maxw:1240px;
    --font-display:'Jost',sans-serif;
    --font-body:'Manrope',sans-serif;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important;}
  }

  body{
    margin:0;
    background:var(--ink);
    color:var(--text-onDark);
    font-family:var(--font-body);
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }

  h1,h2,h3,h4{
    font-family:var(--font-display);
    font-weight:500;
    line-height:1.08;
    margin:0;
    letter-spacing:-0.005em;
  }

  p{margin:0;}
  a{color:inherit;text-decoration:none;}
  img{max-width:100%;display:block;}
  ul{margin:0;padding:0;list-style:none;}
  button{font-family:inherit;}

  a:focus-visible, button:focus-visible, [tabindex]:focus-visible{
    outline:2px solid var(--gold);
    outline-offset:3px;
  }

  .skip-link{
    position:absolute; left:-9999px; top:0; z-index:999;
    background:var(--gold); color:var(--ink); padding:12px 20px; font-weight:700;
  }
  .skip-link:focus{left:16px; top:16px;}

  .wrap{max-width:var(--maxw); margin:0 auto; padding:0 32px;}
  @media (max-width:720px){ .wrap{padding:0 22px;} }

  .eyebrow{
    display:inline-flex; align-items:center; gap:10px;
    font-family:var(--font-body); font-weight:700; font-size:12px;
    letter-spacing:0.22em; text-transform:uppercase; color:var(--gold);
  }
  .eyebrow::before{content:""; width:26px; height:1px; background:var(--gold);}

  /* ============ NAV ============ */
  .nav{
    position:fixed; top:0; left:0; right:0; z-index:500;
    padding:22px 0;
    background:transparent;
    border-bottom:1px solid transparent;
    transition:background .45s var(--ease), border-color .45s var(--ease), padding .35s var(--ease), backdrop-filter .45s var(--ease);
  }
  .nav.is-solid{
    background:rgba(18,20,26,0.92);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line-onDark);
    padding:14px 0;
  }
  .nav .wrap{display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:nowrap;}
  .brand{display:flex; align-items:center; gap:12px; font-family:var(--font-display); font-weight:500; font-size:19px; letter-spacing:0.02em; text-transform:uppercase; white-space:nowrap; flex:none;}
  .brand small{white-space:normal;}
  .brand img.custom-logo{ height:40px; width:auto; max-width:none; display:block; transition:height .3s var(--ease); }
  .nav.is-solid .brand img.custom-logo{ height:34px; }
  .brand .mark{
    width:34px; height:34px; border:1px solid var(--gold-dim); border-radius:50%;
    display:grid; place-items:center; position:relative; flex:none;
  }
  .brand .mark::before{content:""; width:6px; height:6px; background:var(--gold); border-radius:50%;}
  .brand .mark::after{
    content:""; position:absolute; inset:6px; border:1px solid var(--line-gold); border-radius:50%;
  }
  .brand small{display:block; font-family:var(--font-body); font-size:10px; letter-spacing:0.18em; color:var(--text-onDark-muted); font-weight:600; text-transform:uppercase; margin-top:2px;}

  .nav-links{display:flex; align-items:center; gap:34px; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; -ms-overflow-style:none; max-width:100%;}
  .nav-links::-webkit-scrollbar{display:none;}
  .nav-links li{list-style:none; margin:0; padding:0; flex:none;}
  .nav-links a{
    font-size:13.5px; font-weight:600; letter-spacing:0.03em; color:var(--text-onDark-muted);
    position:relative; padding:6px 0; transition:color .25s var(--ease);
  }
  .nav-links a::after{
    content:""; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--gold);
    transition:width .3s var(--ease);
  }
  .nav-links a:hover, .nav-links a:focus-visible{color:var(--text-onDark);}
  .nav-links a:hover::after, .nav-links a:focus-visible::after{width:100%;}
  .nav-links a.current{color:var(--gold);}

  .btn{
    display:inline-flex; align-items:center; gap:10px;
    font-family:var(--font-body);
    font-size:13px; font-weight:700; letter-spacing:0.05em; text-transform:uppercase;
    padding:14px 26px; border-radius:var(--radius); cursor:pointer; border:1px solid transparent;
    transition:transform .35s var(--ease), background .3s var(--ease), border-color .3s var(--ease), color .3s var(--ease);
    white-space:nowrap;
  }
  .btn-gold{ background:var(--gold); color:#191305; }
  .btn-gold:hover{ background:var(--gold-soft); transform:translateY(-2px); }
  .btn-ghost{ border-color:var(--line-onDark); color:var(--text-onDark); background:transparent; }
  .btn-ghost:hover{ border-color:var(--gold); color:var(--gold); transform:translateY(-2px); }
  .btn-ghost-light{ border-color:rgba(24,26,32,0.2); color:var(--text-onLight); }
  .btn-ghost-light:hover{ border-color:var(--gold-dim); color:var(--gold-dim); transform:translateY(-2px); }
  .btn svg{width:14px; height:14px; transition:transform .3s var(--ease);}
  .btn:hover svg{transform:translateX(3px);}

  .nav-cta{display:flex; align-items:center; gap:18px;}
  .burger{display:none; flex:none; width:42px; height:42px; border:1px solid var(--line-onDark); border-radius:50%; background:transparent; position:relative; cursor:pointer;}
  .burger span, .burger span::before, .burger span::after{
    content:""; position:absolute; left:11px; width:20px; height:1px; background:var(--text-onDark);
    transition:transform .3s var(--ease), opacity .3s var(--ease);
  }
  .burger span{top:20px;}
  .burger span::before{content:""; top:-6px;}
  .burger span::after{content:""; top:6px;}
  .burger span::before, .burger span::after{position:absolute; left:0;}

  @media (max-width:980px){
    .nav-links{
      position:fixed; inset:0 0 0 auto; width:min(360px,86vw); height:100vh;
      background:var(--navy); flex-direction:column; align-items:flex-start; justify-content:center;
      gap:26px; padding:40px; transform:translateX(100%); transition:transform .45s var(--ease);
      border-left:1px solid var(--line-onDark);
    }
    .nav-links.open{transform:translateX(0);}
    .nav-links a{font-size:19px;}
    .burger{display:block;}
    .nav-cta .btn-ghost{display:none;}
  }

  /* ============ HERO ============ */
  .hero{
    position:relative; min-height:100vh; display:flex; align-items:flex-end;
    padding:160px 0 96px; overflow:hidden;
    background:var(--ink);
  }
  .hero-bg-layer{
    position:absolute; inset:-3% -3%; z-index:0; will-change:transform;
    background:
      radial-gradient(120% 90% at 50% 40%, transparent 45%, rgba(12,13,17,0.35) 100%),
      linear-gradient(180deg, rgba(12,13,17,0.55) 0%, rgba(12,13,17,0.35) 30%, rgba(10,11,15,0.88) 80%, var(--ink) 100%),
      url('https://www.radicelavica.it/wp-content/themes/radice-lavica-theme-corretto/assets/images/hotel-management.jpg') center 38%/cover no-repeat;
  }
  .hero .wrap{position:relative; z-index:2; width:100%;}
  .hero-grid{display:grid; grid-template-columns:1.5fr 1fr; gap:60px; align-items:end;}
  .hero-kicker{color:var(--gold); margin-bottom:22px;}
  .hero h1{
    font-size:clamp(38px, 5vw, 72px); color:#fff; max-width:18ch; font-weight:400; letter-spacing:-0.01em;
  }
  .hero h1 .accent{color:var(--gold-soft); font-weight:500;}
  .hero-sub{
    margin-top:26px; max-width:48ch; font-size:17px; color:var(--text-onDark-muted); font-weight:500;
  }
  .hero-actions{display:flex; gap:16px; margin-top:40px; flex-wrap:wrap;}
  .hero-aside{
    border-left:1px solid var(--line-gold); padding-left:28px; align-self:end;
  }
  .hero-aside p{font-size:14.5px; color:var(--text-onDark-muted); line-height:1.7;}
  .hero-aside strong{color:var(--text-onDark); font-weight:600; display:block; margin-bottom:8px; font-family:var(--font-display); font-size:16px; letter-spacing:0.02em;}

  .scroll-cue{
    position:absolute; bottom:28px; left:50%; transform:translateX(-50%); z-index:2;
    display:flex; flex-direction:column; align-items:center; gap:10px;
    color:var(--text-onDark-muted); font-size:11px; letter-spacing:0.2em; text-transform:uppercase;
  }
  .scroll-cue .line{width:1px; height:34px; background:linear-gradient(var(--gold), transparent); animation:pulseLine 2.4s ease-in-out infinite;}
  @keyframes pulseLine{ 0%,100%{opacity:.3;} 50%{opacity:1;} }

  @media (max-width:980px){
    .hero-grid{grid-template-columns:1fr;}
    .hero-aside{border-left:none; border-top:1px solid var(--line-gold); padding-left:0; padding-top:22px;}
    .hero{padding:150px 0 80px;}
  }

  /* ============ MARQUEE STRIP ============ */
  .strip{
    background:var(--navy); border-top:1px solid var(--line-onDark); border-bottom:1px solid var(--line-onDark);
    overflow:hidden; padding:16px 0;
  }
  .strip-track{display:flex; width:max-content; animation:scrollStrip 34s linear infinite;}
  .strip-track span{
    display:flex; align-items:center; gap:14px;
    font-family:var(--font-display); font-weight:500; letter-spacing:0.03em; font-size:15px; color:var(--text-onDark-muted);
    padding:0 34px; white-space:nowrap; text-transform:uppercase;
  }
  .strip-track span::after{content:"—"; color:var(--gold-dim); margin-left:34px; text-transform:none;}
  @keyframes scrollStrip{ from{transform:translateX(0);} to{transform:translateX(-50%);} }

  /* ============ SECTION SHELL ============ */
  section{position:relative;}
  .sec{padding:120px 0;}
  .sec-light{background:var(--paper); color:var(--text-onLight);}
  .sec-light .eyebrow, .sec-light .eyebrow::before{color:var(--gold-dim);}
  .sec-navy{background:var(--navy);}
  .sec-ink{background:var(--ink);}
  @media (max-width:720px){ .sec{padding:80px 0;} }

  .sec-head{max-width:760px; margin-bottom:64px;}
  .sec-head h2{font-size:clamp(28px,3.6vw,44px); margin-top:18px; font-weight:400;}
  .sec-head p.lede{margin-top:20px; font-size:16.5px; color:var(--text-onDark-muted); max-width:58ch;}
  .sec-light .sec-head p.lede{color:var(--text-onLight-muted);}
  .sec-head.center{margin-left:auto; margin-right:auto; text-align:center;}
  .sec-head.center .eyebrow::before{display:none;}
  .sec-head.center .eyebrow{gap:0;}

  /* reveal */
  .reveal{opacity:0; transform:translateY(28px); transition:opacity .9s var(--ease), transform .9s var(--ease);}
  .reveal.in{opacity:1; transform:translateY(0);}
  .reveal-delay-1{transition-delay:.08s;}
  .reveal-delay-2{transition-delay:.16s;}
  .reveal-delay-3{transition-delay:.24s;}
  .reveal-delay-4{transition-delay:.32s;}

  /* ============ POSITIONING QUOTE ============ */
  .quote-block{max-width:920px;}
  .quote-block p{
    font-family:var(--font-display); font-weight:400; font-size:clamp(23px,2.8vw,32px);
    line-height:1.4; color:var(--text-onDark); letter-spacing:0.005em;
  }
  .quote-block p .accent{color:var(--gold-soft); font-weight:500;}
  .quote-foot{margin-top:34px; display:flex; gap:16px; align-items:center; color:var(--text-onDark-muted); font-size:14px;}
  .quote-foot .dot{width:6px; height:6px; border-radius:50%; background:var(--gold);}

  /* ============ AREE (4 cards) ============ */
  .areas-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line-onDark); border:1px solid var(--line-onDark);}
  .area-card{
    background:var(--ink); padding:38px 30px 34px; position:relative; overflow:hidden; min-height:420px;
    display:flex; flex-direction:column; justify-content:flex-end;
  }
  .area-card .area-img{
    position:absolute; inset:0; background-size:cover; background-position:center;
    opacity:0.34; transform:scale(1.06); transition:opacity .55s var(--ease), transform .8s var(--ease);
  }
  .area-card::before{
    content:""; position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(18,20,26,0.15) 0%, var(--ink) 92%);
  }
  .area-card:hover .area-img{opacity:0.5; transform:scale(1.12);}
  .area-card.is-priority{ box-shadow: inset 0 0 0 1px rgba(199,165,103,0.4); }
  .area-num{position:relative; z-index:2; font-family:var(--font-display); font-weight:500; color:var(--gold); font-size:14px; margin-bottom:auto; letter-spacing:0.04em;}
  .area-flag{position:relative; z-index:2; margin-bottom:auto; display:flex; justify-content:space-between; align-items:flex-start;}
  .area-flag .tag{font-size:10px; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:var(--gold-soft); border:1px solid var(--line-gold); padding:4px 9px; border-radius:20px;}
  .area-body{position:relative; z-index:2;}
  .area-body h3{font-size:22px; font-weight:500; margin-bottom:12px; letter-spacing:0.01em;}
  .area-body p{font-size:14.5px; color:var(--text-onDark-muted); line-height:1.65; margin-bottom:20px;}
  .area-link{
    font-size:12px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--gold);
    display:inline-flex; align-items:center; gap:8px;
  }
  .area-link svg{width:12px; height:12px; transition:transform .3s var(--ease);}
  .area-card:hover .area-link svg{transform:translateX(4px);}

  @media (max-width:1080px){ .areas-grid{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:600px){ .areas-grid{grid-template-columns:1fr;} .area-card{min-height:340px;} }

  /* ============ METODO ============ */
  .method-list{border-top:1px solid rgba(24,26,32,0.12);}
  .method-row{
    display:grid; grid-template-columns:90px 1fr 1.3fr; gap:32px; align-items:start;
    padding:38px 0; border-bottom:1px solid rgba(24,26,32,0.12);
    transition:background .35s var(--ease);
  }
  .method-row:hover{background:rgba(140,116,68,0.05);}
  .method-idx{font-family:var(--font-display); font-weight:500; font-size:30px; color:var(--gold-dim);}
  .method-row h3{font-size:22px; font-weight:500; color:var(--text-onLight);}
  .method-row p{color:var(--text-onLight-muted); font-size:15px; line-height:1.7; max-width:52ch;}
  @media (max-width:760px){
    .method-row{grid-template-columns:56px 1fr; grid-template-rows:auto auto;}
    .method-row p{grid-column:2; }
  }

  /* ============ STATS ============ */
  .stats-band{
    background:var(--navy); border-top:1px solid var(--line-onDark); border-bottom:1px solid var(--line-onDark);
    padding:70px 0;
  }
  .stats-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:40px;}
  .stat{text-align:left; border-left:1px solid var(--line-gold); padding-left:22px;}
  .stat .num{
    font-family:var(--font-display); font-weight:500; font-size:clamp(34px,4vw,54px); color:var(--gold-soft);
    display:flex; align-items:baseline; gap:4px;
  }
  .stat .label{margin-top:10px; font-size:13px; letter-spacing:0.04em; color:var(--text-onDark-muted); max-width:22ch;}
  @media (max-width:900px){ .stats-grid{grid-template-columns:repeat(2,1fr); row-gap:34px;} }

  /* ============ SPECIALISTICI (alternating rows) ============ */
  .service-row{
    display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center;
    padding:80px 0; border-bottom:1px solid var(--line-onDark);
  }
  .service-row:last-child{border-bottom:none;}
  .service-row:nth-child(even) .service-media{order:2;}
  .service-media{
    aspect-ratio:4/3; overflow:hidden; position:relative; border:1px solid var(--line-onDark);
  }
  .service-media img{width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease);}
  .service-row:hover .service-media img{transform:scale(1.05);}
  .service-tag{color:var(--gold); font-size:12px; font-weight:700; letter-spacing:0.14em; text-transform:uppercase;}
  .service-text h3{font-size:clamp(23px,2.4vw,30px); margin-top:14px; font-weight:500; letter-spacing:0.01em;}
  .service-text p{margin-top:18px; color:var(--text-onDark-muted); font-size:15.5px; line-height:1.75; max-width:48ch;}
  .service-list{margin-top:24px; display:flex; flex-direction:column; gap:12px;}
  .service-list li{display:flex; gap:12px; font-size:14.5px; color:var(--text-onDark);}
  .service-list li::before{content:""; width:5px; height:5px; margin-top:8px; background:var(--gold); flex:none; border-radius:1px;}
  @media (max-width:860px){
    .service-row{grid-template-columns:1fr; gap:30px; padding:56px 0;}
    .service-row:nth-child(even) .service-media{order:0;}
  }

  /* ============ IDENTITY / PARALLAX ============ */
  .identity{
    position:relative; min-height:78vh; display:flex; align-items:center; overflow:hidden;
    background:
      linear-gradient(100deg, rgba(12,13,17,0.94) 0%, rgba(12,13,17,0.62) 46%, rgba(12,13,17,0.3) 100%),
      url('https://www.radicelavica.it/wp-content/themes/radice-lavica-theme-corretto/assets/images/sports-event.jpg') center/cover no-repeat fixed;
  }
  .identity-content{max-width:600px; padding:100px 0;}
  .identity h2{font-size:clamp(29px,3.4vw,44px); font-weight:500; margin-top:20px; color:#fff; letter-spacing:0.005em;}
  .identity p{margin-top:22px; color:var(--text-onDark-muted); font-size:16px; line-height:1.8;}
  .identity .btn{margin-top:34px;}

  /* ============ VALUES STRIP ============ */
  .values{padding:70px 0; background:var(--paper); color:var(--text-onLight); border-top:1px solid rgba(24,26,32,0.1);}
  .values-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:36px;}
  .value-item h4{font-family:var(--font-display); font-weight:500; font-size:18px; color:var(--gold-dim); letter-spacing:0.02em;}
  .value-item p{margin-top:10px; font-size:14px; color:var(--text-onLight-muted); line-height:1.6;}
  @media (max-width:860px){ .values-grid{grid-template-columns:repeat(2,1fr); row-gap:30px;} }

  /* ============ CONTACT CTA ============ */
  .contact-cta{
    background:var(--ink); padding:140px 0 110px; position:relative; overflow:hidden;
  }
  .cta-grid{display:grid; grid-template-columns:1.3fr 1fr; gap:70px;}
  .cta-grid h2{font-size:clamp(32px,4.2vw,54px); font-weight:400; max-width:14ch;}
  .cta-grid .lede{margin-top:24px; color:var(--text-onDark-muted); font-size:16.5px; max-width:44ch;}
  .cta-actions{margin-top:40px; display:flex; gap:16px; flex-wrap:wrap;}
  .cta-panel{border:1px solid var(--line-gold); padding:38px; align-self:start;}
  .cta-panel h3{font-size:15px; text-transform:uppercase; letter-spacing:0.1em; color:var(--gold); font-weight:700; font-family:var(--font-body);}
  .cta-panel ul{margin-top:22px; display:flex; flex-direction:column; gap:18px;}
  .cta-panel li a{font-size:15px; display:flex; flex-direction:column; gap:3px;}
  .cta-panel li small{color:var(--text-onDark-muted); font-size:11.5px; text-transform:uppercase; letter-spacing:0.08em;}
  .cta-panel li a:hover{color:var(--gold);}
  @media (max-width:900px){ .cta-grid{grid-template-columns:1fr;} }

  /* ============ FOOTER ============ */
  footer{background:var(--navy); border-top:1px solid var(--line-onDark); padding:64px 0 30px;}
  .foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:50px; padding-bottom:50px; border-bottom:1px solid var(--line-onDark);}
  .foot-brand p{margin-top:18px; color:var(--text-onDark-muted); font-size:14px; max-width:38ch; line-height:1.7;}
  footer h5{font-size:12px; text-transform:uppercase; letter-spacing:0.12em; color:var(--gold); font-weight:700; margin-bottom:18px;}
  .foot-col ul{display:flex; flex-direction:column; gap:12px;}
  .foot-col a{font-size:14.5px; color:var(--text-onDark-muted); transition:color .2s;}
  .foot-col a:hover{color:var(--text-onDark);}
  .foot-bottom{display:flex; justify-content:space-between; align-items:center; padding-top:26px; flex-wrap:wrap; gap:14px;}
  .foot-bottom p{font-size:12.5px; color:var(--text-onDark-muted);}
  .foot-legal{display:flex; gap:22px;}
  .foot-legal a{font-size:12.5px; color:var(--text-onDark-muted);}
  .foot-legal a:hover{color:var(--gold);}
  @media (max-width:800px){ .foot-grid{grid-template-columns:1fr; gap:34px;} }

  /* whatsapp float */
  .float-wa{
    position:fixed; right:24px; bottom:24px; z-index:400;
    width:56px; height:56px; border-radius:50%; background:var(--gold); color:#191305;
    display:grid; place-items:center; box-shadow:0 10px 30px rgba(0,0,0,0.35);
    transition:transform .3s var(--ease);
  }
  .float-wa:hover{transform:scale(1.08);}
  .float-wa svg{width:24px; height:24px;}

  ::selection{background:var(--gold); color:#191305;}


/* ===========================================================
   Adattamenti WordPress: header sticky, menu mobile, logo,
   contatori/reveal come classi generiche (già coperte sopra),
   pannelli Customizer (color-picker font live-preview vars).
   =========================================================== */

/* Logo: dimensioni gestibili via Customizer (classe .logo-img) */
.logo{ display:flex; align-items:center; gap:12px; }
.logo-img{ height:40px; width:auto; display:block; transition: height .3s var(--ease); }
.nav.is-solid .logo-img{ height:34px; }
@media (max-width:620px){ .logo-img{ height:32px; } }

/* Skip link già stilizzato sopra; assicurati compatibilità WP admin bar */
.admin-bar .nav{ top: 32px; }
@media (max-width:782px){ .admin-bar .nav{ top: 46px; } }
