/*
Theme Name: Yadokari Design
Description: ヤドカリデザインのテーマです。
Author: Rina Sugiyama
Version: 1.0
*/
@charset "utf-8";

/* ------------------------------
カラーコード
------------------------------ */
:root {
    --white: #FFFEFA;
    --beige: #D5CDBB;
    --brown: #4D4034;
    --shadow:rgba(148, 148, 148, 0.05);
}
/* ------------------------------
背景・文字
------------------------------ */
* {
    box-sizing: border-box;
}
html {
    font-size: 62.5%;
    /* 16px * 62.5% = 10px */
    width: 100%;
    scroll-behavior: smooth;
}
body {
    color: var(--brown);
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 400;
    font-style: normal;
    font-size: 1.6rem;
    line-height: 1.5;
    text-align: center;
    letter-spacing: 0.15rem;
}
h1, h2 {
    font-size: 4.8rem;
    letter-spacing: 0.3rem;
}
h3, h4{
  font-size: 3.2rem;
    letter-spacing: 0.3rem;
}
h5{
  font-size: 2.4rem;
  text-align: left;
}
a {
    color: var(--brown);
    text-decoration: none;
}
a:hover {
    opacity: 0.8;
}
p{
  text-align: left;
}
ul {
  list-style-type: square;
}
li{
  text-align: left;
}
li::marker{
  color: var(--beige);
}
.en{
  font-family: "Forum", serif;
  font-weight: 400;
  font-style: normal;
}
.none {
    display: none;
}


@media(max-width:768px) {
    body {
        font-size: 1.4rem;
        letter-spacing: 0.1rem;
    }
h1, h2 {
    font-size: 3.2rem;
    letter-spacing: 0.3rem;
}
h3, h4{
  font-size: 2.4rem;
    letter-spacing: 0.3rem;
}
h5{
  font-size: 1.8rem;
}
}

/* ------------------------------
背景画像
------------------------------ */
html:before{
    content: "";
    display: block;
    position: fixed;
    inset: 0;
    z-index: -1;
    background: url("assets/img/paper.png") center no-repeat;
    background-size: cover;
}
header aside small{
  font-size: 1.2rem;
  writing-mode: vertical-rl;
  position: fixed;
  top: 50%;
  right: 40px;
  transform: translateY(-50%);
  z-index: 20;
}
@media (max-width: 768px){
header aside small{
  font-size: 1.0rem;
  right: 5%;
  opacity: 0.5;
}
}
/* ------------------------------
コンテナ
------------------------------ */
.container{
  background-color: var(--white);
  border-radius: 8px;
  padding: 80px;
  position: relative;
}
.container h4{
  position: absolute;
  top: -24px;
  left: 60px;
}
@media (max-width: 768px){
.container{
  padding: 40px 40px;
}
.container h4{
  top: -16px;
  left: 30px;
}
}
/* ------------------------------
ライン / シャドウ
------------------------------ */
.line{
  position: relative;
  margin-left: 120px;
}
.line::after{
  position: absolute;
  content: "";
  width: 40px;
  height: 1px;
  background-color: var(--brown);
  top: 50%;
  left: -80px;
}
.shadow{
  box-shadow: 2px 2px 20px var(--shadow);
}
@media (max-width: 768px){
.line{
  margin-left: 60px;
}
.line::after{
  width: 20px;
  left: -40px;
}
}

/* ------------------------------
ヘッダー
------------------------------ */
header nav{
  position: fixed;
  top: 40px;
  right: 40px;
  background-color: var(--white);
  padding: 16px 40px;
  border-radius: 16px;
  z-index: 99;
}
header nav ul{
  list-style: none;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  gap: 24px;
}
header nav ul li{
  font-size: 1.8rem;
  letter-spacing: 0.2rem;
}
.sns-icon img{
  display: block;
  width: 18px;
  height: 18px;
}
.button{
  font-size: 1.8rem;
  display: block;
  width: fit-content;
  background-color: var(--brown);
  padding: 8px 24px;
  border-radius: 99px;
    color: var(--white);
    transition: 0.6s;
}
.button:hover{
  transform: scale(1.05);
}
.sub-button{
    font-size: 1.8rem;
  display: block;
  width: fit-content;
  border-top: 1px solid var(--brown);
  border-bottom: 1px solid var(--brown);
    padding: 8px 48px 8px 24px;
    position: relative;
}
.sub-button::after{
  content: "";
  position: absolute;
  top: 50%;
  right: 24px;
  transform: translateY(-50%);
  border-top: 5px solid transparent;
  border-bottom: 5px solid transparent;
  border-left: 6px solid var(--brown);
  transition: 0.3s ease-out;
}
.sub-button:hover::after{
  transform: translateY(-50%) translateX(4px);
}



/* ------------------------------
ハンバーガーメニュー
------------------------------ */
.hum-menu{
  display: none;
}

@media (max-width: 768px){
  header nav{
  position: fixed;
  top: 0px;
  right: 0px;
  padding: 120px 40px 80px;
  border-radius: 0 0 0 16px;
      transform: translateX(110%);
    transition: transform 0.6s ease-out;
}
header.on nav{
      transform: translateX(0);
}
header nav ul{
  flex-direction:column;
  gap: 32px;
}
.hum-menu {
    position: fixed;
    top: 60px;
    right: 5%;
    width: 50px;
    height: 50px;
    display: flex;
    flex-direction: column;
    align-items: center;
    cursor: pointer;
    pointer-events: all;
    z-index: 999;
}
.hum-menu span {
    content: '';
    width: 24px;
    height: 2px;
    background-color: var(--brown);
}
header .hum-menu span:nth-child(1) {
    transform: translateY(-2px);
    transition: 0.2s ease-in;
}
header .hum-menu span:nth-child(2) {
    transform: translateY(4px);
    transition: 0.2s ease-in;
}
header.on .hum-menu span:nth-child(1) {
    transform: translateY(2px) rotate(45deg);
}
header.on .hum-menu span:nth-child(2) {
    transform: translateY(0) rotate(-45deg);
}
}


/* ------------------------------
MV
------------------------------ */
.mv{
  max-width: 1440px;
  margin: 0 auto;
  width: 100%;
  height: 100lvh;
  padding: 60px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}
.mv-title{
  position: relative;
}
.mv-title::after{
  position: absolute;
  content: "";
  background-image: url(assets/img/yadokari.png);
  background-size: contain;
  background-repeat: no-repeat;
  width: 80px;
  height: 80px;
  top: 20px;
  right: -100px;
}
.mv-title p{
  text-align: left;
}

@media (max-width: 768px){
.mv{
  margin-top: -40px;
  padding: 0 0 0 8%;
}
.mv-title::after{
  top: 60px;
  right: -20px;
}
}

/* ------------------------------
セクションタイトル／ページタイトル
------------------------------ */
.section-title{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.section-title p{
  text-align: left;
}
.page-title{
    display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  margin: 160px auto 120px;
}
.page-title p{
  text-align: center;
}
@media (max-width: 768px){
  .page-title{
    margin: 80px auto;
  }
}

/* ------------------------------
メッセージ
------------------------------ */
.message{
  max-width: 360px;
  margin: 0 auto 160px;
}
.message p{
  text-align: center;
  padding:20px 32px;
  border-bottom: 1px solid var(--beige);
}
.message p:nth-of-type(2).fadeIn{
  transition-delay: 0.3s;
}
.message p:nth-of-type(3).fadeIn{
  transition-delay: 0.6s;
}
.message p:nth-of-type(4).fadeIn{
  transition-delay: 0.9s;
}
.message p:nth-of-type(5).fadeIn{
  transition-delay: 1.2s;
}

@media (max-width: 768px){
.message{
  width: 90%;
  margin: 0 auto 80px;
}
.message p{
  padding:16px 8px;
}
}

/* ------------------------------
プロフィール
------------------------------ */
.profile{
  width: 100%;
  max-width: 1040px;
  margin: 0 auto 160px;
  padding: 40px;
}
.profile-container{
  display: flex;
  justify-content: space-around;
  align-items: center;
  gap: 40px;
  margin: 80px 0;
}
.profile-text{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left
}
.profile-text>p{
  margin-bottom: 40px;
}
.profile-link{
  display: flex;
  flex-direction: row;
  align-items: center;
  margin: 16px 0 64px;
}
.profile-img img{
  width: 100%;
  max-width: 400px;
  aspect-ratio: 4/3;
  border: 8px solid var(--white);
}

@media (max-width: 768px){
  .profile{
  margin: 0 auto 80px;
  padding: 5%;
}
.profile-container{
  flex-direction: column-reverse;
}
.profile-link{
  margin: 16px 0 40px;
}
.profile .sub-button{
  margin: 0 auto;
}
}

/* ------------------------------
カテゴリー
------------------------------ */
.tabs{
  display:flex;
  gap:28px;
  justify-content:center;
  align-items:center;
  margin:40px 0 32px;
}
.tabs .tab{
  appearance:none;
  border:0;
  background:var(--white);
  color:var(--brown);
  font-size: 1.8rem;
  letter-spacing: 0.1rem;
  padding:14px 40px;
  border-radius:6px;
  box-shadow:0 0 0 1px rgba(0,0,0,.06) inset;
  cursor:pointer;
}
.tabs .tab:is(:hover,:focus-visible){
  outline:none;
  box-shadow:0 0 0 2px rgba(0,0,0,.12) inset;
}
.tabs .tab.is-active{
  background:var(--beige);
  box-shadow:none;
}
[hidden]{ display:none !important; }

@media (max-width: 768px){
.tabs{
  flex-wrap: wrap;
  gap:16px;
  margin:40px 0 32px;
}
.tabs .tab{
  font-size: 1.4rem;
  padding:8px 20px;
}
}

/* ------------------------------
ページネーション
------------------------------ */
.pagination,.work-pager{
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 24px;
}
.pagination span, .pagination a{
  display: flex;
  justify-content: center;
  align-items: center;
  width: 40px;
  height: 40px;
  border-radius: 100px;
  border: 1px solid var(--beige);
  padding-bottom: 2px;
}
.pagination .current{
  background-color: var(--beige);
}
.work-pager .prev, .work-pager .next{
  width: 30%;
}

/* ------------------------------
コンタクト
------------------------------ */
.contact{
  width: 100%;
  max-width: 1040px;
  height: 100%;
  margin: 0 auto;
  background-image: url(assets/img/bubble.png);
  background-size: cover;
  background-repeat: no-repeat;
  padding: 40px;
  display: flex;
  flex-direction: column;
    justify-content: center;
  align-items: center;
  gap: 40px;
}
.contact .section-title{
  margin-top: -80px;
  text-align: center;
}
@media (max-width: 768px){
.contact .section-title{
  margin-top: -64px;
}
}
/* ------------------------------
フッター
------------------------------ */
footer{
  padding: 120px 0;
}
footer p{
  text-align: center;
}
.grecaptcha-badge { visibility: hidden; }

/* ------------------------------
アニメーション
------------------------------ */

/* 下からフェードイン */
.fadeIn {
    transform: translate3d(0, 10px, 0);
    transition: 1.8s;
    opacity: 0;
}
.fadeIn.animated {
    transform: translate3d(0, 0, 0);
    opacity: 1;
}

.mv-title::after {
  transform-origin: bottom center;
  animation: step 2s ease-in-out forwards, wobble 2s ease-in-out forwards;
}

@keyframes step {
  from { translate: 20px 0;
  scale: 0.8; }
  to   { translate: 0 0;
  scale: 1; }
}
@keyframes wobble {
  0%,40%,80% { rotate: -5deg; }
  20%,60%,100% { rotate: 5deg; }
}