/* Bổ sung khi ghép Laravel — @font-face cho BT Beau Sans (public/template/BT Beau Sans Font.zip, giải nén vào public/fonts/). */
@font-face{font-family:'BT Beau Sans';src:url('/fonts/BT-BeauSans-Light.ttf') format('truetype');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:'BT Beau Sans';src:url('/fonts/BT-BeauSans-LightItalic.ttf') format('truetype');font-weight:300;font-style:italic;font-display:swap}
@font-face{font-family:'BT Beau Sans';src:url('/fonts/BT-BeauSans-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'BT Beau Sans';src:url('/fonts/BT-BeauSans-Italic.ttf') format('truetype');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'BT Beau Sans';src:url('/fonts/BT-BeauSans-Medium.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'BT Beau Sans';src:url('/fonts/BT-BeauSans-MediumItalic.ttf') format('truetype');font-weight:500;font-style:italic;font-display:swap}
@font-face{font-family:'BT Beau Sans';src:url('/fonts/BT-BeauSans-Bold.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'BT Beau Sans';src:url('/fonts/BT-BeauSans-BoldItalic.ttf') format('truetype');font-weight:700;font-style:italic;font-display:swap}
@font-face{font-family:'BT Beau Sans';src:url('/fonts/BT-BeauSans-ExtraBold.ttf') format('truetype');font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:'BT Beau Sans';src:url('/fonts/BT-BeauSans-ExtraBoldItalic.ttf') format('truetype');font-weight:800;font-style:italic;font-display:swap}

:root{--red:#A92B35;--red2:#7D2028;--rose:#C96070;--blush:#FFF7F7;--paper:#FFFDFD;--ink:#2D2728;--muted:#74686A;--line:#EADBDC;--green:#93F1C0;--shadow:0 28px 90px rgba(87,32,38,.12);--r:30px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:linear-gradient(180deg,#fffafa,#fbf5f5 52%,#fff);font-family:'BT Beau Sans',system-ui,sans-serif;color:var(--ink);line-height:1.58}a{text-decoration:none;color:inherit}img{display:block;max-width:100%}.container{width:min(1760px,calc(100% - 120px));margin:auto}.nav{position:sticky;top:0;z-index:50;background:rgba(255,250,250,.86);backdrop-filter:blur(20px);border-bottom:1px solid rgba(169,43,53,.08)}.nav-inner{height:86px;display:flex;align-items:center;justify-content:space-between;gap:32px}.brand{display:flex;align-items:center;gap:12px;color:var(--red);font-weight:800}.mark{width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,var(--red),#cc6570);color:#fff;display:grid;place-items:center;font-weight:900}.brand small{display:block;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#9d6a6f}.menu{display:flex;gap:30px;font-size:14px;font-weight:700;color:#171314}.menu a{transition:.22s ease}.menu a:hover{color:var(--red)}.actions{display:flex;gap:12px}.btn{border:0;border-radius:999px;padding:14px 24px;font:700 14px 'BT Beau Sans';display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:.25s ease;white-space:nowrap}.btn-primary{background:var(--red);color:white;box-shadow:0 12px 28px rgba(169,43,53,.22)}.btn-primary:hover{background:var(--red2);transform:translateY(-2px)}.btn-outline{background:white;color:var(--red);border:1px solid rgba(169,43,53,.24)}
.hero{padding:74px 0 118px;position:relative;overflow:hidden;min-height:860px}.hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 22% 12%,rgba(147,241,192,.18),transparent 28%),radial-gradient(circle at 80% 18%,rgba(169,43,53,.08),transparent 30%),linear-gradient(180deg,#fffbfc 0%,#fff7f8 58%,#fffafa 100%)}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,250,251,.86) 0%,rgba(255,250,251,.58) 19%,rgba(255,250,251,.16) 43%,rgba(255,250,251,.16) 57%,rgba(255,250,251,.58) 81%,rgba(255,250,251,.86) 100%);pointer-events:none;z-index:1}.hero-grid{position:relative;min-height:720px}.collage{position:absolute;inset:0;min-height:720px;isolation:isolate;perspective:1200px}.collage:before{content:"";position:absolute;left:50%;top:50%;width:1200px;height:620px;transform:translate(-50%,-50%);border-radius:999px;background:radial-gradient(circle,rgba(255,255,255,.78) 0%,rgba(255,255,255,.54) 42%,rgba(147,241,192,.13) 66%,rgba(169,43,53,.05) 100%);filter:blur(1px);z-index:1}.hero-copy{position:absolute;left:50%;top:50%;transform:translate(-50%,-46%);z-index:10;text-align:center;width:min(760px,64vw);padding:46px 58px;border-radius:56px;background:rgba(255,250,251,.88);backdrop-filter:blur(18px);box-shadow:0 30px 96px rgba(87,32,38,.14);border:1px solid rgba(169,43,53,.10)}.eyebrow{display:inline-flex;padding:9px 18px;border:1px solid rgba(169,43,53,.16);border-radius:999px;background:#fff;color:var(--red);font-size:13px;font-weight:800;box-shadow:0 12px 34px rgba(169,43,53,.08)}.title{font-family:'BT Beau Sans',serif;font-size:96px;line-height:.88;letter-spacing:-.045em;color:var(--red);margin:24px 0 16px;font-weight:700}.title span{display:block;font-family:'BT Beau Sans';font-size:22px;line-height:1.35;letter-spacing:-.026em;color:var(--rose);font-weight:800;margin-top:16px}.lead{font-size:18.5px;font-weight:700;max-width:680px;margin:0 auto 18px;letter-spacing:-.02em}.intro{max-width:680px;margin:0 auto;color:var(--muted);font-size:15.8px}.hero-cta{margin-top:30px;display:flex;justify-content:center;gap:14px;flex-wrap:wrap}.hero-photo{position:absolute;overflow:hidden;border:6px solid rgba(147,241,192,.9);box-shadow:0 26px 72px rgba(87,32,38,.13);background:#eee;transition:.35s ease;opacity:.98}.hero-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 55%,rgba(0,0,0,.12));pointer-events:none}.hero-photo img{width:100%;height:100%;object-fit:cover}.hero-photo:hover{transform:translateY(-10px) scale(1.018) rotate(0deg)!important;z-index:12}.hp1{left:30px;top:54px;width:270px;height:330px;border-radius:36px;transform:rotate(-7deg);z-index:2}.hp2{left:330px;top:6px;width:275px;height:208px;border-radius:32px;transform:rotate(3deg);z-index:1}.hp3{right:260px;top:10px;width:310px;height:232px;border-radius:34px;transform:rotate(-2.5deg);z-index:2}.hp4{right:28px;top:88px;width:270px;height:350px;border-radius:38px;transform:rotate(6deg);z-index:3}.hp5{left:160px;bottom:36px;width:360px;height:250px;border-radius:38px;transform:rotate(4deg);z-index:4}.hp6{left:585px;bottom:0;width:285px;height:210px;border-radius:32px;transform:rotate(-4.5deg);z-index:2}.hp7{right:460px;bottom:28px;width:335px;height:240px;border-radius:38px;transform:rotate(2.8deg);z-index:3}.hp8{right:90px;bottom:28px;width:335px;height:250px;border-radius:38px;transform:rotate(-5deg);z-index:2}.hp9{left:660px;top:98px;width:220px;height:168px;border-radius:30px;transform:rotate(-3deg);z-index:1;opacity:.78}.hp10{right:620px;top:48px;width:205px;height:275px;border-radius:34px;transform:rotate(5deg);z-index:1;opacity:.78}.soft-badge{display:none}
.section{padding:96px 0}.section-head{display:flex;justify-content:space-between;align-items:end;gap:36px;margin-bottom:38px}.section-head.center{text-align:center;display:block}.kicker{font-weight:800;color:var(--red);font-size:12px;letter-spacing:.16em;text-transform:uppercase}.h2{font-family:'BT Beau Sans',serif;font-size:60px;line-height:1.02;letter-spacing:-.035em;margin:8px 0 0}.desc{max-width:720px;color:var(--muted);font-size:16px}.section-head.center .desc{margin:14px auto 0}.pills{display:flex;gap:12px;flex-wrap:wrap}.pill{border:1px solid rgba(169,43,53,.25);border-radius:999px;background:white;color:#98545b;font-size:13px;font-weight:800;padding:11px 18px}.pill.active{background:var(--red);color:white}.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}.photo-card{position:relative;border-radius:28px;overflow:hidden;background:white;box-shadow:0 16px 50px rgba(63,31,35,.10);border:1px solid rgba(169,43,53,.08);aspect-ratio:1/1.12;cursor:pointer}.photo-card img{width:100%;height:100%;object-fit:cover;transition:.45s ease}.photo-card:hover img{transform:scale(1.045)}.photo-card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 38%,rgba(0,0,0,.68) 100%)}.heart{position:absolute;top:16px;right:16px;z-index:2;background:rgba(255,255,255,.88);color:var(--red);border-radius:999px;padding:8px 10px;font-weight:800}.photo-info{position:absolute;left:18px;right:18px;bottom:16px;z-index:2;color:white}.caption{font-weight:800;font-size:15px}.meta{font-size:12px;opacity:.9;margin-top:5px}.share-row{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.share-btn{border:1px solid rgba(255,255,255,.45);background:rgba(255,255,255,.18);color:white;border-radius:999px;padding:7px 11px;font-size:11px;font-weight:800;backdrop-filter:blur(8px);cursor:pointer}.share-btn:hover{background:white;color:var(--red)}
.steps,.info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.step,.info-card,.prize{background:white;border:1px solid rgba(169,43,53,.10);border-radius:28px;padding:28px;box-shadow:0 14px 44px rgba(63,31,35,.06)}.num{font-size:34px;line-height:1;color:rgba(169,43,53,.25);font-weight:800}.step h3,.info-card h3{margin:12px 0 8px;font-size:18px}.step p,.info-card p,.info-card li{margin:0;color:var(--muted);font-size:14.5px}.info-card ul{margin:10px 0 0;padding-left:18px}.rules-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.rule-card{background:white;border:1px solid rgba(169,43,53,.10);border-radius:28px;padding:28px;box-shadow:0 14px 44px rgba(63,31,35,.06)}.rule-card h3{margin:0 0 10px;font-size:19px}.rule-card p,.rule-card li{color:var(--muted);font-size:14.5px}.rule-card ul{padding-left:18px;margin:10px 0 0}.prizes{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.prize{transition:.25s ease}.prize .rank{font-size:20px;font-weight:800}.prize .value{font-size:30px;font-weight:800;color:var(--red);margin:14px 0 8px}.prize p{color:var(--muted);margin:0}.prize:hover{background:linear-gradient(135deg,var(--red),#c24e5b);color:white;transform:translateY(-5px);box-shadow:0 26px 70px rgba(169,43,53,.22)}.prize:hover .value,.prize:hover p{color:rgba(255,255,255,.9)}.pagination{display:flex;justify-content:center;gap:10px;margin-top:34px}.page-btn{min-width:42px;height:42px;border-radius:999px;border:1px solid rgba(169,43,53,.18);background:white;color:var(--red);font-weight:800;cursor:pointer}.page-btn.active,.page-btn:hover{background:var(--red);color:white}.ranking{margin-top:54px;background:white;border:1px solid rgba(169,43,53,.10);border-radius:34px;padding:32px;box-shadow:0 18px 60px rgba(63,31,35,.07)}.ranking-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:18px}.ranking h3{font-size:30px;letter-spacing:-.035em;margin:0}.ranking-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px 18px}.rank-item{display:grid;grid-template-columns:42px 58px 1fr auto;align-items:center;gap:12px;padding:12px;border-radius:20px;border:1px solid rgba(169,43,53,.08);background:#fffafa}.rank-item img{width:58px;height:58px;object-fit:cover;border-radius:16px}.rank-no{font-weight:900;color:var(--red);text-align:center}.rank-title{font-weight:800;font-size:14px}.rank-meta{font-size:12px;color:var(--muted)}.rank-vote{font-weight:900;color:var(--red);white-space:nowrap}.prizes{grid-template-columns:1.15fr 1fr 1fr}.prize{position:relative;overflow:hidden;min-height:210px;background:linear-gradient(180deg,#fff,#fff9f9)}.prize:before{content:"";position:absolute;right:-42px;top:-42px;width:132px;height:132px;border-radius:999px;background:rgba(169,43,53,.07)}.prize .rank{position:relative;font-size:18px}.prize .value{position:relative;font-size:34px;letter-spacing:-.04em}.prize p{position:relative}.prize:first-child{grid-row:span 2;background:linear-gradient(135deg,#fff,#fff3f3);display:flex;flex-direction:column;justify-content:center}.prize:first-child .rank{font-size:22px}.prize:first-child .value{font-size:44px}.rule-cta{text-align:center;margin-top:30px}.faq-wrap{width:min(1440px,calc(100% - 120px));margin:auto}.faq{grid-template-columns:1fr;gap:10px}.faq details{padding:0;border-radius:16px;overflow:hidden}.faq summary{min-height:58px;display:flex;align-items:center;justify-content:space-between;padding:0 22px;list-style:none}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";color:var(--red);font-size:20px}.faq details[open] summary:after{content:"–"}.faq p{padding:0 22px 20px;margin:0}.faq{display:grid;grid-template-columns:1fr 1fr;gap:14px}.faq details{background:white;border:1px solid rgba(169,43,53,.10);border-radius:20px;padding:20px}.faq summary{font-weight:800;cursor:pointer}.faq p{color:var(--muted);font-size:14px}.form-section{background:linear-gradient(135deg,#fff,#fff4f4);border-top:1px solid rgba(169,43,53,.08);border-bottom:1px solid rgba(169,43,53,.08)}.form-wrap{max-width:1220px;margin:auto}.form-copy{text-align:center;margin:0 auto 34px}.form-copy .desc{margin:14px auto 0}.form{background:white;border-radius:34px;border:1px solid rgba(169,43,53,.10);padding:42px;box-shadow:var(--shadow)}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:grid;gap:8px;margin-bottom:18px}.field.full{grid-column:1/-1}.field label{font-weight:800;font-size:13px;color:#5c4446}.field input,.field select,.field textarea{width:100%;border:1px solid #eadcdd;border-radius:15px;padding:15px;font:inherit;background:white}.field textarea{min-height:130px}.upload{height:130px;border:1.5px dashed rgba(169,43,53,.35);border-radius:22px;display:grid;place-items:center;color:var(--red);font-weight:800;background:#fffafa;text-align:center}.check{display:flex;gap:10px;color:var(--muted);font-size:12.5px;margin:18px 0 26px}.form-actions{text-align:center}.footer{padding:44px 0;color:#8b7476;font-size:13px}.footer-inner{border-top:1px solid var(--line);padding-top:24px;display:flex;justify-content:space-between}.modal{position:fixed;inset:0;background:rgba(45,39,40,.48);z-index:100;display:none;align-items:center;justify-content:center;padding:26px}.modal.open{display:flex}.modal-card{width:min(480px,100%);background:white;border-radius:34px;padding:36px;text-align:center;position:relative;box-shadow:0 30px 100px rgba(0,0,0,.22)}.close,.lb-close{position:absolute;right:18px;top:18px;border:0;background:#fff3f3;color:var(--red);border-radius:999px;width:34px;height:34px;font-size:20px;cursor:pointer}.modal-logo{font-family:'BT Beau Sans',serif;color:var(--red);font-size:34px;line-height:.94;font-weight:700}.divider{margin:22px 0;color:var(--muted);font-size:13px}.social{display:grid;gap:10px}.social button{height:48px;border:1px solid #eadcdd;background:white;border-radius:999px;font:700 14px 'BT Beau Sans';cursor:pointer}.lightbox{position:fixed;inset:0;background:rgba(28,22,23,.86);z-index:120;display:none;align-items:center;justify-content:center;padding:34px}.lightbox.open{display:flex}.lightbox-card{width:min(1180px,100%);max-height:92vh;background:white;border-radius:30px;overflow:hidden;display:grid;grid-template-columns:1.15fr .85fr}.lightbox img{width:100%;height:92vh;max-height:92vh;object-fit:cover}.lightbox-info{padding:32px;display:flex;flex-direction:column;justify-content:space-between}.lightbox-info h3{font-size:28px;margin:0 0 8px}.lightbox-info p{color:var(--muted)}.lb-close{z-index:130;background:white}.toast{position:fixed;left:50%;bottom:30px;transform:translateX(-50%);background:var(--ink);color:white;padding:12px 18px;border-radius:999px;z-index:140;opacity:0;pointer-events:none;transition:.25s}.toast.show{opacity:1}
.pagination{display:flex;justify-content:center;gap:10px;margin-top:34px}.page-btn{min-width:42px;height:42px;border-radius:999px;border:1px solid rgba(169,43,53,.18);background:white;color:var(--red);font-weight:800;cursor:pointer}.page-btn.active,.page-btn:hover{background:var(--red);color:white}.ranking{margin-top:54px;background:white;border:1px solid rgba(169,43,53,.10);border-radius:34px;padding:32px;box-shadow:0 18px 60px rgba(63,31,35,.07)}.ranking-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:18px}.ranking h3{font-size:30px;letter-spacing:-.035em;margin:0}.ranking-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px 18px}.rank-item{display:grid;grid-template-columns:42px 58px 1fr auto;align-items:center;gap:12px;padding:12px;border-radius:20px;border:1px solid rgba(169,43,53,.08);background:#fffafa}.rank-item img{width:58px;height:58px;object-fit:cover;border-radius:16px}.rank-no{font-weight:900;color:var(--red);text-align:center}.rank-title{font-weight:800;font-size:14px}.rank-meta{font-size:12px;color:var(--muted)}.rank-vote{font-weight:900;color:var(--red);white-space:nowrap}.prizes{grid-template-columns:1.15fr 1fr 1fr}.prize{position:relative;overflow:hidden;min-height:210px;background:linear-gradient(180deg,#fff,#fff9f9)}.prize:before{content:"";position:absolute;right:-42px;top:-42px;width:132px;height:132px;border-radius:999px;background:rgba(169,43,53,.07)}.prize .rank{position:relative;font-size:18px}.prize .value{position:relative;font-size:34px;letter-spacing:-.04em}.prize p{position:relative}.prize:first-child{grid-row:span 2;background:linear-gradient(135deg,#fff,#fff3f3);display:flex;flex-direction:column;justify-content:center}.prize:first-child .rank{font-size:22px}.prize:first-child .value{font-size:44px}.rule-cta{text-align:center;margin-top:30px}.faq-wrap{width:min(1440px,calc(100% - 120px));margin:auto}.faq-wrap .faq{grid-template-columns:1fr;gap:10px}.faq-wrap .faq details{padding:0;border-radius:16px;overflow:hidden}.faq-wrap .faq summary{min-height:58px;display:flex;align-items:center;justify-content:space-between;padding:0 22px;list-style:none}.faq-wrap .faq summary::-webkit-details-marker{display:none}.faq-wrap .faq summary:after{content:"+";color:var(--red);font-size:20px}.faq-wrap .faq details[open] summary:after{content:"–"}.faq-wrap .faq p{padding:0 22px 20px;margin:0}
@media(max-width:1200px){.container{width:min(100% - 44px,1100px)}.hero-copy{width:min(720px,76vw);padding:34px}.collage{min-height:720px}.title{font-size:76px}.gallery,.steps,.info-grid,.rules-grid,.prizes,.ranking-list{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.menu{display:none}.nav-inner{height:72px}.hero{padding:44px 0 64px}.title{font-size:56px}.lead{font-size:17px}.hero-copy{position:relative;left:auto;top:auto;transform:none;width:auto;padding:28px 22px;margin-bottom:24px;border-radius:34px}.collage{display:grid;grid-template-columns:1fr 1fr;gap:14px;min-height:auto}.hero-photo{position:relative!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;width:auto!important;height:230px!important;border-radius:26px!important;transform:none!important}.soft-badge{display:none}.gallery,.steps,.info-grid,.rules-grid,.prizes,.faq,.field-grid,.ranking-list{grid-template-columns:1fr}.faq-wrap{width:min(100% - 44px,1100px)}.section-head{display:block}.h2{font-size:44px}.form{padding:24px}.lightbox-card{grid-template-columns:1fr}.lightbox img{height:54vh}.footer-inner{display:block}}

/* v7 refinements: hero image-wall clarity, mobile responsiveness, FAQ width */
.hero-photo img{filter:saturate(.82) contrast(.92) brightness(.94) blur(.45px);transition:filter .35s ease, transform .45s ease, opacity .35s ease;opacity:.86}
.hero-photo:hover img{filter:saturate(1.08) contrast(1.04) brightness(1) blur(0);opacity:1}
.hero-photo:hover{box-shadow:0 32px 90px rgba(87,32,38,.18)}
.faq-wrap{width:min(1220px,calc(100% - 120px));margin:auto}.faq summary{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.faq details[open] summary{white-space:normal;overflow:visible}
@media(max-width:980px){
  .hero{padding:52px 0 72px;min-height:auto}.hero-grid{min-height:720px}.collage{position:relative;display:block;min-height:720px;overflow:hidden;border-radius:0}.collage:before{width:720px;height:520px;opacity:.9}.hero-copy{position:absolute;left:50%;top:50%;transform:translate(-50%,-48%);width:min(620px,calc(100% - 42px));padding:34px 26px;border-radius:38px;background:rgba(255,250,251,.9)}
  .hero-photo{position:absolute!important;border-width:5px;opacity:.78}.hero-photo img{filter:saturate(.8) contrast(.9) brightness(.96) blur(.6px);opacity:.72}.hero-photo:hover img{filter:saturate(1.06) contrast(1.04) brightness(1) blur(0);opacity:1}
  .hp1{left:-42px!important;top:54px!important;width:230px!important;height:288px!important;border-radius:30px!important;transform:rotate(-6deg)!important}.hp2{left:176px!important;top:18px!important;width:210px!important;height:156px!important;transform:rotate(3deg)!important}.hp3{right:152px!important;top:46px!important;width:230px!important;height:166px!important;transform:rotate(-2deg)!important}.hp4{right:-36px!important;top:92px!important;width:220px!important;height:286px!important;transform:rotate(5deg)!important}.hp5{left:30px!important;bottom:84px!important;width:265px!important;height:176px!important;transform:rotate(4deg)!important}.hp6{display:none}.hp7{right:232px!important;bottom:42px!important;width:245px!important;height:172px!important;transform:rotate(-4deg)!important}.hp8{right:10px!important;bottom:68px!important;width:250px!important;height:176px!important;transform:rotate(4deg)!important}.hp9,.hp10{display:none}
}
@media(max-width:760px){
  .hero{padding:34px 0 52px}.hero-grid{min-height:660px}.collage{min-height:660px;display:block!important}.hero-copy{width:calc(100% - 34px);padding:28px 20px;border-radius:32px}.eyebrow{font-size:11px;padding:8px 13px}.title{font-size:52px;line-height:.9;margin:18px 0 12px}.title span{font-size:16px;margin-top:12px}.lead{font-size:15.5px}.intro{font-size:13.5px}.hero-cta{gap:10px;margin-top:22px}.hero-cta .btn{padding:12px 16px;font-size:13px}
  .hero-photo{height:auto!important;border-width:4px!important;box-shadow:0 18px 52px rgba(87,32,38,.13)}.hp1{left:-82px!important;top:42px!important;width:178px!important;height:232px!important}.hp2{left:92px!important;top:8px!important;width:170px!important;height:124px!important}.hp3{right:42px!important;top:22px!important;width:170px!important;height:126px!important}.hp4{right:-86px!important;top:92px!important;width:180px!important;height:240px!important}.hp5{left:-36px!important;bottom:72px!important;width:210px!important;height:142px!important}.hp7{right:122px!important;bottom:28px!important;width:182px!important;height:132px!important}.hp8{right:-44px!important;bottom:84px!important;width:190px!important;height:132px!important}.hp6,.hp9,.hp10{display:none!important}.faq-wrap{width:min(1220px,calc(100% - 44px))}.faq summary{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:56px;padding:0 18px}.faq details[open] summary{white-space:normal}.faq p{padding:0 18px 18px}
}
@media(max-width:420px){.title{font-size:46px}.hero-grid,.collage{min-height:620px}.hero-copy{top:51%}.hp2{left:72px!important}.hp3{right:24px!important}.hp7{right:96px!important}}


/* v8: official logo + cleaner responsive hero wall */
.brand-logo{gap:0;min-width:100px}
.brand-logo img{width:154px;height:auto;display:block;object-fit:contain}
@media(max-width:760px){
  .nav-inner{height:74px}
  .brand-logo img{width:118px}
  .hero{padding:26px 0 46px;overflow:hidden}
  .hero:after{background:linear-gradient(180deg,rgba(255,250,251,.52) 0%,rgba(255,250,251,.86) 38%,rgba(255,250,251,.96) 100%)}
  .hero-grid,.collage{min-height:690px}
  .collage{overflow:hidden}
  .collage:before{left:50%;top:48%;width:520px;height:460px;background:radial-gradient(circle,rgba(255,255,255,.82) 0%,rgba(255,255,255,.58) 48%,rgba(147,241,192,.10) 72%,transparent 100%)}
  .hero-copy{top:52%;width:calc(100% - 36px);max-width:420px;padding:28px 20px 26px;border-radius:34px;background:rgba(255,250,251,.91);box-shadow:0 22px 70px rgba(87,32,38,.14)}
  .hero-photo{border-width:4px!important;border-radius:24px!important;opacity:.64;filter:none;box-shadow:0 14px 42px rgba(87,32,38,.12)}
  .hero-photo img{filter:saturate(.82) contrast(.92) brightness(.96) blur(.25px);opacity:.74}
  .hero-photo:hover{opacity:1;transform:translateY(-4px) scale(1.02) rotate(0deg)!important}
  .hp1{left:-44px!important;top:22px!important;width:136px!important;height:170px!important;transform:rotate(-8deg)!important;z-index:2}
  .hp2{left:108px!important;top:4px!important;width:136px!important;height:104px!important;transform:rotate(4deg)!important;z-index:1}
  .hp3{right:72px!important;top:18px!important;width:136px!important;height:104px!important;transform:rotate(-5deg)!important;z-index:2}
  .hp4{right:-48px!important;top:62px!important;width:138px!important;height:178px!important;transform:rotate(7deg)!important;z-index:2}
  .hp5{left:-28px!important;bottom:32px!important;width:156px!important;height:112px!important;transform:rotate(5deg)!important;z-index:2}
  .hp6{display:block!important;left:118px!important;bottom:6px!important;width:138px!important;height:100px!important;transform:rotate(-5deg)!important;z-index:1}
  .hp7{right:92px!important;bottom:18px!important;width:150px!important;height:108px!important;transform:rotate(4deg)!important;z-index:2}
  .hp8{right:-34px!important;bottom:64px!important;width:150px!important;height:108px!important;transform:rotate(-6deg)!important;z-index:1}
  .hp9,.hp10{display:none!important}
}
@media(max-width:420px){
  .brand-logo img{width:108px}
  .hero-grid,.collage{min-height:660px}
  .hero-copy{top:51%;width:calc(100% - 30px);padding:24px 18px}
  .hp1{left:-58px!important;top:38px!important;width:132px!important;height:166px!important}
  .hp2{left:70px!important;top:8px!important;width:124px!important;height:92px!important}
  .hp3{right:54px!important;top:14px!important;width:126px!important;height:94px!important}
  .hp4{right:-58px!important;top:78px!important;width:132px!important;height:172px!important}
  .hp5{left:-42px!important;bottom:28px!important;width:148px!important;height:104px!important}
  .hp6{left:90px!important;bottom:2px!important;width:126px!important;height:92px!important}
  .hp7{right:74px!important;bottom:16px!important;width:138px!important;height:100px!important}
  .hp8{right:-46px!important;bottom:60px!important;width:142px!important;height:102px!important}
}


/* v9: hero background collage replacing individual image-wall cards */
.hero{min-height:840px;padding:86px 0 108px}
.hero:before{background:linear-gradient(180deg,rgba(255,250,251,.58) 0%,rgba(255,250,251,.34) 52%,rgba(255,250,251,.72) 100%),var(--hero-bg) center/cover no-repeat!important}
.hero:after{background:radial-gradient(ellipse at center,rgba(255,250,251,.02) 0%,rgba(255,250,251,.10) 42%,rgba(255,250,251,.58) 100%)!important}
.hero-grid{min-height:660px}
.collage{position:relative;min-height:660px;background:transparent!important}
.collage:before{display:none!important}
.hero-photo{display:none!important}
.hero-copy{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(760px,calc(100% - 64px));background:rgba(255,250,251,.86);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.62);box-shadow:0 34px 110px rgba(87,32,38,.16)}
@media(max-width:900px){
  .hero{min-height:auto;padding:64px 0 70px}
  .hero:before{background:linear-gradient(180deg,rgba(255,250,251,.50) 0%,rgba(255,250,251,.62) 42%,rgba(255,250,251,.92) 100%),var(--hero-bg) center top/cover no-repeat!important}
  .hero-grid,.collage{min-height:680px}
  .hero-copy{width:calc(100% - 34px);top:50%;padding:28px 20px;border-radius:34px;background:rgba(255,250,251,.90)}
}
@media(max-width:520px){
  .hero{padding:48px 0 54px}
  .hero-grid,.collage{min-height:650px}
  .hero:before{background:linear-gradient(180deg,rgba(255,250,251,.48) 0%,rgba(255,250,251,.74) 46%,rgba(255,250,251,.96) 100%),var(--hero-bg) center top/auto 100% no-repeat!important}
  .hero-copy{width:calc(100% - 28px);padding:24px 18px;border-radius:30px}
}



/* v10 refinement: clear premium hero collage + stronger mobile UI */
.hero{min-height:820px;padding:78px 0 100px;background:#fff8f8}
.hero:before{background:var(--hero-bg) center/cover no-repeat!important;filter:none!important}
.hero:after{display:none!important}
.hero-grid{min-height:660px}
.collage{min-height:660px}
.hero-copy{width:min(720px,calc(100% - 72px));padding:42px 54px;border-radius:44px;background:rgba(255,250,250,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.72);box-shadow:0 30px 90px rgba(60,28,32,.16)}
.title{font-size:88px;letter-spacing:-.05em}.title span{font-size:21px}.lead{font-size:17.5px}.intro{font-size:15px}
.hero:hover:before{filter:saturate(1.04) contrast(1.02)!important}
.pills{gap:10px 12px}.pill{min-height:42px;padding:10px 18px;font-size:13px}
.ranking{border-radius:30px}.ranking-head .h2{font-size:48px;max-width:620px}.ranking-head .btn{padding:12px 20px}
.faq-wrap{width:min(1220px,calc(100% - 120px))!important}.faq-wrap .faq{grid-template-columns:1fr!important}.faq-wrap .faq details{padding:0!important;border-radius:18px!important}.faq-wrap .faq summary{min-height:60px!important;padding:0 24px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.faq-wrap .faq p{padding:0 24px 22px!important}.faq-wrap .faq details[open] summary{white-space:normal;overflow:visible}
@media(max-width:1200px){
  .hero{min-height:760px;padding:64px 0 82px}.hero-grid,.collage{min-height:620px}.hero-copy{width:min(660px,calc(100% - 56px));padding:36px 36px}.title{font-size:74px}.title span{font-size:18px}.ranking-head .h2{font-size:42px}
}
@media(max-width:760px){
  .container{width:calc(100% - 28px)!important}.section{padding:62px 0}.nav-inner{height:68px}.brand-logo{width:118px!important}.actions .btn-outline{display:none}.actions .btn{padding:10px 14px;font-size:12px}
  .hero{padding:24px 0 44px;min-height:auto;background:#fff8f8}.hero:before{inset:0;background:var(--hero-bg) center top/auto 430px no-repeat!important}.hero-grid{min-height:690px;display:flex;align-items:flex-end}.collage{display:none!important}.hero-copy{position:relative;left:auto;top:auto;transform:none;width:100%;max-width:none;margin:390px auto 0;padding:26px 20px 24px;border-radius:30px;background:rgba(255,250,250,.96);box-shadow:0 22px 64px rgba(60,28,32,.14)}
  .eyebrow{font-size:10.5px;padding:7px 12px}.title{font-size:48px;line-height:.92;margin:16px 0 10px}.title span{font-size:15px;line-height:1.35}.lead{font-size:15px;line-height:1.55}.intro{font-size:13.3px;line-height:1.55}.hero-cta .btn{height:42px;padding:10px 14px;font-size:12.5px}
  .section-head{margin-bottom:24px}.kicker{font-size:11px}.h2{font-size:40px;line-height:1.02}.section-head .desc{font-size:14px}.pills{gap:8px}.pill{min-height:38px;padding:8px 14px;font-size:12px;flex:0 0 auto}.gallery{gap:16px}.photo-card{border-radius:22px}.pagination{margin-top:24px}
  .ranking{margin-top:34px;padding:22px;border-radius:26px}.ranking-head{align-items:flex-start;display:block}.ranking-head .h2{font-size:28px;line-height:1.12;margin-bottom:16px}.ranking-head .btn{height:40px;font-size:12px;padding:10px 16px}.ranking-list{grid-template-columns:1fr!important;gap:10px}.rank-item{grid-template-columns:34px 56px 1fr auto!important;padding:10px!important;border-radius:18px}.rank-item img{width:56px!important;height:56px!important;border-radius:14px!important}.rank-title{font-size:13px}.rank-meta{font-size:11px}.rank-vote{font-size:12px;white-space:nowrap}
  .faq-wrap{width:calc(100% - 28px)!important}.faq-wrap .faq summary{min-height:54px!important;padding:0 16px!important;font-size:13.2px}.faq-wrap .faq p{padding:0 16px 18px!important;font-size:13px}.form-wrap{max-width:100%}.form{padding:22px;border-radius:26px}.field-grid{gap:16px}.field input,.field select,.field textarea{font-size:14px}.upload{min-height:128px}
}
@media(max-width:420px){
  .hero:before{background-size:auto 390px!important;background-position:center top!important}.hero-grid{min-height:650px}.hero-copy{margin-top:356px;padding:24px 18px;border-radius:28px}.title{font-size:44px}.title span{font-size:14px}.lead{font-size:14px}.intro{display:none}.hero-cta{margin-top:18px}.h2{font-size:36px}.ranking-head .h2{font-size:26px}.pill{font-size:11.5px;padding:8px 12px}
}


/* v11 refinements: hero interaction, mobile text visibility, prize hover fix */
@keyframes heroCollageWiggle{
  0%{transform:scale(1.012) translate3d(0,0,0) rotate(0deg)}
  25%{transform:scale(1.016) translate3d(3px,-2px,0) rotate(.18deg)}
  50%{transform:scale(1.014) translate3d(-2px,2px,0) rotate(-.16deg)}
  75%{transform:scale(1.016) translate3d(2px,1px,0) rotate(.12deg)}
  100%{transform:scale(1.012) translate3d(0,0,0) rotate(0deg)}
}
.hero:before{transition:filter .35s ease, transform .35s ease;transform-origin:center}
.hero:hover:before{animation:heroCollageWiggle 3.2s ease-in-out infinite!important;filter:saturate(1.08) contrast(1.04) brightness(1.02)!important}
.hero-grid{position:relative!important}.hero-copy{z-index:5!important}.collage{z-index:1!important}
.prize:hover,.prize:first-child:hover{background:linear-gradient(135deg,var(--red),#c24e5b)!important;color:#fff!important;border-color:transparent!important}.prize:hover .rank,.prize:hover .value,.prize:hover p{color:#fff!important}.prize:hover:before{background:rgba(255,255,255,.16)!important}
@media(max-width:760px){
  .hero{overflow:hidden!important;padding:22px 0 50px!important;min-height:auto!important}
  .hero:before{background:var(--hero-bg) center top/auto 410px no-repeat!important;opacity:1!important;filter:none!important}
  .hero:hover:before{animation:none!important;filter:none!important}
  .hero-grid{display:flex!important;align-items:flex-end!important;min-height:670px!important}
  .collage{display:none!important}
  .hero-copy{display:block!important;visibility:visible!important;position:relative!important;left:auto!important;top:auto!important;transform:none!important;width:100%!important;margin:374px auto 0!important;padding:24px 18px!important;border-radius:28px!important;background:rgba(255,250,250,.96)!important;box-shadow:0 22px 64px rgba(60,28,32,.14)!important}
}
@media(max-width:420px){
  .hero:before{background-size:auto 370px!important;background-position:center top!important}
  .hero-grid{min-height:625px!important}
  .hero-copy{margin-top:336px!important}
}

/* v12 additions: floating utility buttons and news slider */
.news-section{background:#fffafa;border-top:1px solid rgba(169,43,53,.07);border-bottom:1px solid rgba(169,43,53,.07);overflow:hidden}
.news-shell{position:relative}
.news-slider{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;padding:8px 0 18px;scrollbar-width:none}.news-slider::-webkit-scrollbar{display:none}
.news-card{flex:0 0 420px;scroll-snap-align:start;background:#fff;border:1px solid rgba(169,43,53,.10);border-radius:34px;overflow:hidden;box-shadow:0 18px 56px rgba(63,31,35,.07);cursor:pointer;transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}.news-card:hover{transform:translateY(-6px);box-shadow:0 28px 78px rgba(63,31,35,.12);border-color:rgba(169,43,53,.22)}
.news-thumb{height:245px;overflow:hidden;background:#f5eeee}.news-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .42s ease}.news-card:hover .news-thumb img{transform:scale(1.04)}
.news-body{padding:26px}.news-date{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--red);font-weight:900;margin-bottom:12px}.news-title{font-size:22px;line-height:1.22;letter-spacing:-.03em;margin:0 0 10px;color:var(--ink);font-weight:850}.news-desc{font-size:14px;color:var(--muted);margin:0;line-height:1.65}.news-nav{display:flex;gap:10px;justify-content:flex-end;margin-top:12px}.news-arrow{width:46px;height:46px;border-radius:999px;border:1px solid rgba(169,43,53,.16);background:white;color:var(--red);font-size:22px;font-weight:800;cursor:pointer;transition:.22s ease}.news-arrow:hover{background:var(--red);color:#fff;transform:translateY(-2px)}.news-arrow:disabled{opacity:.35;cursor:not-allowed;pointer-events:none}
.float-actions{position:fixed;right:24px;bottom:24px;z-index:90;display:grid;gap:12px}.float-btn{width:52px;height:52px;border-radius:999px;border:1px solid rgba(169,43,53,.14);background:rgba(255,255,255,.94);backdrop-filter:blur(12px);box-shadow:0 16px 46px rgba(63,31,35,.14);color:var(--red);display:grid;place-items:center;cursor:pointer;transition:.24s ease;text-decoration:none}.float-btn:hover{background:var(--red);color:white;transform:translateY(-3px)}.float-btn svg{width:22px;height:22px}.notif-dot{position:absolute;right:9px;top:8px;width:9px;height:9px;border-radius:50%;background:#ff3b30;border:2px solid #fff;box-shadow:0 0 0 4px rgba(255,59,48,.14)}.float-btn.notify{position:relative}
.news-modal .modal-card{width:min(980px,calc(100% - 34px));max-height:88vh;overflow:auto;text-align:left;padding:0;border-radius:38px}.article-hero{width:100%;height:430px;object-fit:cover;display:block;background:#f4eeee}.article-content{padding:48px 58px 56px}.article-kicker{font-size:12px;letter-spacing:.15em;text-transform:uppercase;color:var(--red);font-weight:900;margin-bottom:18px}.article-title{font-family:'BT Beau Sans',serif;font-size:66px;line-height:.96;letter-spacing:-.045em;margin:0 0 18px;color:var(--ink)}.article-dek{font-size:20px;line-height:1.55;color:#4a3d3f;font-weight:650;margin:0 0 28px;max-width:760px}.article-meta{font-size:13px;color:var(--muted);padding-bottom:28px;border-bottom:1px solid var(--line);margin-bottom:32px}.article-body{font-size:17px;line-height:1.78;color:#44383a;max-width:760px}.article-body p{margin:0 0 22px}.article-body h3{font-size:25px;letter-spacing:-.03em;margin:34px 0 12px;color:var(--ink)}
@media(max-width:760px){.news-card{flex-basis:82vw;border-radius:28px}.news-thumb{height:205px}.news-body{padding:22px}.news-title{font-size:19px}.news-nav{justify-content:flex-start}.float-actions{right:16px;bottom:16px}.float-btn{width:48px;height:48px}.news-modal .modal-card{width:calc(100% - 22px);border-radius:28px;max-height:90vh}.article-hero{height:260px}.article-content{padding:30px 24px 36px}.article-title{font-size:42px}.article-dek{font-size:16px}.article-body{font-size:15px}}


/* v13 news refresh: modern editorial carousel placed below registration form */
.news-section{background:linear-gradient(180deg,#fffaf9 0%,#ffffff 100%);border-top:0;border-bottom:1px solid rgba(169,43,53,.08);padding-top:104px;position:relative;overflow:hidden}.news-section:before{content:"";position:absolute;inset:44px auto auto 50%;width:min(1180px,72vw);height:420px;transform:translateX(-50%);border-radius:999px;background:radial-gradient(circle,rgba(169,43,53,.08),rgba(147,241,192,.08) 42%,transparent 68%);filter:blur(18px);pointer-events:none}.news-shell{position:relative;z-index:1}.news-shell .section-head{align-items:flex-start;margin-bottom:28px}.news-shell .h2{max-width:760px}.news-slider{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding:10px 0 30px;scrollbar-width:none}.news-slider::-webkit-scrollbar{display:none}.news-card{position:relative;flex:0 0 390px;min-height:520px;scroll-snap-align:start;border-radius:36px;overflow:hidden;background:#fff;border:1px solid rgba(169,43,53,.10);box-shadow:0 24px 78px rgba(63,31,35,.08);cursor:pointer;transition:transform .34s cubic-bezier(.2,.8,.2,1),box-shadow .34s ease,border-color .34s ease}.news-card:hover{transform:translateY(-8px);box-shadow:0 34px 96px rgba(63,31,35,.14);border-color:rgba(169,43,53,.20)}.news-card.featured{flex-basis:min(760px,62vw);display:grid;grid-template-columns:1.08fr .92fr;min-height:520px;background:#2d2728;color:#fff}.news-card.featured:after{content:"Bài mới nhất";position:absolute;left:24px;top:24px;background:rgba(255,255,255,.92);color:var(--red);border-radius:999px;padding:9px 14px;font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;z-index:3}.news-thumb{height:280px;overflow:hidden;background:#f6eeee}.news-card.featured .news-thumb{height:100%;min-height:520px}.news-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .55s ease,filter .55s ease}.news-card:hover .news-thumb img{transform:scale(1.045);filter:saturate(1.08) contrast(1.03)}.news-body{padding:28px;display:flex;flex-direction:column;min-height:240px}.news-card.featured .news-body{justify-content:center;padding:48px}.news-date{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:18px;font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--red);font-weight:900}.news-date span{padding:7px 10px;border-radius:999px;background:#fff4f4;border:1px solid rgba(169,43,53,.10)}.news-card.featured .news-date{color:#fff}.news-card.featured .news-date span{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.18)}.news-title{font-family:'BT Beau Sans',system-ui,sans-serif;font-size:24px;line-height:1.18;letter-spacing:-.04em;margin:0 0 12px;color:var(--ink);font-weight:850}.news-card.featured .news-title{font-family:'BT Beau Sans',serif;font-size:58px;line-height:.94;letter-spacing:-.055em;color:#fff}.news-desc{font-size:14.5px;color:var(--muted);margin:0;line-height:1.7}.news-card.featured .news-desc{font-size:16px;color:rgba(255,255,255,.78)}.news-read{margin-top:auto;align-self:flex-start;border:1px solid rgba(169,43,53,.20);background:#fff;color:var(--red);border-radius:999px;padding:11px 16px;font:800 13px 'BT Beau Sans';cursor:pointer;transition:.22s ease}.news-read:hover{background:var(--red);color:#fff}.news-card.featured .news-read{margin-top:28px;background:#fff;color:var(--red);border-color:#fff}.news-card.featured .news-read:hover{background:var(--red);color:#fff}.news-nav{display:flex;gap:10px;justify-content:flex-end;margin-top:8px}.news-arrow{width:48px;height:48px;border-radius:999px;border:1px solid rgba(169,43,53,.16);background:white;color:var(--red);font-size:22px;font-weight:800;cursor:pointer;transition:.22s ease;box-shadow:0 14px 38px rgba(63,31,35,.06)}.news-arrow:hover{background:var(--red);color:#fff;transform:translateY(-2px)}.news-arrow:disabled{opacity:.35;cursor:not-allowed;pointer-events:none}
@media(max-width:980px){.news-shell .section-head{display:flex;align-items:flex-end}.news-card.featured{flex-basis:78vw;display:block;background:#fff;color:var(--ink)}.news-card.featured .news-thumb{height:300px;min-height:auto}.news-card.featured .news-body{padding:28px;justify-content:flex-start}.news-card.featured .news-date{color:var(--red)}.news-card.featured .news-date span{background:#fff4f4;border-color:rgba(169,43,53,.10)}.news-card.featured .news-title{font-family:'BT Beau Sans',system-ui,sans-serif;font-size:26px;line-height:1.16;color:var(--ink)}.news-card.featured .news-desc{font-size:14.5px;color:var(--muted)}.news-card.featured .news-read{margin-top:auto;border-color:rgba(169,43,53,.20)}}
@media(max-width:760px){.news-section{padding-top:76px}.news-shell .section-head{display:block}.news-nav{justify-content:flex-start;margin-top:18px}.news-slider{gap:14px;padding-bottom:22px}.news-card,.news-card.featured{flex-basis:84vw;min-height:470px;border-radius:30px}.news-thumb,.news-card.featured .news-thumb{height:235px}.news-body,.news-card.featured .news-body{padding:24px;min-height:235px}.news-title,.news-card.featured .news-title{font-size:21px}.news-card.featured:after{left:18px;top:18px;font-size:10px;padding:7px 10px}.news-date{font-size:10px;margin-bottom:14px}.news-read{padding:10px 14px}}



/* v14 news refinement: compact, clean editorial rail */
.news-section{
  padding:72px 0 76px !important;
  background:linear-gradient(180deg,#fff 0%,#fff9f9 100%) !important;
  border-top:1px solid rgba(169,43,53,.06) !important;
  border-bottom:1px solid rgba(169,43,53,.06) !important;
  overflow:hidden !important;
}
.news-section:before{display:none !important;}
.news-shell .section-head{
  display:flex !important;
  align-items:flex-end !important;
  justify-content:space-between !important;
  gap:24px !important;
  margin-bottom:22px !important;
}
.news-shell .h2{
  max-width:620px !important;
  font-size:clamp(36px,3.2vw,56px) !important;
  line-height:.98 !important;
  letter-spacing:-.045em !important;
}
.news-slider{
  gap:16px !important;
  padding:4px 0 18px !important;
}
.news-card,
.news-card.featured{
  flex:0 0 328px !important;
  min-height:390px !important;
  display:block !important;
  border-radius:28px !important;
  background:#fff !important;
  color:var(--ink) !important;
  border:1px solid rgba(169,43,53,.11) !important;
  box-shadow:0 14px 42px rgba(63,31,35,.055) !important;
  overflow:hidden !important;
}
.news-card.featured{
  flex-basis:420px !important;
  background:#fff !important;
}
.news-card:hover{
  transform:translateY(-4px) !important;
  box-shadow:0 20px 58px rgba(63,31,35,.09) !important;
  border-color:rgba(169,43,53,.20) !important;
}
.news-card.featured:after{
  left:18px !important;
  top:18px !important;
  padding:7px 11px !important;
  font-size:10px !important;
  letter-spacing:.09em !important;
  background:rgba(255,255,255,.92) !important;
  color:var(--red) !important;
  border:1px solid rgba(169,43,53,.12) !important;
}
.news-thumb,
.news-card.featured .news-thumb{
  height:178px !important;
  min-height:0 !important;
  background:#f8eeee !important;
}
.news-card.featured .news-thumb{height:205px !important;}
.news-body,
.news-card.featured .news-body{
  padding:22px !important;
  min-height:0 !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:flex-start !important;
}
.news-date,
.news-card.featured .news-date{
  color:var(--red) !important;
  font-size:10px !important;
  letter-spacing:.1em !important;
  gap:7px !important;
  margin-bottom:12px !important;
}
.news-date span,
.news-card.featured .news-date span{
  background:#fff6f6 !important;
  border-color:rgba(169,43,53,.11) !important;
  padding:6px 9px !important;
}
.news-title,
.news-card.featured .news-title{
  font-family:'BT Beau Sans',system-ui,sans-serif !important;
  font-size:20px !important;
  line-height:1.2 !important;
  letter-spacing:-.035em !important;
  color:var(--ink) !important;
  margin-bottom:9px !important;
}
.news-card.featured .news-title{font-size:24px !important;line-height:1.12 !important;}
.news-desc,
.news-card.featured .news-desc{
  font-size:13.5px !important;
  line-height:1.62 !important;
  color:var(--muted) !important;
  display:-webkit-box !important;
  -webkit-line-clamp:3 !important;
  -webkit-box-orient:vertical !important;
  overflow:hidden !important;
}
.news-read,
.news-card.featured .news-read{
  margin-top:18px !important;
  padding:9px 13px !important;
  font-size:12px !important;
  background:#fff !important;
  color:var(--red) !important;
  border:1px solid rgba(169,43,53,.20) !important;
}
.news-read:hover,
.news-card.featured .news-read:hover{background:var(--red) !important;color:#fff !important;}
.news-nav{margin-top:0 !important;}
.news-arrow{
  width:42px !important;
  height:42px !important;
  font-size:20px !important;
  box-shadow:0 10px 26px rgba(63,31,35,.045) !important;
}
@media(max-width:760px){
  .news-section{padding:58px 0 62px !important;}
  .news-shell .section-head{display:block !important;margin-bottom:18px !important;}
  .news-shell .h2{font-size:34px !important;line-height:1.02 !important;}
  .news-nav{justify-content:flex-start !important;margin-top:16px !important;}
  .news-slider{gap:12px !important;padding-bottom:12px !important;}
  .news-card,.news-card.featured{flex-basis:78vw !important;min-height:360px !important;border-radius:24px !important;}
  .news-thumb,.news-card.featured .news-thumb{height:170px !important;}
  .news-body,.news-card.featured .news-body{padding:18px !important;}
  .news-title,.news-card.featured .news-title{font-size:18px !important;line-height:1.22 !important;}
  .news-desc,.news-card.featured .news-desc{font-size:13px !important;-webkit-line-clamp:2 !important;}
}


/* v15 news fix: slimmer premium news rail + header menu item */
.news-section{
  padding:64px 0 68px !important;
  background:linear-gradient(180deg,#fffafa 0%,#fff 62%,#fff8f8 100%) !important;
}
.news-shell{
  width:min(1440px,calc(100% - 120px)) !important;
  margin:0 auto !important;
}
.news-shell .section-head{
  align-items:center !important;
  margin-bottom:24px !important;
}
.news-shell .h2{
  max-width:720px !important;
  font-size:clamp(34px,2.7vw,48px) !important;
  line-height:1.04 !important;
  letter-spacing:-.04em !important;
}
.news-slider{
  gap:18px !important;
  padding:2px 0 20px !important;
  align-items:stretch !important;
}
.news-card,
.news-card.featured{
  flex:0 0 310px !important;
  min-height:376px !important;
  border-radius:26px !important;
  box-shadow:0 16px 44px rgba(63,31,35,.055) !important;
}
.news-card.featured{
  flex-basis:390px !important;
}
.news-thumb,
.news-card.featured .news-thumb{
  height:170px !important;
}
.news-card.featured .news-thumb{height:185px !important;}
.news-body,
.news-card.featured .news-body{
  padding:20px 22px 22px !important;
}
.news-date,
.news-card.featured .news-date{
  margin-bottom:10px !important;
}
.news-title,
.news-card.featured .news-title{
  font-size:19px !important;
  line-height:1.24 !important;
  letter-spacing:-.03em !important;
  margin-bottom:8px !important;
  display:-webkit-box !important;
  -webkit-line-clamp:2 !important;
  -webkit-box-orient:vertical !important;
  overflow:hidden !important;
}
.news-card.featured .news-title{font-size:22px !important;}
.news-desc,
.news-card.featured .news-desc{
  font-size:13px !important;
  line-height:1.58 !important;
  -webkit-line-clamp:2 !important;
}
.news-read,
.news-card.featured .news-read{
  margin-top:16px !important;
}
.news-card.featured:after{font-size:9px !important;}
@media(max-width:1200px){
  .news-shell{width:min(100% - 44px,1100px) !important;}
}
@media(max-width:760px){
  .news-shell{width:calc(100% - 28px) !important;}
  .news-section{padding:52px 0 58px !important;}
  .news-shell .h2{font-size:32px !important;}
  .news-slider{gap:12px !important;}
  .news-card,.news-card.featured{flex-basis:82vw !important;min-height:344px !important;border-radius:22px !important;}
  .news-thumb,.news-card.featured .news-thumb{height:158px !important;}
  .news-body,.news-card.featured .news-body{padding:17px !important;}
  .news-title,.news-card.featured .news-title{font-size:17px !important;}
  .news-read,.news-card.featured .news-read{margin-top:12px !important;}
}


/* v16 refinements */
.news-section{padding-top:88px;padding-bottom:84px;overflow:hidden;}
.news-slider{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;overflow:visible!important;padding:10px 0 18px!important;}
.news-card,
.news-card.featured{flex:initial!important;flex-basis:auto!important;display:flex!important;flex-direction:column!important;min-height:420px!important;border-radius:28px!important;background:#fff!important;color:var(--ink)!important;box-shadow:0 18px 52px rgba(63,31,35,.07)!important;}
.news-card.featured:after{content:"Bài mới nhất";position:absolute;left:18px;top:18px;background:rgba(255,255,255,.94);color:var(--red);border-radius:999px;padding:8px 12px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;z-index:3;}
.news-thumb,
.news-card.featured .news-thumb{height:210px!important;min-height:210px!important;}
.news-body,
.news-card.featured .news-body{padding:24px!important;min-height:210px!important;display:flex!important;flex-direction:column!important;justify-content:flex-start!important;}
.news-date,
.news-card.featured .news-date{font-weight:500!important;color:var(--red)!important;letter-spacing:.08em!important;margin-bottom:14px!important;}
.news-date span,
.news-card.featured .news-date span{font-weight:500!important;background:#fff4f4!important;border-color:rgba(169,43,53,.10)!important;color:var(--red)!important;}
.news-title,
.news-card.featured .news-title{font-family:'BT Beau Sans',system-ui,sans-serif!important;font-size:20px!important;line-height:1.22!important;letter-spacing:-.035em!important;color:var(--ink)!important;margin:0 0 10px!important;}
.news-desc,
.news-card.featured .news-desc{font-size:13.5px!important;color:var(--muted)!important;line-height:1.6!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.news-read,
.news-card.featured .news-read{margin-top:auto!important;align-self:flex-start!important;border:1px solid rgba(169,43,53,.20)!important;background:#fff!important;color:var(--red)!important;}
.news-read:hover,.news-card.featured .news-read:hover{background:var(--red)!important;color:#fff!important;}
.footer{background:#fff;border-top:1px solid rgba(169,43,53,.10);padding:44px 0 28px;color:#6f5a5d;font-size:13px;}
.footer-inner{border-top:0;padding-top:0;display:grid;grid-template-columns:1.4fr .8fr;gap:40px;align-items:start;}
.footer-company strong{display:block;color:var(--ink);font-size:14px;letter-spacing:.04em;text-transform:uppercase;margin-bottom:10px;}
.footer-company p{margin:5px 0;line-height:1.55;}
.footer-links{display:grid;gap:10px;justify-items:start;}
.footer-links a{color:#6f5a5d;text-decoration:none;font-weight:650;}
.footer-links a:hover{color:var(--red);}
.footer-bottom{border-top:1px solid rgba(169,43,53,.10);margin-top:28px;padding-top:18px;text-align:center;color:#8b7476;}
@media(max-width:1200px){.news-slider{grid-template-columns:repeat(2,minmax(0,1fr));}.news-card,.news-card.featured{min-height:400px!important;}}
@media(max-width:760px){.news-section{padding-top:64px;padding-bottom:64px}.news-slider{display:flex!important;overflow-x:auto!important;scroll-snap-type:x mandatory;gap:14px;padding-bottom:22px!important}.news-card,.news-card.featured{flex:0 0 84vw!important;min-height:430px!important;border-radius:26px!important;scroll-snap-align:start}.news-thumb,.news-card.featured .news-thumb{height:220px!important;min-height:220px!important}.news-body,.news-card.featured .news-body{padding:22px!important;min-height:210px!important}.footer-inner{grid-template-columns:1fr;gap:24px}.footer-links{gap:9px}}


/* Footer Nam Long red theme - fixed */
.footer{
  background:linear-gradient(135deg,#9B1C26 0%,#7F1820 100%) !important;
  color:#fff !important;
  padding:64px 0 34px !important;
  border-top:0 !important;
}
.footer .container{
  width:min(1440px,calc(100% - 80px)) !important;
  max-width:1440px !important;
  margin:0 auto !important;
}
.footer-inner{
  border-top:0 !important;
  padding-top:0 !important;
  display:grid !important;
  grid-template-columns:minmax(0,1.45fr) minmax(260px,.55fr) !important;
  gap:80px !important;
  align-items:start !important;
}
.footer-company strong{
  color:#fff !important;
  display:block !important;
  font-size:14px !important;
  letter-spacing:.055em !important;
  text-transform:uppercase !important;
  margin-bottom:14px !important;
}
.footer-company p{
  color:rgba(255,255,255,.88) !important;
  margin:7px 0 !important;
  line-height:1.6 !important;
}
.footer-links{
  display:grid !important;
  gap:12px !important;
  justify-items:start !important;
}
.footer-links a{
  color:rgba(255,255,255,.86) !important;
  text-decoration:none !important;
  font-weight:650 !important;
}
.footer-links a:hover{
  color:#fff !important;
  text-decoration:underline !important;
  text-underline-offset:5px !important;
}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.18) !important;
  margin-top:36px !important;
  padding-top:22px !important;
  text-align:center !important;
  color:rgba(255,255,255,.72) !important;
}
@media(max-width:760px){
  .footer{padding:48px 0 28px !important;}
  .footer .container{width:min(100% - 44px,1440px) !important;}
  .footer-inner{grid-template-columns:1fr !important;gap:26px !important;}
}



/* v18 content and interaction refinements */
.brand-logo img{width:100px!important}.brand-logo{min-width:140px!important}
.gallery-filter{min-width:300px;display:grid;gap:7px}.gallery-filter label{font-size:11px;text-transform:uppercase;letter-spacing:.12em;font-weight:800;color:var(--red)}.gallery-filter select,.ranking-project{height:48px;border:1px solid rgba(169,43,53,.18);border-radius:999px;background:#fff;padding:0 42px 0 18px;color:var(--ink);font:700 14px 'BT Beau Sans';cursor:pointer}
.ranking-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.ranking-tabs{display:flex;padding:4px;border-radius:999px;background:#fff4f4;border:1px solid rgba(169,43,53,.10)}.ranking-tab{border:0;background:transparent;padding:11px 18px;border-radius:999px;font:750 13px 'BT Beau Sans';color:#765d60;cursor:pointer}.ranking-tab.active{background:var(--red);color:#fff;box-shadow:0 8px 22px rgba(169,43,53,.18)}.ranking-project{display:none;min-width:260px}.ranking-project.show{display:block}.ranking-empty{grid-column:1/-1;text-align:center;color:var(--muted);padding:30px}
.share-modal{align-items:flex-start;overflow-y:auto}.share-modal-card{width:min(980px,calc(100% - 32px));max-height:none;margin:30px auto;padding:38px;text-align:left}.share-modal-card .form-copy{text-align:center}.share-modal-card .form{box-shadow:none;padding:0;border:0}.success-card{width:min(560px,100%)}.success-icon{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;margin:0 auto 20px;background:#fff0f1;color:var(--red);font-size:30px;font-weight:900}.success-card h2{font-family:'BT Beau Sans',system-ui,sans-serif;font-size:28px;line-height:1.2;letter-spacing:-.02em;max-width:520px;margin:0 auto 22px;text-align:center}.success-title-break{display:block}.success-card p{color:var(--muted);line-height:1.7}.support-box{margin:24px 0;padding:18px;border-radius:18px;background:#fff5f5;display:grid;gap:5px}.support-box span{font-size:12px;color:var(--muted)}.support-box a{color:var(--red);font-weight:800;text-decoration:none}
.float-btn.camera{background:var(--red);color:#fff}.float-btn.camera:hover{background:#891e28}
@media(max-width:760px){.brand-logo img{width:104px!important}.brand-logo{min-width:104px!important}.gallery-filter{width:100%;min-width:0;margin-top:18px}.gallery-filter select{width:100%}.ranking-controls{align-items:stretch;flex-direction:column}.ranking-tabs{width:100%}.ranking-tab{flex:1;padding:10px 8px;font-size:12px}.ranking-project{width:100%;min-width:0}.share-modal-card{padding:26px 18px;margin:12px auto}.share-modal-card .field-grid{grid-template-columns:1fr}.success-card h2{font-size:23px}.success-title-break{display:none}}


/* v19: BT Beau Sans typography, compact official logo and refined project selector */
:root{--font-brand:'BT Beau Sans','Inter','Helvetica Neue',Arial,sans-serif}
html,body,button,input,select,textarea{font-family:var(--font-brand)!important}
body{font-weight:400;letter-spacing:-.012em}
.title,.h2,.modal-logo{font-family:var(--font-brand)!important}
.title{font-weight:700;letter-spacing:-.055em}
.h2{font-weight:700;letter-spacing:-.045em}
.btn,.menu,.kicker,.eyebrow,.pill,.caption,.rank-title{font-family:var(--font-brand)!important}

.brand-logo{width:100px!important;min-width:100px!important;max-width:100px!important;flex:0 0 100px!important;overflow:hidden}
.brand-logo img{width:140px!important;max-width:100px!important;height:auto!important;object-fit:contain!important}

.gallery-filter{width:292px;min-width:292px;display:flex;flex-direction:column;gap:9px;align-self:flex-end}
.gallery-filter label{margin:0;padding-left:2px;font-size:11px;line-height:1.2;letter-spacing:.15em;font-weight:700;color:var(--red)}
.gallery-filter select,.ranking-project{
  width:100%;height:50px;margin:0;padding:0 48px 0 18px;
  border:1px solid rgba(169,43,53,.20);border-radius:16px;
  background-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23A92B35' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:16px;
  color:var(--ink);font-size:14px!important;font-weight:600!important;line-height:1;
  appearance:none;-webkit-appearance:none;cursor:pointer;box-shadow:0 8px 24px rgba(87,32,38,.035);outline:none
}
.gallery-filter select:hover,.ranking-project:hover{border-color:rgba(169,43,53,.42)}
.gallery-filter select:focus,.ranking-project:focus{border-color:var(--red);box-shadow:0 0 0 4px rgba(169,43,53,.08)}

@media(max-width:760px){
  .brand-logo{width:116px!important;min-width:116px!important;max-width:116px!important;flex-basis:116px!important}
  .brand-logo img{width:116px!important;max-width:116px!important}
  #gallery .section-head{display:grid!important;grid-template-columns:1fr;align-items:start!important;gap:20px;margin-bottom:28px}
  .gallery-filter{width:100%;min-width:0;max-width:360px;margin:0;align-self:auto}
  .gallery-filter select{height:48px;border-radius:15px}
}
@media(max-width:420px){
  .brand-logo{width:108px!important;min-width:108px!important;max-width:108px!important;flex-basis:108px!important}
  .brand-logo img{width:108px!important;max-width:108px!important}
}


/* v20: ranking controls and fully sans-serif responsive article modal */
.article-title,.article-dek,.article-body,.article-body h3,.news-title,.modal-card h2,.ranking h3{font-family:var(--font-brand)!important}
.article-title{font-weight:700!important;letter-spacing:-.048em!important}
.article-body h3{font-weight:700!important}

.ranking-controls{
  display:grid!important;grid-template-columns:minmax(340px,520px) minmax(250px,360px);
  align-items:end!important;justify-content:space-between!important;gap:24px!important;
  margin:24px 0 24px!important;padding:18px!important;border-radius:24px!important;
  background:#fffafa!important;border:1px solid rgba(169,43,53,.10)!important
}
.ranking-tabs{
  display:grid!important;grid-template-columns:1fr 1fr!important;gap:6px!important;padding:5px!important;
  border-radius:18px!important;background:#f7eeee!important;border:0!important;min-width:0!important
}
.ranking-tab{
  min-height:58px!important;padding:9px 16px!important;border-radius:14px!important;
  display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:center!important;gap:1px!important;
  text-align:left!important;font-family:var(--font-brand)!important;font-size:14px!important;font-weight:700!important;line-height:1.2!important;
  color:#6f5558!important;transition:.22s ease!important
}
.ranking-tab small{display:block;font-size:10px;font-weight:500;opacity:.68;letter-spacing:0}
.ranking-tab.active{background:#fff!important;color:var(--red)!important;box-shadow:0 8px 22px rgba(87,32,38,.08)!important}
.ranking-tab.active small{opacity:.72}
.ranking-project-wrap{display:none;min-width:0}
.ranking-project-wrap:has(.ranking-project.show){display:grid;gap:7px}
.ranking-project-wrap label{font-size:11px;line-height:1;text-transform:uppercase;letter-spacing:.12em;font-weight:700;color:var(--red);padding-left:2px}
.ranking-project{display:none!important;width:100%!important;min-width:0!important}
.ranking-project.show{display:block!important}

.news-modal{padding:24px!important}
.news-modal .modal-card{width:min(1040px,calc(100% - 24px))!important;max-height:92vh!important;border-radius:32px!important}
.article-content{padding:46px 56px 54px!important}
.article-title{font-size:clamp(42px,4.6vw,68px)!important;line-height:1.02!important;max-width:880px!important}
.article-dek{font-size:19px!important;max-width:820px!important}
.article-body{max-width:820px!important}

@media(max-width:1024px){
  .ranking{padding:26px!important}
  .ranking-controls{grid-template-columns:1fr minmax(240px,320px)!important;gap:16px!important}
  .ranking-head{align-items:flex-start!important}
  .article-content{padding:40px 42px 48px!important}
  .article-title{font-size:48px!important}
}
@media(max-width:760px){
  .ranking{margin-top:38px!important;padding:20px!important;border-radius:26px!important}
  .ranking-head{display:grid!important;grid-template-columns:1fr!important;gap:16px!important;margin-bottom:16px!important}
  .ranking-head .btn{justify-self:start!important}
  .ranking h3{font-size:26px!important;line-height:1.14!important}
  .ranking-controls{grid-template-columns:1fr!important;padding:12px!important;gap:12px!important;border-radius:20px!important}
  .ranking-tabs{width:100%!important;border-radius:16px!important}
  .ranking-tab{min-height:54px!important;padding:8px 12px!important;font-size:13px!important;align-items:center!important;text-align:center!important}
  .ranking-tab small{font-size:9px}
  .ranking-project-wrap:has(.ranking-project.show){width:100%!important}
  .ranking-project{height:48px!important;border-radius:14px!important}
  .rank-item{grid-template-columns:34px 52px minmax(0,1fr) auto!important;gap:9px!important;padding:10px!important}
  .rank-item img{width:52px!important;height:52px!important;border-radius:13px!important}
  .rank-title{font-size:13px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .rank-meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .rank-vote{font-size:12px!important}

  .news-modal{padding:10px!important;align-items:flex-end!important}
  .news-modal .modal-card{width:100%!important;max-height:94vh!important;border-radius:24px 24px 0 0!important;margin:0!important}
  .article-hero{height:220px!important}
  .article-content{padding:28px 22px 34px!important}
  .article-title{font-size:34px!important;line-height:1.08!important;letter-spacing:-.04em!important}
  .article-dek{font-size:16px!important;line-height:1.5!important}
  .article-body{font-size:15px!important;line-height:1.72!important}
  .article-body h3{font-size:21px!important}
}
@media(max-width:420px){
  .ranking-tab{font-size:12px!important;padding:8px 7px!important}
  .ranking-tab small{display:none}
  .article-title{font-size:30px!important}
  .article-hero{height:190px!important}
}



/* ============================================================
   Bổ sung khi ghép Laravel — không thuộc CSS gốc của template.
   Chỉ phục vụ hiển thị lỗi validate và vùng upload có thể bấm.
   ============================================================ */
.upload{cursor:pointer;transition:border-color .2s ease,background .2s ease}
.upload:hover{border-color:rgba(169,43,53,.6);background:#fff5f5}
.field-error{display:block;color:var(--red);font-size:12.5px;font-weight:700;margin-top:2px}
.check .field-error{margin-top:6px}
.ranking-empty{color:var(--muted);font-size:14px;margin:8px 0 0}

/* Bình chọn — .heart chuyển từ <div> sang <button> */
.heart{border:0;font:800 14px 'BT Beau Sans',system-ui,sans-serif;cursor:pointer;display:inline-flex;align-items:center;gap:4px;line-height:1;transition:.22s ease}
.heart:hover:not(:disabled){background:var(--red);color:#fff;transform:scale(1.06)}
.heart.voted,.heart:disabled{background:var(--red);color:#fff;cursor:default}
.heart:disabled{opacity:.95}
#lbVote.voted,#lbVote:disabled{background:var(--red2);border-color:transparent;color:#fff;cursor:default}
.nav-user{font-weight:800;font-size:13px;color:var(--red);align-self:center;white-space:nowrap}
.nav-logout{margin:0}
.social button:disabled{opacity:.5;cursor:not-allowed}
