/* ===================================
   雅緻裝修設計 - Elegant Renovation Design
   Main Stylesheet  v2.0
=================================== */

:root {
    --gold: #C8971A;
    --gold-light: #E8B84B;
    --gold-pale: #F5E6B8;
    --gold-bg: #FBF6EC;
    --dark: #1A1410;
    --dark2: #2C231A;
    --dark3: #3D3022;
    --text: #2C2C2C;
    --text2: #555;
    --text3: #888;
    --white: #fff;
    --off-white: #FAF8F5;
    --border: #E8DFD0;
    --green: #25D366;
    --radius: 12px;
    --radius-lg: 20px;
    --shadow: 0 8px 32px rgba(0,0,0,.10);
    --shadow-lg: 0 20px 60px rgba(0,0,0,.15);
    --trans: all .3s ease;
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:'Noto Sans TC',sans-serif; color:var(--text); background:var(--white); line-height:1.7; overflow-x:hidden; }
h1,h2,h3,h4 { font-family:'Noto Serif TC',serif; line-height:1.3; }
a { text-decoration:none; color:inherit; transition:var(--trans); }

.container { max-width:1200px; margin:0 auto; padding:0 24px; }
.section-header { text-align:center; margin-bottom:56px; }

.section-tag {
    display:inline-flex; align-items:center; gap:6px;
    background:linear-gradient(135deg,var(--dark),var(--dark3));
    color:var(--gold-light); padding:6px 18px; border-radius:50px;
    font-size:13px; font-weight:600; letter-spacing:1px; margin-bottom:14px;
    border:1px solid rgba(200,151,26,.3);
}
.taobao-tag { background:linear-gradient(135deg,#FF4400,#FF6600); color:#fff; border-color:rgba(255,100,0,.3); }
.light-tag { background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.35); color:#fff; }

.section-title { font-size:clamp(26px,4vw,40px); color:var(--dark); margin-bottom:14px; }
.white-title { color:#fff; }
.section-desc { font-size:15px; color:var(--text2); max-width:580px; margin:0 auto; }
.light-desc { color:rgba(255,255,255,.8); }
.req { color:#e53935; }

/* BUTTONS */
.btn { display:inline-flex; align-items:center; gap:9px; padding:13px 28px; border-radius:50px; font-size:14px; font-weight:600; cursor:pointer; border:none; font-family:'Noto Sans TC',sans-serif; transition:var(--trans); white-space:nowrap; }
.btn-gold { background:linear-gradient(135deg,var(--gold),var(--gold-light)); color:var(--dark); box-shadow:0 6px 20px rgba(200,151,26,.35); }
.btn-gold:hover { transform:translateY(-2px); box-shadow:0 10px 30px rgba(200,151,26,.5); }
.btn-whatsapp { background:var(--green); color:#fff; box-shadow:0 6px 20px rgba(37,211,102,.35); }
.btn-whatsapp:hover { background:#1eba59; transform:translateY(-2px); box-shadow:0 10px 30px rgba(37,211,102,.5); }
.btn-outline { background:rgba(255,255,255,.15); color:#fff; border:2px solid rgba(255,255,255,.45); backdrop-filter:blur(10px); }
.btn-outline:hover { background:rgba(255,255,255,.25); border-color:#fff; transform:translateY(-2px); }
.btn-outline-dark { background:transparent; color:var(--dark); border:2px solid var(--border); }
.btn-outline-dark:hover { border-color:var(--gold); color:var(--gold); }
.btn-taobao { background:linear-gradient(135deg,#FF4400,#FF6600); color:#fff; box-shadow:0 6px 20px rgba(255,68,0,.35); }
.btn-taobao:hover { transform:translateY(-2px); box-shadow:0 10px 30px rgba(255,68,0,.5); }
.btn-full { width:100%; justify-content:center; font-size:16px; padding:16px 28px; }

/* TOP BAR */
.topbar { background:var(--dark); padding:8px 0; font-size:13px; position:relative; z-index:1001; }
.topbar-inner { max-width:1200px; margin:0 auto; padding:0 24px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px; }
.topbar-left, .topbar-right { display:flex; align-items:center; gap:12px; color:rgba(255,255,255,.65); flex-wrap:wrap; }
.topbar a { color:var(--gold-light); }
.topbar a:hover { color:var(--gold-pale); }
.topbar i { margin-right:4px; color:var(--gold); }
.sep { color:rgba(255,255,255,.25); }

/* NAVBAR */
.navbar { position:sticky; top:0; z-index:1000; background:rgba(26,20,16,.97); backdrop-filter:blur(20px); padding:14px 0; box-shadow:0 2px 20px rgba(0,0,0,.4); }
.nav-container { max-width:1200px; margin:0 auto; padding:0 24px; display:flex; align-items:center; justify-content:space-between; }
.nav-logo { display:flex; align-items:center; gap:12px; }
.logo-img { width:46px; height:46px; object-fit:contain; border-radius:10px; }
.logo-text { display:flex; flex-direction:column; }
.logo-main { color:#fff; font-family:'Noto Serif TC',serif; font-size:16px; font-weight:700; }
.logo-sub { color:var(--gold-light); font-size:10px; letter-spacing:.5px; }
.nav-menu { display:flex; align-items:center; gap:2px; list-style:none; }
.nav-link { color:rgba(255,255,255,.8); font-size:13px; font-weight:500; padding:8px 12px; border-radius:8px; }
.nav-link:hover, .nav-link.active { color:var(--gold-light); background:rgba(255,255,255,.07); }
.nav-cta { background:linear-gradient(135deg,var(--gold),var(--gold-light)) !important; color:var(--dark) !important; font-weight:700; padding:10px 18px; border-radius:50px; font-size:13px; }
.nav-cta:hover { transform:translateY(-1px); box-shadow:0 6px 20px rgba(200,151,26,.4); }
.hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; padding:8px; border:none; background:none; }
.hamburger span { display:block; width:24px; height:2px; background:#fff; border-radius:2px; transition:var(--trans); }

/* HERO */
.hero { min-height:100vh; position:relative; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.hero-bg { position:absolute; inset:0; z-index:0; }
.hero-banner-img { width:100%; height:100%; object-fit:cover; object-position:center top; filter:brightness(.55) saturate(1.2); }
.hero-overlay { position:absolute; inset:0; background:linear-gradient(to bottom,rgba(26,20,16,.4) 0%,rgba(26,20,16,.6) 60%,rgba(26,20,16,.92) 100%); }
.hero-content { position:relative; z-index:1; text-align:center; padding:80px 24px; max-width:860px; width:100%; }
.hero-logo-wrap { margin-bottom:18px; }
.hero-logo { width:90px; height:90px; object-fit:contain; border-radius:18px; box-shadow:0 8px 30px rgba(0,0,0,.4); border:2px solid rgba(200,151,26,.4); }
.hero-title { font-size:clamp(36px,6vw,68px); color:#fff; font-weight:900; margin-bottom:16px; text-shadow:0 4px 20px rgba(0,0,0,.5); letter-spacing:2px; }
.hero-tagline { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:8px; font-size:clamp(14px,2vw,17px); font-weight:600; margin-bottom:14px; color:var(--gold-pale); }
.tag-item { display:flex; align-items:center; gap:5px; }
.tag-sep { color:rgba(255,255,255,.4); }
.hero-sub { color:rgba(255,255,255,.75); font-size:15px; margin-bottom:36px; }
.hero-btns { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; margin-bottom:48px; }
.hero-stats { display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,.08); backdrop-filter:blur(20px); border:1px solid rgba(255,255,255,.14); border-radius:var(--radius-lg); padding:22px 32px; flex-wrap:wrap; max-width:600px; margin:0 auto; }
.stat { display:flex; flex-direction:column; align-items:center; padding:0 24px; gap:4px; }
.stat i { color:var(--gold-light); font-size:18px; }
.snum { font-family:'Noto Serif TC',serif; font-size:26px; font-weight:700; color:var(--gold-pale); line-height:1; }
.slabel { font-size:12px; color:rgba(255,255,255,.6); }
.stat-div { width:1px; height:36px; background:rgba(255,255,255,.18); }
.hero-scroll { position:absolute; bottom:28px; left:50%; transform:translateX(-50%); z-index:1; width:40px; height:40px; border:2px solid rgba(255,255,255,.3); border-radius:50%; display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.6); animation:bounce 2s infinite; }
@keyframes bounce { 0%,20%,50%,80%,100%{transform:translateX(-50%) translateY(0)} 40%{transform:translateX(-50%) translateY(-8px)} 60%{transform:translateX(-50%) translateY(-4px)} }

/* USP BANNER */
.usp-banner { background:linear-gradient(135deg,var(--dark),var(--dark3)); padding:28px 0; border-bottom:1px solid rgba(200,151,26,.3); }
.usp-inner { max-width:1200px; margin:0 auto; padding:0 24px; display:flex; justify-content:space-around; align-items:center; flex-wrap:wrap; gap:20px; }
.usp-item { display:flex; align-items:center; gap:14px; color:rgba(255,255,255,.85); }
.usp-item i { font-size:28px; color:var(--gold); }
.usp-item img { width:28px; height:28px; }
.usp-item strong { display:block; color:#fff; font-size:15px; font-weight:700; }
.usp-item span { font-size:12px; color:rgba(255,255,255,.55); }

/* SERVICES */
.services { padding:96px 0; background:var(--off-white); }
.services-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:24px; }
.service-card { background:#fff; border-radius:var(--radius-lg); border:1px solid var(--border); position:relative; transition:var(--trans); overflow:hidden; display:flex; flex-direction:column; }
.service-card::before { content:''; position:absolute; top:0;left:0;right:0; height:3px; background:linear-gradient(90deg,var(--gold),var(--gold-light)); transform:scaleX(0); transition:var(--trans); transform-origin:left; z-index:2; }
.service-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-lg); border-color:transparent; }
.service-card:hover::before { transform:scaleX(1); }
.sc-img-wrap { width:100%; height:200px; overflow:hidden; flex-shrink:0; }
.sc-img-wrap img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
.service-card:hover .sc-img-wrap img { transform:scale(1.06); }
.sc-body { padding:28px; flex:1; display:flex; flex-direction:column; }
.service-card.featured { background:linear-gradient(160deg,var(--dark) 0%,var(--dark2) 100%); border-color:rgba(200,151,26,.3); }
.service-card.featured::before { transform:scaleX(1); }
.service-card.featured h3 { color:#fff; }
.service-card.featured p { color:rgba(255,255,255,.75); }
.service-card.featured .sc-link { color:var(--gold-light); }
.service-card.featured ul li { color:rgba(255,255,255,.8); }
.feat-badge { position:absolute; top:14px;right:14px; background:linear-gradient(135deg,var(--gold),var(--gold-light)); color:var(--dark); padding:4px 13px; border-radius:50px; font-size:11px; font-weight:700; z-index:3; }
.sc-icon { width:52px;height:52px; background:linear-gradient(135deg,var(--dark),var(--dark3)); border-radius:var(--radius); display:flex; align-items:center; justify-content:center; font-size:20px; color:var(--gold-light); margin-bottom:16px; box-shadow:0 4px 16px rgba(0,0,0,.2); }
.service-card.featured .sc-icon { background:rgba(200,151,26,.15); border:1px solid rgba(200,151,26,.3); }
.service-card h3 { font-size:19px; color:var(--dark); margin-bottom:9px; }
.service-card p { font-size:13.5px; color:var(--text2); margin-bottom:14px; }
.service-card ul { list-style:none; margin-bottom:18px; }
.service-card ul li { display:flex; align-items:center; gap:9px; font-size:13px; color:var(--text); padding:4px 0; }
.service-card ul li i { color:var(--gold); font-size:11px; }
.sc-link { display:inline-flex; align-items:center; gap:7px; color:var(--gold); font-weight:600; font-size:14px; margin-top:auto; }
.sc-link:hover { gap:11px; }

/* TAOBAO */
.taobao-section { padding:96px 0; background:var(--gold-bg); }
.taobao-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; }
.taobao-text .section-title { text-align:left; margin-bottom:18px; }
.taobao-text p { color:var(--text2); margin-bottom:28px; font-size:15px; line-height:1.8; }
.taobao-steps { display:flex; flex-direction:column; gap:20px; margin-bottom:32px; }
.tb-step { display:flex; align-items:flex-start; gap:18px; background:#fff; border-radius:var(--radius); padding:18px 22px; border:1px solid var(--border); transition:var(--trans); }
.tb-step:hover { box-shadow:var(--shadow); transform:translateX(5px); }
.tb-num { font-family:'Noto Serif TC',serif; font-size:28px; font-weight:700; color:var(--gold); line-height:1; flex-shrink:0; min-width:36px; }
.tb-step strong { display:block; font-size:15px; color:var(--dark); margin-bottom:4px; }
.tb-step p { font-size:13px; color:var(--text2); margin:0; }
.taobao-features { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
.tb-feature-card { background:#fff; border-radius:var(--radius); padding:24px 20px; text-align:center; border:1px solid var(--border); transition:var(--trans); }
.tb-feature-card:hover { border-color:var(--gold); box-shadow:0 4px 20px rgba(200,151,26,.15); transform:translateY(-3px); }
.tb-feature-card i { font-size:28px; color:var(--gold); margin-bottom:10px; display:block; }
.tb-feature-card h4 { font-size:14px; color:var(--dark); margin-bottom:6px; }
.tb-feature-card p { font-size:12px; color:var(--text3); margin:0; }

/* PORTFOLIO */
.portfolio { padding:96px 0; background:#fff; }
.portfolio-filter { display:flex; justify-content:center; gap:10px; margin-bottom:36px; flex-wrap:wrap; }
.filter-btn { padding:9px 22px; border-radius:50px; border:2px solid var(--border); background:transparent; color:var(--text2); font-size:13px; font-weight:600; cursor:pointer; font-family:'Noto Sans TC',sans-serif; transition:var(--trans); }
.filter-btn:hover,.filter-btn.active { background:linear-gradient(135deg,var(--dark),var(--dark3)); border-color:transparent; color:var(--gold-light); box-shadow:0 4px 16px rgba(0,0,0,.2); }
.portfolio-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.portfolio-item { border-radius:var(--radius-lg); overflow:hidden; cursor:pointer; }
.port-img { height:280px; position:relative; overflow:hidden; background:#1a1a1a; }
.port-img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
.portfolio-item:hover .port-img img { transform:scale(1.08); }
.port-overlay { position:absolute; inset:0; background:linear-gradient(to top,rgba(10,10,10,.95) 0%,rgba(0,0,0,.4) 50%,rgba(0,0,0,.05) 100%); display:flex; flex-direction:column; justify-content:flex-end; padding:24px; opacity:0; transition:opacity .35s ease; }
.portfolio-item:hover .port-overlay { opacity:1; }
.port-tag { display:inline-block; background:linear-gradient(135deg,var(--gold),var(--gold-light)); color:var(--dark); padding:3px 12px; border-radius:50px; font-size:11px; font-weight:700; margin-bottom:8px; align-self:flex-start; }
.port-overlay h3 { color:#fff; font-size:17px; margin-bottom:4px; }
.port-overlay p { color:rgba(255,255,255,.7); font-size:12px; margin-bottom:10px; }
.port-btn { display:inline-block; background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.3); color:#fff; padding:7px 16px; border-radius:50px; font-size:12px; font-weight:600; align-self:flex-start; backdrop-filter:blur(10px); transition:var(--trans); }
.port-btn:hover { background:linear-gradient(135deg,var(--gold),var(--gold-light)); color:var(--dark); border-color:transparent; }

/* PROCESS */
.process { padding:96px 0; background:var(--off-white); }
.process-steps { display:flex; align-items:flex-start; justify-content:center; }
.proc-step { flex:1; max-width:240px; text-align:center; padding:28px 16px; }
.ps-number { font-family:'Noto Serif TC',serif; font-size:44px; font-weight:700; color:rgba(200,151,26,.2); line-height:1; margin-bottom:12px; }
.ps-icon { width:68px;height:68px; background:linear-gradient(135deg,var(--dark),var(--dark3)); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:26px; color:var(--gold-light); margin:0 auto 18px; box-shadow:0 6px 20px rgba(0,0,0,.25); }
.proc-step h3 { font-size:18px; color:var(--dark); margin-bottom:10px; }
.proc-step p { font-size:13px; color:var(--text2); line-height:1.7; }
.proc-connector { flex:0 0 60px; height:2px; background:linear-gradient(90deg,var(--gold),var(--gold-light)); margin-top:106px; opacity:.4; position:relative; }
.proc-connector::after { content:''; position:absolute; right:-5px;top:-4px; width:10px;height:10px; border-right:2px solid var(--gold); border-bottom:2px solid var(--gold); transform:rotate(-45deg); }

/* TESTIMONIALS */
.testimonials { padding:96px 0; background:var(--dark); }
.testi-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:24px; }
.testi-card { background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); border-radius:var(--radius-lg); padding:32px; transition:var(--trans); }
.testi-card:hover { background:rgba(255,255,255,.09); border-color:rgba(200,151,26,.3); transform:translateY(-4px); }
.testi-stars { color:var(--gold-light); font-size:20px; letter-spacing:2px; margin-bottom:16px; }
.testi-card p { color:rgba(255,255,255,.8); font-size:14px; line-height:1.8; margin-bottom:20px; font-style:italic; }
.testi-author { display:flex; align-items:center; gap:12px; }
.ta-avatar { width:44px;height:44px; border-radius:50%; background:linear-gradient(135deg,var(--gold),var(--gold-light)); display:flex; align-items:center; justify-content:center; color:var(--dark); font-family:'Noto Serif TC',serif; font-size:17px; font-weight:700; flex-shrink:0; }
.testi-author strong { display:block; color:#fff; font-size:14px; }
.testi-author span { color:rgba(255,255,255,.45); font-size:12px; }

/* ABOUT */
.about { padding:96px 0; background:#fff; }
.about-grid { display:grid; grid-template-columns:1fr 1.1fr; gap:64px; align-items:center; }
.about-img-wrap { position:relative; }
.about-banner { width:100%; border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); display:block; }
.about-badge { position:absolute; bottom:-16px;right:-16px; background:linear-gradient(135deg,var(--gold),var(--gold-light)); border-radius:var(--radius); padding:18px 22px; text-align:center; color:var(--dark); box-shadow:var(--shadow-lg); }
.about-badge i { font-size:24px; display:block; margin-bottom:6px; }
.about-badge span { font-size:12px; display:block; }
.about-badge strong { font-size:14px; display:block; font-family:'Noto Serif TC',serif; }
.about-text .section-tag,.about-text .section-title { text-align:left; }
.about-text .section-title { margin-bottom:18px; }
.about-text p { color:var(--text2); margin-bottom:14px; font-size:15px; line-height:1.8; }
.about-highlights { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:24px 0 28px; }
.ah-item { display:flex; align-items:center; gap:10px; background:var(--off-white); padding:12px 16px; border-radius:var(--radius); font-size:13px; font-weight:600; color:var(--text); transition:var(--trans); }
.ah-item:hover { background:var(--gold-pale); transform:translateX(3px); }
.ah-item i { color:var(--gold); font-size:16px; flex-shrink:0; }
.ah-item img { width:16px;height:16px; flex-shrink:0; }
.about-cta { display:flex; gap:12px; flex-wrap:wrap; }

/* CONTACT */
.contact { padding:96px 0; background:var(--off-white); }
.contact-layout { display:grid; grid-template-columns:1fr 1.3fr; gap:48px; align-items:start; }
.contact-info { display:flex; flex-direction:column; gap:16px; }
.ci-item { display:flex; align-items:flex-start; gap:14px; background:#fff; padding:18px 22px; border-radius:var(--radius); border:1px solid var(--border); transition:var(--trans); }
.ci-item:hover { border-color:var(--gold); box-shadow:0 4px 20px rgba(200,151,26,.1); transform:translateX(4px); }
.ci-icon { width:44px;height:44px; background:linear-gradient(135deg,var(--dark),var(--dark3)); border-radius:var(--radius); display:flex; align-items:center; justify-content:center; color:var(--gold-light); font-size:17px; flex-shrink:0; }
.ci-icon.whatsapp-icon { background:var(--green); color:#fff; }
.ci-icon.email-icon { background:linear-gradient(135deg,var(--gold),var(--gold-light)); color:var(--dark); }
.ci-item h4 { font-size:12px; color:var(--text3); font-weight:500; margin-bottom:3px; font-family:'Noto Sans TC',sans-serif; }
.ci-item a,.ci-item p,.ci-item span { font-size:14px; color:var(--text); font-weight:500; line-height:1.5; }
.ci-item a:hover { color:var(--gold); }
.map-wrap { border-radius:var(--radius); overflow:hidden; }
.map-link { display:flex; align-items:center; gap:8px; background:var(--dark); color:var(--gold-light); padding:12px 18px; font-size:13px; font-weight:600; justify-content:center; transition:var(--trans); }
.map-link:hover { background:var(--gold); color:var(--dark); }

/* FORMS */
.contact-form-wrap { background:#fff; border-radius:var(--radius-lg); padding:36px; border:1px solid var(--border); box-shadow:var(--shadow); }
.contact-form h3,.booking-form h3 { font-size:20px; color:var(--dark); margin-bottom:24px; display:flex; align-items:center; gap:10px; }
.contact-form h3 i { color:var(--gold); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.form-group { display:flex; flex-direction:column; gap:6px; margin-bottom:14px; }
.form-group label { font-size:13px; font-weight:600; color:var(--text); }
.form-group input,.form-group select,.form-group textarea { padding:11px 15px; border:1.5px solid var(--border); border-radius:var(--radius); font-size:14px; font-family:'Noto Sans TC',sans-serif; color:var(--text); background:#fff; outline:none; transition:var(--trans); }
.form-group input:focus,.form-group select:focus,.form-group textarea:focus { border-color:var(--gold); box-shadow:0 0 0 3px rgba(200,151,26,.1); }
.form-group textarea { resize:vertical; min-height:90px; }
.form-group select { cursor:pointer; appearance:none; 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='%23888' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 12px center; padding-right:36px; }
.form-note { text-align:center; font-size:12px; color:var(--text3); margin-top:12px; line-height:1.6; }
.form-note i { color:var(--gold); margin-right:3px; }
.form-note a { color:var(--gold); text-decoration:underline; }

/* BOOKING */
.booking { padding:96px 0; position:relative; overflow:hidden; }
.booking-bg { position:absolute; inset:0; background:linear-gradient(135deg,var(--dark) 0%,var(--dark2) 40%,var(--dark3) 100%); }
.booking-bg::before { content:''; position:absolute; inset:0; background:radial-gradient(circle at 10% 50%,rgba(200,151,26,.15) 0%,transparent 50%),radial-gradient(circle at 90% 50%,rgba(200,151,26,.08) 0%,transparent 50%); }
.booking .container { position:relative; z-index:1; }
.booking-wrap { display:grid; grid-template-columns:1fr 1.5fr; gap:56px; align-items:start; }
.booking-header { padding-top:20px; }
.booking-header .section-title,.booking-header .section-desc { text-align:left; max-width:none; }
.booking-form { background:rgba(255,255,255,.97); border-radius:var(--radius-lg); padding:36px; box-shadow:var(--shadow-lg); }

/* FOOTER */
.footer { background:var(--dark); padding:72px 0 0; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1.4fr; gap:40px; padding-bottom:56px; }
.footer-logo { display:flex; align-items:center; gap:12px; margin-bottom:18px; }
.footer-logo img { width:48px;height:48px; object-fit:contain; border-radius:10px; }
.footer-brand p { color:rgba(255,255,255,.55); font-size:13px; line-height:1.8; margin-bottom:22px; }
.footer-social { display:flex; gap:10px; }
.fs-link { width:38px;height:38px; border-radius:var(--radius); display:flex; align-items:center; justify-content:center; font-size:15px; transition:var(--trans); background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12); color:rgba(255,255,255,.6); }
.fs-link.whatsapp:hover { background:var(--green); color:#fff; border-color:transparent; transform:translateY(-2px); }
.fs-link.email:hover { background:var(--gold); color:var(--dark); border-color:transparent; transform:translateY(-2px); }
.fs-link.phone:hover { background:var(--dark3); color:var(--gold-light); border-color:var(--gold); transform:translateY(-2px); }
.footer-col h4 { color:#fff; font-size:15px; margin-bottom:18px; font-family:'Noto Serif TC',serif; }
.footer-col ul { list-style:none; display:flex; flex-direction:column; gap:9px; }
.footer-col ul li a { color:rgba(255,255,255,.5); font-size:13px; }
.footer-col ul li a:hover { color:var(--gold-light); padding-left:5px; }
.footer-contact-list li { display:flex; align-items:flex-start; gap:10px; color:rgba(255,255,255,.5); font-size:13px; margin-bottom:8px; }
.footer-contact-list li i { color:var(--gold); margin-top:2px; flex-shrink:0; width:14px; }
.footer-contact-list li a { color:rgba(255,255,255,.5); }
.footer-contact-list li a:hover { color:var(--gold-light); }
.footer-bottom { border-top:1px solid rgba(255,255,255,.1); padding:22px 0; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; }
.footer-bottom p { color:rgba(255,255,255,.35); font-size:12px; }
.footer-bottom a { color:var(--gold-light); }
.footer-bottom a:hover { color:var(--gold-pale); }

/* FLOATING BUTTONS */
.float-btns { position:fixed; bottom:28px; right:28px; z-index:999; display:flex; flex-direction:column; gap:10px; align-items:flex-end; }
.float-btn { display:flex; align-items:center; gap:9px; padding:13px 18px; border-radius:50px; font-size:13px; font-weight:700; text-decoration:none; box-shadow:0 6px 24px rgba(0,0,0,.25); transition:var(--trans); overflow:hidden; max-width:52px; color:#fff; }
.float-btn i { font-size:22px; flex-shrink:0; }
.float-btn span { white-space:nowrap; opacity:0; max-width:0; transition:var(--trans); overflow:hidden; }
.float-btn:hover { max-width:180px; transform:translateY(-2px); }
.float-btn:hover span { opacity:1; max-width:120px; }
.float-btn.wb { background:var(--green); }
.float-btn.wb:hover { box-shadow:0 10px 30px rgba(37,211,102,.5); }
.float-btn.pb { background:linear-gradient(135deg,var(--gold),var(--gold-light)); color:var(--dark); }
.float-btn.pb:hover { box-shadow:0 10px 30px rgba(200,151,26,.5); }

/* MODAL */
.modal { position:fixed; top:50%;left:50%; transform:translate(-50%,-50%) scale(.85); z-index:2000; background:#fff; border-radius:var(--radius-lg); padding:44px 36px; text-align:center; max-width:400px; width:90%; box-shadow:var(--shadow-lg); opacity:0; pointer-events:none; transition:var(--trans); }
.modal.active { opacity:1; pointer-events:all; transform:translate(-50%,-50%) scale(1); }
.modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,.7); z-index:1999; opacity:0; pointer-events:none; transition:var(--trans); backdrop-filter:blur(4px); }
.modal-overlay.active { opacity:1; pointer-events:all; }
.modal-icon { width:72px;height:72px; border-radius:50%; background:linear-gradient(135deg,#00C853,#69F0AE); display:flex; align-items:center; justify-content:center; font-size:32px; color:#fff; margin:0 auto 20px; }
.modal h3 { font-size:22px; color:var(--dark); margin-bottom:12px; }
.modal p { color:var(--text2); font-size:14px; line-height:1.7; margin-bottom:20px; }
.modal-btns { display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }

/* ANIMATIONS */
.fade-up { opacity:0; transform:translateY(28px); transition:opacity .65s ease, transform .65s ease; }
.fade-up.vis { opacity:1; transform:translateY(0); }

/* RESPONSIVE */
@media (max-width:1024px) {
    .taobao-grid,.about-grid { grid-template-columns:1fr; gap:40px; }
    .portfolio-grid { grid-template-columns:repeat(2,1fr); }
    .booking-wrap { grid-template-columns:1fr; gap:40px; }
    .booking-header .section-title,.booking-header .section-desc { text-align:center; }
    .footer-grid { grid-template-columns:1fr 1fr; gap:32px; }
    .footer-brand { grid-column:1/-1; }
    .process-steps { flex-direction:column; align-items:center; }
    .proc-connector { width:2px;height:36px; background:linear-gradient(180deg,var(--gold),var(--gold-light)); margin-top:0; flex:0 0 36px; }
    .proc-connector::after { right:-4px;top:auto;bottom:-5px; transform:rotate(45deg); }
    .contact-layout { grid-template-columns:1fr; }
}
@media (max-width:768px) {
    .topbar-right { display:none; }
    .nav-menu { position:fixed; top:0;right:-100%; width:280px; height:100vh; background:var(--dark); flex-direction:column; align-items:flex-start; padding:80px 28px 28px; gap:4px; transition:var(--trans); box-shadow:-8px 0 30px rgba(0,0,0,.4); overflow-y:auto; }
    .nav-menu.open { right:0; }
    .nav-link { width:100%; font-size:15px; padding:11px 14px; }
    .hamburger { display:flex; z-index:1001; }
    .hamburger.open span:nth-child(1) { transform:rotate(45deg) translate(5px,5px); }
    .hamburger.open span:nth-child(2) { opacity:0; }
    .hamburger.open span:nth-child(3) { transform:rotate(-45deg) translate(5px,-5px); }
    .hero-stats { flex-direction:column; gap:14px; padding:18px 20px; }
    .stat-div { width:50px;height:1px; }
    .hero-btns { flex-direction:column; align-items:center; }
    .services-grid,.portfolio-grid { grid-template-columns:1fr; }
    .about-highlights { grid-template-columns:1fr; }
    .about-badge { bottom:-10px;right:-10px; padding:14px 16px; }
    .footer-grid { grid-template-columns:1fr; }
    .footer-bottom { flex-direction:column; text-align:center; }
    .taobao-features { grid-template-columns:1fr 1fr; }
    .form-row { grid-template-columns:1fr; }
    .booking-form,.contact-form-wrap { padding:24px 18px; }
    .float-btn span { display:none; }
    .float-btn { max-width:52px; border-radius:50%; width:52px;height:52px; justify-content:center; padding:0; }
    .float-btn:hover { max-width:52px; }
    .services,.portfolio,.process,.testimonials,.about,.contact,.booking { padding:70px 0; }
}
@media (max-width:480px) {
    .hero-content { padding:70px 16px 60px; }
    .hero-logo { width:70px;height:70px; }
    .taobao-features { grid-template-columns:1fr; }
    .port-img { height:200px; }
    .sc-img-wrap { height:160px; }
    .proc-step { max-width:100%; padding:22px 12px; }
}
