:root{
  --paper:#f7f2e7;--paper2:#fffdf7;--green:#0e4a35;--green2:#176246;
  --brown:#8b542d;--ink:#25231f;--muted:#6f6a61;--line:#d9cdb5;--accent:#b74d3b;
  --shadow:0 14px 40px rgba(35,35,25,.08);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;line-height:1.85;font-size:18px;padding-bottom:76px}
img{max-width:100%;display:block}
a{color:inherit}
.hero{position:relative;min-height:clamp(680px,92svh,820px);display:flex;align-items:flex-end;overflow:hidden;background:#dcd4c4}
.hero__photo{position:absolute;inset:0}
.hero__photo img{width:100%;height:100%;object-fit:cover;object-position:center 42%}
.hero__veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(247,242,231,.98) 0%,rgba(247,242,231,.88) 36%,rgba(247,242,231,.20) 68%,rgba(247,242,231,.02) 100%),linear-gradient(0deg,rgba(10,25,18,.35),transparent 45%)}
.hero__copy{position:relative;z-index:2;width:min(920px,calc(100vw - 48px));padding:90px 24px 80px;margin-left:max(24px,calc((100vw - 1100px)/2));}
.eyebrow,.section-kicker{font-weight:700;letter-spacing:.14em;color:var(--green);margin:0 0 8px;font-size:.92rem}
.hero .eyebrow{font-size:clamp(1.3rem,1.8vw,1.55rem);letter-spacing:.1em;line-height:1.5;margin-bottom:12px}
h1,h2,h3,p{margin-top:0}
h1{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:clamp(3.25rem,4.7vw,4.35rem);line-height:1.2;letter-spacing:.035em;margin-bottom:28px;color:var(--green)}
/* 見出しは指定した二行を必ず保ち、単語単位で縦に崩れないようにする。 */
h1 span{display:block;white-space:nowrap}
.hero__lead{font-size:1.25rem;font-weight:700;margin-bottom:0}
.hero__accent{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;color:var(--brown);font-size:clamp(1.8rem,4.5vw,2.7rem);font-weight:700;margin:0 0 14px}
.hero__description{font-size:1.05rem;max-width:610px}
.button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:999px;padding:15px 25px;font-weight:800}
.button--primary{background:var(--green);color:white;box-shadow:var(--shadow)}
.section{width:min(1080px,calc(100% - 32px));margin:0 auto;padding:92px 0}
.section h2{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;color:var(--green);font-size:clamp(2rem,5vw,3.3rem);line-height:1.35;margin-bottom:24px}
.section--intro{max-width:820px}
.section--intro p:not(.section-kicker){font-size:1.08rem}
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.feature,.detail-card{background:rgba(255,253,247,.8);border:1px solid var(--line);border-radius:18px;padding:26px;box-shadow:0 5px 18px rgba(40,30,20,.03)}
.feature__num{font-family:Georgia,serif;color:var(--brown);font-weight:700}
.feature h3{font-size:1.35rem;color:var(--green);margin:6px 0 10px}
.feature p{margin:0;color:#5d584f}
.section--price{background:var(--paper2);border:1px solid var(--line);border-radius:28px;padding-left:clamp(20px,5vw,60px);padding-right:clamp(20px,5vw,60px);box-shadow:var(--shadow)}
.price-lead{text-align:center;color:var(--green);font-weight:800;font-size:1.15rem}
.price-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.price-card{border:2px solid var(--green);border-radius:18px;text-align:center;padding:24px 14px;background:#fff}
.price-card span{display:block;background:var(--green);color:#fff;border-radius:8px;padding:5px;font-weight:800}
.price-card strong{display:block;font-size:clamp(2.4rem,7vw,4.4rem);line-height:1.2;color:var(--green);margin-top:15px}
.price-card small{font-size:.42em}
.price-example{margin-top:18px;border:1px solid var(--green);border-radius:14px;padding:16px 20px;text-align:center}
.price-example span{display:block;font-weight:700}.price-example strong{font-size:1.25rem}.price-example em{color:var(--accent);font-style:normal;font-size:1.45em}
.notice{margin:18px 0 0;padding:13px 16px;border:2px solid var(--accent);border-radius:12px;color:var(--accent);font-weight:800;text-align:center}
.fine{font-size:.9rem;color:var(--muted);text-align:center;margin-bottom:0}
.section--audience{display:grid;grid-template-columns:1fr;max-width:900px}
.check-list{list-style:none;padding:0;margin:22px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:13px 28px}
.check-list li{position:relative;padding-left:30px;font-weight:700}.check-list li:before{content:"✓";position:absolute;left:0;top:0;color:var(--green);font-weight:900}
.section--grave{background:linear-gradient(135deg,#f0eadb,#fffdf7);border:1px solid var(--line);border-radius:28px;padding-left:clamp(22px,5vw,60px);padding-right:clamp(22px,5vw,60px)}
.info-box{border-left:5px solid var(--green);background:#fff;padding:18px 20px;border-radius:8px}.info-box strong{color:var(--green);font-size:1.1rem}.info-box span{color:var(--muted);font-size:.92rem}
.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.detail-card h3{color:var(--green);font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:1.35rem}.detail-card ul{margin:0;padding-left:1.2em}
.section--contact{text-align:center;background:var(--green);color:white;max-width:none;width:100%;padding:88px 20px}
.section--contact .section-kicker{color:#e7d6ae}.section--contact h2{color:white}
.contact-org{font-size:1.35rem;font-weight:800;margin-bottom:0}.contact-name{margin-bottom:6px}
.contact-phone,.contact-subphone{display:block;text-decoration:none;font-weight:900;letter-spacing:.04em}
.contact-phone{font-size:clamp(2.5rem,9vw,5rem);color:#f5d77b;line-height:1.15}
.contact-label{margin:30px 0 0}.contact-subphone{font-size:1.7rem;color:#f5d77b}.contact-address{margin:28px 0 0;color:#e9e3d8}
.fixed-call{position:fixed;z-index:50;left:0;right:0;bottom:0;padding:8px 12px;background:rgba(14,74,53,.96);backdrop-filter:blur(10px);box-shadow:0 -6px 25px rgba(0,0,0,.15)}
.fixed-call a{display:flex;align-items:center;justify-content:center;gap:18px;color:white;text-decoration:none;font-weight:800}.fixed-call strong{color:#f5d77b;font-size:1.2rem}
.petals{position:fixed;inset:0;pointer-events:none;z-index:40;overflow:hidden}
.petal{position:absolute;top:-40px;width:12px;height:8px;background:rgba(238,164,177,.76);border-radius:80% 10% 80% 10%;filter:blur(.1px);animation:fall linear forwards}
@keyframes fall{0%{transform:translate3d(0,-30px,0) rotate(0deg);opacity:0}8%{opacity:.8}50%{transform:translate3d(var(--drift),55vh,0) rotate(180deg)}100%{transform:translate3d(calc(var(--drift)*-0.35),110vh,0) rotate(420deg);opacity:0}}
@media (max-width:760px){
  body{font-size:17px}
  .hero{min-height:780px;align-items:flex-end}
  .hero__veil{background:linear-gradient(0deg,rgba(247,242,231,.98) 0%,rgba(247,242,231,.88) 43%,rgba(247,242,231,.16) 78%,rgba(247,242,231,.02) 100%)}
  .hero__copy{margin:0;padding:420px 20px 50px;width:100%}
  .hero .eyebrow{font-size:1.18rem;letter-spacing:.07em;margin-bottom:10px}
  h1{font-size:clamp(1.9rem,8.5vw,2.45rem);line-height:1.28;letter-spacing:.015em;margin-bottom:22px}
  .feature-grid,.detail-grid,.price-grid{grid-template-columns:1fr}
  .check-list{grid-template-columns:1fr}
  .section{padding:70px 0}
  .section--price,.section--grave{border-radius:20px}
  .fixed-call a{gap:10px}.fixed-call strong{font-size:1rem}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}.petals{display:none}
}
