/**
 * 共通レイアウト
 */
/* インナー */
.l-contents__inner {
  margin-top: 0;
}
.l-contents__inner:last-child {
  padding-bottom: 0;
}

/* Hero セクション */
.c-page-header[data-has-image="true"] {
  height: 300px;
}
@media screen and (max-width: 767px) {
  .c-page-header[data-has-image="true"] {
    height: 180px;
  }
}

/* 一覧ページ */
.p-archive {
  margin-bottom: 90px;
}
@media screen and (max-width: 1023px) {
  .p-archive {
    margin-top: 30px;
    margin-bottom: 30px;
  }
}

/* スマホ時padding狭くする */
@media screen and (max-width: 767px) {
  .wp-block-snow-monkey-blocks-section-side-heading
    > .smb-section__inner
    > .c-container {
    padding-left: 0;
    padding-right: 0;
  }
}

/**
 * 共通コンポーネント
 */
/* ページネーション */
.c-pagination {
  margin-bottom: 90px;
}

/* ボタン */
.smb-btn {
  position: relative;
  padding-left: 40px;
  padding-right: 40px;
}
.smb-btn:before {
  position: absolute;
  top: 51%;
  right: 15px;
  content: "";
  width: 18px;
  height: 18px;
  background-image: url("https://shopdesign-piece.com/wp-content/uploads/2025/08/img_right-arrow.png");
  background-size: cover;
  transform: translate(0, -50%);
  transition: transform 0.2s ease;
}
.smb-btn:hover:before {
  transform: translate(7px, -50%);
}
.smb-btn-wrapper.is-style-ghost .smb-btn {
  background-color: #fffefe;
}
.smb-btn-wrapper.is-style-ghost .smb-btn:hover {
  filter: none;
  background-color: #fff0e5;
}

/**
 * ヘッダー
 */
.l-header {
  background-color: #ffb366;
}

.c-page-header .c-container {
  text-align: center; /* 下層ページタイトルアニメーションに伴い、左寄りになったため中央寄せに調整 */
}

.l-1row-header__branding {
  padding: 0; /* カレントメニュー下線のズレ解消 */
}

.p-global-nav .c-navbar__subitem > a {
  position: relative;
  padding-left: 30px;
  font-weight: bold;
}
.p-global-nav .c-navbar__subitem > a::before {
  position: absolute;
  top: 50%;
  left: 10px;
  transform: translateY(-50%);
  content: "";
  width: 15px;
  height: 15px;
  background-image: url("https://shopdesign-piece.com/wp-content/uploads/2025/08/img_right-arrow_white.png");
  background-size: cover;
}
.p-global-nav .c-navbar__subitem > a:hover {
  background-color: #8b785133;
}

/* ナビゲーション カレント */
.p-global-nav .c-navbar__item.current-menu-item > a,
.p-global-nav .c-navbar__item.current-menu-ancestor > a,
.p-global-nav .c-navbar__item.menu-item[data-active-menu="true"] > a {
  color: #8b7851;
}
.p-global-nav--hover-extend-underline .c-navbar__item > a:after,
.p-global-nav .c-navbar__item.current-menu-ancestor > a:after {
  background-color: #8b7851;
  height: 2px;
}

/* ナビゲーション サブメニュー */
.c-navbar__submenu {
  min-width: 190px;
}

/**
 * ページタイトル
 */
.c-page-header__title {
  color: #8b7851;
  text-shadow: 0px 4px 6px rgba(256, 256, 256, 0.5);
}

/* 下層ページタイトルアニメーション */
.c-page-header__content {
  display: inline-block; /* transformが効くように */
  text-align: center;
  overflow: hidden; /* 下の余白を隠す */
}
.c-page-header__content .c-page-header__title {
  display: inline-block;
  transform: translateY(100%);
  opacity: 0;
  animation: revealUp 0.6s ease forwards;
}
@keyframes revealUp {
  0% {
    transform: translateY(100%);
    opacity: 0;
  }
  100% {
    transform: translateY(0%);
    opacity: 1;
  }
}

/**
 * パンくずリスト
 */
.c-breadcrumbs a {
  color: #8b7851;
}

/**
 * フッター
 */
.l-footer-widget-area {
  position: relative;
  background-color: #ffe0b2;
}
.l-footer-widget-area:before {
  position: absolute;
  top: 3px;
  right: 0;
  content: "";
  width: 134px;
  height: 123px;
  background-image: url("https://shopdesign-piece.com/wp-content/uploads/2025/08/img_brick_right.png");
  background-size: cover;
}
.l-footer .c-row {
  position: relative;
}
.p-footer-sub-nav {
  position: relative;
  background-color: #ffe0b2;
}
.p-footer-sub-nav:before {
  position: absolute;
  bottom: 3px;
  left: 0;
  content: "";
  width: 144px;
  height: 135px;
  background-image: url("https://shopdesign-piece.com/wp-content/uploads/2025/08/img_brick_left.png");
  background-size: cover;
}
.p-footer-sub-nav .menu-item {
  font-weight: bold;
  color: #8b7851;
}

.l-footer-widget-area__item.c-row__col {
  margin-bottom: 20px;
}

.c-sub-nav .c-navbar {
  justify-content: center;
}

/* コピーライト */
.c-copyright {
  background-color: #ffb366;
}
.c-copyright .c-container {
  color: #fff !important;
  padding: 0;
}
.c-copyright.c-copyright--inverse {
  height: 50px;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
}
@media screen and (max-width: 639px) {
  .c-copyright.c-copyright--inverse {
    height: 40px;
  }
}

/**
 * トップページ
 */
/* FVスライダーセクション */
.smb-hero-header__figure {
  aspect-ratio: 16 / 7 !important;
}
@media screen and (max-width: 1023px) {
  .smb-hero-header__figure {
    aspect-ratio: 16 / 10 !important;
  }
}
@media screen and (max-width: 767px) {
  .smb-hero-header__figure {
    aspect-ratio: 16 / 16 !important;
  }
}

.top-slider-copies {
  position: relative;
  top: -55px;
  margin: 0 28.8px !important;
}
@media screen and (max-width: 1335px) {
  .top-slider-copies {
    top: -55px;
  }
}
@media screen and (max-width: 767px) {
  .top-slider-copies {
    top: -70px;
  }
}

.top-slider-heading,
.top-slider-heading-sub {
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.4);
}

.top-slider-heading {
  font-size: 40px !important;
}
@media screen and (max-width: 1023px) {
  .top-slider-heading {
    font-size: 36px !important;
  }
}
@media screen and (max-width: 767px) {
  .top-slider-heading {
    font-size: 28px !important;
  }
}
@media screen and (max-width: 480px) {
  .top-slider-heading {
    font-size: 24px !important;
  }
}

.top-slider-heading-sub {
  font-size: 20px;
}
@media screen and (max-width: 1023px) {
  .top-slider-heading-sub {
    font-size: 18px !important;
  }
}
@media screen and (max-width: 767px) {
  .top-slider-heading-sub {
    margin-top: 10px !important;
  }
}
@media screen and (max-width: 480px) {
  .top-slider-heading-sub {
    font-size: 16px !important;
  }
}

/* ABOUT US セクション */
.top-about {
  position: relative;
  z-index: 1;
}
.home .wp-block-snow-monkey-blocks-section-with-bgimage {
  overflow: visible !important;
}
.home .wp-block-snow-monkey-blocks-section-with-bgimage > .smb-section__inner {
  margin-top: -200px !important;
}

/* スマホ時padding狭くする */
@media screen and (max-width: 480px) {
  .top-about .wp-block-snow-monkey-blocks-section-side-heading {
    padding-top: 10px !important;
    padding-bottom: 15px !important;
  }
}

.top-about .smb-section__title.smb-section-side-heading__title {
  position: relative;
  z-index: 1;
}
.top-about .smb-section__title.smb-section-side-heading__title:before {
  position: absolute;
  bottom: -200px;
  left: 36%;
  transform: translateX(-50%);
  z-index: 0;
  content: "";
  background-image: url("https://shopdesign-piece.com/wp-content/uploads/2025/08/img_surprise.png");
  background-size: cover;
  width: 168px;
  height: 155px;
}
@media screen and (max-width: 639px) {
  .top-about .smb-section__title.smb-section-side-heading__title:before {
    top: 50%;
    bottom: auto;
    left: 50%;
    width: 300px;
    height: 276px;
    opacity: 0.3;
  }
}
@media screen and (max-width: 420px) {
  .top-about .smb-section__title.smb-section-side-heading__title:before {
    top: 50%;
    bottom: auto;
    left: 50%;
    width: 300px;
    height: 276px;
    opacity: 0.3;
  }
}
@media screen and (max-width: 639px) {
  .top-about .smb-section__title.smb-section-side-heading__title:before {
    width: 240px;
    height: 221px;
  }
}

.c-row__col.c-row__col--1-1.c-row__col--md-2-3 {
  position: relative;
  z-index: 1;
}

/* Service セクション (Serviceページ共通) */
.service-illust .smb-section-break-the-grid__content {
  position: relative;
}
.service-illust .smb-section-break-the-grid__content:before {
  position: absolute;
  top: -30px;
  right: 55px;
  content: "";
  background-size: cover;
}
@media screen and (max-width: 480px) {
  .service-illust .smb-section-break-the-grid__content:before {
    top: -45px;
    right: 30px;
  }
}
@media screen and (max-width: 420px) {
  .service-illust .smb-section-break-the-grid__content:before {
    right: 15px;
  }
}
.service .service-illust--interior .smb-section-break-the-grid__content:before {
  width: 101px;
  height: 118px;
  background-image: url("https://shopdesign-piece.com/wp-content/uploads/2025/08/img_deskwork.png");
}
.service .service-illust--opening .smb-section-break-the-grid__content:before {
  width: 118px;
  height: 118px;
  background-image: url("https://shopdesign-piece.com/wp-content/uploads/2025/08/img_cheers.png");
}

/* Contact セクション（パターンブロック - 他ページでも使用） */
.wp-block-snow-monkey-blocks-box.contact-cta-box {
  position: relative;
  margin-top: 120px;
}
.wp-block-snow-monkey-blocks-box.contact-cta-box:before {
  position: absolute;
  top: -75px;
  right: 40px;
  content: "";
  width: 145px;
  height: 119.54px;
  background-image: url("https://shopdesign-piece.com/wp-content/uploads/2025/08/img_contact.png");
  background-size: cover;
  z-index: 1;
}
@media screen and (max-width: 1023px) {
  /* お問い合わせパターンブロック内、パターン > ボックス > セクション（サイド見出し） | 追加 CSS クラス contact-cta */
  .contact-cta
    > .smb-section__inner
    > .c-container
    > .smb-section__contents-wrapper
    > .c-row {
    flex-direction: column;
  }
  .contact-cta
    > .smb-section__inner
    > .c-container
    > .smb-section__contents-wrapper
    > .c-row
    > .c-row__col.c-row__col--1-1.c-row__col--md-1-4,
  .contact-cta
    > .smb-section__inner
    > .c-container
    > .smb-section__contents-wrapper
    > .c-row
    > .c-row__col.c-row__col--1-1.c-row__col--md-3-4 {
    --_item-width: 100%;
  }
}

/**
* Serviceページ
*/
/* フロー番号 */
.smb-step__item__number:before {
  font-size: 20px;
}

/**
* Aboutページ
*/
/* Features */
.about-features .smb-panels__item__content {
  margin-top: 0;
  text-align: left;
}

/**
 * 実績一覧ページ
 */
.works-list {
  padding-bottom: 50px;
}

.p-works-cats-nav__list {
  display: flex;
  gap: 2.6%;
  margin-bottom: 40px;
  padding: 0;
  list-style: none;
}
@media screen and (max-width: 767px) {
  .p-works-cats-nav__list {
    gap: 2%;
    flex-wrap: wrap;
    margin-bottom: 30px;
  }
}

.p-works-cats-nav__item {
  width: 23%;
  margin: 2.6% 0 0;
  padding: 0;
  border: 1px solid #ffb366;
  border-radius: 6px;
  background: #fffefe;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
@media screen and (max-width: 767px) {
  .p-works-cats-nav__item {
    width: 49%;
    margin: 2% 0 0;
  }
}

.p-works-cats-nav__item.is-active {
  background-color: #ffb366;
  font-weight: bold;
}
.p-works-cats-nav__item:hover {
  background-color: #fff0e5;
}
.p-works-cats-nav__item.is-active:hover {
  background-color: #ffb366;
  font-weight: bold;
}
.p-works-cats-nav__link {
  display: block;
  width: 100%;
  height: 100%;
  padding: 0.5em;
  text-align: center;
  text-decoration: none;
}
@media screen and (max-width: 767px) {
  .p-works-cats-nav__link {
    padding: 0.2em;
  }
}

.p-works-cats-nav__item.is-active .p-works-cats-nav__link {
  color: white;
}

/**
 * 実績詳細ページ
 */
.works-content {
  margin-bottom: 50px;
}
.works-wrapper {
  display: flex;
  gap: 30px;
  margin-top: 50px;
  margin-bottom: 90px;
}
@media screen and (max-width: 1023px) {
  .works-wrapper {
    flex-direction: column;
    margin-top: 30px;
  }
}
.p-works-title {
  margin-top: 50px;
  text-align: center;
}
@media screen and (max-width: 1023px) {
  .p-works-title {
    margin-top: 30px;
  }
}
.p-works-cats {
  margin-top: 10px;
  padding-left: 0;
  text-align: center;
}
.p-works-cats__item {
  list-style: none;
}
.p-works-cats__link {
  display: inline-block;
  padding: 0 8px;
  color: #ffb366;
  text-decoration: none;
  background: #fffefe;
  border-radius: 6px;
  border: 1px solid #ffb366;
}
.p-works-cats__link:hover {
  background: #fff0e5;
}

.my-works-slider {
  width: calc(100% - 320px - 30px);
}

.p-works-desc {
  width: 320px;
}
@media screen and (max-width: 1023px) {
  .p-works-desc {
    width: 100%;
  }
}

/* 実績詳細 Swiper */
.works-gallery {
  width: calc(100% - 320px - 30px);
}
@media screen and (max-width: 1023px) {
  .works-gallery {
    width: 100%;
  }
}

/* メイン */
.works-main {
  margin-bottom: 12px;
}
.works-main .swiper-slide {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f3f3f3;
  aspect-ratio: 3 / 2;
}
.works-main img {
  width: auto;
  height: 100%;
  object-fit: contain;
}

/* サムネ行（左右ボタン＋スライダー本体） */
.works-thumbs-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
}
.works-thumbs-prev,
.works-thumbs-next {
  position: relative;
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  border: 1px solid #ffb366;
  border-radius: 6px;
  background: #fffefe;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.works-thumbs-prev:hover,
.works-thumbs-next:hover {
  background-color: #fff0e5;
}
.works-thumbs-prev:before,
.works-thumbs-next:before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 18px;
  height: 18px;
  transform: translate(-50%, -50%);
  background-size: cover;
}
.works-thumbs-prev:before {
  background-image: url("https://shopdesign-piece.com/wp-content/uploads/2025/10/img_left-arrow.png");
}
.works-thumbs-next:before {
  background-image: url("https://shopdesign-piece.com/wp-content/uploads/2025/08/img_right-arrow.png");
}

.works-thumbs {
  flex: 1 1 auto;
  margin: 0 8px;
  padding: 6px 0;
}

/* サムネ画像 */
.works-thumbs img {
  width: 100%;
  height: 80px;
  object-fit: cover;
  display: block;
}
@media (max-width: 640px) {
  .works-thumbs img {
    height: 60px;
  }
}

/* アクティブ強調（中央＝現在） */
.works-thumbs .swiper-slide {
  opacity: 0.6;
  border: 2px solid transparent;
  box-sizing: border-box;
}
.works-thumbs .swiper-slide-active {
  opacity: 1;
  border-color: #ffb366;
}

/**
 * WordPress追加CSS分
 */
h2.wp-block-heading.is-style-default {
  color: #8a7850;
  padding: 1rem 1rem;
  border-left: 2px solid #ffb366;
  background: #ffe0b2;
}

h3.wp-block-heading.is-style-default {
  position: relative;
  padding: 0rem 1rem 1rem;
}

h3.wp-block-heading.is-style-default:after {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 6px;
  content: "";
  background-image: -webkit-repeating-linear-gradient(
    135deg,
    #ffb366,
    #ffb366 2px,
    transparent 2px,
    transparent 5px
  );
  background-image: repeating-linear-gradient(
    -45deg,
    #ffb366,
    #ffb366 2px,
    transparent 2px,
    transparent 5px
  );
  background-size: 7px 7px;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

h4.wp-block-heading.is-style-default {
  padding: 0 1rem;
  border-left: 5px double #ffb366;
}

:root :where(.is-layout-constrained, .is-layout-flow) > :where(h3) {
  border-bottom: none;
}
