/* Betongxanh homepage styles (external so edits don't need a rebuild) */
.bx-home { color:#222; }
.bx-home .container { max-width:1200px; margin:0 auto; padding:0 15px; }
.bx-heading { text-align:center; color:#16733a; font-weight:700; font-size:28px;
              margin:0 0 28px; text-transform:uppercase; }

/* Hero — full screen slider */
.bx-hero { position:relative; overflow:hidden; height:100vh; }
.bx-hero-track { display:flex; height:100%;
                 transition:transform .8s cubic-bezier(.45,0,.15,1); }
.bx-hero-slide { position:relative; flex:0 0 100%; height:100%;
                 background-size:cover; background-position:center;
                 display:flex; align-items:center; }
.bx-hero-slide--fallback { background:linear-gradient(120deg,#0b3d1f,#16733a); }
.bx-hero-slide::after { content:''; position:absolute; inset:0;
                        background:linear-gradient(180deg,rgba(0,0,0,.35),rgba(0,0,0,.15) 40%,rgba(0,0,0,.35)); }
.bx-hero-caption { position:relative; z-index:2; color:#fff; max-width:1200px;
                   margin:0 auto; padding:0 40px; width:100%; text-align:left;
                   opacity:0; transform:translateY(34px); }
.bx-hero-slide.is-active .bx-hero-caption { animation:bxCaptionIn .9s .25s cubic-bezier(.2,.7,.2,1) forwards; }
@keyframes bxCaptionIn { to { opacity:1; transform:none; } }
/* Caption content comes entirely from ImagesAdver.Description (HTML).
   Everything here styles that HTML — put plain <p>/<h2>/<a class="bx-hero-btn"> in Description. */
.bx-hero-caption { max-width:1200px; }
.bx-hero-caption > * { text-shadow:0 2px 12px rgba(0,0,0,.5); max-width:600px; }
.bx-hero-caption h1, .bx-hero-caption h2, .bx-hero-caption h3 {
    color:#fff; font-weight:800; margin:0 0 6px; line-height:1.05; letter-spacing:1px;
    text-transform:uppercase; }
.bx-hero-caption h1 { font-size:70px; }
.bx-hero-caption h2 { font-size:66px; }
.bx-hero-caption h3 { font-size:40px; }
.bx-hero-caption p { font-size:26px; font-style:italic; margin:0 0 10px; line-height:1.4; }
.bx-hero-caption .alt-font { font-style:italic; }
.bx-hero-btn { display:inline-block; margin-top:28px; padding:13px 38px; background:#16733a;
               color:#fff; border-radius:99px; font-weight:600; letter-spacing:1px;
               text-transform:uppercase; text-decoration:none; transition:.2s; }
.bx-hero-btn:hover { background:#0f5a2c; transform:translateY(-2px); }
/* pagination dots (Flatsome-style) */
.bx-hero-dots { position:absolute; left:0; right:0; bottom:22px; z-index:5;
                display:flex; justify-content:center; gap:10px; }
.bx-hero-dots button { width:37px; height:6px; min-height:0; border-radius:99px; border:0;
                       background:rgba(255,255,255,.45); cursor:pointer; padding:0; margin:0;
                       opacity:.9; transition:.25s; box-shadow:none; }
.bx-hero-dots button.is-active { background:#fff; opacity:1; }

/* Sections */
.bx-section { padding:0px 0px 20px 0px; }
.bx-intro { text-align:center; background:#f7f9f8; }
.bx-intro-grid { display:grid; grid-template-columns:1.1fr 1fr; gap:48px; align-items:center; margin-bottom:36px; text-align:left; }
.bx-intro-grid .bx-heading { text-align:left; margin-bottom:16px; margin-top:15px; }
.bx-intro-lead { max-width:none; margin:0 0 20px; font-size:16px; line-height:1.9; color:#444; text-align:left; }
.bx-intro-lead .bx-brand { color:#16733a; font-weight:700; }
.bx-intro-more { display:inline-block; padding:9px 26px; border:1px solid #16733a;
                  border-radius:99px; color:#16733a; font-weight:600; text-decoration:none; transition:.2s; }
.bx-intro-more:hover { background:#16733a; color:#fff; }
.bx-intro-image img { width:100%; height:100%; object-fit:cover; border-radius:10px; display:block; }
.bx-tagline { position:relative; color:#fff; font-weight:700; font-size:20px; letter-spacing:.5px;
              margin:0; text-align:center; padding:70px 24px; border-radius:8px; overflow:hidden;
              background:url('/Uploads/2024/05/sunset-on-saigon-river.jpg') center/cover;
              text-shadow:0 2px 10px rgba(0,0,0,.4); }
.bx-tagline::before { content:''; position:absolute; inset:0; background:rgba(21,134,0,.17); }
.bx-tagline span { position:relative; z-index:1; }
@media (max-width:800px) {
    .bx-intro-grid { grid-template-columns:1fr; gap:24px; }
    .bx-intro-grid .bx-heading { text-align:center; }
    .bx-intro-lead { text-align:center; }
}
.bx-factories-summary { max-width:900px; margin:28px auto 0; font-size:15px; line-height:1.8; color:#444; text-align:justify; }
.bx-red { color:#e30613; font-weight:700; }

/* Grids */
.bx-grid { display:grid; gap:22px; }
.bx-grid--3 { grid-template-columns:repeat(3,1fr); }
.bx-grid--4 { grid-template-columns:repeat(4,1fr); }

.bx-card { display:block; background:#fff; border:1px solid #eee; border-radius:8px;
           overflow:hidden; text-decoration:none; color:inherit;
           transition:box-shadow .2s, transform .2s; }
.bx-card:hover { box-shadow:0 10px 26px rgba(0,0,0,.12); transform:translateY(-3px); }
.bx-card-img { height:180px; background-size:cover; background-position:center; background-color:#e9efec; }
.bx-card-body { padding:14px 16px; }
.bx-card-body strong { display:block; font-size:15px; line-height:1.4; color:#1a1a1a; }
.bx-card-date { display:block; font-size:12px; color:#16733a; margin-bottom:6px; }
.bx-news-card p { margin:8px 0 0; font-size:13px; color:#666;
                  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }

/* Factories */
.bx-factory-card { background:#fff; border:1px solid #eee; border-radius:8px; overflow:hidden; }
.bx-factory-img { height:350px; background-size:cover; background-position:center; }
.bx-factory-body { padding:16px; }
.bx-factory-body h3 { color:#16733a; font-size:17px; margin:0 0 8px; }
.bx-factory-desc { font-size:14px; color:#555; line-height:1.7; }

/* Factory carousel — each slide shows 2 factories */
.bx-factory-carousel { position:relative; padding:0 54px; }
.bx-factory-viewport { overflow:hidden; }
.bx-factory-track { display:flex; transition:transform .5s ease; }
.bx-factory-slide { display:grid; grid-template-columns:1fr 1fr; gap:22px; flex:0 0 100%; min-width:0; }
.bx-carousel-nav { position:absolute; top:50%; transform:translateY(-50%); z-index:5;
                    width:42px !important; height:42px !important; min-width:0 !important; min-height:0 !important;
                    margin:0 !important; padding:0 !important; box-sizing:border-box;
                    border-radius:50%; border:1px solid #ddd; background:#fff;
                    cursor:pointer; font-size:18px; line-height:40px !important; text-align:center;
                    color:#16733a; transition:.2s; }
.bx-carousel-nav:hover { background:#16733a; color:#fff; border-color:#16733a; }
.bx-carousel-prev { left:0; }
.bx-carousel-next { right:0; }
.bx-carousel-dots { display:flex; justify-content:center; gap:8px; margin-top:24px; }
.bx-carousel-dots button { width:9px !important; height:9px !important; min-width:0 !important; min-height:0 !important;
                            margin:0 !important; border-radius:50%; border:0; background:#ccc; cursor:pointer; padding:0; transition:.2s; }
.bx-carousel-dots button.is-active { background:#16733a; width:22px !important; border-radius:99px; }
@media (max-width:700px) {
    .bx-factory-carousel { padding:0 40px; }
    .bx-factory-slide { grid-template-columns:1fr; }
}

@media (max-width:960px) {
    .bx-grid--4 { grid-template-columns:repeat(2,1fr); }
    .bx-grid--3 { grid-template-columns:repeat(2,1fr); }
    .bx-hero-caption h2 { font-size:44px; }
    .bx-hero-desc { font-size:18px; }
}
@media (max-width:600px) {
    .bx-grid--4, .bx-grid--3 { grid-template-columns:1fr; }
    .bx-hero-caption h2 { font-size:32px; }
}
