/**
 * GlobalBobTooma Footer styles.
 * Extracted from footer.php for cacheable delivery.
 */
/* ==========================================================================
       FOOTER â€” Variables & Base
       ========================================================================== */
    .gb-footer {
        --ftr-bg: #111111;
        --ftr-text: #cccccc;
        --ftr-accent: #573a36;
        --ftr-accent-hover: #573a36;
        --ftr-gold: #C9A96E;
        --ftr-gold-hover: #D4B87A;
        --ftr-muted: #666666;
        --ftr-border: rgba(255,255,255,0.08);
        --ftr-max-w: 1320px;
        --ftr-pad: 40px;
        --ftr-font: 'DM Sans', system-ui, sans-serif;
        --ftr-serif: 'Playfair Display', Georgia, serif;

        position: relative;
        background: var(--ftr-bg);
        color: #ffffff;
        font-family: var(--ftr-font);
        overflow: hidden;
    }

    /* Arabic-Inspired Geometric Background Pattern
       Subtle, low opacity, non-distracting â€” pure CSS */
    .gb-footer::before {
        content: '';
        position: absolute;
        inset: 0;
        opacity: 0.025;
        background-image:
            /* 8-pointed star lattice */
            linear-gradient(45deg,  transparent 45%, #fff 45%, #fff 55%, transparent 55%),
            linear-gradient(-45deg, transparent 45%, #fff 45%, #fff 55%, transparent 55%),
            linear-gradient(45deg,  transparent 45%, #fff 45%, #fff 55%, transparent 55%),
            linear-gradient(-45deg, transparent 45%, #fff 45%, #fff 55%, transparent 55%);
        background-size: 60px 60px, 60px 60px, 60px 60px, 60px 60px;
        background-position: 0 0, 0 0, 30px 30px, 30px 30px;
        pointer-events: none;
        z-index: 0;
    }
    /* Everything else above pattern */
    .gb-footer > * {
        position: relative;
        z-index: 1;
    }

    /* Container */
    .gb-footer__container {
        width: 92%;
        max-width: var(--ftr-max-w);
        margin: 0 auto;
        padding: 0;
    }

    /* ==========================================================================
       BACK TO TOP (Premium)
       ========================================================================== */
    .gb-btt {
        position: fixed;
        bottom: 30px;
        right: 30px;
        width: 50px;
        height: 50px;
        background: #573a36;
        color: #fff;
        border: 2px solid #ffffff;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
        z-index: 999;
        opacity: 0;
        visibility: hidden;
        transform: translateY(20px);
        transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
        box-shadow: 0 4px 18px rgba(87, 58, 54, 0.4);
    }
    .gb-btt.is-visible {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }
    .gb-btt:hover {
        background: #573a36;
        transform: translateY(-2px);
        box-shadow: 0 8px 25px rgba(87, 58, 54, 0.5);
    }

    /* ==========================================================================
       TIER 1 â€” Top Section (Brand + CTAs)
       ========================================================================== */
    .gb-footer__top {
        padding: 50px 0;
        border-bottom: 1px solid var(--ftr-border);
    }
    .gb-footer__top .gb-footer__container {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 30px;
    }

    /* Brand */
    .gb-footer__brand { text-align: center; flex-shrink: 0; }
    .gb-footer__brand-link {
        text-decoration: none;
        display: flex;
        flex-direction: column;
        align-items: center;
    }
    .gb-footer__brand img { max-height: 70px; width: auto; }
    .gb-footer__brand-name {
        font-family: var(--ftr-serif);
        font-size: clamp(28px, 4vw, 40px);
        font-weight: 700;
        color: var(--ftr-gold);
        letter-spacing: 0.05em;
        display: block;
    }
    .gb-footer__brand-tagline {
        font-size: 9px;
        letter-spacing: 0.4em;
        color: var(--ftr-muted);
        display: block;
        margin-top: 5px;
        text-transform: uppercase;
    }

    /* CTAs */
    .gb-footer__cta {
        display: inline-flex;
        align-items: center;
        gap: 12px;
        padding: 14px 30px;
        font-size: 11px;
        font-weight: 700;
        letter-spacing: 0.15em;
        text-transform: uppercase;
        text-decoration: none;
        border-radius: 3px;
        transition: all 0.3s ease;
        white-space: nowrap;
    }
    .gb-footer__cta svg { transition: transform 0.3s ease; }
    .gb-footer__cta:hover svg { transform: translateX(4px); }

    .gb-footer__cta--outline {
        border: 2px solid #573a36;
        color: #ffffff;
        background: transparent;
    }
    .gb-footer__cta--outline:hover {
        background: #573a36;
        border-color: #573a36;
        color: #ffffff;
    }
    .gb-footer__cta--solid {
        background: #573a36;
        border: 2px solid #573a36;
        color: #ffffff;
    }
    .gb-footer__cta--solid:hover {
        background: #573a36;
        border-color: #573a36;
        color: #ffffff;
        transform: translateY(-2px);
        box-shadow: 0 6px 20px rgba(87, 58, 54, 0.3);
    }

    /* ==========================================================================
       TIER 2 â€” Middle Section (Grid)
       ========================================================================== */
    .gb-footer__middle {
        padding: 60px 0;
    }
    .gb-footer__grid {
        display: grid;
        grid-template-columns: 1.2fr 1fr 1fr 1.4fr;
        gap: 48px;
    }

    /* Column Titles */
    .gb-footer__col-title {
        font-size: 10px;
        font-weight: 700;
        letter-spacing: 0.22em;
        text-transform: uppercase;
        color: rgba(255,255,255,0.45);
        margin-bottom: 24px;
        padding-bottom: 10px;
        border-bottom: 1px solid var(--ftr-border);
    }

    /* Links */
    .gb-footer__links {
        list-style: none;
        padding: 0;
        margin: 0;
    }
    .gb-footer__links li { margin-bottom: 14px; }
    .gb-footer__links a {
        font-size: 13px;
        color: var(--ftr-text);
        text-decoration: none;
        transition: color 0.25s ease, padding-left 0.25s ease;
        display: inline-block;
    }
    .gb-footer__links a:hover {
        color: var(--ftr-gold);
        padding-left: 5px;
    }

    /* Map */
    .gb-footer__map {
        width: 100%;
        height: 220px;
        min-height: 180px;
        border-radius: 6px;
        overflow: hidden;
        background: #1a1a1a;
    }
    .gb-footer__map iframe {
        width: 100%;
        height: 100%;
        border: none;
        filter: grayscale(100%) invert(92%) contrast(83%);
    }
    .gb-footer__map-placeholder {
        width: 100%;
        height: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 10px;
        color: rgba(255,255,255,0.35);
        font-size: 13px;
    }

    /* ==========================================================================
       NEWSLETTER â€” Provider-Agnostic
       ========================================================================== */
    .gb-footer__newsletter-desc {
        font-size: 13px;
        color: var(--ftr-text);
        line-height: 1.6;
        margin: 0 0 18px;
    }
    .gb-newsletter__hp { display: none !important; } /* Honeypot */

    .gb-newsletter__field {
        display: flex;
        gap: 0;
        margin-bottom: 10px;
    }
    .gb-newsletter__input {
        flex: 1;
        background: rgba(255,255,255,0.06);
        border: 1px solid rgba(255,255,255,0.12);
        border-right: none;
        border-radius: 4px 0 0 4px;
        padding: 13px 16px;
        color: #ffffff;
        font-size: 14px;
        font-family: var(--ftr-font);
        outline: none;
        transition: border-color 0.3s ease, background 0.3s ease;
    }
    .gb-newsletter__input:focus {
        border-color: var(--ftr-accent);
        background: rgba(255,255,255,0.08);
    }
    .gb-newsletter__input::placeholder {
        color: rgba(255,255,255,0.35);
    }
    .gb-newsletter__btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        background: #573a36;
        border: 1px solid #573a36;
        border-radius: 0 4px 4px 0;
        padding: 13px 22px;
        color: #ffffff;
        font-size: 11px;
        font-weight: 700;
        font-family: var(--ftr-font);
        letter-spacing: 0.1em;
        text-transform: uppercase;
        cursor: pointer;
        transition: box-shadow 0.3s ease;
        white-space: nowrap;
        min-width: 110px;
    }
    .gb-newsletter__btn:hover {
        background: #573a36;
        border-color: #573a36;
        color: #ffffff;
        box-shadow: 0 4px 14px rgba(87, 58, 54, 0.35);
    }
    .gb-newsletter__btn-loading {
        display: none;
    }
    .gb-newsletter.is-loading .gb-newsletter__btn-text { display: none; }
    .gb-newsletter.is-loading .gb-newsletter__btn-loading {
        display: flex;
        animation: gb-spin 0.8s linear infinite;
    }
    @keyframes gb-spin { to { transform: rotate(360deg); } }

    /* Status Messages */
    .gb-newsletter__status {
        min-height: 0;
    }
    .gb-newsletter__msg {
        display: none;
        font-size: 12px;
        padding: 8px 0;
        margin: 0;
    }
    .gb-newsletter__msg--success { color: #4ade80; }
    .gb-newsletter__msg--error   { color: #f87171; }
    .gb-newsletter__msg--invalid { color: #fbbf24; }

    .gb-newsletter.is-success .gb-newsletter__msg--success,
    .gb-newsletter.is-error   .gb-newsletter__msg--error,
    .gb-newsletter.is-invalid .gb-newsletter__msg--invalid {
        display: block;
    }

    /* ==========================================================================
       SOCIAL ICONS â€” Inline SVG
       ========================================================================== */
    .gb-footer__social {
        display: flex;
        flex-wrap: wrap;
        gap: 12px;
        margin-top: 22px;
    }
    .gb-footer__social-link {
        width: 44px;
        height: 44px;
        min-width: 44px;
        border-radius: 50%;
        background: #573a36;
        display: flex;
        align-items: center;
        justify-content: center;
        color: #ffffff;
        text-decoration: none;
        transition: transform 0.3s ease, box-shadow 0.3s ease;
    }
    .gb-footer__social-link:hover {
        background: #573a36;
        color: #ffffff;
        transform: translateY(-3px);
        box-shadow: 0 4px 14px rgba(87, 58, 54, 0.4);
    }

    /* ==========================================================================
       TIER 3 â€” Bottom Bar
       ========================================================================== */
    .gb-footer__bottom {
        padding: 24px 0;
        border-top: 1px solid var(--ftr-border);
    }
    .gb-footer__bottom .gb-footer__container {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 20px;
    }
    .gb-footer__copyright p {
        font-size: 11px;
        letter-spacing: 0.06em;
        color: var(--ftr-muted);
        margin: 0;
    }

    /* Language Toggle */
    .gb-footer__lang-toggle {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        background: rgba(255,255,255,0.05);
        border: 1px solid rgba(255,255,255,0.1);
        border-radius: 20px;
        padding: 8px 16px;
        color: #ffffff;
        font-size: 11px;
        font-weight: 600;
        font-family: var(--ftr-font);
        cursor: pointer;
        text-decoration: none;
        transition: border-color 0.3s ease;
    }
    .gb-footer__lang-toggle:hover {
        border-color: rgba(255,255,255,0.25);
    }

    /* Footer Menu */
    .gb-footer__menu {
        display: flex;
        align-items: center;
        gap: 25px;
        list-style: none;
        margin: 0;
        padding: 0;
    }
    .gb-footer__menu li a {
        font-size: 10px;
        font-weight: 700;
        letter-spacing: 0.15em;
        text-transform: uppercase;
        color: var(--ftr-muted);
        text-decoration: none;
        transition: color 0.3s ease;
    }
    .gb-footer__menu li a:hover { color: #ffffff; }

    /* ==========================================================================
       RESPONSIVE â€” Footer Main
       ========================================================================== */

    /* Large Monitors */
    @media (min-width: 1400px) {
        .gb-footer__container {
            max-width: 1380px;
        }
        .gb-footer__grid {
            gap: 56px;
        }
    }

    /* Desktop/Laptop */
    @media (min-width: 1024px) and (max-width: 1399px) {
        .gb-footer__container {
            width: 94%;
            max-width: 1200px;
        }
        .gb-footer__grid {
            gap: 36px;
        }
    }

    /* Tablet */
    @media (max-width: 1023px) {
        .gb-footer__top .gb-footer__container {
            flex-direction: column;
            text-align: center;
            gap: 24px;
        }
        .gb-footer__grid {
            grid-template-columns: 1fr 1fr;
            gap: 36px;
        }
        .gb-footer__col--map {
            grid-column: 1 / -1;
        }
        .gb-footer__col--newsletter {
            grid-column: 1 / -1;
        }
    }

    /* Mobile */
    @media (max-width: 767px) {
        .gb-footer__container { 
            width: 100%; 
            padding: 0 20px; 
            /* overflow: hidden;  <-- REMOVED to prevent clipping of shadows/map */
        }
        .gb-footer__top { padding: 30px 0; }
        .gb-footer__middle { padding: 30px 0; }
        .gb-footer__grid {
            grid-template-columns: 1fr;
            gap: 30px;
        }
        
        /* Mobile: Map Edge-to-Edge Logic */
        .gb-footer__col--map { 
            order: -1; 
            width: auto;
            margin-left: -20px;
            margin-right: -20px;
        }
        .gb-footer__map { 
            height: 300px; 
            min-height: 250px; 
            width: 100%;
            border-radius: 0;
        }
        
        /* CTAs: "Small on mobile" */
        .gb-footer__cta {
            padding: 12px 16px; /* Reduced padding */
            font-size: 10px; /* Smaller font */
            width: auto; /* Allow auto width to look like buttons, not blocks */
            min-width: 48%; /* But ensure they are clickable */
            justify-content: center;
            text-align: center;
            margin-bottom: 10px;
            display: flex; /* Ensure flex */
        }
        
        .gb-footer__bottom .gb-footer__container {
            flex-direction: column;
            text-align: center;
            gap: 20px;
            padding-bottom: 30px; 
        }
        .gb-footer__menu { flex-wrap: wrap; justify-content: center; gap: 12px; }

        /* Newsletter */
        .gb-newsletter__field {
            flex-direction: column;
            gap: 10px;
            width: 100%;
        }
        .gb-newsletter__input {
            border: 1px solid rgba(255,255,255,0.2);
            border-radius: 4px;
            padding: 12px 15px; 
            width: 100%; 
            font-size: 14px; 
        }
        .gb-newsletter__btn {
            border-radius: 4px;
            padding: 12px;
            width: 100%;
            justify-content: center;
            font-size: 11px;
        }

        /* Social centered wrap */
        .gb-footer__social {
            justify-content: center;
            gap: 10px;
        }
        .gb-footer__social-link {
            width: 44px;
            height: 44px;
        }

        /* BTT mobile position */
        .gb-btt {
            bottom: 20px;
            right: 20px;
            width: 46px;
            height: 46px;
        }
    }

    /* Extra Small */
    @media (max-width: 380px) {
        .gb-footer__container { padding: 0 16px; }
        .gb-footer__cta { padding: 10px 16px; font-size: 9px; gap: 8px; }
        .gb-footer__brand-name { font-size: 24px; }
    }

    /* Accessibility â€” Reduced Motion */
    @media (prefers-reduced-motion: reduce) {
        .gb-btt,
        .gb-footer__social-link,
        .gb-footer__cta,
        .gb-newsletter__btn {
            transition: none !important;
        }
    }
