/* base.css — LOCKED: このファイルは変更禁止 */

:root {
  --accent: #0096D6;
  --accent-light: #E5F3FB;
  --accent-pale: #F0F8FD;
  --cta: #F5A623;
  --cta-hover: #E09520;
  --cta-shadow: rgba(245,166,35,.35);
  --line: #06C755;
  --line-hover: #05B34A;
  --bg: #FFFFFF;
  --bg-alt: #F5F5F5;
  --text: #333;
  --text-light: #666;
  --text-on-accent: #FFF;
  --border: #E0E0E0;
  --border-light: #EFEFEF;
  --danger: #D9534F;
  --good: #27AE60;

  --ff: "Noto Sans JP", sans-serif;
  --lh: 1.85;
  --lh-h: 1.4;
  --fw-n: 400;
  --fw-m: 500;
  --fw-b: 700;

  --header-h: 64px;
  --mx: 1040px;
  --tr: .3s ease;
  --pill: 50px;
  --r-sm: 6px;
  --r-md: 12px;
  --r-lg: 20px;
  --shadow: 0 2px 12px rgba(0,0,0,.07);
  --shadow-md: 0 6px 24px rgba(0,0,0,.09);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h)+20px);-webkit-text-size-adjust:100%}
body{font-family:var(--ff);font-weight:var(--fw-n);line-height:var(--lh);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--accent);text-decoration:none;transition:color var(--tr)}
a:hover{color:var(--cta)}
ul,ol{list-style:none}

.container{width:100%;max-width:var(--mx);margin:0 auto;padding:0 24px}

.section{padding:100px 0}
.section-alt{background:var(--bg-alt)}

.section-heading{
  font-size:36px;font-weight:var(--fw-b);line-height:var(--lh-h);
  text-align:center;margin-bottom:16px;color:var(--text);
  letter-spacing:-.01em;
}
.section-sub-copy{text-align:center;color:var(--text-light);font-size:18px;margin-bottom:60px}
.section-lead{text-align:center;color:var(--text-light);margin-bottom:60px;font-size:16px}
.section-cta{text-align:center;margin-top:48px}

/* BUTTONS */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--ff);font-weight:var(--fw-b);text-align:center;
  border:2px solid transparent;border-radius:var(--pill);
  cursor:pointer;transition:all var(--tr);text-decoration:none;
  line-height:1.4;padding:14px 36px;font-size:16px;
}
.btn:hover{transform:translateY(-2px)}
.btn-sm{padding:10px 20px;font-size:13px}
.btn-lg{padding:20px 48px;font-size:18px}
.btn-block{display:flex;width:100%}

.btn-cta{background:var(--cta);color:#fff;border-color:var(--cta)}
.btn-cta:hover{background:var(--cta-hover);color:#fff;box-shadow:0 8px 24px var(--cta-shadow);border-color:var(--cta-hover)}
.btn-cta::after{content:"→";margin-left:4px}

.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}
.btn-primary:hover{background:#007AB8;color:#fff;border-color:#007AB8}

.btn-secondary{background:transparent;color:var(--accent);border-color:var(--accent)}
.btn-secondary:hover{background:var(--accent);color:#fff}

.btn-line{background:var(--line);color:#fff;border-color:var(--line)}
.btn-line:hover{background:var(--line-hover);color:#fff;box-shadow:0 8px 24px rgba(6,199,85,.3);border-color:var(--line-hover)}

/* ANIMATIONS */
.fade-in{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}
.fade-in.visible{opacity:1;transform:translateY(0)}

/* RESPONSIVE — base */
@media(max-width:768px){
  :root{--header-h:56px}
  .section{padding:64px 0}
  .section-heading{font-size:26px}
  .section-sub-copy{font-size:16px;margin-bottom:40px}
}
@media(max-width:480px){
  .container{padding:0 16px}
  .section{padding:48px 0}
  .section-heading{font-size:22px}
  .btn-lg{padding:16px 32px;font-size:16px}
  body{padding-bottom:64px}
}
@media(min-width:1280px){
  .section{padding:120px 0}
  .section-heading{font-size:42px}
}
