/* ==========================================================================
   CrossFit Raise Hell — tema dark
   Override sopra style.css / style_table.css (template Regna).
   Palette allineata ai materiali stampati (A4 orari, gift card).
   ========================================================================== */
:root {
  --rh-bg: #121212;
  --rh-bg-2: #171717;
  --rh-panel: #1b1b1b;
  --rh-border: #2a2a2a;
  --rh-text: #eaeaea;
  --rh-muted: #a8a8a8;
  --rh-red: #e11d2e;
  --rh-red-hover: #ff3b45;
}

body { background: var(--rh-bg); color: var(--rh-text); }
a { color: var(--rh-red-hover); }
a:hover { color: #ff6b72; }
::selection { background: var(--rh-red); color: #fff; }

/* ---------- Header / nav ---------- */
#header { background: rgba(18, 18, 18, 0.55); }
#header.header-scrolled { background: rgba(18, 18, 18, 0.94); border-bottom: 1px solid var(--rh-border); }
#header .logo h1 { margin: 0; line-height: 0; }
#header .logo img { height: 42px; width: auto; display: block; }
.navbar a, .navbar a:focus { color: var(--rh-text); }
.navbar a:hover, .navbar .active, .navbar .active:focus, .navbar li:hover > a { color: #ffffff; }
.navbar a:before, .navbar a:hover:before, .navbar .active:before { background: var(--rh-red); }
.navbar-mobile { background: rgba(10, 10, 10, 0.95); }
.navbar-mobile ul { background: var(--rh-panel); }
.navbar-mobile a, .navbar-mobile a:focus { color: var(--rh-text); }
.mobile-nav-toggle { color: #ffffff; }

/* ---------- Hero ---------- */
#hero { background: #0b0b0b; }
#hero:before { display: none; }
#hero .hero-container { text-align: center; }
#hero h1 { margin: 0 0 32px 0; line-height: 0; }
#hero .hero-logo { width: min(700px, 84vw); height: auto; display: inline-block; filter: drop-shadow(0 6px 24px rgba(0, 0, 0, 0.6)); }
#hero .btn-get-started { color: #ffffff; border-color: rgba(255, 255, 255, 0.55); background: transparent; }
#hero .btn-get-started:hover { background: var(--rh-red); border-color: var(--rh-red); color: #ffffff; }

/* ---------- Sezioni ---------- */
section { background: var(--rh-bg); color: var(--rh-text); }
.section-bg { background: var(--rh-bg-2) !important; }
.section-title h2 { color: #ffffff; }
.section-title h2::after { background: rgba(225, 29, 46, 0.28); border-radius: 50%; width: 122px; height: 66px; }
.section-title p { color: var(--rh-muted); }
.about-btn, .about-btn:focus { background: var(--rh-red); border-color: var(--rh-red); color: #ffffff; }
.about-btn:hover { background: var(--rh-red-hover); border-color: var(--rh-red-hover); color: #ffffff; }

/* ---------- Chi siamo ---------- */
.about { background: var(--rh-bg-2); }
.about::before { background: rgba(18, 18, 18, 0.88); }
.about .content { background: var(--rh-panel); border: 1px solid var(--rh-border); color: var(--rh-text); padding: 30px; }
.about .content .about-btn { background: var(--rh-red); color: #ffffff; }
.about .content .about-btn:hover { background: var(--rh-red-hover); }
.about .content.about-intro { max-width: 760px; margin: 0 auto 36px auto; text-align: center; padding: 40px 36px; }
.about .content.about-intro p { margin-bottom: 22px; }
.about .about-points > div { margin-bottom: 24px; }
.about .about-points .point { height: 100%; background: var(--rh-panel); border: 1px solid var(--rh-border); border-radius: 4px; padding: 28px 22px; text-align: center; transition: border-color 0.3s; }
.about .about-points .point:hover { border-color: var(--rh-red); }
.about .about-points .point i { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 50%; background: rgba(225, 29, 46, 0.14); color: var(--rh-red); font-size: 26px; margin-bottom: 14px; }
.about .about-points .point h4 { color: #ffffff; font-size: 18px; font-weight: 700; margin: 0 0 8px 0; }
.about .about-points .point p { color: var(--rh-muted); font-size: 15px; line-height: 1.55; margin: 0; }
.about .content h3 { color: #ffffff; }
.about .content p { color: var(--rh-muted); }
.about .icon-boxes .icon-box i { color: var(--rh-red); }
.about .icon-boxes .icon-box h4 { color: #ffffff; }
.about .icon-boxes .icon-box p { color: var(--rh-muted); }

/* ---------- Servizi ---------- */
.services .icon-box { background: var(--rh-panel); border: 1px solid var(--rh-border); box-shadow: none; }
.services .icon-box:hover { background: var(--rh-panel); border-color: var(--rh-red); }
.services .icon-box .icon { background: rgba(225, 29, 46, 0.14); }
.services .icon-box .icon i, .services .icon-box:hover .icon i { color: var(--rh-red); }
.services .icon-box:hover .icon { background: rgba(225, 29, 46, 0.14); }
.services .icon-box h4 a, .services .icon-box:hover h4 a { color: #ffffff; }
.services .icon-box p, .services .icon-box:hover p { color: var(--rh-muted); }

/* ---------- Gallery ---------- */
.portfolio { background: var(--rh-bg); }
.portfolio .carousel-control-prev-icon, .portfolio .carousel-control-next-icon { filter: drop-shadow(0 0 4px rgba(0, 0, 0, 0.8)); }

/* ---------- Programma (tabella) ---------- */
#programma .table { color: var(--rh-text); border-color: var(--rh-border); background: transparent; }
#programma .table > :not(caption) > * > * { background: transparent; color: var(--rh-text); border-color: var(--rh-border); }
#programma .table-bordered th, #programma .table-bordered td { border-color: var(--rh-border); }
#programma thead tr.bg-light-gray, #programma thead tr.bg-light-gray th { background: var(--rh-panel) !important; color: #ffffff; letter-spacing: 1px; }
#programma tbody td.align-middle { color: #ffffff; font-weight: 600; background: var(--rh-panel); }
#programma .font-size14 { color: #d8d8d8; }
/* colori disciplina = A4 orari */
#programma .bg-sky { background: #e11d2e !important; color: #ffffff !important; }      /* CrossFit */
#programma .bg-yellow { background: #ffd500 !important; color: #111111 !important; }   /* Hyrox */
#programma .bg-lightred { background: #ff7a00 !important; color: #111111 !important; } /* Burn */
#programma .bg-black { background: #2f7af0 !important; color: #ffffff !important; }    /* Calisthenics */
#programma .bg-purple { background: #e0218a !important; color: #ffffff !important; }   /* Boxe */

/* ---------- Team ---------- */
.team .member { background: var(--rh-panel); }
.team .member .member-info { background: rgba(18, 18, 18, 0.92); }
.team .member .member-info h4 { color: #ffffff; }
.team .member .member-info span { color: var(--rh-muted); }

/* ---------- Contatti ---------- */
.contact .info-box { background: var(--rh-panel); border: 1px solid var(--rh-border); box-shadow: none; }
.contact .info-box i { background: rgba(225, 29, 46, 0.14); color: var(--rh-red); border-color: rgba(225, 29, 46, 0.45); }
.contact .info-box h3 { color: #ffffff; }
.contact .info-box p { color: var(--rh-muted); }
.contact iframe { filter: invert(0.92) hue-rotate(180deg) saturate(0.6); border-radius: 4px; }

/* ---------- Footer / varie ---------- */
#footer { background: #0d0d0d; color: var(--rh-text); border-top: 1px solid var(--rh-border); }
#footer .footer-top { background: #0d0d0d; }
#footer .footer-top .footer-info { background: var(--rh-panel); color: var(--rh-text); border-top: 3px solid var(--rh-red); }
#footer .footer-top .footer-info h3 { color: #ffffff; }
#footer .footer-top .footer-info p { color: var(--rh-muted); }
#footer .footer-top .social-links a { background: var(--rh-red); color: #ffffff; }
#footer .footer-top .social-links a:hover { background: var(--rh-red-hover); }
#footer .footer-info h3 { color: #ffffff; }
#footer .footer-info p { color: var(--rh-muted); }
#footer .social-links a { background: var(--rh-red); color: #ffffff; }
#footer .social-links a:hover { background: var(--rh-red-hover); }
.back-to-top { background: var(--rh-red); }
.back-to-top:hover { background: var(--rh-red-hover); }

/* overlay hover card discipline (il template usa il blu #67b0d1) */
.services .icon-box::before { background: rgba(18, 18, 18, 0.55); }
.services .icon-box:hover::before { background: rgba(225, 29, 46, 0.86); }
