/* WEL-01 平静疗愈 — quiet practice room: sand, sage, air and circles. */
.tpl-wel-01{--gut:clamp(20px,5.5vw,96px);--max:1320px;--pad-x:max(var(--gut),calc((100% - var(--max))/2));--w1-serif:"Fraunces","Noto Serif SC",Georgia,serif;--w1-sans:"Manrope","Noto Sans SC",system-ui,sans-serif;font-family:var(--w1-sans);font-size:16.5px;line-height:1.75;letter-spacing:.005em}
.tpl-wel-01 h1,.tpl-wel-01 h2,.tpl-wel-01 h3{font-family:var(--w1-serif);font-weight:400;font-variation-settings:"SOFT" 100,"WONK" 0;letter-spacing:-.01em}
.w1-main>section{padding:clamp(72px,8.5vw,136px) var(--pad-x)}

/* header */
.w1-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 32px;padding:20px var(--pad-x)}
.w1-brand{font-family:var(--w1-serif);font-size:22px;letter-spacing:.02em;text-decoration:none;min-height:44px;display:flex;align-items:center}
.w1-nav{display:flex;flex-wrap:wrap;gap:0 30px}
.w1-nav a{min-height:44px;display:inline-flex;align-items:center;text-decoration:none;font-size:14px;font-weight:500;color:var(--muted);letter-spacing:.04em;position:relative;transition:color .2s}
.w1-nav a::after{content:"";position:absolute;left:0;right:0;bottom:10px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .3s}
.w1-nav a:hover{color:var(--fg)}
.w1-nav a:hover::after{transform:none}

/* type helpers */
.w1-label{display:flex;align-items:center;gap:14px;margin:0 0 22px;font-size:12px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--accent)}
.w1-label::before{content:"";width:28px;height:1px;background:currentColor;flex:none}
.w1-main h2{font-size:clamp(32px,4vw,54px);line-height:1.18}
.w1-intro{color:var(--muted);max-width:30em}
.w1-intro p:last-child{margin:0}
.w1-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:56px;padding:14px 32px;border-radius:999px;background:var(--accent);color:var(--on-accent);text-decoration:none;font-weight:600;font-size:15.5px;letter-spacing:.04em;transition:background .3s,transform .3s}
.w1-btn:hover{transform:translateY(-2px);background:color-mix(in srgb,var(--accent) 86%,var(--fg))}
.w1-link{display:inline-flex;align-items:center;gap:10px;min-height:56px;padding:0 6px;font-weight:600;font-size:15px;text-decoration:none;color:var(--fg);border-bottom:1px solid transparent}
.w1-link span{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);transition:transform .3s,border-color .3s}
.w1-link:hover span{transform:translateY(3px);border-color:var(--accent)}

/* hero */
.w1-main>.w1-hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(40px,6vw,110px);align-items:center;padding-top:clamp(40px,6vw,96px);padding-bottom:clamp(72px,9vw,140px);overflow:clip}
.w1-hero--text{grid-template-columns:minmax(0,1fr)!important;text-align:left}
.w1-eyebrow{margin:0 0 clamp(24px,3vw,40px);font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-weight:600;display:flex;align-items:center;gap:12px}
.w1-eyebrow::before{content:"";width:10px;height:10px;border-radius:50%;border:1.5px solid var(--accent);flex:none}
.w1-hero h1{font-size:clamp(44px,5.9vw,88px);line-height:1.08;font-weight:300;letter-spacing:-.02em;margin-bottom:clamp(24px,3vw,36px)}
.w1-sub{max-width:27em;font-size:clamp(16.5px,1.3vw,18.5px);color:var(--muted);line-height:1.85}
.w1-sub p:last-child{margin:0}
.w1-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;margin-top:clamp(32px,3.6vw,48px)}
.w1-hero-visual{position:relative;display:grid;place-items:center;padding:9%}
.w1-orb{position:relative;z-index:1;width:100%;aspect-ratio:1;border-radius:50%;overflow:hidden;background:var(--soft)}
.w1-orb img{width:100%;height:100%;object-fit:cover}
.w1-rings{position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle,transparent 0 55.5%,var(--line) 55.5% calc(55.5% + 1px),transparent calc(55.5% + 1px) 63%,var(--line) 63% calc(63% + 1px),transparent calc(63% + 1px) 70.5%,color-mix(in srgb,var(--line) 60%,transparent) 70.5% calc(70.5% + 1px),transparent calc(70.5% + 1px))}
.w1-rings::after{content:"";position:absolute;width:12px;height:12px;border-radius:50%;background:var(--accent);top:14.6%;left:14.6%;box-shadow:0 0 0 6px var(--bg)}
@media (prefers-reduced-motion:no-preference){.w1-rings{animation:w1-breathe 9s ease-in-out infinite alternate}}
@keyframes w1-breathe{from{transform:scale(.97)}to{transform:scale(1.03)}}

/* quiet service-word line */
.w1-words{padding:0 var(--pad-x)}
.w1-words p{margin:0;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 22px;padding:26px 0;border-block:1px solid var(--line);font-family:var(--w1-serif);font-size:clamp(17px,1.6vw,22px);font-style:italic;color:var(--muted)}
.w1-dot{width:5px;height:5px;border-radius:50%;background:var(--accent);opacity:.7}

/* about */
.w1-about-in{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px,8vw,140px);align-items:center}
.w1-about--text .w1-about-in{grid-template-columns:minmax(0,820px)}
.w1-oval{margin:0;width:min(100%,440px);aspect-ratio:4/5.6;border-radius:999px;overflow:hidden;justify-self:center;outline:1px solid var(--line);outline-offset:14px}
.w1-oval img{width:100%;height:100%;object-fit:cover}
.w1-about h2{margin-bottom:clamp(32px,4vw,56px);max-width:12em}
.w1-steps{position:relative;display:grid;gap:0}
.w1-steps::before{content:"";position:absolute;left:27px;top:28px;bottom:28px;width:1px;background:linear-gradient(var(--accent),var(--line))}
.w1-steps li{position:relative;display:grid;grid-template-columns:56px minmax(0,1fr);gap:24px;align-items:center;padding:12px 0}
.w1-step-n{position:relative;display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--bg);border:1px solid var(--line);font-family:var(--w1-serif);font-style:italic;font-size:19px;color:var(--accent);transition:background .3s,color .3s}
.w1-steps li:hover .w1-step-n{background:var(--accent);color:var(--on-accent)}
.w1-steps p{margin:0;font-size:clamp(17px,1.5vw,20px);font-weight:500;line-height:1.5}
.w1-about-body{font-size:clamp(18px,1.6vw,21px);color:var(--muted);max-width:32em}
.w1-main>.w1-about{background:var(--soft)}

/* service index */
.w1-sec-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px clamp(32px,6vw,96px);align-items:end;margin-bottom:clamp(40px,5vw,72px)}
.w1-index{border-top:1px solid var(--line)}
.w1-row{display:grid;grid-template-columns:72px minmax(0,1fr) minmax(0,1.25fr) auto;gap:16px clamp(20px,3vw,48px);align-items:center;padding:clamp(26px,3vw,40px) clamp(0px,1.4vw,20px);border-bottom:1px solid var(--line);transition:background .35s}
.w1-row:hover{background:color-mix(in srgb,var(--soft) 70%,transparent)}
.w1-row-n{font-family:var(--w1-serif);font-style:italic;font-size:18px;color:var(--accent)}
.w1-row h3{font-size:clamp(24px,2.3vw,32px);line-height:1.25}
.w1-row-desc{color:var(--muted);font-size:15.5px}
.w1-row-desc p{margin:0}
.w1-price{margin-top:8px!important;font-family:var(--w1-serif);font-size:19px;color:var(--fg)}
.w1-ask{display:inline-flex;align-items:center;gap:12px;min-height:48px;padding:0 6px 0 20px;border-radius:999px;border:1px solid var(--line);text-decoration:none;font-size:14px;font-weight:600;transition:background .3s,color .3s,border-color .3s}
.w1-ask-i{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--soft);transition:transform .3s}
.w1-ask:hover{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.w1-ask:hover .w1-ask-i{transform:translateX(3px);background:color-mix(in srgb,var(--on-accent) 18%,transparent)}

/* gallery: calm, asymmetric shapes */
.w1-gal{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-flow:row dense;gap:clamp(40px,5vw,72px) clamp(16px,2.4vw,36px);align-items:end}
.w1-g{margin:0;min-width:0}
.w1-frame{overflow:hidden;border-radius:clamp(20px,2.4vw,36px);background:var(--soft)}
.w1-frame img{width:100%;aspect-ratio:3/2;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.w1-g:hover .w1-frame img{transform:scale(1.035)}
.w1-g0{grid-column:1/span 7}
.w1-g1{grid-column:9/span 4}
.w1-g1 .w1-frame{border-radius:50%}
.w1-g1 .w1-frame img{aspect-ratio:1}
.w1-g2{grid-column:6/span 7;align-self:center}
.w1-g3{grid-column:2/span 3}
.w1-g3 .w1-frame{border-radius:999px}
.w1-g3 .w1-frame img{aspect-ratio:3/4.4}
.w1-g figcaption{display:flex;gap:12px;align-items:baseline;margin-top:16px;font-size:14px;color:var(--muted);line-height:1.5}
.w1-g1 figcaption,.w1-g3 figcaption{justify-content:center;text-align:center}
.w1-g figcaption span{font-family:var(--w1-serif);font-style:italic;color:var(--accent)}

/* testimonials */
.w1-center{text-align:center;max-width:760px;margin:0 auto clamp(40px,5vw,64px)}
.w1-center .w1-label{justify-content:center}
.w1-center .w1-label::after{content:"";width:28px;height:1px;background:currentColor;flex:none}
.w1-quote-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:clamp(32px,4vw,64px);max-width:1200px;margin:0 auto;text-align:center}
.w1-quote-list blockquote{font-family:var(--w1-serif);font-weight:300;font-size:clamp(21px,2vw,26px);line-height:1.55}
.w1-quote-list blockquote p:last-child{margin-bottom:0}
.w1-quote-list figcaption{margin-top:20px;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}

/* faq */
.w1-faq-list{max-width:860px;margin:0 auto;border-top:1px solid var(--line)}
.w1-faq-list details{border-bottom:1px solid var(--line)}
.w1-faq-list summary{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:72px;padding:22px 4px;font-family:var(--w1-serif);font-size:clamp(19px,1.7vw,23px);line-height:1.45;transition:color .2s}
.w1-faq-list summary:hover{color:var(--accent)}
.w1-faq-list summary::after{flex:none;display:grid;place-items:center;width:40px;height:40px;margin:0;border-radius:50%;border:1px solid var(--line);font-family:var(--w1-sans);font-size:20px;color:var(--accent)}
.w1-faq-list details p{margin:0 0 26px;padding:0 4px;max-width:40em;color:var(--muted)}

/* contact */
.w1-main>.w1-contact{padding-top:clamp(24px,3vw,48px)}
.w1-contact-in{position:relative;overflow:hidden;isolation:isolate;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(40px,6vw,96px);align-items:end;padding:clamp(40px,7vw,112px);border-radius:clamp(28px,3.6vw,56px);background:var(--soft)}
.w1-contact-rings{position:absolute;z-index:-1;width:clamp(360px,48vw,720px);aspect-ratio:1;right:-14%;top:-30%;border-radius:50%;background:repeating-radial-gradient(circle,transparent 0 46px,var(--line) 46px 47px)}
.w1-contact h2{font-size:clamp(36px,5vw,72px);font-weight:300;margin-bottom:20px}
.w1-contact-intro{color:var(--muted);max-width:30em;margin-bottom:32px}
.w1-contact-info{background:var(--bg);border-radius:clamp(20px,2.4vw,32px);padding:clamp(24px,3vw,40px)}
.w1-contact-list li{display:grid;grid-template-columns:110px minmax(0,1fr);gap:4px 16px;padding:14px 0;border-bottom:1px solid var(--line)}
.w1-contact-list li:first-child{padding-top:0}
.w1-contact-list li:last-child{border-bottom:0}
.w1-contact-list .bc-k{color:var(--accent);opacity:1;font-weight:600;padding-top:3px}
.w1-contact-list a{display:inline-flex;align-items:center;min-height:44px;margin:-10px 0;font-weight:600;text-decoration-color:var(--line)}
.w1-social{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.w1-social a{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border-radius:999px;border:1px solid var(--line);text-decoration:none;font-size:14px;font-weight:600}
.w1-social a:hover{border-color:var(--accent);color:var(--accent)}

.w1-foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 24px;padding:36px var(--pad-x) 48px;font-size:13px;color:var(--muted);letter-spacing:.06em}
.w1-foot-brand{font-family:var(--w1-serif);font-size:18px;color:var(--fg);letter-spacing:.02em}

@media (max-width:980px){
  .w1-row{grid-template-columns:52px minmax(0,1fr) auto}
  .w1-row-desc{grid-column:2/3}
  .w1-row .w1-ask{grid-column:3;grid-row:1/span 2;align-self:center}
}
@media (max-width:860px){
  .w1-head{justify-content:center;text-align:center}
  .w1-nav{justify-content:center;gap:0 20px}
  .w1-main>.w1-hero{grid-template-columns:minmax(0,1fr);gap:28px}
  .w1-hero-visual{order:-1;width:min(100%,460px);justify-self:center;padding:8%}
  .w1-about-in,.w1-sec-head,.w1-contact-in{grid-template-columns:minmax(0,1fr)}
  .w1-oval{width:min(78%,360px)}
  .w1-gal{grid-template-columns:repeat(6,minmax(0,1fr));gap:36px 16px}
  .w1-g0,.w1-g2{grid-column:1/-1}
  .w1-g1{grid-column:1/span 3}
  .w1-g3{grid-column:4/span 3}
  .w1-contact-rings{right:-40%;top:-20%}
}
@media (max-width:600px){
  .w1-nav a{font-size:13.5px}
  .w1-hero h1{font-size:clamp(40px,11.5vw,56px)}
  .w1-actions .w1-btn{flex:1 1 100%}
  .w1-row{grid-template-columns:minmax(0,1fr) auto;gap:10px 16px;padding:26px 0}
  .w1-row-n{grid-column:1/-1}
  .w1-row-desc{grid-column:1/-1}
  .w1-row h3{grid-column:1}
  .w1-row .w1-ask{grid-column:2;grid-row:2;padding:0 4px 0 14px}
  .w1-ask-t{font-size:13px}
  .w1-g1 figcaption,.w1-g3 figcaption{font-size:13px}
  .w1-contact-list li{grid-template-columns:minmax(0,1fr);gap:0}
  .w1-words p{gap:6px 14px;font-size:16px}
}
