@charset "UTF-8";
/*----------------------------------------
	fonts
----------------------------------------*/
/*----------------------------------------
	media query
----------------------------------------*/
/*----------------------------------------
	base
----------------------------------------*/
html,
body {
  overflow-x: hidden;
}

body {
  color: #000;
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1.2;
}

a {
  text-decoration: none;
  transition: all 0.3s;
}

a:hover {
  cursor: pointer;
}

/*----------------------------------------
  wrapper
  ----------------------------------------*/
.wrapper {
  max-width: 600px;
  margin-inline: auto;
  text-align: center;
}

/*----------------------------------------
  section
  ----------------------------------------*/
.section__inner {
  width: 100%;
  padding-inline: 5.1282051282%;
}

.section__titleWrapper {
  border-radius: 7px;
  background: linear-gradient(340deg, #005ab2 53.14%, #1172d1 53.14%);
  padding-block: 20px 25px;
}

.section__titleSub {
  color: #fff;
  font-size: 1.25rem;
  font-weight: 700;
}

.section__title {
  margin-top: 5px;
  font-size: 1.875rem;
  font-weight: 700;
}

.section__titleSub img {
  width: 100%;
  height: auto;
  max-width: 100%;
  object-fit: contain;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  image-rendering: -webkit-optimize-contrast;
  image-rendering: crisp-edges;
}

@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
  .section__titleSub img {
    transform: translateZ(0);
  }
}

/*----------------------------------------
  footer
----------------------------------------*/
.footer {
  padding-block: 15px 20px;
  font-size: 0.5rem;
  text-align: center;
}

.footer__copyright a:hover {
  text-decoration: underline;
  opacity: 0.6;
}

/*----------------------------------------
  cta button
  ----------------------------------------*/
.ctaWrapper {
  margin-top: 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.ctaLead {
  font-size: 0.8125rem;
  font-weight: 700;
}

.ctaButton {
  border-radius: 38px;
  background: linear-gradient(180deg, #f5486c 50%, #f20b3b 100%);
  box-shadow: 0px 6px 8px 0px rgba(179, 155, 171, 0.84);
  width: min(335px, 98%);
  padding-block: 10px;
  margin-inline: auto;
  position: relative;
  overflow: hidden;
  transition: all 0.3s;
}
.ctaButton::before {
  position: absolute;
  content: "";
  top: -180px;
  left: 0;
  width: 30px;
  height: 100%;
  background-color: #ffffff;
  transition: 300ms;
  -webkit-animation: shinyshiny 2.5s ease-in-out infinite;
          animation: shinyshiny 2.5s ease-in-out infinite;
}
.ctaButton::after {
  position: absolute;
  content: "";
  width: 22px;
  height: 22px;
  top: 50%;
  transform: translateY(-50%);
  right: 7.4626865672%;
  background: transparent url(../img/cta_arrow.svg) no-repeat center center/contain;
}
.ctaButton:hover {
  opacity: 0.6;
}
.ctaButton a {
  display: block;
  color: #fff;
  font-size: 1.0625rem;
  font-weight: 700;
  line-height: 130.8%;
  text-decoration: none;
  position: relative;
  transition: 300ms;
}

@-webkit-keyframes shinyshiny {
  0% {
    transform: scale(0) rotate(45deg);
    opacity: 0;
  }
  80% {
    transform: scale(0) rotate(45deg);
    opacity: 0.5;
  }
  81% {
    transform: scale(4) rotate(45deg);
    opacity: 1;
  }
  100% {
    transform: scale(50) rotate(45deg);
    opacity: 0;
  }
}

@keyframes shinyshiny {
  0% {
    transform: scale(0) rotate(45deg);
    opacity: 0;
  }
  80% {
    transform: scale(0) rotate(45deg);
    opacity: 0.5;
  }
  81% {
    transform: scale(4) rotate(45deg);
    opacity: 1;
  }
  100% {
    transform: scale(50) rotate(45deg);
    opacity: 0;
  }
}
/*----------------------------------------
  utility
  ----------------------------------------*/
.underline-yellow {
  font-weight: 700;
  -webkit-text-decoration-color: #f7df08;
          text-decoration-color: #f7df08;
  -webkit-text-decoration-line: underline;
          text-decoration-line: underline;
  text-decoration-thickness: 3px;
  text-underline-offset: -2px;
  -webkit-text-decoration-skip-ink: none;
          text-decoration-skip-ink: none;
}

.underline-lemon {
  -webkit-text-decoration-color: #ffe9b5;
          text-decoration-color: #ffe9b5;
  -webkit-text-decoration-line: underline;
          text-decoration-line: underline;
  text-decoration-thickness: 3px;
  text-underline-offset: -2px;
  -webkit-text-decoration-skip-ink: none;
          text-decoration-skip-ink: none;
}

.lemon {
  color: #ffee40;
}

.yellow {
  color: #f7df08;
}

.fw700 {
  font-weight: 700;
}

.fz5 {
  font-size: 0.547rem;
}

.fz6 {
  font-size: 0.656rem;
}

.fz7 {
  font-size: 0.766rem;
}

.fz8 {
  font-size: 0.875rem;
}

.fz14 {
  font-size: 0.875rem;
}

.fz19 {
  font-size: 1.1875rem;
}

/*----------------------------------------
  Main Visual
----------------------------------------*/
.mainVisual {
  background: url(../img/mv_bg.jpg) no-repeat center center/cover;
  display: flex;
  position: relative;
}
.mainVisual::after {
  position: absolute;
  content: "PR";
  font-size: 0.8125rem;
  font-weight: 500;
  color: #058;
  background-color: #fff;
  bottom: 6px;
  right: 10px;
  border: 1px solid #058;
  padding: 2px 5px;
}

.mainVisual__text {
  width: 62.5641025641%;
  margin-left: 2.5641025641%;
  padding-block: 25px 8px;
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.mainVisual__head {
  display: flex;
  gap: 8px;
  margin-left: 15px;
}

.mainVisual__circle {
  color: #ffe9b5;
  font-weight: 700;
  flex-shrink: 0;
  position: relative;
  z-index: 10;
  padding-left: 10px;
}
.mainVisual__circle::before {
  position: absolute;
  content: "";
  width: 51px;
  height: 52px;
  bottom: 0;
  left: 0;
  background: transparent url(../img/mv_circle.svg) no-repeat center center/contain;
  z-index: -10;
}

.mainVisual__lead {
  font-size: 1.25rem;
  color: #058;
  text-shadow: -1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff, 1px 1px 0 #fff;
  font-weight: 900;
  letter-spacing: 1px;
  white-space: nowrap;
  padding-bottom: 10px;
  padding-left: 3px;
}

.title-bg {
  display: inline-block;
  color: #fff;
  font-size: 2.0625rem;
  font-weight: 700;
  line-height: normal;
  background-color: #005ab0;
  box-shadow: 2px 2px 0px 0px #000;
  padding: 0.1rem 0.4rem;
  white-space: nowrap;
}

.title-banzai {
  color: #058;
  text-shadow: -2px -2px 0 #fff, 2px -2px 0 #fff, -2px 2px 0 #fff, 2px 2px 0 #fff, 1px 2px 3px rgba(0, 0, 0, 0.25);
  font-size: 2.5625rem;
  font-weight: 700;
  letter-spacing: 5.74px;
  margin-top: 8px;
  white-space: nowrap;
}

.banzai_left,
.banzai_right {
  display: inline-block;
  width: 15px;
  height: 39px;
  vertical-align: sub;
}

.banzai_left {
  background: transparent url(../img/mv_banzai_left.svg) no-repeat center/contain;
  padding-right: 24px;
}

.banzai_right {
  background: transparent url(../img/mv_banzai_right.svg) no-repeat center/contain;
  padding-left: 14px;
}

.mainVisual__foot {
  width: 175px;
  margin-left: 12px;
}

.mainVisual__picture {
  width: 40%;
  flex-shrink: 1;
  position: relative;
}

.picture-model {
  position: absolute;
  bottom: 0;
  right: 0;
  width: min(120%, 190px);
}

/*----------------------------------------
  comparison
----------------------------------------*/
.comparison__titleWrapper {
  background-color: #ebf5ff;
  padding-block: 4px;
}

.comparison__titleSub {
  margin-inline: auto;
  width: 271px;
}

.comparison__titleMain {
  margin-inline: auto;
  width: 160px;
  margin-top: -4px;
}

.comparison__body {
  margin-top: 13px;
}

.comparison__head {
  display: flex;
  justify-content: center;
  gap: 3.5897435897%;
}

.comparison__balloon {
  width: 164px;
  height: 53px;
  flex-shrink: 0;
  text-align: left;
  color: #fff;
  font-size: 0.5625rem;
  font-weight: 700;
  line-height: 116.8%;
  padding-top: 8px;
  padding-left: 12px;
  position: relative;
}
.comparison__balloon::before {
  position: absolute;
  content: "";
  background: transparent url(../img/comparison_balloon.svg) no-repeat center center/contain;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: -10;
}
.comparison__balloon::after {
  position: absolute;
  content: "";
  background: transparent url(../img/comparison_balloon_hand.svg) no-repeat center center/contain;
  width: 19.512195122%;
  height: 35px;
  top: 2px;
  right: 4px;
}
.comparison__balloon:hover {
  cursor: pointer;
}

.comparison__tableWrapper {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin-top: 20px;
  margin-left: 5.1282051282%;
}

.comparison__tableTabs {
  display: flex;
  cursor: pointer;
}

.comparison__tableTab {
  width: 48%;
  flex-shrink: 0;
  border-radius: 26px 26px 0px 0px;
  background: #d9d9d9;
  padding-block: 6px;
  text-align: center;
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: normal;
}

.comparison__tableTab.active {
  color: white;
  background: #058;
}

.comparison__tables {
  position: relative;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  background-color: #fff;
}

.comparison__table {
  display: none;
  width: 100%;
  min-width: 600px;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
}

.comparison__table.active {
  display: table;
  table-layout: fixed;
  border-collapse: collapse;
}

.comparison__table tr {
  display: table-row;
}

.comparison__table th,
.comparison__table td {
  display: table-cell;
  padding: 10px;
  text-align: center;
  vertical-align: middle;
  color: #058;
  font-size: 0.875rem;
  font-weight: 700;
  border: 1px solid #b9b9b9;
  word-break: break-word;
  white-space: normal;
  position: relative;
  background-color: #fff;
}

/* 1列目（項目列）全体の固定 */
.comparison__table tr > *:first-child {
    position: relative !important;
    left: 0;
    background: #e7f5ff !important;
    z-index: 50;
    border-right: 1px solid #b9b9b9;
}

/* 特にヘッダー行の1列目は他より前面に */
.comparison__table tr:first-child > *:first-child {
    z-index: 52;
}

/* ヘッダー行のその他のセル */
.comparison__table tr:first-child > * {
    z-index: 51;
    background: inherit;
}

.comparison__table th.table-title {
  width: 120px;
  text-align: center;
  padding: 10px;
  background: #e7f5ff;
  position: sticky;
  left: 0;
  z-index: 50;
  font-size: 0.875rem;
}

.comparison__table th.table-service {
  width: 142px;
  text-align: center;
  position: sticky;
  top: 0;
  z-index: 51;
}

.comparison__table th.table-service.bg-white {
  background: #fff;
}

.comparison__table th.table-service.bg-blue {
  background: #e7f5ff;
}

.comparison__table th.table-service.bg-cream {
  background: #fffcf6;
}

.comparison__table th.table-service.bg-grey,
.comparison__table td.bg-grey {
    background-color: #f3f3f3 !important;
    border: 1px solid #b9b9b9 !important;
    position: relative;
    z-index: 1;
}

.comparison__table th.table-service::before, .comparison__table th.table-service::after {
  content: "";
  position: absolute;
  z-index: 50;
  display: block;
  background: #b9b9b9;
}
.comparison__table th.table-service::before {
  left: 0;
  top: -1px;
  width: 100%;
  height: 1px;
}
.comparison__table th.table-service::after {
  left: -1px;
  top: 0;
  width: 1px;
  height: 100%;
}

.comparison__table th img {
  width: 94px;
  height: 40px;
  -o-object-fit: contain;
     object-fit: contain;
}

.link-official-site {
  display: block;
  color: #fff;
  font-size: 0.7rem;
  border-radius: 2px;
  background: #d41944;
  box-shadow: 2px 2px 0px 0px #cb6f3d;
  padding: 5px 19px;
  margin-inline: 15px;
  text-decoration: none;
  overflow: hidden;
  position: relative;
}
.link-official-site::before {
  position: absolute;
  content: "";
  top: -50px;
  left: 0;
  width: 15px;
  height: 100%;
  background-color: #ffffff;
  transition: 300ms;
  -webkit-animation: shinyshiny 2.5s ease-in-out infinite;
          animation: shinyshiny 2.5s ease-in-out infinite;
}
.link-official-site::after {
  position: absolute;
  content: "";
  background: transparent url(../img/link-arrow.svg) no-repeat center center/contain;
  width: 3px;
  height: 6px;
  top: 50%;
  transform: translateY(-50%);
  right: 4px;
}
.link-official-site:hover {
  opacity: 0.6;
}

.circle_single,
.circle_double {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  width: 100%;
}
.circle_single::before,
.circle_double::before {
  position: relative;
  content: "";
  width: 20px;
  height: 20px;
  display: block;
  margin: 0 auto;
}

.circle_single::before {
  background: transparent url(../img/circle_single.svg) no-repeat center center/contain;
}

.circle_double::before {
  background: transparent url(../img/circle_double.svg) no-repeat center center/contain;
}

/*----------------------------------------
  types
----------------------------------------*/
.types {
  margin-top: 25px;
}

.types__titleWrapper {
  position: relative;
}
.types__titleWrapper::after {
  position: absolute;
  content: "";
  background: transparent url(../img/types_check_man.png) no-repeat center center/contain;
  width: 67.5px;
  height: 61.2px;
  right: 7px;
  bottom: 0;
}

.types__title {
  color: #f1fa95;
}

.types__contents {
  margin-top: 12px;
}

.types__content:not(:first-of-type) {
  margin-top: 30px;
}

.types__contentHead {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  text-align: left;
  font-size: 1rem;
  line-height: 25px;
}

.types__contentBody {
  margin-top: 18px;
}

.types__flex {
  display: flex;
  justify-content: center;
  gap: 5.7435897436%;
}
.types__flex:nth-child(2) {
  margin-top: -12px;
}

.types__item {
  width: 157px;
  height: 177px;
  flex-shrink: 0;
}

.types__itemImage {
  width: 100%;
  height: 177px;
}

.types__itemName {
  position: relative;
  color: #019ce0;
  font-weight: 700;
  font-size: 16px;
  bottom: 38px;
  line-height: 1;
}

.types__list > .types__flex:first-child .types__itemName {
  bottom: 48px;
}

.types__itemName > .itemName-sub {
  color: #000;
  font-size: 13px;
  padding-bottom: 10px;
}

.types__contentFoot {
  margin-top: 16px;
  max-width: 310px;
  margin-inline: auto;
  text-align: left;
  font-size: 1rem;
  font-weight: 700;
  line-height: 25px;
}

.types__descriptions {
  max-width: 400px;
  margin-inline: auto;
}

.descriptions__labels {
  display: flex;
  justify-content: space-between;
  cursor: pointer;
}

.descriptions__label {
  width: min(33%, 130px);
  height: 56px;
  line-height: 56px;
  color: #fff;
  font-family: "M PLUS 2", sans-serif;
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.7px;
  background: #9a9a9a;
  border: 1px solid #000;
  border-bottom: none;
  border-radius: 8px 8px 0 0;
}
.descriptions__label.active {
  background: #015bb3;
  border: 2px solid #015bb3;
  border-bottom: none;
  position: relative;
}

.descriptions__label.active::after {
  position: absolute;
  content: "";
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  width: 10px;
  height: 10px;
  background: #015bb3;
  aspect-ratio: 1/cos(30deg);
  -webkit-clip-path: polygon(50% 100%, 100% 0, 0 0);
          clip-path: polygon(50% 100%, 100% 0, 0 0);
}

.descriptions__body {
  border: 2px solid #4285f4;
}

.descriptions__panel {
  display: none;
}
.descriptions__panel.active {
  display: block;
}

.descriptions__panel .panel__title {
  margin-top: 37px;
  padding-bottom: 8px;
  color: #019ce0;
  font-size: 1.3125rem;
  font-weight: 700;
  line-height: 53px;
  position: relative;
}
.descriptions__panel .panel__title::before {
  position: absolute;
  content: "";
  background: transparent url(../img/descriptions_ribbon.svg) no-repeat center center/contain;
  width: 211px;
  height: 53px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: -10;
}
.descriptions__panel .panel__title::after {
  position: absolute;
  content: "";
  background: #d7f0ff;
  width: 100%;
  height: 100%;
  top: 20px;
  left: 50%;
  transform: translateX(-50%);
  z-index: -20;
}
.descriptions__panel .panel__points {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  background: #d7f0ff;
  padding-top: 18px;
  padding-inline: 1%;
}
.descriptions__panel .panel__points:has(:nth-child(3):last-child) .panel__point:first-child {
  flex-basis: 51%;
}
.descriptions__panel .panel__point {
  width: 144px;
}
.descriptions__panel .panel__pointCopy {
  color: #fff;
  background: #015bb3;
  font-size: 11px;
  font-weight: 700;
  text-align: left;
  padding-left: 24px;
  padding-block: 8px;
  position: relative;
}
.descriptions__panel .panel__pointCopy::before {
  position: absolute;
  content: "";
  width: 13px;
  height: 13px;
  top: 50%;
  left: 3px;
  transform: translateY(-50%);
  background: transparent url(../img/descriptions_check.svg) no-repeat center center/contain;
}
.descriptions__panel .panel__pointImage {
  max-width: 88%;
  margin-inline: auto;
}

.panel__picture {
  margin-inline: auto;
  padding-block: 20px 36px;
  background: #d7f5ff;
  position: relative;
}
.panel__picture img {
  width: 230px;
}
.panel__picture::after {
  position: absolute;
  content: "";
  width: 26px;
  height: 17px;
  bottom: -8.5px;
  left: 50%;
  transform: translateX(-50%);
  background: transparent url(../img/descriptions_arrow.svg) no-repeat center center/contain;
}

.panel__foot {
  padding: 30px 25px 20px;
}

.ribbon-blue {
  color: #fff;
  letter-spacing: 0.44px;
  background: #005ab2;
  position: relative;
  margin-left: -10px;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  height: 24px;
  line-height: 24px;
}
.ribbon-blue > h4 {
  text-align: left;
  padding-inline: 10px;
  font-size: 0.6875rem;
}
.ribbon-blue::before {
  position: absolute;
  content: "";
  top: 100%;
  left: 0;
  border: none;
  border-bottom: solid 8px transparent;
  border-right: solid 10px #6288ae;
}
.ribbon-blue::after {
  position: absolute;
  content: "";
  z-index: 1;
  top: 0;
  right: -9px;
  width: 0px;
  height: 0px;
  border-width: 12px 10px 12px 0px;
  border-color: #005ab2 transparent;
  border-style: solid;
}

.panel__features {
  margin-top: -12px;
  padding: 28px 20px 20px;
  border-radius: 5px;
  background: #f3f3f3;
  box-shadow: 0px 3px 3px -1px rgba(0, 0, 0, 0.17);
}

.panel__feature {
  text-align: left;
  font-size: 0.875rem;
  padding: 5px 10px;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
.panel__feature:not(:first-child) {
  margin-top: 8px;
}

.panel__feature--blue,
.panel__feature--pink {
  border-radius: 3px;
}

.panel__feature--blue {
  background: #d3edfa;
}

.panel__feature--pink {
  background: #fdebee;
}

/*----------------------------------------
  recommendation
----------------------------------------*/
.recommendation {
  margin-top: 30px;
}

.recommendation__titleWrapper {
  display: flex;
  flex-direction: row-reverse;
  justify-content: center;
  align-items: center;
}

.recommendation__titleHead {
  font-size: 1.25rem;
}

.recommendation__title {
  color: #279be6;
  font-size: 2.125rem;
  font-weight: 700;
  line-height: 34px;
  margin-top: 10px;
}

.recommendation__titleFoot {
  font-size: 1.0625rem;
  margin-top: 6px;
}

.recommendation__titleArrow {
  margin-inline: auto;
  width: 31px;
  height: 20px;
}

.recommendation__titleImage {
  width: 62px;
}

.recommendation__list {
  margin-top: 10px;
}

.recommendation__item {
  max-width: 500px;
  margin-inline: auto;
  border-radius: 10px 10px 7px;
  border: 2px solid #279be6;
  border-top: none;
  padding-bottom: 30px;
}
.recommendation__item:not(:first-child) {
  margin-top: 22px;
}

.recommendation__name {
  color: #fff;
  font-size: 1.5rem;
  font-weight: 700;
  white-space: nowrap;
  padding: 22px 2px 15px 42px;
  background: #279be6;
  border-radius: 7px 7px 0px 0px;
  position: relative;
}
.recommendation__name > span {
  position: absolute;
  width: 35px;
  height: 48px;
  top: 50%;
  transform: translateY(-50%);
  left: 8px;
}

.recommendation__name--small {
  font-size: 1.375rem;
}
@media not screen and (min-width: 375px) {
  .recommendation__name--small {
    font-size: 1.1875rem;
  }
}

.recommendation__headBalloon {
  position: relative;
  display: inline-block;
  padding: 7px;
  max-width: 100%;
  border-radius: 37px;
  border: 1px solid #019ce0;
  margin-block: 10px 12px;
}
.recommendation__headBalloon::before {
  content: "";
  position: absolute;
  bottom: -17px;
  left: 50%;
  margin-left: -15px;
  border: 10px solid transparent;
  border-top: 8px solid #fff;
  z-index: 2;
}
.recommendation__headBalloon::after {
  content: "";
  position: absolute;
  bottom: -18px;
  left: 50%;
  margin-left: -15px;
  border: 10px solid transparent;
  border-top: 8px solid #019ce0;
  z-index: 1;
}

.recommendation__headLead {
  color: #019ce0;
  font-size: 0.6875rem;
  font-weight: 700;
}

.recommendation__head {
  margin-top: 20px;
  width: calc(100% - 48px);
  margin-inline: auto;
  color: #f00;
  font-size: 0.9375rem;
  font-weight: 700;
  text-align: left;
  padding: 10px 5.7142857143%;
  background: #fef5e0;
}

.recommendation__headBalloon:has(+ .recommendation__head) + .recommendation__head {
  margin-top: 0;
}

.ribbon-pink {
  color: #fff;
  background: #ff7864;
  position: relative;
  margin-left: -8px;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  height: 24px;
  line-height: 24px;
  margin-top: 15px;
}
.ribbon-pink > p {
  text-align: left;
  padding-inline: 18px 10px;
  font-family: "M PLUS 2", sans-serif;
  font-size: 0.8125rem;
  font-weight: 700;
}
.ribbon-pink::before {
  position: absolute;
  content: "";
  top: 100%;
  left: 0;
  border: none;
  border-bottom: solid 8px transparent;
  border-right: solid 18px #c34223;
}
.ribbon-pink::after {
  position: absolute;
  content: "";
  z-index: 1;
  top: 0;
  right: -9px;
  width: 0px;
  height: 0px;
  border-width: 12px 10px 12px 0px;
  border-color: #ff7864 transparent;
  border-style: solid;
}

.recommendation__banner {
  width: calc(100% - 20px);
  margin-inline: auto;
  margin-top: 20px;
}

.ribbon-pink:has(+ .recommendation__banner) + .recommendation__banner {
  margin-top: -12px;
}

.recommendation__table {
  width: min(304px, 98%);
  border: 1px solid #8fb9fe;
  margin: 15px auto 0;
  font-size: 0.625rem;
}
.recommendation__table tr {
  height: 30px;
}
.recommendation__table th {
  width: 96px;
  border: 1px solid #8fb9fe;
  background: #d3edfa;
  vertical-align: middle;
  text-align: center;
  font-weight: 400;
}
.recommendation__table td {
  border: 1px solid #8fb9fe;
  vertical-align: middle;
  text-align: left;
  padding: 8px;
  font-weight: 700;
}

.recommendation__pointsWrapper {
  margin-top: 14px;
  margin-inline: auto;
  width: calc(100% - 16px);
}
.recommendation__pointsWrapper .tag-yellow {
  font-size: 0.625rem;
  font-weight: 500;
  padding-left: 10px;
  text-align: left;
  line-height: 27px;
  position: relative;
  z-index: 10;
}
.recommendation__pointsWrapper .tag-yellow::after {
  position: absolute;
  content: "";
  background: transparent url(../img/recommendation_tag.svg) no-repeat center center/contain;
  width: 110px;
  height: 30px;
  top: 0;
  left: 0;
  z-index: -10;
}

.recommendation__points {
  margin-top: -4px;
  padding: 11px 4px 17px 20px;
  background: #d3edfa;
  font-size: 0.8125rem;
  text-align: left;
}

.recommendation__point {
  position: relative;
}
.recommendation__point:not(:first-child) {
  margin-top: 15px;
}
.recommendation__point::before {
  position: absolute;
  content: "";
  top: 3px;
  left: -15px;
  width: 12px;
  height: 12px;
  background: transparent url(../img/recommendation_check.svg) no-repeat center center/contain;
}

.recommendation__shopsWrapper {
  margin-top: 11px;
  padding-inline: 6.1538461538%;
}

.recommendation__shopsHead {
  font-size: 0.9375rem;
  font-weight: 600;
}

.recommendation__shopsBody {
  margin-top: 8px;
}

.recommendation__areaTitle {
  text-align: left;
}
.recommendation__areaTitle:not(:first-child) {
  margin-top: 14px;
}
.pulldown-header {
  padding-bottom: 5px;
  border-bottom: 1px solid #000;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.pulldown-icon {
  display: inline-block;
  width: 13px;
  margin-right: 8px;
  transition: transform 0.3s ease;
  cursor: pointer;
}

.open .pulldown-icon {
  transform: rotate(180deg);
}

.recommendation__areaList.pulldown-content {
  display: none;
}

.shopInfos {
  display: flex;
  justify-content: space-between;
  align-items: end;
  padding-block: 15px;
  border-bottom: 1px solid #dce7ec;
}

.shopInfos__text dt {
  font-size: 0.875rem;
  font-weight: 700;
}
.shopInfos__text dd {
  font-size: 0.8125rem;
  margin-top: 5px;
}

.shopInfos__link {
  width: 75px;
  flex-shrink: 0;
  position: relative;
  overflow: hidden;
}
.shopInfos__link::before {
  position: absolute;
  content: "";
  top: -50px;
  left: 0;
  width: 15px;
  height: 100%;
  background-color: #ffffff;
  transition: 300ms;
  -webkit-animation: shinyshiny 2.5s ease-in-out infinite;
          animation: shinyshiny 2.5s ease-in-out infinite;
}
.shopInfos__link a {
  display: block;
  font-size: 0.6875rem;
  color: #fff;
  padding: 7px 10px;
  background: #d41944;
  margin-top: auto;
}
.shopInfos__link a:hover {
  opacity: 0.6;
}

.campaignWrapper {
  padding-inline: 2.8571428571%;
  margin-top: 20px;
}

.campaignHead {
  color: #fff;
  font-size: 0.875rem;
  font-weight: 700;
  border-radius: 22px;
  background: #f10033;
  padding: 2px 30px 3px;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  position: relative;
}
.campaignHead::before, .campaignHead::after {
  position: absolute;
  content: "";
  width: 17px;
  height: 15px;
  top: 50%;
  transform: translateY(-50%);
}
.campaignHead::before {
  background: transparent url(../img/campaign_stars_left.svg) no-repeat center center/contain;
  left: 8px;
}
.campaignHead::after {
  background: transparent url(../img/campaign_stars_right.svg) no-repeat center center/contain;
  right: 8px;
}

.campaignLead {
  margin-top: 5px;
  font-size: 0.875rem;
}

.campaignCopy {
  font-size: 0.8125rem;
  margin-top: 10px;
  text-align: left;
}

.campaignCoupon {
  margin-top: 10px;
}
.campaignCoupon a:hover {
  opacity: 0.6;
  cursor: pointer;
}
.campaignCoupon > span {
  text-align: right;
  font-size: 0.4375rem;
  display: block;
  margin-top: 1px;
  text-align: right;
}

.recommendation_memoWrapper {
  margin-top: 33px;
  text-align: left;
  padding-inline: 2.5641025641%;
}

.recommendation_memoInner {
  padding-inline: 2.5641025641%;
}

.stripe {
  background: #fff;
  padding: 14px 10px 18px;
  width: 100%;
  height: 100%;
  position: relative;
}
.stripe::after {
  position: absolute;
  content: "";
  top: -8px;
  bottom: -8px;
  left: -8px;
  right: -8px;
  background: repeating-linear-gradient(-45deg, #d3edfa, #d3edfa 4px, white 4px, white 8px);
  z-index: -10;
}

.recommendation_memoTitle {
  font-size: 0.875rem;
  font-weight: 700;
  color: #019ce0;
  padding-left: 20px;
  position: relative;
}
.recommendation_memoTitle::before {
  position: absolute;
  content: "";
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 18px;
  height: 18px;
  background: transparent url(../img/recommendation_pen.svg) no-repeat center center/contain;
}

.recommendation_memoBody {
  margin-top: 7px;
  font-size: 0.8125rem;
}

/*----------------------------------------
  review
----------------------------------------*/
.review {
  background: #279be6;
  margin-top: 25px;
  padding-block: 30px;
}

.review__titleSub {
  font-size: 1.125rem;
}
@media not screen and (min-width: 375px) {
  .review__titleSub {
    font-size: 1rem;
  }
}

.review__title {
  color: #ffe9b5;
  font-size: 1.8125rem;
  position: relative;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
}
.review__title::after {
  position: absolute;
  content: "";
  background: transparent url(../img/review_balloon.png) no-repeat center center/contain;
  width: 49px;
  height: 42px;
  right: -52px;
  bottom: 4px;
}

.review__head {
  margin-top: 17px;
}

.review__headIntro {
  color: #fff;
  font-size: 0.8125rem;
  font-weight: 700;
  text-align: left;
}

.review__headChart {
  margin-top: 11px;
  max-width: 100%;
}
.review__headChart span {
  margin-top: 3px;
  display: block;
  color: #fff;
  font-size: 0.4375rem;
  text-align: right;
}

.review__headBalloon {
  margin-top: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.review__balloonImage {
  width: 19.7435897436%;
}

.review__balloonText {
  font-size: 0.875rem;
  text-align: left;
  padding: 18px 8px 18px 16px;
  background: #fff;
  border-radius: 12px;
  position: relative;
}
.review__balloonText::before {
  position: absolute;
  content: "";
  top: 32%;
  left: -20px;
  border: 8px solid transparent;
  border-right: 12px solid #fff;
}

.review__body {
  margin-top: 16px;
}

.review__voiceIntro {
  color: #fff;
  font-size: 0.8125rem;
  font-weight: 700;
  text-align: left;
}
.review__voiceIntro p:not(:first-child) {
  margin-top: 20px;
}

.review__voiceList {
  margin-top: 12px;
}

.review__voiceItem {
  text-align: left;
  background: #fff;
  padding: 2.5641025641% 2.0512820513%;
  position: relative;
}
.review__voiceItem::after {
  position: absolute;
  content: "";
  right: 0px;
  top: 0px;
  border-style: solid;
  border-width: 0 25px 30px 0;
  border-color: #fff #279be6 #fff #fff;
}
.review__voiceItem:not(:first-child) {
  margin-top: 18px;
}

.voice__head {
  display: flex;
  align-items: center;
  gap: 2.5641025641%;
  padding-bottom: 10px;
  border-bottom: 1px solid #94cef2;
}

.voice__headImage {
  width: 17.9487179487%;
}

.voice__title {
  color: #019ce0;
  font-size: 0.875rem;
  font-weight: 700;
  padding-right: 50px;
}

.voice__profile {
  margin-top: 8px;
  font-size: 0.625rem;
  font-weight: 700;
}

.voice__periode {
  margin-top: 2px;
  font-size: 0.625rem;
}

.voice__body {
  margin-top: 10px;
  font-size: 0.875rem;
}
.voice__body p:not(:first-child) {
  margin-top: 24px;
}

/*----------------------------------------
  best3
----------------------------------------*/
.best3 {
  padding-block: 30px 15px;
}

.best3__titleWrapper {
  color: #019ce0;
  font-weight: 700;
  padding-block: 18px 13px;
  border: 2px solid #94cef2;
  position: relative;
}
.best3__titleWrapper::before {
  content: "";
  position: absolute;
  bottom: -22px;
  left: 50%;
  margin-left: -15px;
  border: 12px solid transparent;
  border-top: 10px solid #fff;
  z-index: 2;
}
.best3__titleWrapper::after {
  content: "";
  position: absolute;
  bottom: -24px;
  left: 50%;
  margin-left: -15px;
  border: 12px solid transparent;
  border-top: 10px solid #94cef2;
  z-index: 1;
}
.best3__titleWrapper span {
  font-size: 1.3125rem;
}

.best3__title {
  display: inline-block;
  margin-top: 2px;
  font-size: 1.6875rem;
  position: relative;
}
@media not screen and (min-width: 375px) {
  .best3__title {
    font-size: 1.4375rem;
  }
}
.best3__title::before {
  position: absolute;
  content: "";
  width: 30px;
  height: 37px;
  bottom: -2px;
  left: -26px;
  background: transparent url(../img/best3_hand.svg) no-repeat center center/contain;
}

.best3__list {
  margin-top: 20px;
}

.best3__item {
  background: rgba(131, 201, 232, 0.32);
  box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.16);
  padding-bottom: 25px;
}
.best3__item:not(:first-child) {
  margin-top: 50px;
}

.best3__itemTitleWrapper {
  background: #279be6;
  padding: 15px 6.4102564103%;
  display: flex;
  align-items: center;
  gap: 8px;
}

.best3__titleImage {
  width: 8.9743589744%;
}

.best3__titleText {
  text-align: left;
}
.best3__titleText span {
  font-size: 0.8125rem;
  color: #fff;
  font-weight: 700;
}

.best3__itemTitle {
  color: #ffee40;
  font-size: 1.3125rem;
  font-weight: 700;
  margin-top: 4px;
}

.best3__balloon {
  margin-top: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
}

.best3__balloonImage {
  width: 19.7435897436%;
}

.best3__balloonText {
  font-size: 0.875rem;
  text-align: left;
  padding: 18px 8px 18px 16px;
  background: #fff;
  border-radius: 12px;
  width: 61.5384615385%;
  position: relative;
}
.best3__balloonText::before {
  position: absolute;
  content: "";
  top: 32%;
  left: -20px;
  border: 8px solid transparent;
  border-right: 12px solid #fff;
}

.best3__balloonText.-comment::after {
  position: absolute;
  content: "*都内のトランクルームの同じ容量で比較";
  width: 100%;
  height: 10px;
  font-size: 0.3125rem;
  bottom: -12px;
  left: 16px;
}

.best3__banner {
  margin-top: 22px;
  margin-inline: auto;
  width: 67.9487179487%;
}

.best3__itemFoot {
  margin-top: 15px;
}

/* 比較表のセル背景色の設定 */
.comparison__table th.table-service.bg-grey,
.comparison__table td.bg-grey {
    background-color: #f3f3f3 !important;
    border: 1px solid #b9b9b9 !important;
    position: relative;
    z-index: 1;
}

/* スペースプラスの列全体に背景色を適用 */
.comparison__table th.table-service[alt*="スペースプラス"],
.comparison__table th.table-service[alt*="スペースプラス"] ~ td {
  background: #f3f3f3;
}

/* 追加：通常セルのbg-creamクラスの背景色設定 */
.comparison__table td.bg-cream {
  background: #fffcf6;
}

/* スクロールバーのカスタマイズ */
.comparison__tables::-webkit-scrollbar {
  height: 8px;
}

.comparison__tables::-webkit-scrollbar-track {
  background: #f1f1f1;
  border-radius: 4px;
}

.comparison__tables::-webkit-scrollbar-thumb {
  background: #888;
  border-radius: 4px;
}

.comparison__tables::-webkit-scrollbar-thumb:hover {
  background: #555;
}

/* スマートフォン用のレスポンシブ対応 */
@media screen and (max-width: 767px) {
  .comparison__tableWrapper {
    margin-left: 0;
    padding: 0 10px;
  }

  .comparison__tables {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 8px;
  }

  .comparison__table {
    min-width: auto;
    width: 100%;
  }

  .comparison__table th,
  .comparison__table td {
    padding: 8px 5px;
    font-size: 0.875rem;
  }

  /* 宅配型テーブル（2列）のレスポンシブ */
  .comparison__table:first-of-type {
    min-width: 100%;  /* 2列の場合は画面幅に合わせる */
  }

  /* コンテナ型テーブル（4列）のレスポンシブ */
  .comparison__table:last-of-type {
    min-width: 600px;  /* 横スクロール用の最小幅 */
  }

  .comparison__table th.table-title {
    width: 100px;  /* スマホでの項目列幅を調整 */
    font-size: 0.875rem;  /* 文字サイズを少し小さく */
  }

  .comparison__table th.table-service {
    width: 120px;  /* スマホでのサービス列幅を調整 */
  }

  /* スクロール可能なことを示すインジケータ */
  .comparison__tables::after {
    content: "";
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    width: 20px;
    background: linear-gradient(to right, transparent, rgba(255,255,255,0.8));
    pointer-events: none;
  }
}

/* 罫線の補強 */
.comparison__table td.bg-grey::after {
    content: '';
    position: absolute;
    top: -1px;
    left: -1px;
    right: -1px;
    bottom: -1px;
    border: 1px solid #b9b9b9;
    pointer-events: none;
}