/* =========================================================================
   Override brand Studio Valentino Baia sul template Regalis (Designesia).
   Caricato DOPO style.css + coloring.css + scheme-baia.css.
   - Barra header = rosso del marchio registrato + logo bianco
   - Neutralizza i 3 punti che renderebbero la pagina vuota senza JS
     (preloader, .wow nascoste, subheader da JS)
   - Oro come accento secondario
   ========================================================================= */

/* --- Robustezza rendering (indipendenza dal JS) --- */
#de-loader { display: none !important; }
/* Contenuto sempre visibile: non dipende da WOW/scroll/JS */
.wow {
  visibility: visible !important;
  opacity: 1 !important;
  animation: none !important;
  transform: none !important;
}
html, body { overflow-x: hidden; }

/* --- Header: barra sempre rossa (brand), logo bianco --- */
header,
header.transparent,
header.smaller {
  background: var(--primary-color) !important;
  backdrop-filter: none !important;
}
header.smaller {
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.18) !important;
}
/* Voci menu bianche sulla barra rossa */
header #mainmenu > li > a.menu-item {
  color: #fff !important;
}
header #mainmenu > li > a.menu-item:hover,
header #mainmenu > li.active > a.menu-item {
  color: var(--secondary-color) !important;
}
/* Telefono header in bianco (anche il numero dentro l'<a>) */
header .h-phone,
header .h-phone span,
header .h-phone a,
header .h-phone a:hover { color: #fff !important; }
header .h-phone i { color: var(--secondary-color) !important; }
/* Logo header: più grande e ben leggibile */
header #logo img { height: 52px !important; max-height: 52px !important; width: auto !important; }
header.smaller #logo img { height: 46px !important; max-height: 46px !important; }
/* Header più arioso e menu centrato verticalmente */
header .de-flex { align-items: center; }
header { padding: 10px 0; }
header.smaller { padding: 4px 0; }
/* Hamburger bianco */
#menu-btn { filter: brightness(0) invert(1); }

/* Dropdown del menu: testo scuro su sfondo chiaro (leggibilità) */
header #mainmenu li ul { background: #fff; }
header #mainmenu li ul li a { color: #1b1b1b !important; }
header #mainmenu li ul li a:hover { color: var(--primary-color) !important; }

/* Menu mobile (pannello) leggibile */
@media (max-width: 992px) {
  header, header.transparent, header.smaller { background: var(--primary-color) !important; }
  #mainmenu { background: var(--primary-color); }
  header #mainmenu > li > a.menu-item { color: #fff !important; }
}

/* --- CTA header opzionale --- */
header .btn-main.header-cta {
  background: #fff;
  color: var(--primary-color);
  border-radius: 6px;
  padding: 10px 22px;
  font-weight: 600;
  margin-left: 18px;
}
header .btn-main.header-cta:hover {
  background: var(--secondary-color);
  color: #fff;
}

/* --- Accenti oro dove serve --- */
.text-gold, .id-color-2 { color: var(--secondary-color) !important; }

/* --- Form (Web3Forms) coerente col tema --- */
#contact_form .form-control {
  border: 1px solid #e2e2e2;
  border-radius: 8px;
  padding: 12px 14px;
}
#contact_form .form-control:focus {
  border-color: var(--primary-color);
  box-shadow: none;
}
.field-privacy { font-size: 14px; color: #6f6f6f; display: flex; gap: 10px; align-items: flex-start; margin-top: 8px; cursor: pointer; }
.field-privacy span { line-height: 1.5; }
.field-privacy input[type="checkbox"] { width: 18px; height: 18px; margin: 1px 0 0; flex: none; accent-color: var(--primary-color); cursor: pointer; }
.field-privacy a { color: var(--primary-color); text-decoration: underline; }

/* Foto Valentino nella sezione Studio: mostra il volto, niente crop sul viso */
.va-photo-wrap { height: 100%; min-height: 480px; }
.va-photo {
  width: 100%;
  height: 100%;
  min-height: 480px;
  object-fit: cover;
  object-position: center 18%;
  display: block;
}

/* Logo impilato nel footer */
.footer-logo-stacked { height: 120px; width: auto; margin-bottom: 10px; }

/* Subfooter: riga legale ordinata, a tutta larghezza, font piccolo */
.subfooter .de-flex { flex-wrap: wrap; gap: 8px 20px; }
.subfooter .de-flex-col { font-size: 13px; line-height: 1.6; max-width: 100%; }
@media (max-width: 767px) {
  .subfooter .de-flex { flex-direction: column; text-align: center; }
  .subfooter .list-inline { margin: 0 auto; }
}

/* Hero home su MOBILE: compatta, contenuto in flusso, bottone visibile */
@media (max-width: 767px) {
  .hero-home { min-height: auto !important; }
  .hero-home .abs.bottom-0 {
    position: relative !important;
    padding-top: 100px;
    padding-bottom: 48px;
  }
  .hero-home h1 { font-size: 30px !important; line-height: 1.18 !important; }
  .hero-home p { font-size: 15px !important; }
  .hero-home .btn-main { display: inline-block; margin-top: 8px; }
}

/* Utility brand */
.bg-brand { background: var(--primary-color) !important; }
.sticky-service-link.active { background: var(--primary-color) !important; color: #fff !important; }

/* Icone a tratto dei servizi (src/data/icons.ts) */
.svc-icon { display: block; width: 100%; height: 100%; }
.svc-icon-lg { width: 52px; height: 52px; }
.band-icon { width: 80px; height: 80px; padding: 18px; color: #fff; }

/* Business Plan Bancario: aree del Metodo Baia Bancabilità */
.bp-area { padding: 28px; border: 1px solid rgba(255,255,255,.2); border-radius: 10px; }
.bp-area p { overflow-wrap: break-word; }
.bp-num { font-size: 40px; font-weight: 600; line-height: 1; margin-bottom: 14px; }
.bp-result { background: rgba(0,0,0,.18); }

/* Il template imposta white-space:nowrap su .d-flex (pensato per il marquee, qui non usato):
   faceva uscire dal bordo i testi di "Cosa ottieni" e delle schede. */
.d-flex { white-space: normal; }
.d-flex > div { min-width: 0; }

/* ---------- Menu Servizi (mega menu rifatto, 27/10/26) ---------- */
#mainmenu > li > ul.vb-mega { background: none !important; border: none !important; padding: 14px 20px 0; }
#mainmenu .vb-mega > li { float: none; display: block; width: 100%; }
#mainmenu .vb-mega-panel {
  max-width: 1080px; margin: 0 auto; background: #fff;
  border: 1px solid #e6dfd7; border-radius: 12px;
  box-shadow: 0 16px 40px rgba(0, 0, 0, .14);
  overflow: hidden; text-align: left; white-space: normal;
}
#mainmenu .vb-mega-grid { display: grid; grid-template-columns: 1.05fr 1fr 1fr; }
#mainmenu .vb-mega-col { padding: 26px 24px 20px; }
#mainmenu .vb-mega-col + .vb-mega-col { border-left: 1px solid #eee8e1; }
#mainmenu .vb-mega-featured { background: #f7f3ee; }
#mainmenu .vb-mega-head {
  font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
  color: #8a7f74; margin: 0 0 12px 10px;
}
#mainmenu .vb-mega a.vb-mega-link,
#mainmenu .vb-mega a.vb-mega-feat {
  display: flex; align-items: center; gap: 12px; width: 100%;
  padding: 8px 10px; margin: 0; border: none; border-radius: 8px;
  text-align: left; font-size: 15px; line-height: 1.3; font-weight: 500;
  color: #1b1b1b !important; background: transparent;
}
#mainmenu .vb-mega a.vb-mega-feat { align-items: flex-start; padding: 12px 10px; }
#mainmenu .vb-mega a.vb-mega-link:hover,
#mainmenu .vb-mega a.vb-mega-feat:hover { background: #f3ece4 !important; color: var(--primary-color) !important; }
#mainmenu .vb-mega-featured a.vb-mega-feat:hover { background: #fff !important; }
#mainmenu .vb-mega-ico { flex: 0 0 22px; width: 22px; height: 22px; color: var(--primary-color); }
#mainmenu .vb-mega a.vb-mega-feat .vb-mega-ico { flex-basis: 34px; width: 34px; height: 34px; padding: 6px; background: #fff; border-radius: 8px; border: 1px solid #e6dfd7; }
#mainmenu .vb-mega-txt { display: flex; flex-direction: column; gap: 2px; }
#mainmenu .vb-mega-txt strong { font-weight: 600; font-size: 15px; }
#mainmenu .vb-mega-txt small { font-size: 13px; color: #6f665e; font-weight: 400; }
#mainmenu .vb-mega-foot {
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
  padding: 14px 34px; border-top: 1px solid #eee8e1; font-size: 14px; color: #6f665e;
}
#mainmenu .vb-mega-foot a { display: inline; padding: 0; width: auto; border: none; background: none !important; }
#mainmenu .vb-mega-foot a.vb-mega-all { color: var(--primary-color) !important; font-weight: 600; }
#mainmenu .vb-mega-foot a.vb-mega-tel { color: #1b1b1b !important; font-weight: 600; }

/* Mobile: lista semplice dentro il pannello rosso */
@media (max-width: 992px) {
  #mainmenu > li > ul.vb-mega { padding: 0 0 10px; }
  #mainmenu .vb-mega-panel { border: none; border-radius: 10px; box-shadow: none; }
  #mainmenu .vb-mega-grid { grid-template-columns: 1fr; }
  #mainmenu .vb-mega-col { padding: 16px 12px 8px; }
  #mainmenu .vb-mega-col + .vb-mega-col { border-left: none; border-top: 1px solid #eee8e1; }
  #mainmenu .vb-mega-txt small { display: none; }
  #mainmenu .vb-mega a.vb-mega-feat { padding: 8px 10px; align-items: center; }
  #mainmenu .vb-mega a.vb-mega-feat .vb-mega-ico { flex-basis: 22px; width: 22px; height: 22px; padding: 0; border: none; background: none; }
  #mainmenu .vb-mega-foot { flex-direction: column; align-items: flex-start; padding: 12px 22px 16px; }
  header.header-mobile #mainmenu .vb-mega li { border-bottom: none; }
}

/* Foto sezione "Metodo di lavoro" in home: immagine fissa, senza parallasse */
.metodo-foto { display: block; width: 100%; height: 440px; object-fit: cover; object-position: 40% center; }
@media (max-width: 767px) { .metodo-foto { height: 260px; } }
#mainmenu .vb-mega-foot > div { flex: 1; text-align: right; }
@media (max-width: 992px) { #mainmenu .vb-mega-foot > div { text-align: left; } }
#mainmenu .vb-mega-foot a.vb-mega-all { width: auto !important; flex: none; white-space: nowrap; }

/* ---------- Landing servizi (modello unico, 27/10/26) ---------- */
.lp-hero { background: linear-gradient(120deg, #16181a 0%, #2a1016 55%, #3a0016 100%); }
.lp-hero .lp-lead { font-size: 19px; line-height: 1.6; color: rgba(255,255,255,.85); max-width: 720px; }
.btn-main.btn-line { background: transparent !important; color: #fff !important; border: 1px solid rgba(255,255,255,.55); }
.btn-main.btn-line:hover { background: #fff !important; color: var(--primary-color) !important; }
.btn-main.btn-line-dark { background: transparent !important; color: var(--primary-color) !important; border: 1px solid var(--primary-color); }
.btn-main.btn-line-dark:hover { background: var(--primary-color) !important; color: #fff !important; }
.lp-body { font-size: 17px; line-height: 1.75; }
.lp-block { margin-top: 56px; }
.lp-block h3 { font-size: 26px; margin-bottom: 8px; }
.lp-card { background: var(--bg-light, #f7f3ee); border: 1px solid #ebe3da; border-radius: 10px; padding: 28px; }
.lp-card.bg-white { background: #fff; }
.lp-num { font-size: 34px; font-weight: 600; line-height: 1; margin-bottom: 16px; }
.lp-item { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border: 1px solid #ebe3da; border-radius: 10px; height: 100%; }
.lp-item i { font-size: 20px; margin-top: 2px; }
.lp-steps { position: relative; }
.lp-step { border-top: 2px solid var(--primary-color); padding-top: 22px; height: 100%; }
.lp-step-n { width: 44px; height: 44px; border-radius: 50%; background: var(--primary-color); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 600; font-size: 18px; margin-bottom: 16px; }
.lp-fit h3, .lp-nofit h3 { font-size: 24px; margin-bottom: 16px; }
.lp-nofit h3 i { color: #8a7f74; }
.lp-photo { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center 20%; display: block; }
.lp-related { display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; border: 1px solid #ebe3da; border-radius: 8px; color: #1b1b1b; font-weight: 600; }
.lp-related:hover { border-color: var(--primary-color); color: var(--primary-color); }
.lp-form { border: 1px solid #ebe3da; }
.lp-other { display: flex; align-items: center; gap: 12px; height: 100%; padding: 16px; border: 1px solid #ebe3da; border-radius: 10px; color: #1b1b1b; background: #fff; }
.lp-other:hover { border-color: var(--primary-color); color: var(--primary-color); }
.lp-other-ico { flex: 0 0 28px; width: 28px; height: 28px; }
.lp-other-t { font-weight: 600; font-size: 15px; line-height: 1.3; }
@media (max-width: 767px) {
  .lp-hero .lp-lead { font-size: 17px; }
  .lp-block { margin-top: 40px; }
  .lp-other { padding: 12px; gap: 8px; }
  .lp-other-t { font-size: 14px; }
  .lp-photo { aspect-ratio: 1 / 1; }
}
@media (max-width: 992px) {
  header.header-mobile #mainmenu .vb-mega > li { padding: 0 !important; margin: 0 !important; }
  header.header-mobile #mainmenu > li > ul.vb-mega { padding: 0 !important; }
  header.header-mobile #mainmenu > li > ul.vb-mega .vb-mega-panel { margin-bottom: 14px; }
}

/* ---------- Ottimizzazione mobile (27/10/26) ---------- */
/* Contatti nel menu: solo su mobile */
#mainmenu > li.mm-contacts { display: none; }
.hero-ctas { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; }

@media (max-width: 992px) {
  /* Logo più piccolo, lontano dai bordi */
  header #logo img, header.smaller #logo img { height: 40px !important; max-height: 40px !important; }

  /* Menu mobile: contatti sotto le voci */
  header.header-mobile #mainmenu > li.mm-contacts { display: block; border-bottom: none; padding: 22px 0 28px; }
  #mainmenu .mm-box { background: rgba(0,0,0,.18); border: 1px solid rgba(255,255,255,.18); border-radius: 12px; padding: 18px; }
  #mainmenu .mm-label { color: rgba(255,255,255,.75); font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 12px; }
  #mainmenu .mm-box a.mm-btn {
    display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%;
    padding: 13px 16px; margin-bottom: 10px; border-radius: 8px; border: 1px solid rgba(255,255,255,.5);
    color: #fff !important; background: transparent !important; font-size: 16px; font-weight: 600; text-align: center;
  }
  #mainmenu .mm-box a.mm-btn-main { background: #fff !important; color: var(--primary-color) !important; border-color: #fff; }
  #mainmenu .mm-row { display: flex; align-items: flex-start; gap: 10px; color: #fff; font-size: 15px; line-height: 1.4; margin-top: 12px; }
  #mainmenu .mm-row i { color: var(--secondary-color); width: 16px; margin-top: 3px; }
  #mainmenu .mm-row a { display: inline; padding: 0; color: #fff !important; background: none !important; text-align: left; word-break: break-all; }
}

@media (max-width: 767px) {
  /* Hero home */
  .hero-home .abs.bottom-0 { padding-top: 110px !important; padding-bottom: 56px !important; }
  .hero-home h1 { font-size: 38px !important; line-height: 1.12 !important; margin-bottom: 16px; }
  .hero-home p { font-size: 16.5px !important; line-height: 1.6 !important; color: rgba(255,255,255,.94) !important; }
  .hero-home .subtitle { margin-bottom: 14px !important; }
  .hero-ctas { flex-direction: column; justify-content: flex-start; gap: 10px; margin-top: 6px; }
  .hero-ctas .btn-main { display: flex !important; justify-content: center; align-items: center; width: 100%; margin: 0 !important; padding: 13px 18px; font-size: 16px; }
  .hero-home .spacer-double { display: none; }

  /* Tre colonne sotto l'hero: più compatte */
  .w-70px { width: 48px !important; margin-bottom: 14px !important; }

  /* Schede Chi è / Come lavoriamo / Principi in orizzontale */
  .de-tab .d-tab-nav { display: flex !important; flex-wrap: nowrap; gap: 6px; overflow-x: auto; padding-bottom: 14px !important; margin-bottom: 18px !important; }
  .de-tab .d-tab-nav li { flex: 0 0 auto; display: block !important; width: auto !important; padding: 8px 14px !important; border-radius: 6px; font-size: 14px; }

  /* Contatti in home: compatti */
  .bg-light .row.g-4 > .mb-sm-30 { margin-bottom: 0 !important; }
  .bg-light .row.g-4 > .mb-sm-30 .fs-48 { font-size: 30px !important; }
  .bg-light .row.g-4 > .mb-sm-30 p { margin-bottom: 0; }

  /* Banda servizi: icone più piccole */
  .band-icon { width: 60px; height: 60px; padding: 14px; }
  .band-icon + .ms-100px { margin-left: 78px !important; }

  /* Sezioni meno alte */
  section { padding-top: 64px; padding-bottom: 64px; }
}

/* Velo sopra la foto dell'hero home (più scuro su mobile per la leggibilità) */
.hero-overlay { inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(18,10,12,.74) 0%, rgba(24,12,15,.55) 42%, rgba(62,0,22,.88) 100%); }
@media (max-width: 767px) {
  .hero-overlay { background: linear-gradient(180deg, rgba(18,10,12,.8) 0%, rgba(30,10,16,.74) 45%, rgba(70,0,24,.94) 100%); }
}

/* Barra contatti fissa in basso (solo mobile) */
.mobile-cta-bar { display: none; }
@media (max-width: 767px) {
  .mobile-cta-bar {
    display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 1001;
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
    background: #fff; border-top: 1px solid #e6dfd7;
  }
  .mobile-cta-bar a {
    display: flex; align-items: center; justify-content: center; gap: 8px;
    padding: 12px; border-radius: 8px; font-weight: 600; font-size: 16px;
  }
  .mobile-cta-bar .mcb-call { background: var(--primary-color); color: #fff; }
  .mobile-cta-bar .mcb-wa { background: #fff; color: var(--primary-color); border: 1px solid var(--primary-color); }
  /* il footer scuro continua sotto la barra fissa: firma e link legali restano visibili */
  body { padding-bottom: 0; }
  .subfooter { padding-bottom: calc(100px + env(safe-area-inset-bottom)) !important; }
  #back-to-top { display: none !important; }
}

/* Hero delle landing su mobile */
@media (max-width: 767px) {
  .lp-hero { padding-top: 110px !important; padding-bottom: 36px !important; }
  .lp-hero .spacer-double, .lp-hero .spacer-single { display: none; }
  .lp-hero h1 { font-size: 34px !important; line-height: 1.15 !important; }
  .lp-hero .lp-lead { color: rgba(255,255,255,.92); }
  .lp-hero .d-flex.gap-3 { flex-direction: column; gap: 10px !important; }
  .lp-hero .d-flex.gap-3 .btn-main { display: flex; justify-content: center; width: 100%; padding: 13px 16px; font-size: 16px; }
  .lp-hero .crumb { margin-top: 22px !important; font-size: 13px; }
  section.lp-hero + section { padding-top: 48px; }
}
@media (max-width: 767px) {
  h2 { font-size: 30px !important; line-height: 1.22 !important; }
  .lp-block h3 { font-size: 23px; }
}

/* Bottoni riconoscibili come bottoni (27/10/26): bordo pieno, testo leggibile, freccia */
a.btn-arrow {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 11px 20px; border: 1.5px solid var(--primary-color); border-radius: 6px;
  color: var(--primary-color); background: #fff; font-size: 15px; font-weight: 600; line-height: 1.2;
  transition: background .2s, color .2s;
}
a.btn-arrow i, a.btn-freccia i { font-size: 18px; transition: transform .2s; }
a.btn-arrow:hover { background: var(--primary-color); color: #fff; }
a.btn-arrow:hover i, a.btn-freccia:hover i { transform: translateX(4px); }
a.btn-main.btn-freccia { display: inline-flex; align-items: center; gap: 10px; }

/* Footer: link riconoscibili + firma piu piccola */
.subfooter .list-inline a,
.subfooter .cookie-prefs-link {
  color: #fff !important; text-decoration: underline !important; text-decoration-color: rgba(255,255,255,.5) !important;
  text-underline-offset: 3px; font-size: 14px;
}
.subfooter .list-inline a:hover,
.subfooter .cookie-prefs-link:hover { color: var(--secondary-color) !important; text-decoration-color: currentColor !important; }
.subfooter .cookie-prefs-link { background: none; border: 0; padding: 0; font-family: inherit; cursor: pointer; }
.subfooter .credit-li { font-size: 12px; opacity: .75; }
.subfooter .credit-li a.credit-au { font-size: 12px; }

/* Banner cookie */
.cookie-banner {
  position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 10000;
  max-width: 760px; margin: 0 auto; background: #16181a; color: #fff;
  border: 1px solid rgba(255,255,255,.15); border-radius: 6px; padding: 18px 20px;
}
.cookie-banner[hidden] { display: none; }
.cookie-banner-in { display: flex; gap: 18px; align-items: center; }
.cookie-banner p { margin: 0; font-size: 14px; line-height: 1.55; color: rgba(255,255,255,.9); }
.cookie-banner p a { color: #fff; text-decoration: underline; }
.cookie-banner-btns { display: flex; gap: 10px; flex-shrink: 0; }
.cb-btn {
  font-family: inherit; font-size: 14px; font-weight: 600; padding: 10px 20px;
  border-radius: 4px; cursor: pointer; border: 1px solid #fff; min-width: 100px;
}
.cb-reject { background: transparent; color: #fff; }
.cb-accept { background: #fff; color: #16181a; }
.cb-btn:hover { background: var(--secondary-color); border-color: var(--secondary-color); color: #16181a; }
@media (max-width: 767px) {
  .cookie-banner { left: 10px; right: 10px; bottom: 10px; padding: 16px; }
  .cookie-banner-in { flex-direction: column; align-items: stretch; }
  .cookie-banner-btns .cb-btn { flex: 1; }
  body.has-cookie-banner .mobile-cta-bar { display: none !important; }
}

/* Mappa: immagine reale finche' non si accettano i cookie, poi Google Maps */
.map-consent { position: relative; height: 420px; background: #eceae6; overflow: hidden; }
.map-consent iframe { position: absolute; inset: 0; }
.map-consent-box {
  position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; border: 0;
  background: none; cursor: pointer; display: block;
}
.map-consent-box img { width: 100%; height: 100%; object-fit: cover; display: block; }
.map-consent-cta {
  position: absolute; left: 50%; bottom: 28px; transform: translateX(-50%);
  background: #16181a; color: #fff; padding: 12px 22px; border-radius: 4px;
  font-size: 15px; font-weight: 600; line-height: 1.3; text-align: center; white-space: nowrap;
}
.map-consent-cta small { display: block; font-size: 12px; font-weight: 400; opacity: .75; }
.map-consent-box:hover .map-consent-cta { background: var(--primary-color); }
.map-consent-credit {
  position: absolute; right: 6px; bottom: 4px; font-size: 11px; color: #333;
  background: rgba(255,255,255,.8); padding: 1px 5px;
}
.map-consent.is-loaded .map-consent-box { display: none; }

/* Recensioni Google: badge, carosello in home, griglia pagina */
.g-rating { display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; color: #1b1b1b; text-decoration: none; font-size: 15px; }
.g-rating:hover { text-decoration: none; color: #1b1b1b; }
.g-rating .g-logo { width: 22px; height: 22px; }
.g-rating .g-score { font-weight: 700; font-size: 18px; }
.g-rating .g-stars { color: #f4b400; letter-spacing: 1px; font-size: 16px; }
.g-rating .g-count { text-decoration: underline; text-underline-offset: 3px; }
.g-rating-dark, .g-rating-dark:hover { color: #fff; }
.g-rating-dark { display: flex; width: fit-content; }
.rv-section { overflow: hidden; }
.rv-marquee { display: flex; flex-direction: column; gap: 16px; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.rv-row { overflow-x: auto; overflow-y: hidden; scrollbar-width: none; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; }
.rv-row::-webkit-scrollbar { display: none; }
.rv-track { display: flex; gap: 16px; width: max-content; }
.rv-card { width: 380px; flex: none; padding: 20px 22px; border-radius: 6px; background: #f5f3ef; border: 1px solid #e6e1d8; color: #2a2a2a; }
.rv-top { display: flex; align-items: center; gap: 11px; margin-bottom: 10px; }
.rv-top b { color: #1b1b1b; font-size: 15px; }
.rv-av { width: 36px; height: 36px; flex: none; border-radius: 50%; display: grid; place-items: center; background: var(--primary-color); color: #fff; font-weight: 700; font-size: 15px; }
.rv-stars { margin-left: auto; color: #f4b400; letter-spacing: 1px; font-size: 14px; white-space: nowrap; }
.rv-card p { margin: 0; font-size: 15px; line-height: 1.6; }
.rv-grid { columns: 3 320px; column-gap: 20px; }
.rv-card-static { width: auto; break-inside: avoid; margin-bottom: 20px; display: block; }
@media (max-width: 640px) { .rv-card { width: 300px; padding: 16px 18px; } .rv-card-static { width: auto; } .rv-card p { font-size: 14.5px; } }

/* Footer: LinkedIn personale sotto le icone dello Studio */
.footer-linkedin-person { display: flex; width: fit-content; align-items: center; gap: 8px; margin-top: 14px; font-size: 13px; color: rgba(255,255,255,.75); text-decoration: underline; text-underline-offset: 3px; }
.footer-linkedin-person:hover { color: #fff; }

/* Bottoni piu grandi in tutto il sito (27/10/2026): riconoscibili come bottoni */
a.btn-main, button.btn-main, input.btn-main, .btn-main {
  padding: 15px 32px !important; font-size: 16px !important; line-height: 1.3 !important;
  border-radius: 6px !important; font-weight: 600;
}
a.btn-arrow { padding: 15px 28px; font-size: 16px; line-height: 1.3; }
header .btn-main.header-cta { padding: 12px 24px !important; font-size: 15px !important; }
@media (max-width: 767px) {
  a.btn-main, button.btn-main, input.btn-main, .btn-main { padding: 15px 22px !important; }
}
@media (min-width: 992px) { .btn-main { white-space: nowrap; } }
a.btn-arrow { white-space: normal; max-width: 100%; }

/* Home: recapiti cliccabili (telefono, sede su Maps, email) */
.contact-tile-link, .contact-tile-link:hover { text-decoration: none; color: inherit; }
.contact-tile .contact-link { color: #1b1b1b; text-decoration: underline; text-decoration-color: rgba(153,0,44,.35); text-underline-offset: 4px; }
.contact-tile-link:hover .contact-link, .contact-tile a.contact-link:hover { color: var(--primary-color); text-decoration-color: var(--primary-color); }
.contact-tile-ico { line-height: 0; }
