/* ============================================================ color ============================================================ */
:root {
    --bk: #2D2D2D;
    --wh: #FFFFFF;
	--pink: #B56564;
	--light-pink: #F6E6E5;
	--gray: #979797;
	--light-gray: #F5F4F2;
}

/* ============================================================ common ============================================================ */
html {
    font-size: 100%;
	scroll-behavior: smooth;
}
body {
    color: var(--bk);
    font-family: "Carlito", "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-style: normal;
	line-height: 1.6;
}
html, body {
  height: 100%;
  margin: 0;
}
.wrap {
	display: flex;
  	flex-direction: column;
  	min-height: 100vh;
}
main {
  flex: 1; /* コンテンツ部分を可変にする */
}
.footer {
  margin-top: auto; /* フッターを一番下に寄せる */
}
img {
    max-width: 100%;
    vertical-align: bottom;
}
li {
    list-style: none;
}
a {
    color: var(--bk);
    text-decoration: none;
	transition: 1s;
}
a:hover {
    opacity: 0.8;
	transition: 1s;
}
section {
	padding: 5rem 1rem;
}
.content-wrap {
    max-width: 1220px;
    margin: 0 auto;
}
h2 {
	font-size: 64px;
	text-align: center;
	margin-bottom: 4rem;
	letter-spacing: 0.05em;
	line-height: 0.6;
	font-weight: 700;
	color: var(--pink);
}
h2 span {
	font-size: 16px;
	letter-spacing: 0;
}
.h2-under {
	margin-bottom: 40px;
	text-align: center;
}
h3 {
	font-size: 20px;
	font-weight: 700;
}
.btn {
	text-align: center;
}
.btn a {
	background: var(--pink);
	color: var(--wh);
	padding: 0.75em;
	border-radius: 99px;
	display: inline-block;
	text-align: center;
	width: 250px;
	font-size: 18px;
	font-weight: 700;
}
.btn .btn-border {
	background: var(--wh);
	color: var(--pink);
}
.page-title-wrap {
	/*padding-top: 4rem;*/
}
.page-title {
	background: var(--pink);
	color: var(--wh);
	padding: 80px 0;
}
.page-title h2 {
	margin-bottom: 0;
}
.pc {
	display: block;
}
.sp {
	display: none;
}
@media screen and (max-width:480px) {
	.pc {
		display: none;
	}
	.sp {
		display: block;
	}
	html {
		font-size: 14px;
	}
	h2 {
		margin-bottom: 2.5rem;
	}
	h3 {
		font-size: 16px;
	}
	.page-title {
		padding: 40px 0;
	}
	section {
		padding: 4rem 1rem;
	}
	.h2-under {
		margin-bottom: 24px;
	}
}

/* ============================================================ header ============================================================ */
header {
	position: fixed;
	width: 100%;
	z-index: 99;
}
/* ベース */
  :root { --header-h: 64px; --gap: 40px; --max-w: 1220px; }

  /* ヘッダー基礎 */
  .site-header {
    position: sticky;
    top: 0;
    z-index: 999;
    background: var(--light-pink);
  }
  .header-inner{
    max-width: var(--max-w);
    margin: 0 auto;
    height: var(--header-h);
    padding: 0 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--gap);
  }
  .top-link{
    font-weight: 700;
    text-decoration: none;
    color: #111;
    letter-spacing: .01em;
	font-size: 32px;
	color: var(--pink);
  }

  /* デスクトップナビ（初期は非表示、メディアで表示） */
  .nav-desktop {
	  display: none;
	  align-items: center;
	  gap: var(--gap);
}
  .menu {
	  list-style: none;
	  margin: 0;
	  padding: 0;
	  display: flex;
	  gap: 20px;
	  align-items: center;
}
  .menu a {
	  text-decoration: none;
	  color: var(--bk);
	  font-weight: 500;
	  padding: 6px 4px;
	  display: inline-block;
}

  /* アクションリンク（ボタン風） */
  .menu-actions a.btn {
	  padding: 8px 14px;
	  border-radius: 99px;
	  display: inline-block;
	  background: var(--wh);
	  color: var(--pink);
	  width: 160px;
}
  .menu-actions a.btn-primary {
	  background: var(--pink);
	  color: var(--wh);
}

  /* ハンバーガー */
  .hamburger {
    width: 44px; height: 44px; border: 0; background: transparent; display: grid; place-items: center; cursor: pointer;
  }
  .hamburger-bar {
	  width: 22px; height: 2px; background: #111; display: block; position: relative;
}
  .hamburger-bar + .hamburger-bar {
	  margin-top: 5px;
}

  /* モバイルドロワー */
  .nav-mobile {
    position: absolute;
    inset: var(--header-h) 0 0 0; /* ヘッダー下から */
    background: #fff;
    border-top: 1px solid #eee;
    padding: 16px;
    display: none; /* JSで開閉 */
    box-shadow: 0 8px 24px rgba(0,0,0,0.06);
  }
  .nav-mobile .mobile-close {
    background: transparent; border: 0; font-size: 20px; padding: 6px; float: right; cursor: pointer;
  }
  .mobile-menu {
	  list-style: none; margin: 0; padding: 0;
	}
  .mobile-menu li {
	  margin-bottom: 24px;
}
  .mobile-menu a{ display: block; padding: 12px 6px; text-decoration: none; color: #111; border-radius: 8px; }

  .mobile-actions a.btn {
	  display: block; text-align: center; border-radius: 99px; padding: 10px;
	  background: var(--wh);
	  color: var(--pink);
}
  .mobile-actions a.btn-primary {
	  background: var(--pink); color: var(--wh); margin-top:8px;
}

  /* PC表示（1042px以上） */
  @media (min-width: 1042px){
    .nav-desktop {
		display: flex;
	}
    .hamburger {
		display: none;
	}
    .nav-mobile {
		display: none !important;
	}
  }

  /* モバイル表示（1042未満） - ハンバーガー表示、デスクトップナビ非表示 */
  @media (max-width: 1041px) {
    .nav-desktop {
		display: none;
	 }
    .hamburger {
		display: block;
	 }
    .nav-mobile {
		display: none;
	 }
    .site-header.mobile-open .nav-mobile {
		display: block;
	 }
	 .nav-mobile {
		background: var(--light-pink);
		height: 100vh;
		margin-top: -65px;
		 text-align: center;
	 }
	 .mobile-menu {
		margin-top: 48px;
	 }
	 .mobile-close {
		margin-top: -6px;
    	margin-right: 7px;
	 }
	 .mobile-actions {
		margin-top: 24px;
	 }
  }

  /* 簡単なアニメーション（任意） */
  .site-header .nav-mobile { transition: transform .22s ease, opacity .22s ease; }

/* ============================================================ page:top ============================================================ */
.slider {
	width: 100%;
    margin: 0 auto;
}
.slider img {
	width: 100%;
}
.slider .slick-slide {
    height: auto!important;
}
.main-visual {
	/*padding-top: 71px;*/
}
.main-visual .slider {
	background: var(--light-pink);
    padding: 40px 0;
}
.main-visual .slider button {
	display: none !important;
}
.main-visual .slider .slick-slide {
	width: 172px !important;
}
.main-visual .slider .slick-slide {
    margin-right: 24px;
}
.main-visual .slider .slick-track {
    margin-right: -24px;
}

.price-area {
	text-align: center;
	background: var(--light-gray);
}
.price {
	font-size: 24px;
	margin-bottom: 2.5rem;
	font-weight: 700;
}
.price span {
	font-size: 64px;
}
.price-content ul {
	display: flex;
	justify-content: center;
    flex-wrap: wrap;
    gap: 1rem;
	margin: 40px auto;
}
.price-content ul li {
	border: 1px solid var(--gray);
	padding: 0.6em 0 0.4em;
	width: 157px;
	font-weight: 700;
	font-size: 14px;
	background: var(--wh);
}

.works .slider2 button {
	display: none !important;
}
.works .slider2 .slick-slide {
	width: 300px !important;
}
.works .slider2 .slick-slide {
    margin-right: 64px;
}
.works .slider2 .slick-track {
    margin-right: -64px;
}
.works-title {
	font-size: 18px;
	font-weight: 700;
	text-align: center;
	margin-top: 1em;
}
.works-list {
	margin-top: 40px;
}

.flow {
	background: var(--light-pink);
}
.flow-content {
	background: white;
    padding: 24px;
    border-radius: 0.75rem;
    display: flex;
    align-items: center;
    gap: 24px;
	max-width: 1080px;
	margin-bottom: 40px;
}
.last {
	margin-bottom: 0;
}
.flow-client {
	background: var(--pink);
	color: var(--wh);
	flex-direction: row-reverse;
	margin: 0 0 40px auto;
}
.flow-content h3 {
	margin-bottom: 0.5rem;
}
.flow-content div {
	border-left: 2px solid var(--light-gray);
	padding-left: 1.5rem;
}
.flow-client div {
	border-left: none;
	padding-left: 0;
	border-right: 2px solid var(--wh);
	padding-right: 1.5rem;
}

.faq-content {
	background: var(--light-pink);
	padding: 1rem 1.5rem;
	border-radius: 0.75rem;
	margin-bottom: 1.5rem;
}
.faq-content:last-child {
	margin-bottom: 0;
}
.faq-content p {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}
.faq-content hr {
	margin: 0.75rem 0;
	background: var(--wh);
	border: none;
	height: 2px;
}
.faq-q {
	font-size: 18px;
	font-weight: 700;
}

.coconala {
	margin-top: 4rem;
	text-align: center;
}
.coconala p {
	margin-bottom: 0.5rem;
}

.news {
	background: var(--light-gray);
}
.news .content {
	background: var(--wh);
	padding: 4rem 5rem;
	border-radius: 1.5rem;
}
.news-list {
	max-width: 100vw;
}
.news-list li {
	padding: 1.5em 1em;
}
.post-date {
	margin-right: 2rem;
	font-weight: 700;
}
.more-link {
	font-size: 1.5rem;
	text-align: right;
	margin-top: 1em;
}
.news hr {
	background: var(--light-gray);
	border: none;
	height: 2px;
}

.contact {
	background: var(--light-pink);
}
.btn-wrap {
	display: flex;
    justify-content: center;
    align-items: center;
    gap: 40px;
}
.btn-wrap p {
	margin-bottom: 4px;
	font-size: 14px;
}

@media screen and (max-width:480px) {
	.price-area .h2-under {
		margin-bottom: 0;
	}
	.price {
		font-size: 20px;
		margin-bottom: 0.5rem;
	}
	.price span {
		font-size: 48px;
	}
	.price-content ul {
		margin: 24px auto;
	}
	
	.flow-content {
		flex-direction: column;
		gap: 1rem;
		padding: 1rem 1.25rem;
		margin-bottom: 24px;
	}
	.flow-content:last-child {
		margin-bottom: 0;
	}
	.flow-content div {
		border-left: none;
    	padding-left: 0;
		border-top: 2px solid var(--light-gray);
    	padding-top: 0.75rem;
	}
	.flow-client div {
		border-right: none;
    	padding-right: 0;
	}
	
	.faq-q {
		font-size: 16px;
	}
	
	.news-list li {
		padding: 1em;
	}
	.news .content {
		padding: 2rem 1rem;
	}
	
	.btn-wrap {
		flex-direction: column;
	}
}

/* ============================================================ footer ============================================================ */
footer {
	background: var(--pink);
	color: var(--wh);
	padding: 24px 0 12px;
	text-align: center;
	font-size: 12px;
}
.footer-content {
	display: flex;
	justify-content: center;
	gap: 32px;
	font-size: 14px;
	margin-bottom: 8px;
}
.footer-content a {
	color: var(--wh);
	display: inline-block;
}

/* ==================================================== page:contact, page:order ==================================================== */
.page-title h2 {
	margin-bottom: 0;
	color: var(--wh);
}
.page-contact .cf7-table {
	margin-top: 2.5rem;
	width: 100%;
}
.page-contact .content {
	max-width: 880px;
    margin: auto;
}
.page-contact .cf7-table tr {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 1.5rem;
}
.page-contact .cf7-table td {
	width: 100%;
	max-width: 664px;
}
.page-contact th p {
	white-space: nowrap;
	width: 160px;
}
.page-contact th p, .page-contact textarea {
	font-weight: 400;
}
.page-contact .wpcf7-form-control-wrap {
	width: 100%;
}
.page-contact input, .page-contact textarea {
	background: var(--wh);
	border: 1px solid #929292;
	width: 100%;
	border-radius: 4px;
	padding: 4px 8px;
}
.required, .any {
	font-size: 12px;
	background: var(--pink);
	padding: 4px 8px;
	color: var(--wh);
	border-radius: 4px;
	margin-right: 8px;
}
.any {
	background: var(--gray);
	color: var(--wh);
}
.page-contact .wpcf7-submit {
	background: var(--pink);
    margin: 1rem auto;
	text-align: center;
	padding: 0.5em 2.5em;
	color: var(--wh);
	transition: .5s;
	border-radius: 99px;
	border: none;
	max-width: 200px;
}
.page-contact .wpcf7-submit:hover {
	background: var(--pink);
	color: var(--wh);
	transition: .5s;
}
.submit-area {
	text-align: center;
}
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.payment-required .wpcf7-response-output {
	border: none;
	font-size: 12px;
	margin: 0.5rem auto 0;
	padding: 0;
	text-align: center;
}
.wpcf7-not-valid-tip {
	font-size: 12px;
}
.wpcf7-spinner {
	display: none;
}
.page-contact .recaptcha {
	text-align: center;
}
.grecaptcha-badge { visibility: hidden; }
@media screen and (max-width:480px) {
	.page-title h2 {
		line-height: 1;
    	font-size: 40px;
	}
	.page-contact .cf7-table tr {
		flex-direction: column;
		align-items: flex-start;
		gap: 4px;
	}
}

/* ========================================================== page:service ========================================================== */
.service-table {
  	border-collapse: collapse;
  	width: 100%;
	margin: 2.5rem auto;
}
.service-table td {
	border: 1px solid #D7DADE;
	padding: 0.75em 0;
	vertical-align: middle;
	padding: 2rem;
}
.service-table td:first-child {
	font-weight: 700;
	white-space: nowrap;
	background: var(--light-gray);
}
.service-table td.service-title {
	background: var(--pink);
	color: var(--wh);
	text-align: center;
}
.attention h3 {
	margin-bottom: 0.5rem;
}
.attention p {
	font-size: 0.875em;
}
@media (max-width: 780px) {
  .service-table, .service-table tbody, .service-table tr, .service-table td {
    display: block;
    width: 100%;
  }
  .service-table tr {
    margin-bottom: 1.5rem;
  }
	.service-table td {
		padding: 0;
		padding: 1rem;
	}
}

/* ======================================================== page:legal info ======================================================== */
.legal-info-table {
  	border-collapse: collapse;
  	width: 100%;
	margin: auto;
}
.legal-info-table td {
	border: none;
	padding: 0.75em 0;
	vertical-align: middle;
}
.legal-info-table td:first-child {
	font-weight: 700;
	padding-right: 4em;
	white-space: nowrap;
}
@media (max-width: 780px) {
  .legal-info-table, .legal-info-table tbody, .legal-info-table tr, .legal-info-table td {
    display: block;
    width: 100%;
  }
  .legal-info-table tr {
    margin-bottom: 1.5rem;
  }
	.legal-info-table td {
		padding: 0;
	}
}

/* ====================================================== page:privacy-policy ====================================================== */
.page-privacy-policy h3 {
	margin: 2.5rem 0 0.5rem;
}

/* =========================================================== animation =========================================================== */
.fade-content {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 2s ease, transform 2s ease;
}
.fade-content.visible {
  opacity: 1;
  transform: translateY(0);
}
