@charset "UTF-8";

html {
  font-size: 16px;
  /* font-family */
}

html, body {
  height: 100%;
  background-color: #F9F9F8;
  margin: 0;
  padding: 0;
}


* {
  box-sizing: border-box;
}

img {
  max-width: 100%;
}

a {
  text-decoration: none;
  color: black;
}

a:hover {
  opacity: 0.6;
}

/* 共通 */
.hero {
  background-position: center top;
  background-size: cover;
  min-height: 100vh;
  position: relative;
  /* headerの高さ */
  margin-top: 92px;

  /* display: flex;
  align-items: center; 縦 */
  /* justify-content: flex; 横 */
  /* padding-left: 20%; */
}

.title-content {
  text-align: center;
}

.section-title {
  font-size: 2rem;
  margin-bottom: 1.5rem;
}

.text-content {
  padding: 40px 80px;
}

.green {
  color: #746F57;
}

ol {
  margin: 0;      
  padding-left: 20px;
}


/* header */
header {
  background-color: #f9f9f885;
  padding: 10px 40px;
  position: fixed;
  z-index: 1;
  width: 100%;
  top: 0;
  left: 0;
}

header h1 {
  width: 60px;
}

.header-contents {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.navigation-header__list {
  list-style-type: none;
  display: flex;
  gap: 40px;
}

.navigation-header__link {
  color: #CF2B0E;
}

/* TOPページ */
/* HERO */
.top {
  background-image: url(../images/hero.jpeg);
}
.top-text {
  font-size: 2.2rem;
  color: #ffffff;
  position: absolute;
  top: 70%;
  left: 60%;
  transform: translateY(-50%) translateX(-50%);

  line-height: 1.5;
  letter-spacing: 0.3rem;
}

.red {
  color: #CF2B0E;
  font-size: 2.5rem;
}

/* ITEM */
.item-link {
  background-image: url(../images/item-link.jpeg);
  background-position: center top;
  background-size: cover;
  min-height: 100vh;

  display: flex;
  align-items: flex-start; 
  justify-content: center;
  padding-top: 18%;
}

.view-more-button {
  margin-top: 40px;
}
.view-more {
  border: solid 1px black;
  padding: 8px 40px;
  margin-top: 40px;
}

/* blue */
.blue {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
}

/* care */
.care {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
}

/* オーダーメイド
.ordermade {
  display: grid;
  grid-template-columns: 1fr 1fr;
} */

/* footer */
footer {
  background-color: #f9f9f8;
  padding: 50px 0;
  text-align: center;
  color: #746F57;

}

/* ITEMページ */
.item {
  background-image: url(../images/item-hero.jpg);
  background-position: center top;
  background-size: cover;
  /* headerの高さ */
  margin-top: 92px;
  text-align: center;
}

.item-top-text {
  color: #fff;
  padding: 40vh 0;
  font-size: 2.3rem;
  letter-spacing: 0.2rem;
}

/* sunglasses */
.sunglasses {
  display: flex;
  justify-content: center;
  gap: 40px;
  align-items: center;
  margin: 80px 0;
}

.sunglasses-left {
  width: 32%;
  position: relative;
}

.sunglasses-right {
  width: 48%;
}

.sunglasses-left-text {
  position: absolute;
  top: 80%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: white;
  font-size: 2rem;
  font-weight: bold;
  text-align: center;
}

.sunglasses-right-items {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
}

.sunglasses-right-item  {
  max-width: 240px;
  max-height: 240px;
  -o-object-fit: cover;
  object-fit: cover;
}

/* glasses */
.glasses {
  display: flex;
  justify-content: center;
  gap: 40px;
  align-items: center;
  margin: 80px 0;
}

.glasses-left {
  width: 48%;
}

.glasses-left-items {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
}

.glasses-left-item {
  max-width: 240px;
  max-height: 240px;
  -o-object-fit: cover;
  object-fit: cover;
}

.glasses-right {
  width: 32%;
  position: relative;
}

.glasses-right-text {
  position: absolute;
  top: 80%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: white;
  font-size: 2rem;
  font-weight: bold;
  text-align: center;
}



/* readingglasses */
.readingglasses {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;

  align-items: center;
  padding: 0 10%;
}

.readingglasses-left {
  position: relative;
}

.readingglasses-left-text {
  position: absolute;
  top: 80%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: white;
  font-size: 2rem;
  font-weight: bold;
  text-align: center;
}

.item-container {
  max-width: 1200px;
  margin: 80px auto;
}


/* アニメーション */
#catchcopy.cc--reveal {
  display: inline-block;
  -webkit-filter: blur(2px);
          filter: blur(2px);
  -webkit-clip-path: inset(0 100% 0 0);
          clip-path: inset(0 100% 0 0);
  opacity: 0;
  -webkit-animation: ccReveal 2.0s cubic-bezier(.2,.7,.2,1) forwards;
  animation: ccReveal 2.0s cubic-bezier(.2,.7,.2,1) forwards;
}

@-webkit-keyframes ccReveal {
  0%   { -webkit-clip-path: inset(0 100% 0 0); clip-path: inset(0 100% 0 0); -webkit-filter: blur(2px); filter: blur(2px); opacity: 0; }
  60%  { opacity: 1; }
  100% { -webkit-clip-path: inset(0 0 0 0); clip-path: inset(0 0 0 0);   -webkit-filter: blur(0);   filter: blur(0);   opacity: 1; }
}

@keyframes ccReveal {
  0%   { -webkit-clip-path: inset(0 100% 0 0); clip-path: inset(0 100% 0 0); -webkit-filter: blur(2px); filter: blur(2px); opacity: 0; }
  60%  { opacity: 1; }
  100% { -webkit-clip-path: inset(0 0 0 0); clip-path: inset(0 0 0 0);   -webkit-filter: blur(0);   filter: blur(0);   opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
  #catchcopy.cc--reveal { -webkit-animation: none; animation: none; -webkit-filter: none; filter: none; -webkit-clip-path: none; clip-path: none; opacity: 1; }
}

 /* ここから下 */
  .main-content {
    padding: 120px 20px 60px;
    background-color: #F9F9F8;
    color: #000; /* 黒固定 */
    min-height: 100vh;
  }

  .contact-section {
    max-width: 800px;
    margin: 0 auto 60px;
    background: #fff;
    border-radius: 8px;
    padding: 40px 30px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.05);
    border-top: 5px solid #746F57;
    color: #000;
  }

  .ordermade-section {
    max-width: 800px;
    margin: 0 auto 60px;
    background: #fff;
    border-radius: 8px;
    padding: 20px 30px;
    color: #000;
  }

  .section-title,
  .ordermade-title {
    font-size: 1.6rem;
    margin-bottom: 10px;
    color: #746F57; 
    font-weight: 700;
  }

  .section-lead,
  .ordermade-text {
    margin-bottom: 30px;
    font-size: 0.95rem;
    color: #746F57; 
  }

  .contact-form .form-group {
    margin-bottom: 20px;
  }

  .contact-form label {
    display: block;
    font-weight: 700;
    margin-bottom: 6px;
    color: #746F57;
  }
  .contact-form input,
  .contact-form textarea {
    width: 100%;
    border: 1.5px solid #746F57; 
    padding: 10px 12px;
    font-size: 1rem;
    border-radius: 4px;
    background-color: #F9F9F8;
    color: #000;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
  }

  .contact-form input:focus,
  .contact-form textarea:focus {
    outline: none;
    border-color: #CF2B0E;
    box-shadow: 0 0 0 3px rgba(207, 43, 14, 0.2);
    color: #000;
  }
  .required {
    color: #CF2B0E; /* 赤 */
    font-size: 0.85rem;
    margin-left: 4px;
  }

  .form-note {
    color: #746F57;
    font-size: 0.85rem;
    margin-top: -15px;
    margin-bottom: 15px;
  }
  .btn-submit {
    background-color: #CF2B0E;
    color: #fff;
    padding: 12px 24px;
    border: none;
    border-radius: 4px;
    font-size: 1rem;
    cursor: pointer;
    font-weight: 700;
    transition: background-color 0.3s ease;
  }

  .btn-submit:hover {
    background-color: #a3220b;
  }

  .ordermade-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 20px;
  }

  .ordermade-title {
    flex-basis: 100%;
  }

  .ordermade-text {
    flex: 1 1 300px;
    line-height: 1.5;
    color: #000000; 
  }

  .ordermade-image {
    flex: 1 1 300px;
    text-align: center;
  }

  .ordermade-image img {
    max-width: 80%;
    border-radius: 8px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
  }
  .page-links {
    background-color: #F9F9F8;
    padding: 10px 20px;
    text-align: center;
    margin-top: 92px; 
  }

  .page-links ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: inline-flex;
    gap: 55px;
  }

  .page-links a {
    color: #746F57;
    font-weight: bold;
    font-size: 1.2rem; 
    border-bottom: 2px solid transparent;
    padding-bottom: 2px;
    transition: border-color 0.3s;
  }

  .page-links a:hover {
    border-color: #CF2B0E; 
  }

  /* 固定ヘッダーがあるページでアンカーリンクが見出しに隠れないよう調整 */
[id]::before {
  content: "";
  display: block;
  height: 92px;      /* ヘッダーの高さに合わせる */
  margin-top: -92px; /* 上にマイナスで引っ張る */
  visibility: hidden;
}

#contact,
#ordermade {
  display: block;
  padding-top: 92px;   /* ヘッダーの高さ分の余白を上に作る */
  margin-top: -92px;   /* 上に引っ張って位置調整 */
}

.ordermade-section {
  margin-top: 40px; /* 上に余白を追加 */
}