@charset "UTF-8";

/* ==========================================================================
   Sections
========================================================================== */
.section_L {
  margin-top: 5.25rem;
  margin-bottom: 5.25rem;
}
@media (min-width: 992px) {
  .section_L {
    margin-top: 7.5rem;
    margin-bottom: 7.5rem;
  }
}


@media (max-width: 575px) {
  .container-fluid, .container {
    padding-right: 25px;
    padding-left: 25px;
  }
  .row {
    margin-right: -25px;
    margin-left: -25px;
  }
  .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, .col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, .col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, .col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, .col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl, .col-xl-auto {
    padding-right: 25px;
    padding-left: 25px;
  }
  .no-gutters > .col, .no-gutters > [class*="col-"] {
    padding-right: 0;
    padding-left: 0;
  }
}

@media (min-width: 1200px) {
  .container {
    max-width: min(calc(101.5rem + 40px), calc(92% + 40px));
  }
  .container.container_M {
    max-width: min(calc(84.2rem + 40px), calc(88% + 40px));
  }
  .container.container_S {
    max-width: min(calc(67.2rem + 40px), calc(75% + 40px));
  }
}

/* ==========================================================================
   Typography
========================================================================== */
p {
  font-family: var(--gothic);
  font-weight: 400;
}
p:first-child {
  margin-top: 0;
}

/* ==========================================================================
   Button
========================================================================== */
.btn {
  font-family: var(--mincho);
  font-size: 1.077rem;
  line-height: 1.5;
  padding: 1em 1.5em;
}
i.arrow {
  width: 1.25rem;
  height: 1.25rem;
  margin-top: -0.625rem;
}
i.arrow::after {
  width: .3rem;
  height: .3rem;
}

.more-btn {
  font-family: var(--mincho);
}


@media(min-width: 576px){
  .buttons {
    display: flex;
    margin-right: -10px;
    margin-left: -10px;
    justify-content: center;
  }
  .buttons > p {
    flex: 0 0 50%;
    max-width: initial;
    padding-right: 10px;
    padding-left: 10px;
    margin: 0 0 .75rem;
  }
}
@media (min-width: 992px) {
    .buttons > p {
      flex: 0 0 25%;
    }
}

/* ==========================================================================
   Badge
========================================================================== */


/* ==========================================================================
   Border
========================================================================== */


/* ==========================================================================
   Page header
========================================================================== */


/* ==========================================================================
   MV
========================================================================== */

/* ==========================================================================
   dl feature
========================================================================== */
dl.feature {
  margin: 1.75rem 0;
}
dl.feature dt {
  margin: 1em 0;
  position: relative;
  z-index: 1;
}
dl.feature dt:before {
  content: '';
  display: block;
  height: 1px;
  background: var(--border1);
  position: absolute;
  top: 50%;
  right: 0;
  left: 1px;
  z-index: -1;
  transform: translateY(-50%);
}
dl.feature dt span {
  display: inline-block;
  background: var(--color1);
  color: var(--white);
  border-radius: 1em;
  padding: 0 1em;
}
dl.feature dd ul {
  margin-left: 1.5em;
}
dl.feature dd ul li {
  list-style-type: disc;
  margin-bottom: .5em;
  font-family: var(--mincho-m);
}


/* ==========================================================================
   box
========================================================================== */
.box {
  font-family: var(--gothic);
  background: var(--white);
  padding: 10%;
  line-height: 1.8;
}
.box dl dt {
  color: var(--color1);
}
.box dl dd:not(:last-of-type) {
  margin-bottom: 2em;
}
@media (max-width: 767px) {
  .box dl dt {
    border-bottom: 1px solid var(--border1);
    padding-bottom: .75em;
    margin-bottom: .75em;
  }
  .box dl dd .icon-link {
    margin-top: .5em;
  }
}
@media (min-width: 768px) {
  .box dl {
    display: flex;
    flex-wrap: wrap;
  }
  .box dl dt {
    border-right: 1px solid var(--border1);
    flex: 0 0 6em;
    display: flex;
    align-items: center;
  }
  .box dl dt:not(:last-of-type) {
    margin-bottom: 2em;
  }
  .box dl dd {
    flex: 0 0 calc(100% - 6em);
    padding-left: 2em;
  }
  .box dl dd .icon-link {
    display: inline-flex;
  }
}



/* ==========================================================================
   Slick.js
========================================================================== */
.slick-dots li button:before {
  width: 6px;
  height: 6px;
}
/* ------------------
   Carousel Slider
------------------ */
.carousel-wrapper .slick-slide {
  padding: 0 5px 5px;
}
@media (max-width: 991px) {
  .carousel-wrapper .slick-dots {
    display: flex!important;
  }
  .carousel-wrapper .slick-arrow {
    display: none!important;
  }
}

@media (min-width: 1200px) {
  .carousel-wrapper .slick-next {
    right: -10px;
  }
  .carousel-wrapper .slick-prev {
    left: -10px;
  }
}



/* ------------------
   Loop Slider
------------------ */
.infiniteslide li {
  padding-right: 5px;
}
.infiniteslide li img {
  width: min(45vw, 16rem);
  height: auto;
  aspect-ratio: 426/600;
  object-fit: cover;
}
@media (min-width: 768px) {
  .infiniteslide li img {
    width: min(30vw, 22rem);
  }
}
@media (min-width: 992px) {
  .infiniteslide li img {
    width: 30vw;
  }
}

/* ------------------
   Gallery Slider
------------------ */
.gallery-slider__center .slick-slide {
  padding: 0 4px!important;
}


/* ==========================================================================
   Gallery
========================================================================== */
.gallery.row {
  margin-right: -5px;
  margin-left: -5px;
}
.gallery.row > .col, .gallery.row > [class*="col-"] {
  padding: 5px;
}
@media (min-width: 992px) {
  .gallery.row {
    margin-right: -10px;
    margin-left: -10px;
  }
  .gallery.row > .col, .gallery.row > [class*="col-"] {
    padding: 10px;
  }
}


/* ==========================================================================
   Responsive iframe
========================================================================== */
.iframeBox.gmap {
  aspect-ratio: 34/27;
}
@media (min-width: 992px) {
  .iframeBox.gmap {
    height: 100%;
  }
}

/* ==========================================================================
   Table
========================================================================== */
table.contents {
  width: 100%;
  table-layout: fixed;
  border-top: 1px solid var(--border1);
  font-family: var(--gothic);
}
table.contents th {
  font-weight: 500;
  text-align: left;
  letter-spacing: .1em;
  padding: 1.5em;
  background: var(--l-gray);
  width: 20%;
  border-bottom: 1px solid var(--border1);
}
table.contents td {
  padding: 1.5em;
  border-bottom: 1px solid var(--border1);
}
@media(max-width: 767px){
  table.contents tr,
  table.contents th,
  table.contents td {
    display: block;
    width: 100%;
  }
  table.contents th {
    padding: .75em 1.5em;
    border-bottom: 0;
  }
  table.contents td {
    padding: 1em 1.5em;
  }
}


/* ==========================================================================
   Card
========================================================================== */
.price {
  display: flex;
  align-items: baseline;
  font-size: 1.692rem;
}
.price span {
  font-size: 1rem;
}

#single-photo-plan .plan-price-box {
  background: transparent;
  padding: 0;
}


.cards .card {
  line-height: 1.85;
}
.cards .card .imgBox {
  aspect-ratio: 314 / 236;
  padding-top: 0!important;
}
.cards .card .imgBox img {
  position: static;
}
@media (max-width: 767px) {
  .cards .card {
    max-width: 30rem;
    margin-right: auto;
    margin-left: auto;
  }
}
@media (max-width: 575px) {
  .cards.row .card {
    max-width: 30rem;
  }
}



.cards._style2 .card .imgBox {
  aspect-ratio: 100/62.5;
}
.cards._style2 .card-head .meta {
  border-top: 1px solid var(--border1);
  margin: 1em 0 .5em;
  padding-top: 1em;
}
.cards._style2 .card-head .meta p {
  margin: .125em 0;
}
.cards._style2 .card .excerpt {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  letter-spacing: 0;
  margin-bottom: 1em;
}

@media (max-width: 767px) {
  .hilton-style-plan .imgBox + .txtBox {
    margin-top: 1.5rem;
  }
}



.card .btn {
  background: var(--color1);
}
a:hover .btn,
.card .btn:hover {
  background: var(--color1-h);
}

.card .more:has(.btn) {
  display: flex;
  gap: 8px;
}
.card .more .btn {
  width: 100%;
  font-size: .923em;
  padding: 1em .5em;
  white-space: nowrap;
}





/* ==========================================================================
   Flow
========================================================================== */
ol.flow {
  list-style-type: none;
}

ol.flow > li {
  margin-bottom: 1.5em;
  margin-left: 0;
  padding-left: 3rem;
  padding-bottom: 3.5rem;
  position: relative;
}
ol.flow > li:last-child {
  padding-bottom: 0;
}
ol.flow > li::after {
  content: '';
  display: block;
  width: 1px;
  height: calc(100% - 3em);
  background: var(--border1);
  position: absolute;
  left: 1.2rem;
  bottom: 0;
  transform: translateX(-50%);
}

ol.flow > li dl {
   margin-top: 2rem;
}
ol.flow > li dl dt {
  color: var(--color1);
  border-bottom: 1px solid var(--border1);
  font-size: 1.385em;
  line-height: 2;
  font-weight: 500;
  letter-spacing: .1em;
  padding-bottom: .75em;
}
ol.flow > li dl dd .copy {
  margin: 1.25em 0 1em;
}
ol.flow > li dl dd p {
  margin: 0;
}
ol.flow > li .num {
  width: 2.5rem;
  color: var(--white);
  font-size: 1.538em;
  font-weight: 500;
  text-align: center;
  line-height: 1;
  position: absolute;
  left: 0;
  z-index: 2;
}
ol.flow > li .num::before {
  content: 'STEP';
  color: var(--color1);
  font-weight: 600;
  font-size: 1rem;
  letter-spacing: .05em;
  display: block;
  margin-bottom: 1rem;
}
ol.flow > li .num::after {
  content: '';
  display: block;
  width: 2.5rem;
  aspect-ratio: 1/1;
  border-radius: 100%;
  background: var(--color1);
  position: absolute;
  top: 1.5rem;
  z-index: -1;
}
@media (min-width: 768px) {
  ol.flow li {
    padding-left: 4rem;
  }
  ol.flow > li dl {
     margin-top: 0;
  }
}
@media (min-width: 992px) {
  ol.flow li {
    padding-left: 5rem;
  }
  ol.flow > li dl dd .copy {
    margin: 2.25em 0 1.75em;
  }
}
@media (min-width: 1200px) {
  ol.flow li {
    padding-left: 6rem;
  }
}




ol.timeline {
  list-style-type: none;
}
ol.timeline > li {
  margin-left: 0;
  padding-left: 1rem;
  padding-bottom: 3.5rem;
  position: relative;
}
ol.timeline > li:last-child {
  padding-bottom: 0;
}
ol.timeline li[data-label] {
  margin-top: 6rem;
}
ol.timeline li[data-label]::before {
  content: attr(data-label);
  display: block;
  color: var(--color1);
  font-size: 1.692rem;
  line-height: 1;
  white-space: nowrap;
  left: -.2rem;
  position: absolute;
  bottom: calc(100% + 1.75rem);
}
ol.timeline > li::after {
  content: '';
  display: block;
  width: 1px;
  height: calc(100% - .125rem);
  background: var(--border1);
  position: absolute;
  left: 0;
  bottom: 0;
  transform: translateX(-50%);
}

ol.timeline > li dl {
   margin-top: 1rem;
}
ol.timeline > li dl dt {
  display: flex;
  align-items: center;
  gap: .75em;
  color: var(--color1);
  border-bottom: 1px solid var(--border1);
  font-size: 1.231em;
  line-height: 1.25;
  font-weight: 500;
  letter-spacing: .1em;
  padding-bottom: .75rem;
}
ol.timeline > li dl dt span {
  font-size: 187.5%;
}
ol.timeline > li dl dd time {
  display: block;
  color: var(--color1);
  font-size: 1.231em;
  margin: .75em 0;
}
ol.timeline > li dl dd p {
  margin: 0;
}
ol.timeline > li .disc {
  content: '';
  display: block;
  width: .5rem;
  aspect-ratio: 1/1;
  border-radius: 100%;
  background: var(--color1);
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  transform: translateX(-50%);
}
@media (min-width: 768px) {
  ol.timeline > li dl {
     margin-top: 0;
  }
}
@media (min-width: 992px) {
  ol.timeline {
    padding-left: 11rem;
  }
  ol.timeline li {
    padding-left: 3rem;
    padding-bottom: 1.75rem;
  }
  ol.timeline li[data-label] {
    margin-top: 0;
  }
  ol.timeline li[data-label]::before {
    left: -11rem;
    top: -.2em;
  }
  
}
@media (min-width: 1200px) {
  ol.timeline {
    padding-left: 13rem;
  }
  ol.timeline li {
    padding-left: 5rem;
  }
  ol.timeline li[data-label]::before {
    left: -13rem;
  }
  ol.timeline > li dl dt {
    padding-bottom: 1.75em;
    margin-bottom: 1.75em;
  }
  ol.timeline > li dl dd time {
    margin-bottom: 1.75em;
  }
}






ol.step {
  list-style-type: none;
  padding-top: 1.5rem;
}

ol.step > li {
  margin-bottom: 3rem;
  position: relative;
}

ol.step > li dl {
  margin-top: 2rem;
  padding: 0 .4rem 3rem;
  border-bottom: 1px solid var(--border1);
}
ol.step > li:last-child dl {
   border-bottom: 0;
}
ol.step > li dl dt {
  color: var(--color1);
  font-size: 1.231em;
  line-height: 2;
  font-weight: 600;
  letter-spacing: .1em;
  padding-bottom: .75em;
  text-align: center;
}
ol.step > li dl dd p {
  margin: 0;
  line-height: 1.8;
}
ol.step > li .num {
  width: 2.5rem;
  color: var(--white);
  font-size: 1.538em;
  font-weight: 500;
  text-align: center;
  line-height: 1;
  position: relative;
  margin: 0 auto;
}
ol.step > li .num::before {
  content: 'STEP';
  color: var(--color1);
  font-weight: 600;
  font-size: 1rem;
  letter-spacing: .05em;
  display: block;
  margin-bottom: 1rem;
}
ol.step > li .num::after {
  content: '';
  display: block;
  width: 2.5rem;
  aspect-ratio: 1/1;
  border-radius: 100%;
  background: var(--color1);
  position: absolute;
  top: 1.5rem;
  z-index: -1;
}
@media (min-width: 768px) {
  ol.step > li + li {
    border-left: 1px solid var(--border1);
  }
  ol.step > li dl {
    padding-bottom: 0;
    border-bottom: 0;
  }
}
@media (min-width: 768px) and (max-width: 991px){
  ol.step > li:nth-child(2n+1) {
    border-left: 0;
  }
}


/* ==========================================================================
   Tab
========================================================================== */
.tabs, .entry__content .tabs {
  margin-right: -5px;
  margin-left: -5px;
}
.tabs .tab {
  font-family: var(--gothic);
  padding: 5px;
}
.tabs .tab span {
  border-radius: 0;
  border: 0;
  background-color: var(--l-gray);
  color: inherit;
  transition: background .2s, color .2s;
}
@media (min-width: 992px) {
  .tabs, .entry__content .tabs {
    margin-right: -10px;
    margin-left: -10px;
  }
  .tabs .tab {
    padding: 10px;
  }
}

/* ==========================================================================
   Accordion
========================================================================== */
.acc:not(.section) {
  margin-bottom: 0;
}
.acc_btn:not(.btn):not(.more-btn) {
  padding: 1.75em 2em;
}
.acc_btn:not(.btn)::before,
.acc_btn:not(.btn)::after {
  width: 1.25rem;
  height: 1px;
  background: var(--color1)!important;
  border: none;
  border-radius: 0;
  position: absolute;
  top: 50%;
  right: 0;
  transition: transform .2s;
  transform: translate(0, -50%) rotate(0deg);
}
.acc .acc_btn:not(.btn)::after {
  transform: translate(0, -50%) rotate(90deg);
}
.acc.on .acc_btn:not(.btn)::after {
  transform: translate(0, -50%) rotate(0deg);
}
.acc_btn .faq__q .label {
  font-family: var(--font1);
  top: 50%;
  transform: translateY(-50%);
}
.acc_body .faq__a {
  padding: 1.75em 0 3em;
  border-bottom: 1px solid var(--border1);
  font-family: var(--gothic);
}
.acc_body .faq__a .label {
  display: none;
}

.acc_btn.btn,
.sp-acc_btn.btn {
  background: var(--color1);
  font-family: var(--gothic);
  font-weight: 400;
}

@media (min-width: 992px) {
  .acc_btn:not(.btn):not(.more-btn) {
    padding: 2em;
  }
  .acc_body .faq__a {
    padding: 2em 0 4em;
  }
}

/* ==========================================================================
   Menu content
========================================================================== */
.menu-content {
  padding: 0;
  background-color: transparent;
  color: inherit;
}


/* ==========================================================================
   Archive menu
========================================================================== */
.category-search {
  color: inherit;
}
.category-search-list {
  margin-right: 0;
  margin-left: 0;
}
.category-search-list li {
  padding: 0 0 1px;
}
.category-search-list li a {
  border-radius: 0;
  border: 0;
  background: var(--l-gray);
  font-family: var(--gothic);
}
@media (min-width: 576px) and (max-width: 991px) {
  .category-search-list li a {
    width: 22.6rem;
    margin: 0 auto;
  }
}
@media (max-width: 991px) {
  .category-search .sp-acc .sp-acc_btn {
    font-size: 1rem;
  }
  .category-search .sp-acc .sp-acc_btn i.arrow::after {
    color: var(--color1);
  }
  .category-search-list li a {
    background: var(--white)!important;
    color: var(--black)!important;
    padding: 1.25em 0;
  }
  .category-search-list li a::before {
    content: "";
    display: block;
    width: 1.25rem;
    height: 1.25rem;
    border-radius: 50%;
    background: var(--color1);
    border: 1px solid var(--color1);
    position: absolute;
    top: 50%;
    right: 5%;
    transition: background .2s;
    transform: translateY(-50%);
  }
  .category-search-list li a::after {
    content: "";
    display: block;
    width: .3rem;
    height: .3rem;
    color: var(--white);
    border-top: 1px solid currentColor;
    border-right: 1px solid currentColor;
    position: absolute;
    top: 50%;
    right: calc(5% + .3rem);
    transition: color .2s;
    transform: translate(-75%, -50%) rotate(45deg);
  }
}
@media (min-width: 992px) {
  .category-search .sp-acc .sp-acc_btn {
    display: none;
  }
  .category-search-list {
    margin-right: -10px;
    margin-left: -10px;
  }
  .category-search-list li {
    padding: 10px;
  }
}

/* ==========================================================================
   Post
========================================================================== */
picture.post-thumbnail {
  aspect-ratio: 17/10;
}
picture.post-thumbnail img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
} 
@media (min-width: 992px) {
  picture.post-thumbnail {
    aspect-ratio: 2/1;
  }
}

/* ==========================================================================
   Banner
========================================================================== */
.block-banner-list li::before {
  background-color: rgba(0, 0, 0, 0.4);
}
.block-banner-list li:hover::before {
  background-color: rgba(0, 0, 0, 0.55);
}
.onephoto-banner-location {
  background-image: url("../../onephotowedding/_cover/location_s.jpg");
  background-position: 70% 50%;
}
.onephoto-banner-gallery {
  background-image: url("../../onephotowedding/_cover/gallery_s.jpg");
}
@media (max-width: 575px) {
  .onephoto-banner-location {
    background-image: url("../../onephotowedding/_cover/location_v.jpg");
    background-position: 50% 50%;
  }
  .onephoto-banner-gallery {
    background-image: url("../../onephotowedding/_cover/gallery_v.jpg");
    background-position: 50% 50%;
  }
}
@media (min-width: 992px) {
    .block-banner-list li a .copy {
        font-size: 1.385rem;
    }
}

/* ==========================================================================
   Stepbar
========================================================================== */
ul.stepbar li span {
  background: var(--l-gray);
}
ul.stepbar li:not(:last-child)::after {
  width: .4rem;
  height: .4rem;
  right: -.4rem;
}
@media (min-width: 992px) {
  ul.stepbar {
    max-width: calc(50rem + 40px);
    margin-right: auto;
    margin-left: auto;
  }
}

/* ==========================================================================
   Form
========================================================================== */
.form-box {
  max-width: 100%;
}
.form-box .row + .row:not([class*="col"]) {
  margin-top: 1.5em;
}
.form-box .req {
  color: var(--red);
}
.form-box .form-group .form-label {
  padding: 0 0 7px 1.25em;
  position: relative;
}
.form-box .form-group .form-label .req {
  position: absolute;
  left: 0;
}


@media (max-width: 575px) {
  .form-field:has(.horizontal-item){
    margin-right: -1.75em;
  }
  .horizontal-item{
    min-width: calc(50% - 1.75em - 1.75em);
  }
}
@media (min-width: 768px) {
  .form-box .form-group {
    gap: 1.5em;
  }
  .form-box .form-group .form-label {
    flex: 0 0 13.5em;
    line-height: 24px;
    padding: 10px 0 0 1.25em;
  }
  .mw_wp_form_confirm .form-box .form-group .form-label {
    padding: 0 0 0 1.25em;
  }
  .form-box .form-group .form-field {
    flex-basis: 100%;
  }
}
@media (min-width: 992px) {
  .form-box > .d-lg-flex {
    width: 100%;
  }
  .form-box > .d-lg-flex > .form-group {
    flex-basis: 50%;
  }
  .form-box > .d-lg-flex > .form-group:nth-of-type(even) .form-label {
    flex: 0 0 7em;
    margin-left: 6.5em;
  }
}

.form-scroll-field {
  color: inherit;
  background: var(--white);
  border-radius: 0;
  margin: 3rem 0;
  font-size: 1em;
}


input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
button,
textarea,
select {
  background-color: var(--white);
  border: 1px solid var(--border1);
}
select {
  background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%228%22%20height%3D%226%22%20viewBox%3D%220%200%208%206%22%20fill%3D%22none%22%3E%3Cpath%20d%3D%22M-0.000268327%201.2836e-06L3.99972%205.99955L7.99971%204.92261e-06C7.99971%204.92261e-06%205.91288%203.446e-06%203.99972%202.32344e-06C2.08656%201.5474e-06%20-0.000268327%201.2836e-06%20-0.000268327%201.2836e-06Z%22%20fill%3D%22%239A9A9A%22%2F%3E%3C%2Fsvg%3E');
}
