/* ─── 滿願樹身心場 Kalpavriksha Somatic Field ─── */
:root{
  --paper:#fbf8f1;
  --ink:#4a4a40;
  --ink-light:#7d7d6f;
  --green:#7a9461;
  --green-deep:#55704a;
  --green-pale:#e8efdd;
  --sun:#f2c94c;
  --sun-pale:#fdf3d7;
  --clay:#d98e5f;
  --clay-pale:#f7e6d8;
  --plum:#7c4a5a;
  --serif:"Noto Serif TC",serif;
  --sans:"Noto Sans TC",sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.9;font-size:16px}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;color:var(--green-deep);line-height:1.5}
a{color:var(--green-deep)}
img{max-width:100%;display:block}
.wrap{max-width:1000px;margin:0 auto;padding:0 24px}

/* header */
header{position:sticky;top:0;z-index:50;background:rgba(251,248,241,.92);backdrop-filter:blur(6px);border-bottom:1px solid #eee5d2}
.nav{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;max-width:1000px;margin:0 auto}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.brand-mark{width:38px;height:38px;flex:none}
.brand-name{font-family:var(--serif);font-size:1.05rem;font-weight:700;color:var(--green-deep);letter-spacing:.06em}
.brand-sub{display:block;font-size:.62rem;color:var(--ink-light);letter-spacing:.14em;font-family:var(--sans);font-weight:400}
nav.menu{display:flex;gap:26px}
nav.menu a{text-decoration:none;font-size:.95rem;color:var(--ink);letter-spacing:.1em;padding:4px 0;border-bottom:2px solid transparent}
nav.menu a:hover,nav.menu a.on{color:var(--green-deep);border-bottom-color:var(--sun)}
.menu-btn{display:none;background:none;border:none;font-size:1.6rem;color:var(--green-deep);cursor:pointer}

/* hero */
.hero{position:relative;overflow:hidden;background:linear-gradient(160deg,#dcecdf 0%,#eef3d9 42%,#fdf3d7 75%,#fbe8c9 100%)}
.hero-inner{max-width:1000px;margin:0 auto;padding:96px 24px 110px;position:relative;z-index:2;text-align:center}
.hero h1{font-size:clamp(1.7rem,4.5vw,2.8rem);letter-spacing:.12em;margin-bottom:14px}
.hero p.tag{font-size:clamp(.95rem,2vw,1.15rem);color:var(--ink);letter-spacing:.18em;margin-bottom:34px}
.hero .cta{display:inline-block;background:var(--green);color:#fff;text-decoration:none;padding:12px 34px;border-radius:999px;letter-spacing:.2em;font-size:.95rem;box-shadow:0 4px 14px rgba(85,112,74,.25);transition:.2s}
.hero .cta:hover{background:var(--green-deep);transform:translateY(-2px)}
.hero svg.scene{position:absolute;bottom:-6px;left:0;width:100%;height:auto;z-index:1;opacity:.9}

/* sections */
section{padding:70px 0}
section.alt{background:#f4efe2}
.sec-head{text-align:center;margin-bottom:44px}
.sec-head h2{font-size:1.7rem;letter-spacing:.22em}
.sec-head .en{display:block;font-size:.72rem;letter-spacing:.3em;color:var(--clay);margin-top:6px;font-family:var(--sans)}
.leaf-divider{width:70px;height:3px;background:var(--sun);margin:16px auto 0;border-radius:2px}

.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center}
.intro-text p{margin-bottom:1.1em;text-align:justify}
.intro-art{border-radius:18px;overflow:hidden;box-shadow:0 10px 30px rgba(90,90,60,.12)}

/* cards */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:24px}
.card{background:#fff;border-radius:16px;padding:30px 26px;box-shadow:0 6px 20px rgba(110,100,60,.08);border-top:4px solid var(--green-pale);transition:.25s}
.card:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(110,100,60,.14)}
.card .ico{font-size:1.9rem;margin-bottom:10px}
.card h3{font-size:1.12rem;letter-spacing:.12em;margin-bottom:8px}
.card p{font-size:.9rem;color:var(--ink-light)}
.card a.more{font-size:.85rem;letter-spacing:.1em}

/* class detail */
.class-block{background:#fff;border-radius:18px;box-shadow:0 6px 22px rgba(110,100,60,.08);padding:38px;margin-bottom:34px;display:grid;grid-template-columns:280px 1fr;gap:34px;align-items:start}
.class-block.flip{grid-template-columns:1fr 280px}
.class-block.flip .class-img{order:2}
.class-img{border-radius:12px;overflow:hidden;aspect-ratio:1/1;box-shadow:0 6px 16px rgba(90,90,60,.15)}
.class-body h3{font-size:1.35rem;letter-spacing:.14em;margin-bottom:4px}
.class-body .en{font-size:.75rem;letter-spacing:.24em;color:var(--clay);margin-bottom:14px;display:block}
.class-body p{margin-bottom:.9em;font-size:.95rem;text-align:justify}
.sched{background:var(--green-pale);border-radius:10px;padding:14px 18px;font-size:.9rem;margin:14px 0}
.sched b{color:var(--green-deep)}
.sched span{display:block}
.btn{display:inline-block;background:var(--clay);color:#fff;text-decoration:none;padding:9px 26px;border-radius:999px;font-size:.88rem;letter-spacing:.16em;margin-top:6px;transition:.2s}
.btn:hover{background:#c2794b}
.btn.green{background:var(--green)}
.btn.green:hover{background:var(--green-deep)}

/* quote */
.quote{max-width:720px;margin:0 auto;text-align:center;font-family:var(--serif);font-size:1.15rem;color:var(--green-deep);letter-spacing:.06em}
.quote .who{display:block;margin-top:18px;font-size:.85rem;color:var(--clay);letter-spacing:.3em}

/* gallery */
.g-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px}
.g-item{aspect-ratio:1/1;border-radius:14px;overflow:hidden;position:relative;box-shadow:0 5px 16px rgba(110,100,60,.1)}
.g-item img{width:100%;height:100%;object-fit:cover;transition:.35s}
.g-item:hover img{transform:scale(1.05)}
.g-ph{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--green-deep);font-size:.85rem;letter-spacing:.12em;text-align:center;padding:14px}
.g-ph small{color:var(--ink-light);font-size:.72rem;letter-spacing:.05em}
.ph1{background:linear-gradient(150deg,#e8efdd,#d3e4c8)}
.ph2{background:linear-gradient(150deg,#fdf3d7,#f7e2ae)}
.ph3{background:linear-gradient(150deg,#f7e6d8,#efd0b8)}
.ph4{background:linear-gradient(150deg,#ddeaf0,#c4dbe6)}
.ph5{background:linear-gradient(150deg,#efe0e6,#e2c9d3)}

/* about */
.founder{display:grid;grid-template-columns:300px 1fr;gap:44px;align-items:start}
.founder-img{border-radius:16px;overflow:hidden;box-shadow:0 8px 24px rgba(90,90,60,.14)}
.founder h3{font-size:1.3rem;letter-spacing:.14em;margin-bottom:4px}
.founder .en{font-size:.75rem;letter-spacing:.22em;color:var(--clay);display:block;margin-bottom:16px}
.founder p{margin-bottom:.9em;text-align:justify}
.badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.badges span{background:var(--green-pale);color:var(--green-deep);border-radius:999px;padding:5px 16px;font-size:.8rem;letter-spacing:.08em}

/* contact */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:34px}
.c-card{background:#fff;border-radius:16px;padding:34px;box-shadow:0 6px 20px rgba(110,100,60,.08)}
.c-card h3{font-size:1.15rem;letter-spacing:.16em;margin-bottom:18px}
.c-row{display:flex;gap:14px;align-items:flex-start;margin-bottom:16px;font-size:.95rem}
.c-row .i{flex:none;width:34px;height:34px;border-radius:50%;background:var(--green-pale);display:flex;align-items:center;justify-content:center;font-size:1rem}
.c-row a{word-break:break-all}
.soc{display:flex;gap:14px;margin-top:20px}
.soc a{display:inline-flex;align-items:center;gap:8px;background:var(--sun-pale);border-radius:999px;padding:8px 20px;text-decoration:none;font-size:.88rem;letter-spacing:.08em;transition:.2s}
.soc a:hover{background:var(--sun)}

/* footer */
footer{background:var(--green-deep);color:#e9efdf;padding:44px 24px 30px;text-align:center;margin-top:40px}
footer .f-name{font-family:var(--serif);font-size:1.1rem;letter-spacing:.2em;margin-bottom:8px}
footer p{font-size:.82rem;letter-spacing:.08em;color:#c3d0b2}
footer a{color:#f2e8b8;text-decoration:none}

@media(max-width:760px){
  nav.menu{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);flex-direction:column;gap:0;padding:10px 24px 20px;border-bottom:1px solid #eee5d2}
  nav.menu.open{display:flex}
  nav.menu a{padding:12px 0;border-bottom:1px solid #efe8d6}
  .menu-btn{display:block}
  .intro-grid,.founder,.contact-grid{grid-template-columns:1fr}
  .class-block,.class-block.flip{grid-template-columns:1fr}
  .class-block.flip .class-img{order:0}
  .class-img{max-width:340px}
  .hero-inner{padding:70px 24px 90px}
}
