/* Thợ Nhà Thuận Phát (suanha) — trang chủ theo mockup suanha-home/mockups/home-desktop-v1.png (738px -> 1440 = x1.951) */
:root { --tnp-b: #0564c2; --tnp-b2: #0450a0; --tnp-ink: #012a62; --tnp-nv: #11325c; --tnp-ft: #122d55; --tnp-y: #fcde01; --tnp-y2: #f0cf00; --tnp-bg: #f0f4f7; --tnp-mut: #55627a; --tnp-line: #e1e8f0;
  --tnp-f: 'Roboto', Arial, sans-serif; }
body, p, li, a, span, div, input, select, textarea, button, label, h1, h2, h3, h4, h5, h6, .nav > li > a { font-family: var(--tnp-f) !important; }
h1 a, h2 a, h3 a, h4 a { font-family: inherit !important; }
body, html { background: #fff; }
body .tnp-hero, body .tnp-sec, body .tnp-footer, #header { word-break: normal !important; }
#main, .home #main { background-color: #fff !important; background-image: none !important; }
.tnp-ic { width: 1em; height: 1em; display: inline-block; vertical-align: -0.14em; flex: 0 0 auto; }
.absolute-footer, .float-contact, #button-contact-vr, .hotline-phone-ring-wrap, #header-contact { display: none !important; }
img[src=""] { visibility: hidden; }

/* ---------- topbar + header ---------- */
#top-bar { background: var(--tnp-nv) !important; }
#top-bar .flex-row { min-height: 41px; }
#top-bar .tnp-tb { display: inline-flex; align-items: center; gap: 30px; padding-left: 35px; }
#top-bar .tnp-tb a { display: inline-flex; align-items: center; gap: 11px; color: #fff !important; font-size: 16px !important; }
#top-bar .tnp-tb .tnp-ic { font-size: 19px; }
#top-bar .tnp-soc { display: inline-flex; align-items: center; gap: 22px; padding-right: 0; }
#top-bar .tnp-soc a { color: #fff !important; font-size: 21px !important; display: inline-flex; }
#header .header-main { background: #fff !important; }
#header .header-wrapper { box-shadow: 0 1px 0 #e8eef5 !important; border-bottom: 0 !important; }
#logo { width: auto !important; margin: 0 0 0 24px !important; top: 0 !important; }
#header #logo a { display: inline-flex; flex-direction: column; justify-content: center; height: 98px; padding-left: 150px; background: url("icons/logo.png") left center / 132px auto no-repeat; font-size: 0 !important; line-height: 1 !important; text-transform: none !important; white-space: nowrap; top: 0; margin: 0; }
#header #logo a::before { content: "Thợ Nhà"; font-size: 35px; font-weight: 700; line-height: 1.1; color: var(--tnp-ink); letter-spacing: -.01em; }
#header #logo a::after { content: "Thuận Phát"; font-size: 42px; font-weight: 700; line-height: 1.1; color: var(--tnp-b); letter-spacing: -.01em; }
#header .header-main .flex-right .header-nav-main { justify-content: flex-end; }
#header .header-nav-main { flex-wrap: nowrap; align-items: center; }
#header .header-main .nav > li { margin: 0 19px !important; }
#header .header-main .nav > li > a { font-size: 18px !important; font-weight: 500 !important; color: var(--tnp-ink) !important; text-transform: none !important; padding: 0 !important; margin: 0 !important; border: 0 !important; line-height: 40px !important; white-space: nowrap; flex-wrap: nowrap !important; }
#header .header-main .nav > li > a:hover { color: var(--tnp-b) !important; border: 0 !important; }
#header .header-nav-main > li > a::after, #header .header-nav-main > li > a::before { display: none !important; }
#header .header-main .nav > li.header-button-1 { margin: 0 0 0 14px !important; }
#header .header-button-1 .button { background: var(--tnp-y) !important; border: 0 !important; color: var(--tnp-ink) !important; border-radius: 6px !important; height: 55px; min-width: 216px; padding: 0 20px !important; line-height: 55px !important; font-size: 17.5px !important; font-weight: 700 !important; text-transform: none !important; box-shadow: none !important; margin: 0 !important; }
#header .header-button-1 .button span { font-size: inherit !important; }
#header .header-button-1 .button:hover { background: var(--tnp-y2) !important; }
#header .mobile-nav i, #header .mobile-nav .icon-menu { color: var(--tnp-ink) !important; }
#header .nav-icon a, #header .mobile-nav .nav-icon a { background: transparent !important; color: var(--tnp-ink) !important; box-shadow: none !important; border: 0 !important; }
#header .mobile-nav .nav-icon .icon-menu { font-size: 26px !important; }

/* ---------- chung ---------- */
.section.tnp-sec, .section.tnp-hero, .section.tnp-footer { padding: 0 !important; }
.tnp-sec .col, .tnp-hero .col, .tnp-footer .col { padding-bottom: 0 !important; }
.tnp-sec p:not([class]), .tnp-footer p:not([class]), .tnp-hero p:not([class]) { display: contents; }
.tnp-h2 { font-size: 41px; line-height: 1.22; font-weight: 700; color: var(--tnp-ink); margin: 0; letter-spacing: -.015em; }
.tnp-ul { position: relative; padding-bottom: 8px; }
.tnp-ul::after { content: ""; position: absolute; left: 0; bottom: 0; width: 47px; height: 4px; border-radius: 2px; background: var(--tnp-b); }
.tnp-c { text-align: center; }
.tnp-c.tnp-ul::after { left: 50%; transform: translateX(-50%); }
.tnp-sub { font-size: 18.5px; color: var(--tnp-mut); margin-top: 8px; } .tnp-sub b { color: var(--tnp-ink); font-weight: 600; }
.tnp-head { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.tnp-head h2 { flex: 0 1 auto; width: fit-content; min-width: 0; }
.tnp-all { flex: 0 0 auto; color: var(--tnp-b) !important; font-size: 17px; font-weight: 500; display: inline-flex; align-items: center; gap: 9px; white-space: nowrap; }
.tnp-all .tnp-ic { font-size: 20px; }
.tnp-btn { display: inline-flex; align-items: center; justify-content: center; background: var(--tnp-b); color: #fff !important; border-radius: 7px; font-weight: 600; }
.tnp-btn:hover { background: var(--tnp-b2); }
.tnp-more { display: inline-flex; align-items: center; gap: 9px; color: var(--tnp-b) !important; font-size: 17.5px; font-weight: 600; }
.tnp-more .tnp-ic { font-size: 19px; }

/* ---------- hero ---------- */
.section.tnp-hero { min-height: 587px; align-items: flex-start !important; }
.tnp-hero .section-bg img.bg { object-position: 70% 40%; }
.tnp-hero-in { padding: 64px 0 40px; }
.tnp-h1 { font-size: 63px; line-height: 1.16; font-weight: 700; color: #001e4e !important; margin: 0; letter-spacing: -.02em; }
.tnp-hero-s { font-size: 26px; line-height: 1.4; color: var(--tnp-mut); margin-top: 10px; }
.tnp-ask { font-size: 20px; font-weight: 700; color: var(--tnp-ink); margin-top: 24px; }
.tnp-chips { display: flex; flex-wrap: wrap; gap: 13px; max-width: 600px; margin-top: 12px; }
.tnp-chips a { display: inline-flex; align-items: center; justify-content: center; height: 49px; padding: 0 30px; border: 2px solid #2d7ad0; border-radius: 8px; background: rgba(255, 255, 255, .85); color: #26487a !important; font-size: 18px; }
.tnp-chips a:hover { background: var(--tnp-b); color: #fff !important; }
.tnp-chips a:nth-child(1), .tnp-chips a:nth-child(4) { min-width: 183px; }
.tnp-btns { display: flex; gap: 25px; margin-top: 26px; }
.tnp-btns .tnp-btn { width: 300px; height: 68px; font-size: 24px; }
.tnp-btn-o { display: inline-flex; align-items: center; justify-content: center; width: 252px; height: 68px; border: 2px solid var(--tnp-b); border-radius: 7px; background: #fff; color: var(--tnp-ink) !important; font-size: 22px; font-weight: 600; }
.tnp-btn-o:hover { background: var(--tnp-b); color: #fff !important; }

/* ---------- dải cam kết ---------- */
.section.tnp-bar-sec { padding: 0 !important; }
.tnp-bar { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); height: 102px; align-items: center; }
.tnp-bar > div { display: flex; align-items: center; justify-content: center; gap: 22px; color: #fff; font-size: 21px; }
.tnp-bar > div + div { border-left: 2px solid rgba(255, 255, 255, .65); height: 50px; }
.tnp-bar img { width: 52px; height: 52px; }

/* ---------- dịch vụ ---------- */
.section.tnp-svc-sec { padding: 35px 0 37px !important; }
.tnp-svcs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 25px; margin-top: 26px; }
.tnp-svc { height: 372px; border: 1px solid var(--tnp-line); border-radius: 8px; overflow: hidden; background: #fff; box-shadow: 0 3px 12px rgba(1, 42, 98, .05); }
.tnp-svc-img { display: block; height: 242px; background: #dfe8f2; }
.tnp-svc-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tnp-svc-b { padding: 16px 20px 0 21px; }
.tnp-svc h3 { font-size: 23px; font-weight: 700; margin: 0; line-height: 1.3; }
.tnp-svc h3 a { color: var(--tnp-ink) !important; }
.tnp-svc h3 + div { font-size: 16px; letter-spacing: -.01em; color: var(--tnp-mut); margin-top: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tnp-svc .tnp-more { margin-top: 10px; }

/* ---------- quy trình ---------- */
.section.tnp-proc-sec { padding: 31px 0 30px !important; }
.tnp-tl { position: relative; margin-top: 30px; }
.tnp-tl::before { content: ""; position: absolute; left: 50%; top: 0; bottom: 110px; width: 2px; margin-left: -1px; background: var(--tnp-b); }
.tnp-st { position: relative; width: 578px; }
.tnp-st + .tnp-st { margin-top: -54px; }
.tnp-st-r { margin-left: auto; }
.tnp-no { position: absolute; top: 24px; width: 60px; height: 60px; border-radius: 50%; background: var(--tnp-b); color: #fff; font-size: 24px; font-weight: 700; display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 5px var(--tnp-bg); z-index: 2; }
.tnp-st-l .tnp-no { right: -96px; } .tnp-st-r .tnp-no { left: -96px; }
.tnp-st-c { position: relative; display: flex; align-items: center; gap: 34px; height: 168px; padding: 0 30px 0 22px; background: #fff; border-radius: 8px; box-shadow: 0 4px 16px rgba(1, 42, 98, .06); }
.tnp-st-r .tnp-st-c { padding: 0 22px 0 40px; justify-content: space-between; }
.tnp-st-c::after { content: ""; position: absolute; top: 46px; width: 0; height: 0; border: 12px solid transparent; }
.tnp-st-l .tnp-st-c::after { right: -24px; border-left-color: #fff; }
.tnp-st-r .tnp-st-c::after { left: -24px; border-right-color: #fff; }
.tnp-st-c img { flex: 0 0 151px; width: 151px; height: 151px; border-radius: 50%; object-fit: cover; background: #dfe8f2; box-shadow: 0 0 0 3px #fff, 0 0 0 4px #dbe4ee; }
.tnp-st h3 { font-size: 24.5px; font-weight: 700; color: var(--tnp-ink); margin: 0 0 10px; line-height: 1.25; }
.tnp-st h3 + div { font-size: 17px; line-height: 1.6; color: var(--tnp-mut); }

/* ---------- CTA ---------- */
.tnp-cta { display: flex; align-items: center; justify-content: space-between; height: 137px; }
.tnp-cta-h { font-size: 44.5px; font-weight: 700; color: #fff; line-height: 1.2; letter-spacing: -.01em; }
.tnp-cta-s { font-size: 25px; color: #e5ecf5; margin-top: 2px; }
.tnp-cta-b { display: inline-flex; align-items: center; justify-content: center; width: 375px; height: 80px; border-radius: 7px; background: var(--tnp-y); color: var(--tnp-ink) !important; font-size: 28px; font-weight: 700; }
.tnp-cta-b:hover { background: var(--tnp-y2); }

/* ---------- công trình + bảng giá ---------- */
.section.tnp-pj-sec { padding: 28px 0 0 !important; }
.tnp-pjs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 23px; margin-top: 20px; }
.tnp-pj { display: block; color: var(--tnp-ink) !important; }
.tnp-pj img { width: 100%; height: 212px; object-fit: cover; display: block; border-radius: 6px; background: #dfe8f2; }
.tnp-pj span { display: block; margin-top: 16px; font-size: 18px; font-weight: 600; }
.tnp-price { display: flex; align-items: center; justify-content: space-between; height: 117px; margin-top: 28px; padding: 0 43px; border-radius: 8px; background: #edf1f5; }
.tnp-price h2 { font-size: 44px; font-weight: 700; color: #041844; margin: 0; line-height: 1.2; }
.tnp-price h2 + div { font-size: 20px; color: var(--tnp-mut); }
.tnp-price .tnp-btn { width: 252px; height: 62px; font-size: 22px; }

/* ---------- đánh giá ---------- */
.section.tnp-rev-sec { padding: 29px 0 0 !important; }
.tnp-revs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 25px; margin-top: 20px; }
.tnp-rv { height: 208px; padding: 24px 26px 0; border: 1px solid var(--tnp-line); border-radius: 8px; background: #fff; }
.tnp-rv > .tnp-ic { font-size: 40px; color: var(--tnp-b); }
.tnp-rv-t { font-size: 17px; line-height: 1.6; color: var(--tnp-mut); margin-top: 8px; }
.tnp-rv-a { display: flex; align-items: center; gap: 16px; margin-top: 12px; }
.tnp-rv-a img { width: 70px; height: 70px; border-radius: 50%; object-fit: cover; background: #dfe8f2; }
.tnp-rv-a b { font-size: 18px; font-weight: 700; color: var(--tnp-ink); }

/* ---------- tin tức ---------- */
.section.tnp-po-sec { padding: 29px 0 23px !important; }
.tnp-pos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 25px; margin-top: 19px; }
.tnp-po { height: 281px; border: 1px solid var(--tnp-line); border-radius: 8px; overflow: hidden; background: #fff; }
.tnp-po-img { display: block; height: 193px; background: #dfe8f2; }
.tnp-po-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tnp-po-b { padding: 14px 18px 0 16px; }
.tnp-po h3 { font-size: 21px; font-weight: 700; margin: 0; line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tnp-po h3 a { color: var(--tnp-ink) !important; }
.tnp-po .tnp-more { margin-top: 12px; font-size: 17px; }

/* ---------- footer ---------- */
#footer .section.tnp-footer { padding: 0 !important; border-top: 0 !important; }
.tnp-ft { display: grid; grid-template-columns: minmax(0, 520fr) minmax(0, 406fr) minmax(0, 360fr); padding: 34px 0 22px; }
.tnp-ft-b { display: flex; flex-direction: column; }
.tnp-footer a.tnp-ft-logo { display: inline-flex; align-items: center; gap: 20px; color: #fff !important; }
.tnp-ft-logo img { width: 112px; height: auto; }
.tnp-ft-logo span { font-size: 32px; font-weight: 700; line-height: 1.12; color: #fff; }
.tnp-ft-tag { font-size: 20px; line-height: 1.55; color: #fff; margin-top: 18px; }
.tnp-ft-c { display: flex; flex-direction: column; }
.tnp-ft-c h4 { font-size: 21px; font-weight: 700; color: #fff; margin: 0 0 8px; }
.tnp-ft-c > a, .tnp-ft-c > div { display: flex; align-items: center; gap: 12px; color: rgba(255, 255, 255, .9) !important; font-size: 17px; line-height: 1.66; }
.tnp-ft-c .tnp-ic-chev { font-size: 14px; opacity: .8; }
.tnp-ft-ct > a, .tnp-ft-ct > div { align-items: flex-start; gap: 20px; font-size: 18px; line-height: 1.6; margin-bottom: 4px; }
.tnp-ft-ct .tnp-ic { font-size: 22px; margin-top: 4px; }
.tnp-ft a:hover { color: var(--tnp-y) !important; }
.tnp-fbar { border-top: 1px solid rgba(255, 255, 255, .3); padding: 16px 0 18px; text-align: center; font-size: 15px; color: rgba(255, 255, 255, .85); }

@media (max-width: 849px) {
  #top-bar { display: none; }
  #logo { margin: 0 !important; }
  #header #logo a { height: 50px; padding-left: 66px; background-size: 58px auto; } #header #logo a::before { font-size: 17px; } #header #logo a::after { font-size: 20px; }
  .section.tnp-hero { min-height: 0; padding-top: 250px !important; background-color: #f4f8fc !important; }
  .section.tnp-hero .section-bg { top: 0; bottom: auto; height: 250px; }
  .section.tnp-hero .section-bg img.bg { object-position: 80% 40%; }
  .tnp-hero-in { padding: 22px 0 30px; }
  .tnp-h1 { font-size: 31px; } .tnp-h1 br, .tnp-hero-s br { display: none; } .tnp-hero-s { font-size: 17px; }
  .tnp-ask { font-size: 17px; margin-top: 18px; }
  .tnp-chips { gap: 8px; } .tnp-chips a { height: 40px; padding: 0 14px; font-size: 15px; min-width: 0 !important; }
  .tnp-btns { flex-direction: column; gap: 10px; } .tnp-btns .tnp-btn, .tnp-btn-o { width: 100%; height: 54px; font-size: 19px; }
  .tnp-bar { grid-template-columns: minmax(0, 1fr); height: auto; padding: 14px 0; gap: 10px; }
  .tnp-bar > div { justify-content: flex-start; font-size: 17px; gap: 14px; } .tnp-bar > div + div { border-left: 0; height: auto; } .tnp-bar img { width: 36px; height: 36px; }
  .tnp-h2 { font-size: 25px; } .tnp-sub { font-size: 16px; } .tnp-all { font-size: 15px; }
  .tnp-svcs, .tnp-revs, .tnp-pos { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .tnp-svc, .tnp-rv, .tnp-po { height: auto; padding-bottom: 18px; } .tnp-rv { padding: 20px; }
  .tnp-svc h3 + div, .tnp-po h3 { white-space: normal; }
  .tnp-tl::before { left: 30px; bottom: 60px; }
  .tnp-st { width: auto; padding-left: 74px; } .tnp-st + .tnp-st { margin-top: 18px; }
  .tnp-st-l .tnp-no, .tnp-st-r .tnp-no { left: 0; right: auto; top: 10px; width: 52px; height: 52px; font-size: 19px; }
  .tnp-st-c, .tnp-st-r .tnp-st-c { height: auto; padding: 16px; gap: 14px; justify-content: flex-start; }
  .tnp-st-r .tnp-st-c { flex-direction: row-reverse; }
  .tnp-st-c::after { display: none; } .tnp-st-c img { flex-basis: 72px; width: 72px; height: 72px; }
  .tnp-st h3 { font-size: 18px; margin-bottom: 4px; } .tnp-st h3 + div { font-size: 15px; }
  .tnp-cta { flex-direction: column; align-items: flex-start; height: auto; padding: 26px 0; gap: 16px; }
  .tnp-cta-h { font-size: 26px; } .tnp-cta-s { font-size: 17px; } .tnp-cta-b { width: 100%; height: 58px; font-size: 21px; }
  .tnp-pjs { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; } .tnp-pj img { height: 130px; } .tnp-pj span { font-size: 15px; margin-top: 8px; }
  .tnp-price { flex-direction: column; align-items: flex-start; height: auto; padding: 22px 18px; gap: 14px; } .tnp-price h2 { font-size: 30px; } .tnp-price h2 + div { font-size: 16px; } .tnp-price .tnp-btn { width: 100%; height: 52px; font-size: 18px; }
  .tnp-ft { grid-template-columns: minmax(0, 1fr); gap: 24px; } .tnp-ft-logo span { font-size: 26px; } .tnp-ft-logo img { width: 80px; } .tnp-ft-tag { font-size: 17px; }
  .tnp-ft-ct > a, .tnp-ft-ct > div { font-size: 16px; }
}

/* mid-fix2 */
@media (min-width: 850px) and (max-width: 1199px) {
  #logo { margin-left: 0 !important; }
  #header #logo a { font-size: 0 !important; height: 64px; padding-left: 84px; background-size: 76px auto; } #header #logo a::before { font-size: 22px; } #header #logo a::after { font-size: 26px; }
  #header .header-main .nav > li { margin: 0 9px !important; } #header .header-main .nav > li > a { font-size: 15.5px !important; }
}
/* /mid-fix2 */
/* _midwidth: header Flatsome ở 850-1399px (laptop nhỏ/tablet ngang) — menu dựng theo mockup 1440 tràn phải; dùng chung mọi site */
@media (min-width: 850px) and (max-width: 1399px) {
  #header .header-nav-main > li, #header .header-bottom-nav > li { margin-left: 6px !important; margin-right: 6px !important; }
  #header .header-nav-main > li > a, #header .header-bottom-nav > li > a { font-size: 14px !important; }
  #header .header-search-form { max-width: 300px !important; width: 300px !important; margin-left: 20px !important; }
}
@media (min-width: 850px) and (max-width: 1199px) {
  #logo { width: auto !important; max-width: 210px !important; } #logo a { font-size: 21px !important; }
  #header .header-main .flex-right .header-button-1, #header .header-main .flex-right li.html, #header .header-search-form, #top-bar .flex-right { display: none !important; }
  #header .header-nav-main > li, #header .header-bottom-nav > li { margin-left: 3px !important; margin-right: 3px !important; }
  #header .header-nav-main > li > a, #header .header-bottom-nav > li > a { font-size: 13px !important; }
  #header .flex-col { min-width: 0; } #header .header-inner, #header .header-bottom .container { overflow: hidden; }
}
.col-inner a[href^="mailto"], .col-inner a[href^="tel"] { overflow-wrap: anywhere; }
