/*
Theme Name: Danze Italia 2026
Theme URI: https://www.danzeitalia.it
Author: Danze Italia
Description: Tema ufficiale Danze Italia — restyling 2026. Rosso istituzionale, tipografia serif elegante, header con menu reale e barra rapida, grafica uniforme su tutte le pagine e articoli.
Version: 1.0.0
Text Domain: danzeitalia2026
*/

  :root {
    --red:#B90000; --red2:#8a0000; --wine:#5c0a12;
    --ink:#1c1417; --mut:#7a6f72; --cream:#faf6f1; --cream2:#f3ece3;
    --line:#e9e0d6; --gold:#c9a558;
    --serif:'Didot','Playfair Display','Bodoni MT',Georgia,'Times New Roman',serif;
    --sans:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Inter',sans-serif;
  }
  * { margin:0; padding:0; box-sizing:border-box; }
  html { scroll-behavior:smooth; }
  body { font-family:var(--sans); background:var(--cream); color:var(--ink); line-height:1.6; }
  a { text-decoration:none; color:inherit; }
  .wrap { max-width:1180px; margin:0 auto; padding:0 24px; }

  .topbar { background:var(--wine); color:#f5d9d9; font-size:12.5px; padding:7px 0; }
  .topbar .wrap { display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; }
  .topbar b { color:#fff; }

  header.site { background:rgba(250,246,241,.92); backdrop-filter:blur(12px); position:sticky; top:0; z-index:100; border-bottom:1px solid var(--line); }
  .nav { display:flex; align-items:center; justify-content:space-between; padding:14px 0; gap:20px; }
  nav.menu { display:flex; gap:24px; font-size:14px; font-weight:600; color:#453a3e; }
  nav.menu a { position:relative; padding:4px 0; }
  nav.menu a::after { content:''; position:absolute; left:0; bottom:-2px; width:0; height:2px; background:var(--red); transition:.25s; }
  nav.menu a:hover::after { width:100%; }
  .btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:12px 24px; border-radius:99px; font-weight:700; font-size:14px; cursor:pointer; border:none; transition:.25s; font-family:var(--sans); }
  .btn.red { background:var(--red); color:#fff; box-shadow:0 8px 24px rgba(185,0,0,.28); }
  .btn.red:hover { transform:translateY(-2px); box-shadow:0 12px 30px rgba(185,0,0,.38); }
  .btn.line { border:1.5px solid #d8cabb; color:var(--ink); background:transparent; }
  .btn.line:hover { border-color:var(--red); color:var(--red); }
  .btn.big { padding:16px 32px; font-size:15px; }
  .navcta { display:flex; gap:10px; align-items:center; }
  @media(max-width:920px){ nav.menu{display:none;} }

  /* HERO con video */
  .hero { background:radial-gradient(120% 130% at 78% 12%, #7d1220 0%, #4a0810 42%, #23070c 100%); color:#fff; position:relative; overflow:hidden; }
  .hero::before { content:''; position:absolute; inset:0; background:radial-gradient(60% 50% at 20% 90%, rgba(185,0,0,.35), transparent 65%); }
  .hero .wrap { position:relative; display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center; padding-top:72px; padding-bottom:88px; }
  .kicker { display:inline-flex; align-items:center; gap:10px; font-size:12px; letter-spacing:2.5px; text-transform:uppercase; color:#e9b8b8; font-weight:800; margin-bottom:18px; }
  .kicker::before { content:''; width:34px; height:1.5px; background:var(--gold); }
  h1.display { font-family:var(--serif); font-size:clamp(34px,4.6vw,54px); line-height:1.1; font-weight:600; letter-spacing:-.5px; }
  h1.display em { font-style:italic; color:#f2c7c7; }
  .hero p.lead { margin:20px 0 28px; font-size:16.5px; color:#e8d5d5; max-width:520px; line-height:1.7; }
  .hero p.lead b { color:#fff; }
  .ctas { display:flex; gap:14px; flex-wrap:wrap; }
  .trustrow { display:flex; gap:28px; margin-top:40px; flex-wrap:wrap; }
  .trust b { font-family:var(--serif); font-size:26px; color:#fff; display:block; }
  .trust span { font-size:12px; color:#d8b3b3; }
  .videobox { position:relative; }
  .videoframe { position:relative; border-radius:24px; overflow:hidden; box-shadow:0 40px 90px rgba(0,0,0,.55), 0 0 0 1px rgba(255,255,255,.14); aspect-ratio:16/9; background:#000; }
  .videoframe iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
  .videoglow { position:absolute; inset:-30px; background:radial-gradient(50% 50% at 50% 50%, rgba(185,0,0,.4), transparent 70%); z-index:-1; }
  .atfbadge { margin-top:18px; background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.2); backdrop-filter:blur(8px); border-radius:16px; padding:14px 20px; font-size:13.5px; color:#fff; display:flex; align-items:center; gap:12px; }
  .atfbadge .gift { font-size:24px; }
  .atfbadge b { color:var(--gold); }
  @media(max-width:920px){ .hero .wrap{grid-template-columns:1fr; padding-top:48px; padding-bottom:64px;} }

  .marquee { background:var(--gold); color:#2a1608; overflow:hidden; padding:11px 0; font-size:13px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; white-space:nowrap; }
  .marquee .in { display:inline-block; animation:mq 28s linear infinite; }
  @keyframes mq { from{transform:translateX(0);} to{transform:translateX(-50%);} }
  .marquee span { margin:0 26px; }

  section { padding:84px 0; }
  .eyebrow { font-size:11.5px; letter-spacing:3px; text-transform:uppercase; color:var(--red); font-weight:800; margin-bottom:12px; }
  h2.title { font-family:var(--serif); font-size:clamp(28px,3.4vw,42px); font-weight:600; line-height:1.15; letter-spacing:-.3px; }
  .sect-head { max-width:660px; margin-bottom:44px; }
  .sect-head p { margin-top:14px; color:var(--mut); font-size:15.5px; }

  /* SERVIZI — griglia moderna glass */
  .servgrid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
  .serv { position:relative; background:#fff; border:1px solid var(--line); border-radius:22px; padding:26px 24px; overflow:hidden; transition:.3s; cursor:pointer; }
  .serv::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--red),var(--gold)); opacity:0; transition:.3s; }
  .serv:hover { transform:translateY(-6px); box-shadow:0 26px 54px rgba(28,20,23,.12); }
  .serv:hover::before { opacity:1; }
  .serv .ic { width:50px; height:50px; border-radius:15px; background:linear-gradient(135deg,#fdeaea,#fad2d2); display:flex; align-items:center; justify-content:center; margin-bottom:18px; }
  .serv .ic svg { width:24px; height:24px; stroke:var(--red); fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
  .serv h3 { font-size:17px; font-weight:800; margin-bottom:6px; }
  .serv p { font-size:13.5px; color:var(--mut); }
  .serv .go { position:absolute; top:22px; right:22px; color:#d6c3b0; font-size:18px; transition:.3s; }
  .serv:hover .go { color:var(--red); transform:translateX(3px); }
  @media(max-width:920px){ .servgrid{grid-template-columns:1fr;} }

  /* CONCORSI dark */
  .dark { background:linear-gradient(170deg,#231014 0%,#160a0d 100%); color:#fff; }
  .dark .eyebrow { color:var(--gold); }
  .dark .sect-head p { color:#e8c9c9; }
  .events { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
  .ev { position:relative; background:linear-gradient(160deg,rgba(255,255,255,.07),rgba(255,255,255,.02)); border:1px solid rgba(255,255,255,.12); border-radius:22px; padding:26px; transition:.3s; overflow:hidden; }
  .ev::after { content:''; position:absolute; top:-40px; right:-40px; width:120px; height:120px; background:radial-gradient(circle,rgba(185,0,0,.35),transparent 70%); }
  .ev:hover { transform:translateY(-5px); border-color:rgba(201,165,88,.5); }
  .ev .date { display:inline-flex; flex-direction:column; align-items:center; background:var(--red); border-radius:13px; padding:8px 14px; margin-bottom:16px; }
  .ev .date b { font-family:var(--serif); font-size:23px; line-height:1; }
  .ev .date span { font-size:10.5px; letter-spacing:1.5px; text-transform:uppercase; }
  .ev h3 { font-family:var(--serif); font-size:20px; font-weight:600; margin-bottom:5px; }
  .ev .city { font-size:12.5px; color:#dcabab; margin-bottom:14px; }
  .ev a.more { font-size:13px; font-weight:700; color:var(--gold); }
  @media(max-width:920px){ .events{grid-template-columns:1fr;} }

  /* FORMAZIONE — discipline reali */
  .disc { display:flex; flex-wrap:wrap; gap:12px; }
  .chipd { display:inline-flex; align-items:center; gap:10px; background:#fff; border:1.5px solid var(--line); border-radius:99px; padding:13px 22px; font-weight:700; font-size:14px; transition:.25s; cursor:pointer; }
  .chipd:hover { border-color:var(--red); color:var(--red); transform:translateY(-2px); box-shadow:0 10px 24px rgba(185,0,0,.12); }
  .chipd .dot { width:9px; height:9px; border-radius:50%; background:linear-gradient(135deg,var(--red),var(--gold)); }

  /* WEB APP */
  .appband { background:linear-gradient(135deg,#1c1417,#33232a); border-radius:30px; padding:52px; display:grid; grid-template-columns:1.1fr .9fr; gap:40px; align-items:center; color:#fff; position:relative; overflow:hidden; }
  .appband::after { content:''; position:absolute; top:-80px; right:-60px; width:300px; height:300px; background:radial-gradient(circle,rgba(185,0,0,.4),transparent 70%); }
  .appband .eyebrow { color:var(--gold); }
  .appband p { color:#cdb9b9; }
  .appicons { display:flex; gap:14px; flex-wrap:wrap; margin-top:26px; position:relative; }
  .appic { width:60px; height:60px; border-radius:17px; display:flex; align-items:center; justify-content:center; color:#fff; font-weight:800; font-size:17px; font-family:var(--serif); box-shadow:0 12px 26px rgba(0,0,0,.4); }
  .phones { display:flex; justify-content:center; position:relative; }
  .miniphone { width:180px; background:#000; border-radius:28px; padding:8px; box-shadow:0 30px 60px rgba(0,0,0,.5); transform:rotate(4deg); }
  .miniphone .scr { border-radius:21px; overflow:hidden; background:#fff; }
  .miniphone .hd { background:var(--red); color:#fff; font-size:10px; font-weight:800; padding:12px 10px; }
  .miniphone .ln { height:9px; background:#efe7dc; border-radius:5px; margin:8px 10px; }
  .miniphone .ln.short { width:55%; }
  @media(max-width:920px){ .appband{grid-template-columns:1fr; padding:34px 24px;} .phones{display:none;} }

  /* TESTIMONIANZE */
  .testi { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
  .tcard { background:#fff; border:1px solid var(--line); border-radius:22px; padding:28px 24px; position:relative; }
  .tcard::before { content:'\201C'; font-family:var(--serif); font-size:60px; color:var(--red); line-height:0; position:absolute; top:36px; left:22px; opacity:.25; }
  .tcard p { font-size:14.5px; color:#4a3f43; font-style:italic; margin-bottom:18px; position:relative; }
  .tcard .who { display:flex; align-items:center; gap:11px; }
  .tcard .av { width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; font-weight:800; font-size:13px; }
  .tcard .wn b { display:block; font-size:13.5px; }
  .tcard .wn span { font-size:11.5px; color:var(--mut); }
  .stars { color:var(--gold); font-size:13px; letter-spacing:2px; margin-bottom:10px; }
  @media(max-width:920px){ .testi{grid-template-columns:1fr;} }

  /* NEWS */
  .news { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
  .ncard { background:#fff; border:1px solid var(--line); border-radius:22px; overflow:hidden; transition:.3s; }
  .ncard:hover { transform:translateY(-5px); box-shadow:0 22px 46px rgba(28,20,23,.1); }
  .ncard .img { height:150px; }
  .ncard .bd { padding:22px; }
  .ncard .cat { font-size:10.5px; letter-spacing:2px; text-transform:uppercase; color:var(--red); font-weight:800; }
  .ncard h3 { font-family:var(--serif); font-size:19px; font-weight:600; margin:8px 0 6px; line-height:1.3; }
  .ncard p { font-size:13.5px; color:var(--mut); }
  @media(max-width:920px){ .news{grid-template-columns:1fr;} }

  /* SHOP + NEWSLETTER combinati */
  .duo { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
  .shopcard { background:linear-gradient(135deg,#2a1a10,#4e3d22); border-radius:26px; color:#fff; padding:44px; position:relative; overflow:hidden; }
  .shopcard::after { content:''; position:absolute; bottom:-60px; right:-40px; width:220px; height:220px; background:radial-gradient(circle,rgba(201,165,88,.4),transparent 70%); }
  .shopcard h2 { font-family:var(--serif); font-size:27px; font-weight:600; }
  .shopcard p { color:#e3d2b4; margin:10px 0 22px; font-size:14px; }
  .newslcard { background:linear-gradient(135deg,var(--red),var(--wine)); border-radius:26px; color:#fff; padding:44px; }
  .newslcard h2 { font-family:var(--serif); font-size:27px; font-weight:600; }
  .newslcard p { color:#f3cfcf; margin:10px 0 22px; font-size:14px; }
  .newslcard form { display:flex; gap:10px; flex-wrap:wrap; }
  .newslcard input { padding:14px 18px; border-radius:99px; border:none; flex:1; min-width:180px; font-size:14px; font-family:var(--sans); }
  .newslcard .btn { background:#fff; color:var(--red); }
  @media(max-width:920px){ .duo{grid-template-columns:1fr;} }

  /* FOOTER */
  .inst { padding:30px 0; background:#fff; border-top:1px solid var(--line); text-align:center; }
  footer.site { background:#120a0c; color:#c9b4b4; padding:60px 0 28px; font-size:13.5px; }
  .fgrid { display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:34px; margin-bottom:40px; }
  .fgrid h4 { color:#fff; font-family:var(--serif); font-size:16px; margin-bottom:16px; font-weight:600; }
  .fgrid a { display:block; margin-bottom:9px; transition:.2s; }
  .fgrid a:hover { color:#fff; }
  .fbottom { border-top:1px solid rgba(255,255,255,.1); padding-top:22px; display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap; font-size:12px; color:#8d7376; }
  @media(max-width:920px){ .fgrid{grid-template-columns:1fr 1fr;} }
  

  /* --- gradiente ufficiale del sito (blu→viola→rosso) --- */
  .sitegrad { background:linear-gradient(100deg,#3a5bd9 0%,#8b3f9e 48%,#d94366 100%); }
  /* --- sub-bar stile sito attuale --- */
  .subbar { background:linear-gradient(100deg,#3a5bd9 0%,#8b3f9e 48%,#d94366 100%); }
  .subbar .in { display:flex; align-items:center; justify-content:center; gap:6px; flex-wrap:wrap; padding:10px 24px; }
  .subbar a { color:#fff; font-size:13.5px; font-weight:700; padding:7px 14px; border-radius:9px; transition:.2s; }
  .subbar a:hover { background:rgba(255,255,255,.16); }
  .subbar .sep { color:rgba(255,255,255,.5); }
  /* --- dropdown menu come il sito attuale --- */
  nav.menu { position:relative; }
  .mitem { position:relative; }
  .mitem > a { display:inline-flex; align-items:center; gap:5px; padding:14px 0; }
  .mitem .car { font-size:9px; opacity:.5; }
  .drop { position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(8px); background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:0 24px 60px rgba(28,20,23,.16); padding:10px; min-width:250px; opacity:0; visibility:hidden; transition:.22s; z-index:200; }
  .mitem:hover .drop { opacity:1; visibility:visible; transform:translateX(-50%) translateY(2px); }
  nav.menu .drop a, .drop a { display:block; padding:10px 14px; border-radius:10px; font-size:13.5px; font-weight:600; color:#453a3e !important; white-space:nowrap; }
  nav.menu .drop a:hover, .drop a:hover { background:#faf1ec; color:var(--red); }
  .drop a::after { display:none; }
  .mitem > a::after { content:''; position:absolute; left:0; bottom:6px; width:0; height:2px; background:var(--red); transition:.25s; }
  .mitem:hover > a::after { width:100%; }
  .iconbtn { width:38px; height:38px; border-radius:50%; border:1.5px solid #d8cabb; background:none; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; font-size:15px; color:#453a3e; position:relative; }
  .iconbtn .n { position:absolute; top:-4px; right:-4px; background:var(--red); color:#fff; font-size:9px; font-weight:800; width:16px; height:16px; border-radius:50%; display:flex; align-items:center; justify-content:center; }

  /* ===== HEADER COME IL SITO ATTUALE ===== */
  header.site { background:#fff; border-bottom:1px solid var(--line); backdrop-filter:none; }
  .nav { padding:16px 0; }
  .logochip { background:#fff; border-radius:10px; padding:4px 0; display:inline-block; }
  nav.menu { color:#2b2430; }
  nav.menu a { color:#2b2430; }
  .mitem > a::after { background:var(--red); }
  .mitem .car { color:#b7a9ad; }
  .iconbtn { border-color:#d8cabb; color:#2b2430; }
  .subbar { background:#4a0810; }
  .subbar a { color:#fff; }
  /* ===== HEADER MOBILE (come il sito attuale) ===== */
  .mobhead { display:none; }
  @media(max-width:920px){
    .navcta { display:none; }
    .nav { display:none; }
    .subbar { display:none; }
    .mobhead { display:block; background:#fff; }
    .mob-phones { display:flex; justify-content:center; gap:22px; padding:10px 16px 6px; font-size:14px; font-weight:600; color:#2b2430; border-bottom:1px solid #f0eae2; }
    .mob-phones a { display:inline-flex; align-items:center; gap:6px; }
    .mob-top { display:flex; align-items:center; justify-content:space-between; padding:12px 18px; }
    .burger { width:44px; height:44px; border:none; background:none; cursor:pointer; display:flex; flex-direction:column; justify-content:center; gap:5.5px; }
    .burger i { display:block; height:3.5px; border-radius:3px; background:#1c1417; }
    .mob-quick { display:flex; align-items:center; gap:4px; padding:0 12px 12px; overflow-x:auto; }
    .mob-quick a { font-size:13.5px; font-weight:700; color:#2b2430; padding:8px 10px; white-space:nowrap; }
    .mob-cart { margin-left:auto; position:relative; font-size:19px; padding:6px 10px; }
    .mob-cart .n { position:absolute; top:0; right:0; background:#3a5bd9; color:#fff; font-size:9px; font-weight:800; width:15px; height:15px; border-radius:50%; display:flex; align-items:center; justify-content:center; }
    .mobmenu { display:none; background:#fff; border-top:1px solid #f0eae2; padding:10px 18px 18px; }
    .mobmenu.open { display:block; }
    .mobmenu a { display:block; padding:11px 4px; font-size:15px; font-weight:700; color:#2b2430; border-bottom:1px solid #f5f0e9; }
  }

  @media(max-width:920px){
    .topbar .wrap { justify-content:center; text-align:center; }
    .topbar .wrap > div:last-child { display:none; }
    .mob-phones { justify-content:center; }
  }

/* Fix: titoli hero sempre bianchi anche con CSS di plugin capricciosi */
.hero h1.display { color:#fff !important; }
.hero h1.display em { color:#f2c7c7 !important; }
.pageband .pagetitle { color:#fff !important; }
.hero p.lead { color:#e8d5d5 !important; }
.atfbadge { text-decoration:none; cursor:pointer; transition:.25s; }
a.atfbadge:hover { background:rgba(255,255,255,.18); transform:translateY(-2px); }

html body .hero h1.display, html body div.hero h1.display { color:#ffffff !important; }
html body .hero h1.display em { color:#f2c7c7 !important; }
