
:root{
  --blue:#5070B0;
  --vivid:#0050C3;
  --magenta:#C82060;
  --peach:#FF8B6B;
  --grey:#6E7078;
  --dark:#282C34;
  --light:#EBF1FA;
  --bg:#FFFFFF;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;color:var(--dark);line-height:1.8;background:var(--bg);}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:980px;margin:0 auto;padding:0 20px;}

/* header */
header{position:sticky;top:0;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);z-index:100;border-bottom:1px solid #e8ecf4;}
.hd{display:flex;align-items:center;justify-content:space-between;height:64px;}
.hd .brand{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--blue);font-size:18px;}
.hd .brand img{height:46px;width:auto;border-radius:6px;}
.hd nav{display:flex;gap:18px;font-size:14px;color:var(--grey);}
.hd nav a:hover{color:var(--vivid);}
.tel-btn{background:var(--vivid);color:#fff;padding:8px 16px;border-radius:24px;font-size:14px;font-weight:700;}
#menu-toggle{display:none;}
.burger{display:none;font-size:26px;color:var(--blue);cursor:pointer;user-select:none;margin-left:14px;}
@media(max-width:760px){
  .hd nav{display:none;}
  .burger{display:block;}
  #menu-toggle:checked ~ nav{display:flex;flex-direction:column;position:absolute;top:64px;left:0;right:0;background:rgba(255,255,255,.98);padding:20px 28px;gap:18px;font-size:16px;box-shadow:0 14px 24px rgba(80,112,176,.12);border-bottom:1px solid #e8ecf4;}
}

/* hero */
.hero{background:linear-gradient(160deg,#F4F8FF 0%,#E3ECFA 60%,#D9E6F8 100%);text-align:center;padding:84px 20px 72px;position:relative;overflow:hidden;}
.hero .clover{font-size:104px;display:inline-block;animation:float 3.6s ease-in-out infinite;filter:drop-shadow(0 6px 14px rgba(80,112,176,.25));}
@keyframes float{0%,100%{transform:translateY(0) rotate(-3deg);}50%{transform:translateY(-10px) rotate(3deg);}}
.hero .bigclover{position:absolute;font-size:340px;opacity:.07;right:-60px;bottom:-70px;transform:rotate(18deg);pointer-events:none;}
.hero h1{font-size:clamp(34px,7vw,64px);color:var(--vivid);font-weight:800;letter-spacing:.04em;margin:18px 0 10px;}
.hero .sub{font-size:clamp(15px,3vw,20px);color:var(--dark);font-weight:600;}
.hero .lead{margin-top:26px;color:var(--grey);font-size:15px;}
.hero .cta{margin-top:34px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.btn{display:inline-block;padding:14px 34px;border-radius:32px;font-weight:700;font-size:16px;}
.btn-primary{background:var(--vivid);color:#fff;box-shadow:0 6px 18px rgba(0,80,195,.25);}
.btn-line{background:#fff;color:var(--vivid);border:2px solid var(--vivid);}

/* philosophy path */
.path{padding:72px 0;}
h2.sec{font-size:clamp(22px,4.5vw,30px);color:var(--blue);text-align:center;font-weight:800;margin-bottom:8px;}
.sec-sub{color:var(--grey);text-align:center;font-size:14px;margin-bottom:42px;}
.steps{display:flex;flex-direction:column;gap:0;max-width:640px;margin:0 auto;}
.step{background:var(--light);border-radius:18px;padding:22px 26px;text-align:center;}
.step b{color:var(--vivid);font-size:18px;display:block;}
.step span{color:var(--grey);font-size:14px;}
.arrow{ text-align:center;color:var(--blue);font-size:22px;line-height:2;}
.step.goal{background:var(--vivid);color:#fff;}
.step.goal b{color:#fff;font-size:22px;}
.step.goal span{color:#D7E4FA;}

/* care */
.care{background:var(--light);padding:72px 0;}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
@media(max-width:760px){.cards{grid-template-columns:1fr;}}
.card{background:#fff;border-radius:20px;padding:0;overflow:hidden;text-align:center;box-shadow:0 4px 16px rgba(80,112,176,.08);}
.card .cphoto{width:100%;height:170px;object-fit:cover;display:block;}
.card .cbody{padding:24px 24px 30px;}
.card .ico{font-size:34px;}
.card h3{color:var(--blue);font-size:19px;margin:6px 0 6px;}
.card p{font-size:14px;color:var(--grey);}
.card .menu{margin-top:12px;font-size:13px;color:var(--dark);font-weight:600;}

/* event */
.event{padding:72px 0;}
.ev{display:flex;gap:20px;flex-wrap:wrap;justify-content:center;}
.ev .e{flex:1 1 280px;max-width:420px;border:2px solid var(--blue);border-radius:20px;padding:26px;}
.ev .e h3{color:var(--vivid);font-size:18px;}
.ev .e .date{color:var(--magenta);font-weight:700;font-size:15px;margin:6px 0;}
.ev .e p{font-size:14px;color:var(--grey);}

/* voice */
.voice{background:var(--light);padding:72px 0;}
.v{background:#fff;border-radius:18px;padding:24px 28px;max-width:640px;margin:0 auto 16px;font-size:14.5px;color:var(--dark);}
.v .who{color:var(--grey);font-size:13px;margin-top:8px;}

/* access */
.access{padding:72px 0;text-align:center;}
.tel-big{font-size:clamp(30px,7vw,46px);color:var(--vivid);font-weight:800;letter-spacing:.04em;}
.access .info{margin-top:18px;color:var(--grey);font-size:14.5px;line-height:2.1;}

/* footer */
footer{background:var(--blue);color:#fff;text-align:center;padding:40px 20px 30px;}
footer .phil{font-size:16px;font-weight:700;}
footer .name{margin-top:14px;font-size:13px;color:#D7E4FA;}
