/*
 Theme Name:   GeneratePress Child
 Template:     generatepress
 Text Domain:  generatepress-child
 Version:      1.0
*/
/* =====================================
   Noto Sans 多语言自托管 unicode-range分片加载
===================================== */

/* 简体中文 Noto Sans SC */
@font-face {
    font-family: "Noto Sans SC";
    src: url("https://firstfiber.co.kr/wp-content/themes/generatepress-child/fonts/NotoSansSC-Regular-sub.woff2") format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
    unicode-range: U+4E00-9FFF, U+3000-303F, U+FF00-FFEF;
}
@font-face {
    font-family: "Noto Sans SC";
    src: url("https://firstfiber.co.kr/wp-content/themes/generatepress-child/fonts/NotoSansSC-Bold-sub.woff2") format("woff2");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
    unicode-range: U+4E00-9FFF, U+3000-303F, U+FF00-FFEF;
}

/* 韩文 Noto Sans KR */
@font-face {
    font-family: "Noto Sans KR";
    src: url("https://firstfiber.co.kr/wp-content/themes/generatepress-child/fonts/NotoSansKR-Regular-sub.woff2") format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
    unicode-range: U+AC00-D7AF;
}
@font-face {
    font-family: "Noto Sans KR";
    src: url("https://firstfiber.co.kr/wp-content/themes/generatepress-child/fonts/NotoSansKR-Bold-sub.woff2") format("woff2");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
    unicode-range: U+AC00-D7AF;
}

/* 西文、俄语西里尔、越南语 Noto Sans */
@font-face {
    font-family: "Noto Sans";
    src: url("https://firstfiber.co.kr/wp-content/themes/generatepress-child/fonts/NotoSans-Regular-sub.woff2") format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0000-00FF,U+0100-024F,U+0400-04FF,U+2000-206F;
}
@font-face {
    font-family: "Noto Sans";
    src: url("https://firstfiber.co.kr/wp-content/themes/generatepress-child/fonts/NotoSans-Bold-sub.woff2") format("woff2");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0000-00FF,U+0100-024F,U+0400-04FF,U+2000-206F;
}

/* 泰文 Noto Sans Thai */
@font-face {
    font-family: "Noto Sans Thai";
    src: url("https://firstfiber.co.kr/wp-content/themes/generatepress-child/fonts/NotoSansThai-Regular-sub.woff2") format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0E00-0E7F;
}
@font-face {
    font-family: "Noto Sans Thai";
    src: url("https://firstfiber.co.kr/wp-content/themes/generatepress-child/fonts/NotoSansThai-Bold-sub.woff2") format("woff2");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0E00-0E7F;
}

/* 阿拉伯 Noto Sans Arabic */
@font-face {
    font-family: "Noto Sans Arabic";
    src: url("https://firstfiber.co.kr/wp-content/themes/generatepress-child/fonts/NotoSansArabic-Regular-sub.woff2") format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0600-06FF;
}
@font-face {
    font-family: "Noto Sans Arabic";
    src: url("https://firstfiber.co.kr/wp-content/themes/generatepress-child/fonts/NotoSansArabic-Bold-sub.woff2") format("woff2");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0600-06FF;
}

/* ================= 全局字体栈 (按语言动态匹配) ================= */

/* 1. 默认/英文/西文基础字体栈 */
body, button, input, select, textarea, .gp-button, .main-navigation a, .widget-title,
h1, h2, h3, h4, h5, h6, .entry-title, .page-title {
    font-family: "Noto Sans", system-ui, sans-serif;
    line-height: 1.65;
}

/* 2. 韩文页面专用 (只留 KR，彻底踢除 SC，遇到特殊符号让系统默认黑体接管) */
:lang(ko) body, :lang(ko) button, :lang(ko) input, :lang(ko) select, :lang(ko) textarea, 
:lang(ko) .gp-button, :lang(ko) .main-navigation a, :lang(ko) .widget-title,
:lang(ko) h1, :lang(ko) h2, :lang(ko) h3, :lang(ko) h4, :lang(ko) h5, :lang(ko) h6, 
:lang(ko) .entry-title, :lang(ko) .page-title {
    font-family: "Noto Sans", "Noto Sans KR", system-ui, sans-serif;
}

/* 3. 简体中文页面专用 */
:lang(zh) body, :lang(zh) button, :lang(zh) input, :lang(zh) select, :lang(zh) textarea, 
:lang(zh) .gp-button, :lang(zh) .main-navigation a, :lang(zh) .widget-title,
:lang(zh) h1, :lang(zh) h2, :lang(zh) h3, :lang(zh) h4, :lang(zh) h5, :lang(zh) h6, 
:lang(zh) .entry-title, :lang(zh) .page-title {
    font-family: "Noto Sans", "Noto Sans SC", system-ui, sans-serif;
}

/* 4. 泰文页面专用 */
:lang(th) body, :lang(th) button, :lang(th) input, :lang(th) select, :lang(th) textarea, 
:lang(th) .gp-button, :lang(th) .main-navigation a, :lang(th) .widget-title,
:lang(th) h1, :lang(th) h2, :lang(th) h3, :lang(th) h4, :lang(th) h5, :lang(th) h6, 
:lang(th) .entry-title, :lang(th) .page-title {
    font-family: "Noto Sans", "Noto Sans Thai", system-ui, sans-serif;
}

/* 5. 阿拉伯文页面专用 */
:lang(ar) body, :lang(ar) button, :lang(ar) input, :lang(ar) select, :lang(ar) textarea, 
:lang(ar) .gp-button, :lang(ar) .main-navigation a, :lang(ar) .widget-title,
:lang(ar) h1, :lang(ar) h2, :lang(ar) h3, :lang(ar) h4, :lang(ar) h5, :lang(ar) h6, 
:lang(ar) .entry-title, :lang(ar) .page-title {
    font-family: "Noto Sans", "Noto Sans Arabic", system-ui, sans-serif;
}

/* 阿拉伯RTL页面行高优化 */
html[dir="rtl"] body, :lang(ar) body {
    line-height: 1.8;
}

/* 1. 全局打底与品牌颜色体系 */
.inside-article { background-color: #ffffff !important; color: #333333 !important; }

.ff-btn { background: transparent; border: 2px solid #B34700; color: #B34700; border-radius: 4px; cursor: pointer; transition: 0.3s; font-weight: 700; text-align: center; display: inline-block; }
.ff-btn:hover { background: #B34700; color: #fff; }
.ff-btn-solid { background: #B34700; border: 2px solid #B34700; color: #fff; padding: 10px 20px; border-radius: 4px; cursor: pointer; transition: 0.3s; font-weight: 700; }
.ff-btn-solid:hover { background: #d35400; border-color: #d35400; }

/* 2. 产品列表页 (Archive) 网格与卡片 */
.post-type-archive-ff_products .generate-columns-container,
.ff-search-products-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 30px; }
.ff-search-products-grid { grid-template-columns: repeat(3, 1fr) !important; }

.ff-product-card { background: #ffffff; border: 1px solid #eaeaea; border-radius: 8px; overflow: hidden; transition: all 0.3s ease; display: flex; flex-direction: column; height: 100%; contain: layout; }
.ff-product-card:hover { border-color: #CC5200; box-shadow: 0 15px 35px rgba(0,0,0,0.08); transform: translateY(-5px); }
.post-type-archive-ff_products .ff-product-card { padding: 20px; text-align: center; }

.ff-card-img-wrap img { width: 100%; aspect-ratio: 1/1; object-fit: contain; margin-bottom: 15px; }
.ff-card-title { font-size: 18px; font-weight: 700; margin: 0 0 10px 0; }
.ff-card-title a { color: #333; text-decoration: none; }
.ff-card-action { margin-top: auto; }
.ff-card-action .ff-btn { width: 100%; }

/* 3. 产品详情页 (Single) 与交互画廊 */
.ff-single-top { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; margin-bottom: 60px; }
.ff-main-image-wrap { border: 1px solid #eaeaea; border-radius: 8px; margin-bottom: 15px; }
#ff-main-img { width: 100%; aspect-ratio: 1/1; object-fit: contain; display: block; transition: opacity 0.2s; }
.ff-thumbnail-list { display: flex; gap: 12px; overflow-x: auto; padding-bottom: 5px; }
.ff-thumb { width: 80px; height: 80px; flex-shrink: 0; object-fit: contain; border: 2px solid transparent; border-radius: 4px; cursor: pointer; transition: 0.3s; }
.ff-thumb.active { border-color: #EC6608; }

/* 4. SEO 响应式参数表格 (移动端可滑动) */
.ff-seo-table-wrapper { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; margin-bottom: 30px; }
.ff-seo-table-wrapper table { width: 100%; min-width: 600px; border-collapse: collapse; background: #fff; font-size: 14px; text-align: left; }
.ff-seo-table-wrapper th, .ff-seo-table-wrapper td { padding: 12px 15px; border: 1px solid #eaeaea; }
.ff-seo-table-wrapper th { background-color: #f8f9fa; font-weight: 700; }
.ff-seo-table-wrapper tbody tr:nth-child(even) { background-color: #fafafa; }

/* ==========================================
   5. 幽灵询盘车弹窗 (大厂级防溢出版)
   ========================================== */
.ff-modal { display: none; position: fixed; z-index: 999999; left: 0; top: 0; right: 0; bottom: 0; background-color: rgba(0, 0, 0, 0.65); align-items: center; justify-content: center; padding: 50px 20px; box-sizing: border-box; }
.ff-modal.show { display: flex; animation: ff-fade-in 0.3s ease; }

.ff-modal-content { background-color: #ffffff !important; color: #333333; width: 100%; min-width: 300px; max-width: 1000px; max-height: 100%; display: flex; flex-direction: column; overflow: hidden; border-radius: 12px; box-shadow: 0 20px 50px rgba(0,0,0,0.3); position: relative; text-align: left; margin: 0; }

.ff-modal-header { flex: 0 0 auto; padding: 20px 25px; border-bottom: 1px solid #f0f0f0; background-color: #ffffff; display: flex; justify-content: space-between; align-items: center; }
.ff-modal-header h2 { margin: 0; font-size: 20px; color: #333; font-weight: 700; border: none; padding: 0; }
.ff-close-btn { font-size: 28px; color: #aaa; cursor: pointer; transition: 0.2s; line-height: 1; }
.ff-close-btn:hover { color: #dc3232; transform: scale(1.1); }
.ff-modal-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; background-color: #fafafa; padding: 0; }
.ff-cart-list { list-style: none; margin: 0; padding: 15px 25px; }
.ff-cart-item { background-color: #ffffff; border: 1px solid #eee; padding: 15px; margin-bottom: 12px; border-radius: 8px; position: relative; box-shadow: 0 2px 5px rgba(0,0,0,0.02); transition: border-color 0.2s; }
.ff-cart-item:hover { border-color: #EC6608; }
.ff-cart-remove { position: absolute; right: 12px; top: 12px; color: #ccc; cursor: pointer; font-size: 20px; line-height: 1; font-weight: 700; transition: color 0.2s; }
.ff-cart-remove:hover { color: #dc3232; }
.ff-modal-footer { flex: 0 0 auto; padding: 25px; border-top: 1px solid #f0f0f0; background-color: #ffffff; }
.ff-form-group { margin-bottom: 15px; }
.ff-form-group input, .ff-form-group textarea { width: 100%; padding: 12px 15px; border: 1px solid #ddd; border-radius: 6px; font-size: 14px; box-sizing: border-box; transition: all 0.3s; background-color: #ffffff; color: #333; }
.ff-form-group input:focus, .ff-form-group textarea:focus { border-color: #EC6608; outline: none; box-shadow: 0 0 0 3px rgba(236,102,8,0.1); }

/* 弹窗底部按钮单独适配 */
.ff-modal-footer .ff-btn-solid { width: 100%; padding: 14px; border-radius: 6px; font-size: 16px; border: none; }
.ff-modal-footer .ff-btn-solid:disabled { background-color: #ccc !important; border-color: #ccc !important; cursor: not-allowed; }

@keyframes ff-fade-in { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } }

/* 6. Rank Math FAQ 手风琴样式 */
.rank-math-item { border-bottom: 1px solid #eaeaea; }
.rank-math-question { padding: 15px 0; font-size: 16px; font-weight: 700; cursor: pointer; position: relative; display: flex; justify-content: space-between; align-items: center; margin: 0; color: #333; transition: color 0.3s;}
.rank-math-question:hover, .rank-math-question.active { color: #EC6608; }
.rank-math-question::after { content: '+'; font-size: 20px; color: #EC6608; transition: transform 0.3s ease; }
.rank-math-question.active::after { content: '−'; transform: rotate(180deg); }
.rank-math-answer { max-height: 0; overflow: hidden; transition: max-height 0.4s ease, padding 0.4s ease; color: #666; font-size: 14px; }
.rank-math-item.active .rank-math-answer { max-height: 1000px; padding-bottom: 15px; }

/* ==========================================
   FIRSTFIBER 核心组件 (V3.0 Master)
   ========================================== */
@keyframes ffFadeIn { from { opacity: 0; } to { opacity: 1; } }

/* 通用区块标题 */
.ff-section-title { font-size: 32px; font-weight: 700; color: #333; margin-bottom: 30px; letter-spacing: -0.5px; }

/* 首屏轮播图 (Hero Slider) */
.ff-hero-slider { position: relative; width: 100%; max-width: 100vw; margin: 0 auto; aspect-ratio: 1920 / 790; overflow: hidden; }
.ff-slide { position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; transition: opacity 0.8s ease-in-out; z-index: 1; }
.ff-slide.active { opacity: 1; z-index: 2; }
.ff-slide-text-only { background-color:#0066FF; display: flex; align-items: center; justify-content: center; }
.ff-slide picture { display: block; width: 100%; height: 100%; }

.ff-hero-content { text-align: center; color: #ffffff; width: 90%; max-width: 850px; }
.ff-hero-content h1 { font-size: 46px; font-weight: 700; line-height: 1.2; margin-bottom: 20px; color: #ffffff; }
.ff-hero-content p { font-size: 18px; font-weight: 400; margin-bottom: 35px; line-height: 1.5; color: #ffffff; }
.ff-hero-btn { display: inline-block; background-color: #B34700 !important; color: #ffffff; padding: 15px 40px; font-size: 18px; font-weight: 700; text-transform: uppercase; text-decoration: none; border-radius: 4px; transition: all 0.3s ease; }
.ff-hero-btn:hover { background-color: #d35400 !important; transform: translateY(-2px); box-shadow: 0 6px 20px rgba(204, 82, 0, 0.4); color: #ffffff; }
.ff-slider-dots { position: absolute; bottom: 30px; width: 100%; text-align: center; z-index: 10; }
.ff-dot { display: inline-block; width: 40px; height: 4px; background: rgba(255, 255, 255, 0.3); margin: 0 6px; cursor: pointer; border-radius: 2px; transition: all 0.3s; }
.ff-dot.active { background: #CC5200; width: 60px; }

/* 热门产品区 (Tabs & Grid) */
.ff-featured-section { max-width: 1280px; margin: 60px auto; padding: 0 20px; text-align: center; }
.ff-tab-headers { display: flex; justify-content: center; flex-wrap: wrap; gap: 20px; margin-bottom: 40px; }
.ff-tab-btn { background: none; border: none; font-size: 18px; font-weight: 700; color: #555; cursor: pointer; padding-bottom: 8px; border-bottom: 3px solid transparent; transition: all 0.3s ease; }
.ff-tab-btn:hover, .ff-tab-btn.active { color: #B34700 !important; }
.ff-tab-btn.active { border-bottom-color: #B34700 !important; }
.ff-tab-panel { display: none; animation: ffFadeIn 0.5s ease; }
.ff-tab-panel.active { display: block; }
.ff-product-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; margin-bottom: 40px; }
.ff-prod-img { width: 100%; aspect-ratio: 1/1; overflow: hidden; margin-bottom: 15px; border-radius: 4px; }
.ff-prod-img img { width: 100%; height: 100%; object-fit: contain; transition: transform 0.4s ease; }
.ff-product-card:hover .ff-prod-img img { transform: scale(1.05); }
.ff-prod-title { font-size: 15px; font-weight: 700; line-height: 1.4; margin-bottom: 15px; height: 42px; min-height: 42px; overflow: hidden; }
.ff-prod-title a { color: #333; text-decoration: none; transition: color 0.3s; }
.ff-prod-title a:hover { color: #CC5200; }
.ff-view-btn { display: inline-block; padding: 8px 20px; border: 1px solid #333; color: #333; text-decoration: none; font-size: 13px; font-weight: 700; border-radius: 4px; transition: all 0.3s; }
.ff-view-btn:hover { background: #B34700; border-color: #B34700; color: #fff; }
.ff-see-all-btn { display: inline-block; padding: 12px 30px; background-color: #B34700 !important; color: #fff; text-decoration: none; font-size: 15px; font-weight: 700; border-radius: 4px; transition: background 0.3s; }
.ff-see-all-btn:hover { background-color: #d35400 !important; }

/* 独立产品展示区 (3列独立卡片) */
.ff-products-section { width: 100%; margin: 80px 0; }
.ff-products-header { text-align: center; margin-bottom: 50px; }
.ff-products-header .ff-section-title { margin-bottom: 15px; text-transform: uppercase; }
.ff-title-line { width: 60px; height: 4px; background: #CC5200; margin: 0 auto 15px auto; border-radius: 2px; }
.ff-section-subtitle { font-size: 16px; color: #555; }
.ff-products-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; margin-bottom: 50px; }
.ff-product-img-wrap { width: 100%; aspect-ratio: 1 / 1; overflow: hidden; background: #fdfdfd; border-bottom: 1px solid #f5f5f5; }
.ff-product-img { width: 100%; height: 100%; object-fit: contain; transition: transform 0.5s ease; }
.ff-product-card:hover .ff-product-img { transform: scale(1.08); }
.ff-product-info { padding: 25px 20px; display: flex; flex-direction: column; flex-grow: 1; }
.ff-product-title { font-size: 18px; font-weight: 700; color: #333; margin: 0 0 10px 0; line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ff-product-desc { font-size: 14px; color: #555; line-height: 1.6; margin: 0 0 20px 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; flex-grow: 1; }
.ff-product-btn { display: inline-flex; align-items: center; gap: 8px; color: #333; font-size: 14px; font-weight: 700; text-decoration: none; transition: color 0.3s ease; margin-top: auto; }
.ff-product-card:hover .ff-product-btn { color: #CC5200; }
.ff-product-card:hover .ff-product-btn svg { transform: translateX(5px); }
.ff-products-footer { text-align: center; }
.ff-btn-primary { display: inline-block; padding: 14px 40px; background-color: #B34700 !important; color: #ffffff; text-decoration: none; font-size: 15px; font-weight: 700; border-radius: 4px; transition: all 0.3s ease; letter-spacing: 1px; box-shadow: 0 4px 15px rgba(204, 82, 0, 0.2); }
.ff-btn-primary:hover { background-color: #d35400 !important; box-shadow: 0 6px 20px rgba(204, 82, 0, 0.4); transform: translateY(-2px); }

/* 客户评价区 (Reviews) */
.ff-reviews-section { position: relative; background: #fdfaf7; padding-bottom: 80px; }
.ff-reviews-bg { position: relative; width: 100%; height: 380px; }
.ff-reviews-bg::after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 102, 255, 0.8); z-index: 1; }
.ff-reviews-bg img { width: 100%; height: 100%; object-fit: cover; }
.ff-reviews-overlap { max-width: 900px; margin: -150px auto 0; background: #ffffff; padding: 50px 70px; border-radius: 8px; box-shadow: 0 15px 40px rgba(0,0,0,0.1); position: relative; z-index: 2; }
.ff-arrow { position: absolute; top: 55%; transform: translateY(-50%); background: none; border: none; font-size: 50px; color: #cccccc; cursor: pointer; transition: all 0.3s ease; z-index: 10; padding: 10px; font-weight: 400; }
.ff-arrow:hover { color: #CC5200; transform: translateY(-50%) scale(1.1); }
.ff-prev { left: 10px; }
.ff-next { right: 10px; }
.ff-review-slider { position: relative; min-height: 150px; }
.ff-review-slide { display: none; align-items: center; gap: 40px; animation: ffFadeIn 0.6s ease; }
.ff-review-slide.active { display: flex; }
.ff-reviewer { flex: 0 0 200px; display: flex; flex-direction: column; align-items: center; text-align: center; border-right: 1px solid #eeeeee; padding-right: 40px; }
.ff-avatar { width: 80px; height: 80px; border-radius: 50%; object-fit: cover; border: 2px solid #CC5200; margin-bottom: 15px; }
.ff-reviewer-name { margin: 0 0 5px; color: #333; font-size: 16px; font-weight: 700; }
.ff-reviewer-info span { color: #555; font-size: 13px; }
.ff-review-text-wrap { flex: 1; position: relative; }
.ff-review-text { font-size: 18px; line-height: 1.8; color: #555; font-style: italic; margin: 0; }
.ff-review-text::before { content: '“'; font-size: 60px; color: #CC5200; opacity: 0.15; position: absolute; top: -20px; left: -30px; }

/* 视频展厅 (Videos) */
.ff-video-section { max-width: 1280px; margin: 80px auto; padding: 0 20px; }
.ff-video-header { text-align: center; margin-bottom: 50px; }
.ff-video-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 30px; }
.ff-video-list-item { display: flex; align-items: center; gap: 20px; background: #ffffff; padding: 15px; border: 1px solid #eeeeee; border-radius: 8px; cursor: pointer; transition: all 0.3s ease; }
.ff-video-list-item:hover { transform: translateY(-4px); box-shadow: 0 10px 30px rgba(0,0,0,0.08); border-color: #CC5200; }
.ff-video-thumb { flex: 0 0 200px; position: relative; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 6px; background: #000; }
.ff-video-thumb img { width: 100%; height: 100%; object-fit: cover; opacity: 0.8; transition: opacity 0.3s; }
.ff-video-list-item:hover .ff-video-thumb img { opacity: 1; }
.ff-play-btn { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 45px; height: 45px; background: rgba(0,0,0,0.6); border-radius: 50%; display: flex; align-items: center; justify-content: center; transition: all 0.3s; }
.ff-play-btn::after { content: ''; display: block; width: 0; height: 0; border-style: solid; border-width: 8px 0 8px 12px; border-color: transparent transparent transparent #ffffff; margin-left: 4px; }
.ff-video-list-item:hover .ff-play-btn { background-color: #B34700 !important; transform: translate(-50%, -50%) scale(1.1); }
.ff-video-info { flex: 1; }
.ff-video-title { font-size: 18px; font-weight: 700; color: #333; margin: 0 0 10px 0; line-height: 1.4; transition: color 0.3s; }
.ff-video-list-item:hover .ff-video-title { color: #CC5200; }
.ff-video-desc { font-size: 14px; color: #555; line-height: 1.5; margin: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ff-video-footer { text-align: center; margin-top: 50px; }
.ff-see-more-btn { display: inline-flex; align-items: center; gap: 8px; padding: 12px 30px; background-color: #B34700 !important; color: #fff; text-decoration: none; font-size: 15px; font-weight: 700; border-radius: 4px; transition: all 0.3s ease; }
.ff-see-more-btn:hover { background-color: #d35400 !important; transform: translateY(-2px); box-shadow: 0 4px 15px rgba(204, 82, 0, 0.3); }

/* 🚀 核心修复：视频全局弹窗背景透明化，去掉阴影黑边 */
#ff-video-modal.ff-modal-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.9); z-index: 999999; display: flex; align-items: center; justify-content: center; opacity: 0; pointer-events: none; transition: opacity 0.3s ease; }
#ff-video-modal.ff-modal-overlay.active { opacity: 1; pointer-events: auto; }
#ff-video-modal .ff-modal-content { max-width: 1000px !important; background-color: transparent !important; box-shadow: none !important; margin: 0 auto; transform: scale(0.95); transition: transform 0.3s ease; }
#ff-video-modal.active .ff-modal-content { transform: scale(1); }

.ff-modal-close { position: absolute; top: 10px; right: 15px; font-size: 40px; color: #fff; background: none; border: none; cursor: pointer; z-index: 10; line-height: 1; opacity: 0.7; transition: opacity 0.3s; }
.ff-modal-close:hover { opacity: 1; color: #CC5200; }
.ff-iframe-wrapper { position: relative; width: 100%; padding-top: 56.25%; }
.ff-iframe-wrapper iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }

/* 企业介绍区 (About Us) */
.ff-about-section { max-width: 1280px; margin: 100px auto; padding: 0 20px; }
.ff-about-container { display: flex; align-items: center; gap: 80px; }
.ff-about-image-wrapper { flex: 1 1 45%; position: relative; z-index: 1; }
.ff-about-img { width: 100%; height: auto; display: block; border-radius: 4px; box-shadow: 0 15px 35px rgba(0,0,0,0.1); position: relative; z-index: 2; }
.ff-about-accent { position: absolute; bottom: -20px; left: -20px; width: 60%; height: 80%; background: #CC5200; border-radius: 4px; z-index: 1; opacity: 0.9; }
.ff-about-text { flex: 1 1 55%; }
.ff-about-desc { font-size: 16px; line-height: 1.8; color: #555; margin-bottom: 35px; }
.ff-about-desc p { margin-top: 0; margin-bottom: 15px; }
.ff-about-desc strong { color: #333; font-size: 18px; }

/* 下载中心 (Download Center) */
.ff-download-section { max-width: 1280px; margin: 80px auto; padding: 0 20px; }
.ff-download-header { text-align: center; margin-bottom: 50px; }
.ff-download-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 25px; }
.ff-download-card { display: flex; align-items: center; justify-content: space-between; background: #ffffff; border: 1px solid #e5e5e5; border-radius: 6px; padding: 20px; transition: all 0.3s ease; }
.ff-download-card:hover { border-color: #CC5200; box-shadow: 0 8px 25px rgba(204, 82, 0, 0.08); transform: translateY(-3px); }
.ff-file-info { display: flex; align-items: center; gap: 15px; }
.ff-file-badge { display: inline-flex; align-items: center; justify-content: center; background: #fdfaf7; color: #B34700 !important; font-size: 12px; font-weight: 700; width: 46px; height: 46px; border-radius: 4px; border: 1px solid rgba(204, 82, 0, 0.2); }
.ff-file-name { font-size: 15px; color: #333; margin: 0 0 5px 0; line-height: 1.3; font-weight: 700; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
.ff-file-size { font-size: 12px; color: #555; }
.ff-download-btn { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; background-color: #B34700 !important; color: #ffffff; border-radius: 50%; text-decoration: none; transition: all 0.3s ease; flex-shrink: 0; box-shadow: 0 4px 10px rgba(204, 82, 0, 0.2); }
.ff-download-card:hover .ff-download-btn { background-color: #d35400 !important; transform: scale(1.1); box-shadow: 0 6px 15px rgba(204, 82, 0, 0.4); }

/* 视差海报 (Contact Poster) */
.ff-contact-poster { position: relative; width: 100%; max-width: 100vw; padding: 150px 0; background-color: #111111 !important; background-image: url('https://firstfibertech.com/wp-content/uploads/2026/07/firstfiber-client-service-consultation-meeting.webp') !important; background-size: cover; background-position: center center; background-repeat: no-repeat; background-attachment: fixed; color: #ffffff; margin: 80px 0; overflow: hidden; }
.ff-poster-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.6) !important; z-index: 1; }
.ff-poster-wrapper { position: relative; z-index: 2; max-width: 1200px; margin: 0 auto; padding: 0 20px; display: flex; justify-content: flex-start; }
.ff-poster-content { max-width: 650px; text-align: left; }
.ff-poster-subtitle { font-size: 16px; color: #FF9A55 !important; text-shadow: 0 2px 4px rgba(0,0,0,0.8); text-transform: uppercase; letter-spacing: 3px; font-weight: 700; margin-bottom: 20px; }
.ff-poster-title { font-size: 42px; font-weight: 700; line-height: 1.2; margin-bottom: 25px; color: #ffffff; letter-spacing: 1px; }
.ff-poster-desc { font-size: 16px; line-height: 1.8; margin-bottom: 40px; color: #e0e0e0; letter-spacing: 0.5px; }
.ff-poster-btn { display: inline-block; padding: 16px 45px; background-color: #B34700 !important; color: #ffffff; text-decoration: none; font-size: 16px; font-weight: 700; border-radius: 4px; transition: all 0.4s ease; box-shadow: 0 5px 15px rgba(204, 82, 0, 0.3); }
.ff-poster-btn:hover { background-color: #ffffff !important; color: #B34700 !important; transform: translateY(-4px); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.3); }

/* 证书轮播区 (Certificates) */
.ff-cert-section { position: relative; width: 100%; padding: 100px 20px; background-color: #111111 !important; background-image: url('https://firstfibertech.com/wp-content/uploads/2026/07/index00.webp') !important; background-size: cover; background-position: center; background-attachment: fixed; overflow: hidden; }
.ff-cert-container { position: relative; z-index: 2; max-width: 1280px; margin: 0 auto; display: flex; align-items: center; gap: 60px; }
.ff-cert-info { flex: 0 0 35%; color: #ffffff; }
.ff-cert-title { font-size: 32px; font-weight: 700; margin-bottom: 15px; line-height: 1.2; color:black}
.ff-cert-line { width: 50px; height: 4px; background: #CC5200; margin-bottom: 25px; border-radius: 2px; }
.ff-cert-desc {color:black}
.ff-cert-btn { display: inline-block; padding: 12px 30px; background-color: #B34700 !important; border: 2px solid #B34700 !important; color: #ffffff; text-decoration: none; font-size: 14px; font-weight: 700; border-radius: 4px; transition: all 0.3s ease; box-shadow: 0 4px 15px rgba(204, 82, 0, 0.3); }
.ff-cert-btn:hover { background-color: #d35400 !important; border-color: #d35400 !important; transform: translateY(-2px); box-shadow: 0 6px 20px rgba(204, 82, 0, 0.5); }
.ff-cert-slider-side { flex: 1; position: relative; min-width: 0; }
.ff-cert-nav { position: absolute; top: 50%; transform: translateY(-50%); width: 45px; height: 45px; background: #CC5200; color: #ffffff; border: none; border-radius: 50%; font-size: 20px; cursor: pointer; z-index: 10; display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; box-shadow: 0 4px 10px rgba(0,0,0,0.3); }
.ff-cert-nav:hover { background: #ffffff; color: #CC5200; }
.ff-cert-prev { left: -20px; }
.ff-cert-next { right: -20px; }
.ff-cert-track { display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; padding: 10px 0; -ms-overflow-style: none; scrollbar-width: none; }
.ff-cert-track::-webkit-scrollbar { display: none; }
.ff-cert-item { flex: 0 0 calc(33.333% - 13.5px); scroll-snap-align: start; background: #fff; border-radius: 6px; padding: 15px; box-shadow: 0 10px 20px rgba(0,0,0,0.2); transition: transform 0.3s ease; }
.ff-cert-item:hover { transform: translateY(-5px); }
.ff-cert-item img { width: 100%; height: auto; display: block; object-fit: contain; }

/* OEM 全屏定制区 */
.ff-oem-fullscreen-wrapper { 
    position: relative; 
    width: 100%; /* 回归 100%，自动扣除滚动条宽度 */
    background: #000000; 
    overflow: hidden; 
    /* 彻底删除 margin-left: calc(-50vw + 50%); 这句破窗代码 */
}
.ff-oem-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; -ms-overflow-style: none; scrollbar-width: none; }
.ff-oem-track::-webkit-scrollbar { display: none; }
.ff-oem-slide { position: relative; flex: 0 0 100vw; scroll-snap-align: start; aspect-ratio: 100 / 35.94; min-height: 350px; }
.ff-oem-slide img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.ff-oem-caption { font-size:38px; color:white; position: absolute; top: 45%; left: 50%; transform: translate(-50%, -50%); text-align: center; width: 90%; pointer-events: none; z-index: 2; }
.ff-oem-caption h2 { color: #ffffff; font-size: 40px; font-weight: 700; margin: 0; text-transform: uppercase; text-shadow: 0 2px 10px rgba(0, 0, 0, 0.6); }
.ff-oem-tabs-container { position: absolute; bottom: 35px; left: 0; width: 100%; z-index: 10; }
.ff-oem-tabs-box { display: flex; justify-content: center; flex-wrap: wrap; gap: 15px; max-width: 1200px; margin: 0 auto; padding: 0 20px; }
.ff-oem-tab { padding: 10px 30px; background: rgba(0, 0, 0, 0.45); border: 1px solid rgba(255, 255, 255, 0.3); border-radius: 30px; color: #ffffff; font-size: 15px; font-weight: 700; text-decoration: none; transition: all 0.3s ease; backdrop-filter: blur(4px); text-align: center; }
.ff-oem-tab:hover, .ff-oem-tab.active { background-color: #B34700 !important; border-color: #B34700 !important; color: #FFFFFF !important; transform: translateY(-2px); box-shadow: 0 4px 15px rgba(204, 82, 0, 0.4); }

/* ==========================================
   纯净版页脚样式
   ========================================== */
.ff-site-footer { background-color: #111111; color: #b0b0b0; contain: content; border-top: 4px solid #CC5200; }
.ff-footer-container { max-width: 1280px; margin: 0 auto; padding: 30px 20px; }
.ff-footer-grid { display: grid; grid-template-columns: 1fr 1.5fr 1fr 1fr 1fr; gap: 20px; }
.ff-footer-desc { font-size: 14px; line-height: 1.6; margin-bottom: 20px; }
.ff-footer-title { color: #ffffff; font-size: 18px; font-weight: 700; margin: 0 0 20px 0; position: relative; padding-bottom: 10px; }
.ff-footer-title::after { content: ''; position: absolute; left: 0; bottom: 0; width: 30px; height: 2px; background-color: #CC5200; }
.ff-footer-links, .ff-footer-contact { list-style: none; padding: 0; margin: 0; }
.ff-footer-links li { margin-bottom: 12px; font-size: 14px; }
.ff-footer-contact li { margin-bottom: 15px; font-size: 14px; line-height: 1.6; }
.ff-footer-links a { color: #b0b0b0; text-decoration: none; transition: color 0.3s ease, padding-left 0.3s ease; }
.ff-footer-links a:hover { color: #FF9A55; padding-left: 5px; }
.ff-footer-contact strong { color: #e0e0e0; display: block; margin-bottom: 3px; }




/* 底部版权与合规声明栏 */
.ff-footer-bottom { background-color: #0a0a0a; border-top: 1px solid #222222; }
.ff-footer-bottom .ff-footer-container { padding: 20px; }
.ff-bottom-flex { display: flex; justify-content: space-between; align-items: center; font-size: 13px; color: #888888; }
.ff-bottom-flex p { margin: 0; }
.ff-bottom-legal { display: flex; align-items: center; gap: 8px; }
.ff-shield-icon { color: #46b450; display: flex; align-items: center; }

/* ==========================================
   极客侧边栏：300px 紧凑智能手风琴
   ========================================== */
@media (min-width: 769px) {
    .left-sidebar #left-sidebar { width: 300px !important; }
    .left-sidebar #primary { width: calc(100% - 300px) !important; }
}
.ff-sidebar-widget h3.ff-sidebar-title { font-size: 16px !important; border-bottom: 2px solid #CC5200; padding-bottom: 8px; margin: 0 0 10px 0; }
.ff-cat-tree, .ff-cat-tree ul { margin: 0; padding: 0; list-style: none; }
.ff-cat-tree li { border-bottom: 1px solid #f5f5f5; padding: 0; }
.ff-cat-tree li:last-child { border-bottom: none; }
.ff-cat-tree li a { color: #555555; text-decoration: none; font-size: 14px !important; transition: all 0.2s ease; display: block; }
.ff-cat-tree li a:hover, .ff-cat-tree li.current-cat > a { color: #CC5200; }
.ff-cat-tree ul.children { display: none; padding-left: 12px; border-left: 1px solid #eeeeee; }
.ff-cat-tree li.current-cat > ul.children,
.ff-cat-tree li.current-cat-parent > ul.children,
.ff-cat-tree li.current-cat-ancestor > ul.children { display: block; }

/* ==========================================
   全局辅助组件 (Toast, Cookie, 导航栏语言)
   ========================================== */
#ff-cookie-banner { position: fixed; bottom: 20px; left: 20px; max-width: calc(100% - 40px); width: 450px; background: #ffffff; border-left: 4px solid #EC6608; box-shadow: 0 10px 30px rgba(0,0,0,0.15); padding: 20px; border-radius: 8px; z-index: 999999; display: none; box-sizing: border-box; }
.ff-cookie-text { font-size: 13px; color: #555; line-height: 1.5; margin-bottom: 15px; }
.ff-cookie-text strong { display: block; font-size: 15px; color: #333; margin-bottom: 5px; }
.ff-cookie-text a { color: #EC6608; text-decoration: underline; }
.ff-cookie-btn { background: #EC6608; color: #ffffff; border: none; padding: 10px 24px; font-size: 14px; font-weight: 700; border-radius: 4px; width: 100%; cursor: pointer; transition: background 0.3s; }
.ff-cookie-btn:hover { background: #d55a06; }

#ff-toast-container { position: fixed; top: 30px; right: 30px; z-index: 9999999; display: flex; flex-direction: column; gap: 12px; pointer-events: none; }
.ff-toast { background: #ffffff; border-left: 4px solid #46b450; box-shadow: 0 10px 30px rgba(0,0,0,0.12); padding: 16px 24px; border-radius: 6px; color: #333333; font-size: 14px; font-weight: 700; display: flex; align-items: center; gap: 12px; transform: translateX(150%); opacity: 0; transition: transform 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55), opacity 0.4s ease; }
.ff-toast.show { transform: translateX(0); opacity: 1; }

.main-navigation .main-nav > ul > li.ff-lang-right { margin-left: auto !important; }
.ff-lang-right img.trp-flag-image { margin-right: 8px !important; vertical-align: middle !important; border-radius: 2px; box-shadow: 0 1px 3px rgba(0,0,0,0.1); }




/* --- 平板端 (1024px) --- */
@media (max-width: 1024px) {
    .ff-products-grid, .ff-footer-grid { grid-template-columns: repeat(2, 1fr); gap: 20px; }
    .ff-search-products-grid { grid-template-columns: repeat(2, 1fr) !important; }
    .ff-oem-caption h2 { font-size: 28px; }
    .ff-oem-tab { font-size: 14px; padding: 8px 20px; }
}

/* --- 平板与窄屏 (900px) --- */
@media (max-width: 900px) {
    .ff-download-grid { grid-template-columns: repeat(2, 1fr); }
    .ff-about-container, .ff-cert-container { flex-direction: column; gap: 40px; }
    .ff-about-image-wrapper { width: 90%; margin: 0 auto; }
    .ff-about-accent { bottom: -15px; left: -15px; }
    .ff-about-text, .ff-cert-info, .ff-section-title { text-align: center !important; }
    .ff-cert-line { margin: 0 auto 25px auto; }
    .ff-cert-slider-side { width: 100%; padding: 0 15px; }
    .ff-video-list { grid-template-columns: 1fr; }
}

/* --- 大手机端 (768px) --- */
@media (max-width: 768px) {
    .ff-hero-slider { aspect-ratio: 4 / 5; min-height: 420px; }
    .ff-hero-content { width: 100%; padding: 0 20px; box-sizing: border-box; }
    .ff-hero-content h1 { font-size: 28px; margin-bottom: 15px; line-height: 1.3; }
    .ff-hero-content p { font-size: 15px; margin-bottom: 25px; line-height: 1.6; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
    .ff-hero-btn { padding: 14px 32px; font-size: 16px; }
    .ff-slider-dots { bottom: 15px; }
    .ff-dot { width: 20px; height: 3px; margin: 0 4px; }
    .ff-dot.active { width: 35px; }
    .ff-product-grid { grid-template-columns: repeat(1, 1fr); gap: 20px; }
    .ff-search-products-grid { grid-template-columns: 1fr !important; }
    .ff-tab-btn { font-size: 16px; }
    .ff-reviews-bg { height: 250px; }
    .ff-reviews-overlap { margin: -80px 15px 0; padding: 40px 30px; }
    .ff-review-slide { flex-direction: column; gap: 20px; text-align: center; }
    .ff-reviewer { flex: auto; border-right: none; border-bottom: 1px solid #eee; padding-right: 0; padding-bottom: 20px; width: 100%; }
    .ff-review-text::before { left: 0; top: -30px; }
    .ff-arrow { font-size: 35px; }
    .ff-prev { left: -5px; }
    .ff-next { right: -5px; }
    .ff-contact-poster { padding: 80px 0; background-attachment: scroll; }
    .ff-poster-overlay { background: rgba(0,0,0,0.6) !important; }
    .ff-poster-title { font-size: 28px; }
    .ff-poster-desc { font-size: 15px; }
    #ff-toast-container { top: 20px; right: 0; left: 0; align-items: center; }
    .ff-toast { transform: translateY(-150%); }
    .ff-toast.show { transform: translateY(0); }
    .main-navigation .main-nav > ul > li.ff-lang-right { margin-left: 0 !important; }
/* =========================================================
       [新增] 极限压缩 Cookie 弹窗物理面积 (防止误判为 LCP)
 ========================================================= */
#ff-privacy-box, #ff-cookie-banner {
        padding: 12px !important;
        bottom: 10px !important;
        left: 10px !important;
        max-width: calc(100% - 20px) !important;
    }
    #ff-privacy-box div, .ff-cookie-text {
        font-size: 12px !important;
        margin-bottom: 8px !important;
        line-height: 1.4 !important;
    }
    #ff-accept-btn, #ff-decline-btn, .ff-cookie-btn {
        padding: 8px 0 !important;
        font-size: 13px !important;
    }
	
	
	
	
	
	
	
	
	
}

/* --- 小手机端 (600px) --- */
@media (max-width: 600px) {
    .ff-products-grid, .ff-download-grid, .ff-footer-grid { grid-template-columns: 1fr; gap: 30px; }
    .ff-product-info { text-align: center; }
    .ff-product-btn { justify-content: center; }
    .ff-products-section { margin: 40px 0; }
    .ff-cert-section { padding: 60px 15px; background-attachment: scroll; }
    .ff-cert-item { flex: 0 0 calc(50% - 10px); }
    .ff-cert-prev { left: -10px; }
    .ff-cert-next { right: -10px; }
    .ff-video-list-item { flex-direction: column; text-align: center; padding: 20px; }
    .ff-video-thumb { width: 100%; flex: auto; margin-bottom: 5px; }
    .ff-oem-slide { aspect-ratio: 4 / 3; min-height: 300px; }
    .ff-oem-caption h2 { font-size: 20px; }
    .ff-oem-tabs-container { bottom: 15px; }
    .ff-oem-tabs-box { gap: 10px; }
    .ff-oem-tab { font-size: 12px; padding: 6px 15px; }
    .ff-bottom-flex { flex-direction: column; text-align: center; gap: 15px; }
    .ff-bottom-legal { justify-content: center; line-height: 1.5; }
}

/* 1. 禁用首屏第一张幻灯片的渐变动画，消灭 800ms 的淡入等待 */
.ff-hero-slider .ff-slide:first-child,
.ff-hero-slider .ff-slide.active:first-child {
  opacity: 1 !important;
  visibility: visible !important;
  transition: none !important;
  animation: none !important;
}

/* 2. 确保 h1 标题没有任何渐变延迟 */
.ff-hero-content h1 {
  opacity: 1 !important;
  visibility: visible !important;
  transition: none !important;
}

	
/* ==========================================
   邮件订阅样式 (样式表专用纯净版)
   ========================================== */
.ff-newsletter-section { 
    width: 100%; 
    background: #004297; 
    padding: 80px 20px;
}
.ff-newsletter-container { 
    max-width: 800px; 
    margin: 0 auto; 
    text-align: center; 
}
.ff-newsletter-info .ff-section-title { 
    font-size: 32px; 
    font-weight: 700; 
    color: #ffffff; 
    margin-bottom: 10px; 
    letter-spacing: -0.5px; 
}
.ff-newsletter-info .ff-section-subtitle { 
    font-size: 16px; 
    color: #d0e3f5; 
    margin: 0 0 30px 0; 
}
.ff-newsletter-form { 
    display: flex; 
    width: 100%; 
    max-width: 600px; 
    margin: 0 auto; 
    border-radius: 4px; 
    overflow: hidden; 
    position: relative; 
    box-shadow: 0 10px 30px rgba(0,0,0,0.15); 
}
.ff-newsletter-input { 
    flex: 1; 
    padding: 18px 25px; 
    font-size: 16px; 
    border: none; 
    outline: none; 
    color: #333; 
    background: #ffffff; 
}
.ff-newsletter-btn { 
    padding: 0 40px; 
    font-size: 16px; 
    font-weight: 700; 
    color: #ffffff; 
    background: #B34700; 
    border: none; 
    cursor: pointer; 
    transition: all 0.3s ease; 
}
.ff-newsletter-btn:hover { 
    background: #d55a06; 
}
.ff-newsletter-privacy { 
    margin: 15px auto 0; 
    max-width: 600px; 
    text-align: center; 
    display: flex; 
    align-items: flex-start; 
    gap: 8px; 
    justify-content: center;
}
.ff-newsletter-privacy input[type="checkbox"] { 
    margin-top: 4px; 
    cursor: pointer; 
}
.ff-newsletter-privacy label { 
    font-size: 13px; 
    color: #a4c8e8; 
    cursor: pointer; 
    line-height: 1.4; 
}
.ff-newsletter-privacy label a { 
    color: #FFB74D; 
    text-decoration: underline; 
}
.ff-newsletter-privacy label a:hover { 
    color: #ffffff; 
}
.ff-subscription-message { 
    margin-top: 15px; 
    font-size: 15px; 
    text-align: center; 
    font-weight: 700; 
    opacity: 0; 
    transition: opacity 0.3s; 
    height: 0; 
    overflow: hidden; 
}
.ff-subscription-message.show { 
    opacity: 1; 
    height: auto; 
    margin-top: 15px; 
}
.ff-subscription-message.success { 
    color: #5cb85c; 
}
.ff-subscription-message.error { 
    color: #ff6b68; 
}
.ff-newsletter-btn.loading { 
    background: #888 !important; 
    color: #fff !important; 
    pointer-events: none; 
}



/* SEO 友好型隐藏类 (专为数据岛和爬虫设计) */
.ff-seo-hidden-island {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

html {
    scrollbar-gutter: stable;
}