/* Website riêng của nha khoa Super VIP (pages/n-site.ejs). Màu: --c (chính) --cs (nền nhạt) --ink. Bố cục theo mẫu: body.lay-clean|split|friendly|modern|lux|elegant */
*{box-sizing:border-box}
.nsite{--r:14px;--hf:'Be Vietnam Pro',system-ui,sans-serif;--bg:#fff;--alt:#f6f8fa;--tx:#475467;--line:#e6eaef;margin:0;font-family:'Be Vietnam Pro',system-ui,sans-serif;color:var(--ink);background:var(--bg);line-height:1.6;-webkit-text-size-adjust:100%}
.nsite a{color:inherit;text-decoration:none}
.nsite img{max-width:100%;display:block}
.nsite h1,.nsite h2,.nsite h3{font-family:var(--hf)}
.nw{max-width:1120px;margin:0 auto;padding:0 20px}
html{scroll-behavior:smooth;scroll-padding-top:76px}

/* ---- thanh nhỏ trên cùng + đầu trang */
.ntop{background:var(--ink);color:#d7dde6;font-size:13px}
.ntop .nw{display:flex;gap:22px;align-items:center;min-height:34px;flex-wrap:wrap}
.ntop i{color:var(--c);margin-right:6px}
.ntop a:hover{color:#fff}
.ntop .nw>span:last-child{margin-left:auto}
.nh{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nh .nw{display:flex;align-items:center;gap:16px;height:64px}
.nbrand{display:flex;align-items:center;gap:10px;min-width:0}
.nbrand b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}
.nlg{width:40px;height:40px;border-radius:50%;background:var(--c);color:#fff;display:grid;place-items:center;font-weight:800;font-size:14px;flex:none}
.nlg.img{object-fit:cover;background:#fff;border:1px solid var(--line)}
.nh nav{display:flex;gap:2px;margin-left:auto}
.nh nav a{padding:8px 11px;border-radius:9px;font-size:13px;font-weight:600;color:#475467}
.nh nav a:hover{background:var(--cs);color:var(--c)}
.nbtn{display:inline-flex;align-items:center;gap:7px;height:40px;padding:0 18px;border-radius:11px;background:var(--c);color:#fff!important;font-weight:700;font-size:14px;border:0;cursor:pointer;font-family:inherit;box-shadow:0 6px 16px -8px var(--c)}
.nbtn:hover{filter:brightness(.93)}
.nbtn.big{height:48px;padding:0 24px;font-size:15px}
.nbtn.ghost{background:transparent;color:var(--c)!important;border:1.5px solid var(--c);box-shadow:none}

/* ---- hero + banner */
.nhero{position:relative;padding:48px 0 44px;background:linear-gradient(135deg,var(--cs),#fff 72%);overflow:hidden}
.nhero-in{display:grid;grid-template-columns:1.05fr .95fr;gap:36px;align-items:center}
.nhero-tx{position:relative;z-index:2;min-width:0}
.ntag{display:inline-block;background:#fff4d6;color:#8a5a00;font-size:12px;font-weight:700;padding:3px 10px;border-radius:99px;margin-bottom:10px}
.nkick{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:var(--c);background:#fff;border:1px solid var(--line);padding:4px 11px;border-radius:99px;margin-bottom:12px}
.nhero h1{font-size:42px;line-height:1.12;margin:0 0 14px;letter-spacing:-1px}
.nhero p{font-size:17px;color:var(--tx);margin:0 0 22px;max-width:560px}
.nacts{display:flex;gap:10px;flex-wrap:wrap}
.nfacts{list-style:none;padding:0;margin:22px 0 0;display:grid;gap:7px;font-size:14px;color:var(--tx)}
.nfacts i{color:var(--c);margin-right:7px}
.nbanner{position:relative;min-height:340px;border-radius:24px;background-size:cover;background-position:center;overflow:hidden;box-shadow:0 30px 60px -30px rgba(16,35,31,.45)}
.nbanner.design{background:linear-gradient(145deg,var(--c) 0%,color-mix(in srgb,var(--c) 62%,#000) 100%)}
.nbanner .bdots{position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.22) 1.5px,transparent 1.6px);background-size:22px 22px;opacity:.7}
.nbanner .bring{position:absolute;border:2px solid rgba(255,255,255,.28);border-radius:50%}
.nbanner .r1{width:300px;height:300px;right:-90px;top:-70px}
.nbanner .r2{width:190px;height:190px;left:-50px;bottom:-60px;border-style:dashed}
.nbanner .bmain{position:absolute;inset:0;display:grid;place-items:center;font-size:150px;color:rgba(255,255,255,.95);filter:drop-shadow(0 14px 24px rgba(0,0,0,.25))}
.nbanner .bchip{position:absolute;display:inline-flex;gap:6px;align-items:center;background:#fff;color:var(--ink);font-size:13px;font-weight:700;padding:7px 12px;border-radius:99px;box-shadow:0 10px 24px -10px rgba(0,0,0,.4)}
.nbanner .bchip i{color:var(--c);font-size:16px}
.nbanner .c1{left:18px;top:28px}.nbanner .c2{right:18px;top:46%}.nbanner .c3{left:30px;bottom:26px}
.nsup{display:inline-block;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--c);margin-bottom:6px}
.nsup.lt{color:#fff;opacity:.85}

/* ---- số liệu */
.nstats{background:var(--ink);color:#fff}
.nstats .nw{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.nst{display:grid;justify-items:center;text-align:center;gap:2px;padding:22px 8px}
.nst i{font-size:24px;color:var(--c);margin-bottom:2px}
.nst b{font-size:30px;font-weight:800;letter-spacing:-.5px;line-height:1.1}
.nst span{font-size:13px;opacity:.8}

/* ---- khối nội dung */
.nsec{padding:56px 0}
.nsec.alt{background:var(--alt)}
.nsec h2{font-size:30px;margin:0 0 22px;letter-spacing:-.6px;line-height:1.2}
.nabout2{display:grid;grid-template-columns:.8fr 1.2fr;gap:36px;align-items:start}
.nabout2 h2{margin:0}
.nabout p{margin:0 0 14px;font-size:16px;color:var(--tx)}
.nwhy{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.nw1{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:22px 20px}
.nw1>span{width:48px;height:48px;border-radius:14px;background:var(--cs);color:var(--c);display:grid;place-items:center;font-size:25px;margin-bottom:12px}
.nw1 b{display:block;font-size:16px;margin-bottom:4px}
.nw1 p{margin:0;font-size:14px;color:var(--tx)}
.nsvc{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.nsv{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:14px;transition:transform .15s,box-shadow .15s,border-color .15s}
.nsv:hover{transform:translateY(-2px);border-color:var(--c);box-shadow:0 14px 30px -18px var(--c)}
.nsv>i{font-size:26px;color:var(--c);background:var(--cs);border-radius:12px;padding:9px;flex:none}
.nsv>div{min-width:0;flex:1}
.nsv b{display:block;font-size:14px}
.nsv small{color:#667085;font-size:13px}
.nsv .ngo{color:var(--c);font-style:normal;opacity:0;transition:opacity .15s}
.nsv:hover .ngo{opacity:1}
.nnote{font-size:13px;color:#667085;margin:14px 0 0}
.ndocs{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.ndoc{text-align:center;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:22px 12px}
.nav{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;margin:0 auto 10px;background:var(--cs);color:var(--c);font-weight:800;font-size:18px}
.ndoc b{display:block;font-size:15px}
.ndoc small{color:#667085;font-size:13px}
.ngal{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:170px;gap:10px}
.ngal a{border-radius:var(--r);overflow:hidden;background:var(--cs)}
.ngal a.g0{grid-column:span 2;grid-row:span 2}
.ngal img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.ngal a:hover img{transform:scale(1.05)}
.nrev-sum{display:flex;gap:12px;align-items:center;margin:-8px 0 18px;flex-wrap:wrap}
.nrev-sum b{font-size:38px;font-weight:800;letter-spacing:-1px}
.nstars{display:inline-flex;gap:2px;color:#f5a623}
.nstars .off{color:#d0d5dd}
.nstars.sm{margin-left:auto;font-size:14px}
.nrev-sum small{color:#667085}
.nrevs{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.nrev{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:18px}
.nrev .rh{display:flex;gap:10px;align-items:center;margin-bottom:8px}
.nrev .nav{width:40px;height:40px;margin:0;font-size:14px}
.nrev b{display:block;font-size:14px}
.nrev small{color:#667085;font-size:12px}
.nrev p{margin:0;font-size:14px;color:var(--tx)}
.noffs{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.noff{display:grid;gap:4px;padding:20px;border-radius:var(--r);background:linear-gradient(135deg,var(--cs),#fff);border:1.5px dashed var(--c)}
.noff b{font-size:26px;color:var(--c);letter-spacing:-.5px}
.noff span{font-weight:600}
.noff small{color:#667085}
.nfaqw{display:grid;grid-template-columns:.8fr 1.2fr;gap:36px;align-items:start}
.nfaqw h2{margin-bottom:0}
.nfaq{display:grid;gap:10px}
.nfaq details{background:#fff;border:1px solid var(--line);border-radius:12px;padding:0 18px}
.nfaq summary{cursor:pointer;font-weight:700;padding:15px 0;list-style:none;display:flex;justify-content:space-between;gap:10px}
.nfaq summary::after{content:"+";color:var(--c);font-size:22px;line-height:1}
.nfaq details[open] summary::after{content:"–"}
.nfaq p{margin:0 0 16px;color:var(--tx);font-size:15px}

/* ---- đặt hẹn */
.nsec.book{background:linear-gradient(135deg,var(--c),color-mix(in srgb,var(--c) 62%,#000));color:#fff}
.nsec.book h2{color:#fff}
.nbook{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.nbook p{margin:0 0 14px;opacity:.92;font-size:16px}
.nbul{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:14px}
.nbul i{margin-right:7px}
.nform{display:grid;gap:12px;background:#fff;color:var(--ink);padding:24px;border-radius:20px;box-shadow:0 30px 60px -30px rgba(0,0,0,.5)}
.nform label{display:grid;gap:5px;font-size:13px;font-weight:700;color:#475467}
.nform input,.nform select{height:44px;border:1px solid #d0d5dd;border-radius:11px;padding:0 12px;font:inherit;font-size:14px;color:var(--ink);background:#fff}
.nform input:focus,.nform select:focus{outline:0;border-color:var(--c);box-shadow:0 0 0 3px var(--cs)}
.n2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.nform .nbtn{justify-content:center}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.nerr{display:flex;gap:7px;background:#fdecee;color:#a1202e;border-radius:10px;padding:9px 12px;font-size:13px}
.nok{display:flex;gap:12px;align-items:center;background:#fff;color:var(--ink);padding:24px;border-radius:20px}
.nok i{font-size:38px;color:var(--c)}
.nok b{display:block;font-size:18px}
.nok span{color:#475467}

/* ---- liên hệ + bản đồ */
.ncon{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:stretch}
.nbr{display:grid;gap:12px}
.nb{display:grid;gap:5px;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:18px}
.nb b{font-size:16px}
.nb span{display:flex;gap:8px;font-size:14px;color:var(--tx)}
.nb span i{color:var(--c);margin-top:4px}
.nmaplink{display:inline-flex;gap:6px;align-items:center;margin-top:4px;font-weight:700;font-size:13px;color:var(--c)}
.nhours{width:100%;margin-top:14px;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;font-size:14px}
.nhours caption{text-align:left;font-weight:800;padding:0 0 8px}
.nhours td{padding:10px 14px;border-top:1px solid var(--line)}
.nhours td:last-child{text-align:right}
.nmap{min-height:320px;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);background:var(--cs)}
.nmap iframe{width:100%;height:100%;min-height:340px;border:0;display:block}
.nmapph{display:grid;place-items:center;gap:8px;height:100%;min-height:320px;color:var(--c);font-weight:700;text-align:center}
.nmapph i{font-size:54px}

/* ---- chân trang chuyên nghiệp */
.nf{background:var(--ink);color:#c9d1dc;margin-top:0}
.nfg{display:grid;grid-template-columns:1.5fr .8fr 1.2fr 1fr;gap:30px;padding-top:48px;padding-bottom:34px}
.nf h4{margin:0 0 14px;color:#fff;font-size:13px;letter-spacing:.12em;text-transform:uppercase}
.nf .nbrand b{color:#fff}
.nf1 p{font-size:14px;line-height:1.7;margin:14px 0}
.nsoc{display:flex;gap:8px}
.nsoc a{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.1);color:#fff;font-size:18px}
.nsoc a:hover{background:var(--c)}
.nf2,.nf3,.nf4{display:grid;align-content:start;gap:9px;font-size:14px}
.nf2 a:hover,.nf3 a:hover{color:#fff}
.nf3 span{display:flex;gap:9px}
.nf3 i{color:var(--c);margin-top:4px}
.nf4 .hr{display:flex;justify-content:space-between;gap:10px;border-bottom:1px dashed rgba(255,255,255,.14);padding-bottom:7px}
.nf4 .hr em{font-style:normal;opacity:.8}
.nf4 .hr b{color:#fff}
.nf4 .nbtn{margin-top:8px;justify-content:center}
.nfb{border-top:1px solid rgba(255,255,255,.12);background:rgba(0,0,0,.18)}
.nfb .nw{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:16px;padding-bottom:16px;font-size:13px}
.nfb a{color:var(--c)}
.ncall{position:fixed;right:16px;bottom:16px;width:54px;height:54px;border-radius:50%;background:var(--c);color:#fff;display:grid;place-items:center;font-size:25px;box-shadow:0 10px 26px -6px rgba(0,0,0,.4);z-index:40}

/* ====== BỐ CỤC THEO MẪU ====== */
/* tin cậy (split): banner chiếm nửa phải, sát mép */
.lay-split .nhero{padding:0;background:#fff}
.lay-split .nhero-in{grid-template-columns:1fr 1fr;gap:0;max-width:none;padding:0}
.lay-split .nhero-tx{padding:64px 36px 64px max(20px,calc((100vw - 1120px)/2 + 20px))}
.lay-split .nbanner{border-radius:0;min-height:520px;height:100%;box-shadow:none}
.lay-split .nkick{background:var(--cs);border-color:transparent}
.lay-split .nst b{color:#fff}
/* thân thiện (friendly): bo tròn lớn, blob */
.lay-friendly{--r:22px}
.lay-friendly .nhero{background:var(--cs)}
.lay-friendly .nhero::before{content:"";position:absolute;right:-120px;top:-120px;width:420px;height:420px;border-radius:50%;background:var(--c);opacity:.12}
.lay-friendly .nbanner{border-radius:42% 58% 55% 45%/48% 42% 58% 52%;min-height:360px}
.lay-friendly .nbtn{border-radius:99px}
.lay-friendly .nsv,.lay-friendly .nw1,.lay-friendly .ndoc,.lay-friendly .nrev,.lay-friendly .nb{border-width:2px}
/* hiện đại (modern): banner phủ toàn chiều rộng, chữ trắng */
.lay-modern .nhero{padding:0;background:var(--ink);color:#fff}
.lay-modern .nhero-in{display:block;max-width:none;padding:0;position:relative;min-height:540px}
.lay-modern .nbanner{position:absolute;inset:0;border-radius:0;min-height:0;box-shadow:none}
.lay-modern .nbanner::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,10,35,.86) 0%,rgba(15,10,35,.55) 55%,rgba(15,10,35,.15) 100%)}
.lay-modern .nbanner.design .bmain{justify-content:end;padding-right:12%;font-size:230px;opacity:.5}
.lay-modern .nhero-tx{position:relative;z-index:3;max-width:1120px;margin:0 auto;padding:110px 20px 100px}
.lay-modern .nhero h1,.lay-modern .nhero p,.lay-modern .nfacts{color:#fff;max-width:640px}
.lay-modern .nhero p{opacity:.9}
.lay-modern .nfacts{opacity:.9}
.lay-modern .nkick{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.25);color:#fff}
.lay-modern .nbtn.ghost{color:#fff!important;border-color:#fff}
/* cao cấp (lux): nền tối, vàng */
.lay-lux{--bg:#0f0d08;--alt:#17140c;--tx:#b9b3a3;--line:#2a2518;color:#efe9d8}
.lay-lux .nh{background:rgba(15,13,8,.92);border-color:#2a2518}
.lay-lux .nh nav a{color:#cfc8b5}
.lay-lux .nh nav a:hover{background:#221d10;color:var(--c)}
.lay-lux .nbrand b,.lay-lux .nsec h2,.lay-lux .nw1 b,.lay-lux .ndoc b,.lay-lux .nsv b,.lay-lux .nrev b,.lay-lux .nb b{color:#f6f0dc}
.lay-lux .nhero{background:radial-gradient(circle at 80% 20%,#2a2312,#0f0d08 65%)}
.lay-lux .nhero h1{color:#f6f0dc}
.lay-lux .nhero p,.lay-lux .nfacts{color:#b9b3a3}
.lay-lux .nkick{background:#17140c;border-color:#2a2518;color:var(--c)}
.lay-lux .nsv,.lay-lux .nw1,.lay-lux .ndoc,.lay-lux .nrev,.lay-lux .nb,.lay-lux .nfaq details,.lay-lux .nhours{background:#17140c;border-color:#2a2518}
.lay-lux .nsv small,.lay-lux .nnote,.lay-lux .nrev small,.lay-lux .ndoc small{color:#8d8776}
.lay-lux .nbtn{color:#14110a!important}
.lay-lux .nbtn.ghost{color:var(--c)!important}
.lay-lux .nstats{background:#17140c;border-top:1px solid #2a2518;border-bottom:1px solid #2a2518}
.lay-lux .nsec.book{background:linear-gradient(135deg,#2a2312,#0f0d08)}
.lay-lux .nform{background:#17140c;color:#efe9d8}
.lay-lux .nform label{color:#cfc8b5}
.lay-lux .nform input,.lay-lux .nform select{background:#0f0d08;border-color:#2f2a1b;color:#f6f0dc}
.lay-lux .nf{background:#080703}
.lay-lux .nbanner.design{background:linear-gradient(145deg,#3a3016,#0f0d08)}
.lay-lux .nbanner .bchip{background:#17140c;color:#f6f0dc}
.lay-lux .nok{background:#17140c;color:#f6f0dc}
.lay-lux .nmap{background:#17140c;border-color:#2a2518}
/* tinh tế (elegant): chữ có chân, kem, cổng vòm */
.lay-elegant{--hf:'Lora',Georgia,serif;--bg:#fbf8f2;--alt:#f3eee3;--r:6px;--line:#e5ddcc}
.lay-elegant .nh{background:rgba(251,248,242,.95)}
.lay-elegant h1,.lay-elegant h2{font-weight:600;letter-spacing:-.3px}
.lay-elegant .nhero{background:var(--bg)}
.lay-elegant .nbanner{border-radius:240px 240px 14px 14px;min-height:420px}
.lay-elegant .nbtn{border-radius:4px;letter-spacing:.02em}
.lay-elegant .nkick{background:transparent;border-color:var(--c)}
.lay-elegant .nsup{letter-spacing:.2em}
.lay-elegant .nsec.book{background:var(--c)}
.lay-elegant .nw1>span,.lay-elegant .nsv>i{border-radius:50%}

/* ---- điện thoại */
@media (max-width:900px){
  .nh nav{display:none}.nh .nbtn{margin-left:auto}
  .ntop .hm{display:none}
  .nhero-in,.nabout2,.nfaqw,.nbook,.ncon{grid-template-columns:1fr;gap:22px}
  .nhero h1{font-size:32px}
  .nbanner{min-height:260px}
  .nbanner .bmain{font-size:110px}
  .nwhy,.nsvc,.noffs,.nrevs{grid-template-columns:1fr}
  .ndocs{grid-template-columns:repeat(2,1fr)}
  .ngal{grid-template-columns:repeat(2,1fr);grid-auto-rows:140px}
  .nfg{grid-template-columns:1fr 1fr}
  .lay-split .nhero-in{grid-template-columns:1fr}
  .lay-split .nhero-tx{padding:40px 20px}
  .lay-split .nbanner{min-height:260px;height:auto}
  .lay-modern .nhero-in{min-height:0}
  .lay-modern .nhero-tx{padding:70px 20px 60px}
  .lay-modern .nbanner.design .bmain{justify-content:center;padding:0;font-size:150px}
  .lay-elegant .nbanner{border-radius:140px 140px 12px 12px}
}
@media (max-width:560px){.nfg{grid-template-columns:1fr}.n2{grid-template-columns:1fr}.nsec{padding:40px 0}.nsec h2{font-size:25px}}
.nbanner .bchip{z-index:3}
.nbtn{white-space:nowrap}
/* T2-010: mẫu "Hiện đại" (tím): banner phủ nền sau chữ nên 3 nhãn nổi (Minh bạch giá / Vô trùng / Đặt hẹn không chờ) đè lên tiêu đề, địa chỉ trên điện thoại → ẩn nhãn nổi ở khổ nhỏ */
@media (max-width:760px){.lay-modern .nbanner .bchip{display:none}}
/* T2-011: mẫu "Thân thiện" (cam): banner hình oval cắt mất góc nhãn nổi ("…h bạch giá", "…hẹn không chờ") → dời nhãn vào trong */
.lay-friendly .nbanner .c1{left:15%;top:17%}.lay-friendly .nbanner .c2{right:9%}.lay-friendly .nbanner .c3{left:15%;bottom:15%}
