/* OpenWood Assembly Guide - Frontend */

:root {
    --oag-primary: #C49A6C;
    --oag-dark: #2D2D2D;
    --oag-text: #333;
    --oag-text-light: #888;
    --oag-bg: #F7F6F3;
    --oag-white: #fff;
    --oag-border: #EAEAEA;
    --oag-shadow: 0 1px 8px rgba(0,0,0,0.04);
    --oag-shadow-hover: 0 6px 24px rgba(0,0,0,0.08);
    --oag-radius: 16px;
    --oag-radius-full: 999px;
    --oag-ease: all 0.25s cubic-bezier(.4,0,.2,1);
    --oag-font: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

.oag-wrap { font-family: var(--oag-font) !important; color: var(--oag-text) !important; line-height: 1.5 !important; -webkit-font-smoothing: antialiased; }
.oag-wrap *, .oag-wrap *::before, .oag-wrap *::after { box-sizing: border-box !important; }
.oag-container { max-width: 1100px !important; margin: 0 auto !important; padding: 0 20px !important; }

/* ── Hero ─────────────────────────────── */

.oag-hero {
    background: var(--oag-dark) !important;
    padding: 64px 20px 52px !important;
    text-align: center !important;
}

.oag-hero-inner { max-width: 600px !important; margin: 0 auto !important; }

.oag-hero-title { color: #fff !important; font-size: 34px !important; font-weight: 700 !important; margin: 0 0 8px !important; line-height: 1.2 !important; }
.oag-hero-subtitle { color: rgba(255,255,255,0.55) !important; font-size: 15px !important; margin: 0 0 32px !important; }

/* Search */
.oag-search-wrap { position: relative !important; max-width: 500px !important; margin: 0 auto !important; }
.oag-search-box {
    display: flex !important; align-items: center !important;
    background: var(--oag-white) !important; border-radius: var(--oag-radius-full) !important;
    padding: 5px 8px 5px 18px !important;
    box-shadow: 0 4px 20px rgba(0,0,0,0.12) !important;
    transition: var(--oag-ease) !important;
    border: none !important;
}
.oag-search-box:focus-within { box-shadow: 0 4px 20px rgba(196,154,108,0.3) !important; }
.oag-search-icon { color: #aaa !important; flex-shrink: 0 !important; margin-right: 10px !important; }
#oag-search-input {
    flex: 1 !important; border: none !important; outline: none !important;
    font-size: 15px !important; color: var(--oag-text) !important;
    background: transparent !important; padding: 11px 0 !important;
    font-family: var(--oag-font) !important;
    box-shadow: none !important; border-radius: 0 !important;
    min-height: auto !important; height: auto !important;
}
#oag-search-input::placeholder { color: #bbb !important; }
.oag-spinner { width: 18px !important; height: 18px !important; border: 2px solid #eee !important; border-top-color: var(--oag-primary) !important; border-radius: 50% !important; animation: oag-spin .6s linear infinite !important; margin-right: 10px !important; }
@keyframes oag-spin { to { transform: rotate(360deg); } }

/* Suggestions */
.oag-search-suggestions {
    position: absolute !important; top: calc(100% + 6px) !important; left: 0 !important; right: 0 !important;
    background: var(--oag-white) !important; border-radius: var(--oag-radius) !important;
    box-shadow: 0 8px 30px rgba(0,0,0,0.12) !important; z-index: 100 !important;
    max-height: 300px !important; overflow-y: auto !important; border: 1px solid var(--oag-border) !important;
}
.oag-suggestion-item { display: flex !important; align-items: center !important; justify-content: flex-start !important; text-align: left !important; gap: 12px !important; padding: 10px 14px !important; cursor: pointer !important; transition: var(--oag-ease) !important; border-bottom: 1px solid #f5f5f5 !important; }
.oag-suggestion-item:last-child { border-bottom: none !important; }
.oag-suggestion-item:hover { background: #faf8f5 !important; }
.oag-suggestion-thumb { width: 40px !important; height: 40px !important; border-radius: 10px !important; object-fit: cover !important; flex-shrink: 0 !important; background: #f0ede8 !important; }
.oag-suggestion-info { flex: 1 !important; min-width: 0 !important; text-align: left !important; }
.oag-suggestion-name { font-size: 14px !important; font-weight: 600 !important; color: var(--oag-text) !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; text-align: left !important; }
.oag-suggestion-meta { font-size: 12px !important; color: var(--oag-text-light) !important; display: flex !important; align-items: center !important; justify-content: flex-start !important; gap: 6px !important; margin-top: 1px !important; text-align: left !important; }
.oag-suggestion-badge { padding: 1px 8px !important; border-radius: var(--oag-radius-full) !important; font-size: 11px !important; font-weight: 500 !important; background: rgba(196,154,108,0.1) !important; color: var(--oag-primary) !important; }

/* ── Products Grid ────────────────────── */

.oag-products-section { background: var(--oag-bg) !important; padding: 40px 0 56px !important; min-height: 300px !important; }
.oag-products-header { display: flex !important; align-items: center !important; justify-content: space-between !important; flex-wrap: wrap !important; gap: 12px !important; margin-bottom: 28px !important; }
.oag-section-title { font-size: 20px !important; font-weight: 700 !important; color: var(--oag-dark) !important; margin: 0 !important; display: flex !important; align-items: center !important; gap: 8px !important; }
.oag-section-title svg { color: var(--oag-primary) !important; }

/* Category pills - high specificity to override theme */
.oag-wrap .oag-category-filter { display: flex !important; gap: 6px !important; flex-wrap: wrap !important; }
.oag-wrap .oag-cat-btn,
.oag-wrap button.oag-cat-btn,
.oag-wrap .oag-category-filter .oag-cat-btn,
.oag-wrap .oag-category-filter button.oag-cat-btn {
    padding: 7px 18px !important;
    border: 1.5px solid var(--oag-border) !important;
    border-radius: var(--oag-radius-full) !important;
    background: var(--oag-white) !important;
    color: var(--oag-text) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    transition: var(--oag-ease) !important;
    font-family: var(--oag-font) !important;
    line-height: 1.4 !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    box-shadow: none !important;
    outline: none !important;
    text-decoration: none !important;
    display: inline-block !important;
    min-height: auto !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
}
.oag-wrap .oag-cat-btn:hover,
.oag-wrap button.oag-cat-btn:hover,
.oag-wrap .oag-category-filter .oag-cat-btn:hover {
    border-color: var(--oag-primary) !important;
    color: var(--oag-primary) !important;
    background: var(--oag-white) !important;
    box-shadow: none !important;
}
.oag-wrap .oag-cat-btn.active,
.oag-wrap button.oag-cat-btn.active,
.oag-wrap .oag-category-filter .oag-cat-btn.active {
    background: var(--oag-dark) !important;
    border-color: var(--oag-dark) !important;
    color: #fff !important;
    box-shadow: none !important;
}

/* Product cards */
.oag-products-grid { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)) !important; gap: 20px !important; }

.oag-product-card {
    background: var(--oag-white) !important; border-radius: var(--oag-radius) !important; overflow: hidden !important;
    box-shadow: var(--oag-shadow) !important; transition: var(--oag-ease) !important; cursor: pointer !important; border: 1.5px solid transparent !important;
}
.oag-product-card:hover { transform: translateY(-3px) !important; box-shadow: var(--oag-shadow-hover) !important; border-color: var(--oag-primary) !important; }

.oag-product-card-image { position: relative !important; width: 100% !important; padding-top: 100% !important; overflow: hidden !important; background: #f0ede8 !important; }
.oag-product-card-image img { position: absolute !important; top: 0 !important; left: 0 !important; width: 100% !important; height: 100% !important; object-fit: cover !important; transition: transform .4s ease, opacity .3s ease !important; }
.oag-product-card:hover .oag-product-card-image img { transform: scale(1.04) !important; }

/* Shimmer loading animation for images */
.oag-img-loading { position: relative !important; }
.oag-img-loading::after {
    content: '' !important; position: absolute !important; top: 0 !important; left: 0 !important;
    width: 100% !important; height: 100% !important; z-index: 2 !important;
    background: linear-gradient(90deg, #f0ede8 25%, #e8e4dd 50%, #f0ede8 75%) !important;
    background-size: 200% 100% !important;
    animation: oag-img-shimmer 1.5s ease-in-out infinite !important;
}
@keyframes oag-img-shimmer {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

.oag-product-card-body { padding: 14px 16px 16px !important; }
.oag-product-card-title { font-size: 14px !important; font-weight: 600 !important; color: var(--oag-dark) !important; margin: 0 0 4px !important; line-height: 1.3 !important; display: -webkit-box !important; -webkit-line-clamp: 2 !important; -webkit-box-orient: vertical !important; overflow: hidden !important; }
.oag-card-video-count { font-size: 12px !important; color: var(--oag-primary) !important; font-weight: 500 !important; }

/* ── Product Detail ───────────────────── */

.oag-product-detail { background: var(--oag-bg) !important; padding: 28px 0 56px !important; }

.oag-wrap .oag-back-btn,
.oag-wrap button.oag-back-btn {
    display: inline-flex !important; align-items: center !important; gap: 6px !important;
    padding: 9px 22px !important; background: var(--oag-white) !important; border: 1.5px solid var(--oag-border) !important;
    border-radius: var(--oag-radius-full) !important; color: var(--oag-text) !important; font-size: 14px !important;
    font-weight: 500 !important; cursor: pointer !important; transition: var(--oag-ease) !important;
    font-family: var(--oag-font) !important; margin-bottom: 24px !important;
    line-height: 1.4 !important; text-transform: none !important; letter-spacing: normal !important;
    box-shadow: none !important; -webkit-appearance: none !important; appearance: none !important;
}
.oag-wrap .oag-back-btn:hover,
.oag-wrap button.oag-back-btn:hover {
    border-color: var(--oag-primary) !important;
    color: var(--oag-primary) !important;
    background: var(--oag-white) !important;
    box-shadow: none !important;
}

.oag-product-header {
    display: flex !important; gap: 28px !important; align-items: center !important;
    margin-bottom: 36px !important; background: var(--oag-white) !important;
    border-radius: var(--oag-radius) !important; padding: 24px !important; box-shadow: var(--oag-shadow) !important;
}
.oag-product-image-wrap { width: 160px !important; height: 160px !important; border-radius: 14px !important; overflow: hidden !important; flex-shrink: 0 !important; background: #f0ede8 !important; position: relative !important; }
.oag-product-image-wrap img { width: 100% !important; height: 100% !important; object-fit: cover !important; }
.oag-product-info { flex: 1 !important; }
.oag-product-info h2 { font-size: 24px !important; font-weight: 700 !important; color: var(--oag-dark) !important; margin: 0 0 6px !important; line-height: 1.3 !important; }
.oag-product-category { font-size: 13px !important; color: var(--oag-text-light) !important; margin: 0 0 12px !important; }
.oag-video-count-badge {
    display: inline-block !important; padding: 5px 14px !important;
    background: rgba(196,154,108,0.1) !important; color: var(--oag-primary) !important;
    border-radius: var(--oag-radius-full) !important; font-size: 13px !important; font-weight: 600 !important;
}

/* ── Video Cards (minimal - play button only) ── */

.oag-videos-section { margin-top: 4px !important; }
.oag-videos-section .oag-section-title { margin-bottom: 20px !important; }
.oag-videos-grid { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important; gap: 14px !important; }

.oag-video-card {
    display: flex !important; align-items: center !important; gap: 14px !important;
    background: var(--oag-white) !important; border-radius: var(--oag-radius) !important;
    padding: 14px 18px !important; box-shadow: var(--oag-shadow) !important;
    cursor: pointer !important; transition: var(--oag-ease) !important; border: 1.5px solid transparent !important;
}
.oag-video-card:hover { border-color: var(--oag-primary) !important; box-shadow: var(--oag-shadow-hover) !important; }

.oag-video-play-area { flex-shrink: 0 !important; }
.oag-play-btn {
    width: 48px !important; height: 48px !important; border-radius: 50% !important;
    background: var(--oag-primary) !important; display: flex !important; align-items: center !important; justify-content: center !important;
    transition: var(--oag-ease) !important; box-shadow: 0 3px 12px rgba(196,154,108,0.35) !important;
    border: none !important; padding: 0 !important;
}
.oag-play-btn svg { margin-left: 2px !important; }
.oag-video-card:hover .oag-play-btn { transform: scale(1.08) !important; background: #b38859 !important; }

.oag-video-card-info { flex: 1 !important; min-width: 0 !important; display: flex !important; align-items: center !important; gap: 10px !important; }
.oag-video-card-title { font-size: 14px !important; font-weight: 600 !important; color: var(--oag-dark) !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; margin: 0 !important; }
.oag-video-type-pill {
    flex-shrink: 0 !important; padding: 2px 10px !important; border-radius: var(--oag-radius-full) !important;
    font-size: 11px !important; font-weight: 600 !important; text-transform: uppercase !important; letter-spacing: .3px !important;
    line-height: 1.5 !important;
}
.oag-video-type-pill.type-video { background: rgba(196,154,108,0.12) !important; color: var(--oag-primary) !important; }
.oag-video-type-pill.type-short { background: rgba(255,0,0,0.08) !important; color: #d00 !important; }

.oag-video-card.is-short { max-width: none !important; }

/* No videos */
.oag-no-videos { text-align: center !important; padding: 48px 24px !important; color: var(--oag-text-light) !important; background: var(--oag-white) !important; border-radius: var(--oag-radius) !important; box-shadow: var(--oag-shadow) !important; }
.oag-no-videos svg { color: #ddd !important; margin-bottom: 12px !important; }
.oag-no-videos p { font-size: 15px !important; margin: 0 !important; }

/* No results */
.oag-no-results { text-align: center !important; padding: 56px 24px !important; color: var(--oag-text-light) !important; }
.oag-no-results svg { color: #ccc !important; margin-bottom: 12px !important; }
.oag-no-results p { font-size: 15px !important; }

/* Load more - high specificity to override theme */
.oag-load-more-wrap { text-align: center !important; margin-top: 36px !important; }
.oag-wrap .oag-btn,
.oag-wrap button.oag-btn,
.oag-wrap .oag-load-more-wrap .oag-btn,
.oag-wrap .oag-load-more-wrap button.oag-btn {
    display: inline-flex !important; align-items: center !important; gap: 8px !important;
    padding: 11px 30px !important; border-radius: var(--oag-radius-full) !important;
    font-size: 14px !important; font-weight: 600 !important; cursor: pointer !important;
    transition: var(--oag-ease) !important; font-family: var(--oag-font) !important;
    border: 1.5px solid var(--oag-border) !important;
    background: var(--oag-white) !important; color: var(--oag-dark) !important;
    line-height: 1.4 !important; text-transform: none !important; letter-spacing: normal !important;
    box-shadow: none !important; text-decoration: none !important;
    -webkit-appearance: none !important; -moz-appearance: none !important; appearance: none !important;
    min-height: auto !important;
}
.oag-wrap .oag-btn:hover,
.oag-wrap button.oag-btn:hover,
.oag-wrap .oag-load-more-wrap .oag-btn:hover,
.oag-wrap .oag-load-more-wrap button.oag-btn:hover {
    border-color: var(--oag-primary) !important;
    color: var(--oag-primary) !important;
    background: var(--oag-white) !important;
    box-shadow: none !important;
}
.oag-wrap .oag-btn-outline {
    background: var(--oag-white) !important;
    color: var(--oag-dark) !important;
    border: 1.5px solid var(--oag-border) !important;
}
.oag-wrap .oag-btn-outline:hover {
    border-color: var(--oag-primary) !important;
    color: var(--oag-primary) !important;
}

/* ── Modal ────────────────────────────── */

#oag-video-modal.oag-modal {
    position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important;
    z-index: 999999 !important; display: flex !important; align-items: center !important; justify-content: center !important; padding: 20px !important;
    animation: oag-fade-in .2s ease !important;
}
@keyframes oag-fade-in { from { opacity: 0; } to { opacity: 1; } }
.oag-modal-overlay { position: absolute !important; top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important; background: rgba(0,0,0,0.82) !important; backdrop-filter: blur(6px) !important; }
.oag-modal-content {
    position: relative !important; background: var(--oag-dark) !important; border-radius: var(--oag-radius) !important; overflow: hidden !important;
    max-width: 860px !important; width: 100% !important; box-shadow: 0 20px 60px rgba(0,0,0,0.5) !important; animation: oag-modal-in .25s ease !important;
}
.oag-modal-content.is-short { max-width: 380px !important; }
@keyframes oag-modal-in { from { opacity: 0; transform: scale(.96) translateY(8px); } to { opacity: 1; transform: scale(1) translateY(0); } }

.oag-wrap .oag-modal-close,
.oag-wrap button.oag-modal-close {
    position: absolute !important; top: 10px !important; right: 10px !important; width: 34px !important; height: 34px !important;
    border-radius: 50% !important; background: rgba(255,255,255,0.15) !important; color: #fff !important;
    border: none !important; font-size: 20px !important; cursor: pointer !important; z-index: 10 !important;
    display: flex !important; align-items: center !important; justify-content: center !important; transition: var(--oag-ease) !important;
    padding: 0 !important; min-height: auto !important; line-height: 1 !important;
    box-shadow: none !important; -webkit-appearance: none !important; appearance: none !important;
}
.oag-wrap .oag-modal-close:hover,
.oag-wrap button.oag-modal-close:hover { background: rgba(255,255,255,0.3) !important; }

.oag-modal-video-wrap { width: 100% !important; position: relative !important; padding-top: 56.25% !important; background: #000 !important; }
.oag-modal-content.is-short .oag-modal-video-wrap { padding-top: 177.78% !important; }
.oag-modal-video-wrap iframe { position: absolute !important; top: 0 !important; left: 0 !important; width: 100% !important; height: 100% !important; border: none !important; }

.oag-modal-video-title { padding: 14px 18px !important; font-size: 15px !important; font-weight: 600 !important; color: #fff !important; margin: 0 !important; background: var(--oag-dark) !important; }

/* ── Skeleton ─────────────────────────── */

.oag-skeleton { background: #ececec !important; border-radius: var(--oag-radius) !important; position: relative !important; overflow: hidden !important; }
.oag-skeleton::after { content: '' !important; position: absolute !important; top: 0 !important; left: -100% !important; width: 100% !important; height: 100% !important; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.5), transparent) !important; animation: oag-shimmer 1.4s infinite !important; }
@keyframes oag-shimmer { 100% { left: 100%; } }
.oag-skeleton-card { height: 300px !important; }

/* ── Responsive ───────────────────────── */

@media (max-width: 768px) {
    .oag-hero { padding: 44px 16px 36px !important; }
    .oag-hero-title { font-size: 26px !important; }
    .oag-hero-subtitle { font-size: 14px !important; }
    .oag-product-header { flex-direction: column !important; text-align: center !important; gap: 16px !important; }
    .oag-product-image-wrap { width: 120px !important; height: 120px !important; }
    .oag-products-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)) !important; gap: 14px !important; }
    .oag-product-card-title { font-size: 13px !important; }
    .oag-videos-grid { grid-template-columns: 1fr !important; }
    .oag-modal { padding: 10px !important; }
    .oag-container { padding: 0 14px !important; }
    .oag-wrap .oag-category-filter,
    .oag-category-filter { width: 100% !important; overflow-x: auto !important; flex-wrap: nowrap !important; -webkit-overflow-scrolling: touch !important; }
    .oag-wrap .oag-cat-btn,
    .oag-wrap button.oag-cat-btn { white-space: nowrap !important; flex-shrink: 0 !important; }
}

@media (max-width: 480px) {
    .oag-hero-title { font-size: 22px !important; }
    .oag-products-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 10px !important; }
    .oag-product-card-body { padding: 10px 12px 12px !important; }
}
