/* ============================================================
   DARK THEME — Corinthian Builders
   Applied via: body.dark-theme { ... }
   Orange #FB6600 as primary, dark blacks & grays throughout
   ============================================================ */

/* ── CSS Custom Properties for Dark Theme ── */
body.dark-theme {
  --bg-primary:    #0f0f0f;
  --bg-secondary:  #161616;
  --bg-card:       #1c1c1c;
  --bg-card-hover: #222222;
  --bg-input:      #1a1a1a;
  --border:        rgba(255,255,255,0.08);
  --border-hover:  rgba(251,102,0,0.5);
  --text-primary:  #f0ede8;
  --text-secondary:#a8a49e;
  --text-muted:    #6b6762;
  --orange:        #fb6600;
  --orange-dim:    rgba(251,102,0,0.12);
  --orange-hover:  #e55a00;
  background-color: var(--bg-primary);
  color: var(--text-primary);
  transition: background-color 0.35s ease, color 0.35s ease;
}

/* ── Header (desktop) ── */
body.dark-theme .header {
  background: rgb(15 15 15 / 29%) !important;
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--border);
}
body.dark-theme .header-page {
  background: #0f0f0f !important;
  box-shadow: 0 2px 20px rgba(0,0,0,0.5);
  border-bottom: 1px solid var(--border);
}
body.dark-theme .header.sticky {
  background: rgba(15,15,15,0.97) !important;
  box-shadow: 0 2px 20px rgba(0,0,0,0.4);
}
body.dark-theme .navbar .navbar-nav > li > a,
body.dark-theme .header.sticky .navbar .navbar-nav > li > a,
body.dark-theme .header-page .navbar .navbar-nav > li > a {
  color: var(--text-primary) !important;
}
body.dark-theme .navbar .navbar-nav > li > a:hover,
body.dark-theme .navbar .navbar-nav > .active > a {
  color: var(--orange) !important;
}
body.dark-theme .header-right a { color: var(--text-primary); }
body.dark-theme .header-right .contents span { color: #FB6600; }
body.dark-theme .header-right .contents p { color: var(--text-primary); }

/* ── Mobile Header ── */
body.dark-theme .mob-header {
  background: rgba(15,15,15,0.97);
  border-bottom: 1px solid var(--border);
  box-shadow: 0 2px 20px rgba(0,0,0,0.4);
}
body.dark-theme .mob-menu-btn {
  background: #1c1c1c;
  border-color: var(--border);
}
body.dark-theme .mob-menu-btn span { background: var(--text-primary); }
body.dark-theme .mob-menu-btn:hover { border-color: var(--orange); background: var(--orange-dim); }
body.dark-theme .mob-phone-btn {
  background: #fb6600;
  box-shadow: 0 4px 18px rgba(251,102,0,0.4);
}
body.dark-theme .mob-phone-btn:hover { background: #e55a00; }
body.dark-theme .theme-toggle-btn {
  background: #1c1c1c;
  border-color: var(--border);
  color: var(--orange);
}
body.dark-theme .theme-toggle-btn:hover {
  border-color: var(--orange);
  background: var(--orange-dim);
}
body.dark-theme .mob-sidebar { background: #111; }
body.dark-theme .mob-sidebar-header { background: #0a0a0a; border-color: var(--border); }
body.dark-theme .mob-close-btn { background: #1c1c1c; border-color: var(--border); color: var(--text-primary); }
body.dark-theme .mob-close-btn:hover { border-color: var(--orange); color: var(--orange); }
body.dark-theme .mob-nav ul li a { color: var(--text-primary); border-left-color: transparent; }
body.dark-theme .mob-nav ul li a:hover,
body.dark-theme .mob-nav ul li.mob-active a { color: var(--orange); border-left-color: var(--orange); background: var(--orange-dim); }
body.dark-theme .mob-overlay { background: rgba(0,0,0,0.75); }
body.dark-theme .mob-cta-call { background: #1c1c1c; border-color: var(--border); color: var(--text-primary); }
body.dark-theme .mob-cta-call:hover { border-color: var(--orange); color: var(--orange); }
body.dark-theme .mob-sidebar-cta { border-color: var(--border); }
body.dark-theme .mob-sidebar-footer { border-color: var(--border); }
body.dark-theme .mob-sidebar-footer p { color: var(--text-muted); }

/* ── Banner / Hero ── */
/* Banner: add dark overlay via ::before in dark mode */
body.dark-theme .banner::before {
  background: linear-gradient(
    135deg,
    rgba(8, 5, 2, 0.90) 0%,
    rgba(15, 9, 3, 0.85) 50%,
    rgba(8, 5, 2, 0.80) 100%
  );
  opacity: 1 !important;
  z-index: 0;
}
body.dark-theme .banner-content-box h1 { color: #fff; }
body.dark-theme .banner-badge {
  background: rgba(251,102,0,0.15);
  border-color: rgba(251,102,0,0.4);
}
body.dark-theme .banner-stats {
  background: rgba(22,22,22,0.85);
  border-top: 1px solid var(--border);
}
body.dark-theme .banner-stat h3 { color: var(--text-primary); }
body.dark-theme .banner-stat p { color: #FB6600; }
body.dark-theme .banner-stat + .banner-stat { border-left-color: var(--border); }

/* ── Services Section ── */
body.dark-theme .services { background: var(--bg-secondary); }
body.dark-theme .services-header-left h2 { color: var(--text-primary); }
body.dark-theme .services-header-right p { color: var(--text-secondary); }
body.dark-theme .services-also-label { color: var(--text-muted); }
body.dark-theme .services-tag {
  border-color: var(--border);
  color: var(--text-secondary);
  background: transparent;
}
body.dark-theme .services-tag:hover {
  border-color: var(--orange);
  color: var(--orange);
  background: var(--orange-dim);
}

/* ── About / Welcome Cards ── */
body.dark-theme .about { background: var(--bg-primary); }
body.dark-theme .about-header h2 { color: var(--text-primary); }
body.dark-theme .about-intro { color: var(--text-secondary); }
body.dark-theme .about-card {
  background: var(--bg-card);
  border-color: var(--border);
}
body.dark-theme .about-card:hover {
  border-color: var(--orange);
  box-shadow: 0 8px 32px rgba(0,0,0,0.4);
}
body.dark-theme .about-card-label { color: var(--text-muted); }
body.dark-theme .about-card-list li { color: var(--text-secondary); }

/* ── Process Section ── */
body.dark-theme .process { background: var(--bg-secondary); }
body.dark-theme .process-content h3,
body.dark-theme .process-content-left h3 { color: var(--text-primary); }
body.dark-theme .process-content p,
body.dark-theme .process-content-left p { color: var(--text-secondary); }
body.dark-theme .process-line { background: rgba(255,255,255,0.1); }

/* ── Portfolio / Compare Slider ── */
body.dark-theme .portfolio { background: var(--bg-secondary); }
body.dark-theme .portfolio-card {
  background: var(--bg-card);
  border-color: var(--border);
}
body.dark-theme .portfolio-card-info h3 { color: var(--text-primary); }
body.dark-theme .portfolio-location { color: var(--text-muted); }
body.dark-theme .compare-handle { background: rgba(255,255,255,0.8); }
body.dark-theme .compare-handle-btn {
  background: #1c1c1c;
  border-color: rgba(255,255,255,0.15);
  color: var(--text-primary);
}
body.dark-theme .compare-label {
  background: rgba(20,20,20,0.9);
  color: var(--text-primary);
  border-color: var(--border);
}

/* ── Marquee Section ── */
body.dark-theme .marquee-section {
  background: #0a0a0a;
  border-color: var(--border);
}
body.dark-theme .marquee-text { color: #333; }

/* ── Estimate / Free Form ── */
body.dark-theme .estimate { background: var(--bg-primary); }
body.dark-theme .estimate-header-left h2 { color: var(--text-primary); }
body.dark-theme .estimate-header-right p { color: var(--text-secondary); }
body.dark-theme .estimate-contact-icon {
  background: var(--bg-card);
  border-color: var(--border);
  color: var(--text-secondary);
}
body.dark-theme .estimate-contact-text span { color: var(--text-muted); }
body.dark-theme .estimate-contact-text p { color: var(--text-primary); }
body.dark-theme .estimate-divider { background: var(--border); }
body.dark-theme .estimate-follow-label { color: var(--text-muted); }
body.dark-theme .estimate-social-btn {
  background: var(--bg-card);
  border-color: var(--border);
  color: var(--text-secondary);
}
body.dark-theme .estimate-social-btn:hover { border-color: var(--orange); color: var(--orange); }
body.dark-theme .estimate-google-btn {
  background: var(--bg-card);
  border-color: var(--border);
  color: var(--text-secondary);
}
body.dark-theme .estimate-google-btn:hover { border-color: var(--orange); }
body.dark-theme .estimate-form-wrap {
  background: var(--bg-card);
  border-color: var(--border);
  box-shadow: 0 4px 40px rgba(0,0,0,0.4);
}
body.dark-theme .estimate-step-label { color: var(--text-muted); }
body.dark-theme .estimate-progress-bar { background: rgba(255,255,255,0.07); }
body.dark-theme .estimate-step h3 { color: var(--text-primary); }
body.dark-theme .estimate-step-sub { color: var(--text-secondary); }
body.dark-theme .estimate-option {
  background: var(--bg-secondary);
  border-color: var(--border);
  color: var(--text-primary);
}
body.dark-theme .estimate-option:hover {
  border-color: rgba(251,102,0,0.4);
  background: var(--orange-dim);
}
body.dark-theme .estimate-option.selected {
  border-color: var(--orange);
  background: rgba(251,102,0,0.1);
  color: var(--text-primary);
}
body.dark-theme .estimate-btn--back { color: var(--text-muted); }
body.dark-theme .estimate-btn--back:hover { color: var(--text-primary); }
body.dark-theme .estimate-input {
  background: var(--bg-secondary);
  border-color: var(--border);
  color: var(--text-primary);
}
body.dark-theme .estimate-input::placeholder { color: var(--text-muted); }
body.dark-theme .estimate-input:focus { border-color: var(--orange); }

/* ── Footer ── */
body.dark-theme .footer {
  background: #0a0a0a;
  border-color: var(--border);
}
body.dark-theme .footer-logo { color: var(--text-primary); }
body.dark-theme .footer-logo:hover { color: var(--text-primary); }
body.dark-theme .footer-tagline { color: var(--text-secondary); }
body.dark-theme .footer-col-label { color: var(--text-muted); }
body.dark-theme .footer-col-list li a,
body.dark-theme .footer-col-list li span { color: var(--text-secondary); }
body.dark-theme .footer-col-list li a:hover { color: var(--orange); }
body.dark-theme .footer-social-btn {
  background: var(--bg-card);
  border-color: var(--border);
  color: var(--text-secondary);
}
body.dark-theme .footer-social-btn:hover { border-color: var(--orange); color: var(--orange); }
body.dark-theme .footer-google-btn {
  background: var(--bg-card);
  border-color: var(--border);
  color: var(--text-secondary);
}
body.dark-theme .footer-google-btn:hover { border-color: var(--orange); }
body.dark-theme .footer-bottom { border-color: var(--border); }
body.dark-theme .footer-bottom-inner p { color: var(--text-muted); }
body.dark-theme .footer-licensed { color: var(--text-muted) !important; }
body.dark-theme .footer-devby { color: var(--text-muted); }

/* ── Back To Top ── */
body.dark-theme #back-top a {
  background: var(--bg-card);
  border: 1px solid var(--border);
  color: var(--orange);
}

/* ── Inner Pages ── */
body.dark-theme .inner-hero h1 span { color: #fb6600; }
body.dark-theme .inner-hero .inner-hero-breadcrumb .current {
    color: #fb6600; }
body.dark-theme .inner-hero { background: #0a0a0a; }
body.dark-theme .inner-cta { background: #0a0a0a; border-top: 1px solid var(--border); }

/* About inner page */
body.dark-theme .about-page-story { background: var(--bg-secondary); }
body.dark-theme .about-page-story-text h2 { color: var(--text-primary); }
body.dark-theme .about-page-story-text p { color: var(--text-secondary); }
body.dark-theme .about-points li { color: var(--text-secondary); }
body.dark-theme .about-stats { background: var(--bg-primary); border-color: var(--border); }
body.dark-theme .about-stat-label { color: var(--text-muted); }

/* Services inner page */
body.dark-theme .services-detail-section { background: var(--bg-secondary); }
body.dark-theme .services-detail-item { border-color: var(--border); }
body.dark-theme .services-detail-content h2 { color: var(--text-primary); }
body.dark-theme .services-detail-content p { color: var(--text-secondary); }
body.dark-theme .service-feature-list li { color: var(--text-secondary); }

/* Gallery inner page */
body.dark-theme .gallery-grid-section { background: var(--bg-secondary); }
body.dark-theme .gallery-filter-btn {
  background: var(--bg-card);
  border-color: var(--border);
  color: var(--text-secondary);
}
body.dark-theme .gallery-filter-btn.active,
body.dark-theme .gallery-filter-btn:hover {
  background: var(--orange);
  border-color: var(--orange);
  color: #fff;
}
body.dark-theme .gallery-item-info { }
body.dark-theme .gallery-item-info h4 { color: #fff; }

/* Contact inner page */
body.dark-theme .contact-page-section { background: var(--bg-secondary); }
body.dark-theme .contact-info-card { background: #0a0a0a; border: 1px solid var(--border); }
body.dark-theme .contact-form-card {
  background: var(--bg-card);
  border-color: var(--border);
  box-shadow: 0 4px 40px rgba(0,0,0,0.35);
}
body.dark-theme .contact-form-card h3 { color: var(--text-primary); }
body.dark-theme .contact-form-card > p { color: var(--text-secondary); }
body.dark-theme .contact-form-group label { color: var(--text-muted); }
body.dark-theme .contact-form-group input,
body.dark-theme .contact-form-group select,
body.dark-theme .contact-form-group textarea {
  background: var(--bg-secondary);
  border-color: var(--border);
  color: var(--text-primary);
}
body.dark-theme .contact-form-group input::placeholder,
body.dark-theme .contact-form-group textarea::placeholder { color: var(--text-muted); }
body.dark-theme .contact-form-group input:focus,
body.dark-theme .contact-form-group select:focus,
body.dark-theme .contact-form-group textarea:focus { border-color: var(--orange); }
body.dark-theme .contact-hours { border-color: var(--border); }
body.dark-theme .contact-hours ul li { color: rgba(255,255,255,0.55); }
body.dark-theme .contact-hours ul li span:last-child { color: rgba(255,255,255,0.3); }

/* ── Headings & general text ── */
body.dark-theme h1, body.dark-theme h2, body.dark-theme h3,
body.dark-theme h4, body.dark-theme h5, body.dark-theme h6 {
  color: var(--text-primary);
}
body.dark-theme p { color: var(--text-secondary); }
body.dark-theme .services-eyebrow p { color: var(--orange); }
body.dark-theme .services-eyebrow span { background: var(--orange); }

/* ============================================================
   THEME TOGGLE BUTTON
   ============================================================ */

/* Desktop toggle in header */
.theme-toggle-btn {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1.5px solid rgba(0,0,0,0.12);
  background: #f5f5f5;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: #555;
  transition: border-color 0.25s, background 0.25s, color 0.25s, transform 0.25s;
  flex-shrink: 0;
}
.theme-toggle-btn:hover {
  border-color: #fb6600;
  color: #fb6600;
  transform: rotate(20deg);
}
.theme-toggle-btn .icon-sun { display: none; }
.theme-toggle-btn .icon-moon { display: block; }

/* In dark mode — show sun, hide moon */
body.dark-theme .theme-toggle-btn {
  background: #1c1c1c;
  border-color: rgba(255,255,255,0.12);
  color: #fb6600;
}
body.dark-theme .theme-toggle-btn:hover {
  border-color: #fb6600;
  background: rgba(251,102,0,0.12);
}
body.dark-theme .theme-toggle-btn .icon-sun { display: block; }
body.dark-theme .theme-toggle-btn .icon-moon { display: none; }

/* Mobile sidebar toggle */
.mob-theme-toggle {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 24px;
  font-size: 16px;
  font-weight: 600;
  color: #222;
  cursor: pointer;
  border-left: 3px solid transparent;
  transition: color 0.2s, background 0.2s;
  border: none;
  background: transparent;
  width: 100%;
  text-align: left;
  font-family: "Finlandica Headline", sans-serif;
  border-left: 3px solid transparent;
}
.mob-theme-toggle:hover { color: #fb6600; background: rgba(251,102,0,0.04); }
body.dark-theme .mob-theme-toggle { color: #f0ede8; }
body.dark-theme .mob-theme-toggle:hover { color: #fb6600; background: rgba(251,102,0,0.08); }
.mob-theme-toggle .icon-sun { display: none; }
.mob-theme-toggle .icon-moon { display: block; }
body.dark-theme .mob-theme-toggle .icon-sun { display: block; }
body.dark-theme .mob-theme-toggle .icon-moon { display: none; }

/* Smooth transitions site-wide */
body, .header, .mob-header, .mob-sidebar, .footer,
.about-card, .estimate-form-wrap, .estimate-option,
.estimate-input, .contact-form-card, .contact-info-card,
.portfolio-card, .services-tag, .footer-social-btn,
.footer-google-btn, .estimate-social-btn {
  transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}

/* ============================================================
   DARK LOGO SWAP
   ============================================================ */
.site-logo-dark  { display: none; }
.site-logo-light { display: inline-block; }

body.dark-theme .site-logo-dark  { display: inline-block; }
body.dark-theme .site-logo-light { display: none; }


/* ============================================================
   SERVICES INNER PAGE — dark background fix
   ============================================================ */

/* The wrapper section that holds the services cards on services.php */
body.dark-theme .services-page-wrapper,
body.dark-theme section[style*="background:#F5F2ED"],
body.dark-theme section[style*="background: #F5F2ED"] {
  background: var(--bg-secondary) !important;
}

/* Services detail section dark bg */
body.dark-theme .services-detail-section {
  background: var(--bg-primary) !important;
}

/* The plain .services section used on the services.php page top cards */
body.dark-theme .services {
  background: var(--bg-secondary) !important;
}

/* Services-also tags */
body.dark-theme .services-also-label { color: var(--text-muted); }
body.dark-theme .services-tag {
  border-color: var(--border);
  color: var(--text-secondary);
  background: transparent;
}
body.dark-theme .services-tag:hover {
  border-color: var(--orange);
  color: var(--orange);
  background: var(--orange-dim);
}

/* Any inline-style white/cream backgrounds on services page */
body.dark-theme .services.php-wrapper { background: var(--bg-secondary) !important; }

/* ============================================================
   PROCESS TIMELINE — connecting line fixes
   ============================================================ */

/* Dark theme process bg */
body.dark-theme .process { background: var(--bg-secondary); }
/* Continuous timeline line in dark mode */
body.dark-theme .process-timeline::before { background: rgba(251,102,0,0.35); }
body.dark-theme .process-dot {
  border-color: var(--bg-secondary);
  box-shadow: 0 0 0 2px #fb6600;
}


/* Services cards overview dark */
body.dark-theme .services-cards-overview {
  background: var(--bg-secondary) !important;
}

/* Process numbers and content in dark mode */
body.dark-theme .process-content h3,
body.dark-theme .process-content-left h3 { color: var(--text-primary); }
body.dark-theme .process-content p,
body.dark-theme .process-content-left p { color: var(--text-secondary); }
body.dark-theme .process-timeline::before { background: rgba(251,102,0,0.25); }
