:root {
  --cream:   #FFF8EE;
  --orange:  #FF7B35;
  --orange2: #FF9F5B;
  --yellow:  #FFD166;
  --red:     #FF4D6D;
  --brown:   #5C3317;
  --brown2:  #7A4A28;
  --pink:    #FFB3C1;
  --green:   #7DCE82;
  --sky:     #B5E4FF;
  --white:   #FFFFFF;
  --text:    #3D2008;
  --muted:   #A0714F;
  --border:  #F0D5B8;
  --card-bg: #FFFAF4;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--cream);
  color:var(--text);
  font-family:'Noto Sans TC',sans-serif;
  font-size:16px;
  line-height:1.7;
  overflow-x:hidden;
}
body::before{
  content:'';
  position:fixed;inset:0;
  background-image:
    radial-gradient(circle at 15% 20%,rgba(255,123,53,0.08) 0%,transparent 40%),
    radial-gradient(circle at 85% 70%,rgba(255,77,109,0.07) 0%,transparent 40%),
    radial-gradient(circle at 50% 50%,rgba(255,209,102,0.06) 0%,transparent 50%);
  pointer-events:none;z-index:0;
}

/* ── NAV ── */
nav{
  position:fixed;top:0;left:0;right:0;z-index:200;
  display:flex;align-items:center;justify-content:space-between;
  padding:0.9rem 3.5rem;
  background:rgba(255,248,238,0.92);
  backdrop-filter:blur(14px);
  border-bottom:2.5px solid var(--border);
}
.nav-logo{
  display:flex;align-items:center;gap:0.6rem;
  text-decoration:none;
  font-family:'Nunito',sans-serif;
  font-weight:900;font-size:1.25rem;
  color:var(--orange);
  letter-spacing:-0.01em;
}
.nav-logo .logo-icon{
  width:36px;height:36px;
  background:var(--orange);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:1.1rem;
  animation:bobble 3s ease-in-out infinite;
}
@keyframes bobble{0%,100%{transform:translateY(0);}50%{transform:translateY(-4px);}}
.nav-logo span{color:var(--brown);}
nav ul{display:flex;gap:1.6rem;list-style:none;align-items:center;}
nav ul a{
  color:var(--muted);text-decoration:none;
  font-size:0.88rem;font-weight:700;
  padding:0.3rem 0.6rem;border-radius:20px;
  transition:all 0.2s;
}
nav ul a:hover,nav ul a.active{background:var(--orange);color:#fff;}
.nav-cta{
  background:var(--orange);color:#fff !important;
  padding:0.4rem 1rem !important;
  border-radius:99px;
  border:2px solid var(--brown);
  box-shadow:2px 2px 0 var(--brown);
}
.nav-cta:hover{transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--brown);}

/* ── WAVE TOP STRIPE ── */
.wave-top{
  position:absolute;top:0;left:0;right:0;
  height:6px;
  background:repeating-linear-gradient(90deg,var(--orange) 0px,var(--orange) 20px,var(--yellow) 20px,var(--yellow) 40px,var(--red) 40px,var(--red) 60px);
}

/* ── HERO (home) ── */
#hero{
  min-height:100vh;
  padding:7rem 3.5rem 3rem;
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:3rem;
  position:relative;z-index:1;
  background:var(--cream);
}
.hero-badge{
  display:inline-flex;align-items:center;gap:0.4rem;
  background:var(--yellow);
  color:var(--brown);
  padding:0.4rem 1rem;
  border-radius:99px;
  font-size:0.8rem;font-weight:900;
  margin-bottom:1.2rem;
  border:2px solid var(--brown);
  box-shadow:3px 3px 0 var(--brown);
  animation:fadeSlideDown 0.7s ease both;
}
@keyframes fadeSlideDown{from{opacity:0;transform:translateY(-20px);}to{opacity:1;transform:translateY(0);}}
h1{
  font-family:'Nunito',sans-serif;
  font-size:clamp(2.2rem,4.5vw,3.6rem);
  font-weight:900;
  line-height:1.15;
  margin-bottom:1.2rem;
  color:var(--brown);
  animation:fadeSlideUp 0.8s 0.1s ease both;
}
@keyframes fadeSlideUp{from{opacity:0;transform:translateY(24px);}to{opacity:1;transform:translateY(0);}}
h1 .hi{
  color:var(--orange);position:relative;display:inline-block;
}
h1 .hi::after{
  content:'';position:absolute;bottom:-4px;left:0;right:0;height:4px;
  background:var(--yellow);border-radius:2px;
}
.hero-desc{
  font-size:1rem;color:var(--muted);max-width:460px;
  margin-bottom:2rem;line-height:1.9;
  animation:fadeSlideUp 0.8s 0.2s ease both;
}
.hero-btns{
  display:flex;gap:1rem;flex-wrap:wrap;
  animation:fadeSlideUp 0.8s 0.3s ease both;
}
.btn-main{
  background:var(--orange);color:#fff;
  padding:0.85rem 2rem;border-radius:99px;
  text-decoration:none;font-weight:900;font-size:0.95rem;
  border:2.5px solid var(--brown);box-shadow:4px 4px 0 var(--brown);
  transition:all 0.15s;display:flex;align-items:center;gap:0.4rem;
}
.btn-main:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--brown);}
.btn-main:active{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--brown);}
.btn-line{
  background:var(--green);color:#fff;
  padding:0.85rem 1.8rem;border-radius:99px;
  text-decoration:none;font-weight:900;font-size:0.95rem;
  border:2.5px solid var(--brown);box-shadow:4px 4px 0 var(--brown);
  transition:all 0.15s;display:flex;align-items:center;gap:0.4rem;
}
.btn-line:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--brown);}
.btn-outline{
  background:transparent;color:var(--orange);
  padding:0.85rem 1.8rem;border-radius:99px;
  text-decoration:none;font-weight:900;font-size:0.95rem;
  border:2.5px solid var(--orange);
  transition:all 0.15s;display:inline-flex;align-items:center;gap:0.4rem;
}
.btn-outline:hover{background:var(--orange);color:#fff;box-shadow:4px 4px 0 var(--brown);}
.hero-stats{
  display:flex;gap:2rem;margin-top:2.5rem;
  animation:fadeSlideUp 0.8s 0.4s ease both;
}
.stat-pill{
  background:var(--white);border:2.5px solid var(--border);
  border-radius:16px;padding:0.7rem 1.2rem;
  text-align:center;box-shadow:3px 3px 0 var(--border);
}
.stat-n{font-family:'Nunito',sans-serif;font-size:1.6rem;font-weight:900;color:var(--orange);display:block;}
.stat-l{font-size:0.75rem;color:var(--muted);font-weight:700;}

/* hero right */
.hero-right{
  display:flex;flex-direction:column;align-items:center;gap:1.5rem;
  animation:fadeSlideUp 0.9s 0.2s ease both;
  background:var(--cream);isolation:isolate;
}
.char-scene{
  position:relative;width:100%;max-width:420px;
  animation:floatCorgi 4s ease-in-out infinite;
  background:var(--cream);
}
.char-scene img{mix-blend-mode:multiply;background:transparent;}
@keyframes floatCorgi{0%,100%{transform:translateY(0);}50%{transform:translateY(-10px);}}
.speech-bubble{
  position:absolute;top:-30px;right:20px;
  background:var(--white);border:2.5px solid var(--brown);
  border-radius:16px;padding:0.6rem 1rem;
  font-size:0.82rem;font-weight:700;color:var(--brown);
  box-shadow:3px 3px 0 var(--brown);white-space:nowrap;
  animation:bubblePop 0.5s 1s cubic-bezier(0.36,0.07,0.19,0.97) both,float1 4s 1.5s ease-in-out infinite;
}
.speech-bubble::after{content:'';position:absolute;bottom:-12px;left:30px;border:6px solid transparent;border-top-color:var(--brown);}
.speech-bubble::before{content:'';position:absolute;bottom:-9px;left:31px;border:5px solid transparent;border-top-color:var(--white);z-index:1;}
@keyframes bubblePop{from{opacity:0;transform:scale(0.5);}to{opacity:1;transform:scale(1);}}
@keyframes float1{0%,100%{transform:translateY(0);}50%{transform:translateY(-8px);}}
.float-icon{position:absolute;font-size:1.8rem;animation:floatIcon 3s ease-in-out infinite;}
.fi-1{top:10%;left:-10%;animation-delay:0s;}
.fi-2{top:5%;right:-5%;animation-delay:0.8s;}
.fi-3{bottom:15%;left:-8%;animation-delay:1.4s;}
.fi-4{bottom:10%;right:-6%;animation-delay:0.4s;}
@keyframes floatIcon{0%,100%{transform:translateY(0) rotate(0deg);}50%{transform:translateY(-12px) rotate(8deg);}}
.mini-cards{display:grid;grid-template-columns:1fr 1fr;gap:0.8rem;width:100%;max-width:420px;}
.mini-card{
  background:var(--white);border:2.5px solid var(--border);
  border-radius:14px;padding:0.9rem 1rem;
  display:flex;align-items:center;gap:0.7rem;
  box-shadow:3px 3px 0 var(--border);transition:all 0.15s;cursor:default;
}
.mini-card:hover{border-color:var(--orange);box-shadow:3px 3px 0 var(--orange);transform:translate(-2px,-2px);}
.mc-icon{font-size:1.5rem;}
.mc-name{font-size:0.82rem;font-weight:700;color:var(--brown);}
.corgi-img-hero{
  mix-blend-mode:multiply;width:100%;max-width:380px;
  display:block;margin:0 auto;border-radius:24px;
  background-color:var(--cream);
}
.corgi-img-contact{
  mix-blend-mode:multiply;width:190px;max-width:100%;
  display:block;margin:0 auto;
  animation:floatCorgi 3.5s ease-in-out infinite;
  border-radius:16px;background-color:var(--cream);
}
.contact-mascot{
  background:var(--cream);isolation:isolate;
  border-radius:16px;overflow:hidden;display:inline-block;
}

/* ── PAGE HERO BANNER (subpages) ── */
.page-hero{
  padding:8rem 3.5rem 4rem;
  position:relative;z-index:1;
  background:var(--cream);
  text-align:center;
}
.page-hero .hero-badge{display:inline-flex;}
.page-hero h1{font-size:clamp(2rem,4vw,3rem);margin-bottom:1rem;}
.page-hero .page-desc{
  font-size:1rem;color:var(--muted);
  max-width:560px;margin:0 auto 2rem;line-height:1.9;
}
.page-hero-btns{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;}

/* ── SECTION COMMON ── */
section{position:relative;z-index:1;}
.section-wrap{padding:5rem 3.5rem;}
.s-tag{
  display:inline-flex;align-items:center;gap:0.4rem;
  background:var(--yellow);border:2px solid var(--brown);
  border-radius:99px;padding:0.25rem 0.9rem;
  font-size:0.75rem;font-weight:900;color:var(--brown);
  margin-bottom:0.8rem;letter-spacing:0.05em;
}
h2{
  font-family:'Nunito',sans-serif;
  font-size:clamp(1.7rem,3vw,2.4rem);
  font-weight:900;color:var(--brown);
  margin-bottom:0.8rem;line-height:1.2;
}
h3{
  font-family:'Nunito',sans-serif;
  font-weight:900;color:var(--brown);
}
.s-intro{color:var(--muted);max-width:540px;font-size:0.95rem;margin-bottom:2.5rem;}

/* ── HOME PREVIEW CARDS ── */
.home-sections{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:1.2rem;margin-top:1rem;
}
.home-card{
  background:var(--white);border:2.5px solid var(--border);
  border-radius:20px;padding:1.8rem;
  box-shadow:4px 4px 0 var(--border);
  transition:all 0.2s;text-decoration:none;display:block;
  color:var(--text);
}
.home-card:hover{border-color:var(--orange);transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--orange);}
.home-card-icon{font-size:2rem;margin-bottom:0.8rem;display:block;}
.home-card-title{font-family:'Nunito',sans-serif;font-weight:900;font-size:1.1rem;color:var(--brown);margin-bottom:0.5rem;}
.home-card-desc{font-size:0.85rem;color:var(--muted);line-height:1.7;}
.home-card-link{display:inline-flex;align-items:center;gap:0.3rem;margin-top:1rem;font-size:0.82rem;font-weight:700;color:var(--orange);}

/* ── WHY SECTION ── */
#why-section{background:var(--orange);}
#why-section .section-wrap{
  display:grid;grid-template-columns:auto 1fr;gap:4rem;align-items:center;
}
.why-left h2{color:#fff;}
.why-left .s-tag{background:var(--yellow);border-color:rgba(255,255,255,0.5);}
.why-left p{color:rgba(255,255,255,0.85);font-size:0.95rem;max-width:280px;}
.why-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.why-card{
  background:rgba(255,255,255,0.18);
  border:2px solid rgba(255,255,255,0.35);
  border-radius:20px;padding:1.5rem;
  backdrop-filter:blur(4px);transition:all 0.2s;
}
.why-card:hover{background:rgba(255,255,255,0.28);transform:translateY(-3px);}
.why-num{
  font-family:'Nunito',sans-serif;
  font-size:2rem;font-weight:900;color:var(--yellow);
  display:block;margin-bottom:0.5rem;
}
.why-title{color:#fff;font-weight:700;margin-bottom:0.4rem;font-size:0.95rem;}
.why-desc{color:rgba(255,255,255,0.8);font-size:0.82rem;line-height:1.7;}

/* Why page extended */
.why-page-bg{background:var(--orange);position:relative;z-index:1;}
.why-big-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;margin-top:2rem;}
.why-big-card{
  background:rgba(255,255,255,0.15);border:2px solid rgba(255,255,255,0.3);
  border-radius:24px;padding:2rem;transition:all 0.2s;
}
.why-big-card:hover{background:rgba(255,255,255,0.25);transform:translateY(-4px);}
.why-big-num{font-family:'Nunito',sans-serif;font-size:3rem;font-weight:900;color:var(--yellow);display:block;margin-bottom:0.8rem;}
.why-big-title{color:#fff;font-family:'Nunito',sans-serif;font-size:1.2rem;font-weight:900;margin-bottom:0.6rem;}
.why-big-desc{color:rgba(255,255,255,0.85);font-size:0.9rem;line-height:1.8;}
.why-detail-list{list-style:none;margin-top:1rem;}
.why-detail-list li{color:rgba(255,255,255,0.8);font-size:0.83rem;padding:0.3rem 0;padding-left:1.2rem;position:relative;}
.why-detail-list li::before{content:'✓';position:absolute;left:0;color:var(--yellow);font-weight:700;}

/* Comparison table */
.compare-section{background:var(--cream);}
.compare-table{width:100%;border-collapse:collapse;margin-top:1.5rem;}
.compare-table th,.compare-table td{padding:1rem 1.2rem;text-align:left;font-size:0.88rem;}
.compare-table th{background:var(--orange);color:#fff;font-weight:900;font-family:'Nunito',sans-serif;}
.compare-table th:first-child{border-radius:12px 0 0 0;}
.compare-table th:last-child{border-radius:0 12px 0 0;}
.compare-table tr:nth-child(even) td{background:var(--card-bg);}
.compare-table tr:hover td{background:#fff8ee;}
.compare-table td:first-child{font-weight:700;color:var(--brown);}
.compare-table .check{color:var(--orange);font-weight:900;font-size:1.1rem;}
.compare-table .cross{color:#ccc;font-size:1.1rem;}
.compare-table-wrap{overflow-x:auto;border-radius:16px;border:2.5px solid var(--border);box-shadow:4px 4px 0 var(--border);}

/* Testimonials */
.testimonials{background:#FFF0E6;position:relative;z-index:1;}
.testi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.2rem;margin-top:1.5rem;}
.testi-card{
  background:var(--white);border:2.5px solid var(--border);
  border-radius:20px;padding:1.6rem;
  box-shadow:4px 4px 0 var(--border);
}
.testi-stars{color:var(--orange);font-size:1rem;margin-bottom:0.6rem;letter-spacing:2px;}
.testi-text{font-size:0.88rem;color:var(--muted);line-height:1.8;margin-bottom:1rem;font-style:italic;}
.testi-name{font-weight:900;font-family:'Nunito',sans-serif;color:var(--brown);font-size:0.9rem;}
.testi-company{font-size:0.78rem;color:var(--muted);}

/* ── ABOUT SECTION ── */
#about .section-wrap{
  display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center;
}
.about-right{
  background:var(--white);border:2.5px solid var(--border);
  border-radius:24px;padding:2rem;box-shadow:6px 6px 0 var(--border);
}
.timeline-item{
  display:flex;gap:1rem;padding:1rem 0;
  border-bottom:2px dashed var(--border);
}
.timeline-item:last-child{border-bottom:none;}
.t-year{font-family:'Nunito',sans-serif;font-size:0.85rem;font-weight:900;color:var(--orange);flex-shrink:0;width:45px;padding-top:2px;}
.t-dot{width:12px;height:12px;background:var(--yellow);border:2px solid var(--brown);border-radius:50%;flex-shrink:0;margin-top:5px;}
.t-desc{font-size:0.88rem;color:var(--muted);line-height:1.6;}
.about-text p{font-size:0.95rem;color:var(--muted);margin-bottom:1rem;line-height:1.9;}
.tag-row{display:flex;flex-wrap:wrap;gap:0.5rem;margin-top:1rem;}
.skill-tag{
  background:var(--cream);border:2px solid var(--border);
  border-radius:99px;padding:0.25rem 0.8rem;
  font-size:0.78rem;font-weight:700;color:var(--brown2);
}

/* About page: team */
.team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.2rem;margin-top:2rem;}
.team-card{
  background:var(--white);border:2.5px solid var(--border);
  border-radius:20px;padding:2rem 1.5rem;text-align:center;
  box-shadow:4px 4px 0 var(--border);transition:all 0.2s;
}
.team-card:hover{border-color:var(--orange);transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--orange);}
.team-avatar{width:80px;height:80px;border-radius:50%;background:var(--yellow);border:3px solid var(--brown);display:flex;align-items:center;justify-content:center;font-size:2rem;margin:0 auto 1rem;}
.team-name{font-family:'Nunito',sans-serif;font-weight:900;color:var(--brown);margin-bottom:0.3rem;}
.team-role{font-size:0.8rem;color:var(--orange);font-weight:700;margin-bottom:0.6rem;}
.team-desc{font-size:0.82rem;color:var(--muted);line-height:1.6;}

/* Values */
.values-section{background:#FFF0E6;}
.values-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-top:1.5rem;}
.value-card{
  background:var(--white);border:2.5px solid var(--border);
  border-radius:18px;padding:1.5rem;
  box-shadow:3px 3px 0 var(--border);
}
.value-icon{font-size:2rem;margin-bottom:0.6rem;display:block;}
.value-title{font-family:'Nunito',sans-serif;font-weight:900;color:var(--brown);margin-bottom:0.4rem;}
.value-desc{font-size:0.84rem;color:var(--muted);line-height:1.7;}

/* ── SERVICES ── */
#services-section{background:var(--cream);}
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;}
.svc-card{
  background:var(--white);border:2.5px solid var(--border);
  border-radius:20px;padding:2rem;transition:all 0.2s;cursor:default;
}
.svc-card:hover{border-color:var(--orange);transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--orange);}
.svc-emoji{font-size:2.2rem;margin-bottom:1rem;display:block;}
.svc-name{font-family:'Nunito',sans-serif;font-weight:900;font-size:1.05rem;color:var(--brown);margin-bottom:0.6rem;}
.svc-desc{font-size:0.84rem;color:var(--muted);line-height:1.7;}
.svc-tag{
  display:inline-block;margin-top:1rem;
  background:var(--yellow);border:1.5px solid var(--brown);
  border-radius:99px;padding:0.2rem 0.7rem;
  font-size:0.72rem;font-weight:700;color:var(--brown);
}

/* Services page extended */
.svc-detail-card{
  background:var(--white);border:2.5px solid var(--border);
  border-radius:24px;padding:2.5rem;
  box-shadow:5px 5px 0 var(--border);
  display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:start;
  margin-bottom:1.5rem;transition:all 0.2s;
}
.svc-detail-card:hover{border-color:var(--orange2);box-shadow:5px 5px 0 var(--orange2);}
.svc-detail-card.reverse{direction:rtl;}
.svc-detail-card.reverse > *{direction:ltr;}
.svc-detail-icon{font-size:3.5rem;display:block;margin-bottom:1rem;}
.svc-detail-title{font-family:'Nunito',sans-serif;font-weight:900;font-size:1.4rem;color:var(--brown);margin-bottom:0.8rem;}
.svc-detail-desc{font-size:0.92rem;color:var(--muted);line-height:1.85;margin-bottom:1rem;}
.svc-feature-list{list-style:none;}
.svc-feature-list li{font-size:0.85rem;color:var(--muted);padding:0.4rem 0;padding-left:1.4rem;position:relative;border-bottom:1px dashed var(--border);}
.svc-feature-list li:last-child{border-bottom:none;}
.svc-feature-list li::before{content:'✦';position:absolute;left:0;color:var(--orange);font-size:0.7rem;top:0.55rem;}
.svc-price-badge{
  display:inline-block;margin-top:1rem;
  background:var(--orange);color:#fff;
  border:2px solid var(--brown);border-radius:99px;
  padding:0.35rem 1rem;font-size:0.82rem;font-weight:900;
  box-shadow:2px 2px 0 var(--brown);
}
.svc-visual{
  background:var(--cream);border:2px dashed var(--border);
  border-radius:20px;min-height:200px;
  display:flex;align-items:center;justify-content:center;
  font-size:4rem;flex-direction:column;gap:0.5rem;
  padding:2rem;
}
.svc-visual-label{font-size:0.78rem;color:var(--muted);font-weight:700;}

/* Process */
.process-section{background:var(--orange);}
.process-steps{
  display:grid;grid-template-columns:repeat(5,1fr);gap:0;
  margin-top:2rem;position:relative;
}
.process-steps::before{
  content:'';position:absolute;top:32px;left:10%;right:10%;
  height:2px;background:rgba(255,255,255,0.3);
}
.process-step{text-align:center;padding:0 0.5rem;}
.step-num{
  width:64px;height:64px;border-radius:50%;
  background:rgba(255,255,255,0.2);
  border:2px solid rgba(255,255,255,0.5);
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 1rem;
  font-family:'Nunito',sans-serif;font-size:1.4rem;font-weight:900;
  color:var(--yellow);position:relative;z-index:1;
  font-size:1.5rem;
}
.step-title{color:#fff;font-weight:700;font-size:0.88rem;margin-bottom:0.3rem;}
.step-desc{color:rgba(255,255,255,0.75);font-size:0.75rem;line-height:1.6;}

/* ── FAQ ── */
#faq-section{background:#FFF0E6;}
.faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;}
.faq-card{
  background:var(--white);border:2.5px solid var(--border);
  border-radius:18px;padding:1.6rem;
  box-shadow:3px 3px 0 var(--border);
}
.faq-q{
  font-weight:700;font-size:0.93rem;
  color:var(--brown);margin-bottom:0.7rem;
  display:flex;align-items:flex-start;gap:0.5rem;
}
.faq-q .q-badge{
  background:var(--orange);color:#fff;
  font-family:'Nunito',sans-serif;font-size:0.75rem;font-weight:900;
  padding:0.1rem 0.5rem;border-radius:99px;flex-shrink:0;margin-top:2px;
}
.faq-a{font-size:0.85rem;color:var(--muted);line-height:1.8;}
.faq-full{display:flex;flex-direction:column;gap:1rem;}
.faq-item{
  background:var(--white);border:2.5px solid var(--border);
  border-radius:18px;overflow:hidden;
  box-shadow:3px 3px 0 var(--border);transition:all 0.2s;
}
.faq-item:hover{border-color:var(--orange2);box-shadow:3px 3px 0 var(--orange2);}
.faq-q-btn{
  width:100%;text-align:left;background:none;border:none;
  padding:1.2rem 1.5rem;cursor:pointer;
  display:flex;justify-content:space-between;align-items:center;
  gap:1rem;
}
.faq-q-text{font-weight:700;font-size:0.95rem;color:var(--brown);display:flex;align-items:center;gap:0.6rem;}
.faq-arrow{font-size:1.2rem;color:var(--orange);transition:transform 0.3s;flex-shrink:0;}
.faq-item.open .faq-arrow{transform:rotate(180deg);}
.faq-answer{
  max-height:0;overflow:hidden;transition:max-height 0.35s ease,padding 0.35s;
  padding:0 1.5rem;
}
.faq-item.open .faq-answer{max-height:300px;padding:0 1.5rem 1.2rem;}
.faq-answer p{font-size:0.88rem;color:var(--muted);line-height:1.85;}
.faq-cats{display:flex;gap:0.6rem;flex-wrap:wrap;margin-bottom:2rem;}
.faq-cat-btn{
  background:var(--white);border:2px solid var(--border);
  border-radius:99px;padding:0.4rem 1rem;
  font-size:0.8rem;font-weight:700;color:var(--muted);
  cursor:pointer;transition:all 0.15s;
}
.faq-cat-btn:hover,.faq-cat-btn.active{background:var(--orange);color:#fff;border-color:var(--orange);}

/* ── CONTACT ── */
#contact-section{background:var(--cream);}
.contact-grid{
  display:grid;grid-template-columns:1fr 1.4fr;
  gap:3rem;align-items:start;
}
.contact-info-block{
  background:var(--white);border:2.5px solid var(--border);
  border-radius:20px;padding:1.8rem;box-shadow:4px 4px 0 var(--border);overflow:hidden;
}
.contact-info-block h3{
  font-family:'Nunito',sans-serif;font-size:1.1rem;font-weight:900;
  color:var(--brown);margin-bottom:1.2rem;
}
.ci-row{
  display:flex;align-items:center;gap:1rem;
  padding:0.9rem 0;border-bottom:2px dashed var(--border);
}
.ci-row:last-child{border-bottom:none;}
.ci-icon-wrap{
  width:42px;height:42px;background:var(--yellow);
  border:2px solid var(--brown);border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  font-size:1.2rem;flex-shrink:0;
}
.ci-label{font-size:0.72rem;color:var(--muted);font-weight:700;margin-bottom:1px;}
.ci-val{font-size:0.92rem;font-weight:700;color:var(--brown);}
.ci-val a{color:var(--orange);text-decoration:none;}
.ci-val a:hover{text-decoration:underline;}
.contact-form-wrap{
  background:var(--white);border:2.5px solid var(--border);
  border-radius:24px;padding:2rem;box-shadow:5px 5px 0 var(--border);
}
.cf-title{
  font-family:'Nunito',sans-serif;font-size:1.1rem;font-weight:900;
  color:var(--brown);margin-bottom:1.5rem;
  display:flex;align-items:center;gap:0.5rem;
}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.form-group{display:flex;flex-direction:column;gap:0.35rem;margin-bottom:0.9rem;}
.form-group label{font-size:0.78rem;font-weight:700;color:var(--brown2);letter-spacing:0.03em;}
.form-group input,.form-group textarea,.form-group select{
  border:2px solid var(--border);border-radius:12px;
  padding:0.7rem 1rem;
  font-family:'Noto Sans TC',sans-serif;font-size:0.9rem;
  color:var(--text);background:var(--cream);outline:none;
  transition:border-color 0.2s,box-shadow 0.2s;
}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{
  border-color:var(--orange);box-shadow:0 0 0 3px rgba(255,123,53,0.15);
}
.form-group select option{background:#fff;}
.form-group textarea{resize:vertical;min-height:110px;}
.btn-submit{
  width:100%;background:var(--orange);color:#fff;
  border:2.5px solid var(--brown);border-radius:99px;
  padding:0.9rem 2rem;font-size:1rem;font-weight:900;
  font-family:'Nunito',sans-serif;cursor:pointer;
  box-shadow:4px 4px 0 var(--brown);transition:all 0.15s;
  display:flex;align-items:center;justify-content:center;gap:0.5rem;
}
.btn-submit:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--brown);}
.btn-submit:active{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--brown);}
.btn-submit:disabled{opacity:0.6;cursor:not-allowed;transform:none;}

/* Map placeholder */
.map-placeholder{
  background:var(--card-bg);border:2.5px dashed var(--border);
  border-radius:20px;padding:3rem;text-align:center;
  margin-top:2rem;
}
.map-placeholder p{font-size:0.88rem;color:var(--muted);}

/* ── CTA BAND ── */
.cta-band{
  background:var(--brown);position:relative;z-index:1;
  padding:4rem 3.5rem;text-align:center;
}
.cta-band h2{color:#fff;margin-bottom:0.6rem;}
.cta-band p{color:rgba(255,255,255,0.75);margin-bottom:2rem;font-size:0.95rem;}
.cta-band .btn-main{display:inline-flex;margin:0 auto;}
.cta-btns{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;}
.btn-white{
  background:#fff;color:var(--orange);
  padding:0.85rem 2rem;border-radius:99px;
  text-decoration:none;font-weight:900;font-size:0.95rem;
  border:2.5px solid var(--orange);
  transition:all 0.15s;display:inline-flex;align-items:center;gap:0.4rem;
}
.btn-white:hover{background:var(--orange);color:#fff;box-shadow:4px 4px 0 rgba(255,255,255,0.3);}

/* ── TOAST ── */
#toast{
  position:fixed;bottom:2rem;left:50%;transform:translateX(-50%) translateY(120px);
  background:var(--brown);color:#fff;
  padding:0.9rem 2rem;border-radius:99px;
  font-weight:700;font-size:0.9rem;
  box-shadow:0 8px 30px rgba(0,0,0,0.2);
  transition:transform 0.4s cubic-bezier(0.34,1.56,0.64,1);
  z-index:9999;display:flex;align-items:center;gap:0.6rem;
}
#toast.show{transform:translateX(-50%) translateY(0);}

/* ── WAVE DIVIDERS ── */
.wave-divider{overflow:hidden;line-height:0;position:relative;z-index:1;}
.wave-divider svg{display:block;}

/* ── FOOTER ── */
footer{
  background:var(--brown);color:rgba(255,255,255,0.7);
  text-align:center;padding:2.5rem 2rem;
  font-size:0.82rem;position:relative;z-index:1;
}
.footer-logo{font-family:'Nunito',sans-serif;font-size:1.1rem;font-weight:900;color:#fff;margin-bottom:0.6rem;}
.footer-nav{display:flex;gap:1.5rem;justify-content:center;flex-wrap:wrap;margin-bottom:1rem;}
.footer-nav a{color:rgba(255,255,255,0.6);text-decoration:none;font-size:0.82rem;transition:color 0.2s;}
.footer-nav a:hover{color:#fff;}
.footer-contact{display:flex;gap:1.5rem;justify-content:center;flex-wrap:wrap;margin-bottom:1rem;}
.footer-contact a{color:rgba(255,255,255,0.7);text-decoration:none;transition:color 0.2s;}
.footer-contact a:hover{color:#fff;}

/* ── RESPONSIVE ── */
@media(max-width:900px){
  nav{padding:0.8rem 1.2rem;}
  nav ul{gap:0.5rem;}
  nav ul a{font-size:0.78rem;padding:0.2rem 0.4rem;}
  #hero{grid-template-columns:1fr;padding:5.5rem 1.5rem 3rem;}
  .hero-right{display:none;}
  .section-wrap{padding:3.5rem 1.5rem;}
  .page-hero{padding:6rem 1.5rem 3rem;}
  #why-section .section-wrap{grid-template-columns:1fr;}
  .why-grid,.why-big-grid{grid-template-columns:1fr 1fr;}
  #about .section-wrap{grid-template-columns:1fr;gap:2.5rem;}
  .services-grid{grid-template-columns:1fr 1fr;}
  .svc-detail-card{grid-template-columns:1fr;}
  .svc-detail-card.reverse{direction:ltr;}
  .faq-grid{grid-template-columns:1fr;}
  .contact-grid{grid-template-columns:1fr;gap:2rem;}
  .process-steps{grid-template-columns:1fr 1fr;gap:1.5rem;}
  .process-steps::before{display:none;}
  .team-grid{grid-template-columns:1fr 1fr;}
  .cta-band{padding:3rem 1.5rem;}
}
@media(max-width:580px){
  .services-grid{grid-template-columns:1fr;}
  .why-grid,.why-big-grid{grid-template-columns:1fr;}
  .hero-stats{flex-wrap:wrap;gap:0.8rem;}
  .form-row{grid-template-columns:1fr;}
  .team-grid{grid-template-columns:1fr;}
  .process-steps{grid-template-columns:1fr;}
  .values-grid{grid-template-columns:1fr;}
  nav ul{gap:0.3rem;}
  .nav-cta{display:none;}
}
