/* ABBRUCH HELDEN — Luxury Black & Gold */
@import url('/themes/theme-01-construction/css/theme.css');

:root {
    --primary:       #d4af37 !important;
    --primary-dark:  #b3922b !important;
    --accent:        #f3e5ab !important;
    --bg-dark:       #080808 !important;
    --bg-white:      #111111 !important;
    --text:          #f5f5f4 !important;
    --text-muted:    #a1a1aa !important;
    --border:        #27272a !important;
}

body { background: #080808 !important; color: #f5f5f4 !important; }
.site-header { background: #000000 !important; border-bottom: 2px solid #d4af37 !important; }
.header-top-bar { background: #050505 !important; color: #ffffff !important; }
.header-top-info a, .header-top-badge { color: #ffffff !important; }
.logo-name { color: #ffffff !important; }
.logo-sub { color: #d4af37 !important; }
.main-nav > ul > li > a { color: #f5f5f0 !important; font-weight: 600 !important; }
.main-nav > ul > li > a:hover { color: #d4af37 !important; }
.hero { background: linear-gradient(135deg, #000000 0%, #17150e 100%) !important; color: #ffffff !important; }
.hero h1 { color: #ffffff !important; }
.service-card, .contact-form-card, .cms-custom-content { background: #111111 !important; border: 1px solid #d4af37 !important; color: #f5f5f4 !important; border-radius: 4px !important; }
.btn-primary, .nav-cta-btn { background: #d4af37 !important; color: #000000 !important; border-color: #d4af37 !important; font-weight: 700 !important; border-radius: 4px !important; }
.footer-body { background: #050505 !important; }

/* =====================================================
   UNIVERSAL MOBILE RESPONSIVE FIX — ALL BREAKPOINTS
   ===================================================== */

/* Prevent horizontal overflow globally */
html { overflow-x: hidden; }
body { overflow-x: hidden; max-width: 100vw; }
* { box-sizing: border-box; }
img { max-width: 100%; height: auto; }

/* Ensure container never overflows */
.container { width: 100%; max-width: 1240px; margin: 0 auto; padding: 0 20px; }

/* Header always safe */
.site-header, .header-top-bar, .header-main { width: 100%; max-width: 100vw; overflow: hidden; }
.header-top-inner { flex-wrap: wrap; gap: 4px; }
.header-top-info a { max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Stats always contained */
.stats-section { overflow: hidden; }
.stats-inner { max-width: 1240px; margin: 0 auto; padding: 0 20px; }

/* Hero always contained */
.hero { max-width: 100vw; overflow: hidden; }
.hero-content { width: 100%; }
.hero-text { min-width: 0; overflow: hidden; }
.hero h1 { word-break: break-word; }
.hero-desc { word-break: break-word; max-width: 100%; }
.hero-actions { flex-wrap: wrap; }
.hero-trust { flex-wrap: wrap; }

/* ─── TABLET (max 992px) ─── */
@media (max-width: 992px) {
    .container { padding: 0 16px; }

    /* Header top bar */
    .header-top-bar { font-size: 12px; padding: 6px 0; }
    .header-top-inner { justify-content: center; overflow: hidden; }
    .header-top-info { font-size: 12px; flex-shrink: 1; min-width: 0; }
    .header-top-info a { max-width: 130px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

    /* Logo */
    .logo { max-width: calc(100% - 52px); min-width: 0; overflow: hidden; gap: 8px; }
    .logo img { max-height: 48px !important; flex-shrink: 0; }
    .logo-text-wrap { min-width: 0; overflow: hidden; }
    .logo-name { font-size: 18px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .logo-sub { font-size: 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 160px; }

    /* Mobile nav toggle */
    .mobile-toggle { display: flex; }
    .main-nav {
        position: absolute; top: 100%; left: 0; right: 0;
        background: #181512; border-bottom: 3px solid #f97316;
        padding: 20px; box-shadow: 0 16px 36px rgba(0,0,0,0.85);
        display: none; flex-direction: column; align-items: stretch;
        gap: 16px; max-height: 80vh; overflow-y: auto; z-index: 999;
    }
    .main-nav.open { display: flex; }
    .main-nav > ul { flex-direction: column; align-items: stretch; gap: 0; }
    .main-nav > ul > li { border-bottom: 1px solid rgba(255,255,255,0.08); }
    .main-nav > ul > li > a { display: block; padding: 12px 0; font-size: 15px; }

    /* Hero */
    .hero { padding: 50px 0 60px; }
    .hero-content { flex-direction: column; text-align: center; padding: 0 16px; gap: 28px; }
    .hero-text { width: 100%; }
    .hero h1 { font-size: clamp(1.8rem, 7vw, 3rem); }
    .hero-desc { font-size: 1rem; max-width: 100%; }
    .hero-actions { justify-content: center; flex-wrap: wrap; gap: 12px; }
    .hero-trust { justify-content: center; gap: 10px; }
    .hero-trust-item { font-size: 13px; }
    .hero-card-wrap { width: 100%; max-width: 480px; margin: 0 auto; }
    .hero-stats-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 16px; }
    .hero-stat-num { font-size: 2.2rem !important; }

    /* Stats */
    .stats-section { padding: 50px 0; }
    .stats-inner { grid-template-columns: repeat(2, 1fr) !important; gap: 20px; padding: 0 16px; }
    .stat-number { font-size: 2.8rem !important; }
    .stat-label { font-size: 12px; letter-spacing: 0.02em; }

    /* Grids */
    .grid-4 { grid-template-columns: repeat(2, 1fr); }
    .grid-3 { grid-template-columns: repeat(2, 1fr); }
    .services-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 18px; }
    .gallery-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 14px; }
    .gallery-item { height: 220px; }
    .process-grid { grid-template-columns: repeat(2, 1fr) !important; }
    .testimonials-grid { grid-template-columns: 1fr !important; }
    .footer-grid { grid-template-columns: 1fr !important; gap: 28px; }
    .why-grid { grid-template-columns: 1fr !important; }
    .why-features { grid-template-columns: 1fr !important; }
    .why-image { display: none; }
    .contact-grid { grid-template-columns: 1fr !important; }
    .form-row { grid-template-columns: 1fr !important; }

    /* CTA */
    .cta-inner { flex-direction: column !important; text-align: center; gap: 24px; }
    .cta-text h2 { font-size: clamp(1.8rem, 5vw, 2.4rem) !important; }
    .cta-actions { justify-content: center; flex-wrap: wrap; }

    /* Page hero */
    .page-hero { padding: 40px 0; }
    .page-hero h1 { font-size: clamp(1.8rem, 6vw, 2.8rem); }

    /* Section spacing */
    .section { padding: 60px 0; }
    .section-title { font-size: clamp(1.8rem, 5vw, 3rem); }

    /* Service detail layout */
    .service-detail-grid { grid-template-columns: 1fr !important; }
}

/* ─── MOBILE (max 600px) ─── */
@media (max-width: 600px) {
    .header-top-bar { display: none; }

    .header-main { padding: 10px 0; }

    /* Hero */
    .hero { padding: 36px 0 50px; }
    .hero h1 { font-size: clamp(1.6rem, 8.5vw, 2.2rem); }
    .hero-actions { flex-direction: column; align-items: stretch; }
    .hero-actions .btn { width: 100% !important; justify-content: center; }
    .hero-trust-item { font-size: 12.5px; }

    /* Stats */
    .stats-section { padding: 40px 0; }
    .stats-inner { grid-template-columns: repeat(2, 1fr) !important; gap: 14px; padding: 0 12px; }
    .stat-number { font-size: 2.2rem !important; }
    .stat-label { font-size: 11px !important; letter-spacing: 0; }

    /* Grids */
    .services-grid { grid-template-columns: 1fr !important; gap: 14px; }
    .gallery-grid { grid-template-columns: 1fr !important; }
    .gallery-item { height: 200px; }
    .process-grid { grid-template-columns: 1fr !important; }
    .grid-4 { grid-template-columns: repeat(2, 1fr); }
    .grid-3 { grid-template-columns: 1fr; }

    /* Typography */
    .section-title { font-size: clamp(1.6rem, 7vw, 2.2rem); }
    .section-desc { font-size: 0.95rem; }
    .section { padding: 50px 0; }

    /* CTA */
    .cta-text h2 { font-size: 1.8rem !important; }
    .cta-actions { flex-direction: column; align-items: stretch; width: 100%; }
    .cta-actions .btn { width: 100%; justify-content: center; }

    /* Buttons */
    .btn-lg { padding: 13px 22px; font-size: 14.5px; }

    /* Cards */
    .contact-form-card, .contact-info-card { padding: 20px 14px !important; }
    .cms-custom-content { padding: 18px 14px; font-size: 0.95rem; }
    .service-card { padding: 24px 20px; }
    .testimonial-card { padding: 24px 18px; }

    /* Footer */
    .site-footer { padding: 40px 0 0; }
    .footer-grid { grid-template-columns: 1fr !important; gap: 24px; }
}

/* ─── SMALL PHONES (max 380px) ─── */
@media (max-width: 380px) {
    .logo-sub { display: none; }
    .logo-name { font-size: 15px !important; }
    .logo img { max-height: 30px !important; }

    .hero h1 { font-size: 1.45rem; }
    .hero-actions .btn { font-size: 13.5px; padding: 12px 16px; }

    .stats-inner { grid-template-columns: repeat(2, 1fr) !important; gap: 10px; }
    .stat-number { font-size: 1.9rem !important; }

    .container { padding: 0 12px; }
    .section { padding: 40px 0; }
}
