:root{
  --green:#3f7d4e;
  --green-dark:#2f6340;
  --yellow:#ffe45c;
  --yellow-hover:#ffd91f;
  --text:#2d4a35;
  --header-h:56px;
  --bp-header-h:64px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;color:var(--text);background:#fff;padding-top:var(--header-h)}
img{display:block;width:100%;height:auto;vertical-align:bottom;border:0}
a{color:inherit}

/* ===== Header ===== */
.header{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--header-h);background:var(--green);color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.12)}
.header__nav{display:flex;align-items:stretch;height:100%;max-width:1280px;margin:0 auto}
.header__link{flex:1;display:flex;align-items:center;justify-content:center;padding:0 8px;color:#fff;text-decoration:none;font-weight:700;font-size:13px;line-height:1.3;text-align:center;border-left:1px solid rgba(255,255,255,.22);transition:background-color .25s}
.header__link:first-child{border-left:0}
.header__link:hover{background:var(--green-dark)}

/* ===== Images ===== */
.part{position:relative;scroll-margin-top:var(--header-h)}
.sp-only{display:none}

/* parts5-2の上部に重ねる電話ボタン
   位置・大きさはすべて画像(コンテナ)幅・高さに対する割合なので、
   ブラウザ幅が変わっても画像との相対位置は変わりません。
   --tel-top : 5-2画像の上端からの距離（高さに対する%） */
.part--tel{container-type:inline-size;--tel-top:10%;--tel-w:30cqw;--tel-fs:1.9cqw;--tel-pad-y:1.2cqw;--tel-pad-x:1.7cqw;--tel-gap:.7cqw}
.tel-btn{position:absolute;left:50%;top:var(--tel-top);transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:var(--tel-gap);width:var(--tel-w);padding:var(--tel-pad-y) var(--tel-pad-x);background:var(--yellow);color:var(--green-dark);border-radius:999px;text-decoration:none;font-weight:800;font-size:var(--tel-fs);letter-spacing:.03em;white-space:nowrap;box-shadow:0 .3cqw 0 rgba(0,0,0,.18);transition:transform .2s,box-shadow .2s,background-color .2s}
.tel-btn svg{width:1em;height:1em;fill:currentColor;flex:none}
.tel-btn:hover{background:var(--yellow-hover);transform:translateX(-50%) translateY(-3px);box-shadow:0 .5cqw 0 rgba(0,0,0,.18)}
.tel-btn:active{transform:translateX(-50%);box-shadow:0 1px 0 rgba(0,0,0,.18)}

/* ===== Floating CTA ===== */
.float-cta{position:fixed;right:20px;bottom:20px;z-index:90;display:flex;align-items:center;gap:10px;padding:14px 22px;background:var(--yellow);color:var(--green-dark);border-radius:999px;text-decoration:none;font-weight:800;box-shadow:0 6px 16px rgba(0,0,0,.25);opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .3s,transform .3s,visibility .3s,background-color .2s,box-shadow .2s}
.float-cta.is-show{opacity:1;visibility:visible;transform:translateY(0)}
.float-cta.is-show:hover{background:var(--yellow-hover);transform:translateY(-3px);box-shadow:0 10px 20px rgba(0,0,0,.28)}
.float-cta svg{width:22px;height:22px;fill:currentColor;flex:none}
.float-cta small{display:block;font-size:11px;font-weight:700;line-height:1.2}
.float-cta strong{display:block;font-size:20px;line-height:1.2;letter-spacing:.02em}

/* ===== PC (769px~) ===== */
@media (min-width:769px){
  body{padding-top:var(--bp-header-h)}
  .header{height:var(--bp-header-h)}
  .header__link{font-size:15px}
  .part{scroll-margin-top:var(--bp-header-h)}
  .br {display: none;}
}

/* ===== SP (~768px) ===== */
@media (max-width:768px){
  .sp-only{display:block}
  .part--tel{--tel-top:8%;--tel-w:82cqw;--tel-fs:5.6cqw;--tel-pad-y:3.6cqw;--tel-pad-x:4cqw;--tel-gap:2cqw}
  .header__link{font-size:14px;padding:0 4px;line-height:1.25}
  .float-cta{right:12px;left:12px;bottom:12px;justify-content:center;padding:12px 16px}
  .float-cta strong{font-size:18px}
  .br {display: block;}
  :root{--header-h:60px}
  .header {height: 60px;}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition:none!important}
}



