/* ============================================
   临沂壹颗芽口腔医院 - 公共样式
   ============================================ */

:root{
  --blue:#1677FF;--blue-dark:#0E5CC9;--blue-light:#E8F1FF;--blue-bg:#F0F6FF;
  --orange:#FF7D34;--orange-dark:#E5661E;
  --white:#FFF;--bg-gray:#F8F9FA;--text-dark:#0A1628;--text-mid:#4A5568;--text-light:#6B7280;
  --border-light:#E8ECF0;
  --shadow-sm:0 2px 8px rgba(22,119,255,0.08);--shadow-md:0 8px 24px rgba(22,119,255,0.10);--shadow-lg:0 16px 48px rgba(22,119,255,0.12);
  --radius-sm:8px;--radius-md:12px;--radius-lg:20px;
  --font-cn:'Noto Sans SC','Source Han Sans SC',sans-serif;--font-en:'DM Sans',sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--font-cn);color:var(--text-dark);background:var(--white);line-height:1.6;-webkit-font-smoothing:antialiased}
.container{max-width:1200px;margin:0 auto;padding:0 20px}

/* ===== 导航栏 ===== */
.topnav{position:fixed;top:0;left:0;right:0;z-index:1000;background:rgba(255,255,255,0.97);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-light);transition:box-shadow .3s}
.topnav.scrolled{box-shadow:0 2px 20px rgba(10,22,40,0.08)}
.topnav-inner{display:flex;align-items:center;justify-content:space-between;height:72px;max-width:1200px;margin:0 auto;padding:0 20px}
.topnav-logo{display:flex;align-items:center;gap:10px;text-decoration:none}
.logo-icon{width:42px;height:42px;background:var(--blue);border-radius:10px;display:flex;align-items:center;justify-content:center;font-family:var(--font-en);font-weight:700;font-size:18px;color:#fff;letter-spacing:-1px;flex-shrink:0}
.logo-text{display:flex;flex-direction:column}
.logo-name{font-size:20px;font-weight:700;color:var(--text-dark);line-height:1.2}
.logo-sub{font-size:11px;color:var(--text-light);letter-spacing:.5px}
.topnav-menu{display:flex;gap:32px;list-style:none}
.topnav-menu a{text-decoration:none;color:var(--text-mid);font-size:15px;font-weight:500;transition:color .2s;position:relative;padding:4px 0}
.topnav-menu a:hover,.topnav-menu a.active{color:var(--blue)}
.topnav-menu a::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:2px;background:var(--blue);transition:width .3s;border-radius:1px}
.topnav-menu a:hover::after,.topnav-menu a.active::after{width:100%}
.topnav-actions{display:flex;align-items:center;gap:16px;flex-shrink:0}
.topnav-phone{display:flex;align-items:center;gap:6px;color:#E53935;font-weight:700;font-size:16px;text-decoration:none;white-space:nowrap}
.topnav-phone i{font-size:14px}
.btn-appoint{display:inline-flex;align-items:center;gap:6px;background:var(--orange);color:#fff;border:none;padding:10px 22px;border-radius:50px;font-size:14px;font-weight:600;cursor:pointer;text-decoration:none;transition:all .3s;font-family:var(--font-cn);white-space:nowrap}
.btn-appoint:hover{background:var(--orange-dark);transform:translateY(-1px);box-shadow:0 4px 12px rgba(255,125,52,0.35)}
.btn-wechat{width:36px;height:36px;border-radius:50%;border:1px solid var(--border-light);display:flex;align-items:center;justify-content:center;color:#07C160;cursor:pointer;transition:all .2s;text-decoration:none;font-size:18px}
.btn-wechat:hover{background:#07C160;color:#fff;border-color:#07C160}
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:4px}
.hamburger span{width:24px;height:2.5px;background:var(--text-dark);border-radius:2px;transition:all .3s}

/* ===== 页面顶部 Banner ===== */
.page-banner{background:linear-gradient(135deg,#0A1628 0%,#1A2A4A 50%,#0A1628 100%);padding:140px 0 80px;text-align:center;position:relative;overflow:hidden}
.page-banner .bg{position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,0.03) 1px,transparent 1px);background-size:30px 30px}
.page-banner .bg::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 30% 50%,rgba(22,119,255,0.12) 0%,transparent 60%),radial-gradient(ellipse at 70% 50%,rgba(255,125,52,0.08) 0%,transparent 60%)}
.page-banner h1{font-size:42px;font-weight:900;color:#fff;position:relative;z-index:1;margin-bottom:12px;letter-spacing:-.5px}
.page-banner .hl{color:#4A9AFF}
.page-banner p{font-size:17px;color:rgba(255,255,255,0.6);position:relative;z-index:1}
.page-banner .icon-bg{position:absolute;font-size:200px;color:rgba(255,255,255,0.03);z-index:0;bottom:-40px;right:5%}

/* ===== 通用标题区 ===== */
.section-title{text-align:center;margin-bottom:50px}
.section-title .sub{display:inline-block;background:var(--blue-light);color:var(--blue);padding:4px 14px;border-radius:50px;font-size:13px;font-weight:600;margin-bottom:12px}
.section-title h2{font-size:36px;font-weight:700;color:var(--text-dark);margin-bottom:12px;letter-spacing:-.3px}
.section-title p{font-size:16px;color:var(--text-light);max-width:560px;margin:0 auto}

/* ===== CTA 号召 ===== */
.cta-bar{background:linear-gradient(135deg,var(--blue) 0%,var(--blue-dark) 100%);padding:50px 0;text-align:center}
.cta-bar h3{font-size:28px;color:#fff;font-weight:700;margin-bottom:10px}
.cta-bar p{color:rgba(255,255,255,0.75);font-size:16px;margin-bottom:24px}
.cta-btn{display:inline-flex;align-items:center;gap:8px;background:var(--orange);color:#fff;padding:14px 36px;border-radius:50px;font-size:15px;font-weight:600;text-decoration:none;transition:all .3s;font-family:var(--font-cn)}
.cta-btn:hover{background:var(--orange-dark);transform:translateY(-2px);box-shadow:0 8px 24px rgba(255,125,52,0.4)}

/* ===== 页脚 ===== */
.footer{background:var(--text-dark);color:rgba(255,255,255,0.6);padding:60px 0 0}
.footer-g{display:grid;grid-template-columns:1.5fr 1fr 1.2fr;gap:40px;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,0.08)}
.footer-brand{margin-bottom:16px}
.footer-brand .fl{display:flex;align-items:center;gap:8px;margin-bottom:16px}
.footer-brand .fl .ic{width:36px;height:36px;background:var(--blue);border-radius:8px;display:flex;align-items:center;justify-content:center;font-family:var(--font-en);font-weight:700;font-size:16px;color:#fff}
.footer-brand .fl .nm{font-size:17px;font-weight:700;color:#fff}
.footer-brand p{font-size:13px;line-height:1.7;margin-bottom:16px}
.footer-qr{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,0.06);padding:8px 16px;border-radius:var(--radius-sm);font-size:13px;color:rgba(255,255,255,0.7);cursor:pointer}
.footer-links h5,.footer-cert h5{color:#fff;font-size:15px;font-weight:600;margin-bottom:16px}
.footer-links a{display:block;color:rgba(255,255,255,0.5);text-decoration:none;font-size:14px;padding:4px 0;transition:color .2s}
.footer-links a:hover{color:#fff}
.cert-b{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,0.06);padding:6px 12px;border-radius:6px;font-size:12px;color:rgba(255,255,255,0.7);margin-bottom:10px}
.cert-n{font-size:12px;color:rgba(255,255,255,0.4);line-height:1.6}
.social{display:flex;gap:10px;margin-top:16px}
.social a{width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,0.15);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,0.5);transition:all .3s;text-decoration:none}
.social a:hover{background:var(--blue);border-color:var(--blue);color:#fff}
.footer-btm{padding:20px 0;text-align:center;font-size:12px;color:rgba(255,255,255,0.3)}

/* ===== 回顶按钮 ===== */
.back-top{position:fixed;bottom:30px;right:30px;z-index:999;width:44px;height:44px;border-radius:50%;background:var(--blue);color:#fff;border:none;cursor:pointer;font-size:16px;opacity:0;visibility:hidden;transition:all .3s;box-shadow:0 4px 12px rgba(22,119,255,0.3);display:flex;align-items:center;justify-content:center}
.back-top.show{opacity:1;visibility:visible}
.back-top:hover{background:var(--blue-dark);transform:translateY(-2px)}

/* ===== 公共 JS ===== */
.js-common{display:none}

/* ===== 响应式 - 平板 ===== */
@media(max-width:1024px){
  .topnav-menu{gap:20px}
  .page-banner h1{font-size:34px}
}

/* ===== 响应式 - 手机 ===== */
@media(max-width:768px){
  .container{padding:0 16px}
  .hamburger{display:flex}
  .topnav-menu{position:fixed;top:72px;left:0;right:0;bottom:0;background:rgba(255,255,255,0.98);flex-direction:column;padding:20px;gap:0;transform:translateX(100%);transition:transform .3s}
  .topnav-menu.open{transform:translateX(0)}
  .topnav-menu a{padding:16px 0;font-size:16px;border-bottom:1px solid var(--border-light)}
  .topnav-actions .btn-appoint{padding:8px 16px;font-size:13px}
  .topnav-phone span{display:none}
  .page-banner{padding:110px 0 50px}
  .page-banner h1{font-size:28px}
  .page-banner p{font-size:14px}
  .section-title h2{font-size:26px}
  .footer-g{grid-template-columns:1fr;gap:30px}
  .back-top{bottom:20px;right:20px;width:40px;height:40px}
}
