*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Sans","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;line-height:1.65;color:#64748b;background:#fff;-webkit-font-smoothing:antialiased}
a{color:#2f855a}
img{max-width:100%;height:auto;display:block}
.wrap{width:min(1200px,92vw);margin:0 auto}
.narrow{max-width:680px}

/* Header — 图二：左 Logo + 右横向导航 */
.site-header{background:#fff;padding:1.25rem 0 1rem}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:2rem;position:relative}
.logo{font-family:Georgia,"Times New Roman","Hiragino Mincho ProN",serif;font-size:1.4rem;font-weight:700;color:#2f855a;text-decoration:none;flex-shrink:0}
.nav-panel{display:flex;align-items:center;margin-left:auto}
.nav-toggle{display:none;flex-shrink:0;border:1px solid #cbd5e1;background:#fff;padding:.5rem 1rem;border-radius:999px;cursor:pointer;font:inherit;font-size:.8125rem;color:#94a3b8}
.nav{list-style:none;margin:0;padding:0;display:flex;gap:2rem;align-items:center}
.nav a{text-decoration:none;color:#64748b;font-size:.9375rem;font-weight:400;white-space:nowrap}
.nav a:hover{color:#0f172a}
@media(max-width:520px){
  .nav-toggle{display:block}
  .nav-panel{display:none;width:100%;position:absolute;top:calc(100% + .5rem);left:0;right:0;background:#fff;padding:.5rem 0;border-radius:16px;box-shadow:0 10px 40px rgba(15,23,42,.1);margin-left:0;z-index:50}
  .site-header.open .nav-panel{display:block}
  .nav{flex-direction:column;align-items:stretch;gap:0;padding:0 .5rem}
  .nav a{display:block;padding:.7rem .75rem;border-radius:8px}
}

/* Hero — 图二：居中标题 + 副标题 */
.hero{padding:3.5rem 0 3rem;text-align:center}
.hero-inner{max-width:620px;margin:0 auto;padding:0 1rem}
.hero h1{font-size:clamp(1.75rem,4vw,2.75rem);font-weight:700;color:#0f172a;margin:0 auto 1rem;line-height:1.3;letter-spacing:-.02em;text-align:center;max-width:18em}
.hero p{font-size:1.05rem;color:#64748b;margin:0 auto;line-height:1.75;text-align:center;max-width:36em}

/* Sections */
.section{padding:0 0 4.5rem}
.section-head{text-align:center;margin:0 auto 2.5rem;max-width:560px;padding:0 1rem}
.section-head h2{font-size:clamp(1.5rem,3vw,2rem);color:#0f172a;margin:0 0 .5rem;font-weight:700;text-align:center}
.section-head p{margin:0;color:#64748b;font-size:1rem;line-height:1.7;text-align:center}
.section-gap{margin-top:1.5rem}

/* 图二核心网格：左大竖卡 + 右两横卡 */
.layout-grid{display:grid;gap:20px;align-items:stretch}
@media(min-width:768px){
  .layout-grid{grid-template-columns:1fr 1fr}
  .card-stack{display:flex;flex-direction:column;gap:20px;height:100%}
  .card-stack .card-row{flex:1}
}
.layout-reverse .card-tall{order:2}
.layout-reverse .card-stack{order:1}

/* Cards */
.card{background:#fff;border-radius:20px;box-shadow:0 6px 28px rgba(15,23,42,.07);border:1px solid rgba(15,23,42,.05)}
.card-tall{display:flex;flex-direction:column;height:100%;overflow:hidden;padding:0}
.card-tall .card-img-top{padding:0;line-height:0}
.card-tall .card-img-top img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:0}
.card-tall .card-body{padding:1.25rem 1.5rem 1.5rem}
.card-row{display:flex;flex-direction:row;align-items:stretch;padding:12px;min-height:0}
.card-img-side{flex:0 0 42%;max-width:42%}
.card-img-side img{width:100%;height:100%;min-height:140px;aspect-ratio:1;object-fit:cover;border-radius:14px}
.card-body{padding:.75rem 1rem .75rem .875rem;flex:1;display:flex;flex-direction:column;justify-content:center;min-width:0}
.card-body h3{margin:.5rem 0 .35rem;font-size:1.0625rem;font-weight:700;color:#0f172a;line-height:1.35}
.card-body p{margin:0;font-size:.8125rem;color:#64748b;line-height:1.55}
.pill{display:inline-block;font-size:.625rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#2f855a;background:#2f855a18;padding:.3rem .65rem;border-radius:999px}
@media(max-width:767px){
  .card-row{flex-direction:column;padding:12px}
  .card-img-side{flex:none;max-width:100%;width:100%}
  .card-img-side img{min-height:auto;aspect-ratio:16/10;border-radius:14px}
  .card-body{padding:.875rem .25rem 0}
  .card-tall .card-img-top img{aspect-ratio:16/10;border-radius:16px}
}

/* Plain blocks */
.plain-card{background:#fff;border-radius:20px;padding:2rem;box-shadow:0 6px 28px rgba(15,23,42,.06);border:1px solid rgba(15,23,42,.05)}
.plain-card h2{margin:0 0 1rem;font-size:1.25rem;color:#0f172a;font-weight:700}
.plain-card p{margin:0 0 .75rem;font-size:.9375rem;line-height:1.65}
.faq-item{border-bottom:1px solid #f1f5f9}
.faq-q{width:100%;text-align:left;background:none;border:none;padding:1rem 0;font:inherit;font-weight:600;cursor:pointer;display:flex;justify-content:space-between;color:#0f172a;font-size:.9375rem}
.faq-q::after{content:"+";color:#2f855a}
.faq-q[aria-expanded=true]::after{content:"−"}
.faq-a{max-height:0;overflow:hidden;transition:max-height .35s}
.faq-a.open{max-height:220px;padding-bottom:.875rem}
.faq-a p{margin:0;color:#64748b;font-size:.875rem}
.contact-form label{display:block;font-size:.8125rem;font-weight:600;margin-bottom:.375rem;color:#475569}
.contact-form input,.contact-form textarea,.contact-form select{width:100%;padding:.6875rem 1rem;border:1px solid #e2e8f0;border-radius:10px;font:inherit;margin-bottom:1rem}
.btn{display:inline-flex;padding:.75rem 1.75rem;background:#2f855a;color:#fff;border:none;border-radius:10px;font:inherit;font-weight:600;cursor:pointer}
.form-msg{color:#15803d;font-size:.875rem;margin-top:.5rem}

/* Footer */
.site-footer{background:#0f172a;color:#94a3b8;padding:2.5rem 0 1.5rem;margin-top:2rem;font-size:.875rem}
.site-footer a{color:#cbd5e1;text-decoration:none}
.footer-grid{display:grid;gap:1.5rem;margin-bottom:1.5rem}
@media(min-width:640px){.footer-grid{grid-template-columns:2fr 1fr 1fr}}
.footer-grid strong{color:#f8fafc;font-size:1rem}
.footer-links{display:flex;flex-wrap:wrap;gap:1rem;margin-top:.75rem}
.footer-links a{color:#64748b;font-size:.8125rem}
.footer-copy{border-top:1px solid #1e293b;padding-top:1rem;font-size:.8125rem;color:#64748b}
