/* ============================================================
   艾維斯萬能事務所 — 企業官網
   Design tokens：延續 ELVIS-CORP 內部系統的 paper/ink 基礎，
   對外版加深主色飽和度，強化品牌張力。
   ============================================================ */

:root{
  /* base */
  --paper:#F5F7FA;
  --paper-deep:#EEF1F7;
  --card:#FFFFFF;
  --ink:#0F172A;
  --ink-soft:#475467;
  --ink-faint:#94A3B8;
  --line:#E2E8F0;
  --line-strong:#CBD5E1;

  /* brand — 呼應 Logo 的靛藍→紫漸層，對外版加深一階 */
  --indigo:#3730A3;
  --violet:#2563EB;
  --purple:#7C3AED;
  --brand-grad: linear-gradient(135deg, var(--violet) 0%, #4F46E5 50%, var(--purple) 100%);
  --brand-grad-soft: linear-gradient(135deg, rgba(37,99,235,0.08), rgba(124,58,237,0.08));

  --radius-lg:22px;
  --radius-md:16px;
  --radius-sm:10px;
  --shadow-sm: 0 1px 2px rgba(15,23,42,0.04), 0 6px 16px -8px rgba(15,23,42,0.10);
  --shadow-lg: 0 4px 12px rgba(15,23,42,0.06), 0 24px 48px -20px rgba(55,48,163,0.22);

  --line-ok:#16A34A;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Noto Sans TC","Space Grotesk",-apple-system,sans-serif;
  -webkit-font-smoothing:antialiased;
  line-height:1.6;
}
h1,h2,h3,h4{
  font-family:"Noto Serif TC","Noto Sans TC",serif;
  font-weight:700;
  margin:0;
  letter-spacing:0.01em;
  color:var(--ink);
}
p{margin:0;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
ul{margin:0; padding:0; list-style:none;}
button{font-family:inherit;}
:focus-visible{outline:2px solid var(--violet); outline-offset:3px; border-radius:4px;}

.num,.eyebrow,.tag,.brand-en,.stat b,.btn,.pill{
  font-family:"Space Grotesk","Noto Sans TC",sans-serif;
}

.wrap{max-width:1180px; margin:0 auto; padding:0 24px;}
@media (max-width:640px){ .wrap{padding:0 18px;} }

/* ---------- eyebrow / section label ---------- */
.eyebrow{
  font-size:12px; font-weight:600; letter-spacing:0.18em; text-transform:uppercase;
  color:var(--violet); display:inline-flex; align-items:center; gap:10px; margin-bottom:16px;
}
.eyebrow::before{content:""; width:18px; height:2px; background:var(--brand-grad); display:inline-block; border-radius:2px;}

/* ---------- Header ---------- */
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(245,247,250,0.88);
  backdrop-filter:blur(12px) saturate(1.2);
  border-bottom:1px solid var(--line);
}
.site-header .wrap{
  height:76px; display:flex; align-items:center; gap:14px;
}
.site-header .logo-mark{height:44px; width:44px; object-fit:contain; flex-shrink:0;}
.brand-link{display:flex; align-items:center; gap:14px; text-decoration:none; color:inherit; transition:opacity .15s ease;}
.brand-link:hover{opacity:0.8;}
.brand-block{display:flex; flex-direction:column; line-height:1.2;}
.brand-name{font-family:"Noto Serif TC",serif; font-weight:700; font-size:16px; letter-spacing:0.02em;}
.brand-en{font-size:9px; letter-spacing:0.16em; color:var(--ink-faint); text-transform:uppercase;}

.main-nav{margin-left:auto; display:flex; align-items:center; gap:2px;}
.main-nav a{
  font-size:14px; font-weight:600; color:var(--ink-soft);
  padding:9px 16px; border-radius:999px; transition:background .15s ease, color .15s ease;
}
.main-nav a:hover{color:var(--indigo); background:rgba(37,99,235,0.08);}
.main-nav a.active{color:var(--indigo); background:rgba(37,99,235,0.10);}
.nav-cta{
  margin-left:8px; padding:10px 20px !important; border-radius:999px;
  background:var(--brand-grad) !important; color:#fff !important;
  box-shadow:0 6px 16px -6px rgba(55,48,163,0.5);
}
.nav-cta:hover{color:#fff !important; opacity:0.92; background:var(--brand-grad) !important;}

.nav-toggle{display:none; margin-left:auto; background:none; border:none; padding:8px; cursor:pointer;}
.nav-toggle svg{width:24px; height:24px; color:var(--ink);}

@media (max-width:860px){
  .main-nav{
    display:none;
  }
  .main-nav.is-open{
    /* 展開時由 JS 移到 <body> 直接下層再顯示，脫離 .site-header 的
       backdrop-filter containing block，fixed 定位才會正確以整個視窗為基準，
       不會再被侷限、壓扁或跑位到 header 範圍內 */
    display:flex; position:fixed; inset:0; top:64px; z-index:9999;
    background:var(--paper); flex-direction:column; align-items:stretch;
    padding:20px; gap:6px; overflow-y:auto;
    box-shadow:0 16px 32px -12px rgba(15,23,42,0.18);
    animation:navFadeIn .2s ease;
  }
  @keyframes navFadeIn{
    from{opacity:0; transform:translateY(-8px);}
    to{opacity:1; transform:translateY(0);}
  }
  @media (prefers-reduced-motion: reduce){
    .main-nav.is-open{animation:none;}
  }
  .main-nav a{font-size:17px; padding:14px 16px; border-radius:12px; text-align:center;}
  .nav-cta{order:99; margin-top:12px; margin-left:0 !important; text-align:center;}
  .nav-toggle{display:block; position:relative; z-index:160;}
  .site-header .wrap{height:64px;}
  .site-header .logo-mark{height:36px; width:36px;}
}
/* 選單展開時鎖定背景捲動，避免背景內容跟著滑動造成錯位觀感 */
body.nav-open-lock{overflow:hidden;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:8px;
  font-size:14.5px; font-weight:700; padding:13px 26px; border-radius:999px;
  border:1px solid transparent; cursor:pointer; transition:transform .15s ease, box-shadow .15s ease, opacity .15s ease;
  white-space:nowrap;
}
.btn svg{width:17px; height:17px; flex-shrink:0;}
.btn-primary{background:var(--brand-grad); color:#fff; box-shadow:0 10px 24px -10px rgba(55,48,163,0.55);}
.btn-primary:hover{transform:translateY(-2px); box-shadow:0 14px 28px -10px rgba(55,48,163,0.62);}
.btn-line{background:#06C755; color:#fff; box-shadow:0 10px 24px -10px rgba(6,199,85,0.5);}
.btn-line:hover{transform:translateY(-2px); opacity:0.95;}
.btn-ghost{background:var(--card); color:var(--ink); border-color:var(--line-strong);}
.btn-ghost:hover{border-color:var(--violet); color:var(--indigo); transform:translateY(-2px);}
.btn-block{width:100%; justify-content:center;}
.btn-lg{padding:16px 32px; font-size:15.5px;}

/* ---------- Hero (shared pattern) ---------- */
.page-hero{
  position:relative; overflow:hidden;
  padding:64px 0 56px;
  background:
    radial-gradient(1100px 500px at 82% -10%, rgba(124,58,237,0.10), transparent 60%),
    radial-gradient(900px 460px at 5% 0%, rgba(37,99,235,0.09), transparent 55%),
    var(--paper);
  border-bottom:1px solid var(--line);
}
.page-hero .hero-net{position:absolute; inset:0; opacity:0.5; pointer-events:none;}
.page-hero h1{font-size:clamp(28px,4.4vw,44px); line-height:1.28;}
.page-hero .lede{margin-top:16px; font-size:16.5px; color:var(--ink-soft); max-width:640px; line-height:1.8;}
.page-hero .hero-actions{margin-top:28px; display:flex; gap:12px; flex-wrap:wrap;}

/* ---------- Cards ---------- */
.card{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm);
}

/* ---------- Section rhythm ---------- */
section{padding:72px 0;}
@media (max-width:640px){ section{padding:52px 0;} }
.section-head{max-width:640px; margin-bottom:44px;}
.section-head h2{font-size:clamp(24px,3.4vw,34px); line-height:1.3;}
.section-head .lede{margin-top:14px; font-size:15.5px; color:var(--ink-soft); line-height:1.8;}
.section-alt{background:var(--paper-deep);}

/* ---------- Footer ---------- */
.site-footer{
  border-top:1px solid var(--line); background:var(--card); padding:52px 0 28px;
}
.footer-grid{
  display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:32px;
}
@media (max-width:760px){ .footer-grid{grid-template-columns:1fr 1fr; gap:28px 20px;} }
.footer-brand{display:flex; align-items:center; gap:10px; margin-bottom:14px;}
.footer-brand img{height:34px; width:34px;}
.footer-brand span{font-family:"Noto Serif TC",serif; font-weight:700; font-size:15px;}
.footer-desc{font-size:13px; color:var(--ink-faint); line-height:1.75; max-width:280px;}
.footer-col h4{font-size:12.5px; font-weight:700; color:var(--ink-soft); letter-spacing:0.06em; margin-bottom:14px; text-transform:uppercase;}
.footer-col ul{display:flex; flex-direction:column; gap:10px;}
.footer-col a{font-size:13.5px; color:var(--ink-soft); transition:color .15s ease;}
.footer-col a:hover{color:var(--indigo);}
.footer-bottom{
  margin-top:40px; padding-top:22px; border-top:1px solid var(--line);
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px;
  font-size:12px; color:var(--ink-faint);
}

/* ---------- Utility ---------- */
.badge{
  display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:700;
  padding:6px 13px; border-radius:999px; background:var(--card); border:1px solid var(--line-strong); color:var(--ink-soft);
}
.badge-dot{width:6px; height:6px; border-radius:50%; background:var(--line-ok);}

.grad-text{
  background:var(--brand-grad); -webkit-background-clip:text; background-clip:text; color:transparent;
}

.reveal{opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease;}
.reveal.is-visible{opacity:1; transform:translateY(0);}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1; transform:none; transition:none;}
  html{scroll-behavior:auto;}
}

.icon-tile{
  width:56px; height:56px; border-radius:16px; display:flex; align-items:center; justify-content:center;
  background:var(--brand-grad-soft); flex-shrink:0;
}
.icon-tile svg{width:28px; height:28px;}

.hex-icon{display:block; flex-shrink:0;}

/* ---------- LINE floating button ----------
   V7.0 起移除：LINE 已整合進 AI 客服對話視窗輸入框下方的
   常駐膠囊按鈕（見 assets/ai-chat.css 的 .ai-chat-line-pin），
   不再需要獨立的頁面浮動按鈕。 */
