<!DOCTYPE html>

<html lang="zh-TW">

<head>

  <meta charset="UTF-8" />

  <meta name="viewport" content="width=device-width, initial-scale=1.0" />

  <meta name="description" content="好和工作坊 — 身心靈療癒空間。解惑諮詢、靈氣療癒、催眠療癒,陪伴你回到內在的安定與豐盛。" />

  <meta name="keywords" content="好和工作坊,身心靈,療癒,解惑諮詢,靈氣,催眠,台北" />

  <meta property="og:title" content="好和工作坊 — 好生活,一起過" />

  <meta property="og:description" content="透過能量療癒與深度諮詢,陪伴你找回內在的平靜與力量。" />

  <meta property="og:type" content="website" />

  <title>好和工作坊 — 好生活,一起過</title>


  <link rel="preconnect" href="https://fonts.googleapis.com" />

  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />

  <link href="https://fonts.googleapis.com/css2?family=Noto+Serif+TC:wght@300;400;500;600&family=Noto+Sans+TC:wght@300;400;500&family=Cormorant+Garamond:ital,wght@0,300;0,400;1,300;1,400&display=swap" rel="stylesheet" />


  <style>

    /* ─── TOKENS ─── */

    :root {

      --sand:   #f5f0e8;

      --linen:  #ede5d8;

      --sage:   #b8c4b1;

      --moss:   #7a8f72;

      --clay:   #c4a882;

      --warm:   #8c7355;

      --deep:   #3d3530;

      --ink:    #2a2420;

      --mist:   rgba(245,240,232,0.92);


      --fs-xs:  0.75rem;

      --fs-sm:  0.875rem;

      --fs-base: 1rem;

      --fs-md:  1.125rem;

      --fs-lg:  1.375rem;

      --fs-xl:  1.75rem;

      --fs-2xl: 2.5rem;

      --fs-3xl: 3.5rem;

      --fs-4xl: 5rem;


      --ease-gentle: cubic-bezier(0.25, 0.46, 0.45, 0.94);

      --ease-silk:   cubic-bezier(0.16, 1, 0.3, 1);

    }


    /* ─── RESET ─── */

    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    html { scroll-behavior: smooth; font-size: 16px; }

    body {

      font-family: 'Noto Sans TC', sans-serif;

      background: var(--sand);

      color: var(--ink);

      line-height: 1.8;

      font-weight: 300;

      overflow-x: hidden;

    }

    img { display: block; max-width: 100%; }

    a { color: inherit; text-decoration: none; }

    ul { list-style: none; }


    /* ─── TEXTURE OVERLAY ─── */

    body::before {

      content: '';

      position: fixed;

      inset: 0;

      background-image:

        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");

      pointer-events: none;

      z-index: 9999;

      opacity: 0.6;

    }


    /* ─── WEAVE PATTERN ─── */

    .weave-bg {

      background-image:

        repeating-linear-gradient(

          0deg,

          transparent,

          transparent 18px,

          rgba(180,160,130,0.06) 18px,

          rgba(180,160,130,0.06) 19px

        ),

        repeating-linear-gradient(

          90deg,

          transparent,

          transparent 18px,

          rgba(180,160,130,0.06) 18px,

          rgba(180,160,130,0.06) 19px

        );

    }


    /* ─── TYPOGRAPHY ─── */

    .serif { font-family: 'Noto Serif TC', serif; }

    .italic { font-family: 'Cormorant Garamond', serif; font-style: italic; }


    /* ─── NAV ─── */

    nav {

      position: fixed;

      top: 0; left: 0; right: 0;

      z-index: 100;

      padding: 1.5rem 3rem;

      display: flex;

      align-items: center;

      justify-content: space-between;

      transition: background 0.4s var(--ease-gentle), padding 0.4s var(--ease-gentle);

    }

    nav.scrolled {

      background: var(--mist);

      backdrop-filter: blur(12px);

      padding: 1rem 3rem;

      border-bottom: 1px solid rgba(180,160,130,0.2);

    }

    .nav-logo {

      font-family: 'Noto Serif TC', serif;

      font-size: var(--fs-md);

      font-weight: 500;

      letter-spacing: 0.12em;

      color: var(--deep);

    }

    .nav-logo span {

      font-family: 'Cormorant Garamond', serif;

      font-style: italic;

      font-size: var(--fs-lg);

      color: var(--warm);

      margin-right: 0.3em;

    }

    .nav-links {

      display: flex;

      gap: 2.5rem;

      align-items: center;

    }

    .nav-links a {

      font-size: var(--fs-sm);

      letter-spacing: 0.1em;

      color: var(--deep);

      opacity: 0.7;

      transition: opacity 0.25s;

      position: relative;

    }

    .nav-links a::after {

      content: '';

      position: absolute;

      bottom: -3px; left: 0; right: 0;

      height: 1px;

      background: var(--warm);

      transform: scaleX(0);

      transform-origin: left;

      transition: transform 0.3s var(--ease-gentle);

    }

    .nav-links a:hover { opacity: 1; }

    .nav-links a:hover::after { transform: scaleX(1); }

    .nav-cta {

      font-size: var(--fs-sm);

      letter-spacing: 0.12em;

      padding: 0.55rem 1.4rem;

      border: 1px solid var(--warm);

      color: var(--warm) !important;

      opacity: 1 !important;

      border-radius: 2rem;

      transition: background 0.25s, color 0.25s !important;

    }

    .nav-cta:hover {

      background: var(--warm);

      color: var(--sand) !important;

    }

    .nav-cta::after { display: none !important; }


    /* hamburger */

    .hamburger {

      display: none;

      flex-direction: column;

      gap: 5px;

      cursor: pointer;

      padding: 4px;

    }

    .hamburger span {

      display: block; width: 22px; height: 1.5px;

      background: var(--deep);

      transition: transform 0.3s, opacity 0.3s;

    }

    .hamburger.open span:nth-child(1) { transform: rotate(45deg) translate(4.5px, 4.5px); }

    .hamburger.open span:nth-child(2) { opacity: 0; }

    .hamburger.open span:nth-child(3) { transform: rotate(-45deg) translate(4.5px, -4.5px); }


    /* mobile nav drawer */

    .mobile-nav {

      display: none;

      position: fixed;

      top: 0; left: 0; right: 0; bottom: 0;

      background: var(--mist);

      backdrop-filter: blur(20px);

      z-index: 99;

      flex-direction: column;

      align-items: center;

      justify-content: center;

      gap: 2.5rem;

      opacity: 0;

      pointer-events: none;

      transition: opacity 0.4s var(--ease-gentle);

    }

    .mobile-nav.open {

      opacity: 1;

      pointer-events: all;

    }

    .mobile-nav a {

      font-family: 'Noto Serif TC', serif;

      font-size: var(--fs-xl);

      color: var(--deep);

      letter-spacing: 0.08em;

    }


    /* ─── HERO ─── */

    #hero {

      min-height: 100svh;

      display: flex;

      flex-direction: column;

      align-items: center;

      justify-content: center;

      text-align: center;

      padding: 8rem 2rem 5rem;

      position: relative;

      overflow: hidden;

    }

    .hero-ring {

      position: absolute;

      border-radius: 50%;

      border: 1px solid rgba(180,160,130,0.18);

      animation: breathe 8s ease-in-out infinite;

    }

    .hero-ring:nth-child(1) { width: 480px; height: 480px; animation-delay: 0s; }

    .hero-ring:nth-child(2) { width: 680px; height: 680px; animation-delay: 1.5s; }

    .hero-ring:nth-child(3) { width: 900px; height: 900px; animation-delay: 3s; }

    @keyframes breathe {

      0%, 100% { transform: scale(1); opacity: 0.5; }

      50% { transform: scale(1.03); opacity: 1; }

    }

    .hero-eyebrow {

      font-family: 'Cormorant Garamond', serif;

      font-style: italic;

      font-size: var(--fs-md);

      color: var(--warm);

      letter-spacing: 0.2em;

      margin-bottom: 1.5rem;

      opacity: 0;

      animation: fadeUp 1s var(--ease-silk) 0.3s forwards;

    }

    .hero-title {

      font-family: 'Noto Serif TC', serif;

      font-size: clamp(var(--fs-2xl), 6vw, var(--fs-4xl));

      font-weight: 300;

      color: var(--deep);

      line-height: 1.35;

      letter-spacing: 0.06em;

      margin-bottom: 1.8rem;

      opacity: 0;

      animation: fadeUp 1s var(--ease-silk) 0.5s forwards;

    }

    .hero-title em {

      font-family: 'Cormorant Garamond', serif;

      font-style: italic;

      font-weight: 300;

      color: var(--warm);

    }

    .hero-sub {

      font-size: var(--fs-md);

      color: var(--warm);

      font-weight: 300;

      letter-spacing: 0.05em;

      max-width: 480px;

      line-height: 2;

      margin-bottom: 3rem;

      opacity: 0;

      animation: fadeUp 1s var(--ease-silk) 0.7s forwards;

    }

    .hero-actions {

      display: flex;

      gap: 1.2rem;

      flex-wrap: wrap;

      justify-content: center;

      opacity: 0;

      animation: fadeUp 1s var(--ease-silk) 0.9s forwards;

    }

    .btn-primary {

      font-size: var(--fs-sm);

      letter-spacing: 0.14em;

      padding: 0.9rem 2.2rem;

      background: var(--warm);

      color: var(--sand);

      border-radius: 3rem;

      border: none;

      cursor: pointer;

      transition: background 0.3s, transform 0.2s;

      display: inline-block;

    }

    .btn-primary:hover {

      background: var(--deep);

      transform: translateY(-2px);

    }

    .btn-ghost {

      font-size: var(--fs-sm);

      letter-spacing: 0.14em;

      padding: 0.9rem 2.2rem;

      background: transparent;

      color: var(--deep);

      border-radius: 3rem;

      border: 1px solid rgba(60,50,40,0.3);

      cursor: pointer;

      transition: border-color 0.3s, transform 0.2s;

      display: inline-block;

    }

    .btn-ghost:hover {

      border-color: var(--warm);

      color: var(--warm);

      transform: translateY(-2px);

    }

    .hero-scroll {

      position: absolute;

      bottom: 2.5rem;

      left: 50%;

      transform: translateX(-50%);

      display: flex;

      flex-direction: column;

      align-items: center;

      gap: 0.5rem;

      opacity: 0;

      animation: fadeUp 1s var(--ease-silk) 1.3s forwards;

    }

    .hero-scroll span {

      font-size: var(--fs-xs);

      letter-spacing: 0.2em;

      color: var(--warm);

      opacity: 0.6;

      text-transform: uppercase;

    }

    .scroll-line {

      width: 1px; height: 40px;

      background: linear-gradient(to bottom, var(--warm), transparent);

      animation: scrollPulse 2s ease-in-out infinite;

    }

    @keyframes scrollPulse {

      0%, 100% { opacity: 0.4; height: 30px; }

      50% { opacity: 0.9; height: 50px; }

    }


    /* ─── SECTION BASE ─── */

    section { padding: 7rem 2rem; }

    .container { max-width: 1080px; margin: 0 auto; }

    .section-tag {

      font-family: 'Cormorant Garamond', serif;

      font-style: italic;

      font-size: var(--fs-sm);

      color: var(--warm);

      letter-spacing: 0.25em;

      text-transform: uppercase;

      margin-bottom: 1rem;

    }

    .section-title {

      font-family: 'Noto Serif TC', serif;

      font-size: clamp(var(--fs-xl), 3.5vw, var(--fs-3xl));

      font-weight: 300;

      color: var(--deep);

      line-height: 1.4;

      letter-spacing: 0.04em;

    }

    .divider {

      width: 48px; height: 1px;

      background: var(--clay);

      margin: 2rem 0;

    }

    .divider.center { margin: 2rem auto; }


    /* ─── REVEAL ANIMATION ─── */

    .reveal {

      opacity: 0;

      transform: translateY(32px);

      transition: opacity 0.9s var(--ease-silk), transform 0.9s var(--ease-silk);

    }

    .reveal.visible {

      opacity: 1;

      transform: translateY(0);

    }

    .reveal-delay-1 { transition-delay: 0.1s; }

    .reveal-delay-2 { transition-delay: 0.22s; }

    .reveal-delay-3 { transition-delay: 0.34s; }

    .reveal-delay-4 { transition-delay: 0.46s; }


    @keyframes fadeUp {

      from { opacity: 0; transform: translateY(24px); }

      to   { opacity: 1; transform: translateY(0); }

    }


    /* ─── ABOUT ─── */

    #about {

      background: var(--linen);

    }

    .about-grid {

      display: grid;

      grid-template-columns: 1fr 1fr;

      gap: 5rem;

      align-items: center;

    }

    .about-visual {

      position: relative;

      aspect-ratio: 3/4;

      max-height: 520px;

    }

    .about-card {

      background: var(--sand);

      border-radius: 2px;

      width: 100%; height: 100%;

      display: flex;

      align-items: center;

      justify-content: center;

      overflow: hidden;

      position: relative;

    }

    .about-mandala {

      width: 240px; height: 240px;

      opacity: 0.18;

    }

    .about-float {

      position: absolute;

      bottom: -1.5rem; right: -1.5rem;

      background: var(--warm);

      color: var(--sand);

      padding: 1.5rem;

      font-family: 'Noto Serif TC', serif;

      font-size: var(--fs-sm);

      letter-spacing: 0.08em;

      line-height: 2;

      max-width: 180px;

      text-align: center;

    }

    .about-text .section-title { margin-bottom: 1.5rem; }

    .about-text p {

      color: var(--warm);

      font-size: var(--fs-base);

      line-height: 2.2;

      margin-bottom: 1.4rem;

    }

    .about-stats {

      display: flex;

      gap: 3rem;

      margin-top: 2.5rem;

    }

    .stat-item {}

    .stat-num {

      font-family: 'Cormorant Garamond', serif;

      font-size: var(--fs-3xl);

      font-weight: 300;

      color: var(--warm);

      line-height: 1;

    }

    .stat-label {

      font-size: var(--fs-xs);

      letter-spacing: 0.15em;

      color: var(--deep);

      opacity: 0.55;

      margin-top: 0.3rem;

    }


    /* ─── PHILOSOPHY STRIP ─── */

    #philosophy {

      background: var(--deep);

      padding: 5rem 2rem;

      text-align: center;

      overflow: hidden;

      position: relative;

    }

    #philosophy::before {

      content: '';

      position: absolute;

      inset: 0;

      background-image:

        repeating-linear-gradient(

          45deg,

          transparent,

          transparent 40px,

          rgba(255,255,255,0.015) 40px,

          rgba(255,255,255,0.015) 41px

        );

    }

    .phil-quote {

      font-family: 'Cormorant Garamond', serif;

      font-style: italic;

      font-size: clamp(var(--fs-xl), 3.5vw, var(--fs-3xl));

      color: var(--linen);

      font-weight: 300;

      line-height: 1.7;

      max-width: 780px;

      margin: 0 auto 1.5rem;

      letter-spacing: 0.03em;

    }

    .phil-attr {

      font-size: var(--fs-sm);

      letter-spacing: 0.2em;

      color: var(--clay);

      opacity: 0.8;

    }

    .phil-deco {

      font-family: 'Cormorant Garamond', serif;

      font-size: 4rem;

      color: var(--clay);

      opacity: 0.3;

      line-height: 0.5;

      margin-bottom: 1.5rem;

      display: block;

    }


    /* ─── SERVICES ─── */

    #services {

      background: var(--sand);

    }

    .services-header {

      text-align: center;

      margin-bottom: 4.5rem;

    }

    .services-grid {

      display: grid;

      grid-template-columns: repeat(3, 1fr);

      gap: 1.5px;

      background: rgba(180,160,130,0.15);

      border: 1px solid rgba(180,160,130,0.15);

    }

    .service-card {

      background: var(--sand);

      padding: 3rem 2.5rem;

      transition: background 0.35s var(--ease-gentle);

      cursor: default;

      position: relative;

      overflow: hidden;

    }

    .service-card::before {

      content: '';

      position: absolute;

      bottom: 0; left: 0; right: 0;

      height: 2px;

      background: var(--warm);

      transform: scaleX(0);

      transition: transform 0.4s var(--ease-gentle);

    }

    .service-card:hover { background: var(--linen); }

    .service-card:hover::before { transform: scaleX(1); }

    .service-icon {

      font-family: 'Cormorant Garamond', serif;

      font-size: 2.8rem;

      color: var(--clay);

      opacity: 0.7;

      margin-bottom: 1.5rem;

      line-height: 1;

    }

    .service-name {

      font-family: 'Noto Serif TC', serif;

      font-size: var(--fs-lg);

      font-weight: 400;

      color: var(--deep);

      letter-spacing: 0.05em;

      margin-bottom: 1rem;

    }

    .service-desc {

      font-size: var(--fs-sm);

      color: var(--warm);

      line-height: 2;

      opacity: 0.9;

    }

    .service-tag {

      display: inline-block;

      margin-top: 1.5rem;

      font-size: var(--fs-xs);

      letter-spacing: 0.15em;

      color: var(--warm);

      border-bottom: 1px solid currentColor;

      padding-bottom: 1px;

    }


    /* ─── PRODUCTS ─── */

    #products {

      background: var(--linen);

    }

    .products-header {

      margin-bottom: 3.5rem;

    }

    .products-grid {

      display: grid;

      grid-template-columns: repeat(5, 1fr);

      gap: 1rem;

    }

    .product-item {

      text-align: center;

      padding: 2rem 1rem;

      background: var(--sand);

      border-radius: 2px;

      transition: transform 0.3s var(--ease-gentle), box-shadow 0.3s;

    }

    .product-item:hover {

      transform: translateY(-4px);

      box-shadow: 0 12px 32px rgba(60,50,40,0.08);

    }

    .product-glyph {

      font-size: 2rem;

      margin-bottom: 1rem;

      display: block;

    }

    .product-name {

      font-family: 'Noto Serif TC', serif;

      font-size: var(--fs-sm);

      font-weight: 400;

      color: var(--deep);

      letter-spacing: 0.06em;

      line-height: 1.6;

    }


    /* ─── TESTIMONIALS ─── */

    #testimonials {

      background: var(--sand);

      text-align: center;

    }

    .testimonials-header { margin-bottom: 4rem; }

    .testimonials-track {

      display: grid;

      grid-template-columns: repeat(3, 1fr);

      gap: 2rem;

    }

    .testimonial-card {

      background: var(--linen);

      padding: 2.5rem 2rem;

      text-align: left;

      position: relative;

    }

    .testimonial-card::before {

      content: '"';

      font-family: 'Cormorant Garamond', serif;

      font-size: 5rem;

      color: var(--clay);

      opacity: 0.3;

      position: absolute;

      top: 0.5rem; left: 1.5rem;

      line-height: 1;

    }

    .testimonial-text {

      font-size: var(--fs-sm);

      color: var(--deep);

      line-height: 2.1;

      opacity: 0.85;

      margin-bottom: 1.5rem;

      padding-top: 1rem;

    }

    .testimonial-author {

      font-size: var(--fs-xs);

      letter-spacing: 0.15em;

      color: var(--warm);

    }


    /* ─── CTA BAND ─── */

    #cta {

      background: linear-gradient(135deg, var(--warm) 0%, var(--clay) 100%);

      padding: 6rem 2rem;

      text-align: center;

      position: relative;

      overflow: hidden;

    }

    #cta::before {

      content: '';

      position: absolute;

      inset: 0;

      background-image:

        repeating-linear-gradient(

          0deg, transparent, transparent 20px,

          rgba(255,255,255,0.04) 20px, rgba(255,255,255,0.04) 21px

        ),

        repeating-linear-gradient(

          90deg, transparent, transparent 20px,

          rgba(255,255,255,0.04) 20px, rgba(255,255,255,0.04) 21px

        );

    }

    .cta-inner { position: relative; }

    .cta-pre {

      font-family: 'Cormorant Garamond', serif;

      font-style: italic;

      font-size: var(--fs-md);

      color: rgba(245,240,232,0.75);

      letter-spacing: 0.2em;

      margin-bottom: 1.2rem;

    }

    .cta-title {

      font-family: 'Noto Serif TC', serif;

      font-size: clamp(var(--fs-xl), 4vw, var(--fs-3xl));

      font-weight: 300;

      color: var(--sand);

      line-height: 1.45;

      letter-spacing: 0.05em;

      margin-bottom: 2.5rem;

    }

    .btn-light {

      display: inline-block;

      font-size: var(--fs-sm);

      letter-spacing: 0.14em;

      padding: 1rem 2.5rem;

      background: var(--sand);

      color: var(--warm);

      border-radius: 3rem;

      transition: background 0.3s, transform 0.2s;

    }

    .btn-light:hover {

      background: var(--deep);

      color: var(--sand);

      transform: translateY(-2px);

    }


    /* ─── FAQ ─── */

    #faq {

      background: var(--linen);

    }

    .faq-header { margin-bottom: 3.5rem; }

    .faq-list { max-width: 720px; }

    .faq-item {

      border-bottom: 1px solid rgba(180,160,130,0.3);

    }

    .faq-q {

      width: 100%;

      text-align: left;

      background: none;

      border: none;

      padding: 1.6rem 0;

      font-family: 'Noto Serif TC', serif;

      font-size: var(--fs-md);

      font-weight: 400;

      color: var(--deep);

      letter-spacing: 0.04em;

      cursor: pointer;

      display: flex;

      justify-content: space-between;

      align-items: center;

      gap: 1rem;

    }

    .faq-q:hover { color: var(--warm); }

    .faq-icon {

      flex-shrink: 0;

      width: 20px; height: 20px;

      position: relative;

    }

    .faq-icon::before,

    .faq-icon::after {

      content: '';

      position: absolute;

      background: currentColor;

      transition: transform 0.35s var(--ease-gentle);

    }

    .faq-icon::before { width: 12px; height: 1px; top: 50%; left: 50%; transform: translate(-50%,-50%); }

    .faq-icon::after  { width: 1px; height: 12px; top: 50%; left: 50%; transform: translate(-50%,-50%); }

    .faq-item.open .faq-icon::after { transform: translate(-50%,-50%) rotate(90deg); opacity: 0; }

    .faq-a {

      max-height: 0;

      overflow: hidden;

      transition: max-height 0.5s var(--ease-gentle), padding 0.35s;

      font-size: var(--fs-sm);

      color: var(--warm);

      line-height: 2.1;

      padding: 0;

    }

    .faq-item.open .faq-a {

      max-height: 300px;

      padding-bottom: 1.5rem;

    }


    /* ─── FOOTER ─── */

    footer {

      background: var(--ink);

      padding: 5rem 2rem 3rem;

      color: rgba(245,240,232,0.55);

    }

    .footer-inner {

      max-width: 1080px;

      margin: 0 auto;

      display: grid;

      grid-template-columns: 2fr 1fr 1fr;

      gap: 4rem;

      padding-bottom: 3rem;

      border-bottom: 1px solid rgba(255,255,255,0.07);

    }

    .footer-brand h3 {

      font-family: 'Noto Serif TC', serif;

      font-size: var(--fs-lg);

      font-weight: 400;

      color: var(--linen);

      letter-spacing: 0.08em;

      margin-bottom: 1rem;

    }

    .footer-brand p {

      font-size: var(--fs-sm);

      line-height: 2;

      max-width: 280px;

    }

    .footer-col h4 {

      font-size: var(--fs-xs);

      letter-spacing: 0.2em;

      text-transform: uppercase;

      color: var(--linen);

      margin-bottom: 1.2rem;

    }

    .footer-col li {

      margin-bottom: 0.7rem;

    }

    .footer-col a {

      font-size: var(--fs-sm);

      transition: color 0.2s;

    }

    .footer-col a:hover { color: var(--clay); }

    .footer-bottom {

      max-width: 1080px;

      margin: 2rem auto 0;

      display: flex;

      justify-content: space-between;

      align-items: center;

      font-size: var(--fs-xs);

      letter-spacing: 0.1em;

    }

    .footer-bottom span { opacity: 0.45; }


    /* ─── PROGRESS BAR ─── */

    .reading-bar {

      position: fixed;

      top: 0; left: 0;

      height: 2px;

      background: var(--clay);

      width: 0%;

      z-index: 101;

      transition: width 0.1s linear;

    }


    /* ─── MOBILE ─── */

    @media (max-width: 768px) {

      nav { padding: 1.2rem 1.5rem; }

      nav.scrolled { padding: 0.9rem 1.5rem; }

      .nav-links { display: none; }

      .hamburger { display: flex; }

      .mobile-nav { display: flex; }


      #hero { padding: 6rem 1.5rem 4rem; }

      .hero-ring:nth-child(1) { width: 280px; height: 280px; }

      .hero-ring:nth-child(2) { width: 420px; height: 420px; }

      .hero-ring:nth-child(3) { width: 560px; height: 560px; }


      section { padding: 5rem 1.5rem; }


      .about-grid {

        grid-template-columns: 1fr;

        gap: 3rem;

      }

      .about-visual { max-height: 320px; }

      .about-float { bottom: -1rem; right: -0.5rem; padding: 1rem; max-width: 140px; }

      .about-stats { gap: 2rem; }


      .services-grid { grid-template-columns: 1fr; }

      .products-grid { grid-template-columns: repeat(3, 1fr); }


      .testimonials-track { grid-template-columns: 1fr; }


      .footer-inner {

        grid-template-columns: 1fr;

        gap: 2.5rem;

      }

      .footer-bottom {

        flex-direction: column;

        gap: 0.8rem;

        text-align: center;

      }

    }


    @media (max-width: 480px) {

      .products-grid { grid-template-columns: repeat(2, 1fr); }

      .hero-actions { flex-direction: column; align-items: center; }

      .about-stats { flex-direction: column; gap: 1.5rem; }

    }

  </style>

</head>


<body class="weave-bg">


  <!-- Reading progress -->

  <div class="reading-bar" id="readingBar"></div>


  <!-- NAV -->

  <nav id="nav">

    <div class="nav-logo">

      <span>好和</span>工作坊

    </div>

    <ul class="nav-links">

      <li><a href="#about">關於</a></li>

      <li><a href="#services">服務</a></li>

      <li><a href="#products">能量商品</a></li>

      <li><a href="#testimonials">回饋</a></li>

      <li><a href="#faq">Q&A</a></li>

      <li><a href="#cta" class="nav-cta">預約諮詢</a></li>

    </ul>

    <div class="hamburger" id="hamburger" aria-label="選單">

      <span></span><span></span><span></span>

    </div>

  </nav>


  <!-- MOBILE DRAWER -->

  <div class="mobile-nav" id="mobileNav">

    <a href="#about" onclick="closeMobile()">關於</a>

    <a href="#services" onclick="closeMobile()">服務</a>

    <a href="#products" onclick="closeMobile()">能量商品</a>

    <a href="#testimonials" onclick="closeMobile()">回饋</a>

    <a href="#faq" onclick="closeMobile()">Q&A</a>

    <a href="#cta" onclick="closeMobile()" style="color:var(--warm)">預約諮詢</a>

  </div>


  <!-- HERO -->

  <section id="hero">

    <div class="hero-ring"></div>

    <div class="hero-ring"></div>

    <div class="hero-ring"></div>


    <p class="hero-eyebrow">Hoho Life · 好和工作坊</p>

    <h1 class="hero-title serif">

      當你願意回到自己<br><em>生命的光就在那裡</em>

    </h1>

    <p class="hero-sub">

      身心靈能量療癒空間<br>

      陪伴你從迷霧中看見方向,找回內在的安定與豐盛

    </p>

    <div class="hero-actions">

      <a href="#services" class="btn-primary">探索服務</a>

      <a href="#about" class="btn-ghost">了解好和</a>

    </div>


    <div class="hero-scroll">

      <span>向下探索</span>

      <div class="scroll-line"></div>

    </div>

  </section>


  <!-- ABOUT -->

  <section id="about">

    <div class="container">

      <div class="about-grid">

        <div class="about-visual reveal">

          <div class="about-card">

            <!-- decorative mandala SVG -->

            <svg class="about-mandala" viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">

              <g fill="none" stroke="#8c7355" stroke-width="0.8">

                <circle cx="100" cy="100" r="90"/>

                <circle cx="100" cy="100" r="70"/>

                <circle cx="100" cy="100" r="50"/>

                <circle cx="100" cy="100" r="30"/>

                <circle cx="100" cy="100" r="10"/>

                <line x1="100" y1="10" x2="100" y2="190"/>

                <line x1="10" y1="100" x2="190" y2="100"/>

                <line x1="27" y1="27" x2="173" y2="173"/>

                <line x1="173" y1="27" x2="27" y2="173"/>

                <line x1="63.4" y1="10" x2="136.6" y2="190"/>

                <line x1="10" y1="63.4" x2="190" y2="136.6"/>

                <line x1="136.6" y1="10" x2="63.4" y2="190"/>

                <line x1="10" y1="136.6" x2="190" y2="63.4"/>

                <path d="M100 10 Q130 55 100 100 Q70 55 100 10"/>

                <path d="M190 100 Q145 130 100 100 Q145 70 190 100"/>

                <path d="M100 190 Q70 145 100 100 Q130 145 100 190"/>

                <path d="M10 100 Q55 70 100 100 Q55 130 10 100"/>

              </g>

            </svg>

            <div class="about-float serif">

              身心靈<br>一體<br>自在好生活

            </div>

          </div>

        </div>


        <div class="about-text">

          <p class="section-tag reveal">About · 關於好和</p>

          <h2 class="section-title serif reveal reveal-delay-1">

            調整能量<br>讓生命更平靜<br>更豐盛

          </h2>

          <div class="divider reveal reveal-delay-2"></div>

          <p class="reveal reveal-delay-2">

            「好和」以調整能量,協助你更平靜、更健康、更豐盛喜悅為使命。每一個人的內在都存在著身、心、靈三個層次——當這三者能量運作和諧,你將是健康且完整的。

          </p>

          <p class="reveal reveal-delay-3">

            我們相信,真正的療癒不是逃避,而是陪伴你看見自己,走到你滿意的軌道,好好過你的人生,拿回自己的力量。

          </p>

          <div class="about-stats reveal reveal-delay-4">

            <div class="stat-item">

              <div class="stat-num italic">10+</div>

              <div class="stat-label">年 療癒陪伴</div>

            </div>

            <div class="stat-item">

              <div class="stat-num italic">500+</div>

              <div class="stat-label">位 個案服務</div>

            </div>

            <div class="stat-item">

              <div class="stat-num italic">20+</div>

              <div class="stat-label">種 療癒工具</div>

            </div>

          </div>

        </div>

      </div>

    </div>

  </section>


  <!-- PHILOSOPHY STRIP -->

  <section id="philosophy">

    <div class="container" style="text-align:center">

      <span class="phil-deco reveal">"</span>

      <p class="phil-quote reveal reveal-delay-1">

        如果愛不能喚醒你,那麼生命便會用痛苦喚醒你。<br>直到你願意醒來,為自己做出改變。

      </p>

      <p class="phil-attr reveal reveal-delay-2">— 好和工作坊 · 核心信念</p>

    </div>

  </section>


  <!-- SERVICES -->

  <section id="services">

    <div class="container">

      <div class="services-header">

        <p class="section-tag reveal">Services · 服務項目</p>

        <h2 class="section-title serif reveal reveal-delay-1">從內在出發<br>找到屬於你的療癒路徑</h2>

        <div class="divider center reveal reveal-delay-2"></div>

      </div>


      <div class="services-grid">

        <div class="service-card reveal">

          <div class="service-icon italic">✦</div>

          <h3 class="service-name serif">解惑諮詢</h3>

          <p class="service-desc">

            陪伴你看見影響人生的七要素,結合能量學與心理學工具,聚焦關鍵問題,找到突破口與新的可能性。獲美國 IAPC 與英國 CAMBMS 國際證照認可。

          </p>

          <span class="service-tag">一對一 · 線上/面對面</span>

        </div>


        <div class="service-card reveal reveal-delay-1">

          <div class="service-icon italic">◎</div>

          <h3 class="service-name serif">靈氣療癒</h3>

          <p class="service-desc">

            透過學習靈氣,卸除焦慮緊張的情緒與身心煩惱,恢復原有的自在平衡。對現代人大加分的能量療癒工具,讓身心系統重新呼吸。

          </p>

          <span class="service-tag">個人療癒 · 培訓課程</span>

        </div>


        <div class="service-card reveal reveal-delay-2">

          <div class="service-icon italic">∞</div>

          <h3 class="service-name serif">催眠療癒</h3>

          <p class="service-desc">

            深入潛意識層次,解開長期慣性與限制性信念。在安全的引導空間中,讓你接觸到那個更完整的自己,整合所有內在面向。

          </p>

          <span class="service-tag">個人療癒 · 執行師培訓</span>

        </div>


        <div class="service-card reveal reveal-delay-3">

          <div class="service-icon italic">◇</div>

          <h3 class="service-name serif">冥想工作坊</h3>

          <p class="service-desc">

            給自己一點時間,享受身心靈釋放的感覺。透過引導冥想與鬆身活動,讓緊繃的神經系統回到當下,感受呼吸帶來的安定。

          </p>

          <span class="service-tag">團體 · 定期活動</span>

        </div>


        <div class="service-card reveal reveal-delay-4">

          <div class="service-icon italic">✧</div>

          <h3 class="service-name serif">合一覺醒課程</h3>

          <p class="service-desc">

            提高生命視野角度,陪伴自己與他人用更廣的視角看待生命問題。每一天都是一個新的開始,讓光的課程引領你走向更豐盛的生命。

          </p>

          <span class="service-tag">系列課程 · 深度學習</span>

        </div>


        <div class="service-card reveal reveal-delay-4">

          <div class="service-icon italic">○</div>

          <h3 class="service-name serif">SRT 靈性回歸</h3>

          <p class="service-desc">

            與個案一對一諮詢療癒,提供最適合的方式與途徑,獲得有力的支援與能量清理,協助靈性層次的深度轉化。

          </p>

          <span class="service-tag">個案 · 預約制</span>

        </div>

      </div>

    </div>

  </section>


  <!-- PRODUCTS -->

  <section id="products">

    <div class="container">

      <div class="products-header">

        <p class="section-tag reveal">Energy Products · 五感能量商品</p>

        <h2 class="section-title serif reveal reveal-delay-1">開啟五感<br>讓每日平衡又開心</h2>

        <div class="divider reveal reveal-delay-2"></div>

        <p style="color:var(--warm);font-size:var(--fs-sm);line-height:2;max-width:480px;" class="reveal reveal-delay-3">

          藉由五感能量商品,讓我們身心靈一體,自在好生活。每一件商品都承載著對生活品質的細膩關注。

        </p>

      </div>


      <div class="products-grid">

        <div class="product-item reveal">

          <span class="product-glyph">🌿</span>

          <div class="product-name serif">七色線香</div>

        </div>

        <div class="product-item reveal reveal-delay-1">

          <span class="product-glyph">🍵</span>

          <div class="product-name serif">安化黑茶</div>

        </div>

        <div class="product-item reveal reveal-delay-2">

          <span class="product-glyph">🛁</span>

          <div class="product-name serif">奇楠葉除障沐浴包</div>

        </div>

        <div class="product-item reveal reveal-delay-3">

          <span class="product-glyph">◯</span>

          <div class="product-name serif">太公線香座</div>

        </div>

        <div class="product-item reveal reveal-delay-4">

          <span class="product-glyph">✦</span>

          <div class="product-name serif">解惑卡</div>

        </div>

      </div>

    </div>

  </section>


  <!-- TESTIMONIALS -->

  <section id="testimonials">

    <div class="container">

      <div class="testimonials-header">

        <p class="section-tag reveal">Stories · 真實回饋</p>

        <h2 class="section-title serif reveal reveal-delay-1">他們如何<br>找回自己的光</h2>

        <div class="divider center reveal reveal-delay-2"></div>

      </div>


      <div class="testimonials-track">

        <div class="testimonial-card reveal">

          <p class="testimonial-text">

            「解惑諮詢的威力,不僅僅是你帶來的這個問題而已,很多時候它會在各層面去協助我們破除長期以來我們的慣性。這次諮詢直指核心,讓我看到一直知道卻沒有去直視面對的問題。」

          </p>

          <div class="testimonial-author">— L. 小姐 · 解惑諮詢學員</div>

        </div>


        <div class="testimonial-card reveal reveal-delay-1">

          <p class="testimonial-text">

            「培訓讓我明白,除了我所熟悉的自己外,還有一個我不太熟悉的自己。當我去整合內在所有面向,內在會有一股力量長出,讓我感覺更踏實。」

          </p>

          <div class="testimonial-author">— S. 先生 · 解惑諮詢教練培訓</div>

        </div>


        <div class="testimonial-card reveal reveal-delay-2">

          <p class="testimonial-text">

            「雖然表面上只是問一個重點問題,透過層層引導,會發現到非常深處的自己。諮詢過程讓我再次感受到宇宙的奧妙,並知道照顧好自己,就能成為別人的光。」

          </p>

          <div class="testimonial-author">— A. 小姐 · 個案諮詢</div>

        </div>

      </div>

    </div>

  </section>


  <!-- CTA -->

  <section id="cta">

    <div class="container">

      <div class="cta-inner">

        <p class="cta-pre reveal">準備好了嗎</p>

        <h2 class="cta-title serif reveal reveal-delay-1">

          給自己一個機會<br>重新看見內在的光

        </h2>

        <a href="https://www.hoho-life.com/consulting" target="_blank" rel="noopener" class="btn-light reveal reveal-delay-2">

          立即預約諮詢

        </a>

      </div>

    </div>

  </section>


  <!-- FAQ -->

  <section id="faq">

    <div class="container">

      <div class="faq-header">

        <p class="section-tag reveal">FAQ · 常見問題</p>

        <h2 class="section-title serif reveal reveal-delay-1">你可能想知道</h2>

        <div class="divider reveal reveal-delay-2"></div>

      </div>


      <ul class="faq-list">

        <li class="faq-item reveal">

          <button class="faq-q serif" aria-expanded="false">

            解惑諮詢和一般心理諮商有什麼不同?

            <span class="faq-icon"></span>

          </button>

          <div class="faq-a">

            解惑諮詢結合能量學與心理學工具,除了處理表面問題,更深入探索影響人生的七要素,協助你看見問題背後的能量模式與慣性。獲美國 IAPC 與英國 CAMBMS 國際雙證照認可,是一套獨特且完整的系統。

          </div>

        </li>

        <li class="faq-item reveal reveal-delay-1">

          <button class="faq-q serif" aria-expanded="false">

            第一次接觸能量療癒,我適合從哪個服務開始?

            <span class="faq-icon"></span>

          </button>

          <div class="faq-a">

            建議從「個人解惑諮詢」開始。這是最直接、最個人化的入口,教練會根據你目前的狀況引導你,找到最適合的方向。如果你喜歡群體能量,也可以先參加我們的冥想工作坊體驗看看。

          </div>

        </li>

        <li class="faq-item reveal reveal-delay-2">

          <button class="faq-q serif" aria-expanded="false">

            療癒課程可以線上進行嗎?

            <span class="faq-icon"></span>

          </button>

          <div class="faq-a">

            可以。解惑諮詢提供線上與面對面兩種方式。無論身處何地,能量的連結不受空間限制。面對面服務位於台北,請預約後確認場地細節。

          </div>

        </li>

        <li class="faq-item reveal reveal-delay-3">

          <button class="faq-q serif" aria-expanded="false">

            我可以如何購買能量商品?

            <span class="faq-icon"></span>

          </button>

          <div class="faq-a">

            能量商品可透過官方網站訂購,也可前往工作坊現場選購。七色線香、安化黑茶、解惑卡等商品皆為精選品項,歡迎聯繫我們了解詳情。

          </div>

        </li>

        <li class="faq-item reveal reveal-delay-4">

          <button class="faq-q serif" aria-expanded="false">

            如何聯繫好和工作坊預約服務?

            <span class="faq-icon"></span>

          </button>

          <div class="faq-a">

            歡迎透過官網預約頁面、電話 02-2602-1091(AM 10:00 – PM 6:00),或 Email yungfan1989@gmail.com 與我們聯繫。我們會在一個工作天內回覆。

          </div>

        </li>

      </ul>

    </div>

  </section>


  <!-- FOOTER -->

  <footer>

    <div class="footer-inner">

      <div class="footer-brand">

        <h3 class="serif">好和工作坊</h3>

        <p>

          以調整能量,協助你更平靜、更健康、更豐盛喜悅為使命。<br>

          好生活,一起過。

        </p>

        <div style="margin-top:1.5rem;font-size:0.75rem;letter-spacing:0.12em;color:var(--clay);opacity:0.7;">

          Hoho Life · 台北市

        </div>

      </div>

      <div class="footer-col">

        <h4>服務</h4>

        <ul>

          <li><a href="https://www.hoho-life.com/consulting" target="_blank" rel="noopener">解惑諮詢</a></li>

          <li><a href="https://www.hoho-life.com/reiki" target="_blank" rel="noopener">靈氣療癒</a></li>

          <li><a href="https://www.hoho-life.com/consult" target="_blank" rel="noopener">催眠療癒</a></li>

          <li><a href="https://www.hoho-life.com/course" target="_blank" rel="noopener">課程介紹</a></li>

          <li><a href="https://www.hoho-life.com/event" target="_blank" rel="noopener">近期活動</a></li>

        </ul>

      </div>

      <div class="footer-col">

        <h4>關於</h4>

        <ul>

          <li><a href="https://www.hoho-life.com/about" target="_blank" rel="noopener">品牌故事</a></li>

          <li><a href="https://www.hoho-life.com/product" target="_blank" rel="noopener">能量商品</a></li>

          <li><a href="mailto:yungfan1989@gmail.com">聯繫我們</a></li>

        </ul>

        <div style="margin-top:1.8rem;font-size:0.75rem;line-height:2.2;color:rgba(245,240,232,0.4);">

          02-2602-1091<br>

          AM 10:00 – PM 6:00

        </div>

      </div>

    </div>

    <div class="footer-bottom">

      <span>© 2025 好和工作坊 Hoho Life. All rights reserved.</span>

      <span style="font-family:'Cormorant Garamond',serif;font-style:italic;color:var(--clay);opacity:0.5;">好生活,一起過。</span>

    </div>

  </footer>


  <script>

    // ─── NAV SCROLL ───

    const nav = document.getElementById('nav');

    const readingBar = document.getElementById('readingBar');

    window.addEventListener('scroll', () => {

      nav.classList.toggle('scrolled', window.scrollY > 60);

      const doc = document.documentElement;

      const pct = (window.scrollY / (doc.scrollHeight - doc.clientHeight)) * 100;

      readingBar.style.width = pct + '%';

    }, { passive: true });


    // ─── HAMBURGER ───

    const hamburger = document.getElementById('hamburger');

    const mobileNav = document.getElementById('mobileNav');

    hamburger.addEventListener('click', () => {

      hamburger.classList.toggle('open');

      mobileNav.classList.toggle('open');

      document.body.style.overflow = mobileNav.classList.contains('open') ? 'hidden' : '';

    });

    function closeMobile() {

      hamburger.classList.remove('open');

      mobileNav.classList.remove('open');

      document.body.style.overflow = '';

    }


    // ─── REVEAL ON SCROLL ───

    const reveals = document.querySelectorAll('.reveal');

    const observer = new IntersectionObserver((entries) => {

      entries.forEach(e => {

        if (e.isIntersecting) {

          e.target.classList.add('visible');

          observer.unobserve(e.target);

        }

      });

    }, { threshold: 0.12, rootMargin: '0px 0px -40px 0px' });

    reveals.forEach(el => observer.observe(el));


    // ─── FAQ ACCORDION ───

    document.querySelectorAll('.faq-q').forEach(btn => {

      btn.addEventListener('click', () => {

        const item = btn.closest('.faq-item');

        const isOpen = item.classList.contains('open');

        // close all

        document.querySelectorAll('.faq-item').forEach(i => {

          i.classList.remove('open');

          i.querySelector('.faq-q').setAttribute('aria-expanded', 'false');

        });

        // toggle clicked

        if (!isOpen) {

          item.classList.add('open');

          btn.setAttribute('aria-expanded', 'true');

        }

      });

    });


    // ─── SUBTLE HERO PARALLAX ───

    const rings = document.querySelectorAll('.hero-ring');

    window.addEventListener('scroll', () => {

      const y = window.scrollY;

      rings.forEach((r, i) => {

        r.style.transform = `translateY(${y * (0.08 + i * 0.04)}px)`;

      });

    }, { passive: true });

  </script>

</body>

</html>