@charset "UTF-8";
/* CSS Document */

/*-------------------------- PC、SP共通--------------------------*/
#apass-mv {
  background: #ebf4fe;
  padding: 60px 20px;
  text-align: center;
}
.mv-title {
	font-weight: bold;
	text-align: center;
}
.mv-catch {
	display: inline-block;
	font-weight: bold;
	margin-bottom: 12px;
	background: linear-gradient(transparent 65%, #fff45a 65%);
	padding: 0 6px;
}
.mv-main {
	display: block;
	font-weight: bold;
	line-height: 1.4;
}
.pass-icons {
	display: flex;
	justify-content: center;
	gap: 24px;
	margin-bottom: 24px;
}
.mv-discount {
	font-weight: bold;
}
.mv-discount span {
	color: #c31050;
	font-weight: bold;
}
.mv-text {
	text-align: left;
	background: #fff;
	border-radius: 16px;
}
.section-title {
	text-align: center;
}
.section-title h2 {
	display: inline-block;
	font-weight: bold;
	text-align: center;
	padding: .4em .7em;
    border: 3px solid #452d1c;
    box-shadow: 6px 6px #01a0f5,-6px -6px #7fccf5;
}
.section-title h2 span {
	display: block;
	font-weight: bold;
	margin-top: 5px;
}

#apass-wrap {
    background: linear-gradient(to bottom right, #bbd6f4, #e8ecf0);
    background-attachment: fixed;
}
.apass-section {
	background: #fff;
	width: 1000px;
    padding: 50px 25px;
    margin: 0 auto;
	border-radius: 20px;
}
.points-list .point-card {
	background: #f8f9fa;
	position: relative;
 	overflow: visible;
	border-radius: 16px;
	box-shadow: 5px 5px 5px 0px rgba(0, 0, 0, 0.1);
	min-width: 0;
}
.point-card .point-label {
	grid-area: label;
	display: inline-block;
	font-size: 20px;
	font-weight: bold;
	letter-spacing: 0.08em;
	color: #2f86e5;
	align-self: center;
	margin-bottom: 25px;
}
.point-card .point-icon {
	position: absolute;
	overflow: visible;
	top: 16px;
	right: 16px;
	width: 50px;
	height: 50px;
	border-radius: 50%;

	display: grid;
	place-items: center;

	grid-area: unset;
}
.point-card h3 {
	grid-area: title;
	margin: 0;
	font-size: 20px;
	font-weight: bold;
	line-height: 1.5;
	color: #003366;
	margin-bottom: 10px;
}
.point-card p {
	grid-area: text;
	margin: 0;
	font-size: 18px;
	line-height: 1.7;
	color: #333;
}
.apass-section > #pass-list > li {
	background: #f8f9fa;
	border-radius: 16px;
	box-shadow: 5px 5px 5px 0px rgba(0, 0, 0, 0.1);
}
#pass-plans h3 {
	color: #003366;
	font-weight: bold;
	text-align: center;
}
#canon-pass {
	border-top: 16px solid #cc0000;
}
#sony-pass {
	border-top: 16px solid #000000;
}
#nikon-pass {
	border-top: 16px solid #ffe100;
}
#fuji-pass {
	border-top: 16px solid #009944;
}
#pass-plans h4 {
	color: #003366;
	font-weight: bold;
	text-align: center;
}
#pass-plans h5 {
	color: #003366;
	font-weight: bold;
	margin-bottom: 7px;
}
#pass-list ul {
	margin-bottom: 8px;
}
#pass-plans ul li {
	margin-bottom: 5px;
}
.brand-icon {
	text-align: center;
	margin-bottom: 5px;
}
.brand-icon img {
}
.pass-items-link {
	text-align: center;
}
.pass-icon-note {
	text-align: center;
}
.mount-icon {
	text-align: center;
}
#pass-note {
	text-align: center;
	font-weight: bold;
}
.pricing-card {
	background: #f8f9fa;
	border-radius: 16px;
	padding: 24px;
	box-shadow: 5px 5px 5px 0px rgba(0, 0, 0, 0.1);
	border-top: #2f86e5 16px solid;
}
.pricing-discount {
	text-align: center;
	font-size: 20px;
	line-height: 1.4;
	margin-bottom: 20px;
}
.pricing-discount span {
	font-weight: bold;
	font-size: 24px;
	display: block;
}
.pricing-price {
	font-weight: bold;
	text-align: center;
	font-size: 52px;
	padding-bottom: 20px;
	border-bottom: 1px solid #003366;
	margin-bottom: 20px;
}
.pricing-price span {
	font-size: 18px;
	font-weight: bold;
}
.pricing-card dl dt {
	color: #003366;
	font-weight: bold;
	margin-bottom: 5px;
}
.pricing-card dl dd {
	font-size: 20px;
	margin-bottom: 23px;
}
#release-campaign p:first-child {
	margin-bottom: 20px;
}
#release-campaign p:nth-child(2) {
	font-size: 18px;
	line-height: 1.8;
}
.definition-list dt {
	background: url(image/ss_list_icon.svg) no-repeat center left;
	font-size: 20px;
	padding-left: 30px;
    margin-bottom: 10px;
	font-weight: bold;
    line-height: 1.8;
}
.definition-list dd {
	font-size: 18px;
	padding-left: 30px;
    margin-bottom: 30px;
    line-height: 1.6;
}
#apass-flow li {
	position: relative;
	padding: 24px;
	background: #f8f9fa;
	border-radius: 12px;
	box-shadow: 5px 5px 5px 0px rgba(0, 0, 0, 0.1);
}
#apass-flow li > p:first-child {
	font-weight: bold;
	color: #2f86e5;
	margin-bottom: 8px;
	text-align: center;
}
#apass-flow h3 {
	color: #003366;
	margin-bottom: 12px;
	font-weight: bold;
	text-align: center;
}
#apass-flow li > p:last-child {
	line-height: 1.6;
}
.mv-cta {
	text-align: center;
}
/* ボタン本体 */
.cta-button {
  display: inline-block;
  padding: 30px 100px;
  font-size: 40px;
  font-weight: 700;
  color: #fff;
  background: linear-gradient(135deg, #2f8cff, #1f6fd6);
  border-radius: 999px;
  text-decoration: none;
  box-shadow:
    0 8px 0 #155bb5,
    0 14px 24px rgba(0,0,0,0.15);
  transition: all 0.2s ease;
}

/* hover */
.cta-button:hover {
	transform: translateY(2px);
	box-shadow:
	0 6px 0 #155bb5,
	0 10px 16px rgba(0,0,0,0.18);
	text-decoration: none;
	color: #fff;
	background: linear-gradient(135deg, #4c9cff, #2a7ce6);
}

/* active（押し込み） */
.cta-button:active {
	transform: translateY(6px);
	box-shadow:
	0 2px 0 #155bb5,
	0 6px 10px rgba(0,0,0,0.2);
}








/*-------------------------- SP用スタイル --------------------------*/
@media only screen and (max-width: 999px) {

  /* ---------- 全体 ---------- */
  body {
    font-size: 16px;
  }

  #apass-wrap {
    padding: 40px 0;
  }

  .apass-section {
    width: auto;
    margin: 0 16px 40px;
    padding: 32px 16px;
    border-radius: 16px;
  }

  /* ---------- MV ---------- */
  #apass-mv {
    padding: 40px 16px;
  }

  .mv-title {
    font-size: 24px;
    line-height: 1.5;
    margin-bottom: 24px;
  }

  .mv-catch {
    font-size: 20px;
    margin-bottom: 8px;
  }

  .mv-main {
    font-size: 24px;
    margin-bottom: 20px;
  }

  .mv-title img {
    width: 220px;
    height: auto;
  }

  .mv-lead {
    font-size: 20px;
	  font-weight: bold;
	  line-height: 1.4;
    margin-bottom: 20px;
  }

  .pass-icons {
    flex-wrap: wrap;
    gap: 0;
    margin-bottom: 20px;
  }

  .pass-icons img {
    width: 80px;
  }

  .mv-discount {
    font-size: 20px;
    margin-bottom: 20px;
  }

  .mv-discount span {
    font-size: 24px;
  }

  .mv-text {
    font-size: 16px;
    line-height: 1.8;
    padding: 20px;
  }

  /* ---------- セクションタイトル ---------- */
  .section-title h2 {
    font-size: 24px;
    margin-bottom: 32px;
    box-shadow: 4px 4px #01a0f5, -4px -4px #7fccf5;
  }

  .section-title h2 span {
    font-size: 14px;
  }

  /* ---------- 5つのポイント ---------- */
  .points-list {
    display: block;
  }

  .point-card {
    padding: 20px;
    margin-bottom: 20px;
  }

  .point-card h3 {
    font-size: 18px;
  }

  .point-card p {
    font-size: 16px;
  }

  .point-card .point-icon {
    width: 40px;
    height: 40px;
    top: 12px;
    right: 12px;
  }

  /* ---------- PASS一覧 ---------- */
#pass-plans h5 {
	text-align: center;
		margin-bottom: 10px;
}
  #pass-list {
    display: block;
    padding: 0;
    margin: 15px 0;
  }

  #pass-list ul li {
    padding: 0px;
	  margin-bottom: 8px;
  }
	.mount-icon {
		margin: 12px 0;
	}
  #pass-plans h3 {
    font-size: 22px;
    margin: 0 0 16px;
  }

  #pass-plans h4 {
    font-size: 20px;
  }

  .mount-icon img {
    width: 120px;
  }
#canon-pass,#sony-pass,#nikon-pass,#fuji-pass {
	padding: 20px 15px;
	width: 90%;
	margin: 0 auto 30px!important;
	}
	.pass-items-link {
		margin: 10px 0 20px;
	}
	.brand-icon img {
		width: 80px;
	}
	#pass-note {
		margin-bottom: 50px;
	}
  /* ---------- 料金プラン ---------- */
  .pricing-list {
    display: block;
    padding: 0;
    margin: 24px 0;
  }

  .pricing-card {
    margin-bottom: 24px;
  }

  .pricing-price {
    font-size: 36px;
  }
	.pricing-list li {
		margin-bottom: 30px!important;
	}

  /* ---------- キャンペーン ---------- */
  #release-campaign img {
    width: 100%;
    height: auto;
  }

  #release-campaign p:nth-child(2) {
    font-size: 14px;
  }

  /* ---------- 料金イメージ ---------- */
  #pricing-example img {
    width: 100%;
    height: auto;
  }

  #pricing-example p {
    font-size: 16px;
	  line-height: 1.7;
  }

  /* ---------- サービス内容 / FAQ ---------- */
  .definition-list dt {
    font-size: 16px;
	  margin-bottom: 5px;
  }

  .definition-list dd {
    font-size: 16px;
    margin-bottom: 24px;
  }

  /* ---------- ご利用の流れ ---------- */
  #apass-flow ul {
    display: block;
    padding: 0;
  }

  #apass-flow li {
    margin-bottom: 24px;
  }

  /* ---------- CTA ---------- */
  .cta-button {
    padding: 18px 48px;
    font-size: 20px;
  }
}














/*--------------------------PC用スタイル--------------------------*/
@media print, screen and (min-width:1000px) {
	.mv-title {
		font-size: 50px;
		line-height: 1.4;
		margin-bottom: 32px;
	}
	.mv-catch {
		font-size: 50px;
	}
	.mv-main {
		font-size: 50px;
		margin-bottom: 30px;
	}
	.mv-title img {
	}
	.mv-lead {
		font-weight: bold;
		margin-bottom: 30px;
		font-size: 24px;
	}
	.pass-icons img {
		width: 120px;
	}
	.mv-discount {
		font-size: 42px;
		margin-bottom: 50px;
	}
	.mv-discount span {
		font-size: 48px;
	}
	.mv-text {
		max-width: 800px;
		margin: 0 auto;
		font-size: 18px;
		line-height: 1.8;
		padding: 30px;
	}
	#apass-wrap {
		padding: 100px 0;
	}
	.apass-section {
		margin-bottom: 80px;
	}
	.section-title h2 {
		font-size: 42px;
		margin-bottom: 50px;
	}
	.points-list {
		display: grid;
  		grid-template-columns: repeat(6, 1fr);
  		gap: 24px;
	}
	.point-card {
		grid-column: span 2;
		padding: 24px;
		
	}
	.point-card:nth-child(1) {
		grid-column: 2 / span 2;
	}

	.point-card:nth-child(2) {
		grid-column: 4 / span 2;
	}
	.apass-section > #pass-list {
		display: grid;
		grid-template-columns: repeat(4, 1fr);
		gap: 24px;
		list-style: none;
		padding: 0 12px;
		margin: 40px 0 20px 0;
	}
	.apass-section > #pass-list > li {
		padding: 15px;
	}
	#pass-plans h3 {
		font-size: 30px;
	}
	#pass-plans h4 {
		font-size: 28px;
		margin-bottom: 20px;
	}
    .brand-icon img {
		width: 60px;
		height: 31px;
	}
	.pass-items-link {
		margin-bottom: 15px;
	}
	.pass-icon-note {
		font-size: 14px;
	}
	.mount-icon {
		margin-bottom: 15px;
	}
	.mount-icon img {
		width: 60%;
	}
	#pass-note {
		font-weight: 22px;
		margin-bottom: 50px;
	}
	.pricing-list {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 24px;
		max-width: 800px;
		margin: 40px auto 70px;
		padding: 0;
		list-style: none;
	}
	#pricing-example p:nth-child(2) {
		margin-bottom: 20px;
	}
	#pricing-example p:nth-child(3) {
		font-size: 20px;
		font-weight: bold;
		line-height: 1.8;
		padding: 0 70px;
	}
	#pricing-example p:nth-child(4) {
		font-weight: bold;
		padding: 0 70px;
	}
	.definition-list {
		padding: 0 50px;
	}
	#apass-flow ul {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 32px;
		list-style: none;
		padding: 0;
	}
	#apass-flow h3 {
		font-size: 20px;
	}
	v
		margin: 100px 0;
	}
	
	
	
	
	
	
	
	
	
	
	
	
	
}