/* BEA-02 清新自然 — botanical healing */
.tpl-bea-02{--gut:clamp(16px,4.5vw,64px);--b2-serif:"DM Serif Display","Noto Sans SC",Georgia,serif;--b2-sans:"Manrope","Noto Sans SC",system-ui,sans-serif;--r:clamp(24px,3vw,40px);font-family:var(--b2-sans);font-size:16.5px;line-height:1.7}
.tpl-bea-02 h1,.tpl-bea-02 h2,.tpl-bea-02 h3{font-family:var(--b2-serif);font-weight:400}
.tpl-bea-02 em{font-style:italic;color:var(--accent)}

.b2-head{display:flex;align-items:center;justify-content:space-between;gap:10px 24px;flex-wrap:wrap;padding:14px var(--gut)}
.b2-brand{font-family:var(--b2-serif);font-size:24px;text-decoration:none;min-height:44px;display:flex;align-items:center}
.b2-nav{display:flex;flex-wrap:wrap;gap:2px;padding:4px;border-radius:999px;background:var(--soft)}
.b2-nav a{text-decoration:none;min-height:44px;display:inline-flex;align-items:center;padding:0 16px;border-radius:999px;font-size:14px;font-weight:600;transition:background .2s,color .2s}
.b2-nav a:hover{background:var(--bg);color:var(--accent)}

.b2-main>section{padding:clamp(64px,8vw,120px) var(--gut)}
.b2-tag{display:inline-flex;align-items:center;gap:10px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--muted);margin:0 0 20px}
.b2-tag::before{content:"";width:9px;height:14px;border-radius:9px 0;background:var(--accent);transform:rotate(-20deg);flex:none}
.b2-main h2{font-size:clamp(34px,4.4vw,60px);line-height:1.06;letter-spacing:-.01em}
.b2-intro{color:var(--muted);max-width:34em}
.b2-intro p:last-child{margin-bottom:0}
.b2-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:14px 28px;border-radius:999px;background:var(--accent);color:var(--on-accent);text-decoration:none;font-weight:700;font-size:15px;text-align:center;transition:transform .2s,box-shadow .2s}
.b2-btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px -16px var(--accent)}

/* hero */
.b2-hero{padding-top:clamp(28px,4vw,56px)!important;max-width:1600px;margin:0 auto}
.b2-hero-copy{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:24px clamp(32px,5vw,80px);align-items:end;margin-bottom:clamp(28px,4vw,52px)}
.b2-hero h1{font-size:clamp(46px,7.4vw,118px);line-height:.98;letter-spacing:-.025em}
.b2-hero h1 em{display:block}
.b2-sub{font-size:clamp(17px,1.4vw,19px);color:var(--muted);margin-bottom:22px;max-width:24em}
.b2-sub p:last-child{margin:0}
.b2-hero--text .b2-hero-copy{grid-template-columns:1fr;max-width:1000px}
.b2-hero-media{position:relative}
.b2-hero-media figure{margin:0;border-radius:var(--r);overflow:hidden}
.b2-hero-media img{width:100%;aspect-ratio:16/8;object-fit:cover}
.b2-seal{position:absolute;right:clamp(16px,4vw,64px);top:0;transform:translateY(-50%);width:clamp(112px,12vw,168px);height:auto;font:700 9.5px/1 var(--b2-sans);letter-spacing:.12em;text-transform:uppercase}
.b2-seal circle{fill:var(--bg)}
.b2-seal text{fill:var(--fg)}
.b2-seal .b2-leaf{fill:none;stroke:var(--accent);stroke-width:1.6;stroke-linecap:round}
.b2-seal text{transform-origin:60px 60px}
@media (prefers-reduced-motion:no-preference){.b2-seal text{animation:b2-spin 28s linear infinite}}
@keyframes b2-spin{to{transform:rotate(360deg)}}

/* ritual panel */
.b2-ritual{padding-top:clamp(40px,6vw,96px)!important}
.b2-ritual-in{max-width:1400px;margin:0 auto;background:var(--soft);border-radius:var(--r);padding:clamp(28px,5vw,80px);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,6vw,96px);align-items:center}
.b2-ritual h2{margin-bottom:clamp(24px,3vw,40px)}
.b2-circle{margin:0;width:min(100%,380px);aspect-ratio:1;border-radius:50%;overflow:hidden;box-shadow:0 0 0 10px var(--bg)}
.b2-circle img{width:100%;height:100%;object-fit:cover}
.b2-steps{display:grid;gap:clamp(12px,1.6vw,18px);counter-reset:none}
.b2-steps li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(18px,3vw,36px);align-items:center;padding:clamp(18px,2.4vw,28px) clamp(20px,3vw,36px);background:var(--bg);border-radius:calc(var(--r) * .75)}
.b2-step-n{font-family:var(--b2-serif);font-size:clamp(52px,6vw,88px);line-height:.9;color:var(--accent)}
.b2-step-t{font-size:clamp(18px,1.6vw,21px);font-weight:600;line-height:1.45}
.b2-ritual-body{font-family:var(--b2-serif);font-size:clamp(22px,2.2vw,30px);line-height:1.45}

/* bento services */
.b2-bento{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-flow:row dense;gap:clamp(12px,1.6vw,20px)}
.b2-bento-head{grid-column:span 2;padding:clamp(8px,2vw,28px) clamp(4px,1vw,12px) clamp(8px,2vw,20px) 0;align-self:end}
.b2-bento-head h2{margin-bottom:16px;max-width:12em}
.b2-card{display:flex;flex-direction:column;gap:12px;padding:clamp(24px,2.6vw,36px);border-radius:var(--r);background:var(--soft);min-width:0;transition:transform .25s}
.b2-card:hover{transform:translateY(-3px)}
.b2-card--feature{grid-row:span 2;background:var(--accent);color:var(--on-accent);justify-content:flex-end;min-height:clamp(320px,34vw,480px);position:relative;overflow:hidden}
.b2-card--feature::before{content:"";position:absolute;width:70%;aspect-ratio:1;right:-18%;top:-18%;border-radius:50%;border:1px solid color-mix(in srgb,var(--on-accent) 35%,transparent);box-shadow:0 0 0 28px color-mix(in srgb,var(--on-accent) 6%,transparent)}
.b2-num{display:inline-flex;align-self:flex-start;align-items:center;justify-content:center;min-width:44px;height:30px;padding:0 12px;border-radius:999px;border:1px solid currentColor;font-size:13px;font-weight:700;opacity:.8;margin-bottom:auto}
.b2-card--feature .b2-num{margin-bottom:auto}
.b2-card h3{font-size:clamp(26px,2.4vw,34px);line-height:1.12;margin-top:clamp(24px,4vw,56px);position:relative}
.b2-card--feature h3{font-size:clamp(32px,3.4vw,48px)}
.b2-card-desc{color:var(--muted);font-size:15.5px}
.b2-card--feature .b2-card-desc{color:inherit;opacity:.9}
.b2-card-desc p{margin:0}
.b2-card-desc p+p{margin-top:.6em}
.b2-card-foot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 16px;margin-top:8px;position:relative}
.b2-price{margin:0;font-family:var(--b2-serif);font-size:24px;line-height:1.2}
.b2-ask{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border-radius:999px;background:var(--bg);color:var(--fg);text-decoration:none;font-size:14px;font-weight:700;transition:background .2s,color .2s}
.b2-ask:hover{background:var(--fg);color:var(--bg)}
.b2-card--feature .b2-ask{background:var(--on-accent);color:var(--accent)}

/* organic gallery */
.b2-work-head{max-width:1400px;margin:0 auto clamp(32px,4vw,56px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px 48px;align-items:end}
.b2-gal{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-flow:row dense;gap:clamp(14px,2vw,28px)}
.b2-g{margin:0;min-width:0;display:flex;flex-direction:column}
.b2-shape{overflow:hidden;border-radius:var(--r);position:relative;flex:1 1 auto}
.b2-shape img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform .6s ease}
.b2-g:hover .b2-shape img{transform:scale(1.04)}
.b2-g0{grid-column:span 2;grid-row:span 2}
.b2-g1{grid-row:span 2}
.b2-g0 .b2-shape,.b2-g1 .b2-shape{min-height:280px}
.b2-g0 .b2-shape img,.b2-g1 .b2-shape img{position:absolute;inset:0;height:100%;aspect-ratio:auto}
.b2-g1 .b2-shape{border-radius:999px}
.b2-g2 .b2-shape{border-radius:50%;flex:none}
.b2-g2 .b2-shape img{aspect-ratio:1}
.b2-g3 .b2-shape{flex:none;border-radius:var(--r) var(--r) 999px 999px}
.b2-g3 .b2-shape img{aspect-ratio:5/6}
.b2-g figcaption{font-size:13.5px;color:var(--muted);margin-top:12px;padding-left:6px;line-height:1.5}

/* testimonials */
.b2-quotes-head,.b2-faq-head{max-width:1400px;margin:0 auto clamp(28px,4vw,48px)}
.b2-quote-list{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:20px}
.b2-quote-list figure{background:var(--soft);border-radius:var(--r);padding:clamp(28px,3vw,44px)}
.b2-quote-list blockquote{font-family:var(--b2-serif);font-size:clamp(21px,2vw,26px);line-height:1.4}
.b2-quote-list blockquote::before{content:"\201C";display:block;font-size:64px;line-height:.6;color:var(--accent);margin-bottom:6px}
.b2-quote-list figcaption{font-weight:700;font-size:14px;color:var(--muted)}

/* faq */
.b2-faq{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:32px clamp(32px,6vw,96px);max-width:1528px;margin:0 auto}
.b2-faq-head{margin:0}
.b2-faq-list{display:grid;gap:12px}
.b2-faq-list details{background:var(--soft);border-radius:calc(var(--r) * .7);padding:0 clamp(20px,2.4vw,32px)}
.b2-faq-list summary{font-weight:700;font-size:17px;line-height:1.45;padding:20px 0;min-height:64px}
.b2-faq-list summary::after{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;margin-top:-3px;border-radius:50%;background:var(--bg);color:var(--accent)}
.b2-faq-list details p{margin:0 0 22px;color:var(--muted)}

/* contact */
.b2-contact-card{max-width:1400px;margin:0 auto;border-radius:var(--r);background:var(--accent);color:var(--on-accent);padding:clamp(32px,6vw,88px);display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);position:relative;overflow:hidden;--line:color-mix(in srgb,var(--on-accent) 30%,transparent)}
.b2-contact-card::after{content:"";position:absolute;width:clamp(240px,34vw,520px);aspect-ratio:1;left:-12%;bottom:-40%;border-radius:50%;border:1px solid var(--line);pointer-events:none}
.b2-contact-card>div{position:relative;z-index:1;min-width:0}
.b2-contact .b2-tag{color:inherit;opacity:.85}
.b2-contact .b2-tag::before{background:var(--on-accent)}
.b2-contact h2{margin-bottom:18px}
.b2-contact-intro{opacity:.9;margin-bottom:24px}
.b2-btn--inv{background:var(--on-accent);color:var(--accent)}
.b2-contact-list li{display:grid;grid-template-columns:120px minmax(0,1fr);gap:4px 16px;padding:14px 0;border-bottom:1px solid var(--line)}
.b2-contact-list li:first-child{border-top:1px solid var(--line)}
.b2-contact-list .bc-k{opacity:.85;padding-top:4px}
.b2-contact-list a{display:inline-flex;align-items:center;min-height:44px;margin:-10px 0;font-weight:700}
.b2-social{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.b2-social a{min-height:44px;display:inline-flex;align-items:center;padding:0 18px;border-radius:999px;border:1px solid var(--line);text-decoration:none;font-weight:700;font-size:14px}

.b2-foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 24px;padding:8px var(--gut) 40px;font-size:13px;color:var(--muted);max-width:1528px;margin:0 auto}
.b2-foot-brand{font-family:var(--b2-serif);font-size:20px;color:var(--fg)}

@media (max-width:980px){
  .b2-hero-copy{grid-template-columns:1fr}
  .b2-ritual-in{grid-template-columns:1fr}
  .b2-bento{grid-template-columns:repeat(2,minmax(0,1fr))}
  .b2-bento-head{grid-column:1/-1}
  .b2-card--feature{grid-row:auto;grid-column:1/-1;min-height:0}
  .b2-faq{grid-template-columns:1fr}
  .b2-contact-card{grid-template-columns:1fr}
  .b2-work-head{grid-template-columns:1fr}
}
@media (max-width:760px){
  .b2-head{justify-content:center}
  .b2-nav{justify-content:center;border-radius:28px}
  .b2-nav a{padding:0 12px;font-size:13.5px}
  .b2-hero-media img{aspect-ratio:4/3}
  .b2-seal{top:auto;bottom:0;transform:translateY(42%);right:16px}
  .b2-hero-aside{margin-bottom:8px}
  .b2-bento{grid-template-columns:1fr}
  .b2-gal{grid-template-columns:repeat(2,minmax(0,1fr))}
  .b2-g0{grid-column:1/-1;grid-row:auto}
  .b2-g0 .b2-shape img{position:static;aspect-ratio:3/2}
  .b2-g0 .b2-shape{min-height:0}
  .b2-g1{grid-row:span 2}
  .b2-circle{margin:0 auto;width:min(86%,340px)}
  .b2-contact-list li{grid-template-columns:1fr;gap:0}
}
.b2-contact-card--solo{grid-template-columns:minmax(0,820px);justify-content:center;text-align:center}
.b2-contact-card--solo .b2-contact-intro{margin-left:auto;margin-right:auto;max-width:34em}
.b2-contact-card--solo .b2-tag{justify-content:center}
