/*
Theme Name: Cooral AI — Astra Child
Template: astra
Description: Tema figlio di Astra per Cooral AI. Colori navy/azzurro, font DM Sans + DM Serif Display. Tutto modificabile con Elementor.
Author: Cooral AI
Version: 1.0.0
Text Domain: cooralai-astra
*/

/* ── IMPORT GOOGLE FONTS ─────────────────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=DM+Sans:opsz,wght@9..40,300;9..40,400;9..40,500;9..40,600;9..40,700&display=swap');

/* ── VARIABILI BRAND ─────────────────────────────────────── */
:root {
  --navy:       #102A43;
  --navy-mid:   #1a3a5c;
  --navy-deep:  #0b1f30;
  --blue:       #0077b6;
  --blue-mid:   #0096d6;
  --blue-light: #48cae4;
  --blue-pale:  #e0f4fd;
  --white:      #ffffff;
  --offwhite:   #f4f8fb;
  --text:       #0e2233;
  --textmid:    #2d5070;
  --gray:       #5a7a94;
  --serif:      'DM Serif Display', Georgia, serif;
  --sans:       'DM Sans', -apple-system, sans-serif;
}

/* ── RESET BASE ──────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--sans) !important;
  background: var(--offwhite) !important;
  color: var(--text) !important;
  -webkit-font-smoothing: antialiased;
}

/* ── TIPOGRAFIA GLOBALE ──────────────────────────────────── */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--serif) !important;
  color: var(--text);
  line-height: 1.15;
}
h1 { font-size: clamp(2.2rem, 5vw, 4rem); }
h2 { font-size: clamp(1.8rem, 3.5vw, 2.8rem); }
h3 { font-size: clamp(1.2rem, 2vw, 1.6rem); }
p  { color: var(--textmid); line-height: 1.8; }
a  { color: var(--blue); transition: color .2s; }
a:hover { color: var(--blue-mid); }

/* ── OVERRIDE HEADER ASTRA ───────────────────────────────── */
#masthead,
.ast-header-break-point #masthead,
.site-header {
  background: rgba(16,42,67,.97) !important;
  backdrop-filter: blur(16px) !important;
  border-bottom: 1px solid rgba(72,202,228,.12) !important;
  box-shadow: none !important;
}
.ast-site-header-wrap {
  padding: 0 3vw !important;
  min-height: 76px !important;
}

/* Fix distanza logo-menu: riduci il gap automatico di Astra */
.ast-header-break-point #ast-desktop-header .main-header-bar .ast-main-header-wrap,
#ast-desktop-header .main-header-bar .ast-main-header-wrap,
.main-header-bar .ast-main-header-wrap {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 1rem !important;
}

/* Logo: non occupa più di quanto serve */
.ast-site-identity {
  flex-shrink: 0 !important;
  margin-right: 0 !important;
}

/* Nav: si avvicina al logo, con spazio a destra */
.main-navigation,
#ast-desktop-header .ast-nav-menu-container,
.ast-header-break-point .main-navigation {
  margin-left: 1.5rem !important;
  flex: 1 !important;
}

/* Voce menu "Prenota una call" — spazio a destra */
.ast-nav-menu > li:last-child > a,
#ast-desktop-header .ast-nav-menu > li:last-child > a {
  margin-left: 1rem !important;
}

/* Barra superiore (above header) — stile coerente */
.ast-above-header-section,
.ast-above-header {
  background: var(--navy-deep) !important;
  border-bottom: 1px solid rgba(72,202,228,.08) !important;
}
.ast-above-header-section *,
.ast-above-header * {
  color: rgba(255,255,255,.65) !important;
  font-family: var(--sans) !important;
  font-size: .85rem !important;
}
.ast-above-header-section a,
.ast-above-header a {
  color: rgba(255,255,255,.65) !important;
  text-decoration: none !important;
}
.ast-above-header-section .ca-btn,
.ast-above-header .ca-btn,
.ast-above-header-section .elementor-button,
.ast-above-header .elementor-button {
  background: var(--blue) !important;
  color: #fff !important;
  border-radius: 8px !important;
  padding: .4rem 1.1rem !important;
  font-weight: 600 !important;
  font-size: .82rem !important;
}
/* Logo */
.ast-logo-img,
.custom-logo {
  height: 52px !important;
  width: auto !important;
}
.site-title a {
  font-family: var(--serif) !important;
  font-size: 1.5rem !important;
  color: #fff !important;
}
/* Menu voci */
.main-navigation a,
.ast-header-break-point .main-navigation a,
#ast-desktop-header .ast-nav-menu > li > a {
  color: #112a43 !important;
  font-family: var(--sans) !important;
  font-size: .82rem !important;
  font-weight: 500 !important;
  padding: .44rem .65rem !important;
  border-radius: 7px !important;
  transition: all .2s !important;
}
.main-navigation a:hover,
#ast-desktop-header .ast-nav-menu > li > a:hover {
  color: #48cae4 !important;
  background: rgba(17,42,67,.06) !important;
  text-decoration: none !important;
}
.current-menu-item > a,
.current_page_item > a {
  color: #023e8a !important;
  background: rgba(72,202,228,.18) !important;
}
/* Dropdown menu */
.ast-header-break-point .main-navigation .sub-menu,
#ast-desktop-header .ast-nav-menu .sub-menu {
  background: #0b1f30 !important;
  border: 1px solid rgba(72,202,228,.15) !important;
  border-radius: 12px !important;
  box-shadow: 0 14px 44px rgba(0,0,0,.35) !important;
  padding: .5rem !important;
  min-width: 220px !important;
}
#ast-desktop-header .ast-nav-menu .sub-menu a {
  border-radius: 8px !important;
  padding: .6rem 1rem !important;
  color: rgba(255,255,255,.72) !important;
}
#ast-desktop-header .ast-nav-menu .sub-menu a:hover {
  background: rgba(0,150,214,.15) !important;
  color: var(--blue-light) !important;
}
/* CTA bottone nel menu */
.ast-nav-menu .menu-item-cta > a,
.menu-item-button > a,
li.ast-header-button > a {
  background: var(--blue) !important;
  color: #fff !important;
  padding: .5rem 1.2rem !important;
  border-radius: 8px !important;
  font-weight: 600 !important;
  margin-left: .5rem !important;
}
.ast-nav-menu .menu-item-cta > a:hover,
li.ast-header-button > a:hover {
  background: var(--blue-mid) !important;
}
/* Mobile hamburger */
.ast-button-wrap .menu-toggle,
.ast-header-break-point .ast-button-wrap .menu-toggle {
  color: #fff !important;
  background: transparent !important;
  border: none !important;
}

/* ── OVERRIDE FOOTER ASTRA ───────────────────────────────── */
#colophon,
.site-footer {
  background: var(--navy-deep) !important;
  border-top: 1px solid rgba(72,202,228,.08) !important;
  padding: 3.5rem 5vw 2rem !important;
}
.ast-footer-overlay {
  background: transparent !important;
}
.footer-widget-area .widget-title {
  font-size: .78rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: .1em !important;
  color: rgba(255,255,255,.42) !important;
  margin-bottom: 1.1rem !important;
}
.footer-widget-area .widget a,
.footer-widget-area p,
.footer-widget-area li {
  color: rgba(255,255,255,.38) !important;
  font-size: .88rem !important;
  font-family: var(--sans) !important;
  transition: color .2s !important;
}
.footer-widget-area .widget a:hover {
  color: var(--blue-light) !important;
  text-decoration: none !important;
}
.ast-small-footer {
  background: var(--navy-deep) !important;
  border-top: 1px solid rgba(255,255,255,.07) !important;
  color: rgba(255,255,255,.28) !important;
  font-size: .8rem !important;
}
.ast-small-footer a {
  color: rgba(255,255,255,.38) !important;
}
.ast-small-footer a:hover {
  color: var(--blue-light) !important;
}

/* ── ASTRA CONTENUTO PAGINA ──────────────────────────────── */
.ast-container,
.ast-page-builder-template .entry-content,
.elementor-section-wrap {
  max-width: 100% !important;
  padding: 0 !important;
}
.ast-page-builder-template #content,
.ast-page-builder-template #primary {
  padding: 0 !important;
  margin: 0 !important;
}
/* Rimuovi padding Astra che crea spazio bianco */
.ast-page-builder-template .entry-content,
.page-template-default .entry-content {
  margin: 0 !important;
  padding: 0 !important;
}

/* ── CLASSI UTILITY ELEMENTOR ────────────────────────────── */
/* Usa queste classi CSS nelle sezioni Elementor */

/* Sfondi */
.ca-bg-navy      { background: var(--navy) !important; }
.ca-bg-navy-mid  { background: var(--navy-mid) !important; }
.ca-bg-navy-deep { background: var(--navy-deep) !important; }
.ca-bg-blue      { background: var(--blue) !important; }
.ca-bg-offwhite  { background: var(--offwhite) !important; }
.ca-bg-white     { background: #fff !important; }

/* Testi su sfondo scuro */
.ca-text-white   { color: #fff !important; }
.ca-text-light   { color: rgba(255,255,255,.65) !important; }
.ca-text-muted   { color: rgba(255,255,255,.42) !important; }
.ca-text-blue    { color: var(--blue-light) !important; }

/* Card dark (per sezioni navy) */
.ca-card-dark {
  background: rgba(255,255,255,.05) !important;
  border: 1px solid rgba(72,202,228,.12) !important;
  border-radius: 18px !important;
  border-left: 4px solid var(--blue) !important;
  transition: border-color .22s, background .22s !important;
}
.ca-card-dark:hover {
  border-color: rgba(72,202,228,.28) !important;
  background: rgba(255,255,255,.08) !important;
}

/* Card chiara */
.ca-card {
  background: #fff !important;
  border: 1px solid rgba(0,119,182,.15) !important;
  border-radius: 18px !important;
  box-shadow: 0 4px 24px rgba(16,42,67,.10) !important;
  transition: transform .22s, box-shadow .22s !important;
}
.ca-card:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 12px 48px rgba(16,42,67,.16) !important;
}

/* Badge / label */
.ca-badge {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  background: rgba(0,119,182,.2) !important;
  border: 1px solid rgba(72,202,228,.3) !important;
  color: var(--blue-light) !important;
  font-size: .78rem !important;
  font-weight: 700 !important;
  padding: .35rem 1.1rem !important;
  border-radius: 24px !important;
  letter-spacing: .05em !important;
  text-transform: uppercase !important;
  font-family: var(--sans) !important;
}

/* Bottoni */
.ca-btn-primary {
  background: var(--blue) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 9px !important;
  padding: 1rem 2.2rem !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  font-family: var(--sans) !important;
  cursor: pointer !important;
  transition: all .22s !important;
  text-decoration: none !important;
}
.ca-btn-primary:hover {
  background: var(--blue-mid) !important;
  color: #fff !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 6px 20px rgba(0,119,182,.4) !important;
}
.ca-btn-outline {
  background: transparent !important;
  color: rgba(255,255,255,.85) !important;
  border: 1.5px solid rgba(255,255,255,.28) !important;
  border-radius: 9px !important;
  padding: 1rem 2.2rem !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  font-family: var(--sans) !important;
  cursor: pointer !important;
  transition: all .22s !important;
  text-decoration: none !important;
}
.ca-btn-outline:hover {
  border-color: var(--blue-light) !important;
  color: var(--blue-light) !important;
}
.ca-btn-white {
  background: #fff !important;
  color: var(--navy) !important;
  border: none !important;
  border-radius: 9px !important;
  padding: 1rem 2.2rem !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  font-family: var(--sans) !important;
  transition: all .22s !important;
  text-decoration: none !important;
}
.ca-btn-white:hover {
  background: var(--blue-pale) !important;
  color: var(--navy) !important;
}

/* Label sezione */
.ca-label {
  font-size: .75rem !important;
  font-weight: 700 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  color: var(--blue) !important;
  display: block !important;
  margin-bottom: .6rem !important;
  font-family: var(--sans) !important;
}
.ca-label-inv {
  font-size: .75rem !important;
  font-weight: 700 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  color: var(--blue-light) !important;
  display: block !important;
  margin-bottom: .6rem !important;
  font-family: var(--sans) !important;
}

/* Stat box */
.ca-stat {
  text-align: center !important;
  padding: 1.5rem 1rem !important;
}
.ca-stat-val {
  font-family: var(--serif) !important;
  font-size: 3rem !important;
  color: var(--blue-light) !important;
  line-height: 1 !important;
  display: block !important;
  font-weight: 700 !important;
}
.ca-stat-lbl {
  font-size: .9rem !important;
  font-weight: 600 !important;
  color: #fff !important;
  margin-top: .5rem !important;
  display: block !important;
  line-height: 1.3 !important;
  font-family: var(--sans) !important;
}
.ca-stat-sub {
  font-size: .78rem !important;
  color: rgba(255,255,255,.4) !important;
  margin-top: .2rem !important;
  display: block !important;
  font-family: var(--sans) !important;
}

/* Testimonianza */
.ca-testimonial {
  background: rgba(255,255,255,.05) !important;
  border: 1px solid rgba(72,202,228,.12) !important;
  border-radius: 18px !important;
  padding: 2rem 2.2rem !important;
}
.ca-testimonial-text {
  font-family: var(--serif) !important;
  font-size: 1.1rem !important;
  color: #fff !important;
  line-height: 1.65 !important;
  margin-bottom: 1.3rem !important;
  font-style: italic !important;
}

/* FAQ accordion con CSS */
.ca-faq details {
  border-bottom: 1px solid rgba(0,119,182,.12) !important;
  padding: 1.2rem 0 !important;
}
.ca-faq summary {
  font-size: 1rem !important;
  font-weight: 500 !important;
  color: var(--text) !important;
  cursor: pointer !important;
  list-style: none !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 1rem !important;
  font-family: var(--sans) !important;
}
.ca-faq summary::-webkit-details-marker { display: none !important; }
.ca-faq summary::after {
  content: '+' !important;
  font-size: 1.3rem !important;
  color: var(--blue) !important;
  flex-shrink: 0 !important;
  transition: transform .25s !important;
}
.ca-faq details[open] summary::after {
  transform: rotate(45deg) !important;
}
.ca-faq details p {
  font-size: .93rem !important;
  color: var(--textmid) !important;
  line-height: 1.78 !important;
  margin-top: .9rem !important;
  padding-right: 2rem !important;
  font-family: var(--sans) !important;
}

/* Pricing card */
.ca-price-card {
  background: #fff !important;
  border: 1px solid rgba(0,119,182,.15) !important;
  border-radius: 18px !important;
  overflow: hidden !important;
  box-shadow: 0 4px 24px rgba(16,42,67,.10) !important;
  transition: transform .22s !important;
}
.ca-price-card:hover {
  transform: translateY(-4px) !important;
}
.ca-price-card.featured {
  border: 2px solid var(--blue) !important;
}

/* Hero badge pulsante */
@keyframes ca-pulse { 0%,100%{opacity:1} 50%{opacity:.3} }
.ca-badge::before {
  content: '' !important;
  width: 7px !important;
  height: 7px !important;
  border-radius: 50% !important;
  background: var(--blue-light) !important;
  flex-shrink: 0 !important;
  animation: ca-pulse 2s infinite !important;
  display: inline-block !important;
}

/* Animazione SVG */
@keyframes hf  { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-8px)} }
@keyframes hf2 { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-5px)} }
@keyframes hd  { to{stroke-dashoffset:-30} }
@keyframes hd2 { to{stroke-dashoffset:30} }
@keyframes hg  { 0%,100%{opacity:.14} 50%{opacity:.42} }
@keyframes hp  { 0%,100%{r:4;opacity:.6} 50%{r:6;opacity:1} }
@keyframes hrot { from{transform:rotate(0deg)} to{transform:rotate(360deg)} }
@keyframes hbars { 0%,100%{transform:scaleY(.35)} 50%{transform:scaleY(1)} }
.hp1 { animation: hf 3.5s ease-in-out infinite; }
.hp2 { animation: hf2 4.2s ease-in-out infinite .6s; }
.hp3 { animation: hf2 3.8s ease-in-out infinite 1.2s; }
.hc1 { stroke-dasharray:6 5; animation: hd 2.5s linear infinite; }
.hc2 { stroke-dasharray:5 6; animation: hd2 3.2s linear infinite; }
.hg1 { animation: hg 3s ease-in-out infinite; }
.hd1 { animation: hp 1.8s ease-in-out infinite; }
.hd2 { animation: hp 2.4s ease-in-out infinite .5s; }
.hd3 { animation: hp 2.1s ease-in-out infinite 1s; }
.horbit { transform-origin: 240px 185px; animation: hrot 12s linear infinite; }
.hb1 { transform-origin: bottom; animation: hbars 1.1s ease-in-out infinite; }
.hb2 { transform-origin: bottom; animation: hbars 1.1s ease-in-out infinite .2s; }
.hb3 { transform-origin: bottom; animation: hbars 1.1s ease-in-out infinite .4s; }
.hb4 { transform-origin: bottom; animation: hbars 1.1s ease-in-out infinite .6s; }
@media(prefers-reduced-motion:reduce) {
  .hp1,.hp2,.hp3,.hc1,.hc2,.hg1,.hd1,.hd2,.hd3,.horbit,.hb1,.hb2,.hb3,.hb4 { animation:none; }
}

/* ── RESPONSIVE ──────────────────────────────────────────── */
@media(max-width:768px){
  .ca-stat-val { font-size:2.2rem !important; }
}

/* ── FIX MENU DISTANZA LOGO ──────────────────────────────── */
/* Astra Header Builder: riduce il gap tra logo e menu       */

/* Contenitore principale dell'header row */
.main-header-bar-wrap .main-header-bar,
#ast-desktop-header .main-header-bar {
  padding-left: 3vw !important;
  padding-right: 3vw !important;
}

/* Rimuove il margin-left automatico che sposta il menu lontano */
#ast-desktop-header .ast-flex.main-header-bar-navigation {
  margin-left: 0 !important;
  padding-left: 0 !important;
}

/* Il wrapper dell'header usa flex con spazio distribuito */
#ast-desktop-header .ast-main-header-wrap {
  display: flex !important;
  align-items: center !important;
  width: 100% !important;
}

/* Menu si posiziona immediatamente dopo il logo */
#ast-desktop-header .ast-main-header-wrap .main-navigation {
  margin-left: 2rem !important;
  flex: 1 !important;
  display: flex !important;
  justify-content: flex-start !important;
}

/* Bottone CTA all'estrema destra */
#ast-desktop-header .ast-main-header-wrap .ast-button-wrap,
#ast-desktop-header .ast-main-header-wrap > *:last-child {
  margin-left: auto !important;
  flex-shrink: 0 !important;
}

/* Forza le voci menu in linea orizzontale */
#ast-desktop-header .ast-nav-menu {
  display: flex !important;
  align-items: center !important;
  gap: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}
/* ── Menu off-canvas Astra ── */
.ast-mobile-popup-drawer__inner,
.ast-mobile-popup-drawer .ast-drawer-content,
.ast-mobile-popup-drawer,
.ast-mobile-popup-drawer .ast-mobile-menu-content {
    background-color: #102A43 !important;
    background: #102A43 !important;
}

.ast-mobile-popup-drawer .menu-item > a,
.ast-mobile-popup-drawer .menu-item > a .menu-text,
.ast-mobile-popup-drawer li a,
.ast-mobile-popup-drawer li a span,
.ast-mobile-popup-drawer .ast-menu-toggle {
    color: #ffffff !important;
}

.ast-mobile-popup-drawer .menu-item > a:hover,
.ast-mobile-popup-drawer li a:hover {
    color: #48cae4 !important;
}

/* ── Fascia bianca ── */
.ast-above-header-bar {
    display: none !important;
}

/* ── H1 mobile ── */
@media (max-width: 768px) {
    .elementor-heading-title {
        font-size: 2rem !important;
        line-height: 1.2 !important;
    }
}
