#contents .flex {
  align-content:flex-start;
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
}

.img-2box {
  width:35%;
}

.img-2box-txt {
  margin-left:40px;
  width:calc(65% - 40px);
}

.txt-blue {
  color:#2999CB;
}

#contents .bold {
  font-weight:bold;
}

#contents .no-mb {
  margin-bottom:0;
}

#contents .no-mt, #contents h2.no-mt, #contents h4.no-mt, #contents h5.no-mt, #contents p.no-mt, #contents li.no-mt, .no-mt {
  margin-top:0;
}

#contents .box-mb {
  margin-bottom:80px;
}

.sp_img {
  display: none !important;
}

@media only screen and (max-width: 750px) {
  .sp_img {
    display: block !important;
  }
}

@media screen and (max-width: 559px) {
  #contents .box-mb {
    margin-bottom: 60px;
  }
}

@media screen and (max-width: 640px) {
  #contents h2 {
    line-height:.9em;
  }
}

.bg-area {
  position: relative;
  background-color: #eef6fc;
  padding: 70px 0;
  z-index: 0;
}

#contents .inner {
  margin-left: auto;
  margin-right: auto;
  margin-top: 0;
  max-width: 1400px;
  width: 90%;
  position: relative;
}

#contents h2 {
  color: #333;
  font-size: 36px;
  font-weight: 500;
  letter-spacing: .13em;
  line-height: 26px;
  margin: 0 0 40px;
  padding: 0;
  position: relative;
  text-align: center;
}

#contents h2 .en-ttl {
  display: block;
  font-size: 21px;
  font-weight: 400;
  letter-spacing: .15em;
  margin-top: 18px;
  padding: 0;
  border-left: unset;
}

.txt-blue {
  color: #2999CB;
}

#contents .flex {
  align-content: flex-start;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

#contents p {
  font-weight: 400;
  margin-bottom: 15px;
}

@media screen and (max-width: 768px) {
  #contents h2 {
    font-size: 25px;
    line-height: 1.4em;
  }
}

#contents .office-fv {
  margin-bottom: 70px;
}

#contents .office-bg {
  background-image: url(/img/common/tachikawa_bg.webp);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  padding-top: 70px;
}

#contents .office-bg h2 {
  color: #FFF;
}

#contents .office-info {
  background-color: #FFF;
  border: 5px solid #3DA0CE;
  border-radius: 25px;
  margin: auto auto -110px;
  max-width: 1200px;
  padding: 40px;
  position: relative;
  width: 90%;
}

#contents .office-info h3,
#contents .office-info h2 {
  border: 0;
  color: #333;
  font-size: 180%;
  line-height: 1.4;
  margin: 0 0 30px;
  padding: 0;
  text-align: center;
}

#contents h3 {
  border-left: 4px solid #39A1CF;
  color: #333;
  font-size: 24px;
  font-weight: 500;
  letter-spacing: .03em;
  margin: 0 0 30px;
  padding: 8px 17px 9px;
}

#contents .no-mb {
  margin-bottom: 0;
}

#contents .notes-bg {
  background-color: #F3F3F3;
  padding: 170px 0 70px 0;
}

#contents h4 {
  border-bottom: 2px solid #39A1CF;
  font-size: 20px;
  font-weight: 500;
  margin: 0 0 20px;
  padding-bottom: 10px;
  background: unset;
}

#contents h4::after {
  position: unset;
  border: none;
}

#contents .box-mb {
  margin-bottom: 80px;
}

#contents .check-box {
  background-color: #FFF1F3;
  border-radius: 20px;
  padding: 50px;
}

#contents .check-box ul {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

#contents .check-box li {
  list-style: none;
  padding-left: 24px;
  position: relative;
}

#contents li {
  font-weight: 400;
  letter-spacing: .03em;
}

#contents .check-box li::before {
  color: #EF788B;
  content: "✔";
  left: 0;
  position: absolute;
}

#contents .box-mb {
  margin-bottom: 80px;
}

.bg-area {
  background-color: #E1F0F7;
  margin-top: 170px;
  padding: 30px 0 70px 0;
  position: relative;
}

.bg-area::before {
  background-image: url(/img/plans/head_timeschedule.png);
  background-position: top center;
  background-repeat: repeat-x;
  background-size: cover;
  bottom: 100%;
  content: "";
  height: 90px;
  left: 0;
  position: absolute;
  width: 100%;
}

#contents .flex {
  align-content: flex-start;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

#contents .img-2box {
  width: 35%;
}

#contents .img-2box-txt {
  margin-left: 40px;
  width: calc(65% - 40px);
}

@media screen and (max-width: 768px) {
  #contents .notes-bg {
    padding: 30px 0 70px 0;
  }
  #contents .check-box {
    padding: 20px;
  }
  #contents .check-box ul {
    grid-template-columns: 1fr;
  }
}

#contents [data-simplebar] {
  position: relative;
  flex-direction: column;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-content: flex-start;
  align-items: flex-start;
}

#contents ul {
  margin-bottom: 0;
  margin-left: 0;
  padding-left: 20px;
}

#contents li {
  font-weight: 400;
  letter-spacing: .03em;
}

#contents h5 {
  color: #F07587;
  font-size: 19px;
}

@media screen and (max-width: 768px) {
  #contents h3 {
    font-size: 19px;
    margin-bottom: 25px;
    padding: 6px 15px 7px;
  }
}

#contents .bold {
  font-weight: bold;
}

#rehabilitation #contents .notes-bg {
  background-color: #FFF;
  padding: 200px 0 0 0;
}

#rehabilitation #contents .check-box {
  margin-bottom: 50px;
}

#rehabilitation #contents .notes-bg .sub-txt {
  text-align: center;
  font-size: 20px;
}

#rehabilitation #contents .notes-bg .sub-txt.bold {
  font-size: 22px;
}

#rehabilitation #contents .flow-area {
  width: 100%;
  max-width: 1100px;
  margin: auto;
}

#rehabilitation #contents .flow-item {
  width: 100%;
  max-width: 1100px;
  background-image: url(/img/plans/bg_border.png);
  background-color: #fff;
  border-radius: 20px;
  padding: 6px;
  position: relative;
  margin: 0 auto 50px;
}

#rehabilitation #contents .flow-item .flex {
  background-color: #fff;
  border-radius: 15px;
}

#rehabilitation #contents .flow-item .img-2box {
  width: auto;
  position: absolute;
  top: -10px;
  left: 40px;
  width: 100%;
  max-width: 210px;
}

#rehabilitation #contents .flow-item .img-2box-txt {
  width: 100%;
  margin-left: 0;
  padding: 30px 20px 30px 280px;
}

#rehabilitation #contents .flow-item .img-2box-txt h3 {
  position: relative;
  border-left: 0;
  padding-left: 50px;
}

#rehabilitation #contents .flow-item .img-2box-txt h3 .num {
  position: absolute;
  left: 0;
  background-color: #39A1CF;
  color: #fff;
  padding: 5px 12px 5px 13px;
  border-radius: 50px;
  top: 3px;
}

#contents .important-point {
  background-color: #FFF;
  border: 5px solid #FCD419;
  border-radius: 25px;
  padding: 50px 55px;
}

#contents .important-point .point {
  padding: 0;
}

#contents .important-point .point li {
  position: relative;
  list-style: none;
  padding-left: 40px;
  margin-bottom: 10px;
}

#contents .important-point .alignment-box {
  background-color: #eef6fc;
  border-radius: 15px;
  padding: 40px;
  margin-top: 40px;
}

@media screen and (max-width: 768px) {
  #rehabilitation #contents .flow-item {
    margin: 0 auto 20px;
  }
  #rehabilitation #contents .flow-item .img-2box {
    display: none;
  }
  #rehabilitation #contents .flow-item .img-2box-txt {
    padding: 20px 15px 21px 15px;
  }
  #rehabilitation #contents .flow-item .img-2box-txt h3 {
    margin-bottom: 15px;
    padding: 0 0 0 45px;
  }
  #rehabilitation #contents .flow-item .img-2box-txt p {
    margin-bottom: 0;
  }
  #rehabilitation #contents .flow-item .img-2box-txt h3 .num {
    top: -2px;
    font-size: 19px;
    padding: 3px 11px 3px 12px;
  }
  #rehabilitation #contents .important-point {
    padding: 30px 15px 15px;
  }
  #rehabilitation #contents .important-point .alignment-box {
    padding: 20px 15px 10px;
  }
}

#contents .important-point .point li .num {
  background-color: #FCD419;
  border-radius: 50px;
  content: "";
  left: 0;
  position: absolute;
  top: 1px;
  z-index: 0;
  padding: 0px 10px 0 10px;
  font-size: 16px;
  font-weight: 600;
}

.end {text-align: end;}

#contents .flex {
  align-content:flex-start;
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
}

#contents .flex.center {
  justify-content:center;
}

.txt-3box {
  margin-right:30px;
  width:calc(100% / 3 - 20px);
}

.txt-3box.end {
  margin-right:0;
}

.link-btn {
  background-image:url(/img/btn_bg_blue.png);
  border-radius:32px;
  color:#FFF;
  display:block;
  font-size:18px;
  font-weight:500;
  letter-spacing:.05em;
  max-width:100%;
  padding:15px;
  position:relative;
  text-align:center;
  transition:.3s;
  width:340px;
}

.link-btn:hover {
  opacity:.7;
  text-decoration:none;
  transition:.3s;
}

/* 白い矢印（▶）は不要のため非表示 */
.link-btn::after {
  display:none;
}

.link-btn.anchor {
  margin-top:30px;
  width:100%;
}

.link-btn.anchor::after {
  transform:rotate(90deg);
}

.link-btn.center {
  margin:0 auto;
}

.table-01 {
  border-collapse:collapse;
  border-width:0;
  font-size:15px;
  width:100%;
}

.table-01 tr:first-child {
  border-top:1px solid #D4D4D4;
}

.table-01 th {
  background-color:#F0F7FB;
  border-bottom:1px solid #D4D4D4;
  color:#333;
  font-weight:500;
  padding:15px 20px;
}

.table-01 th.lft {
  text-align:left;
}

.table-01 tr:first-child td, .table-01 tr:first-child th {
  border-top-width:0;
}

.table-01 td {
  background-color:#FFF;
  border-bottom:1px solid #D4D4D4;
  border-right:0;
  font-weight:400;
  padding:15px 20px;
}

.table-01 th, .table-01 td {
  font-size:16px;
}

@media screen and (max-width:559px) {
  .table-01 {
    width:100%;
  }
  .table-01 tr {
    border-bottom:1px solid #D4D4D4;
  }
  .table-01 th {
    border:none;
    display:block;
    margin-left:0;
    margin-right:0;
    padding:10px 15px;
    width:100%;
  }
  .table-01 td {
    border:none;
    display:block;
    padding:10px 15px;
  }
  .table-01 textarea {
    max-width:100%;
    width:100%;
  }
}

.txt-blue {
  color:#2999CB;
}

.bg-blue {
  background-color:#F0F7FB;
  padding:80px 0;
}

#contents .no-mb, #contents .bg-blue.no-mb {
  margin-bottom:0;
}

#contents .mb-50 {
  margin-bottom:50px;
}

#contents .mb-65 {
  margin-bottom:65px;
}

.section h3 {font-size: 1.5em; font-weight: 100; padding: 1.2em; letter-spacing: .05em; border-radius: .25em; color: #fff; background: #11A0E5;}

.section table {
	width: 100%;
	margin-bottom: 30px;
}

.section table th, .section table td {
	padding: 10px;
	border: 1px solid #ddd;
}

.section table th {
	width: 30%;
	text-align: left;
}

@media only screen and (max-width:480px) {
  .section table {
		margin: 0 auto;
	}
  .section table th, .section table td {
		width: 100%;
		display: block;
		border-top: none;
	}
  .section table tr:first-child th {
		border-top: 1px solid #ddd;
	}
}

.procedure-schedule {
  display: grid;
  gap: 40px;
  grid-template-columns: 1fr 1fr;
  margin-bottom: 60px;
  position: relative;
}

.procedure-schedule .procedure-item {
  font-size: 100%;
  padding: 40px;
  position: relative;
  z-index: 2;
}

.procedure-schedule .procedure-item::after {
  background-color: #309CCD;
  background-image: url(/img/btn_bg_blue.png);
  border-radius: 15px;
  content: "";
  display: block;
  height: 102%;
  left: 0;
  opacity: .5;
  position: absolute;
  top: 0;
  transform: rotate(-3deg);
  width: 102%;
  z-index: -2;
}

.procedure-schedule .procedure-item::before {
  background-color: #FFF;
  border: 4px solid #39A1CF;
  border-radius: 15px;
  content: "";
  display: block;
  height: 100%;
  left: 0;
  position: absolute;
  top: -3px;
  width: 100%;
  z-index: -1;
}

.procedure-document {
  display: grid;
  gap: 40px;
  grid-template-columns: 1fr 1fr 1fr;
}

.procedure-document .document-item {
  background-color: #FFF;
  border-radius: 10px;
  padding: 20px;
}

#contents .procedure-schedule .procedure-item h3 {
  border: 0;
  margin: 0;
  padding: 0;
  text-align: center;
}

.bg-procedure-document {
  background-color: #CCC;
  background-image: url(/img/btn_bg_blue.png);
  border-radius: 15px;
  margin-bottom: 20px;
  padding: 40px;
}

#contents .bg-procedure-document h3 {
  border: 0;
  color: #FFF;
  padding: 0;
  text-align: center;
}

.schedule-txt {
  color: #F07788;
  display: block;
  font-size: 140%;
  font-weight: bold;
  line-height: 1.5em;
  margin-top: 40px;
  text-align: center;
}

.pay-item {
  background-color: #F3F3F3;
  border-radius: 15px;
  padding: 30px;
}

.pay-type {
  display: grid;
  gap: 40px;
  grid-template-columns: 1fr 1fr 1fr;
}

#contents .pay-item h3 {
  border: none;
  color: #248DC3;
  margin: 10px 0 20px 0;
  padding: 0;
  text-align: center;
}

a.bnr-area.img-bnr {
  transition: .5s;
}

a.bnr-area.img-bnr:hover {
  opacity: .5;
  transition: .5s;
}

.loan-table-area .table-01 th {
  min-width: 430px;
  width: 35%;
}

#contents .procedure-document .document-item h4 {
  text-align: center;
}

.faq__list { max-width: 1440px; margin: 0 auto; }

.faq__item { border-bottom: 1px solid #E5E7EB; }

.faq__item:first-child { border-top: 1px solid #E5E7EB; }

.faq__question {
  padding: 18px 0;
  font-weight: 700;
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--color-text);
}

.faq__question::-webkit-details-marker { display: none; }

.faq__question::before {
  content: 'Q';
  flex-shrink: 0;
  width: 26px;
  height: 26px;
  background: #00A3E0;
  color: #fff;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.8125rem;
  font-weight: 700;
}

.faq__question-text { flex: 1; }

.faq__question::after {
  content: '+';
  font-size: 1.25rem;
  color: #00A3E0;
  flex-shrink: 0;
  font-weight: 300;
  line-height: 1;
}

details[open] .faq__question::after { content: '−'; }

.faq__answer {
  padding: 0 0 18px 38px;
  
  line-height: 1.8;
}

@media screen and (max-width: 1140px) {
  .pay-type {
    grid-template-columns: 100%;
  }
  .schedule-txt {
    font-size: 19px;
  }
  .procedure-document {
    gap: 20px;
  }
  .procedure-schedule .procedure-item {
    padding: 30px;
  }
}

@media screen and (max-width: 1140px) {
  .pay-type {
    grid-template-columns: 100%;
  }
  .schedule-txt {
    font-size: 19px;
  }
  .procedure-document {
    gap: 20px;
  }
  .procedure-schedule .procedure-item {
    padding: 30px;
  }
}

@media screen and (max-width: 959px) {
  .loan-table-area .table-01 th {
    min-width: unset;
    width: 100%;
  }
  .pay-item br {
    display: none;
  }
  .procedure-document {
    grid-template-columns: 1fr 1fr;
  }
}

@media screen and (max-width: 767px) {
  .procedure-document {
    grid-template-columns: 100%;
  }
}

@media screen and (max-width: 640px) {
  .procedure-schedule {
    gap: 50px;
    grid-template-columns: 100%;
  }
}

@media screen and (max-width: 559px) {
  .pay-type {
    gap: 30px;
  }
  .pay-item {
    padding: 20px 15px;
  }
  .procedure-document .document-item {
    padding: 20px 15px;
  }
  .bg-procedure-document {
    margin-bottom: 15px;
    padding: 40px 15px;
  }
  .procedure-schedule .procedure-item {
    padding: 25px 15px 15px;
  }
  .schedule-txt {
    font-size: 17px;
    margin-top: 20px;
  }
  .procedure-schedule .procedure-item::before {
    width: 98%;
  }
  .procedure-schedule .procedure-item::after {
    width: 101%;
  }
  .bg-blue {
    padding: 55px 0 60px;
  }
}

#contents .procedure-document .document-item h4 {
  text-align: center;
}

@media screen and (max-width: 1140px) {
  .pay-type {
    grid-template-columns: 100%;
  }
  .schedule-txt {
    font-size: 19px;
  }
  .procedure-document {
    gap: 20px;
  }
  .procedure-schedule .procedure-item {
    padding: 30px;
  }
}

@media screen and (max-width: 640px) {
  #contents h2 {
    line-height:.9em;
  }
}

@media screen and (max-width: 558px) {
  .link-btn.anchor {
    margin-top:15px;
  }
}

@media screen and (max-width: 959px) {
  .anchor-link-area .txt-3box {
    width: calc(100% / 2 - 10px);
  }
  .anchor-link-area .txt-3box:first-child {
    margin-right: 10px;
  }
}

@media (max-width: 600px) {
  .section { padding: 20px 15px; }
}

#contents .inner {
  margin-left: auto;
  margin-right: auto;
  margin-top: 0;
  max-width: 1400px;
  width: 90%;
  position: relative;
}

#contents h2 {
  color: #333;
  font-size: 36px;
  font-weight: 500;
  letter-spacing: .13em;
  line-height: 26px;
  margin: 0 0 40px;
  padding: 0;
  position: relative;
  text-align: center;
}

#contents h2 .en-ttl {
  display: block;
  font-size: 21px;
  font-weight: 400;
  letter-spacing: .15em;
  margin-top: 18px;
  padding: 0;
  border-left: unset;
}

.txt-blue {
  color: #2999CB;
}

#contents .flex.center {
  justify-content: center;
}

#contents .flex {
  align-content: flex-start;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

.txt-3box {
  margin-right: 20px;
  width: calc(100% / 3 - 20px);
}

#contents p {
  font-weight: 400;
  margin-bottom: 15px;
}

#contents .link-btn {
  font-size: 21px;
  max-width: 465px;
  width: 100%;
}

#contents .link-btn.center {
  margin: 0 auto;
}

#contents .link-btn {
  border-radius: 32px;
  color: #FFF;
  display: block;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: .05em;
  max-width: 100%;
  padding: 15px;
  position: relative;
  text-align: center;
  transition: .3s;
  width: 340px;
}

/* 白い矢印（▶）は不要のため非表示 */
#contents .link-btn::after {
  display: none;
}

@media screen and (max-width: 768px) {
  #contents h2 {
    font-size: 25px;
    line-height: 1.4em;
  }
}

#contents h3 {
  border-left: 4px solid #39A1CF;
  color: #333;
  font-size: 24px;
  font-weight: 500;
  letter-spacing: .03em;
  margin: 0 0 30px;
  padding: 8px 17px 9px;
}

#contents .no-mb, #contents .bg-blue.no-mb {
  margin-bottom: 0;
}

#contents h4 {
  border-bottom: 2px solid #39A1CF;
  font-size: 20px;
  font-weight: 500;
  margin: 0 0 20px;
  padding-bottom: 10px;
  background: unset;
}

#contents h4::after {
  position: unset;
  border: none;
}

#contents li {
  font-weight: 400;
  letter-spacing: .03em;
}

#contents .flex {
  align-content: flex-start;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

#contents .table-01 th, #contents .table-01 td {
  font-size: 16px;
}

#contents [data-simplebar] {
  position: relative;
  flex-direction: column;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-content: flex-start;
  align-items: flex-start;
}

#contents ul {
  margin-bottom: 0;
  margin-left: 0;
  padding-left: 20px;
}

#contents li {
  font-weight: 400;
  letter-spacing: .03em;
}

#contents h5 {
  color: #F07587;
  font-size: 19px;
}

@media screen and (max-width: 768px) {
  #contents h3 {
    font-size: 19px;
    margin-bottom: 25px;
    padding: 6px 15px 7px;
  }
}

.txt-pink {
  color: #E65886;
}

.look-red {
  color: #DF4656;
}

.txt-85 {
  font-size: 85%;
}

#contents .txt-center {
  text-align: center;
}

#contents .txt-center img {
  background-color: transparent;
  height: auto;
  margin: 0;
  max-width: 100%;
}

@media screen and (max-width: 767px) {
  .document-area>.txt-center {
    text-align: left;
  }
}

#contents .link-bnr {
  border-radius: 15px;
  color: #FFF;
  display: block;
  position: relative;
}

#contents .link-bnr img {
  border-radius: 15px;
  width: 100%;
}

/* スクールバス */
#bus .schoolbus-bg:not(.bg-none) {
  background-image:url(/img/access/schoolbus_bg.jpg);
  background-position:center;
  background-repeat:no-repeat;
  background-size:cover;
  padding-top:70px;
}

#bus #contents .schoolbus-bg h2 {
  color:#FFF;
}

#bus .schoolbus-info {
  background-color:#FFF;
  border:5px solid #3DA0CE;
  border-radius:25px;
  margin:auto auto -110px;
  max-width:1200px;
  padding:40px;
  position:relative;
  width:90%;
}

#bus #contents .schoolbus-info h3 {
  border:0;
  font-size:180%;
  padding:0;
  text-align:center;
}

#bus #contents .schoolbus-info h3 .catch-text {
  color:#3DA0CE;
  display:block;
  font-size:70%;
  margin-bottom:10px;
}

#bus #contents .info-text {
  font-weight:500;
  line-height:1.9em;
  margin:auto;
  text-align:center;
}

#bus .schoolbus-notes {
  background-color:#FFF;
  border:5px solid #FCD419;
  border-radius:25px;
  margin:110px auto 0;
  margin-top:110px;
  max-width:1000px;
  overflow:hidden;
  width:90%;
}

#bus .schoolbus-notes .notes-text {
  padding:30px;
}

#bus #contents h3.notes-ttl {
  background-color:#FCD419;
  border:0;
  margin-bottom:0;
  padding:20px;
  text-align:center;
}

#bus .schoolbus-fv {
  margin-bottom:70px;
}

#bus .timeschedule-bg {
  background-color:#E1F0F7;
  margin:130px 0 70px;
  padding:0 0 70px;
  position:relative;
}

#bus #contents .bnr-link-area .link-bnr.color-pink h3 {
  background: none;
    background-color: rgba(0, 0, 0, 0);
  background-color: transparent;
  position: absolute;
  z-index: 1;
  z-index: 0;
  border: none;
  border-radius: 0 0 15px 15px;
  bottom: 0;
  color: #FFF;
  font-size: 24px;
  font-weight: 400;
  letter-spacing: .1em;
  margin: 0;
  padding: 30px 10px 20px;
  right: 0px;
  text-align: center;
  width: 100%;
}

#contents .bnr-link-area a[target="_blank"] h3::after {
  background-image: url(../image/contents/tab_ico_white.svg);
  background-repeat: no-repeat;
  background-size: contain;
  border: none;
  bottom: 0;
  content: "";
  content: "";
  display: block;
  height: 22px;
  margin: auto;
  position: absolute;
  right: 23px;
  top: 10px;
  width: 22px;
}

#bus #contents .bnr-link-area .link-bnr.color-pink h3::before {
  background-image: url(/img/access/bnr_txt_bg_pink.png);
  background-position: center top;
  background-repeat: no-repeat;
  background-size: cover;
  bottom: 0;
  content: "";
  content: "";
  height: 80px;
  left: 0;
  position: absolute;
  width: 100%;
  z-index: -1;
}

#bus #contents .bnr-link-area a[target="_blank"][href$=".pdf"] h3::after {
  background-image:url(/img/access/pdf_ico_white.png);
  background-size:27px;
  height:31px;
  width:27px;
}

#bus .timeschedule-bg::before {
  background-image:url(/img/access/head_timeschedule.png);
  background-position:top center;
  background-repeat:repeat-x;
  background-size:cover;
  bottom:100%;
  content:"";
  height:90px;
  left:0;
  position:absolute;
  width:100%;
}

#bus #contents .area-notes {
  margin:40px auto;
  max-width:1000px;
}

#bus .timeschedule-list {
  display:flex;
  flex-direction:column-reverse;
  flex-wrap:wrap;
  gap:20px;
  justify-content:center;
  margin:auto;
  writing-mode:vertical-rl;
}

#bus .timeschedule-list .route-item {
  background-color:#3AA1CF;
  background-image:url(/img/access/ico_pin_white.png);
  background-position:center 15px;
  background-repeat:no-repeat;
  border:5px solid #FFF;
  border-radius:40px;
  box-sizing:border-box;
  color:#FFF;
  display:block;
  height:100%;
  padding:70px 15px 25px 15px;
  transition:.5s;
}

#bus .timeschedule-list .route-item:hover {
  opacity:.5;
  text-decoration:none;
  transition:.5s;
}

#bus .timeschedulu-item span {
  left:2px;
  margin-top:5px;
  position:relative;
}

#bus .bnr-area.other-link {
  background-image:url(/img/access/bnr_area.jpg);
  border-radius:10px;
  color:#FFF;
  display:block;
  font-size:130%;
  margin:auto;
  max-width:1100px;
  overflow:hidden;
  padding:200px 0 20px;
  position:relative;
  text-align:center;
  text-decoration:none;
  transition:.5s;
  z-index:0;
}

#bus .bnr-area.other-link::before {
  background-image:url(/img/access/bnr_bg_green.png);
  background-position:top center;
  bottom:0;
  content:"";
  height:80px;
  left:0;
  position:absolute;
  width:100%;
  z-index:-1;
}

#bus .bnr-link-area .link-bnr .color-pink h3 {
  background:none;
  background-color:transparent;
  position:absolute;
  z-index:1;
  z-index:0;
}

#bus .bnr-link-area .link-bnr .color-pink h3::before {
  background-image:url(/img/access/bnr_txt_bg_pink.png);
  background-position:center top;
  background-repeat:no-repeat;
  background-size:cover;
  bottom:0;
  content:"";
  content:"";
  height:80px;
  left:0;
  position:absolute;
  width:100%;
  z-index:-1;
}

#bus .bnr-link-area .link-bnr.color-pink {
  border:5px solid #EF7B8D;
  border-radius:15px;
  overflow:hidden;
  position:relative;
}

#bus .bnr-area.other-link::after {
  background-image:url(/img/access/ico_link_white.png);
  background-position:top center;
  bottom:20px;
  content:"";
  height:27px;
  margin:auto;
  position:absolute;
  right:20px;
  width:27px;
  z-index:-1;
}

#bus .bnr-area.other-link:hover {
  opacity:.5;
  transition:.5s;
}

.schoolbus-bg:not(.bg-none) {
  background-image:url(/img/access/schoolbus_bg.jpg);
  background-position:center;
  background-repeat:no-repeat;
  background-size:cover;
  height:400px;
  padding-top:70px;
}

#contents .schoolbus-bg.bg-none h2 {
  color:#333;
}

.schoolbus-bg.bg-none {
  background-image:none;
  height:100%;
  padding:20px 0 70px;
}

#contents .schoolbus-bg h2 {
  color:#FFF;
}

.schoolbus-info {
  background-color:#FFF;
  border:5px solid #3DA0CE;
  border-radius:25px;
  margin:auto auto -110px;
  max-width:940px;
  padding:40px;
  position:relative;
  width:90%;
}

#contents .schoolbus-info p.txt-center {
  margin-bottom:0;
}

.map-line {
  padding:680px 0 80px;
}

.map-line.short {
  padding:10px 0 80px;
  /*padding:610px 0 80px;*/
}

.map-line .timetable {
  border:1px solid #DFDFDF;
  margin-bottom:20px;
}

.link-area .link-btn {
  margin:auto;
}

#contents .map-line .txt-2box {
  width: 98%;
}

@media screen and (min-width: 768px) {
  #contents .map-line .txt-2box {
	  /*width: 48%;*/
	  /*送迎バスページ用に修正*/
	  width: 46%;
	}
}

#contents .map-line .txt-2box h3 {
  background-color:#39A1CF;
  border:none;
  border-radius:25px 25px 0 0;
  color:#FFF;
  font-weight:500;
  margin-bottom:0;
  padding:20px 20px 17px;
  text-align:center;
}

#contents .map-line .txt-2box .map-area {
  background-color:#FFF;
  border:5px solid #39A1CF;
  border-radius:0 0 25px 25px;
}

#contents .map-line .txt-2box .map-area div#map {
  border-radius:0 0 25px 25px;
}

#contents .map-line .txt-2box .timetable {
  background-color:#FFF;
  border:5px solid #39A1CF;
  border-radius:0 0 25px 25px;
  padding:20px;
}

#contents .map-line .txt-2box .timetable a.link-bnr img {
  border-radius:0 0 25px 25px;
}

#contents .map-area p.look-red {
  line-height:1.5em;
}

#gounai .map {
  height:468px;
  overflow:hidden;
}

#senoo .map iframe {
  margin-top:-80px;
}

#yamada .map {
  height:468px;
  overflow:hidden;
}

#yamada .map iframe {
  margin-top:-80px;
}

#senoo .map {
  height:468px;
  overflow:hidden;
}

#gounai .map iframe {
  margin-top:-80px;
}

.map {
  height:481px;
  overflow:hidden;
}

.map-line.short .map {
  height:468px;
}

/* 外側角丸線 */
.map {
  border-radius:0 0 20px 20px;
  /* outline:5px solid #39A1CF; */
}

#contents .map-area p.look-red {
  position:relative;
}

#kojima-north .map,
#kojima-south .map,
#kounan .map {
  height:481px;
}

.map iframe {
  border-radius:0 0 20px 20px;
  border-width:0px;
  margin-top:-70px;
}

#okayama .map-line {
  padding:0;
}

#okayama .map {
  height:495px;
  overflow:hidden;
}

#kounan .map-line {
  padding:0;
}

#kounan .map {
  height:482px;
  overflow:hidden;
}

#contents .map-area p.look-red {
  margin:0;
  margin-left:1em;
  padding:15px;
}

#chayamachi .map-line {
  padding:0;
}

#chayamachi .map {
  height:495px;
  overflow:hidden;
}

#gounai .map-line {
  padding:0;
}

#gounai .map {
  height:470px;
  overflow:hidden;
}

#kojima-south .map-line {
  padding:0;
}

#kojima-south .map {
  height:480px;
  overflow:hidden;
}

#kojima-south .map iframe {
  height:550px;
}

#kojima-north .map-line {
  padding:0;
}

#kojima-north .map {
  height:560px;
  overflow:hidden;
}

#senoo .map-line {
  padding:0;
}

#senoo .map {
  height:470px;
  overflow:hidden;
}

#yamada .map-line {
  padding:0;
}

#yamada .map {
  height:470px;
  overflow:hidden;
}

#tamahara .map-line {
  padding:0;
}

#tamahara .map {
  height:547px;
  overflow:hidden;
}

@media screen and (max-width: 1450px) {
  #contents .bnr-link-area .link-bnr h3 {
    font-size:18px;
    padding:25px 10px 15px;
  }
  #okayama .map {
    height:365px;
  }
  #okayama .map iframe {
    height:435px;
  }
  #kounan .map {
    height:365px;
  }
  #kounan .map iframe {
    height:435px;
  }
  #chayamachi .map {
    height:425px;
  }
  #chayamachi .map iframe {
    height:495px;
  }
  #gounai .map {
    height:365px;
  }
  #gounai .map iframe {
    height:445px;
  }
  #kojima-south .map {
    height:425px;
  }
  #kojima-south .map iframe {
    height:495px;
  }
  #kojima-north .map {
    height:425px;
  }
  #kojima-north .map iframe {
    height:495px;
  }
  #senoo .map {
    height:365px;
  }
  #senoo .map iframe {
    height:445px;
  }
  #yamada .map {
    height:415px;
  }
  #yamada .map iframe {
    height:495px;
  }
  #tamahara .map {
    height:415px;
  }
  #tamahara .map iframe {
    height:485px;
  }
}

@media screen and (max-width: 1024px) {
  #kojima-south .map iframe {
    height:387px;
  }
  #kojima-south .map {
    height:317px;
  }
  #kojima-north .map iframe {
    height:387px;
  }
  #kojima-north .map {
    height:317px;
  }
  #senoo .map iframe {
    height:392px;
  }
  #senoo .map {
    height:312px;
  }
  #yamada .map {
    height:312px;
  }
  #yamada .map iframe {
    height:395px;
  }
  #tamahara .map {
    height:377px;
  }
  #tamahara .map iframe {
    height:445px;
  }
}

@media screen and (max-width: 768px) {
  #bus #contents .bnr-link-area a[target="_blank"][href$=".pdf"] h3::after {
    background-size:20px;
    height:24px;
    right:10px;
    width:21px;
  }
}

#contents .txt-center {
  text-align: center;
}

#contents .txt-center img {
  background-color: transparent;
  height: auto;
  margin: 0;
  max-width: 100%;
  padding: 0;
  vertical-align: bottom;
  width: auto;
}
/* table */
.table-over {
  overflow:auto;
  width:100%;
}
.table-over::-webkit-scrollbar {
  height:5px;
}
.table-over table.table-01,
.table-over table.table-02 {
  min-width:690px;
  width:100%;
}
#contents .bg-gray.no-mb {
  margin-bottom:0;
}
/* default PC */
/* キャンペーン情報 */
#contents .table-over table {
  min-width: 517px;
}
#contents .campaign-box {
  width: 60%;
}
#contents .campaign-box .link-bnr {
  display: block;
}
#contents .campaign-box .link-btn {
  width: 400px;
}
#contents .campaign-box .link-btn[href$=".pdf"]::before {
  background-image: url(/img/pdf_ico_white.svg);
  background-repeat: no-repeat;
  background-size: contain;
  bottom: 0;
  content: "";
  display: block;
  height: 20px;
  left: 25px;
  margin: auto;
  position: absolute;
  top: 0;
  width: 20px;
}
#contents .campaign-box img {
  height: 510px;
  object-fit: cover;
  object-position: top;
  width: 100%;
}
#contents .campaign-box .txt-2box:nth-child(2),
#contents .campaign-box .txt-2box:last-child {
  margin-right: 0;
}
#contents .campaign-box h3 {
  background-image: url(/img/bg_bubble.png);
  border: none;
  clip-path: polygon(5% 0, 0 40%, 5% 80%, 51% 80%, 50% 100%, 49% 80%, 95% 80%, 100% 40%, 95% 0);
  font-size: 21px;
  font-weight: 500;
  letter-spacing: .05em;
  margin: 0 auto 10px;
  max-width: 100%;
  padding: 16px 5px 28px;
  text-align: center;
}
@media screen and (max-width: 1300px) {
.document-list .document-item:nth-child(2) {
    min-width: 130px;
  }
}
@media screen and (max-width: 767px) {
.document-list {
    gap: 30px;
  }
.price-main .table-over.long .table-02 tr:first-child th:first-child {
    width: 50%;
  }
}
@media screen and (max-width: 640px) {
#contents .campaign-box {
	  width: auto;
	}
#contents .table-over {
    border-spacing: 0 11px;
    margin-bottom: 10px;
    padding-bottom: 20px;
  }
#contents .table-over.mb-50 {
    margin-bottom: 40px;
  }
.document-list {
    gap: 20px;
  }
#contents h4.license-name,
#contents .document-list .document-name {
    font-size: 17px;
  }
.price-main .table-over.long .table-02 tr th:first-child {
    max-width: unset;
  }
.price-main .table-over.long .table-02 tr:first-child th:first-child {
    width: 200px;
  }
}
@media screen and (max-width: 1300px) {
.document-list .document-item:nth-child(2) {
    min-width: 130px;
  }
}
.bg-gray {
  background-color: #f3f3f3;
  padding: 80px 0;
}
#contents .bg-gray.no-mb {
  margin-bottom: 0;
}
/* 普通車 */
#contents .feature-area {
  background-color: #FFF;
  border-radius: 15px;
  margin: auto auto 70px;
  max-width: 900px;
  padding: 30px;
  width: 90%;
}
#contents #at .feature-area,
#contents #at .car-type,
#contents #at .price-main,
#contents #at .price-item,
#contents #small .feature-area,
#contents #small .car-type,
#contents #small .price-main,
#small .price-item {
  background-color: #F3F3F3;
}
#contents .feature-area .feature-ttl {
  border-bottom: 4px dotted #2999CB;
  border-left: 0;
  padding: 0 0 20px;
  text-align: center;
}
#contents .feature-list {
  display: grid;
  gap: 20px;
}
#contents .feature-list .feature-item {
  background-color: #2999CB;
  border-radius: 60px;
  color: #FFF;
  padding: 10px 50px;
}
#contents .feature-list .feature-item p:last-child {
  margin-bottom: 0;
}
#contents .car-type {
  background-color: #FFF;
  border-radius: 15px;
  margin: auto auto 70px;
  max-width: 750px;
  padding: 30px;
  width: 90%;
}
#contents .car-type .table-02 {
  margin-bottom: 15px;
  width: 100%;
}
#contents .car-type .table-02 th {
  width: 190px;
}
#contents .license-area {
  border-radius: 15px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin: auto auto 50px;
}
#contents .license-area h3,
#contents .license-flow-ttl {
  border: 0;
  font-size: 170%;
  letter-spacing: 2px;
  margin-bottom: 0;
  text-align: center;
  width: 100%;
}
#contents .license-area .license-item {
  background-color: #39A1CF;
  border-radius: 15px;
  color: #FFF;
  margin-right: 40px;
  margin-top: 30px;
  padding: 30px;
  width: calc(90% / 3 - 27px);
}
#contents h4.license-name {
  border-bottom: 3px solid #FFF;
  color: #FFF;
  text-align: center;
}
#contents h3.document-ttl {
  border: 0;
  text-align: center;
}
#contents .document-list {
  display: flex;
  gap: 50px;
  justify-content: center;
  margin: auto;
}
#contents .document-list .document-name {
  border: 0;
  text-align: center;
}
#contents .price-area {
  margin: auto;
}
#contents .price-main {
  background-color: #FFF;
  border-radius: 15px;
  margin-bottom: 40px;
  padding: 30px;
}
#contents .price-area h3 {
  border: 0;
  text-align: center;
}
#contents .table-over {
  overflow: auto;
  width: 100%;
}
#contents .price-list {
  display: grid;
  gap: 40px;
  grid-template-columns: 1fr 1fr;
}
#contents .price-item {
  background-color: #FFF;
  border-radius: 15px;
  padding: 30px;
}
#contents .license-flow-box {
  margin: 30px auto 0;
  max-width: 840px;
}
#contents .license-flow-box li {
  background-color: #ebf8ff;
  border: 5px solid #ebf8ff;
  border-radius: 15px;
  font-size: 20px;
  font-weight: 500;
  list-style: none;
  margin-bottom: 33px;
  padding: 15px 60px;
  position: relative;
}
#contents .license-flow-box li:has(.ttl),
#contents .license-flow-box li.yellow:has(img) {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  position: relative;
}
#contents .license-flow-box li::after {
  background-image: url(/img/plans/arrow_blue.svg);
  background-repeat: no-repeat;
  background-size: contain;
  display: block;
  content: "";
  height: 38px;
  position: absolute;
  left: 48px;
  bottom: -40px;
  width: 38px;
  transform: rotate(90deg);
}
#contents .license-flow-box li .ttl {
  background-color: #2999CB;
  border-radius: 60px;
  color: #FFF;
  font-size: 90%;
  height: fit-content;
  margin-left: 20px;
  order: 2;
  padding: 4px;
  text-align: center;
  width: 160px;
}
#contents .license-flow-box li p {
  font-size: 20px;
  font-weight: 500;
  margin-bottom: 0;
}
#contents .license-flow-box li.yellow {
  background-color: #fffbea;
  border-color: #FCD419;
}
#contents .license-flow-box li .look-blue {
  color: #0e81b5;
}
#contents .flow-notes {
  border: 5px solid #EF7B8D;
  border-radius: 15px;
  font-size: 110%;
  line-height: 1.9em;
  max-width: 840px;
  margin: 0 auto 30px;
  padding: 30px;
  text-align: center;
}
#contents .flow-notes p {
  margin-bottom: 0;
}
#contents .flow-notes .line-txt {
  background: linear-gradient(transparent 60%, #ffff7f 40%);
  font-size: 120%;
  font-weight: 500;
  margin: 0 4px;
}
#contents #class2 .license-area .license-item {
  width: calc(100% / 4 - 30px);
  margin-right: 30px;
}
#contents #class2 .price-item:nth-child(3),
#contents #class2 .price-item:nth-child(4) {
  grid-column-end: 3;
  grid-column-start: 1;
}
@media screen and (max-width: 768px) {
#contents .anchor-link .txt-3box {
    width: 100%;
    margin-bottom: 15px;
  }
#contents .car-type .table-02 th {
    width: 100px;
  }
#contents .license-area .license-item,
#contents #class2 .license-area .license-item {
    margin: 20px 0 0;
    padding: 20px 15px 13px;
    width: 100%;
  }
#contents .feature-area,
.price-main {
    margin-bottom: 30px;
    padding: 25px 15px 30px;
    width: 100%;
  }
#contents .car-type {
  	width: 100%;
  }
#contents .document-list {
    flex-wrap: wrap;
    gap: 0;
  }
#contents .document-list .document-item {
    border-top: 1px dashed #AAA;
    padding: 20px 0 10px;
    padding-bottom: 10px;
    width: 100%;
  }
#contents .document-list .document-item:first-child {
    border-top: none;
    padding-top: 0;
  }
#contents .price-list {
    gap: 30px;
    grid-template-columns: 100%;
  }
#contents .table-over table {
    min-width: 450px;
  }
#contents #class2 .price-item:nth-child(3),
#contents #class2 .price-item:nth-child(4) {
    grid-column-end: unset;
    grid-column-start: unset;
  }
#contents .price-detail .flex .txt-2box {
    margin: 0;
    width: 100%;
  }
#contents .license-flow-box li .ttl {
    order: 1;
    padding: 0;
    margin: 0 auto;
  }
#contents .license-flow-box li::after {
    right: 0;
    bottom: -36px;
    margin: auto;
    left: 8px;
  }
#contents .license-flow-box li .ttl + p {
    order: 2;
  }
#contents .license-flow-box li p,
#contents .license-flow-box li {
    font-size: 16px;
  }
}

/* 施設案内ページ */
/* 教習所案内 */
.guidance-bg {
  background-image:url(/img/facility/point_bg.jpg);
  background-position:center;
  background-repeat:no-repeat;
  background-size:cover;
  padding:70px 0;
}

#contents .guidance-bg h3 {
  border:0;
  color:#FFF;
  font-size:30px;
  margin:0 0 50px;
  padding:0;
  text-align:center;
}

.guidance-3point {
  display:grid;
  gap:20px;
  grid-template-columns:1fr 1fr 1fr;
  margin:auto;
  max-width:1400px;
  width:96%;
}

.guidance-3point .point-item {
  background-color:#FFF;
  border-radius:15px;
  overflow:hidden;
  padding-bottom:160px;
  position:relative;
  border: unset;
  display: block;
}

.guidance-3point .point-item::before {
  display: none;
}

#contents .guidance-3point h4 {
  border:0;
  font-size:24px;
  margin:30px auto 20px;
  text-align:center;
  padding: 0;
}

#contents .guidance-3point h4 .en-ttl {
  display:block;
  font-family:roboto;
  letter-spacing:1px;
  margin-top:10px;
}

.guidance-3point .point-photo {
  margin-bottom:30px;
  text-align:center;
}

.guidance-3point .point-photo img {
  width: auto;
  height: auto;
}

.guidance-3point .point-detail {
  background-image:url(/img/btn_bg_blue.png);
  bottom:0;
  color:#FFF;
  font-size:18px;
  height:160px;
  left:0;
  margin:auto;
  padding:25px;
  position:absolute;
  right:0;
}

.bg-facilities {
  background-color:#F3F3F3;
  padding:70px 0;
}

.facilities-inner {
  margin:90px auto auto;
  max-width:1400px;
  width:90%;
}

.facilities-slider {
  margin-bottom:40px;
}

.facilities-slider .splide__list {
  list-style:none;
}

.facilities-slider .splide__list .splide__slide {
  list-style:none;
}

.facilities-slider .splide__list .splide__slide::marker {
  content:none;
}

.facilities-slider .img-deco {
  border-radius:15px;
  overflow:hidden;
}

.facilities-inner .slider-item {
  display:flex;
}

.splide__arrows.splide__arrows--ltr {
  display:none;
}

.facilities-inner .slider-item .main-img img {
  max-width:none;
  object-fit:cover;
  position:relative;
  width:100%;
  z-index:1;
}

.facilities-inner .main-img::before {
  background-image:url(/img/btn_bg_blue.png);
  border-radius:14px;
  content:"";
  height:100%;
  left:0;
  opacity:.35;
  position:absolute;
  top:0%;
  transform:rotate(-3deg);
  width:100%;
  z-index:-1;
}

.facilities-slider .splide__track {
  overflow:visible;
}

.facilities-inner .slider-item .main-img {
  background-color:#FFF;
  background-image:url(/img/bg_border.png);
  border-radius:20px;
  margin-right:40px;
  padding:6px;
  position:relative;
  width:740px;
}

.facilities-inner .slider-item .slider-text {
  width:calc(100% - 740px);
}

.facilities-slider-thm {
  display:grid;
  font-size:14px;
  gap:15px;
  grid-template-columns:1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
  text-align:center;
}

.facilities-slider-thm .thm-item {
  opacity:.5;
}

.facilities-slider-thm .thm-item.is-active {
  opacity:1;
}

@media screen and (max-width: 959px) {
  #contents p.thm-text {
    font-size:14px;
    line-height:1.35em;
  }

  /* 教習所案内 */
  .guidance-bg {
    padding:40px 0;
  }

  #contents .guidance-bg h3 {
    font-size:4.5vw;
    margin-bottom:40px;
  }

  .guidance-3point .point-detail {
    height:auto;
    padding-bottom:1px;
    position:relative;
  }

  .guidance-3point .point-item {
    padding:0;
  }

  .guidance-3point {
    grid-template-columns:1fr;
    width:90%;
  }

  .facilities-slider-thm {
    grid-template-columns:1fr 1fr 1fr 1fr 1fr;
    margin:auto;
    width:90%;
  }

  .facilities-inner .slider-item {
    display:block;
  }

  .facilities-inner .slider-item .main-img {
    margin:0 auto 6vw;
    width:100%;
  }

  .facilities-inner .slider-item .slider-text {
    margin:auto;
    width:90%;
  }

  .facilities-inner {
    margin-top:0;
    width:90%;
  }
}

@media screen and (max-width: 559px) {
  /* 教習所案内 */
  #contents .guidance-3point h4 {
    font-size:5vw;
    padding:0 10px;
  }

  #contents .guidance-bg h3 {
    font-size:5.5vw;
  }

  .facilities-slider-thm {
    grid-template-columns:1fr 1fr 1fr;
    margin:auto;
    width:100%;
  }
}


.txt-2box {
  margin-right: 4%;
  width: 48%;
}

.txt-2box.end {
  margin-right: 0;
}

.txt-4box {
  margin-right: 20px;
  width: calc(100% / 4 - 20px);
}

.txt-4box.end {
  margin-right: 0;
}

#contents .schooters-fv {
  background-image: url(/img/plans/btn_bg_blue.png);
  border-radius: 15px;
  color: #FFF;
  display: grid;
  font-size: 130%;
  gap: 40px;
  grid-template-columns: calc(45% - 40px) 55%;
  line-height: 2em;
  margin-bottom: 60px;
  padding: 20px;
}

#contents .fv-text {
  align-items: center;
  display: flex;
}

#contents .time-bg {
  background-color: #E1F0F7;
  padding: 70px 0;
}

#contents .schooters-time {
  display: grid;
  gap: 20px;
  justify-content: center;
  margin: auto auto 60px;
  max-width: 1140px;
}

#contents .schooters-time.col-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

#contents .schooters-time .time-item {
  background-color: #FFF;
  border-radius: 10px;
  padding: 30px 10px;
}

#contents .schooters-time h3 {
  border: 0;
  color: #333;
  font-size: 125%;
  margin-bottom: 20px;
  padding: 0;
  text-align: center;
  font-weight: 600;
}

#contents .schooters-time .time-text p {
  color: #F0798B;
  font-size: 130%;
  font-weight: bold;
  margin-bottom: 0;
  text-align: center;
}

#contents .schooters-time.col-3 {
  grid-template-columns: 1fr 1fr 1fr;
}

#contents .ico-list {
  display: grid;
  gap: 10px;
  grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
}

#contents .ico-item {
  align-content: center;
  align-items: center;
  aspect-ratio: 1/1;
  background-color: #FFF;
  border-radius: 200px;
  color: #39A1CF;
  display: flex;
  flex-wrap: wrap;
  font-size: 80%;
  height: auto;
  justify-content: center;
  padding: 30px 0;
  text-align: center;
}

#contents .ico-item h4 {
  border: 0;
  color: #39A1CF;
  font-size: 125%;
  margin: 0;
  padding: 0;
  text-align: center;
  width: 100%;
  font-weight: 600;
}

#contents .request-bg {
  background-color: #F3F3F3;
  padding: 70px 0;
}

#contents .notes-area {
  background-color: #FFF;
  border-radius: 15px;
  margin: auto auto 70px;
  max-width: 800px;
  padding: 20px;
  width: 90%;
}

#contents .request-bg .txt-4box {
  background-color: #FFF;
  border-radius: 15px;
  margin-bottom: 20px;
  margin-right: 0;
  padding: 20px;
  width: calc((100% - 40px) / 3);
}

#contents .document-ico {
  height: 60px;
  text-align: center;
}

#contents .document-ico img {
  width: auto;
}

#contents .other-list {
  display: grid;
  gap: 20px;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  margin: auto;
  max-width: max-content;
  padding: 0;
}

#contents li.other-item {
  background-color: #F3F3F3;
  border-radius: 15px;
  list-style: none;
  margin-bottom: 30px;
  padding: 20px;
}

#contents li.other-item .bold {
  display: block;
  font-size: 110%;
  margin-bottom: 10px;
  text-align: center;
}

#contents .bold {
  font-weight: bold;
}

@media screen and (max-width: 768px) {
  #contents .schooters-fv {
    grid-template-columns: 100%;
    line-height: 1.2em;
    gap: 20px;
    padding: 20px 15px;
  }
  #contents .time-bg .txt-2box {
    margin-right: 0;
    margin-left: 0;
    width: 100%;
  }
  #contents .schooters-time.col-3 {
    display: flex;
    flex-wrap: wrap;
    gap: 15px 0;
  }
  #contents .schooters-time.col-3 .time-item {
    margin-right: 10px;
    width: calc(97% / 2 - 5px);
  }
  #contents .ico-list {
    grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
    gap: 15px;
  }
  #contents .request-bg .txt-4box {
    margin-right: 0;
    padding-bottom: 10px;
    width: 100%;
  }
  #contents .other-list {
    grid-template-columns: 100%;
  }
}

/* ドライビングサポートコース */
.support-bg {
  background-image: url(/img/plans/point_bg.jpg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  padding: 70px 0;
}

#contents .support-bg h3 {
  border: 0;
  color: #FFF;
  font-size: 30px;
  margin: 0 0 50px;
  padding: 0;
  text-align: center;
}

#contents .support-bg p {
  color: #FFF;
}

#contents .support-3point {
  display: grid;
  gap: 30px;
  grid-template-columns: 1fr 1fr 1fr;
  margin: auto;
}

#contents .point-item {
  background-color: #FFF;
  border-radius: 15px;
}

#contents .support-3point .point-item {
  display: block;
  border: none;
  padding: 0 20px;
}

#contents .support-3point .point-item::before {
  display: none;
}

#contents .support-3point h4 {
  border: 0;
  font-size: 24px;
  margin: 30px auto 20px;
  text-align: center;
}

#contents .support-3point .point-photo {
  margin-bottom: 30px;
  text-align: center;
}

#contents .support-3point .point-photo img {
  width: auto;
}

#contents .link-btn.paper {
  background-image: url(/img/plans/bg_bubble.png);
  border-radius: 15px;
  color: #333;
  font-size: 23px;
  font-weight: 600;
  margin: 60px auto 0;
  padding: 40px 30px;
  width: 600px;
}

#contents .link-btn.paper::after {
  display: none;
}

#paper #contents .check-box ul.no-mt {
  grid-template-columns: 1fr 1fr 1fr;
}

#contents .bg-area.plan-area {
  margin-bottom: 80px;
}

#contents .plan-box h2 {
  color: #2999CB;
  font-size: 30px;
  line-height: 1.5em;
  text-align: left;
}

#contents .flow-box .flow-item {
  background-color: #FFF;
  border: 5px solid #3DA0CE;
  border-radius: 20px;
  overflow: hidden;
  padding-bottom: 150px;
  position: relative;
}

#contents .flow-box .flow-item::before {
  background-image: url(/img/plans/photo_flow_01.png);
  background-size: 100%;
  bottom: 0;
  content: "";
  height: 144px;
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  width: 170px;
}

#contents .flow-box .flow-item:nth-child(2)::before {
  background-image: url(/img/plans/photo_flow_02.png);
  height: 140px;
  width: 210px;
}

#contents .flow-box .flow-item:nth-child(3)::before {
  background-image: url(/img/plans/photo_flow_03.png);
  height: 144px;
  width: 230px;
}

#contents .flow-box .flow-item h3 {
  background-color: #3DA0CE;
  border: none;
  color: #FFF;
  margin: 0 0 15px 0;
  padding: 15px;
  text-align: center;
}

#contents .flow-box .flow-item p {
  color: #333;
  text-align: center;
}

@media screen and (max-width: 768px) {
  #contents .support-3point {
      grid-template-columns: 1fr;
      gap: 15px;
  }
  #contents .support-3point .point-item {
      display: flex;
      flex-direction: row-reverse;
      align-items: center;
  }
  #contents .support-3point h4 {
      text-align: left;
      font-size: 18px;
      margin-left: 30px;
      padding-bottom: 0;
  }
  
  #contents .support-3point .point-item .point-photo {
      width: 30%;
      margin: 0;
  }
  
  #paper #contents .check-box ul.no-mt {
  	  grid-template-columns: 1fr;
  }
  
  #contents .plan-box .img-2box {
      width: 100%;
      max-width: 450px;
      margin: 0 auto 20px;
  }
  
  #contents .plan-box .img-2box-txt {
      width: 100%;
      margin-left: 0;
  }
  
  #contents .flex.flow-box {
      justify-content: center;
  }
  
  #contents .flow-box .flow-item, & .flow-box .flow-item:first-child {
      width: 100%;
      margin-right: 0;
      margin-bottom: 20px;
  }
}


#contents .office-theme {
  margin: 110px auto 0;
  max-width: 1000px;
  overflow: hidden;
}

#contents .office-theme h3.notes-ttl {
  border: none;
  font-size: 160%;
  margin: 0 0 50px 0;
  padding: 0;
  text-align: center;
}

#contents .theme-area {
  display: grid;
  gap: 30px;
  grid-template-columns: 1fr 1fr 1fr;
}

#contents .theme-item {
  background-color: #FFF;
  border: 5px solid #FCD419;
  border-radius: 20px;
  position: relative;
}

#contents .theme-item::before {
  background-image: url(/img/plans/bg_bubble.png);
  border-radius: 40px;
  content: "";
  height: 80px;
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  top: 20%;
  width: 80px;
  z-index: 0;
}

#contents .theme-item::after {
  background-image: url(/img/plans/ico_theme_01.png);
  content: "";
  height: 36px;
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  top: 60px;
  width: 40px;
}

#contents .theme-item:nth-child(2)::after {
  background-image: url(/img/plans/ico_theme_02.png);
  height: 35px;
  top: 62px;
  width: 24px;
}

#contents .theme-item:nth-child(3)::after {
  background-image: url(/img/plans/ico_theme_03.png);
  height: 35px;
  left: -3px;
  top: 62px;
  width: 39px;
}

#contents .theme-item h4 {
  border: none;
  margin: 0;
  padding: 140px 20px 30px 20px;
  text-align: center;
}

#contents .flex .theme-detail-item {
  margin-bottom: 50px;
  width: 48%;
}

#contents .theme-detail-item {
  background-color: #FFF;
  border-radius: 20px;
  padding: 50px;
}

#contents .theme-detail-item h2 {
  color: #248DC3;
  font-size: 28px;
}

#contents .improve-flow-box {
  display: grid;
  gap: 25px;
  grid-template-columns: 1fr 1fr 1fr;
}

#contents .improve-flow-item {
  background-color: #FFF9DA;
  border-radius: 15px;
  padding: 30px;
  position: relative;
}

#contents .improve-flow-item h4 {
  border: none;
  color: #248DC3;
  font-size: 23px;
  padding-left: 90px;
}

#contents .improve-flow-item h4 span {
  background-color: #248DC3;
  border-radius: 24px;
  color: #FFF;
  left: 30px;
  padding: 10px 11px 8px 11px;
  position: absolute;
  top: 20px;
}

#contents .concept-area h2 {
  color: #2999CB;
  font-size: 28px;
  line-height: 1.5em;
  margin-bottom: 20px;
  text-align: left;
}

@media screen and (max-width: 768px) {
  #contents .theme-area {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    gap: inherit;
  }
  #contents .theme-area .theme-item {
    width: calc(100% / 2 - 8px);
    margin-bottom: 15px;
  }
  #contents .theme-area .theme-item:first-child {
    margin-right: 15px;
  }
  #contents .theme-item::before {
    top: 15px;
    width: 60px;
    height: 60px;
  }
  #contents .theme-item::after {
    top: 27px;
  }
  #contents .theme-item:nth-child(2)::after,
  #contents .theme-item:nth-child(3)::after {
    top: 28px;
  }
  #contents .theme-area .theme-item:last-child {
    width: 100%;
  }
  #contents .theme-item h4 {
    font-size: 16px;
    line-height: 1.5em;
    padding: 80px 10px 15px 10px;
  }
  #contents .theme-detail-item {
    padding: 30px 15px 20px;
  }
  #contents .flex .theme-detail-item {
    width: 100%;
    margin-bottom: 30px;
  }
  #contents .improve-flow-box {
    grid-template-columns: 1fr;
    gap: 15px;
  }
  #contents .improve-flow-item {
    padding: 15px;
  }
  #contents .concept-area .img-2box {
    width: 100%;
    max-width: 450px;
    margin: 0 auto 20px;
  }
  #contents .concept-area .img-2box-txt {
    width: 100%;
    margin-left: 0;
  }
  #contents .concept-area h2 {
    font-size: 18px;
  }
}

/* 運行管理者等指導講習 */
#contents #about .training-area {
    margin-bottom: 60px;
}

#manager #contents .training-area h3, #manager  #contents .kinds-area h3 {
    text-align: center;
    border: none;
}

#contents #about .training-area .txt-2box {
    background-color: #fff;
    padding: 30px 40px;
    border-radius: 25px;
}

#contents #about .training-area .txt-2box.end .link-btn {
    width: 450px;
    margin: auto;
    border-radius: 10px;
    padding: 20px;
    font-size: 19px;
}

#contents #about .kinds-area {
    background-color: #fff;
    padding: 50px 55px;
    border-radius: 25px;
}

#contents .kinds-area h3 {
    text-align: center;
    border: none;
}

#manager #contents .flow-item {
    width: 100%;
    background-image: url(/img/plans/bg_border.png);
    background-color: #fff;
    border-radius: 20px;
    padding: 6px;
    position: relative;
    margin: 0 auto 50px;
}

#manager #contents .flow-item .flex {
    background-color: #fff;
    border-radius: 15px;
}

#manager #contents .flow-item .img-2box {
    width: auto;
    position: absolute;
    top: -10px;
    left: 40px;
    width: 100%;
    max-width: 210px;
}

#manager #contents .flow-item .img-2box-txt {
    width: 100%;
    margin-left: 0;
    padding: 30px 20px 30px 280px;
}

#manager #contents .flow-item .img-2box-txt h3 {
    position: relative;
    border-left: 0;
    padding-left: 50px;
}

#manager #contents .flow-item .img-2box-txt h3 .num {
    position: absolute;
    left: 0;
    background-color: #39A1CF;
    color: #fff;
    padding: 5px 12px 5px 13px;
    border-radius: 50px;
    top: 3px;
}

#manager #contents .info-area {
    background-color: #e1f0f7;
    padding: 20px 30px;
    border-radius: 15px;
    width: 100%;
    max-width: 400px;
}

#manager #contents .info-area h4 {
	text-align: center;
}

#manager #contents .info-area p.tel, #manager #contents p.fax {
    margin: auto;
    justify-content: center;
    align-items: center;
    color: #248DC3;
    display: flex;
    font-size: 23px;
    font-weight: bold;
    letter-spacing: 0;
    padding: 0;
    width: auto;
}

#manager #contents .flex.download {
	background-color: #e1f0f7;
}

#manager #contents .flow-item:nth-child(2) .img-2box-txt .fax-list .txt-2box {
    width: 30%;
    background-color: #e1f0f7;
    padding: 20px 30px;
    border-radius: 15px;
}

#manager #contents .flow-item:nth-child(2) .img-2box-txt .fax-list .txt-2box h4 {
    text-align: center;
}

#manager #contents .flow-item:nth-child(2) .img-2box-txt .fax-list .txt-2box.fax p.fax {
    margin: auto;
    justify-content: center;
}

#manager #contents .flow-item:nth-child(2) .img-2box-txt .fax-list .txt-2box.end {
    max-width: 100%;
    width: 62%;
}

#manager #contents .flow-item:nth-child(2) .img-2box-txt .fax-list .txt-2box.end .flex.download .txt-2box {
    width: calc(96% / 2 - 15px);
    padding: 0;
}

#manager #contents .document-area {
    background-color: #FFF;
    border: 5px solid #3DA0CE;
    border-radius: 25px;
    margin-bottom: 65px;
    padding: 50px 55px;
}

#manager #contents .document-area h3, #manager #contents .important-point h3 {
    text-align: center;
    border: 0;
    padding: 0;
}

#manager #contents .document-area .document-list {
    align-content: flex-start;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}

#manager #contents .document-area .document-list .document-item {
    width: calc(94% / 3 - 10px);
    background-color: #f3f3f3;
    padding: 20px;
    border-radius: 20px;
    margin-bottom: 20px;
}

#contents .important-point .point li .num {
  background-color: #FCD419;
  border-radius: 50px;
  content: "";
  left: 0;
  position: absolute;
  top: 1px;
  z-index: 0;
  padding: 0px 10px 0 10px;
  font-size: 16px;
  font-weight: 600;
}

@media screen and (max-width: 768px) {
  #manager #contents .training-area {
      margin-bottom: 30px;
  }
  #manager #contents .training-area .txt-2box, & #manager #contents .kinds-area {
      padding: 20px 15px;
      margin-bottom: 30px;
      margin-left: 0;
      margin-right: 0;
      width: 100%;
  }
  
  #manager #contents .kinds-area .txt-2box {
      margin-bottom: 20px;
      margin-left: 0;
      margin-right: 0;
      width: 100%;
  }
  
  #manager #contents .flow-item .img-2box {
      display: none;
  }
  
  #manager #contents .flow-item .img-2box-txt {
      padding: 20px 15px 20px 15px;
  }
  
  #manager #contents .flow-item:nth-child(2) .img-2box-txt .fax-list .txt-2box {
      padding: 15px 15px;
      width: 100%;
      margin-bottom: 10px;
      margin-right: 0;
  }
  
  #manager #contents .flow-item:nth-child(2) .img-2box-txt .fax-list .txt-2box.end {
  	width: 100%;
  }
  
  #manager #contents .flow-item:nth-child(2) .img-2box-txt .fax-list .txt-2box.end .flex.download .txt-2box {
      width: 100%;
      margin-right: 0;
      max-width: 100%;
  }
  
  #manager #contents .document-area {
      padding: 20px 15px 10px;
      margin-bottom: 40px;
  }
  
  #manager #contents .document-area .document-list .document-item {
      width: calc(100% / 2 - 5px);
      margin-bottom: 10px;
      padding: 15px;
  }
  
  #manager #contents .document-area .document-list .document-item:nth-child(5), #manager #contents .document-area .document-list .document-item:last-child {
      width: 100%;
  }
  
  #manager #contents .important-point {
      padding: 20px 15px;
  }
}

#contents .mb-10 {
  margin-bottom:10px;
}

#contents .mb-30 {
  margin-bottom:30px;
}

#schedule #contents #page-ttl .inner h1 .sub-txt, #schedule #contents h2 .sub-txt {
    font-size: 70%;
    line-height: 1.9em;
    border-left: 0;
}

#schedule #contents .training-item {
    background-color: #fff;
    padding: 40px 50px;
    border-radius: 25px;
}

#schedule #contents .training-item h3 {
    text-align: center;
    border: 0;
    color: #2999CB;
}

#schedule #contents .download a.link-btn {
    border-radius: 10px;
    margin: auto;
    width: 450px;
}

#schedule #contents .access-area {
    background-color: #f0f7fb;
    border-radius: 25px;
    padding: 40px;
}

#schedule #contents .contact-area {
    border: 5px solid #3da0ce;
    border-radius: 25px;
    padding: 40px 50px;
    width: 100%;
    max-width: 750px;
    margin: auto;
}

#schedule #contents  .contact-area p.bold {
    text-align: center;
    font-size: 20px;
}

#schedule #contents p.tel {
    align-items: center;
    color: #248DC3;
    display: flex;
    font-size: 30px;
    font-weight: bold;
    letter-spacing: 0;
    margin-right: 15px;
    padding: 0;
    width: auto;
    justify-content: center;
}

#schedule #contents p.tel a.tel .sub-txt {
    font-size: 74%;
}

@media screen and (max-width: 768px) {
  #schedule #contents .training-item .txt-2box {
      width: 100%;
      margin-right: 0;
      margin-bottom: 30px;
  }
  #schedule #contents .training-item {
      padding: 20px 15px;
  }

  #schedule #contents .access-area {
      padding: 20px 15px;
  }

  #schedule #contents .access-area .flex {
      flex-direction: column-reverse;
  }

  #schedule #contents .access-area .txt-2box {
      margin-bottom: 20px;
      width: 100%;
  }

  #schedule #contents .contact-area {
      padding: 25px 15px;
  }
}


#contents .nurserya-catch {
  background-color:#F7D953;
  background-image:url(/img/plans/bg_bubble.png);
  border-radius:5px;
  clip-path:polygon(5% 0, 0 40%, 5% 80%, 39% 80%, 95% 80%, 100% 40%, 95% 0);
  display:block;
  font-size:150%;
  font-weight:bold;
  letter-spacing:2px;
  margin:auto auto -70px;
  max-width:100%;
  padding:40px 60px 60px;
  text-align:center;
  width:max-content;
  z-index: 9999;
  position: relative;
}

.nurserya-points,
.nurserya-caution {
  background-color:#FFE5E9;
  border-radius:20px;
  margin-bottom:70px;
  padding:90px 50px 50px;
}

.nurserya-caution {
  background-color:#EAF5F9;
}

.nurserya-list {
  list-style:none;
  margin:auto auto 40px !important;
  max-width:100%;
  padding-left:0;
  position:relative;
  width:700px;
  z-index:0;
}

#contents .nurserya-list li {
  background-color:#FFF;
  border:3px solid #EF788B;
  border-radius:15px;
  font-weight:bold;
  letter-spacing:1px;
  margin-bottom:20px;
  padding:15px 10px 15px 60px;
  position:relative;
}

@media screen and (max-width: 558px) {
	.nurserya-list {
	  margin:auto auto 0px;
	  padding-left: 0 !important;
	}

	#contents .nurserya-list li {
	  font-size:1rem;
	}
}

#contents .nurserya-caution .nurserya-list li {
  background-color:#FFF;
  border:3px solid #2394C7;
}

#contents .nurserya-list li::after {
  background-color:#FFC5CE;
  border-radius:14px;
  content:"";
  height:120%;
  left:0;
  position:absolute;
  top:-6%;
  transform:rotate(-1deg);
  width:100%;
  z-index:-1;
}

#contents .nurserya-list li::before {
  background-image:url(/img/childcare/ico_check_pink.png);
  background-repeat:no-repeat;
  background-size:contain;
  border-radius:40px;
  bottom:0;
  content:"";
  height:30px;
  left:10px;
  margin:auto;
  position:absolute;
  top:0;
  width:30px;
}

#contents .nurserya-caution .nurserya-list li::before {
  background-image:url(/img/childcare/ico_check_blue.png);
}

#contents .nurserya-caution .nurserya-list li::after {
  background-color:#90D1ED;
}

.nurserya-voice {
  margin:auto;
  max-width:1300px;
  padding:70px 0;
}

#contents .nurserya-deco {
  font-size:100%;
  font-weight:bold;
  letter-spacing:1px;
  margin:0 auto;
  max-width:max-content;
  position:relative;
  text-align:center;
}

.nurserya-deco::before,
.nurserya-deco::after {
  border-left:2px dotted #EF788B;
  bottom:0;
  content:"";
  height:80%;
  left:calc(100% + 10px);
  margin:auto;
  position:absolute;
  top:0;
  transform:rotate(35deg);
  width:0;
}

.nurserya-deco::after {
  left:auto;
  right:calc(100% + 25px);
  transform:rotate(-35deg);
}

#contents .nurserya-deco p {
  font-weight:bold;
}

.voice-bg {
  background-color:#F3F3F3;
  margin-bottom:-120px;
}

.voice-photo {
  border-radius:10px;
  display:flex;
  margin-bottom:40px;
  overflow:hidden;
}

.voice-item {
  margin-bottom:40px;
  padding:0;
  position:relative;
  z-index:0;
}

.voice-q,
.voice-a {
  background-color:#FFF;
  padding:20px 20px 20px 60px;
  position:relative;
}

.voice-q:before,
.voice-a:before {
  color:#FFF;
  content:"Q";
  font-size:190%;
  font-weight:bold;
  left:20px;
  position:absolute;
  top:15px;
}

.voice-a::before {
  color:#EF788B;
  content:"A";
}

#contents .voice-q p {
  color:#FFF;
  font-size:120%;
  font-weight:bold;
  letter-spacing:1px;
}

.voice-q {
  background-color:#EF788B;
  border-top-left-radius:10px;
  border-top-right-radius:10px;
}

.voice-a {
  border:3px solid #EF788B;
  border-bottom-left-radius:10px;
  border-bottom-right-radius:10px;
}

#contents .voice-q p:last-child,
#contents .voice-a p:last-child {
  margin-bottom:0;
}

@media screen and (max-width: 558px) {
	#contents .voice-q, .voice-a p {
	  font-size:1rem;
	}
}

@media screen and (max-width: 959px) {
  #contents .nurserya-catch {
    font-size:5vw;
    max-width:90%;
    padding:3vw 13vw 9vw;
  }
  
  .nurserya-points {
    padding:60px 3vw 10px;
  }
  
  #contents .nurserya-deco {
    width:85%;
  }
  
  #contents .nurserya-list li {
    padding:10px 10px 10px 50px;
  }
  
  .nurserya-caution {
    padding:5vw 3vw 1vw;
  }
  
  .voice-bg {
    padding:30px 0 20px;
  }
  
  .voice-q:before,
  .voice-a:before {
    font-size:120%;
  }
  
  #contents .voice-q p {
    font-size:100%;
  }
  
  .nurserya-voice {
    padding:10px 0 70px;
  }
  
  #contents .nurserya-catch {
    font-size:3vw;
    line-height:1.5em;
    padding:5vw 11vw 10vw;
  }
}

@media screen and (max-width: 559px) {
  .nurserya-deco::before,
  .nurserya-deco::after {
    height:80%;
  }
  .nurserya-deco::after {
    right:100%;
  }
  .nurserya-deco::before {
    left:100%;
  }
  .voice-q,
  .voice-a {
    padding:2vw 2vw 2vw 50px;
  }
}

/* ============================================
   サブページ共通FV：アンカーボタンの矢印を非表示
   .notes-bg 内の .link-btn に適用
   ============================================ */
.notes-bg .link-btn::after,
#contents .notes-bg .link-btn::after {
  display: none;
}


/* ============================================================
   在校生ページ（/student/）用スタイル 復元ブロック
   ※ CSS整理時に欠落していた #calendar / #schedule 関連を復元
   ※ 現行 main.css の末尾に追記してください
   ============================================================ */

/* カレンダー */
/* default PC */

.bg-area .about-area {
  background-color: #fff;
  padding: 30px 30px;
  margin-bottom: 40px;
  border-radius: 10px;
}

#calendar {
  & .color-item .color-txt {
    margin-right: 20px;
  }

  & .color-item .color-txt .color-box {
    background-color: #fdc431;
    padding: 0 20px;
    margin-right: 10px;
  }

  & .color-item .color-txt .blue {
    background-color: #32ace3;
  }

  & .color-item .color-txt .red {
    background-color: #dd5951;
  }

  & .color-item .color-txt .white {
    background-color: #fff;
    border: 1px solid #333;
  }

  & .link-area a.link-btn.pdf {
    margin: auto;
  }

  & .training-time .table-02 th,
  & .training-time .table-02 td {
    text-align: center;
    font-size: 130%;
  }

  & .training-time .table-02 th {
    font-size: 130%;
    letter-spacing: 2px;
    color: #ffffff;
    margin-bottom: 20px;
    background-color: #39a1cf;
    padding: 20px;
    margin-bottom: 0;
    background-image: url(/img/btn_bg_blue.png);
  }

  & .training-time .table-02 td.offtime {
    background-color: #fff5db;
  }
}

/* 教習時間テーブル：PC版でボックス幅いっぱいに広げ、横の空白を詰める（SPは現状維持） */
@media screen and (min-width: 560px) {
  #calendar .training-time .table-02 {
    width: 100%;
  }
}

#schedule {
  .schedule-bg {
    padding-top: 70px;
    background-image: url(/img/schedule-bg.jpg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
  }

  #contents .info-text {
    font-weight: 500;
    line-height: 1.9em;
    text-align: center;
  }

  #contents .schedule-info p.main-txt {
    text-align: center;
    font-size: 25px;
    line-height: 30px;
    margin-bottom: 25px;
    font-weight: 500;
  }

  #contents .schedule-info {
    background-color: #fff;
    max-width: 1200px;
    padding: 40px;
    margin: auto auto -110px;
    border: 5px solid #3da0ce;
    border-radius: 25px;
    position: relative;
    width: 90%;
    z-index: 1;
  }

  & #contents .schedule-bg h2,
  & #contents .schedule-bg h2 .en-ttl {
    color: #fff;
  }

  & #contents .box-mb.bg-area.ondemand h2 .sub-txt {
    font-size: 20px;
  }

  & #contents .box-mb.bg-area.ondemand {
    padding-top: 100px;
  }

  #contents .no-area {
    border: 5px solid #fcd419;
    margin-bottom: 30px;
    padding: 40px;
    background-color: #fff;
    border-radius: 25px;
  }

  & .no-area .no-item {
    margin-bottom: 50px;
  }

  & .no-list {
    background-color: #f3f3f3;
    padding: 30px 40px 30px 30px;
    border-radius: 18px;
  }

  & .no-area .no-item:last-child {
    margin-bottom: 0;
  }

  & #contents .no-area .no-item p.num-list {
    position: relative;
    padding-left: 45px;
  }

  & #contents .no-area .no-item p.num-list .num {
    position: absolute;
    left: 0;
    padding: 0px 10px 2px 10px;
    background-color: #fcd419;
    border-radius: 50px;
    font-weight: 500;
  }

  & #contents .box-mb.bg-area.ondemand .about-area {
    max-width: 1200px;
    margin: auto;
    padding: 40px;
  }

  #contents .no-area .no-item h3 {
    line-height: 33px;
    font-size: 22px;
    padding: 3px 17px 4px;
  }

  #contents .no-area .no-item h3 .min-txt {
    font-size: 16px;
  }

  #contents .notes-txt {
    width: 100%;
    max-width: 930px;
    margin: auto;
  }
}

.txt-on-1140 {
  display: none;
}

br.br-1040 {
  display: none;
}

/* view-1140 notePC,Tablet */
@media screen and (max-width: 1140px) {

  .txt-on-1140 {
    display: block;
  }

  .table-over .calendar-img {
    min-width: 1140px;
  }

  #schedule {
    #contents .bnr-link-area .link-bnr h3 {
      font-size: 18px;
    }

    #contents .notes-txt {
      max-width: 670px;
    }
  }
}

@media screen and (max-width: 1040px) {
  br.br-1040 {
    display: block;
  }
}

/* view-959 Mobile,Tablet */
@media screen and (max-width: 959px) {

  .bnr-link-area .txt-3box {
    width: calc(100% / 2 - 10px);
  }

  .bnr-link-area .txt-3box:first-child {
    margin-right: 20px;
  }

  #calendar {
    & .training-time .table-02 th {
      padding: 15px 10px;
      width: 30%;
      min-width: 120px;
    }

    & .training-time .table-02 tr.bd-none th,
    & .training-time .table-02 tr.bd-none td {
      border-bottom: 0;
    }

    .bg-area .about-area {
      padding: 20px 15px;
    }
  }

  #schedule {
    #contents .notes-txt {
      max-width: 100%;
    }
  }
}

@media screen and (max-width: 834px) {

  #schedule {

    #contents .no-area .no-item:first-child h3 br,
    #contents .no-area .no-item:nth-child(3) h3 br,
    #contents .no-area .no-item:nth-child(4) h3 br {
      display: none;
    }

    & #contents .no-area .no-item:last-child h3 {
      line-height: 1em;
    }

    #contents .no-area .no-item h3 .min-txt {
      display: flex;
      padding-top: 15px;
    }

    #contents .no-area .no-item h3 {
      font-size: 19px;
    }
  }
}

.txt-on-559 {
  display: none;
}

.txt-off-559 {
  display: block;
}

/* view-559 Mobile */
@media screen and (max-width: 559px) {
  .training-time .txt-3box {
    margin-right: 0px;
    width: 100%;
  }

  .txt-off-559 {
    display: none;
  }

  .txt-on-559 {
    display: block;
  }

  .bnr-link-area .txt-3box {
    width: 100%;
  }

  .bnr-link-area .txt-3box:first-child {
    margin-right: 0px;
  }

  .bnr-link-area .link-bnr,
  .bnr-link-area .link-bnr img {
    width: 100%;
  }

  #schedule {
    #contents .schedule-info p.main-txt {
      font-size: 20px;
      margin-bottom: 20px;
    }

    #contents .info-text {
      text-align: left;
      margin-bottom: 0;
    }

    & #contents .box-mb.bg-area.ondemand .about-area {
      padding: 20px 15px;
    }

    & #contents .box-mb.bg-area.ondemand h2 {
      line-height: 1.1em;
    }

    .bnr-link-area .link-bnr,
    .bnr-link-area .link-bnr img {
      width: 100%;
    }

    & .no-area {
      padding: 30px 15px 15px;
    }

    #contents .notes-txt {
      margin: 0 auto 10px;
    }

    & #contents .no-area .no-item:last-child h3,
    & #contents .no-area .no-item h3 {
      line-height: 1.4em;
    }

    & .no-list {
      padding: 20px 15px;
    }

    & .no-area .no-item .table-02 {
      width: 100%;
    }

    & .schedule-info {
      padding: 30px 15px 20px;
    }

    & #contents .no-area .no-item p.num-list .num {
      padding: 0px 10px 0px 10px;
    }

    & #contents .no-area .no-item p.num-list {
      padding-left: 40px;
    }

    & #contents .no-area .no-item h3 {
      font-size: 17px;
    }

    & #contents .no-area .no-item h3 br.br-1040 {
      display: none;
    }

    & .no-area .no-item .table-02 th {
      min-width: 92px;
    }
  }
}

@media screen and (max-width: 390px) {
  #schedule {
    & .no-area .no-item .table-02 td br.br-559 {
      display: none;
    }
  }
}

/* =============================================
   Q&A アコーディオン（CSSのみ実装 / JS廃止版）
   qa-accordion.js を読み込まずに動作します
   ※ .qa-a のインライン style="display:none;" は
     HTML（blade）側から削除してください
   ============================================= */

/* ---- 質問項目（カード） ---- */
#qa .qa-item {
  background-color: #FFF;
  border-radius: 12px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, .06);
  margin-bottom: 20px;
  overflow: hidden;
}

/* ---- 質問（クリック領域） ---- */
#qa .qa-q {
  align-items: center;
  border: 0;
  border-left: 0;
  color: #333;
  cursor: pointer;
  display: flex;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: .03em;
  line-height: 1.5;
  margin: 0;
  outline: none;
  padding: 25px 60px 25px 60px;
  position: relative;
  transition: color .3s;
  -webkit-tap-highlight-color: transparent;
}

#qa .qa-q:hover {
  color: #2999CB;
}

/* 先頭の「Q」アイコン */
#qa .qa-q::before {
  color: #2999CB;
  content: "Q";
  font-family: 'Roboto', sans-serif;
  font-size: 26px;
  font-weight: 700;
  left: 22px;
  line-height: 1;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

/* 右端の開閉矢印（▼） */
#qa .qa-q::after {
  border-style: solid;
  border-width: 8px 6px 0 6px;
  border-color: #999 transparent transparent transparent;
  content: "";
  height: 0;
  position: absolute;
  right: 25px;
  top: 50%;
  transform: translateY(-50%) rotate(0deg);
  transition: transform .3s;
  width: 0;
}

/* ---- 回答エリア（初期は閉じる） ---- */
#qa .qa-a {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height .4s ease, opacity .3s ease, padding .4s ease;
  padding: 0 30px;
}

#qa .qa-a .a-area {
  border-top: 1px dashed #d5d5d5;
  padding: 25px 0 25px 38px;
  position: relative;
}

/* 回答先頭の「A」アイコン */
#qa .qa-a .a-area::before {
  color: #E8533F;
  content: "A";
  font-family: 'Roboto', sans-serif;
  font-size: 26px;
  font-weight: 700;
  left: 0;
  line-height: 1;
  position: absolute;
  top: 25px;
}

#qa .qa-a .a-area p {
  margin-bottom: 12px;
}

#qa .qa-a .a-area p:last-child {
  margin-bottom: 0;
}

#qa .qa-a .a-area ul {
  margin: 0;
  padding: 0;
}

#qa .qa-a .a-area ul li {
  list-style: none;
  margin-bottom: 12px;
  padding-left: 18px;
  position: relative;
}

#qa .qa-a .a-area ul li::before {
  background-color: #2999CB;
  border-radius: 50%;
  content: "";
  height: 7px;
  left: 0;
  position: absolute;
  top: 9px;
  width: 7px;
}

#qa .qa-a .a-area ul li:last-child {
  margin-bottom: 0;
}

#qa .qa-a .a-area .look-red {
  color: #E8533F;
}

/* 回答内のリンクボタンの上余白を確保 */
#qa .qa-a .a-area .link-btn {
  margin-top: 18px;
}

/* 白い矢印（▶）は不要のため非表示 */
#qa .qa-a .a-area .link-btn::after {
  display: none;
}

/* ---- 開いた状態（:focus / :focus-within で展開） ---- */
/* .qa-q にフォーカスが当たる、または .qa-item 内にフォーカスがある時に開く */
#qa .qa-item:focus-within .qa-a,
#qa .qa-q:focus + .qa-a {
  max-height: 1500px;
  opacity: 1;
  padding: 0 30px 5px;
}

/* 開いた時に矢印を反転（▲） */
#qa .qa-item:focus-within .qa-q::after,
#qa .qa-q:focus::after {
  transform: translateY(-50%) rotate(180deg);
}

/* ---- スマートフォン ---- */
@media screen and (max-width: 768px) {
  #qa .qa-q {
    font-size: 16px;
    padding: 20px 50px 20px 50px;
  }

  #qa .qa-q::before {
    font-size: 22px;
    left: 18px;
  }

  #qa .qa-q::after {
    right: 18px;
  }

  #qa .qa-a {
    padding: 0 20px;
  }

  #qa .qa-item:focus-within .qa-a,
  #qa .qa-q:focus + .qa-a {
    padding: 0 20px 5px;
  }

  #qa .qa-a .a-area {
    padding-left: 32px;
  }

  #qa .qa-a .a-area::before {
    font-size: 22px;
  }
}

/* ============================================================
   movie ページ専用 動画一覧レイアウト
   ============================================================ */
#contents .movie-area {
  display: grid;
  gap: 30px;
  margin-top: 30px;
}

/* 教習所案内（2本）= 2列 */
#contents .bg-blue .movie-area {
  grid-template-columns: repeat(2, 1fr);
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}

/* 普通自動車（6本）= 3列 */
#contents .box-mb .movie-area {
  grid-template-columns: repeat(3, 1fr);
}

/* グリッド内の各動画枠：従来の .txt-3box の幅指定を打ち消す */
#contents .movie-area .txt-3box {
  width: auto;
  margin: 0;
}

/* iframe をレスポンシブ化（16:9 で枠いっぱい） */
#contents .movie-area .txt-3box iframe {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  border: 0;
  border-radius: 6px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, .12);
}

/* アンカーリンクボタンを中央＆均等に */
#contents .office-fv .anchor-link.flex.center {
  gap: 30px;
  flex-wrap: wrap;
}
#contents .office-fv .anchor-link .txt-3box {
  width: 280px;
  margin: 0;
}
#contents .office-fv .anchor-link .link-btn {
  margin-top: 0 !important;
}

/* タブレット：普通自動車を2列に */
@media screen and (max-width: 959px) {
  #contents .box-mb .movie-area {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* スマホ：すべて1列に */
@media screen and (max-width: 768px) {
  #contents .movie-area {
    gap: 20px;
    margin-top: 20px;
  }
  #contents .bg-blue .movie-area,
  #contents .box-mb .movie-area {
    grid-template-columns: 1fr;
    max-width: 480px;
    margin-left: auto;
    margin-right: auto;
  }
  #contents .office-fv .anchor-link .txt-3box {
    width: 100%;
    max-width: 320px;
  }
}

/* ============================================================
   スクールバス 路線セクション レイアウト改訂
   （Map廃止 → 時刻表 + PDF/Googleマップボタン構成）
   旧 .map-line / .txt-2box ベースのバランス崩れを補正
   ※ #bus 配下のみ適用。他ページには影響しません
   ============================================================ */

/* 路線セクション間の余白を整理 */
#bus #tamahara,
#bus #yamada,
#bus #kounansenoo,
#bus #kojima-north,
#bus #kojima-south,
#bus #gounai,
#bus #okayama {
  margin-bottom: 70px;
}

/* 路線見出し（h2）の上に十分な余白 */
#bus #contents .schoolbus-bg.bg-none {
  padding: 0 0 0;
}

/* 中央寄せのカード型コンテナに変更（旧:左寄せ46%幅） */
#bus #contents .map-line.short {
  padding: 0;
}

#bus #contents .map-line.short .inner {
  width: 90%;
  max-width: 760px;
  margin: 0 auto;
}

/* flex 解除：単独カードを中央に */
#bus #contents .map-line.short .flex {
  display: block;
}

/* txt-2box を中央寄せのカード幅へ（旧 46% / 98% を打消し） */
#bus #contents .map-line .txt-2box {
  width: 100%;
  max-width: 760px;
  margin: 0 auto;
}

@media screen and (min-width: 769px) {
  #bus #contents .map-line .txt-2box {
    width: 100%;
  }
}

/* 時刻表カード見出し（青帯） */
#bus #contents .map-line .txt-2box h3 {
  border-radius: 16px 16px 0 0;
  padding: 18px 20px 16px;
  font-size: 22px;
}

/* 時刻表 本体ボックス */
#bus #contents .map-line .txt-2box .timetable {
  border-width: 4px;
  border-radius: 0 0 16px 16px;
  padding: 24px;
  margin-bottom: 0;
}

/* 時刻表画像（バナー） */
#bus #contents .map-line .timetable .link-bnr {
  display: block;
  margin: 0 auto;
}

#bus #contents .map-line .timetable .link-bnr img {
  border-radius: 8px;
  width: 100%;
  height: auto;
}

/* 時刻表画像下のボタングループ（枠内に配置） */
#bus #contents .map-line .timetable .link-area.btn-group {
  margin-top: 18px;
  display: flex;
  justify-content: center;
  align-items: stretch;
  gap: 16px;
  flex-wrap: wrap;
}

/* PC：PDF / Googleマップ を横並び（均等幅） */
#bus #contents .map-line .timetable .link-area.btn-group .link-btn {
  width: auto;
  flex: 1 1 0;
  max-width: 320px;
  min-width: 0;
  margin: 0;
}

/* ボタンが1つだけの路線は中央に通常サイズで表示（広げない） */
#bus #contents .map-line .timetable .link-area.btn-group .link-btn:only-child {
  flex: 0 0 auto;
  width: 320px;
  max-width: 100%;
}

/* --- タブレット --- */
@media screen and (max-width: 1024px) {
  #bus #contents .map-line.short .inner {
    max-width: 680px;
  }
  #bus #contents .map-line .txt-2box {
    max-width: 680px;
  }
}

/* --- スマートフォン --- */
@media screen and (max-width: 768px) {
  #bus #tamahara,
  #bus #yamada,
  #bus #kounansenoo,
  #bus #kojima-north,
  #bus #kojima-south,
  #bus #gounai,
  #bus #okayama {
    margin-bottom: 50px;
  }

  #bus #contents .map-line.short .inner {
    width: 90%;
    max-width: 520px;
  }

  #bus #contents .map-line .txt-2box h3 {
    font-size: 19px;
    padding: 15px 15px 13px;
  }

  #bus #contents .map-line .txt-2box .timetable {
    padding: 16px;
  }

  /* SPではボタンを縦積み・全幅 */
  #bus #contents .map-line .timetable .link-area.btn-group {
    flex-direction: column;
    align-items: center;
    gap: 12px;
  }

  #bus #contents .map-line .timetable .link-area.btn-group .link-btn {
    width: 100%;
    max-width: 100%;
    flex: none;
  }

  /* SPでもボタンが1つだけの路線は広げず通常サイズ・中央 */
  #bus #contents .map-line .timetable .link-area.btn-group .link-btn:only-child {
    width: 320px;
    max-width: 100%;
  }
}

/* ============================================================
   スクールバス 路線リンク（時刻表ボタン）スマホ表示改善
   縦書きデザイン・PCと同じボタン横幅を維持したまま、
   上段4列・下段3列（中央寄せ）で折り返して全路線を表示する
   ※ #bus 配下のSPのみ適用。PC表示は従来どおり
   ============================================================ */
@media screen and (max-width: 768px) {
  #bus .timeschedule-list {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: stretch;
    gap: 12px;
    width: 100%;
    max-width: none;
    margin: 0 auto;
    /* コンテナは横書き、各ボタンは縦書きを維持 */
    writing-mode: horizontal-tb;
  }

  /* 1行に4つ収まる幅（4列 → 余り3つが下段に中央寄せ） */
  #bus .timeschedule-list .timeschedulu-item {
    display: flex;
    justify-content: center;
    flex: 0 0 calc((100% - 12px * 3) / 4);
    max-width: calc((100% - 12px * 3) / 4);
  }

  #bus .timeschedule-list .route-item {
    writing-mode: vertical-rl;
    height: auto;
    min-height: 210px;
    width: 100%;
    max-width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 56px 10px 22px 10px;
    background-position: center 14px;
  }

  #bus .timeschedulu-item span {
    left: 0;
  }
}

@media screen and (max-width: 374px) {
  #bus .timeschedule-list {
    gap: 8px;
  }
  #bus .timeschedule-list .timeschedulu-item {
    flex: 0 0 calc((100% - 8px * 3) / 4);
    max-width: calc((100% - 8px * 3) / 4);
  }
  #bus .timeschedule-list .route-item {
    min-height: 190px;
    padding: 48px 7px 18px 7px;
    border-width: 4px;
  }
}

.loan-area { margin-top:50px; }


/* ============================================
   料金案内セクション（普通免許ページ）
   - 既存トンマナ準拠：メインブルー #39A1CF / #248dc3 / #00A3E0
   - アコーディオンは faq と同じ details/summary 方式
   ============================================ */

.price-guide {
  max-width: 900px;
  margin: 0 auto 60px;
}

/* セクション見出しは既存 #contents h3 を踏襲しつつ余白調整 */
#contents .price-guide-ttl {
  border-left: 4px solid #39A1CF;
  color: #333;
  font-size: 24px;
  font-weight: 500;
  letter-spacing: .03em;
  margin: 24px 0;
  padding: 8px 17px 9px;
}
#contents .price-guide-ttl + .price-acc {
  margin-top: 0;
}

/* ---- アコーディオン本体 ---- */
.price-acc {
  background: #fff;
  border: 1px solid #d4d4d4;
  border-radius: 10px;
  margin-bottom: 14px;
  overflow: hidden;
}

.price-acc__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 22px;
  cursor: pointer;
  list-style: none;
  background: #fff;
  transition: background .3s;
}
.price-acc__head::-webkit-details-marker { display: none; }
.price-acc__head:hover { background: #f0f7fb; }

/* 開いている AT 等は見出し背景を薄ブルーに */
.price-acc[open] > .price-acc__head {
  background: #e1f0f7;
}

.price-acc__title {
  font-size: 19px;
  font-weight: 700;
  color: #333;
}
.price-acc[open] > .price-acc__head .price-acc__title {
  color: #248dc3;
}

/* +/− マーク（faq と同じ挙動） */
.price-acc__head::after {
  content: '+';
  flex-shrink: 0;
  font-size: 1.5rem;
  line-height: 1;
  font-weight: 300;
  color: #00A3E0;
}
.price-acc[open] > .price-acc__head::after { content: '−'; }

.price-acc__body {
  padding: 22px;
  border-top: 1px solid #e5e7eb;
}
.price-acc__body > p {
  margin: 0 0 18px;
}

/* ---- 所持免許別 基本料金テーブル ---- */
.price-base {
  border: 1px solid #d4d4d4;
  border-radius: 6px;
  overflow: hidden;
  margin-bottom: 14px;
}
.price-base__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 15px;
}
.price-base__table th,
.price-base__table td {
  padding: 13px 16px;
  border-bottom: 1px solid #e5e7eb;
}
.price-base__table tr:last-child th,
.price-base__table tr:last-child td {
  border-bottom: none;
}
.price-base__label {
  width: 26%;
  background: #f0f7fb;
  color: #248dc3;
  font-weight: 700;
  text-align: center;
  vertical-align: middle;
  border-right: 1px solid #d4d4d4 !important;
  border-bottom: none !important;
}
.price-base__name {
  background: #fff;
}
.price-base__yen {
  background: #fff;
  text-align: right;
  white-space: nowrap;
}
.price-base__yen strong {
  font-size: 18px;
  font-weight: 700;
  color: #333;
}
.price-base__tax {
  font-size: 11px;
  color: #888;
  margin-left: 4px;
}

/* ---- アンカーボタン群 ---- */
.price-acc__links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 20px;
}
.price-acc__link {
  flex: 1 1 auto;
  min-width: 160px;
  text-align: center;
  border: 2px solid #39A1CF;
  color: #248dc3;
  border-radius: 32px;
  padding: 12px 16px;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  transition: .3s;
}
.price-acc__link::before { content: '▼ '; }
.price-acc__link:hover {
  background: #f0f7fb;
  text-decoration: none;
}
.price-acc__link--primary {
  background: #39A1CF;
  color: #fff;
}
.price-acc__link--primary::before { content: ''; }
.price-acc__link--primary:hover {
  background: #248dc3;
  opacity: 1;
}

/* ---- 各種追加料金・ご注意事項 ---- */
.price-notes {
  margin: 0;
  border-top: 1px solid #e5e7eb;
}
.price-notes__row {
  display: flex;
  gap: 18px;
  padding: 18px 4px;
  border-bottom: 1px solid #e5e7eb;
}
.price-notes__term {
  width: 150px;
  flex-shrink: 0;
  color: #248dc3;
  font-weight: 700;
  font-size: 15px;
  line-height: 1.6;
}
.price-notes__desc {
  flex: 1;
  margin: 0;
}
#contents .price-notes__list {
  margin: 0;
  padding: 0;
  list-style: none;
}
#contents .price-notes__list li {
  position: relative;
  padding-left: 14px;
  font-size: 14px;
  line-height: 1.9;
}
#contents .price-notes__list li::before {
  content: '・';
  position: absolute;
  left: 0;
}

/* ---- スマホ対応 ---- */
@media screen and (max-width: 640px) {
  #contents .price-guide-ttl {
    font-size: 20px;
  }
  .price-acc__head { padding: 16px 16px; }
  .price-acc__title { font-size: 16px; }
  .price-acc__body { padding: 16px; }
  .price-base__table { font-size: 13px; }
  .price-base__table th,
  .price-base__table td { padding: 11px 10px; }
  .price-base__label { width: 30%; }
  .price-base__yen strong { font-size: 16px; }
  .price-acc__links { flex-direction: column; }
  .price-acc__link { min-width: 0; }
  .price-notes__row { flex-direction: column; gap: 6px; }
  .price-notes__term { width: auto; }
}





/* ============================================
   料金案内セクション（普通免許ページ）
   - 既存トンマナ準拠：メインブルー #39A1CF / #248dc3 / #00A3E0
   - アコーディオンは faq と同じ details/summary 方式
   ============================================ */

.price-guide {
  max-width: 900px;
  margin: 0 auto 60px;
}

/* セクション見出しは既存 #contents h3 を踏襲しつつ余白調整 */
#contents .price-guide-ttl {
  border-left: 4px solid #39A1CF;
  color: #333;
  font-size: 24px;
  font-weight: 500;
  letter-spacing: .03em;
  margin: 24px 0;
  padding: 8px 17px 9px;
}
#contents .price-guide-ttl + .price-acc {
  margin-top: 0;
}

/* ---- アコーディオン本体 ---- */
.price-acc {
  background: #fff;
  border: 1px solid #d4d4d4;
  border-radius: 10px;
  margin-bottom: 14px;
  overflow: hidden;
}

.price-acc__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 22px;
  cursor: pointer;
  list-style: none;
  background: #fff;
  transition: background .3s;
}
.price-acc__head::-webkit-details-marker { display: none; }
.price-acc__head:hover { background: #f0f7fb; }

/* 開いている AT 等は見出し背景を薄ブルーに */
.price-acc[open] > .price-acc__head {
  background: #e1f0f7;
}

.price-acc__title {
  font-size: 19px;
  font-weight: 700;
  color: #333;
}
.price-acc[open] > .price-acc__head .price-acc__title {
  color: #248dc3;
}

/* +/− マーク（faq と同じ挙動） */
.price-acc__head::after {
  content: '+';
  flex-shrink: 0;
  font-size: 1.5rem;
  line-height: 1;
  font-weight: 300;
  color: #00A3E0;
}
.price-acc[open] > .price-acc__head::after { content: '−'; }

.price-acc__body {
  padding: 22px;
  border-top: 1px solid #e5e7eb;
}
.price-acc__body > p {
  margin: 0 0 18px;
}

/* ---- 所持免許別 基本料金テーブル ---- */
.price-base {
  border: 1px solid #d4d4d4;
  border-radius: 6px;
  overflow: hidden;
  margin-bottom: 14px;
}
.price-base__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 15px;
}
.price-base__table th,
.price-base__table td {
  padding: 13px 16px;
  border-bottom: 1px solid #e5e7eb;
}
.price-base__table tr:last-child th,
.price-base__table tr:last-child td {
  border-bottom: none;
}
.price-base__label {
  width: 26%;
  background: #f0f7fb;
  color: #248dc3;
  font-weight: 700;
  text-align: center;
  vertical-align: middle;
  border-right: 1px solid #d4d4d4 !important;
  border-bottom: none !important;
}
.price-base__name {
  background: #fff;
}
.price-base__yen {
  background: #fff;
  text-align: right;
  white-space: nowrap;
}
.price-base__yen strong {
  font-size: 18px;
  font-weight: 700;
  color: #333;
}
.price-base__tax {
  font-size: 11px;
  color: #888;
  margin-left: 4px;
}

/* ---- アンカーボタン群 ---- */
.price-acc__links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 20px;
}
.price-acc__link {
  flex: 1 1 auto;
  min-width: 160px;
  text-align: center;
  border: 2px solid #39A1CF;
  color: #248dc3;
  border-radius: 32px;
  padding: 12px 16px;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  transition: .3s;
}
.price-acc__link::before { content: '▼ '; }
.price-acc__link:hover {
  background: #f0f7fb;
  text-decoration: none;
}
.price-acc__link--primary {
  background: #39A1CF;
  color: #fff;
}
.price-acc__link--primary::before { content: ''; }
.price-acc__link--primary:hover {
  background: #248dc3;
  opacity: 1;
}

/* ---- 各種追加料金・ご注意事項 ---- */
.price-notes {
  margin: 0;
  border-top: 1px solid #e5e7eb;
}
.price-notes__row {
  display: flex;
  gap: 18px;
  padding: 18px 4px;
  border-bottom: 1px solid #e5e7eb;
}
.price-notes__term {
  width: 150px;
  flex-shrink: 0;
  color: #248dc3;
  font-weight: 700;
  font-size: 15px;
  line-height: 1.6;
}
.price-notes__desc {
  flex: 1;
  margin: 0;
}
#contents .price-notes__list {
  margin: 0;
  padding: 0;
  list-style: none;
}
#contents .price-notes__list li {
  position: relative;
  padding-left: 14px;
  font-size: 14px;
  line-height: 1.9;
}
#contents .price-notes__list li::before {
  content: '・';
  position: absolute;
  left: 0;
}

/* ---- スマホ対応 ---- */
@media screen and (max-width: 640px) {
  #contents .price-guide-ttl {
    font-size: 20px;
  }
  .price-acc__head { padding: 16px 16px; }
  .price-acc__title { font-size: 16px; }
  .price-acc__body { padding: 16px; }
  .price-base__table { font-size: 13px; }
  .price-base__table th,
  .price-base__table td { padding: 11px 10px; }
  .price-base__label { width: 30%; }
  .price-base__yen strong { font-size: 16px; }
  .price-acc__links { flex-direction: column; }
  .price-acc__link { min-width: 0; }
  .price-notes__row { flex-direction: column; gap: 6px; }
  .price-notes__term { width: auto; }
}

/* ============================================
   早期卒業オプション（東京立川 追加分）
   ============================================ */

/* オプション見出しはオレンジのアクセントで区別 */
#contents .price-guide-ttl--option {
  border-left-color: #d85a30;
}

.price-option-lead {
  font-size: 14px;
  color: #666;
  line-height: 1.8;
  margin: 0 0 20px;
  padding-left: 21px;
}

/* ---- 学生／社会人タブ（CSSのみ・ラジオ方式） ---- */
.price-option-switch {
  display: block;
}
.price-switch__radio {
  position: absolute;
  opacity: 0;
  pointer-events: none;
  width: 0;
  height: 0;
}
.price-tab {
  display: inline-flex;
  gap: 10px;
  background: transparent;
  padding: 0;
  margin: 0 0 20px;
}
.price-tab__btn {
  border: 2px solid #39A1CF;
  background: #fff;
  color: #248dc3;
  border-radius: 28px;
  padding: 8px 28px;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: .3s;
}

/* チェック状態に応じてラベルをアクティブ表示 */
#price-target-student:checked ~ .price-tab label[for="price-target-student"],
#price-target-worker:checked ~ .price-tab label[for="price-target-worker"],
#price-target-student-mt:checked ~ .price-tab label[for="price-target-student-mt"],
#price-target-worker-mt:checked ~ .price-tab label[for="price-target-worker-mt"] {
  background: #39A1CF;
  color: #fff;
}

/* キーボードフォーカス時のリング（アクセシビリティ） */
.price-switch__radio:focus-visible ~ .price-tab label {
  outline: 2px solid #39A1CF;
  outline-offset: 2px;
}

/* ---- パネル切替（ラジオ連動） ---- */
.price-option-panel { display: none; }
#price-target-student:checked ~ .price-option-panel--student,
#price-target-worker:checked ~ .price-option-panel--worker,
#price-target-student-mt:checked ~ .price-option-panel--student-mt,
#price-target-worker-mt:checked ~ .price-option-panel--worker-mt {
  display: block;
}

/* ---- カードグリッド ---- */
.price-option-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}

.price-option-card {
  position: relative;
  border: 1px solid #d4d4d4;
  border-radius: 10px;
  padding: 18px;
  background: #fff;
}
.price-option-card--popular {
  border: 2px solid #d85a30;
}
.price-option-card__badge {
  position: absolute;
  top: -11px;
  left: 16px;
  background: #d85a30;
  color: #fff;
  font-size: 11px;
  padding: 3px 12px;
  border-radius: 12px;
}
.price-option-card__name {
  margin: 0 0 4px;
  font-size: 16px;
  font-weight: 700;
  color: #333;
}
.price-option-card__meta {
  margin: 0 0 12px;
  font-size: 12px;
  color: #888;
  line-height: 1.6;
}
.price-option-card__pre {
  margin: 0;
  font-size: 13px;
  color: #666;
}
.price-option-card__add {
  margin: 0 0 6px;
  font-size: 13px;
  color: #d85a30;
}
.price-option-card__add strong {
  font-size: 24px;
  font-weight: 700;
  color: #d85a30;
}
.price-option-card__total {
  margin: 0;
  font-size: 12px;
  color: #888;
}
.price-option-card__note {
  color: #aaa;
  margin-left: 2px;
}

/* ---- プラン詳細ボタン ---- */
.price-detail-btn-wrap {
  margin-top: 18px;
  text-align: center;
}
.price-detail-btn {
  display: inline-block;
  background: #f08300;
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
  border-radius: 32px;
  padding: 13px 40px;
  transition: .3s;
}
.price-detail-btn:hover {
  background: #d97600;
  text-decoration: none;
  opacity: 1;
}

/* カード内の小サイズ版 */
.price-option-card__btn-wrap {
  margin: 14px 0 0;
}
.price-detail-btn--sm {
  display: block;
  width: 100%;
  font-size: 14px;
  padding: 10px 16px;
  box-sizing: border-box;
  text-align: center;
}

/* ---- スマホ対応 ---- */
@media screen and (max-width: 640px) {
  .price-option-grid {
    grid-template-columns: 1fr;
  }
  .price-option-lead {
    padding-left: 0;
  }
  .price-tab__btn {
    padding: 8px 22px;
  }
}

/* 近隣のコインパーキング案内 */
/* 全体コンテナ */
.parking-container {
  max-width: 900px;
  margin: 20px auto;
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
  color: #333;
}

.parking-title {
  font-size: 1.25rem;
  border-left: 5px solid #0056b3; /* 教習所のイメージカラーに合わせて変更してください */
  padding: 5px 15px;
  margin-bottom: 15px;
}

/* テーブルスタイル */
.parking-table {
  width: 100%;
  border-collapse: collapse;
  background-color: #fff;
  border-top: 2px solid #333;
}

.parking-table th, .parking-table td {
  padding: 15px;
  border-bottom: 1px solid #ddd;
  text-align: center;
}

.parking-table th {
  background-color: #f8f9fa;
  font-weight: bold;
}

.parking-table td:first-child {
  text-align: left;
  font-weight: bold;
}

.price {
  color: #d9534f; /* 料金を強調する赤系 */
  font-weight: bold;
  font-size: 1.1rem;
}

.parking-note {
  font-size: 0.85rem;
  color: #666;
  margin-top: 10px;
}

/* スマホ対応（レスポンシブ） */
@media screen and (max-width: 600px) {
  .parking-table thead {
    display: none; /* 見出しを隠す */
  }
  .parking-table tr {
    display: block;
    margin-bottom: 15px;
    border: 1px solid #ddd;
    border-radius: 8px;
    overflow: hidden;
  }
  .parking-table td {
    display: flex;
    justify-content: space-between;
    align-items: center;
    text-align: right;
    padding: 10px 15px;
  }
  .parking-table td::before {
    content: attr(data-label); /* HTMLのdata-labelを表示 */
    font-weight: bold;
    color: #0056b3;
    margin-right: 10px;
  }
  .parking-table td:first-child {
    background-color: #f0f7ff;
    justify-content: center;
    border-bottom: 2px solid #ddd;
  }
  .parking-table td:first-child::before {
    content: ""; /* 駐車場名の前にはラベルを出さない */
  }
}


/* ============================================
   普通車一種AT プラン詳細ページ 改修（東京立川）
   接頭辞 .sds-plan- / 既存全CSSと衝突確認済み（0件）
   トンマナ：青(#39A1CF/#2999CB)・白基調・角丸カード踏襲
   ============================================ */

/* ---- ［高優先度①］料金サマリーカード ---- */
#contents .sds-plan-summary {
  background: #fff;
  border: 5px solid #3DA0CE;
  border-radius: 25px;
  max-width: 1200px;
  margin: 0 auto 40px;
  padding: 32px 40px;
  text-align: center;
}
#contents .sds-plan-summary__label {
  font-size: 18px;
  font-weight: 500;
  color: #248dc3;
  margin: 0 0 6px;
}
#contents .sds-plan-summary__price {
  margin: 0 0 8px;
  line-height: 1.1;
}
.sds-plan-summary__yen {
  font-size: 56px;
  font-weight: 700;
  color: #2999CB;
  letter-spacing: .02em;
}
.sds-plan-summary__unit {
  font-size: 26px;
  font-weight: 700;
  color: #2999CB;
  margin-left: 2px;
}
.sds-plan-summary__tax {
  font-size: 16px;
  color: #333;
  margin-left: 6px;
}
#contents .sds-plan-summary__sub {
  font-size: 14px;
  color: #666;
  margin: 0 0 10px;
}
#contents .sds-plan-summary__note {
  font-size: 13px;
  color: #888;
  margin: 0 0 18px;
}
.sds-plan-summary__links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
}
.sds-plan-summary__link {
  border: 2px solid #39A1CF;
  color: #248dc3;
  border-radius: 32px;
  padding: 10px 22px;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  transition: .3s;
}
.sds-plan-summary__link::before { content: '▼ '; }
.sds-plan-summary__link:hover {
  background: #f0f7fb;
  text-decoration: none;
}

/* ---- ［中優先度④］中間ソフトCTA ---- */
#contents .sds-plan-softcta {
  background: #f0f7fb;
  border: 1px solid #cfe6f2;
  border-radius: 18px;
  max-width: 1000px;
  margin: 0 auto 50px;
  padding: 26px 30px;
  text-align: center;
}
#contents .sds-plan-softcta__ttl {
  font-size: 17px;
  font-weight: 700;
  color: #248dc3;
  margin: 0 0 6px;
}
#contents .sds-plan-softcta__txt {
  font-size: 14px;
  color: #555;
  margin: 0 0 16px;
}
#contents .sds-plan-softcta__btnwrap { margin: 0; }
.sds-plan-softcta__btn {
  display: inline-block;
  border: 2px solid #39A1CF;
  background: #fff;
  color: #248dc3;
  border-radius: 32px;
  padding: 11px 34px;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  transition: .3s;
}
.sds-plan-softcta__btn:hover {
  background: #39A1CF;
  color: #fff;
  text-decoration: none;
}

/* ---- ［低優先度⑥］特長：視線誘導の強弱 ---- */
.sds-plan-feature {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
#contents .sds-plan-feature__item {
  background: #fff;
  border: 1px solid #cfe6f2;
  border-radius: 16px;
  padding: 24px 20px;
  text-align: center;
}
#contents .sds-plan-feature__item--primary {
  border: 2px solid #2999CB;
  background: #f0f7fb;
}
.sds-plan-feature__icon {
  display: block;
  font-size: 34px;
  line-height: 1;
  margin-bottom: 10px;
}
#contents .sds-plan-feature__head {
  font-size: 17px;
  font-weight: 700;
  color: #248dc3;
  margin: 0 0 8px;
}
#contents .sds-plan-feature__item--primary .sds-plan-feature__head {
  font-size: 19px;
  color: #2999CB;
}
#contents .sds-plan-feature .feature-text {
  font-size: 14px;
  color: #555;
  margin: 0;
  text-align: left;
}

/* ---- ［高優先度③］予約・スケジュール ---- */
#contents .sds-plan-schedule {
  margin-bottom: 50px;
}
#contents .sds-plan-schedule__lead {
  font-size: 14px;
  color: #555;
  margin: 0 0 22px;
}
#contents .sds-plan-flow {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 26px;
  padding: 0;
}
#contents .sds-plan-flow__step {
  flex: 1 1 auto;
  min-width: 130px;
  display: flex;
  align-items: center;
  gap: 8px;
  background: #f0f7fb;
  border: 1px solid #cfe6f2;
  border-radius: 12px;
  padding: 12px 14px;
}
.sds-plan-flow__step--goal {
  background: #2999CB;
  border-color: #2999CB;
}
.sds-plan-flow__num {
  flex-shrink: 0;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #39A1CF;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.sds-plan-flow__step--goal .sds-plan-flow__num {
  background: #fff;
  color: #2999CB;
}
.sds-plan-flow__label {
  font-size: 13px;
  font-weight: 500;
  color: #333;
}
.sds-plan-flow__step--goal .sds-plan-flow__label { color: #fff; }
#contents .sds-plan-schedule__info {
  margin: 0;
  border-top: 1px solid #e5e7eb;
}
#contents .sds-plan-schedule__info dt {
  color: #248dc3;
  font-weight: 700;
  font-size: 15px;
  padding: 16px 4px 4px;
}
#contents .sds-plan-schedule__info dd {
  margin: 0 0 12px;
  padding: 0 4px 12px;
  border-bottom: 1px solid #e5e7eb;
  font-size: 14px;
  color: #555;
}

/* ---- ［高優先度②］含まれるもの／追加費用 2分割 ---- */
.sds-plan-fee {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin: 24px 0 10px;
}
#contents .sds-plan-fee__block {
  border-radius: 16px;
  padding: 24px 26px;
}
#contents .sds-plan-fee__block--incl {
  background: #f0f7fb;
  border: 1px solid #cfe6f2;
}
#contents .sds-plan-fee__block--extra {
  background: #fffdf5;
  border: 1px solid #f0e2b8;
}
#contents .sds-plan-fee__head {
  font-size: 17px;
  font-weight: 700;
  margin: 0 0 10px;
  padding-bottom: 8px;
}
#contents .sds-plan-fee__block--incl .sds-plan-fee__head {
  color: #248dc3;
  border-bottom: 2px solid #39A1CF;
}
#contents .sds-plan-fee__block--extra .sds-plan-fee__head {
  color: #c08a00;
  border-bottom: 2px solid #e9c64d;
}
#contents .sds-plan-fee__lead {
  font-size: 13px;
  color: #248dc3;
  font-weight: 500;
  margin: 0 0 12px;
}
#contents .sds-plan-fee__alert {
  font-size: 13px;
  font-weight: 700;
  color: #c08a00;
  background: #fff6e0;
  border-radius: 8px;
  padding: 10px 12px;
  margin: 0 0 14px;
  line-height: 1.7;
}
#contents .sds-plan-fee__list {
  margin: 0;
  padding: 0;
  list-style: none;
}
#contents .sds-plan-fee__list li {
  position: relative;
  padding-left: 22px;
  font-size: 14px;
  line-height: 2;
}
#contents .sds-plan-fee__list li::before {
  content: '✔';
  position: absolute;
  left: 0;
  color: #39A1CF;
  font-weight: 700;
}
#contents .sds-plan-fee__extra {
  margin: 0;
}
#contents .sds-plan-fee__extra dt {
  font-size: 14px;
  font-weight: 700;
  color: #333;
  margin-top: 12px;
}
#contents .sds-plan-fee__extra dt:first-child { margin-top: 0; }
#contents .sds-plan-fee__extra dt strong {
  color: #c08a00;
  font-size: 17px;
  margin: 0 2px;
}
#contents .sds-plan-fee__extra dd {
  margin: 2px 0 0;
  font-size: 13px;
  color: #666;
  line-height: 1.7;
}

/* ---- ［中優先度⑤］用語ミニ集 ---- */
#contents .sds-plan-terms {
  background: #f0f7fb;
  border: 1px solid #cfe6f2;
  border-radius: 18px;
  padding: 36px 40px;
}
#contents .sds-plan-terms__lead {
  font-size: 14px;
  color: #555;
  margin: 0 0 20px;
}
#contents .sds-plan-terms__list {
  margin: 0;
}
#contents .sds-plan-terms__list dt {
  font-size: 15px;
  font-weight: 700;
  color: #248dc3;
  margin-top: 16px;
}
#contents .sds-plan-terms__list dt:first-child { margin-top: 0; }
#contents .sds-plan-terms__list dd {
  margin: 4px 0 0;
  font-size: 14px;
  color: #555;
  line-height: 1.8;
}

/* ---- スマホ対応 ---- */
@media screen and (max-width: 768px) {
  #contents .sds-plan-summary { padding: 26px 20px; }
  .sds-plan-summary__yen { font-size: 42px; }
  .sds-plan-summary__unit { font-size: 22px; }
  .sds-plan-feature { grid-template-columns: 1fr; }
  .sds-plan-fee { grid-template-columns: 1fr; }
  #contents .sds-plan-terms { padding: 24px 18px; }
}
@media screen and (max-width: 640px) {
  .sds-plan-summary__links { flex-direction: column; }
  .sds-plan-flow__step { min-width: 0; }
}


/* ============================================
   普通車一種AT プラン詳細ページ 改修（追加分・第2弾）
   接頭辞 .sds-plan- / 既存全CSSと衝突確認済み
   追加：目次(toc)・よくある質問(faq)・最終CTA(finalcta)
   トンマナ：青(#39A1CF/#2999CB/#248dc3)・白基調・角丸カード踏襲
   ============================================ */

/* ---- ［追加・競合参考］目次 ---- */
#contents .sds-plan-toc {
  background: #fff;
  border: 1px solid #cfe6f2;
  border-radius: 18px;
  max-width: 1000px;
  margin: 0 auto 40px;
  padding: 24px 32px;
}
#contents .sds-plan-toc__ttl {
  font-size: 16px;
  font-weight: 700;
  color: #248dc3;
  margin: 0 0 12px;
  padding-bottom: 10px;
  border-bottom: 2px solid #39A1CF;
}
#contents .sds-plan-toc__list {
  margin: 0;
  padding-left: 1.4em;
  list-style: decimal;
}
#contents .sds-plan-toc__list li {
  font-size: 15px;
  line-height: 1.6;
  margin: 6px 0;
  color: #248dc3;
}
.sds-plan-toc__list a {
  color: #248dc3;
  text-decoration: none;
  transition: .3s;
}
.sds-plan-toc__list a:hover {
  text-decoration: underline;
}

/* ---- ［追加・競合参考］よくあるご質問 ---- */
#contents .sds-plan-faq {
  margin-top: 50px;
}
#contents .sds-plan-faq__lead {
  font-size: 14px;
  color: #555;
  margin: 0 0 20px;
}
.sds-plan-faq__list { margin: 0; }
#contents .sds-plan-faq__item {
  background: #fff;
  border: 1px solid #cfe6f2;
  border-radius: 12px;
  margin-bottom: 12px;
  overflow: hidden;
}
#contents .sds-plan-faq__q {
  position: relative;
  display: block;
  cursor: pointer;
  list-style: none;
  font-size: 15px;
  font-weight: 700;
  color: #248dc3;
  padding: 16px 52px 16px 48px;
  line-height: 1.6;
}
.sds-plan-faq__q::-webkit-details-marker { display: none; }
.sds-plan-faq__q::before {
  content: 'Q';
  position: absolute;
  left: 16px;
  top: 50%;
  transform: translateY(-50%);
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #39A1CF;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.sds-plan-faq__q::after {
  content: '';
  position: absolute;
  right: 22px;
  top: 50%;
  width: 10px;
  height: 10px;
  border-right: 2px solid #39A1CF;
  border-bottom: 2px solid #39A1CF;
  transform: translateY(-70%) rotate(45deg);
  transition: transform .3s;
}
.sds-plan-faq__item[open] .sds-plan-faq__q::after {
  transform: translateY(-30%) rotate(-135deg);
}
#contents .sds-plan-faq__a {
  position: relative;
  font-size: 14px;
  color: #555;
  line-height: 1.9;
  padding: 0 24px 18px 48px;
}
.sds-plan-faq__a a {
  color: #248dc3;
  text-decoration: underline;
}

/* ---- ［追加・競合参考］最終CTA（ゴール：仮申し込み） ---- */
#contents .sds-plan-finalcta {
  background: #f0f7fb;
  border: 2px solid #39A1CF;
  border-radius: 22px;
  max-width: 1000px;
  margin: 50px auto 0;
  padding: 36px 40px;
  text-align: center;
}
#contents .sds-plan-finalcta__ttl {
  font-size: 22px;
  font-weight: 700;
  color: #2999CB;
  margin: 0 0 8px;
}
#contents .sds-plan-finalcta__txt {
  font-size: 15px;
  color: #555;
  line-height: 1.8;
  margin: 0 0 22px;
}
.sds-plan-finalcta__btns {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}
#contents .sds-plan-finalcta__primary {
  font-size: 20px;
  font-weight: 700;
  background-image: none;
  background-color: #FF6B35;
  box-shadow: 0 4px 12px rgba(255,107,53,.3);
}
#contents .sds-plan-finalcta__primary:hover {
  background-color: #f2571f;
  opacity: 1;
}
.sds-plan-finalcta__sub {
  font-size: 14px;
  color: #248dc3;
  font-weight: 500;
  text-decoration: underline;
}
.sds-plan-finalcta__sub:hover { text-decoration: none; }

/* ---- スマホ対応（追加分） ---- */
@media screen and (max-width: 768px) {
  #contents .sds-plan-toc { padding: 20px 18px; }
  #contents .sds-plan-finalcta { padding: 28px 20px; }
  #contents .sds-plan-finalcta__ttl { font-size: 19px; }
  #contents .sds-plan-faq__q { padding: 14px 44px 14px 44px; font-size: 14px; }
  #contents .sds-plan-faq__a { padding: 0 16px 16px 44px; }
}


/* ============================================
   ［統合改修］FVカードへ料金サマリー集約（東京立川）
   .office-info 内に所持免許＋総額をまとめ、視線の分断を解消。
   ※ヘッダー背景画像は元のまま表示（office-bgの既存指定を維持）。
   接頭辞 .sds-plan-fvsummary- / 既存衝突なし。
   ============================================ */

/* 背景画像は表示（元のヘッダー背景を維持）。料金集約レイアウトのみ適用 */
#contents .sds-plan-fv--flat { margin-bottom: 40px; }

/* FVカード内・料金サマリー */
#contents .sds-plan-fvsummary {
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid #cfe6f2;
  text-align: center;
}
#contents .sds-plan-fvsummary__label {
  font-size: 18px;
  font-weight: 500;
  color: #248dc3;
  margin: 0 0 6px;
}
#contents .sds-plan-fvsummary__price {
  margin: 0 0 8px;
  line-height: 1.1;
}
.sds-plan-fvsummary__yen {
  font-size: 56px;
  font-weight: 700;
  color: #2999CB;
  letter-spacing: .02em;
}
.sds-plan-fvsummary__unit {
  font-size: 26px;
  font-weight: 700;
  color: #2999CB;
  margin-left: 2px;
}
.sds-plan-fvsummary__tax {
  font-size: 16px;
  color: #333;
  margin-left: 6px;
}
#contents .sds-plan-fvsummary__sub {
  font-size: 14px;
  color: #666;
  margin: 0 0 10px;
}
#contents .sds-plan-fvsummary__note {
  font-size: 13px;
  color: #888;
  margin: 0 0 18px;
}
.sds-plan-fvsummary__links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
}
.sds-plan-fvsummary__link {
  border: 2px solid #39A1CF;
  color: #248dc3;
  border-radius: 32px;
  padding: 10px 22px;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  transition: .3s;
}
.sds-plan-fvsummary__link::before { content: '\25bc '; }
.sds-plan-fvsummary__link:hover {
  background: #f0f7fb;
  text-decoration: none;
}

@media screen and (max-width: 768px) {
  #contents .sds-plan-fv--flat .office-info { padding: 26px 20px; }
  .sds-plan-fvsummary__yen { font-size: 42px; }
  .sds-plan-fvsummary__unit { font-size: 22px; }
  #contents .sds-plan-fvsummary__label { font-size: 16px; }
}
@media screen and (max-width: 640px) {
  .sds-plan-fvsummary__links { flex-direction: column; }
}


/* ============================================
   ［スケジュール改修・C案］通い方の目安＋予約説明
   接頭辞 .sds-plan-pace- / .sds-plan-booking- / 既存衝突なし
   トンマナ：青基調・角丸カード踏襲
   ============================================ */

/* セクション内の小見出し */
#contents .sds-plan-schedule__subttl {
  font-size: 16px;
  font-weight: 700;
  color: #248dc3;
  margin: 30px 0 14px;
  padding-left: 12px;
  border-left: 4px solid #39A1CF;
}

/* 通い方の目安：3カード */
.sds-plan-pace {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
#contents .sds-plan-pace__item {
  background: #fff;
  border: 1px solid #cfe6f2;
  border-radius: 16px;
  padding: 22px 18px;
  text-align: center;
}
.sds-plan-pace__icon {
  display: block;
  font-size: 30px;
  line-height: 1;
  margin-bottom: 8px;
}
#contents .sds-plan-pace__label {
  font-size: 14px;
  font-weight: 700;
  color: #248dc3;
  margin: 0 0 6px;
}
#contents .sds-plan-pace__value {
  font-size: 16px;
  color: #333;
  margin: 0;
  line-height: 1.5;
}
.sds-plan-pace__value strong {
  font-size: 28px;
  font-weight: 700;
  color: #2999CB;
  margin: 0 2px;
}
.sds-plan-pace__note {
  display: block;
  font-size: 12px;
  color: #888;
  margin-top: 4px;
}
#contents .sds-plan-pace__caption {
  font-size: 13px;
  color: #666;
  margin: 12px 0 0;
  line-height: 1.7;
}

/* フロー：卒業後の本免試験ステップ */
.sds-plan-flow__step--final {
  flex: 1 1 100%;
  background: #fff;
  border: 2px dashed #39A1CF;
}
.sds-plan-flow__step--final .sds-plan-flow__num {
  background: #2999CB;
}
.sds-plan-flow__step--final .sds-plan-flow__label {
  font-weight: 700;
  color: #248dc3;
}
#contents .sds-plan-flow__note {
  font-size: 13px;
  color: #555;
  margin: 0 0 26px;
  line-height: 1.7;
}

/* 予約について */
#contents .sds-plan-booking {
  background: #f0f7fb;
  border: 1px solid #cfe6f2;
  border-radius: 16px;
  padding: 22px 26px;
  margin-bottom: 26px;
}
#contents .sds-plan-booking__ttl {
  font-size: 16px;
  font-weight: 700;
  color: #248dc3;
  margin: 0 0 12px;
}
#contents .sds-plan-booking__list {
  margin: 0;
  padding: 0;
  list-style: none;
}
#contents .sds-plan-booking__list li {
  position: relative;
  padding-left: 22px;
  font-size: 14px;
  color: #555;
  line-height: 1.9;
}
#contents .sds-plan-booking__list li::before {
  content: '\25b6';
  position: absolute;
  left: 0;
  top: .2em;
  font-size: 10px;
  color: #39A1CF;
}
#contents .sds-plan-schedule__info dd strong {
  color: #2999CB;
  font-weight: 700;
}

@media screen and (max-width: 768px) {
  .sds-plan-pace { grid-template-columns: 1fr; }
  #contents .sds-plan-booking { padding: 20px 18px; }
}


/* ============================================
   ［バランス調整］教習時間割グリッド＋FAQ幅統一
   接頭辞 .sds-plan-timetable- / 既存衝突なし
   ============================================ */

/* 教習時間割：縦長1列テーブル → 4列グリッドでコンパクトに */
.sds-plan-timetable {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  max-width: 1000px;
  margin: 0 auto;
}
#contents .sds-plan-timetable__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  background: #fff;
  border: 1px solid #cfe6f2;
  border-radius: 12px;
  padding: 12px 16px;
}
.sds-plan-timetable__no {
  font-size: 14px;
  font-weight: 700;
  color: #248dc3;
  white-space: nowrap;
}
.sds-plan-timetable__time {
  font-size: 14px;
  color: #333;
  letter-spacing: .02em;
  white-space: nowrap;
}

/* FAQ：他セクションと同じ最大幅・中央寄せに統一 */
#contents .sds-plan-faq {
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}

@media screen and (max-width: 1024px) {
  .sds-plan-timetable { grid-template-columns: repeat(3, 1fr); }
}
@media screen and (max-width: 768px) {
  .sds-plan-timetable { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  #contents .sds-plan-timetable__item { padding: 10px 12px; }
  .sds-plan-timetable__no,
  .sds-plan-timetable__time { font-size: 13px; }
}
@media screen and (max-width: 420px) {
  .sds-plan-timetable { grid-template-columns: 1fr; }
}


/* ============================================
   ［スマホ調整］FVカードのオレンジCTA＋重なり解消
   オレンジ #FF6B35（PCヘッダー「入校仮申込み」と統一）
   接頭辞 .sds-plan-fvsummary__cta / 既存衝突なし
   ============================================ */

/* FVカード内・オレンジ仮申込みボタン */
.sds-plan-fvsummary__ctawrap {
  margin: 18px 0 0;
  text-align: center;
}
#contents .sds-plan-fvsummary__cta {
  display: inline-block;
  background: #FF6B35;
  color: #fff;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: .04em;
  text-decoration: none;
  border-radius: 32px;
  padding: 15px 44px;
  box-shadow: 0 4px 12px rgba(255,107,53,.3);
  transition: .3s;
}
#contents .sds-plan-fvsummary__cta:hover {
  background: #f2571f;
  text-decoration: none;
  transform: translateY(-1px);
}

/* ---- スマホ：FVカードと「技能教習」見出しの重なり解消 ---- */
@media screen and (max-width: 768px) {
  /* カードが次セクションへ食い込む負マージンを縮小 */
  #contents .sds-plan-fv--flat .office-info { margin-bottom: -40px; }
  /* 青セクション側に十分な上余白を確保して見出しが隠れないように */
  #contents #at.bg-blue { padding-top: 80px; }
  /* オレンジCTAは画面幅に合わせて見やすく */
  #contents .sds-plan-fvsummary__cta {
    display: block;
    width: 100%;
    padding: 16px;
    font-size: 16px;
  }
}
@media screen and (max-width: 559px) {
  #contents .sds-plan-fv--flat .office-info { margin-bottom: -30px; }
  #contents #at.bg-blue { padding-top: 70px; }
}


/* ============================================
   ［料金エリア統合＋割引追加］
   ・料金内訳DB出力を追加費用ブロック内の補足へ
   ・お友達紹介キャンペーン（バナーをHTML/CSS再現）
   接頭辞 .sds-plan-fee__breakdown / .sds-plan-referral / 衝突なし
   ============================================ */

/* 追加費用ブロック内・料金内訳（DB出力）の補足表示 */
.sds-plan-fee__breakdown {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px dashed #d8c08a;
}
#contents .sds-plan-fee__breakdown-ttl {
  font-size: 13px;
  font-weight: 700;
  color: #9a7b1f;
  margin: 0 0 6px;
}
#contents .sds-plan-fee__breakdown-body {
  font-size: 13px;
  color: #666;
  line-height: 1.8;
}
#contents .sds-plan-fee__breakdown-body p { margin: 0 0 8px; }

/* お友達紹介キャンペーン */
.sds-plan-referral {
  text-align: center;
}
#contents .sds-plan-referral__badge {
  display: inline-block;
  background: #39A1CF;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  border-radius: 20px;
  padding: 5px 18px;
  margin: 0 0 14px;
}
#contents .sds-plan-referral__lead {
  font-size: 14px;
  color: #555;
  line-height: 1.8;
  margin: 0 0 18px;
  text-align: left;
}
.sds-plan-referral__cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 18px;
}
.sds-plan-referral__card {
  border-radius: 14px;
  padding: 16px 10px;
  color: #fff;
}
.sds-plan-referral__card--enroll { background: #FF5D75; }
.sds-plan-referral__card--refer  { background: #0030A4; }
#contents .sds-plan-referral__role {
  font-size: 15px;
  font-weight: 700;
  margin: 0 0 6px;
}
.sds-plan-referral__tag {
  display: inline-block;
  background: #fff;
  color: #333;
  font-size: 11px;
  font-weight: 700;
  border-radius: 4px;
  padding: 2px 8px;
  margin-right: 6px;
  vertical-align: middle;
}
#contents .sds-plan-referral__amount {
  font-size: 16px;
  margin: 0 0 4px;
  line-height: 1.2;
}
.sds-plan-referral__amount strong {
  font-size: 26px;
  font-weight: 700;
  margin-right: 2px;
}
#contents .sds-plan-referral__sub {
  font-size: 13px;
  margin: 0;
  opacity: .95;
}
#contents .sds-plan-referral__steps {
  text-align: left;
  margin: 0 0 16px;
  padding-left: 1.4em;
  list-style: decimal;
}
#contents .sds-plan-referral__steps li {
  font-size: 13px;
  color: #555;
  line-height: 1.7;
  margin: 6px 0;
}
.sds-plan-referral__period {
  background: #fff7ef;
  border: 1px solid #ffd2b3;
  border-radius: 12px;
  padding: 12px;
  font-size: 16px;
  font-weight: 700;
  color: #333;
  margin: 0;
}
.sds-plan-referral__period-label {
  display: block;
  font-size: 13px;
  color: #FF6B35;
  font-weight: 700;
  margin-bottom: 4px;
}

@media screen and (max-width: 480px) {
  .sds-plan-referral__cards { grid-template-columns: 1fr; }
  .sds-plan-referral__amount strong { font-size: 24px; }
}


/* ============================================
   ［今回追加］卒業生の声：統計＋CSSのみ無限スライダー
   JSなし。8枚×2複製のトラックを-50%まで流して無限ループ。
   接頭辞 .sds-plan-voice- / 衝突なし
   ============================================ */

#contents .sds-plan-voice {
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}
#contents .sds-plan-voice__lead {
  font-size: 14px;
  color: #555;
  margin: 0 0 22px;
  line-height: 1.8;
}

/* 統計3カード */
.sds-plan-voice__stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-bottom: 30px;
}
#contents .sds-plan-voice__stat {
  background: #fff;
  border: 1px solid #cfe6f2;
  border-radius: 16px;
  padding: 22px 12px;
  text-align: center;
}
.sds-plan-voice__num {
  display: block;
  font-size: 40px;
  font-weight: 700;
  color: #2999CB;
  line-height: 1.1;
}
.sds-plan-voice__unit {
  font-size: 18px;
  margin-left: 2px;
}
.sds-plan-voice__statlabel {
  display: block;
  font-size: 13px;
  color: #555;
  margin-top: 8px;
  line-height: 1.5;
}

/* 無限スライダー */
.sds-plan-voice__slider {
  overflow: hidden;
  position: relative;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.sds-plan-voice__track {
  display: flex;
  width: max-content;
  animation: sds-plan-voice-scroll 48s linear infinite;
}
.sds-plan-voice__slider:hover .sds-plan-voice__track {
  animation-play-state: paused;
}
#contents .sds-plan-voice__card {
  flex: 0 0 320px;
  width: 320px;
  box-sizing: border-box;
  background: #fff;
  border: 1px solid #cfe6f2;
  border-radius: 16px;
  padding: 22px 22px 18px;
  margin-right: 16px;
  display: flex;
  flex-direction: column;
}
#contents .sds-plan-voice__quote {
  position: relative;
  font-size: 14px;
  color: #333;
  line-height: 1.8;
  margin: 0 0 14px;
  padding-top: 26px;
  flex: 1;
}
.sds-plan-voice__quote::before {
  content: '\201C';
  position: absolute;
  top: -6px;
  left: -2px;
  font-size: 44px;
  line-height: 1;
  color: #bfe0f0;
  font-family: Georgia, serif;
}
#contents .sds-plan-voice__author {
  font-size: 13px;
  font-weight: 700;
  color: #248dc3;
  margin: 0;
  padding-top: 12px;
  border-top: 1px solid #eef4f8;
}
.sds-plan-voice__tag {
  display: inline-block;
  background: #f0f7fb;
  color: #2999CB;
  font-size: 11px;
  font-weight: 700;
  border-radius: 4px;
  padding: 2px 8px;
  margin-left: 8px;
}
#contents .sds-plan-voice__note {
  font-size: 12px;
  color: #999;
  margin: 16px 0 0;
}

@keyframes sds-plan-voice-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* アクセシビリティ：動きを減らす設定では停止 */
@media (prefers-reduced-motion: reduce) {
  .sds-plan-voice__track { animation: none; }
  .sds-plan-voice__slider {
    overflow-x: auto;
    -webkit-mask-image: none;
    mask-image: none;
  }
}

@media screen and (max-width: 768px) {
  .sds-plan-voice__stats { gap: 10px; }
  #contents .sds-plan-voice__stat { padding: 18px 6px; }
  .sds-plan-voice__num { font-size: 30px; }
  .sds-plan-voice__unit { font-size: 15px; }
  .sds-plan-voice__statlabel { font-size: 11px; }
  #contents .sds-plan-voice__card { flex-basis: 270px; width: 270px; }
  .sds-plan-voice__track { animation-duration: 40s; }
}


/* ============================================
   ［スマホ調整・第2弾］
   1) 教習時間割をスマホでアコーディオン化（PCは常時開いて従来通り）
   2) 卒業生の声／FAQの左右余白
   3) 卒業生の声の枠にベージュ背景
   4) 最終CTAのスマホ左右余白
   接頭辞 .sds-plan-timetable-acc / 衝突なし
   ============================================ */

/* --- 1) 教習時間割アコーディオン（CSSのみ・checkboxハック） --- */
/* チェックボックスは常に非表示 */
.sds-plan-timetable-acc__chk { position: absolute; opacity: 0; pointer-events: none; }
/* PC：トグル見出しを隠し、中身は常時表示（従来の見た目を維持） */
.sds-plan-timetable-acc { display: block; }
.sds-plan-timetable-acc > .sds-plan-timetable-acc__summary { display: none; }
.sds-plan-timetable-acc > .sds-plan-timetable { display: grid; }

/* --- 3) 卒業生の声：ベージュ背景の枠 --- */
#contents .sds-plan-voice {
  background: #FBF8F2;
  border: 1px solid #ece3d2;
  border-radius: 18px;
  padding: 36px 40px;
}

@media screen and (max-width: 768px) {
  /* 1) スマホはアコーディオンとして動作 */
  #contents .sds-plan-timetable-acc {
    background: #fff;
    border: 1px solid #cfe6f2;
    border-radius: 12px;
    max-width: 1000px;
    margin: 0 auto;
    overflow: hidden;
  }
  .sds-plan-timetable-acc > .sds-plan-timetable-acc__summary {
    display: block;
    cursor: pointer;
    position: relative;
    font-size: 15px;
    font-weight: 700;
    color: #248dc3;
    padding: 16px 44px 16px 18px;
  }
  .sds-plan-timetable-acc__summary::after {
    content: '';
    position: absolute;
    right: 20px;
    top: 50%;
    width: 9px;
    height: 9px;
    border-right: 2px solid #39A1CF;
    border-bottom: 2px solid #39A1CF;
    transform: translateY(-70%) rotate(45deg);
    transition: transform .3s;
  }
  /* 閉：中身を隠す */
  .sds-plan-timetable-acc > .sds-plan-timetable { display: none; }
  /* 開（チェック時）：中身を表示し矢印を反転 */
  .sds-plan-timetable-acc__chk:checked ~ .sds-plan-timetable {
    display: grid;
    padding: 0 14px 16px;
  }
  .sds-plan-timetable-acc__chk:checked ~ .sds-plan-timetable-acc__summary::after {
    transform: translateY(-30%) rotate(-135deg);
  }

  /* 2)＋4) 左右余白：枠系ブロックをビューポートから少し内側へ */
  #contents .sds-plan-voice,
  #contents .sds-plan-finalcta {
    margin-left: 16px;
    margin-right: 16px;
    padding-left: 20px;
    padding-right: 20px;
  }
  /* FAQは他ブロック（卒業生の声・最終CTA）と同じ左右16pxの余白に揃える */
  #contents .sds-plan-faq {
    margin-left: 16px;
    margin-right: 16px;
    padding-left: 0;
    padding-right: 0;
  }
  #contents .sds-plan-voice { padding-top: 26px; padding-bottom: 26px; }
}

/* === 東京立川 プランFV 背景高さ調整（PC版のみ）2026-07-05 === */
@media screen and (min-width: 769px) {
  #contents .office-bg {
    padding-top: 140px;
    padding-bottom: 0;
  }
}


/* ============ 2026 立川 普通車ページ改修 追記 ============ */
/* トーン方針(C-1〜C-4)：白/薄グレー(#fff/#f3f3f3)を主、青(#2999CB/#39A1CF/#248dc3)は
   線・点線・文字の差し色のみ、橙(#f08300/#d85a30)=CTA、黄(#FCD419/#fffbea)=注記。
   基準は .feature-area（薄グレー地＋点線ドット見出し＋青ボタン）。
   font-size は 14px ベース（rem不使用、スマホでも14px維持）。水色ベタ面は使わない。 */

/* ---- C-1 ATセクションの脱・水色化（#at スコープ限定・.bg-blue本体は不変） ---- */
/* [要確認] .bg-blue の他ページ利用状況：本ページでは #at スコープで薄グレーに上書きし、
   .bg-blue 本体(#F0F7FB)は書き換えないため他ページへの波及なし。 */
#contents #at.bg-blue {
  background-color: #f3f3f3;
}

/* ---- C-2/C-3 料金アコーディオンの水色面を中立トーンへ（AT/MT両方・#at #mt スコープ限定）
        DB値/ロジックには不干渉、色のみ。開いた見出しの水色ベタ(#e1f0f7)を白＋青下線に。 ---- */
#contents #at .price-acc__head:hover,
#contents #mt .price-acc__head:hover { background: #f3f3f3; }
#contents #at .price-acc[open] > .price-acc__head,
#contents #mt .price-acc[open] > .price-acc__head {
  background: #fff;
  border-bottom: 3px dotted #2999CB;
}

/* ---- H-1 料金の仕組み（総額ガイド）：白カード＋青の点線区切り ---- */
#contents .sds-total-guide {
  background: #fff;
  border: 1px solid #e0e0e0;
  border-radius: 12px;
  padding: 20px;
  margin: 20px 0 10px;
}
#contents .sds-total-guide__lead {
  font-size: 14px;
  font-weight: 700;
  color: #2999CB;
  margin: 0 0 14px;
  padding-bottom: 12px;
  border-bottom: 3px dotted #2999CB;
  text-align: center;
}
.sds-total-guide__flow {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  justify-content: center;
  gap: 8px;
}
.sds-total-guide__item {
  flex: 1 1 160px;
  background: #f3f3f3;
  border: 1px solid #e0e0e0;
  border-radius: 10px;
  padding: 14px 12px;
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.sds-total-guide__item--result {
  background: #fff;
  border: 2px solid #2999CB;
}
.sds-total-guide__label {
  display: block;
  font-size: 14px;
  font-weight: 700;
  color: #248dc3;
}
.sds-total-guide__item--result .sds-total-guide__label { color: #d85a30; }
.sds-total-guide__desc {
  display: block;
  font-size: 14px;
  color: #555;
  margin-top: 4px;
}
.sds-total-guide__op {
  align-self: center;
  font-size: 14px;
  font-weight: 700;
  color: #2999CB;
  padding: 0 2px;
}
#contents .sds-total-guide__note {
  font-size: 14px;
  color: #666;
  margin: 14px 0 0;
  line-height: 1.7;
}
@media screen and (max-width: 640px) {
  .sds-total-guide__flow { flex-direction: column; }
  .sds-total-guide__op { padding: 2px 0; }
}

/* ---- H-2 200名限定 対象条件の注記（黄＝注記トーン維持） ---- */
#contents .sds-limited-note {
  background: #fffbea;
  border: 1px solid #FCD419;
  border-radius: 8px;
  padding: 12px 14px;
  font-size: 14px;
  line-height: 1.7;
  color: #555;
  margin: 12px 0 16px;
}
.sds-limited-note strong { color: #248dc3; }
.sds-limited-note__check {
  display: inline-block;
  color: #b00;
  font-size: 14px;
  margin-left: 4px;
}

/* ---- H-3 予約の取りやすさ：薄グレー地＋白カード＋点線見出し ---- */
#contents .sds-reserve {
  background: #f3f3f3;
  border: 1px solid #e0e0e0;
  border-radius: 12px;
  padding: 24px;
  margin: 0 auto 30px;
  max-width: 900px;
  width: 90%;
}
#contents .sds-reserve__ttl {
  font-size: 16px;
  font-weight: 700;
  color: #2999CB;
  margin: 0 0 16px;
  padding: 0 0 16px;
  border-bottom: 4px dotted #2999CB;
  text-align: center;
}
#contents .sds-reserve__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 12px;
}
.sds-reserve__item {
  background: #fff;
  border: 1px solid #e0e0e0;
  border-left: 4px solid #2999CB;
  border-radius: 10px;
  padding: 14px 16px;
}
.sds-reserve__head {
  display: block;
  font-size: 14px;
  font-weight: 700;
  color: #2999CB;
  margin-bottom: 6px;
}
.sds-reserve__body {
  display: block;
  font-size: 14px;
  line-height: 1.7;
  color: #555;
}
#contents .sds-reserve__note {
  font-size: 14px;
  color: #888;
  margin: 14px 0 0;
}

/* ---- H-4 車種明記CTA（橙CTA＝既存トーン維持） ---- */
.sds-cta-fixed {
  max-width: 840px;
  margin: 30px auto 10px;
  text-align: center;
}
.sds-cta-fixed__btn {
  display: block;
  width: 100%;
  box-sizing: border-box;
  background: #f08300;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  text-decoration: none;
  border-radius: 32px;
  padding: 18px 24px;
  transition: .3s;
}
.sds-cta-fixed__btn:hover {
  background: #d97600;
  text-decoration: none;
  opacity: 1;
}
#contents .sds-cta-fixed__note {
  font-size: 14px;
  color: #666;
  margin: 10px 0 0;
}
.sds-cta-fixed__check {
  color: #b00;
  font-size: 14px;
}

/* ---- M-1 用語ミニ解説：白ベース＋青の区切り線 ---- */
#contents .sds-glossary {
  max-width: 840px;
  margin: 20px auto 30px;
  background: #fff;
  border: 1px solid #e0e0e0;
  border-radius: 12px;
  padding: 8px 24px;
}
.sds-glossary__row {
  display: flex;
  gap: 16px;
  padding: 14px 4px;
  border-bottom: 1px dotted #cbcbcb;
}
.sds-glossary__row:last-child { border-bottom: 0; }
#contents .sds-glossary dt.sds-glossary__term,
.sds-glossary__term {
  width: 200px;
  flex-shrink: 0;
  font-size: 14px;
  font-weight: 700;
  color: #248dc3;
  line-height: 1.7;
}
#contents .sds-glossary dd.sds-glossary__desc,
.sds-glossary__desc {
  margin: 0;
  font-size: 14px;
  line-height: 1.7;
  color: #555;
}
@media screen and (max-width: 640px) {
  .sds-glossary__row { flex-direction: column; gap: 4px; }
  .sds-glossary__term { width: auto; }
}

/* ---- M-2 AT取得の流れ（.license-flow-box 再利用のラッパー） ---- */
.sds-flow-at { margin-top: 10px; }
#contents .sds-flow-at .sds-term-note {
  max-width: 840px;
  margin: 0 auto 30px;
  font-size: 14px;
  color: #888;
  line-height: 1.7;
}

/* ---- M-3 追加費用の先出しサマリー：白カード＋青の点線見出し ---- */
#contents .sds-addfee {
  background: #fff;
  border: 1px solid #e0e0e0;
  border-radius: 12px;
  padding: 20px 24px;
  margin: 30px 0 20px;
}
#contents h3.sds-addfee__ttl {
  font-size: 16px;
  font-weight: 700;
  color: #2999CB;
  margin: 0 0 10px;
  padding: 0 0 12px;
  border-bottom: 3px dotted #2999CB;
}
#contents .sds-addfee__lead {
  font-size: 14px;
  color: #555;
  line-height: 1.7;
  margin: 0 0 14px;
}
#contents .sds-addfee__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.sds-addfee__item {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 13px 14px;
  border-bottom: 1px dashed #dcdcdc;
  font-size: 14px;
  border-radius: 6px;
}
.sds-addfee__item:nth-child(odd) { background: #f7f9fb; }
.sds-addfee__name {
  flex: 0 0 auto;
  min-width: 150px;
  font-weight: 700;
  color: #333;
  position: relative;
  padding-left: 14px;
}
.sds-addfee__name::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #2999CB;
}
.sds-addfee__cost {
  flex: 1 1 auto;
  color: #d85a30;
  text-align: right;
  font-weight: 700;
}
/* [要確認] などの長い注記コストは強調しすぎない */
.sds-addfee__cost:not(:first-child) { font-weight: 700; }
#contents .sds-addfee__note {
  font-size: 14px;
  color: #888;
  margin: 14px 0 0;
  padding-top: 12px;
  border-top: 1px solid #eee;
  line-height: 1.7;
}
@media screen and (max-width: 640px) {
  .sds-addfee__item { flex-direction: column; align-items: flex-start; gap: 4px; }
  .sds-addfee__name { min-width: 0; }
  .sds-addfee__cost { text-align: left; }
}

/* ---- L-1 実績・卒業生の声：薄グレー地＋白カード ---- */
#contents .sds-proof {
  max-width: 840px;
  margin: 30px auto;
  background: #f3f3f3;
  border: 1px solid #e0e0e0;
  border-radius: 12px;
  padding: 24px;
}
.sds-proof__stats {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 16px;
  margin-bottom: 20px;
}
.sds-proof__stat {
  flex: 1 1 180px;
  background: #fff;
  border: 1px solid #e0e0e0;
  border-top: 3px solid #2999CB;
  border-radius: 10px;
  padding: 18px 12px;
  text-align: center;
}
.sds-proof__num {
  display: block;
  font-size: 24px;
  font-weight: 700;
  color: #d85a30;
}
.sds-proof__label {
  display: block;
  font-size: 14px;
  color: #555;
  margin-top: 6px;
}
.sds-proof__voices { margin-top: 6px; }
#contents .sds-proof__voice {
  background: #fff;
  border: 1px solid #e0e0e0;
  border-left: 4px solid #2999CB;
  border-radius: 8px;
  padding: 16px 18px;
  margin: 0;
  font-size: 14px;
  line-height: 1.8;
  color: #444;
}
.sds-proof__cite {
  display: block;
  margin-top: 8px;
  font-size: 14px;
  font-style: normal;
  color: #2999CB;
  text-align: right;
}
#contents .sds-proof__note {
  font-size: 14px;
  color: #888;
  margin: 16px 0 0;
  line-height: 1.7;
}

/* ---- L-2 料金テーブルのスマホ点検（rowspan構造のため data-label カード化は見送り、
        既存 @media 縮小指定に加え余白・行間のみ微調整） ---- */
@media screen and (max-width: 640px) {
  #contents .price-base__table th,
  #contents .price-base__table td { line-height: 1.6; }
  #contents .price-base__yen strong { white-space: nowrap; }
}

/* ---- 微調整：早期卒業オプションのプランカードを青系に（加算額・人気No.1）
        CTAボタン(.price-detail-btn #f08300)は現状のオレンジ維持。
        既存 .price-option-card__add / __badge / --popular の #d85a30 を
        #at #mt スコープで青(#2999CB/#39A1CF)へ差し替え（DB値・ロジック不干渉、色のみ）。 ---- */
/* 加算額の文字（+22,682円 等）を青に */
#contents #at .price-option-card__add,
#contents #mt .price-option-card__add,
#contents #at .price-option-card__add strong,
#contents #mt .price-option-card__add strong {
  color: #2999CB;
}
/* 人気No.1 バッジ＆枠を青に */
#contents #at .price-option-card--popular,
#contents #mt .price-option-card--popular {
  border-color: #2999CB;
}
#contents #at .price-option-card--popular .price-option-card__badge,
#contents #mt .price-option-card--popular .price-option-card__badge,
#contents #at .price-option-card__badge,
#contents #mt .price-option-card__badge {
  background: #2999CB;
}

/* ---- 微調整：プランタイトル（ベーシック/ファースト等）を強調し説明文とメリハリ ---- */
#contents #at .price-option-card__name,
#contents #mt .price-option-card__name {
  font-size: 18px;
  font-weight: 700;
  color: #248dc3;
  margin: 0 0 8px;
  padding: 0 0 8px;
  border-bottom: 2px dotted #cfe0ea;
  line-height: 1.4;
}
/* 説明文（期間：…）は控えめにしてタイトルとの差を明確化 */
#contents #at .price-option-card__meta,
#contents #mt .price-option-card__meta {
  color: #999;
  font-size: 12px;
}

/* ---- 微調整：追加費用サマリーの[要確認]コストは実価格と区別（控えめ表示） ---- */
.sds-addfee__cost--todo {
  color: #b06a00;
  font-weight: 500;
  font-size: 13px;
  font-style: normal;
  background: #fff7e6;
  border: 1px dashed #e0b877;
  border-radius: 4px;
  padding: 2px 8px;
}
@media screen and (max-width: 640px) {
  .sds-addfee__cost--todo { white-space: normal; }
}

/* ---- 微調整：料金内訳／その他エリアの装飾（#at #mt スコープ限定・DB出力の文言は不変）
        殺風景だった price-notes をカード化し、項番・行間・下線で見やすく整える。 ---- */
#contents #at .price-notes,
#contents #mt .price-notes {
  background: #fff;
  border: 1px solid #e0e0e0;
  border-top: 1px solid #e0e0e0;
  border-radius: 12px;
  overflow: hidden;
  margin-top: 6px;
}
#contents #at .price-notes__row,
#contents #mt .price-notes__row {
  gap: 24px;
  padding: 20px 22px;
  border-bottom: 1px solid #eee;
}
#contents #at .price-notes__row:last-child,
#contents #mt .price-notes__row:last-child { border-bottom: 0; }
#contents #at .price-notes__row:nth-child(even),
#contents #mt .price-notes__row:nth-child(even) { background: #fafbfc; }
/* 見出し（料金内訳／その他）に青の縦アクセント */
#contents #at .price-notes__term,
#contents #mt .price-notes__term {
  position: relative;
  padding-left: 14px;
  color: #248dc3;
}
#contents #at .price-notes__term::before,
#contents #mt .price-notes__term::before {
  content: '';
  position: absolute;
  left: 0;
  top: 2px;
  bottom: 2px;
  width: 4px;
  border-radius: 2px;
  background: #2999CB;
}
#contents #at .price-notes__desc,
#contents #mt .price-notes__desc {
  font-size: 14px;
  line-height: 1.9;
  color: #444;
}
/* 「その他」の箇条書きに青ドットを付与して視認性UP */
#contents #at .price-notes__list li::before,
#contents #mt .price-notes__list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 12px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #2999CB;
}
#contents #at .price-notes__list li,
#contents #mt .price-notes__list li { padding-left: 16px; }
@media screen and (max-width: 640px) {
  #contents #at .price-notes__row,
  #contents #mt .price-notes__row { gap: 8px; padding: 16px; }
}

/* ---- 微調整：早期卒業オプションを各プランごとにアコーディオン化（sds-card-acc）
        PC＝常時展開（3列グリッドで全情報表示・summaryはカード見出しとして表示）。
        スマホ(≤640px)＝各カードをタップで個別開閉（初期折り畳み）。
        中身の DB出力（料金・plan_cd・feeBreakdown等）には不干渉。 ---- */

/* summary（プラン名）のマーカー除去。カード外枠は既存 .price-option-card を流用 */
.sds-card-acc { }
.sds-card-acc > .sds-card-acc__summary {
  list-style: none;
  margin: 0;
  outline: none;
}
.sds-card-acc__summary::-webkit-details-marker { display: none; }
/* summary 内のプラン名は従来の __name スタイルをそのまま活かす */
.sds-card-acc__summary .price-option-card__name { margin: 0; }

/* PC（デフォルト）＝カード形式：本文を常時表示し、summaryのクリック開閉を無効化して
   通常のカード（アコーディオンではない）として振る舞わせる。3列グリッドの見た目を維持。
   ※ details は open が無いとブラウザ標準で本文を隠すため、!important で強制表示する。 */
.sds-card-acc > .sds-card-acc__body {
  display: block !important;
}
/* 念のため：閉じた details でも PC では本文を必ず表示（UA差異対策の二重指定） */
.sds-card-acc:not([open]) > .sds-card-acc__body {
  display: block !important;
}
/* 新しめのChromium系は details の閉状態を content-visibility / ::details-content で
   隠すため、それも打ち消して PC では常に本文を表示する */
.sds-card-acc:not([open]) {
  content-visibility: visible !important;
}
.sds-card-acc::details-content {
  content-visibility: visible !important;
  display: block !important;
}
.sds-card-acc > .sds-card-acc__summary {
  cursor: default;
  pointer-events: none;
}

/* スマホ：各カードをアコーディオン化 */
@media screen and (max-width: 640px) {
  /* summary をタップバー化：右端に +/- インジケータ。PCで無効化したタップを再有効化 */
  .sds-card-acc > .sds-card-acc__summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    cursor: pointer;
    pointer-events: auto;
  }
  .sds-card-acc > .sds-card-acc__summary::after {
    content: '\FF0B';
    flex: 0 0 auto;
    font-size: 18px;
    font-weight: 700;
    color: #2999CB;
    line-height: 1;
  }
  .sds-card-acc[open] > .sds-card-acc__summary::after {
    content: '\FF0D';
  }
  /* 閉じている時：本文は表示したまま、金額(__add)だけ見せて他は隠す
     → プラン名の下に「+22,682円(税抜)」が常時見えて選びやすい */
  .sds-card-acc:not([open]) > .sds-card-acc__body {
    display: block !important;
    margin-top: 10px;
  }
  .sds-card-acc:not([open]) > .sds-card-acc__body > .price-option-card__meta,
  .sds-card-acc:not([open]) > .sds-card-acc__body > .price-option-card__pre,
  .sds-card-acc:not([open]) > .sds-card-acc__body > .price-option-card__total,
  .sds-card-acc:not([open]) > .sds-card-acc__body > .price-option-card__btn-wrap {
    display: none !important;
  }
  .sds-card-acc:not([open]) > .sds-card-acc__body > .price-option-card__add {
    margin: 0 !important;
  }
  /* content-visibility 系は本文を見せるため既定表示に */
  .sds-card-acc:not([open]) {
    content-visibility: visible;
  }
  .sds-card-acc:not([open])::details-content {
    content-visibility: visible !important;
    display: block !important;
  }
  .sds-card-acc[open]::details-content {
    content-visibility: visible !important;
    display: block !important;
  }
  .sds-card-acc[open] > .sds-card-acc__body {
    display: block !important;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px dotted #cfe0ea;
  }
  /* 開いた時にプラン名下線を少し締める（メリハリ） */
  .sds-card-acc[open] > .sds-card-acc__summary .price-option-card__name {
    border-bottom: 0;
    padding-bottom: 0;
  }
}

/* ---- 基本料金プランのCTAボタン（橙・既存 .price-detail-btn トーン踏襲） ---- */
.sds-base-cta {
  margin-top: 18px;
  text-align: center;
}
.sds-base-cta__btn {
  min-width: 280px;
}
@media screen and (max-width: 640px) {
  .sds-base-cta__btn {
    display: block;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }
}
/* ============ 2026 立川 普通車ページ改修 追記 ここまで ============ */


/* ============================================
   ［バランス・可読性 改修］2026-07-06
   目的：PC/スマホの表示バランス統一と、薄いグレー文字の可読性改善。
   方針：DB連動値・既存トンマナ(白基調/青差し色)不変。色と余白のみ調整。
   font-size は 14px ベース維持（rem不使用）。接頭辞 .sds-plan- 内で完結。
   ============================================ */

/* ---- R-1 薄いグレー注記の可読性改善（コントラスト不足の #888/#999 を底上げ） ---- */
/* 白地の注記：#888(3.5:1)→#6b6b6b(約5:1)でAA準拠 */
#contents .sds-plan-fvsummary__note,
#contents .sds-plan-summary__note,
#contents .sds-plan-pace__note {
  color: #6b6b6b;
}
/* ベージュ地の卒業生の声・注記：#999(2.7:1)→#7a7364 で可読性確保 */
#contents .sds-plan-voice__note {
  color: #7a7364;
}
/* FVの仮免許手数料の注記は重要情報。行間を広げ読みやすく */
#contents .sds-plan-fvsummary__note {
  line-height: 1.7;
  max-width: 620px;
  margin-left: auto;
  margin-right: auto;
  text-align: left;
}

/* ---- R-2 教習時間割：PCの4列で最終行が欠ける違和感を解消 ---- */
/* 16項目を4列（4行ぴったり）に整え、各セルの高さを揃える */
#contents .sds-plan-timetable__item { min-height: 46px; }
/* タブレット領域(769〜1024px)は4列を維持して端数行を防ぐ */
@media screen and (min-width: 769px) and (max-width: 1024px) {
  .sds-plan-timetable { grid-template-columns: repeat(4, 1fr); gap: 10px; }
  #contents .sds-plan-timetable__item { padding: 10px 12px; }
  .sds-plan-timetable__no,
  .sds-plan-timetable__time { font-size: 13px; }
}

/* ---- R-3 FVカードと「技能教習」見出しの重なり（中間幅 769〜900px）を防止 ---- */
/* PC基準の負マージン(-110px)は広い画面向け。中間幅では縮小して被りを防ぐ */
@media screen and (min-width: 769px) and (max-width: 900px) {
  #contents .sds-plan-fv--flat .office-info { margin-bottom: -70px; }
  #contents #at.bg-blue { padding-top: 130px; }
}

/* ---- R-4 FV料金の大きさを中間幅で段階的に調整（769〜900px） ---- */
@media screen and (min-width: 769px) and (max-width: 900px) {
  .sds-plan-fvsummary__yen  { font-size: 48px; }
  .sds-plan-fvsummary__unit { font-size: 24px; }
}

/* ---- R-5 卒業生の声カード：狭い画面での窮屈さを緩和 ---- */
@media screen and (max-width: 559px) {
  #contents .sds-plan-voice__card {
    flex-basis: 78vw;
    width: 78vw;
    max-width: 300px;
    margin-right: 12px;
  }
}

/* ---- R-6 紹介キャンペーンカード：480〜559pxの中間で文字が詰まる問題を緩和 ---- */
@media screen and (max-width: 559px) {
  .sds-plan-referral__amount strong { font-size: 24px; }
  #contents .sds-plan-referral__role { font-size: 14px; }
}
/* 1列化のブレークポイントを559pxへ引き上げ、2列時の潰れを回避 */
@media screen and (min-width: 481px) and (max-width: 559px) {
  .sds-plan-referral__cards { grid-template-columns: 1fr; }
}

/* ---- R-7 統計3カード：スマホで数値が小さくなりすぎる問題を微調整 ---- */
@media screen and (max-width: 559px) {
  .sds-plan-voice__num { font-size: 32px; }
  .sds-plan-voice__statlabel { font-size: 12px; }
}

/* ---- R-8 用語ミニ集・FAQのスマホ左右余白統一（他ブロックと揃える） ---- */
@media screen and (max-width: 768px) {
  #contents .sds-plan-terms {
    margin-left: 16px;
    margin-right: 16px;
  }
}

/* ---- R-9 FV料金サマリーのリンクボタン：タブレットで折返しを自然に ---- */
@media screen and (min-width: 641px) and (max-width: 768px) {
  .sds-plan-fvsummary__link { padding: 9px 18px; font-size: 13px; }
}


/* ============================================
   ［卒業生の声スライダー・矢印ボタンで送る］2026-07-06（改訂）
   スマホ：自動スクロールを停止し、矢印ボタン＋スワイプで1枚ずつ送る。
   PC：従来通り無限自動スクロールを維持。
   JSは矢印クリック時のスクロール制御のみ。DB連動値不変。
   接頭辞 .sds-plan-voice- 内で完結。
   ============================================ */

/* スライダーは矢印ボタンの絶対配置基準 */
#contents .sds-plan-voice__slider { position: relative; }

/* 矢印ボタン：PCでは非表示（自動スクロールのため不要） */
#contents .sds-plan-voice__nav {
  display: none;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  font-size: 24px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  z-index: 3;
  transition: opacity .2s, background .2s;
  -webkit-appearance: none;
  appearance: none;
}
.sds-plan-voice__nav--prev {
  left: 4px;
  color: #2999CB;
  background: rgba(255,255,255,.95);
  border: 1px solid #cfe6f2;
  box-shadow: 0 2px 6px rgba(0,0,0,.12);
}
.sds-plan-voice__nav--next {
  right: 4px;
  color: #fff;
  background: #2999CB;
  box-shadow: 0 2px 8px rgba(41,153,203,.4);
}
.sds-plan-voice__nav--next:active { background: #1f82b0; }
.sds-plan-voice__nav--prev:active { background: #eef6fb; }
/* 端に達したボタンは半透明で無効表現（クリック自体は無害） */
.sds-plan-voice__nav.is-disabled { opacity: .35; }

/* --- スマホ：手動スクロール方式へ切替 --- */
@media screen and (max-width: 768px) {
  /* 矢印ボタンを表示 */
  #contents .sds-plan-voice__nav { display: block; }

  /* 端のフェードマスクは矢印と干渉するので無効化 */
  .sds-plan-voice__slider {
    -webkit-mask-image: none;
    mask-image: none;
    overflow: hidden;
  }

  /* トラック：自動アニメを止め、横スクロール＋スナップに */
  .sds-plan-voice__track {
    animation: none !important;
    width: auto;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding: 4px 0;
  }
  .sds-plan-voice__track::-webkit-scrollbar { display: none; }

  /* 複製カード（無限ループ用のaria-hidden）はスマホでは重複表示になるため隠す */
  #contents .sds-plan-voice__card[aria-hidden="true"] { display: none; }

  /* 各カードをスナップ位置に */
  #contents .sds-plan-voice__card {
    scroll-snap-align: center;
  }
}

/* 案内文「← 矢印またはスワイプで他の声も見る →」 */
#contents .sds-plan-voice__swipehint {
  display: none;
}
@media screen and (max-width: 768px) {
  #contents .sds-plan-voice__swipehint {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 700;
    color: #248dc3;
    margin: 12px 0 0;
  }
  .sds-plan-voice__swipehint::before { content: '\2190'; }
  .sds-plan-voice__swipehint::after  { content: '\2192'; }
}


/* ============================================
   ［玉野より移植］共通 料金テーブル カード化 (.sds-fee-table)
   東京立川の教習料金テーブルにも同方式を採用。2026-07-06
   玉野(7210_tamano)/main.css の同名クラス定義をそのまま移植。
   スマホ(559px以下)で行→カード化。data-labelで項目名を表示。
   ============================================ */
/* =========================================================
   共通：料金テーブル カード化スタイル (.sds-fee-table)
   複数ページの教習料金テーブルで再利用する汎用クラス。
   使い方：
     <div class="table-over sds-fee-wrap ..."> ... </div>
     <table class="table-02 sds-fee-table"> ...
   ・上部ヘッダー行（現有免許/教習時間/税抜・税込 等）を青地・白文字に
   ・スマホ(559px以下)で「行ごとのカード」に変換し横スクロールを解消
   ・各データセルに data-label="見出し" を付与（スマホ時の項目名になる）
   ・data-label="税込価格" のセルは最終金額として強調表示
   ・カード帯に出す行見出しの接頭辞は data-rowhead="現有免許" 等で指定（任意）
   本文14px基準・common.css準拠
   ========================================================= */
#contents .sds-fee-table th,
#contents .sds-fee-table td {
  text-align: center;
  font-size: 14px;
  vertical-align: middle;
}
/* 上部ヘッダー（1〜2行目）を青地・白文字に */
#contents .sds-fee-table tr:nth-child(1) th,
#contents .sds-fee-table tr:nth-child(2) th {
  background-color: #3DA0CE;
  color: #FFF;
}
/* 各データ行の左端見出し（免許区分など）は薄青で階層づけ */
#contents .sds-fee-table tr:nth-child(n+3) th {
  background-color: #EAF4FB;
  color: #333;
  font-weight: 500;
}
@media screen and (max-width: 559px) {
  /* カード化により横スクロール不要のため注記を隠す */
  #contents .sds-fee-scrollhint {
    display: none !important;
  }
  /* スクロール枠を無効化 */
  #contents .table-over.sds-fee-wrap {
    overflow: visible;
  }
  #contents .table-over table.sds-fee-table {
    min-width: 0;
    width: 100%;
  }
  #contents .sds-fee-table,
  #contents .sds-fee-table tbody {
    display: block;
    width: 100%;
    min-width: 0;
  }
  /* 上部ヘッダー2行はカードでは不要（data-labelで各項目名を表示） */
  #contents .sds-fee-table tr:nth-child(1),
  #contents .sds-fee-table tr:nth-child(2) {
    display: none;
  }
  /* データ行を1枚のカードに */
  #contents .sds-fee-table tr:nth-child(n+3) {
    display: block;
    border: 2px solid #3DA0CE;
    border-radius: 12px;
    overflow: hidden;
    margin-bottom: 20px;
    background: #FFF;
  }
  /* 行見出し（現有免許など）はカードの帯タイトルに */
  #contents .sds-fee-table tr:nth-child(n+3) th {
    display: block;
    background-color: #3DA0CE !important;
    color: #FFF !important;
    font-size: 15px;
    font-weight: 600;
    text-align: center;
    padding: 12px 10px;
    border: none;
  }
  /* 帯に「現有免許」等の接頭辞を出したい場合は data-rowhead を付与 */
  #contents .sds-fee-table tr:nth-child(n+3) th[data-rowhead]::before {
    content: attr(data-rowhead) "　";
    font-weight: 400;
    font-size: 13px;
    opacity: .9;
  }
  /* 各データセルは「見出し：値」の2カラム行に */
  #contents .sds-fee-table tr:nth-child(n+3) td {
    display: flex;
    justify-content: space-between;
    align-items: center;
    text-align: right;
    padding: 11px 15px;
    border: none;
    border-top: 1px solid #E1E1E1;
    font-size: 14px;
    background: #FFF;
  }
  #contents .sds-fee-table tr:nth-child(n+3) td::before {
    content: attr(data-label);
    font-weight: 500;
    color: #555;
    text-align: left;
    margin-right: 12px;
  }
  /* 税込価格を強調（ユーザーが最も見たい最終金額） */
  #contents .sds-fee-table tr:nth-child(n+3) td[data-label="税込価格"],
  #contents .sds-fee-table tr:nth-child(n+3) td[data-label="合計"] {
    background: #F0F7FB;
    font-weight: 700;
    font-size: 16px;
    color: #333;
  }
  #contents .sds-fee-table tr:nth-child(n+3) td[data-label="税込価格"]::before,
  #contents .sds-fee-table tr:nth-child(n+3) td[data-label="合計"]::before {
    font-weight: 700;
    color: #333;
  }
}

/* ---------------------------------------------------------
   料金テーブル カード化：MT型（ヘッダー3行）用の追加調整
   3行目に「普通車AT+AT限定解除」等の結合セル(th colspan)がある表。
   PC表示は据え置き、スマホではその帯をカード内の補足見出しにする。
   使い方：<table class="table-02 sds-fee-table sds-fee-table-mt">
   ・ヘッダーは1〜3行目（3行目=colspan帯）
   ・データ行は4行目以降 → tr:nth-child(n+4)
   --------------------------------------------------------- */
@media screen and (max-width: 559px) {
  /* 3行分のヘッダーをすべて隠す（nth-child(3)は共通ルールで未指定なので明示） */
  #contents .sds-fee-table-mt tr:nth-child(3) {
    display: none;
  }
  /* 共通ルールが tr:nth-child(n+3) をカード化するが、MT型では
     3行目がヘッダー帯なので、カード枠・帯色は n+4 のみに適用し直す。
     3行目のカード化を打ち消す。 */
  #contents .sds-fee-table-mt tr:nth-child(3) th {
    display: none;
  }
  /* データ行(n+4)のtd内「+AT限定解除」表記はそのまま値として表示されるため、
     追加調整は不要。data-labelで各項目名を出す。 */
}


/* ============================================
   plan2026 プランページ改修（普通免許・michikusaライク）v2
   - 目次 / 二段ヘッダー / お得情報 / 教習料金 / 足し算 / 注意事項 / FAQ
   - サイトカラー準拠：#39A1CF / #248dc3 / #2999CB / CTAオレンジ #f08300
   - 文字色は黒(#000)基調。補足のみ #333。灰色系は使わない
   - 背景(bg-blue)と区別するため各ボックスは白背景+枠線/薄い影で浮かせる
   - 早期卒業オプションのカード（price-option-*）は既存CSSを流用（本ブロックでは触れない）
   ============================================ */

/* ---- セクション共通の余白 ---- */
#contents .plan2026-sec {
  max-width: 900px;
  margin: 0 auto 60px;
}

/* ---- 目次（アンカーナビ・左寄せ固定幅150px） ---- */
#contents .plan2026-toc {
  max-width: 900px;
  margin: 0 auto 50px;
}
#contents .plan2026-toc__row {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 24px;
}
#contents .plan2026-toc__row--top {
  margin-bottom: 14px;
}
#contents .plan2026-toc__item {
  width: 150px;
  display: flex;
  align-items: baseline;
  border-bottom: 1px solid #333;
  padding: 4px 2px 11px;
  color: #000;
  text-decoration: none;
  transition: .3s;
}
#contents .plan2026-toc__item:hover {
  border-bottom-color: #39A1CF;
  color: #248dc3;
  text-decoration: none;
}
#contents .plan2026-toc__num {
  color: #000;
  font-size: 14px;
  margin-right: 12px;
}
#contents .plan2026-toc__label {
  font-size: 14px;
}

/* ---- 二段ヘッダー（英語小・黒 / 日本語大・青・太字） ---- */
#contents .plan2026-head {
  margin-bottom: 20px;
}
#contents .plan2026-head__en {
  display: block;
  font-size: 13px;
  color: #000;
  letter-spacing: .06em;
}
#contents .plan2026-head__jp {
  display: block;
  font-size: 26px;
  font-weight: 700;
  color: #248dc3;
  margin-top: 4px;
  line-height: 1.3;
}

/* ---- 共通ボックス（白背景＋枠線＋薄い影で浮かせる） ---- */
#contents .plan2026-box {
  background: #fff;
  border: 1px solid #d4d4d4;
  border-radius: 16px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, .05);
  padding: 26px 30px;
}

/* ---- お得情報（青丸ポチ＋太字） ---- */
#contents .plan2026-special-list {
  margin: 0;
  padding: 0;
  list-style: none;
}
#contents .plan2026-special-list__item {
  position: relative;
  padding: 11px 0 11px 24px;
  font-size: 15px;
  font-weight: 700;
  color: #000;
  line-height: 1.6;
}
#contents .plan2026-special-list__item::before {
  content: '';
  position: absolute;
  left: 0;
  top: 17px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #39A1CF;
}

/* ---- 教習料金テーブル ---- */
#contents .plan2026-fee__caption {
  font-size: 15px;
  font-weight: 700;
  color: #000;
  margin: 0 0 6px;
}
#contents .plan2026-fee__lead {
  font-size: 14px;
  color: #000;
  margin: 0 0 16px;
}
#contents .plan2026-fee-table {
  display: flex;
  border: 1px solid #d4d4d4;
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
}
#contents .plan2026-fee-table__label {
  width: 130px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f0f7fb;
  color: #248dc3;
  font-weight: 700;
  font-size: 14px;
  text-align: center;
  border-right: 1px solid #d4d4d4;
}
#contents .plan2026-fee-table__rows {
  flex: 1;
}
#contents .plan2026-fee-table__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 20px;
  border-bottom: 1px solid #e5e7eb;
}
#contents .plan2026-fee-table__row:last-child {
  border-bottom: none;
}
#contents .plan2026-fee-table__name {
  font-size: 14px;
  color: #000;
}
#contents .plan2026-fee-table__right {
  display: flex;
  align-items: center;
  gap: 16px;
}
#contents .plan2026-fee-table__price {
  text-align: right;
  line-height: 1.3;
  white-space: nowrap;
}
#contents .plan2026-fee-table__price strong {
  font-size: 20px;
  font-weight: 700;
  color: #000;
}
#contents .plan2026-fee-table__tax {
  font-size: 12px;
  color: #000;
  margin-left: 3px;
}
#contents .plan2026-fee-table__intax {
  display: block;
  font-size: 12px;
  color: #333;
}
#contents .plan2026-fee-table__btn {
  flex-shrink: 0;
  display: inline-block;
  background: #39A1CF;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  border-radius: 8px;
  padding: 9px 18px;
  white-space: nowrap;
  transition: .3s;
}
#contents .plan2026-fee-table__btn:hover {
  background: #248dc3;
  color: #fff;
  text-decoration: none;
  opacity: 1;
}

/* ---- お支払い総額の足し算（白背景＋枠線＋薄い影） ---- */
#contents .plan2026-total {
  max-width: 900px;
  margin: 0 auto;
  background: #fff;
  border: 1px solid #d4d4d4;
  border-radius: 16px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, .05);
  padding: 26px 24px;
}
#contents .plan2026-total__lead {
  text-align: center;
  font-size: 15px;
  font-weight: 700;
  color: #248dc3;
  margin: 0 0 16px;
  padding-bottom: 16px;
  border-bottom: 2px dotted #85B7EB;
}
#contents .plan2026-total__flow {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
}
#contents .plan2026-total__item {
  flex: 1;
  background: #f0f7fb;
  border-radius: 12px;
  padding: 18px 16px;
  text-align: center;
}
#contents .plan2026-total__item--result {
  background: #fff;
  border: 2px solid #39A1CF;
}
#contents .plan2026-total__label {
  display: block;
  font-size: 15px;
  font-weight: 700;
  color: #248dc3;
}
#contents .plan2026-total__item--result .plan2026-total__label {
  color: #f08300;
}
#contents .plan2026-total__desc {
  display: block;
  font-size: 13px;
  color: #000;
  margin-top: 6px;
}
#contents .plan2026-total__op {
  font-size: 22px;
  color: #000;
  flex-shrink: 0;
}
#contents .plan2026-total__note {
  font-size: 12px;
  color: #333;
  margin: 18px 0 0;
}

/* ---- 追加料金・ご注意事項 ---- */
#contents .plan2026-notes__lead {
  font-size: 14px;
  color: #000;
  line-height: 1.9;
  margin: 0 0 22px;
}
#contents .plan2026-notes__subttl {
  font-size: 14px;
  font-weight: 700;
  color: #248dc3;
  margin: 0 0 12px;
}
#contents .plan2026-notes-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 20px;
}
#contents .plan2026-notes-card {
  background: #fff;
  border: 1px solid #d4d4d4;
  border-radius: 12px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, .05);
  padding: 18px;
}
#contents .plan2026-notes-card__ttl {
  font-size: 14px;
  font-weight: 700;
  color: #000;
  margin: 0 0 10px;
}
#contents .plan2026-notes-card__meta {
  font-size: 13px;
  color: #000;
  margin: 0 0 12px;
}
#contents .plan2026-notes-card__fee {
  border-top: 1px solid #e5e7eb;
  padding-top: 10px;
  margin: 0;
}
#contents .plan2026-notes-card__fee strong {
  font-size: 18px;
  font-weight: 700;
  color: #248dc3;
}
#contents .plan2026-notes-card__unit {
  font-size: 12px;
  color: #000;
  margin-left: 2px;
}
#contents .plan2026-notes-card__sub {
  font-size: 12px;
  color: #333;
  margin: 2px 0 0;
}
#contents .plan2026-notes-other {
  background: #fff;
  border: 1px solid #d4d4d4;
  border-radius: 12px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, .05);
  padding: 16px 20px;
}
#contents .plan2026-notes-other__ttl {
  font-size: 14px;
  font-weight: 700;
  color: #248dc3;
  margin: 0 0 8px;
}
#contents .plan2026-notes-other__list {
  margin: 0;
  padding: 0;
  list-style: none;
}
#contents .plan2026-notes-other__list li {
  position: relative;
  padding-left: 16px;
  font-size: 14px;
  color: #000;
  line-height: 1.7;
}
#contents .plan2026-notes-other__list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 8px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #39A1CF;
}

/* ---- よくある質問（FAQ・白背景＋枠線＋薄い影） ---- */
#contents .plan2026-faq__item {
  background: #fff;
  border: 1px solid #d4d4d4;
  border-radius: 16px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, .05);
  padding: 28px 30px;
  margin-bottom: 16px;
}
#contents .plan2026-faq__item:last-child {
  margin-bottom: 0;
}
#contents .plan2026-faq__q {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 16px;
}
#contents .plan2026-faq__a {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  border-top: 1px solid #e5e7eb;
  padding-top: 16px;
}
#contents .plan2026-faq__icon {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  font-weight: 700;
}
#contents .plan2026-faq__icon--q {
  background: #f0f7fb;
  color: #248dc3;
}
#contents .plan2026-faq__icon--a {
  background: #39A1CF;
  color: #fff;
}
#contents .plan2026-faq__q .plan2026-faq__text {
  font-size: 15px;
  font-weight: 700;
  color: #000;
}
#contents .plan2026-faq__a .plan2026-faq__text {
  font-size: 15px;
  color: #000;
  line-height: 1.8;
  padding-top: 7px;
}

/* ============================================
   plan2026 スマホ対応（640px以下）
   ============================================ */
@media screen and (max-width: 640px) {
  #contents .plan2026-toc__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px 14px;
  }
  #contents .plan2026-toc__item {
    width: auto;
    padding: 12px 4px;
  }
  #contents .plan2026-head__jp {
    font-size: 22px;
  }
  #contents .plan2026-box {
    padding: 20px 18px;
  }

  /* 料金テーブル：ラベルを上、行内は縦積み（名称→金額→ボタン） */
  #contents .plan2026-fee-table {
    display: block;
  }
  #contents .plan2026-fee-table__label {
    width: 100%;
    padding: 12px;
    border-right: none;
    border-bottom: 2px solid #39A1CF;
  }
  #contents .plan2026-fee-table__row {
    display: block;
    padding: 16px;
  }
  #contents .plan2026-fee-table__right {
    display: block;
    margin-top: 10px;
  }
  #contents .plan2026-fee-table__price {
    display: block;
    text-align: left;
  }
  #contents .plan2026-fee-table__btn {
    display: block;
    width: 100%;
    text-align: center;
    margin-top: 12px;
    box-sizing: border-box;
  }

  /* 足し算：縦積み */
  #contents .plan2026-total__flow {
    flex-direction: column;
  }
  #contents .plan2026-total__item {
    width: 100%;
    box-sizing: border-box;
  }
  #contents .plan2026-total__op {
    padding: 2px 0;
  }

  /* 注意事項カード：1列 */
  #contents .plan2026-notes-cards {
    grid-template-columns: 1fr;
  }

  /* FAQ */
  #contents .plan2026-faq__item {
    padding: 20px 18px;
  }

}

/* ---- 早期卒業オプション：カード名を黒に（金額の青とメリハリ） ---- */
#contents #at .price-option-card__name,
#contents #mt .price-option-card__name {
  color: #000;
}

/* ---- 早期卒業オプション：リード・カード内テキストを黒に統一（灰色廃止） ---- */
#contents #at .price-option-lead,
#contents #mt .price-option-lead,
#contents #at .price-option-card__meta,
#contents #mt .price-option-card__meta,
#contents #at .price-option-card__pre,
#contents #mt .price-option-card__pre,
#contents #at .price-option-card__total,
#contents #mt .price-option-card__total {
  color: #000;
}
#contents #at .price-option-card__note,
#contents #mt .price-option-card__note {
  color: #333;
}

/* ---- 早期卒業オプション：プラン詳細ボタンを青に統一（教習料金ボタンと揃える） ---- */
#contents #at .price-option-card__btn-wrap .price-detail-btn,
#contents #mt .price-option-card__btn-wrap .price-detail-btn {
  background: #39A1CF;
}
#contents #at .price-option-card__btn-wrap .price-detail-btn:hover,
#contents #mt .price-option-card__btn-wrap .price-detail-btn:hover {
  background: #248dc3;
}

/* ---- 早期卒業オプション：加算金額を教習料金の金額に合わせる（20px・黒） ---- */
#contents #at .price-option-card__add,
#contents #mt .price-option-card__add {
  font-size: 13px;
  color: #000;
}
#contents #at .price-option-card__add strong,
#contents #mt .price-option-card__add strong {
  font-size: 20px;
  font-weight: 700;
  color: #000;
}
