@charset "utf-8";
/* CSS Document */
:root{
      --bg:#f7f9ff;
      --card:#ffffff;
      --text:#0f172a;
      --muted:#475569;
      --line:#e2e8f0;
      --accent:#1d4ed8;
      --accent2:#0ea5e9;
      --ok:#16a34a;
      --warn:#f59e0b;
      --shadow: 0 10px 30px rgba(2,6,23,.08);
      --radius: 18px;
      --max: 1040px;
    }
    *{box-sizing:border-box}
    body{
      margin:0;
      font-family:  "Hiragino Sans" , "Hiragino Kaku Gothic ProN" , "Noto Sans JP" , "sans-serif" , "Noto Color Emoji SVG";
      color:var(--text);
      background: radial-gradient(1200px 700px at 10% -10%, rgba(29,78,216,.10), transparent 60%),
                  radial-gradient(1200px 700px at 100% 0%, rgba(14,165,233,.10), transparent 55%),
                  var(--bg);
      line-height:1.8;
    }
    a{color:inherit}
    .wrap{max-width:var(--max); margin:0 auto; padding:20px}
    .topbar{
      display:flex; align-items:center; justify-content:space-between;
      gap:12px; padding:10px 0 6px;
      color:var(--muted); font-size:14px;
    }
    .brand{
      display:flex; align-items:center; gap:10px;
      font-weight:700; color:var(--text);
    }
    .badge{
      font-size:12px; color:#0b1220;
      background:rgba(14,165,233,.12);
      border:1px solid rgba(14,165,233,.25);
      padding:4px 10px; border-radius:999px;
      white-space:nowrap;
    }
    .hero{
      margin-top:14px;
      background: linear-gradient(180deg, rgba(255,255,255,.95), rgba(255,255,255,.86));
      border:1px solid var(--line);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      overflow:hidden;
      position:relative;
    }
    .hero-inner{
      display:grid;
      gap:18px;
      padding:28px;
    }
    .kicker{
      display:inline-flex; align-items:center; gap:8px;
      color:#ffffff;
      font-weight:600;
      font-size:15px;
      background:#003dad;
      padding:6px 15px; border-radius:999px;
    }
    h1{margin:12px 0 10px; font-size:34px; color: #003dad;  line-height:1.4}

    @media (max-width: 768px){ h1{font-size:28px;  line-height:1.4;} }
    .sub{color:var(--muted); margin:0 0 14px}
    .pillrow{display:flex; flex-wrap:wrap; gap:10px; margin:12px 0 0}
    .pill{
      background: linear-gradient(180deg, #ffffff, #f4f4cc);
      border:2px solid #ff6600;
      border-radius:999px;
      padding:3px 12px;
      font-size:15px;
	  font-weight: 500;
      color:#ff6600;
      box-shadow: 0 8px 18px rgba(2,6,23,.05);
    }

    .cta-card{
      background: linear-gradient(180deg, rgba(29,78,216,.07), rgba(14,165,233,.06));
      border:1px solid rgba(29,78,216,.18);
      border-radius: var(--radius);
		margin: 20px;
      padding:18px;
      height:100%;
      display:flex;
      flex-direction:column;
      justify-content:space-between;
    }
    .cta-title{font-weight:800; margin:0 0 6px; font-size:22px; color: #003dad;}
    .cta-meta{color:var(--muted); font-size:13px; margin:0 0 12px}



/* 写真スライド */
.photozone {
  margin: 30px 0;
  display: grid;
  place-items: center;
}

.slider {
  width: 80%;
  max-width: 600px;
  overflow: hidden;
  position: relative;
}

.slide {
  width: 100%;
  flex-shrink: 0;
}

.slides {
  display: flex;
  transition: transform 0.8s ease-in-out;
}

.slides img {
  width: 100%;
  display: block;
  object-fit: cover;
}

/* キャプション：写真の外・下 */
.caption {
  margin-top: 8px;
  font-size: 16px;
  font-weight: 400;
  text-align: center;
  color: #333;
}

/* ドット */
.dots {
  position: absolute;
  bottom: 8px;                /* 写真の内側 */
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 10px;
  z-index: 2;
}

.dot {
  margin-bottom: 50px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.5);
  cursor: pointer;
  transition: 0.3s;
}

.dot.active {
  background: #dddddd;
  transform: scale(1.2);
}

/* 5秒ごとに左へスライド */
@keyframes slide {
  0%   { transform: translateX(0); }
  30%  { transform: translateX(0); }

  35%  { transform: translateX(-100%); }
  65%  { transform: translateX(-100%); }

  70%  { transform: translateX(-200%); }
  100% { transform: translateX(-200%); }
}

/* 写真キャプション文 */
.caption {
  position: static;          /* ← absolute をやめる */
  margin-top: 8px;           /* 写真との隙間 */
  padding: 6px 10px;
  background: none;          /* 写真の外なら背景いらないなら消す */
  color: #333;               /* 背景が白前提 */
  font-size: 14px;
  text-align: center;
}

.btnrow{display:flex; gap:10px; flex-wrap:wrap}
    .btn{
      display:inline-flex; align-items:center; justify-content:center;
      gap:8px;
      padding:12px 14px;
      border-radius: 14px;
      border:1px solid var(--line);
      background:#fff;
      cursor:pointer;
      font-weight:700;
      text-decoration:none;
      min-width: 160px;
    }
    .btn.primary{
      background: linear-gradient(90deg, var(--accent), var(--accent2));
      border-color: transparent;
      color:#fff;
		font-size: 20px;
    }
    .btn.small{padding:10px 12px; min-width: 150px; font-size:14px}
    .note{font-size:12px; color:var(--muted); margin-top:10px}
    .section{margin-top:18px}
    .grid{
      display:grid;
      grid-template-columns: repeat(12, 1fr);
      gap:14px;
      margin-top:14px;
    }

@media (max-width: 768px){
    .btnrow{
      display:inline-flex;
	  align-items:center;
	  justify-content:center;
	  gap:10px;
	  flex-wrap:wrap
	}

    .btn{
      gap:8px;
      padding:12px 14px;
      border-radius: 14px;
      border:1px solid var(--line);
      background:#fff;
      cursor:pointer;
      font-weight:700;
      text-decoration:none;
      min-width: 160px;
    }
    .btn.primary{
      background: linear-gradient(90deg, var(--accent), var(--accent2));
      border-color: transparent;
      color:#fff;
    }
    .btn.small{padding:10px 12px; min-width: 150px; font-size:14px}
    .note{font-size:12px; color:var(--muted); margin-top:10px}
    .section{margin-top:18px}
    .grid{
      display:grid;
      grid-template-columns: repeat(12, 1fr);
      gap:14px;
      margin-top:14px;
    }
	
}

    .card{
      grid-column: span 12;
      background:var(--card);
      border:1px solid var(--line);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      padding:18px;
    }
    .card h2{margin:0 0 10px; font-size:20px}
    .muted{color:var(--muted)}
    .col6{grid-column: span 6}
    .col4{grid-column: span 4}
    .col8{grid-column: span 8}
    @media (max-width: 768px){
      .col6,.col4,.col8{grid-column: span 12}
    }

h3{
	margin:10px 0;
	font-size:25px;
	border-bottom: solid 5px #ffcc00;
      width: fit-content;
}

h4{
	margin:0 0 10px 0;
	font-size:20px;
	color: #ff6600;line-height: 1.5;
}

h5{
	margin:0 0 10px 0;
	font-size:20px;
	color: #003dad;
}

    .list{
      margin:10px 0 0;
      padding:0;
      list-style:none;
      display:grid;
      gap:8px;
    }
    .list li{
      display:flex; gap:10px; align-items:flex-start;
      padding:10px 12px;
      border:1px solid var(--line);
      border-radius:14px;
      background: linear-gradient(180deg, rgba(255,255,255,.96), #fff);
    }
    .dot2{
      width:10px; height:10px; border-radius:999px;
      background: var(--ok);
      margin:10px 0;
      flex:0 0 auto;
    }
    .dot2.warn{background: var(--warn)}
    .tag{
      display:inline-block;
      font-size:12px;
      color:#0b1220;
      background: rgba(22,163,74,.10);
      border:1px solid rgba(22,163,74,.20);
      padding:3px 8px;
      border-radius:999px;
      margin-left:6px;
    }
    .table{
      width:100%;
      border-collapse:separate;
      border-spacing:0;
      overflow:hidden;
      border:3px solid var(--line);
      border-radius: 14px;
    }
    .table th, .table td{
      padding:12px 12px;
      border-bottom:2px solid var(--line);
      vertical-align:top;
      font-size:14px;
    }
    .table th{
      background: #eaf3ff;
      text-align:left;
      width: 32%;
      color:#0b1220;
    }
    .table tr:last-child th, .table tr:last-child td{border-bottom:none}
    .faq details{
      border:3px solid var(--line);
      border-radius: 14px;
      padding:12px 14px;
      background:#fff;
      margin-bottom:10px;
    }
    .faq summary{
      font-weight:800;
      cursor:pointer;
    }
    .cta-strip{
      margin-top:16px;
      background: linear-gradient(90deg, rgba(29,78,216,.12), rgba(14,165,233,.12));
      border:1px solid rgba(29,78,216,.18);
      border-radius: var(--radius);
      padding:16px;
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:12px;
      flex-wrap:wrap;
    }
    .cta-strip strong{font-size:16px}
    .footer{
      margin:22px 0 10px;
      color:var(--muted);
      font-size:12px;
      text-align:center;
    }
    /* simple form */
    form{display:grid; gap:10px}
    label{font-size:13px; color:var(--muted)}
    input, textarea, select{
      width:100%;
      padding:12px 12px;
      border-radius:14px;
      border:1px solid var(--line);
      background:#fff;
      font-size:14px;
      outline:none;
    }
    textarea{min-height:110px; resize:vertical}
    .inline2{display:grid; grid-template-columns: 1fr 1fr; gap:10px}

    @media (max-width: 768px){ .inline2{grid-template-columns:1fr} }
    .hint{font-size:12px; color:var(--muted)}
    .legal{
      font-size:12px; color:var(--muted);
      border-top:1px dashed var(--line);
      padding-top:10px; margin-top:12px;
    } 

