@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap');

/* reset */
.c-basic-content {
  width: 100%;
  line-height: inherit;
  padding-top: 0;
}
.c-basic-content h2,
.c-basic-content h3,
.c-basic-content h4 {
  background: none;
  border: none;
	color: inherit;
	font-size: inherit;
	font-weight: normal;
  margin: 0;
  padding: 0;
}
.c-basic-content table {
  margin: 0;
}
.c-basic-content table tbody th,
.c-basic-content table tbody td {
  border: none;
  text-align: inherit;
  font-weight: normal;
  padding: 0;
}
.c-basic-content p,
.c-basic-content ul,
.c-basic-content ul li,
.c-basic-content dl {
  margin: 0;
}
.c-basic-content figure {
	margin: 0;
}
.c-basic-content figure figcaption {
	font-weight: normal;
	margin: 0;
}
.page-top {
	z-index: 10;
}

#ivy-photo {
  font-family: "Roboto", "Noto Sans JP", sans-serif;
  font-size: 16px;
	font-weight: 400;
	line-height: 1.8;
  position: relative;
}
#ivy-photo .list > li {
  position: relative;
  padding-left: 1.3em;
}
#ivy-photo .list > li::before,
#ivy-photo .list > li > .num {
  position: absolute;
  top: 0;
  left: 0;
}
#ivy-photo .list.kome > li::before {
  content: "※";
}
#ivy-photo .list.smldot > li::before {
  content: "・";
}
#ivy-photo .list.dot > li::before {
  content: "";
	width: .85em;
	height: .85em;
	background: #0c56a5;
	border-radius: 50%;
	top: .35em;
}
#ivy-photo .list.knum > li {
  padding-left: 2.5em;
}
#ivy-photo .list.knum > li::before {
  content: "（"counter(list-item)"）";
}
#ivy-photo .list.fs_small {
	line-height: 1.6;
}
#ivy-photo .red {color: #d83a2e;}
#ivy-photo .fs_small {font-size: 90%;}
#ivy-photo .em {font-weight: 600;}
#ivy-photo .mt025 {margin-top: .25em;}
#ivy-photo .mt05 {margin-top: .5em;}
#ivy-photo .mt10 {margin-top: 1em;}

/* hero */
#ivy-photo .hero {
  width: 100%;
  max-width: 1000px;
  height: 650px;
  background: url("../img/bg_main.jpg") no-repeat right top / auto 100%;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}
#ivy-photo .hero::after {
  content: "";
  width: 100%;
  height: 100%;
  background: url("../img/bg_frame.png") no-repeat center center / 100% auto;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
}
#ivy-photo .hero_inner {
  width: 43%;
  height: 100%;
  display: flex;
  flex-flow: column nowrap;
  justify-content: center;
  align-items: center;
  text-align: center;
}
#ivy-photo .hero_ivy {
  display: none;
}
#ivy-photo .hero_leaf {
  position: absolute;
  top: 0;
  left: 0;
	pointer-events: none;
}
#ivy-photo .hero_catch {
  width: 80%;
  margin-bottom: .25em;
}
#ivy-photo .hero_title {
  font-weight: 800;
}
#ivy-photo .hero_title ._mc {
  font-size: 70px;
  letter-spacing: .05em;
  line-height: 1.2;
}
#ivy-photo .hero_title ._mc._g1 {
  color: #69aa4f;
}
#ivy-photo .hero_title ._mc._g2 {
  color: #6aa05e;
}
#ivy-photo .hero_title ._mc._g3 {
  color: #9cb76b;
  font-weight: 400;
}
#ivy-photo .hero_title ._mc._g4 {
  color: #42b4b8;
}
#ivy-photo .hero_title ._mc._g5 {
  color: #5fa15c;
}
#ivy-photo .hero_title ._sc {
  display: block;
  color: #0b3268;
  font-size: 32px;
  letter-spacing: .15em;
  line-height: 1.3;
}
#ivy-photo .hero_lead {
  color: #1066c7;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: .1em;
  line-height: 1.44;
  margin-top: .5em;
}
#ivy-photo .hero_date {
  display: flex;
  flex-flow: column nowrap;
  justify-content: center;
  align-items: center;
  margin-top: 2em;
}
#ivy-photo .hero_date ._tit {
  background: #0069c9;
  border-radius: 999px;
  color: #fff;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: .2em;
  line-height: 1;
  padding: .5em 1.3em .5em 1.5em;
  margin-bottom: .5em;
}
#ivy-photo .hero_date ._year {
  color: #0b3268;
  font-size: 20px;
  font-weight: 800;
  line-height: 1.4;
}
#ivy-photo .hero_date ._year ._lg {
  font-size: 120%;
  font-weight: 700;
}
#ivy-photo .hero_date ._term {
  color: #0b3268;
  font-size: 24px;
  font-weight: 800;
  line-height: 1;
}
#ivy-photo .hero_date ._term ._lg {
  font-size: 180%;
  font-weight: 700;
}
#ivy-photo .hero_date ._term ._yobi {
  display: inline-block;
  width: 1.8em;
  height: 1.8em;
  background: #cae7fa;
  border-radius: 50%;
  font-size: 80%;
  font-weight: 800;
  line-height: 1.8;
  text-align: center;
  vertical-align: text-bottom;
  margin: 0 .15em;
}
#ivy-photo .gift_box {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
	align-items: flex-end;
	row-gap: .25em;
  background: #fef2c4;
  border-radius: .75em;
  text-align: center;
	padding: 0 1em .75em;
  margin-top: 2em;
  position: relative;
}
#ivy-photo .gift_ribbon {
  background: #e04c38;
  color: #fff;
  clip-path: polygon(0 0, 100% 0%, 100% 100%, 50% 75%, 0 100%);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .1em;
  line-height: 1.3;
  padding: .75em .25em 2em;
}
#ivy-photo .gift_ribbon ._lg {
  font-size: 190%;
	font-weight: 600;
  letter-spacing: 0;
  line-height: 1;
  vertical-align: -.03em;
  margin-right: .05em;
}
#ivy-photo .gift_img {
  flex: 0 0 100px;
  margin: 0 .25em 0 .5em;
}
#ivy-photo .gift_tit {
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
}
#ivy-photo .gift_tit ._lg {
  color: #e04c38;
  font-size: 60px;
  font-weight: 700;
  letter-spacing: -.03em;
	line-height: .9;
}
#ivy-photo .gift_tit ._sml {
  display: inline-block;
  color: #e04c38;
  font-size: 30px;
  font-weight: 900;
  vertical-align: .1em;
  margin-left: .1em;
}
#ivy-photo .gift_copy {
	flex: 0 0 100%;
  color: #e04c38;
  font-size: 20px;
  font-weight: 700;
}
#ivy-photo .gift_att {
  flex: 0 0 100%;
  font-size: 14px;
  font-feature-settings: normal;
  text-align: left;
  line-height: 1.4;
  margin-top: 1em;
}
#ivy-photo .gift_box.sec_block {
  background: #fef2c4;
  padding: 0 2em 1.5em;
}

#ivy-photo .entry_btn {
  position: fixed;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  z-index: 1;
}
#ivy-photo .entry_btn a {
  display: inline-block;
  writing-mode: vertical-rl;
  background: #fdd541;
  border-radius: .5em 0 0 .5em;
  box-shadow: 0 6px 6px rgba(0,0,0,.15),
              0 -6px 6px rgba(0,0,0,.15),
              -6px 0 6px rgba(0,0,0,.15);
  color: #0b3268;
  font-size: 20px;
  font-weight: 800;
  font-feature-settings: normal;
  letter-spacing: .15em;
  line-height: 1.3;
  text-decoration: none;
  padding: 1.5em 1.25em 1.5em 1em;
  transition: .5s;
}
#ivy-photo .entry_btn_close {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 32px;
	height: 32px;
	background: #fff;
	border-radius: 999px;
	box-shadow: 0 0 6px rgba(0,0,0,.15);
	color: #0c56a5;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 24px;
	font-weight: 900;
	line-height: 1;
	text-align: center;
	position: absolute;
	top: -15px;
	left: -14px;
	cursor: pointer;
}
#ivy-photo .entry_block {
	padding: 3em 0;
}
#ivy-photo .entry_block .entry_btn {
  position: static;
	transform: translateY(0);
	text-align: center;
}
#ivy-photo .entry_block .entry_btn a {
	writing-mode: initial;
	border-radius: .5em;
	box-shadow: 0 0 10px rgba(0,0,0,.5);
	padding: 1em 1.5em;
}
#ivy-photo .entry_block .entry_btn a ._icon {
	margin: 0 .75em 0 0;
}
#ivy-photo .entry_block .entry_copy {
	color: #0c56a5;
	font-size: 17px;
	font-weight: 600;
	letter-spacing: .1em;
	margin-bottom: .5em;
}
#ivy-photo .entry_block .entry_copy::before,
#ivy-photo .entry_block .entry_copy::after {
	content: "";
	display: inline-block;
	width: 2.5px;
	height: 1.5em;
	background: #0c56a5;
	border-radius: 999px;
	vertical-align: -.35em;
	transform: rotate(-30deg);
	margin-right: .75em;
}
#ivy-photo .entry_block .entry_copy::after {
	transform: rotate(30deg);
	margin: 0 0 0 .5em;
}
#ivy-photo .qrcode_block {
	display: none;
}

/* section */
#ivy-photo .sec_block {
  width: 100%;
  max-width: 1000px;
  background: #f3f9fe;
  border-radius: 1em;
  padding: 1em 2em 1.5em;
  margin: 2em auto 0;
}
#ivy-photo .sec_tit {
  display: flex;
  flex-flow: row nowrap;
  justify-content: flex-start;
  align-items: flex-end;
  color: #0c56a5;
  font-size: 22px;
  font-weight: 700;
  font-feature-settings: normal;
  line-height: 1.4;
  margin-bottom: .75em;
}
#ivy-photo .sec_tit ._icon {
  flex: 0 0 2em;
  margin-right: .5em;
}
#ivy-photo .sec_stit {
	color: #0c56a5;
	font-size: 19px;
	font-weight: 700;
  font-feature-settings: normal;
  line-height: 1.4;
  margin-bottom: .5em;
}
#ivy-photo .sec_flow {
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
}
#ivy-photo .sec_flow > div {
  flex: 0 0 30%;
  background: #fff;
  border-radius: .5em;
  padding: 1em;
  position: relative;
}
#ivy-photo .sec_flow > div + div::before {
  content: "";
  width: 2em;
  height: 2em;
  background: #52a053;
  clip-path: polygon(0 25%, 50% 25%, 50% 0, 100% 50%, 50% 100%, 50% 75%, 0 75%);
  position: absolute;
  top: 50%;
  left: -2.4em;
  transform: translateY(-50%);
}
#ivy-photo .flow_tit {
  color: #0b3268;
  font-size: 18px;
  font-weight: 700;
  position: relative;
  padding-left: 2em;
  margin-bottom: .5em;
}
#ivy-photo .flow_tit ._num {
  width: 1.5em;
  height: 1.5em;
  background: #52a053;
  border-radius: 50%;
  color: #fff;
  line-height: 1.5;
  text-align: center;
  position: absolute;
  top: 0;
  left: 0;
}
#ivy-photo .flow_img {
  text-align: center;
}
#ivy-photo .flow_txt {
  font-size: 14px;
  font-feature-settings: normal;
  line-height: 1.6;
  margin-top: .5em;
}
#ivy-photo .sec_flow._howto > div + div::before {
  background: #0c56a5;
}
#ivy-photo .sec_flow._howto .flow_tit {
  padding-left: 0;
  line-height: 1.5;
  margin-bottom: 0;
}
#ivy-photo .flow_tit .flow_step {
  display: inline-flex;
  flex-flow: row nowrap;
  justify-content: flex-start;
  align-items: center;
  background: #0c56a5;
  border-radius: .25em 0 0 .25em;
  color: #fff;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: .05em;
  padding: .15em 0 .15em .75em;
  margin-bottom: .75em;
  position: relative;
  z-index: 1;
}
#ivy-photo .flow_tit .flow_step::after {
  content: "";
  height: 100%;
  aspect-ratio: 36 / 68;
  background: url("../img/arrow.svg") no-repeat 0 0 / 100% 100%;
  position: absolute;
  top: 0;
  left: 100%;
  z-index: -1;
}
#ivy-photo .flow_tit .flow_step > span._num {
  width: inherit;
  height: inherit;
  background: none;
  font-size: 18px;
  padding-left: .25em;
  position: static;
}
#ivy-photo .flow_body {
  margin-top: 0;
}
#ivy-photo .flow_body > .flow_txt:first-child {
  margin-top: .25em;
}
#ivy-photo .flow_body .flow_img {
  width: 100%;
  max-width: 240px;
  margin: .75em auto .5em;
}
#ivy-photo .legend_box {
	margin-top: 1em;
}
#ivy-photo .legend_tit {
	display: inline-block;
	background: #555;
	border-radius: .25em;
	color: #fff;
	font-weight: 600;
	line-height: 1;
	padding: .4em .6em;
}
#ivy-photo .legend_body {
	display: flex;
	flex-flow: row wrap;
	justify-content: space-between;
	gap: 10px 0;
	margin-top: .75em;
}
#ivy-photo .legend_body > dt {
	flex: 0 0 32px;
}
#ivy-photo .legend_body > dd {
	flex: 0 0 calc(100% - 40px);
	font-size: 13px;
	line-height: 1.5;
}
#ivy-photo .legend_stit {
	border-bottom: 1px solid #666;
	color: #666;
	font-size: 14px;
	font-weight: 600;
	padding-bottom: .2em;
	margin-bottom: .25em;
}
#ivy-photo .legend_body > *:nth-child(2) .legend_stit {
	border-bottom-color: #3a8d32;
	color: #3a8d32;
}
#ivy-photo .area_block {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: .25em 4%;
}
#ivy-photo .area_copy {
  grid-column: 1 / 2;
  grid-row: 1 / 2;
}
#ivy-photo .area_map {
  grid-column: 2 / 3;
  grid-row: 1 / 3;
}
#ivy-photo .area_list {
  grid-column: 1 / 2;
  grid-row: 2 / 3;
}
#ivy-photo .area_list table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 .5em;
  font-size: 13px;
  font-feature-settings: normal;
  line-height: 1.5;
}
#ivy-photo .area_list table tr th {
  border-radius: .25em;
  color: #fff;
  font-size: 12px;
  line-height: 1;
  white-space: nowrap;
  padding: .5em;
  vertical-align: middle;
}
#ivy-photo .area_list ._tottori {background: #2f6fae;}
#ivy-photo .area_list ._shimane {background: #277a78;}
#ivy-photo .area_list ._okayama {background: #9a7624;}
#ivy-photo .area_list ._hiroshima {background: #b84f45;}
#ivy-photo .area_list ._yamaguchi {background: #67548e;}
#ivy-photo .area_list table tr td {
  vertical-align: middle;
  padding-left: .75em;
}
#ivy-photo .point_block > div {
	background: #fff;
	border-radius: .5em;
	padding: 1.5em;
}
#ivy-photo .point_block > div + div {
	margin-top: 1em;
}
#ivy-photo .point_photo {
	display: flex;
	flex-flow: row wrap;
	justify-content: space-between;
	margin-top: 1em;
}
#ivy-photo .point_photo figure {
	flex: 0 0 31%;
	border: 2px solid #0c56a5;
	border-radius: .5em;
	overflow: hidden;
}
#ivy-photo .point_photo figure figcaption {
	background: #0c56a5;
	color: #fff;
	font-weight: 600;
	line-height: 1.4;
	text-align: center;
	padding: .5em;
}
#ivy-photo .point_photo figure figcaption ._sml {
	font-size: 90%;
	font-weight: normal;
}
#ivy-photo .point_photo figure img {
	width: 100%;
}
#ivy-photo .point_exam {
	display: flex;
	flex-flow: column nowrap;;
	justify-content: center;
	gap: 1.5em;
	margin-top: 1em;
}
#ivy-photo .point_exam > div {
	flex: 0 0 48.5%;
}
#ivy-photo .point_exam_tit {
	background: #4d9c4e;
	border-radius: .5em .5em 0 0;
	color: #fff;
	text-align: center;
	font-weight: 600;
	padding: .2em 1em;
}
#ivy-photo .point_exam_tit ._icon {
	display: inline-block;
	width: 1.7em;
	height: 1.7em;
	background: #fff;
	border-radius: .25em;
	line-height: 1;
	text-align: center;
	vertical-align: .1em;
	padding: .25em;
	margin-right: .35em;
}
#ivy-photo .point_exam_body {
	border: 2px solid #4d9c4e;
	border-top: none;
	border-radius: 0 0 .5em .5em;
	padding: .75em 1em 1em;
	text-align: center;
}
#ivy-photo .point_exam_copy {
	background: #f3f9f0;
	border-radius: .5em;
	color: #4d9c4e;
	font-weight: 700;
	padding: .5em;
}
#ivy-photo .point_exam_img {
	display: flex;
	flex-flow: row wrap;
	justify-content: space-between;
	margin-top: .5em;
}
#ivy-photo .point_exam_img > li {
	flex: 0 0 31%;
}
#ivy-photo .point_exam > div:last-child .point_exam_tit {
	background: #dc594b;
}
#ivy-photo .point_exam > div:last-child .point_exam_body {
	border-color: #dc594b;
}
#ivy-photo .point_exam > div:last-child .point_exam_copy {
	background: #fdf4f1;
	color: #dc594b;
}
#ivy-photo .att_block {
  padding: 1em;
}
#ivy-photo .att_block .list {
  font-feature-settings: normal;
  line-height: 1.6;
}
#ivy-photo .att_block > .list li + li {
  margin-top: .15em;
}
#ivy-photo .att_block > .list > li + li {
  margin-top: .5em;
}
#ivy-photo .att_block > .list > li > .list {
  margin-top: .25em;
}
#ivy-photo .att_link {
  background: #fff;
  border: 1px solid #e7f2fa;
  border-radius: .75em;
  box-shadow: 1px 1px 6px rgba(11,50,104,.15);
  font-feature-settings: normal;
  padding: 1.5em;
  margin-top: 1em;
}
#ivy-photo .att_link_btn {
  display: block;
	width: 100%;
	max-width: 500px;
  border: 1px solid #bddaf0;
  border-radius: .35em;
  color: #0b3268;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.4;
  text-decoration: none;
  text-align: center;
  padding: .5em 2em .55em 1.5em;
  margin: .75em auto 0;
  position: relative;
  transition: .5s;
}
#ivy-photo .att_link_btn::after {
  content: "";
  width: .6em;
  height: .6em;
  border-top: 3px solid #0b3268;
  border-right: 3px solid #0b3268;
  position: absolute;
  top: 50%;
  right: 1em;
  transform: translateY(-50%) rotate(45deg);
  transition: .2s;
}
#ivy-photo .att_link_btn:hover {
  background: #d1e6f5;
}
#ivy-photo .att_link_btn:hover::after {
  transform: translateY(-50%) translateX(3px) rotate(45deg);
}
#ivy-photo .inquiry_box.sec_block {
	background: #0c56a5;
	color: #fff;
	font-feature-settings: normal;
	text-align: center;
	padding: 2em;
}
#ivy-photo .inquiry_box .sec_tit {
	justify-content: center;
	color: #fff;
	text-align: center;
}
#ivy-photo .inquiry_box .sec_tit ._icon {
	flex: 0 0 1.5em;
}
#ivy-photo .inquiry_btn {
	display: flex;
	flex-flow: row wrap;
	justify-content: center;
	align-items: center;
	gap: .75em;
	width: 100%;
	max-width: 24em;
	border: 1px solid #fff;
  border-radius: .35em;
  color: #fff;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.4;
  text-decoration: none;
  text-align: center;
  padding: .5em 1.5em .5em .5em;
  margin: .75em auto 0;
  position: relative;
  transition: .5s;
}
#ivy-photo .inquiry_btn::after {
	content: "";
  width: .6em;
  height: .6em;
  border-top: 3px solid #fff;
  border-right: 3px solid #fff;
  position: absolute;
  top: 50%;
  right: 1em;
  transform: translateY(-50%) rotate(45deg);
  transition: .2s;
}
#ivy-photo .inquiry_btn:hover {
	background: #0b3268;
}
#ivy-photo .inquiry_btn:hover::after {
	transform: translateY(-50%) translateX(3px) rotate(45deg);
}
#ivy-photo .inquiry_btn .fa-external-link-alt {
	display: none;
}

/* entry_btn */
#ivy-photo .entry_btn a:hover {
  filter: brightness(.85);
}
#ivy-photo .entry_btn a ._icon {
  display: inline-block;
  width: 2em;
  margin-bottom: .5em;
}

/* closed */
.hero_closed {
	background: #fff;
	border: 3px solid #0b3268;
	border-radius: .5em;
	color: #0b3268;
	font-size: 22px;
	font-weight: 700;
	letter-spacing: .1em;
	line-height: 1.7;
	text-align: center;
	padding: 1em 1.5em;
	margin: 4em 0 3em;
}
.closed_body {
	position: relative;
}
.closed_body::after {
	content: "";
	width: 100%;
	height: calc(100% + 30px);
	background: rgba(51,59,63,.5);
	position: absolute;
	top: -15px;
	left: 0;
	z-index: 1;
	pointer-events: none;
}
.closed_copy {
	background: #fff;
	border: 3px solid #0b3268;
	border-radius: .5em;
	color: #0b3268;
	font-size: 22px;
	font-weight: 700;
	letter-spacing: .1em;
	line-height: 1.7;
	text-align: center;
	padding: 1em 3em;
	position: absolute;
	top: 3em;
	left: 50%;
	transform: translateX(-50%);
	z-index: 2;
}


@media screen and (max-width: 640px) {
	/* reset */
	.c-basic-content {
		padding-bottom: 0;
	}
  .pc {display: none;}
  
  #ivy-photo {
    font-size: 14px;
  }
  
  /* reset */
  .c-basic-content {
    padding-left: 0;
    padding-right: 0;
  }
  
  /* hero */
  #ivy-photo .hero {
    height: 160vw;
    background: url("../img/bg_main_sp.jpg") no-repeat center top / cover;
  }
  #ivy-photo .hero::after {
    background: url("../img/bg_frame_sp.png") no-repeat top center / 100% auto;
  }
  #ivy-photo .hero_inner {
    width: 100%;
    justify-content: flex-start;
    align-items: stretch;
    text-align: left;
    padding: 1em 5%;
  }
  #ivy-photo .hero_ivy {
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    right: 0;
    overflow: hidden;
  }
  #ivy-photo .hero_ivy img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
  }
  #ivy-photo .hero_catch {
    width: 90%;
    align-self: center;
    margin-bottom: .5em;
  }
  #ivy-photo .hero_title ._mc {
    font-size: clamp(45px, 12vw, 80px);
    letter-spacing: 0;
  }
  #ivy-photo .hero_title ._sc {
    font-size: clamp(26px, 6.933vw, 50px);
    letter-spacing: .1em;
    margin-top: .25em;
  }
  #ivy-photo .hero_lead {
    font-size: clamp(18px, 4.8vw, 30px);
    margin-top: .5em;
  }
  #ivy-photo .hero_date {
    align-items: flex-start;
    margin-top: 1em;
  }
  #ivy-photo .hero_date ._tit {
    font-size: clamp(14px, 3.733vw, 22px);
    padding: .7em .8em .7em 1em;
  }
  #ivy-photo .hero_date ._year {
    font-size: clamp(16px, 4.266vw, 28px);
  }
  #ivy-photo .hero_date ._term {
    font-size: clamp(15px, 4vw, 25px);
  }
  #ivy-photo .gift_box {
    padding: 0 .75em .5em;
    margin-top: 1em;
  }
  #ivy-photo .gift_ribbon {
    font-size: clamp(11px, 2.933vw, 18px);
  }
  #ivy-photo .gift_img {
    flex: 0 0 28%;
  }
  #ivy-photo .gift_tit {
    font-size: clamp(12px, 3.2vw, 18px);
  }
  #ivy-photo .gift_tit ._lg {
    font-size: clamp(50px, 13.333vw, 80px);
  }
  #ivy-photo .gift_tit ._sml {
    font-size: clamp(22px, 5.866vw, 40px);
  }
  #ivy-photo .gift_copy {
    font-size: clamp(16.5px, 4.399vw, 26px);
  }
  #ivy-photo .gift_att {
    font-size: clamp(13px, 3.466vw, 18px);
  }
  #ivy-photo .gift_box.sec_block {
    width: 90%;
    border-radius: .75em;
    padding: 0 .75em 1em;
    margin: 1.5em auto;
  }
	#ivy-photo .gift_box.sec_block .gift_ribbon {
		padding: 1.25em .25em 2.25em;
	}
	#ivy-photo .gift_box.sec_block .gift_img {
		flex: 0 0 25%;
		margin: 0 0 0 .25em;
	}
  #ivy-photo .gift_box.sec_block .gift_tit {
		font-size: clamp(11px, 2.933vw, 18px);
  }
	#ivy-photo .gift_box.sec_block .gift_tit ._lg {
		font-size: clamp(56px, 14.933vw, 80px);
	}
  
  /* section */
  #ivy-photo .sec_block {
    border-radius: 0;
    padding: 1.5em 5%;
    margin-top: 6px;
  }
  #ivy-photo .sec_tit {
    font-size: clamp(17px, 4.533vw, 30px);
  }
  #ivy-photo .sec_stit {
    font-size: clamp(16px, 4.266vw, 28px);
  }
  #ivy-photo .sec_flow {
    flex-direction: column;
    justify-content: center;
  }
  #ivy-photo .sec_flow > div {
    flex: 0 0 100%;
    display: flex;
    flex-flow: row wrap;
    justify-content: center;
    gap: 0 1em;
  }
  #ivy-photo .sec_flow > div + div {
    margin-top: 1em;
  }
  #ivy-photo .sec_flow > div + div::before {
    content: none;
  }
  #ivy-photo .flow_tit {
    flex: 1 1 100%;
    font-size: clamp(16px, 4.266vw, 27px);
  }
  #ivy-photo .flow_img {
    flex: 1 1 50%;
  }
  #ivy-photo .flow_txt {
    flex: 1 1 40%;
    font-size: clamp(13px, 3.466vw, 20px);
    margin-top: .5em;
  }
  #ivy-photo .sec_flow._howto .flow_tit {
    font-size: clamp(17px, 4.533vw, 27px);
  }
  #ivy-photo .flow_body .flow_txt {
    font-size: clamp(14px, 3.733vw, 20px);
  }
	#ivy-photo .legend_box.pc {
		display: none;
	}
	#ivy-photo .point_block > div {
		padding: 1em;
	}
	#ivy-photo .point_block > div + div {
		margin-top: 1em;
	}
	#ivy-photo .point_photo {
		margin-top: .75em;
	}
	#ivy-photo .point_photo figure {
		flex: 0 0 48.5%;
		border-width: 1px;
		text-align: center;
	}
	#ivy-photo .point_photo figure:nth-child(3) {
		margin-top: .5em;
	}
	#ivy-photo .point_photo figure:nth-child(2) figcaption {
		letter-spacing: -.05em;
		padding: .5em 0;
	}
	#ivy-photo .point_photo figure img {
		min-height: 200px;
	}
	#ivy-photo .point_exam {
		gap: 1em;
		margin-top: .75em;
	}
	#ivy-photo .point_exam_body {
		border-width: 1px;
	}
	#ivy-photo .point_exam_img {
		flex-direction: column;
		justify-content: center;
		align-items: center;
		gap: .5em;
	}
	#ivy-photo .point_exam_img > li {
		width: 80%;
		max-width: 360px;
	}
	#ivy-photo .point_exam_img > li img {
		object-fit: cover;
	}
  #ivy-photo .sec_block#attention {
    width: 90%;
    border-radius: .75em; 
    padding: 1em;
    margin: 0 auto;
  }
  #ivy-photo .att_block {
    padding: 0;
  }
  #ivy-photo .att_link {
    border-radius: .5em;
    padding: 1em;
  }
  #ivy-photo .att_link_btn {
    font-size: clamp(15px, 4vw, 27px);
    text-align: left;
    padding: .75em 2em .75em .75em;
    margin-top: .5em;
  }
  #ivy-photo .att_link_btn::after {
    border-top-width: 2px;
    border-right-width: 2px;
  }
	#ivy-photo .inquiry_box.sec_block {
		padding: 1.5em 5% 3em;
		margin-top: 2em;
	}
	#ivy-photo .inquiry_btn {
		gap: 0;
		font-size: clamp(16px, 4.266vw, 27px);
		letter-spacing: .05em;
    padding: .5em 1em;
    margin-top: .5em;
	}
	#ivy-photo .inquiry_btn::after {
		border-top-width: 2px;
    border-right-width: 2px;
	}
  
  #ivy-photo .area_block {
    display: flex;
    flex-direction: column;
    gap: .5em 0;
  }
  #ivy-photo .area_list table tr th {
    font-size: clamp(12px, 3.2vw, 18px);
    padding: .5em .75em;
  }
  #ivy-photo .area_list table tr td {
    font-size: clamp(12px, 3.2vw, 18px);
  }
	
	/* entry_btn */
  #ivy-photo .entry_btn {
    width: calc(100% - 100px);
    top: auto;
    right: auto;
    bottom: 0;
    left: 0;
    transform: none;
  }
  #ivy-photo .entry_btn a {
    display: block;
    writing-mode: horizontal-tb;
    border-radius: 0 .5em 0 0;
    box-shadow: 0 -6px 6px rgba(0,0,0,.3);
    font-size: clamp(17px, 4.533vw, 30px);
		font-feature-settings: "palt";
    letter-spacing: .05em;
    text-align: center;
    padding: 1em .25em 1.2em 0;
  }
  #ivy-photo .entry_btn a ._icon {
    margin: 0 .5em 0 0;
    vertical-align: .15em;
  }
	#ivy-photo .entry_btn_close {
		width: 28px;
		height: 28px;
		background: #0c56a5;
		border: 2px solid #fff;
		color: #fff;
		font-size: 18px;
		padding-bottom: .15em;
		top: -10px;
		left: auto;
		right: -11px;
	}
	#ivy-photo .entry_block {
		padding: 2em 5%;
	}
	#ivy-photo .entry_block .entry_btn {
		width: auto;
	}
	#ivy-photo .entry_block .entry_btn a {
    letter-spacing: .1em;
		padding: 1em;
	}
	#ivy-photo .entry_block .entry_btn a ._icon {
		margin: 0 .5em 0 0;
	}
	#ivy-photo .entry_block .entry_copy {
		font-size: 15px;
	}
	#ivy-photo .entry_block .entry_copy::before,
	#ivy-photo .entry_block .entry_copy::after {
		width: 2px;
	}
	
	/* closed */
	.hero_closed {
		border-width: 1px;
		width: 90%;
		font-size: clamp(16px, 4.266vw, 26px);
		letter-spacing: .05em;
		margin: 0;
		position: absolute;
		left: 5%;
		bottom: 7em;
	}
	.closed_body::after {
		height: calc(100% + 10px);
		top: 0;
	}
	.closed_copy {
		width: 90%;
		border-width: 1px;
		font-size: clamp(16px, 4.266vw, 26px);
		letter-spacing: .05em;
		padding: 1em;
	}
  
  
  
  
  
}

@media screen and (min-width: 641px) {
  .sp {display: none;}
  
  #ivy-photo .flow_body .flow_img._hw2 {
    margin: 1em auto;
  }
  #ivy-photo .flow_body .flow_img._gift {
    display: flex;
    flex-flow: column nowrap;
    justify-content: center;
    align-items: center;
  }
	#ivy-photo .gift_box.sec_block .gift_ribbon {
		font-size: 20px;
	}
	#ivy-photo .gift_box.sec_block .gift_img {
		flex: 0 0 140px;
		margin: 0 .5em 0 1em;
	}
	#ivy-photo .gift_box.sec_block .gift_tit {
		font-size: 18px;
	}
	#ivy-photo .gift_box.sec_block .gift_tit ._lg {
		font-size: 76px;
		line-height: 1;
	}
	#ivy-photo .gift_box.sec_block .gift_tit ._sml {
		font-size: 40px;
	}
	#ivy-photo .gift_box.sec_block .gift_copy {
		font-size: 27px;
	}
	#ivy-photo .qrcode_block {
		display: flex;
		flex-flow: row nowrap;
		justify-content: center;
		align-items: center;
		gap: 1.5em;
		width: 320px;
		margin: 3em auto;
	}
	#ivy-photo .entry_block + .qrcode_block {
		margin-top: -1em;
	}
	#ivy-photo .qrcode_copy {
		font-weight: 500;
		letter-spacing: .1em;
		line-height: 1.5;
		text-align: center;
		border: 1px solid #8cbae2;
		border-radius: .5em;
		padding: .75em 1.25em;
		position: relative;
	}
	#ivy-photo .qrcode_copy::before,
	#ivy-photo .qrcode_copy::after {
		content: "";
		clip-path: polygon(0 0, 0% 100%, 100% 50%);
		position: absolute;
		top: 50%;
		transform: translateY(-50%);
	}
	#ivy-photo .qrcode_copy::before {
		width: 20px;
		height: 16px;
		background: #8cbae2;
		right: -20px;
	}
	#ivy-photo .qrcode_copy::after {
		width: 17px;
		height: 13.5px;
		background: #fff;
		right: -16.5px;
	}
	#ivy-photo .qrcode_img {
		flex: 0 0 100px;
	}
  
  
}
