/* ==========================================================================
   1. Variables & Global Utilities
   ========================================================================== */
:root {
  --color-primary: #ac1d24;
  --color-secondary: #b6985c;
  --color-dark: #222222;
  --color-light: #ffffff;
  --color-border: #b6985c;
  --color-disabled: #707070;

  --font-serif: 'Shippori Mincho', serif;
  --font-sans: 'Noto Sans JP', sans-serif;

  --max-width-content: 750px;

  /* Line Height Variables */
  --lh-ss: 1.25; /* ボタン・タイトル・1行見出し */
  --lh-s: 1.4;   /* 標準的な見出し */
  --lh-m: 1.6;   /* 通常の本文・説明文 */
  --lh-l: 1.8;   /* ゆとりのある本文 */
}

/* Visibility Utilities */
.only_pc { display: block; }
.only_sp { display: none; }
.only-tab { display: block; }

@media only screen and (max-width: 768px) {
  .only_pc { display: none !important; }
  .only_sp { display: block !important; }
  .only-tab { display: none !important; }
}

@media only screen and (min-width: 1024px) {
  .only-tab { display: none !important; }
}

/* Base Reset Helpers */
figure img,
.head_logo > img {
  display: block;
  width: 100%;
  height: auto;
}

.container1 {
  width: var(--max-width-content);
  margin: auto;
}

@media only screen and (max-width: 768px) {
  .container1 {
    width: 100%;
  }
}

.head_logo > img {
  width: 130px;
  margin: auto;
  padding: 20px 0;
}

/* ==========================================================================
   2. Components (Back to Top / Sticky Banner / Sold-Out Mask)
   ========================================================================== */
#to-top {
  position: fixed;
  width: 60px;
  height: 60px;
  bottom: 100px;
  right: 100px;
  background-color: var(--color-primary);
  border-radius: 50%;
  cursor: pointer;
  z-index: 3;
}

#to-top picture {
  position: absolute;
  top: 1rem;
  left: 50%;
  transform: translateX(-50%);
}

#to-top .to-top-texts {
  position: absolute;
  color: var(--color-light);
  font-size: 1.2rem;
  line-height: var(--lh-ss);
  top: 2.5rem;
  left: 50%;
  text-align: center;
  transform: translateX(-50%);
}

@media only screen and (max-width: 768px) {
  #to-top {
    bottom: 94px;
    right: 15px;
  }
}

#sticky {
  position: fixed;
  width: 100%;
  bottom: 0;
  right: 0;
  z-index: 3;
  overflow: hidden;
  display: none;
}

#sticky.only_pc {
  width: 15%;
  left: 2%;
  bottom: 3%;
  min-width: 120px;
  max-width: 186px;
}

#sticky.only_pc:hover {
  opacity: 0.8;
}

.sold-out-mask {
  display: none;
  position: absolute;
  inset: 0;
  background-color: rgba(34, 34, 34, 0.8);
}

.sold-out-mask .sold-out-text-main {
  font-family: var(--font-serif);
  font-weight: bold;
  font-size: 2.4rem;
  line-height: var(--lh-ss);
  text-align: center;
  color: var(--color-light);
  margin-top: 6.8rem;
}

.sold-out-mask.seg-active {
  display: block;
  border-radius: 0.5rem;
}

.sold-out-mask.seg-active .sold-out-text-main {
  font-size: 3.6rem;
  margin-top: 15.25rem;
}

/* ==========================================================================
   3. Promises Section
   ========================================================================== */
#promises,
.promises_top {
  width: 100%;
  background: url('/rb/osechi/pb/fuku/assets/images/bg/red.jpg') top repeat;
  background-size: contain;
  background-blend-mode: multiply;
  overflow: hidden;
}

.promises_top .wrapper_top {
  width: 76rem;
  margin: 0 auto;
}

#promises .wrapper {
  width: 68rem;
  padding-bottom: 12rem;
  margin: 0 auto;
  background: url('/rb/osechi/pb/fuku/assets/images/bg/promises-top.png') top center no-repeat;
}

#promises .promises-heading {
  width: 40%;
  padding: 4rem 0 1rem;
  margin: 0 auto;
}

#promises .item {
  display: flex;
  column-gap: 2.4rem;
  padding: 0 2.5rem;
  margin: 2.4rem auto 0;
  width: 100%;
}

#promises .item .title {
  position: relative;
}

#promises .item .title .text {
  position: absolute;
  display: flex;
  width: 14rem;
  height: 15rem;
  top: 6rem;
  flex-direction: column;
  writing-mode: vertical-rl;
  font-family: var(--font-serif);
  background-color: var(--color-light);
  padding: 0 2.2rem 0 2.6rem;
  z-index: 1;
}

#promises .item .title .keyword {
  font-size: 2.8rem;
  font-weight: bold;
  line-height: var(--lh-ss);
}

#promises .item .title .keyword span:nth-of-type(2) {
  writing-mode: horizontal-tb;
  font-size: 1.2rem;
}

#promises .item .title .content {
  font-size: 1.8rem;
  font-weight: bold;
  line-height: 1.33;
  letter-spacing: 0.5rem;
}

#promises .item .title .image {
  position: relative;
  width: 26rem;
}

#promises .item .title .number {
  position: absolute;
  z-index: 1;
}

#promises .item .description-container {
  color: var(--color-light);
}

#promises .item .description {
  font-size: 1.4rem;
  letter-spacing: 0.5px;
  line-height: 1.71;
}

#promises .item .additional {
  font-size: 1.2rem;
  letter-spacing: 0.06rem;
  line-height: var(--lh-m);
  margin-top: 10px;
}

/* Item Variations */
#promises .item:nth-of-type(1) .title .text .keyword { letter-spacing: 0.1rem; padding-top: 3.5rem; }
#promises .item:nth-of-type(1) .title .text .keyword span:nth-of-type(2) { padding-top: 1.25rem; }
#promises .item:nth-of-type(1) .title .text .content { padding-top: 3.3rem; padding-right: 0.8rem; }
#promises .item:nth-of-type(1) .title .image { margin-left: 3.5rem; }
#promises .item:nth-of-type(1) .title .number { width: 4.75rem; top: 3.2rem; left: 4.75rem; }
#promises .item:nth-of-type(1) .description { padding-top: 3.5rem; }
#promises .item:nth-of-type(1) .additional { padding-top: 0.5rem; }

#promises .item:nth-of-type(2) { margin-top: 5.5rem; }
#promises .item:nth-of-type(2) .title .text { height: 19.2rem; top: 3.25rem; right: -0.25rem; }
#promises .item:nth-of-type(2) .title .text .keyword { letter-spacing: 0.3rem; padding-top: 2.4rem; }
#promises .item:nth-of-type(2) .title .text .keyword span:nth-of-type(2) { padding-top: 0.75rem; letter-spacing: 0.1rem; }
#promises .item:nth-of-type(2) .title .text .content { line-height: 1.33; letter-spacing: 0.4rem; padding-top: 2.5rem; padding-right: 0.8rem; }
#promises .item:nth-of-type(2) .title .image { margin-right: 3.3rem; }
#promises .item:nth-of-type(2) .title .number { width: 5rem; top: 0.2rem; right: 4.5rem; }
#promises .item:nth-of-type(2) .description { padding-top: 4.5rem; }
#promises .item:nth-of-type(2) .additional { padding-top: 0.5rem; }

#promises .item:nth-of-type(3) { margin-top: 5.5rem; }
#promises .item:nth-of-type(3) .title .text { width: 15.3rem; height: 17.6rem; top: 4.8rem; }
#promises .item:nth-of-type(3) .title .text .keyword { letter-spacing: 0.3rem; padding-top: 3.1rem; }
#promises .item:nth-of-type(3) .title .text .content { line-height: 1.33; letter-spacing: 0.4rem; padding-top: 3.3rem; padding-right: 0.8rem; }
#promises .item:nth-of-type(3) .title .image { margin-left: 3.5rem; }
#promises .item:nth-of-type(3) .title .number { width: 5.75rem; top: 0.8rem; left: 4.75rem; }
#promises .item:nth-of-type(3) .description { padding-top: 6.5rem; }
#promises .item:nth-of-type(3) .additional { padding-top: 0.5rem; }

@media only screen and (max-width: 768px) {
  .promises_top .wrapper_top { width: 100%; }
  #promises, .promises_top {
    height: auto;
    padding-bottom: 3.2rem;
    background-position: center;
  }
  #promises .wrapper, .promises_top .wrapper {
    padding-bottom: 0;
    width: 100%;
    background-size: contain;
  }
  #promises .item {
    padding: 0;
    flex-direction: column;
  }
  #promises .promises-heading { width: 60%; padding: 3.4rem 0 1rem; }
  #promises .item_sp { width: 100%; margin: 0 auto 20px; }
  #promises .item_sp .description-container {
    color: var(--color-light);
    line-height: var(--lh-l);
    font-size: 1.4rem;
    margin: 3% auto 0;
    padding: 0 8% 8%;
    letter-spacing: 0.05rem;
  }
  #promises .item_sp .description-container .additional {
    font-size: 1.2rem;
    line-height: var(--lh-s);
    margin: 3% auto 0;
  }
  #promises .item:nth-of-type(1) .title .image {
    display: flex;
    width: 100%;
    height: auto;
    justify-content: flex-end;
    padding-left: 3.5rem;
    margin-left: 0;
  }
  #promises .item:nth-of-type(1) .description { padding: 2.25rem 2.5rem 0; }
  #promises .item:nth-of-type(1) .additional { padding: 0.6rem 2.5rem 0; }
  
  #promises .item:nth-of-type(2) { flex-direction: column-reverse; }
  #promises .item:nth-of-type(2) .title .text { padding: 0.6rem 2.5rem 0; }
  #promises .item:nth-of-type(2) .title .text .keyword { padding-top: 1.5rem; }
  #promises .item:nth-of-type(2) .title .image {
    width: 100%;
    height: auto;
    display: flex;
    justify-content: flex-start;
    padding-right: 3.5rem;
    margin-left: 0;
  }
  #promises .item:nth-of-type(2) .title .number { top: 0; }
  #promises .item:nth-of-type(2) .description { padding: 2.25rem 1rem 0 2.5rem; }
  #promises .item:nth-of-type(2) .additional { padding-left: 2.5rem; }

  #promises .item:nth-of-type(3) .title .image {
    display: flex;
    width: 100%;
    height: auto;
    justify-content: flex-end;
    padding-left: 3.5rem;
    margin-left: 0;
  }
  #promises .item:nth-of-type(3) .description { padding: 2.25rem 2.5rem 0; }
  #promises .item:nth-of-type(3) .additional { padding-left: 2.5rem; }
}

/* Kodawari & CTA */
.area_kodawari {
  width: var(--max-width-content);
  margin: 3rem auto 1rem;
}
.area_kodawari figure {
  width: 100%;
  max-width: var(--max-width-content);
  height: auto;
  margin: 0 auto;
}
.area_cta {
  width: 76rem;
  margin: auto;
  padding-bottom: 10px;
}
@media only screen and (max-width: 768px) {
  .area_kodawari { width: 100%; margin: 1rem auto; }
}

/* ==========================================================================
   4. Craftsmanship Section
   ========================================================================== */
#craftsmanship {
  width: 100%;
  background-image: url('/rb/osechi/pb/fuku/assets/images/bg/yellow.jpg');
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  padding-bottom: 60px;
}

#craftsmanship .wrapper {
  display: grid;
  width: 100%;
  max-width: 760px;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: 240px 240px auto;
  column-gap: 8px;
  row-gap: 24px;
  padding: 72.5px 32px 16px;
  margin: 0 auto;
}

#craftsmanship .craftsmanship-heading {
  display: flex;
  grid-column: 1/2;
  grid-row: 1/2;
  flex-direction: column;
  font-size: 20px;
  font-family: var(--font-serif);
  align-items: center;
  line-height: var(--lh-m);
  margin-top: 60px;
}

#craftsmanship .craftsmanship-heading .empathize {
  font-size: 26px;
  line-height: var(--lh-s);
  margin-top: 4px;
  letter-spacing: 0.5px;
  font-weight: bold;
}

#craftsmanship .craftsmanship-heading .empathize span {
  color: var(--color-secondary);
}

#craftsmanship .container {
  position: relative;
  font-family: var(--font-serif);
}

#craftsmanship .container .ribbon {
  position: absolute;
  width: 3.2rem;
  top: -1.6rem;
  writing-mode: vertical-rl;
  background-color: #000;
  color: var(--color-light);
  font-size: 18px;
  line-height: var(--lh-ss);
  padding: 18px 0 14px;
  letter-spacing: 2px;
}

#craftsmanship .container1 { width: 100%; }
#craftsmanship .container1 .ribbon:nth-of-type(1) { width: 2.8rem; right: 0.6rem; padding-right: 0.75rem; }
#craftsmanship .container1 .ribbon:nth-of-type(2) { width: 2.8rem; right: 3.8rem; padding-right: 0.75rem; }

#craftsmanship .container2 .ribbon { width: 2.8rem; left: 0; }
#craftsmanship .container2 .ribbon:nth-of-type(1) { left: 3.8rem; width: 2.8rem; padding-right: 0.75rem; }
#craftsmanship .container2 .ribbon:nth-of-type(2) { left: 0.6rem; padding-right: 0.75rem; }

#craftsmanship .container3 .ribbon { width: 2.8rem; padding-right: 0.75rem; }
#craftsmanship .container3 .ribbon:nth-of-type(1) { width: 2.8rem; right: 0.6rem; padding-right: 0.75rem; }
#craftsmanship .container3 .ribbon:nth-of-type(2) { width: 2.8rem; right: 3.8rem; padding-right: 0.75rem; }

#craftsmanship .container4 {
  background-color: var(--color-light);
  padding: 3.4rem;
  width: 100%;
  max-width: 700px;
  margin: auto;
  text-align: center;
}

#craftsmanship .container4 .logo img {
  width: 260px;
  margin: 0 auto 16px;
}

#craftsmanship .container4 .logo .text {
  font-family: var(--font-serif);
  font-size: 2.4rem;
  line-height: var(--lh-s);
  letter-spacing: 0.1rem;
  margin: 10px 0 30px;
}

#craftsmanship .container4 .logo figcaption {
  letter-spacing: 0.3px;
  font-size: 17px;
  line-height: var(--lh-m);
  font-family: var(--font-serif);
  color: var(--color-secondary);
  margin-top: 12.5px;
}

#craftsmanship .container4 .contents {
  font-size: 1.4rem;
  line-height: 1.5;
  margin-top: 2rem;
  text-align: left;
  display: flex;
  justify-content: space-evenly;
  align-items: flex-start;
}

#craftsmanship .container4 .contents .image {
  width: 38%;
  display: block;
  margin-right: 2%;
}

#craftsmanship .container4 .contents .descriptions {
  width: 60%;
  font-size: 1.4rem;
  line-height: 1.57;
  font-family: var(--font-sans);
  letter-spacing: 0.075rem;
  font-weight: 400;
}

#craftsmanship .container4 .contents .image.pc-only { min-width: 30.5rem; }
#craftsmanship .container4 .contents .image.sp-only { display: none; }
#craftsmanship .container4 .contents .descriptions .description:nth-of-type(1) { margin-top: 0.2rem; }
#craftsmanship .container4 .contents .descriptions .description:nth-of-type(2) { letter-spacing: 0.15rem; }

@media only screen and (max-width: 768px) {
  #craftsmanship { padding: 3.5rem 0 4rem; }
  #craftsmanship .wrapper {
    display: block;
    height: auto;
    background-image: url('/rb/osechi/pb/fuku/assets/images/bg/craftsmanship-sp.png');
    background-repeat: no-repeat;
    background-size: contain;
    background-position-y: 89.5rem;
    padding: 0 0 2rem;
  }
  #craftsmanship .craftsmanship-heading { margin-top: 0; }
  #craftsmanship .container1 { padding-right: 20px; margin-top: 45px; }
  #craftsmanship .container1 .ribbon,
  #craftsmanship .container2 .ribbon,
  #craftsmanship .container3 .ribbon {
    font-size: 18px;
    padding: 18px 0 14px;
    letter-spacing: 2px;
  }
  #craftsmanship .container1 .ribbon:nth-of-type(1) { right: 1.8rem; padding-right: 0.4rem; width: 2.6rem; }
  #craftsmanship .container1 .ribbon:nth-of-type(2) { right: 4.8rem; padding-right: 0.4rem; width: 2.6rem; }
  
  #craftsmanship .container2 { padding-left: 20px; margin-top: 2.2rem; }
  #craftsmanship .container2 .ribbon:nth-of-type(1) { left: 4.8rem; padding-right: 0.4rem; width: 2.6rem; }
  #craftsmanship .container2 .ribbon:nth-of-type(2) { left: 1.8rem; padding-right: 0.4rem; width: 2.6rem; }

  #craftsmanship .container3 { padding-right: 20px; margin-top: 2.25rem; }
  #craftsmanship .container3 .ribbon:nth-of-type(1) { right: 1.8rem; padding-right: 0.4rem; width: 2.6rem; }
  #craftsmanship .container3 .ribbon:nth-of-type(2) { right: 4.8rem; padding-right: 0.4rem; width: 2.6rem; }

  #craftsmanship .container4 { width: 96%; padding: 4rem 4%; margin: 2.6rem auto 0; }
  #craftsmanship .container4 .contents { display: block; }
  #craftsmanship .container4 .logo img { width: 60%; margin: 0 auto 16px; }
  #craftsmanship .container4 .logo .text { font-size: 1.9rem; color: var(--color-secondary); }
  #craftsmanship .container4 .contents .image { width: 100%; }
  #craftsmanship .container4 .contents .image.pc-only { display: none; }
  #craftsmanship .container4 .contents .image.sp-only { display: block; }
  #craftsmanship .container4 .contents .descriptions { margin: 1.7rem auto 0; width: 92%; font-size: 1.3rem; }
}

/* ==========================================================================
   5. Voices Section
   ========================================================================== */
#voices {
  width: 100%;
  background-image: url('/rb/osechi/pb/fuku/assets/images/bg/voices.png');
  background-repeat: no-repeat;
  background-size: cover;
  overflow: hidden;
}

#voices .wrapper {
  width: 100%;
  max-width: var(--max-width-content);
  padding-bottom: 60px;
  margin: 0 auto;
}

#voices .voices-heading {
  width: 70%;
  margin: 56px auto 40px;
}

#voices .voices-heading figcaption {
  text-align: center;
  font-size: 1.2rem;
  line-height: var(--lh-s);
  color: var(--color-light);
  margin-top: 1rem;
}

#voices .items {
  margin: 1.1rem auto 3.2rem;
  padding-right: 0.6rem;
  height: 44rem;
  overflow-y: scroll;
  width: 700px;
}

#voices .items .item {
  width: 100%;
  padding: 1rem 1.5rem 1.5rem;
  margin-bottom: 20px;
  background-color: var(--color-light);
}

#voices .items .item-heading {
  display: flex;
  column-gap: 1.4rem;
}

#voices .items .item-heading-image { width: 3.25rem; }
#voices .items .item-heading-description {
  font-size: 1.6rem;
  font-weight: bold;
  line-height: 1.38;
  padding-top: 0.6rem;
}

#voices .items .item-description {
  font-size: 1.4rem;
  letter-spacing: 0.04rem;
  line-height: 1.57;
  padding: 1.4rem 1.4rem 1rem;
  font-weight: 400;
}

#voices .warning {
  color: var(--color-light);
  font-size: 1.2rem;
  line-height: var(--lh-m);
  text-align: center;
  margin-top: 1.5rem;
}

@media only screen and (max-width: 768px) {
  #voices .wrapper { padding-bottom: 52px; max-width: 100%; }
  #voices .voices-heading { width: 82%; margin: 40px auto 24px; padding: 0; }
  #voices .voices-heading figcaption { margin-top: 0; }
  #voices .items { padding-right: 0; margin: 1rem auto; width: 94%; }
  #voices .items .item { padding-bottom: 1rem; }
  #voices .items .item-heading-description { font-size: 1.6rem; line-height: 1.25; }
  #voices .items .item-description { font-size: 1.4rem; line-height: 1.43; }
  #voices .warning { margin: 1rem 1rem 0; text-align: justify; line-height: 1.46; }
}

/* ==========================================================================
   6. Support Section
   ========================================================================== */
#support {
  width: 100%;
  background-image: url('/rb/osechi/pb/fuku/assets/images/bg/yellow.jpg');
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

#support .wrapper {
  width: 760px;
  padding: 3.8rem 0;
  margin: 0 auto;
}

#support .support-heading {
  display: block;
  width: 30%;
  margin: 0 auto 32px;
}

#support .services {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2.4rem;
  margin: 0 2.4rem;
}

#support .services .service {
  background-color: var(--color-light);
  padding: 30px 6%;
}

#support .services .heading {
  display: flex;
  align-items: center;
  justify-content: center;
}

#support .services .heading-text {
  font-size: 2.2rem;
  line-height: 1.36;
  color: var(--color-secondary);
  margin-left: 1rem;
  letter-spacing: 0.08rem;
}

#support .services .sub-heading {
  font-size: 1.8rem;
  font-weight: bold;
  line-height: var(--lh-s);
  text-align: center;
  margin-top: 1.5rem;
}

#support .services .description {
  font-size: 1.4rem;
  letter-spacing: 0;
  font-weight: 400;
  line-height: 1.57;
  padding: 0 10px;
  margin: 20px 4%;
}

/* Free Cancellation Block */
#support .services .free-cancellation {
  width: 100%;
  grid-column: 1/2;
  grid-row: 1/2;
}
#support .services .free-cancellation .heading-image { width: 3.25rem; }
#support .services .free-cancellation .until { font-size: 15px; line-height: var(--lh-s); margin-top: 12.5px; }
#support .services .free-cancellation .customer-service-phone-number {
  margin-top: 15px;
  font-size: 1.4rem;
  line-height: var(--lh-ss);
}
#support .services .free-cancellation .customer-service-phone-number a {
  color: #000;
  font-size: 16px;
  display: inline;
}
#support .services .free-cancellation .customer-service-description {
  font-size: 14px;
  padding: 0 12px;
  letter-spacing: 0.04rem;
  line-height: 1.14;
  margin-top: 1.5rem;
}

/* Delivery Block */
#support .services .delivery {
  width: 100%;
  grid-column: 2/3;
  grid-row: 1/2;
}
#support .services .delivery .description-sub {
  margin: 30px 0 0;
  font-size: 14px;
  line-height: var(--lh-m);
}

/* Customer Service Block */
#support .services .customer-service {
  width: 100%;
  grid-column: 1/3;
  grid-row: 2/3;
  padding-bottom: 3.2rem;
}
#support .services .customer-service .phone-number {
  width: 60%;
  background-color: var(--color-dark);
  border-radius: 8.4rem;
  margin: 20px auto 0;
  padding: 12px 0;
  display: flex;
  justify-content: center;
  align-items: center;
}
#support .services .customer-service .phone-number-image { width: 2.8rem; }
#support .services .customer-service .phone-number-text a {
  color: var(--color-light);
  font-weight: bold;
  font-size: 2.2rem;
  line-height: var(--lh-ss);
  margin-left: 0.75rem;
}
#support .services .customer-service .time {
  font-size: 1.4rem;
  text-align: center;
  line-height: 1.86;
  margin-top: 1.8rem;
}
#support .services .customer-service .guidance {
  font-size: 1.2rem;
  line-height: var(--lh-m);
  letter-spacing: 1px;
  text-align: center;
  margin-top: 1.2rem;
}

@media only screen and (max-width: 768px) {
  #support { padding-bottom: 3.5rem; }
  #support .wrapper { width: 100%; padding: 2.5rem 0 0; }
  #support .support-heading { width: 60%; }
  #support .services { display: block; height: auto; margin: 0 1.5rem; }
  #support .services .service { padding: 20px 3%; margin-top: 1rem; }
  #support .services .heading { padding-top: 0; margin-top: 0; }
  #support .services .heading-image { width: 2rem; }
  #support .services .heading-text { margin-left: 0.6rem; font-size: 2rem; line-height: 1.3; }
  #support .services .sub-heading { font-size: 1.2rem; }
  
  #support .services .free-cancellation .until,
  #support .services .free-cancellation .customer-service-phone-number {
    padding: 0 2rem;
    margin: 10px 0;
    font-weight: bold;
    text-align: center;
    font-size: 1.6rem;
    line-height: 1.63;
    display: block;
  }
  #support .services .free-cancellation .customer-service-description { padding: 0; margin: 10px 8% 0; }

  #support .services .delivery { padding-bottom: 2.5rem; margin-top: 2rem; }
  #support .services .delivery .description { padding-bottom: 1rem; margin-top: 1.5rem; }
  #support .services .delivery .description-sub { margin-top: 0; margin-left: 0.5rem; }

  #support .services .customer-service .phone-number { margin-top: 0.8rem; width: 90%; height: auto; padding: 20px; }
  #support .services .customer-service .phone-number-image { width: 8%; display: block; }
  #support .services .customer-service .phone-number-text a { font-size: 1.8rem; }
  #support .services .customer-service .guidance { display: none; }
}

/* ==========================================================================
   7. FAQ Section
   ========================================================================== */
#faq {
  width: 100%;
  max-width: 58rem;
  margin: 0 auto;
}

#faq .faq-heading {
  text-align: center;
  font-size: 2.6rem;
  line-height: var(--lh-s);
  font-weight: bold;
  color: var(--color-secondary);
  padding: 6.5rem 0 3.7rem;
}

#faq .questions {
  width: 100%;
  margin-bottom: 5.6rem;
}

#faq .question {
  width: 100%;
  font-size: 1.6rem;
  line-height: var(--lh-s);
  font-weight: bold;
  letter-spacing: 0.04rem;
  border-top: 1px var(--color-border) solid;
  box-sizing: border-box;
  transition: all 0.5s;
}

#faq .question-title {
  position: relative;
  display: flex;
  width: 100%;
  min-height: 5.2rem;
  align-items: center;
  padding-left: 3.25rem;
  cursor: pointer;
  font-size: 20px;
  line-height: var(--lh-s);
}

#faq .question-title::before {
  content: 'Q';
  position: absolute;
  left: 0;
  color: var(--color-secondary);
  font-size: 1.8rem;
  line-height: var(--lh-ss);
  font-weight: bold;
}

#faq .question-title::after {
  position: absolute;
  content: '';
  display: inline-block;
  width: 2rem;
  height: 2rem;
  top: 2.5rem;
  right: 1.3rem;
  background-image: url('/rb/osechi/pb/fuku/assets/images/common/arrow.svg');
  background-size: contain;
  background-repeat: no-repeat;
  transform: rotate(90deg);
  transition: all 0.2s;
}

#faq .question-description-wrapper {
  width: 100%;
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.5s ease-out;
}

#faq .question-description {
  overflow: hidden;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.6;
  padding: 0;
}

#faq .question:last-of-type {
  border-bottom: 1px var(--color-border) solid;
}

/* Active State */
#faq .question.active { padding-bottom: 2rem; }
#faq .question.active .question-description { padding: 0.4rem 4.4rem 0 3.4rem; }
#faq .question.active .question-title::after { transform: rotate(270deg); }
#faq .question.active .question-description-wrapper { grid-template-rows: 1fr; }

@media only screen and (max-width: 768px) {
  #faq .faq-heading { padding: 3rem 0 2rem; font-size: 2rem; }
  #faq .questions { margin: 0 auto; }
  #faq .question-title { font-size: 1.6rem; line-height: 1.5; min-height: 4.2rem; padding: 14px 10%; }
  #faq .question-title::before { left: 0.6rem; font-size: 1.5rem; }
  #faq .question-title::after { top: 2rem; right: 0.55rem; width: 1.2rem; height: 1.2rem; }
  #faq .question:last-of-type .question-title { letter-spacing: 0.1rem; padding-right: 3rem; }
  #faq .question.active .question-description { font-size: 1.4rem; line-height: 1.57; padding: 0 1rem 0 3rem; }
}

/* ==========================================================================
   8. Footer Section
   ========================================================================== */
#footer {
  width: 100%;
  background-color: var(--color-dark);
}

#footer .top .related-informations {
  display: none;
  width: 100%;
  flex-direction: column;
  align-items: center;
}

#footer .top .related-informations li {
  display: flex;
  width: 100%;
  height: 5.4rem;
  font-size: 1.6rem;
  line-height: var(--lh-ss);
  justify-content: center;
  border-bottom: solid 1px #333333;
}

#footer .top .related-informations li a {
  position: relative;
  display: flex;
  width: 78rem;
  height: 100%;
  justify-content: center;
  align-items: center;
  color: var(--color-light);
  font-weight: 400;
  padding: 0 2.5rem 0 3.25rem;
  cursor: pointer;
}

#footer .top .related-informations li a::after {
  position: absolute;
  content: '';
  display: inline-block;
  width: 1rem;
  height: 2rem;
  top: 2rem;
  right: 2.9rem;
  background-image: url('/rb/osechi/pb/fuku/assets/images/common/arrow.svg');
  background-repeat: no-repeat;
}

#footer .top .related-informations li.link-to-radish a::before {
  content: '';
  display: inline-block;
  width: 0;
  height: 3rem;
  background-image: url('/rb/osechi/pb/fuku/assets/images/common/logo.svg');
  background-repeat: no-repeat;
  padding-left: 3.25rem;
  z-index: 1;
}

#footer .top .related-informations li:last-of-type { height: 6rem; }
#footer .top .related-informations li:last-of-type a { letter-spacing: -0.2rem; }
#footer .top .related-informations li:last-of-type a::after { top: 2.3rem; }

#footer .bottom {
  padding-bottom: 4rem;
  margin-top: 4rem;
}

#footer .bottom .company-informations {
  display: none;
  width: 36.6rem;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  margin: 0 auto;
}

#footer .bottom .company-informations li a {
  position: relative;
  font-size: 1.4rem;
  color: var(--color-light);
  line-height: 1.78;
  letter-spacing: 0.02rem;
  padding: 0 1rem;
}

#footer .bottom .company-informations li a::after {
  content: '';
  position: absolute;
  display: inline-block;
  width: 1px;
  height: 18px;
  top: 0.5rem;
  right: 0;
  background-color: var(--color-light);
}

#footer .bottom .company-informations li:nth-child(3) a::after,
#footer .bottom .company-informations li:nth-child(4) a::after {
  display: none;
}

#footer .bottom .copyright {
  display: flex;
  flex-direction: column;
  color: var(--color-secondary);
  font-size: 12px;
  font-weight: 400;
  text-align: center;
  line-height: 1.5;
  letter-spacing: 0.1px;
  gap: 22px;
}

#footer .bottom .copyright .warning {
  margin: 2.2rem 0;
  line-height: 1.43;
  font-size: 1.4rem;
}

@media only screen and (max-width: 768px) {
  #footer .top .related-informations li a { justify-content: flex-start; }
  #footer .bottom { margin: 0; padding: 1rem 0 9rem; }
  #footer .bottom .copyright { font-size: 1.2rem; line-height: 1.5; }
}

/* ==========================================================================
   9. Products & Main Order (#fuku)
   ========================================================================== */
#fuku .heading { position: relative; }
#fuku .heading .sold-out-mask { display: none; }

/* Sold Out State Styles */
#fuku.sold-out .heading { position: relative; }
#fuku.sold-out .heading .sold-out-mask {
  position: absolute;
  display: flex;
  width: 100%;
  height: 100%;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  inset: 0;
  background-color: rgba(34, 34, 34, 0.8);
}
#fuku.sold-out .heading .sold-out-mask .sold-out-text-main {
  font-family: var(--font-serif);
  font-weight: bold;
  font-size: 6.4rem;
  line-height: var(--lh-ss);
  text-align: center;
  color: var(--color-light);
}
#fuku.sold-out .heading .sold-out-mask .sold-out-text-sub {
  font-size: 2.4rem;
  font-weight: 400;
  text-align: center;
  color: var(--color-light);
  line-height: 1.41;
  margin-top: 4.8rem;
}

#fuku.sold-out .delivery fieldset { background-color: #f3f3f3; margin-top: 1rem; }
#fuku.sold-out .delivery fieldset label,
#fuku.sold-out .delivery fieldset label input[type='radio'] { cursor: not-allowed; }
#fuku.sold-out .delivery fieldset label:nth-of-type(1) { border-right-color: rgba(108, 108, 108, 0.8); }
#fuku.sold-out .delivery fieldset label input[type='radio'] { border-color: #6c6c6c; }
#fuku.sold-out .delivery fieldset label input[type='radio']:checked::after { background-color: var(--color-light); }
#fuku.sold-out .delivery .to-order { display: none; }
#fuku.sold-out .delivery .to-order.sold-out { display: flex; cursor: not-allowed; }

@media only screen and (max-width: 768px) {
  #fuku.sold-out .heading .sold-out-mask .sold-out-text-main { font-size: 4.8rem; }
  #fuku.sold-out .heading .sold-out-mask .sold-out-text-sub { font-size: 1.8rem; line-height: 1.33; margin-top: 2.4rem; }
  #fuku.sold-out .product-feature-price-order .pre-order-present-delivery .delivery fieldset { margin-top: 1.25rem; }
}

/* Price Information & Controls */
#fuku .price-information,
#fuku .pre-order-detail {
  position: relative;
  width: 100%;
  margin: 0 auto;
}

#fuku .pre-order-detail { margin-bottom: 10px; }
#fuku .product-feature-price-order .pre-order-discount-time { position: relative; }



#fuku .price-information .pre-order-discount { position: relative; width: 100%; }
#fuku .price-information .pre-order-discount .pre-order-discount-image { width: 100%; }
#fuku .price-information .pre-order-discount .pre-order-discount-text {
  position: absolute;
  top: 4.5rem;
  right: 12.25rem;
  color: var(--color-light);
  font-size: 3.4rem;
  line-height: var(--lh-ss);
  font-weight: bold;
  z-index: 1;
}

#fuku .price-information .pre-order-discount-special-price {

}



#fuku .pre-order-date {
  width: 100%;
  margin: 20px auto 10px;
}

#fuku .product-feature-price-order {
  display: flex;
  width: var(--max-width-content);
  flex-direction: column;
  align-items: center;
  border: 1px solid var(--color-primary);
  border-radius: 0.5rem;
  padding-bottom: 3rem;
  margin: 4rem auto 0;
  overflow: hidden;
}

#fuku .product-feature-price-order .product-description {
  margin: 20px auto 0;
  width: 84%;
}
#fuku .product-description .product-name { display: flex; }
#fuku .product-description .product-name-kanji {
  font-size: 4rem;
  line-height: var(--lh-ss);
  font-weight: bold;
  font-family: 'Noto Serif JP', serif;
}
#fuku .product-description .product-name-hiragana {
  font-size: 1.2rem;
  line-height: var(--lh-ss);
  font-weight: 400;
  margin: 1.25rem 0 0 1.5rem;
}

#fuku .product-description .features {
  display: flex;
  gap: 1.4rem;
  justify-content: space-between;
  margin: 1.6rem auto 20px;
  align-items: center;
}

#fuku .product-description .features .feature {
  width: calc(100% - 12%);
  padding: 1.2rem 0;
  color: var(--color-light);
  background-color: var(--color-secondary);
  font-size: 1.8rem;
  line-height: var(--lh-ss);
  letter-spacing: 0.4rem;
  font-weight: bold;
  text-align: center;
  box-sizing: border-box;
}
#fuku .product-description .features .feature span { font-size: 1.4rem; }

.free-delivery-cancel { width: 76rem; }
.free-delivery-cancel .small { font-size: 70%; }

/* Form Radio Controls */
#fuku input[type='radio'] {
  width: 2.4rem;
  height: 2.4rem;
  appearance: none;
  vertical-align: middle;
  background-color: var(--color-light);
  border: 1px solid var(--color-primary);
  border-radius: 50%;
  margin: 0;
  cursor: pointer;
}

#fuku input[type='radio']:checked { position: relative; }
#fuku input[type='radio']:checked::after {
  content: '';
  position: absolute;
  width: 1.6rem;
  height: 1.6rem;
  border-radius: 50%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background-color: var(--color-primary);
}

/* Order Form & Selection */
#fuku .pre-order-present-delivery {
  width: 78%;
  margin: 0 auto;
  text-align: center;
}
.delivery-not-available-areas {
  font-size: 1.4rem;
  line-height: var(--lh-m);
  font-weight: normal;
}
#fuku .pre-order-present-delivery .delivery { width: 100%; }
#fuku .pre-order-present-delivery .delivery_btn { margin: 10px 0 30px; }
#fuku .pre-order-present-delivery .delivery > a {
  display: block;
  width: 100%;
  background: #262626;
  padding: 22px 0 16px;
  box-shadow: 0 6px 0 #000100, inset 0 0 4px 2px #575757;
  border: 1px solid #676767;
  text-align: center;
  font-size: 2.4rem;
  line-height: var(--lh-ss);
  letter-spacing: 0.2rem;
  border-radius: 100px;
  color: var(--color-light);
  margin: auto;
}

#fuku .pre-order-present-delivery .check-when-to-delivery-text,
#fuku .pre-order-present-delivery .check-where-to-delivery-text {
  font-size: 1.8rem;
  line-height: var(--lh-s);
  font-weight: bold;
}
#fuku .pre-order-present-delivery .check-when-to-delivery-text { margin-top: 3.75rem; }
#fuku .pre-order-present-delivery .check-where-to-delivery-text { display: none; margin-top: 2.2rem; }

#fuku .pre-order-present-delivery .select-form fieldset {
  width: 48rem;
  display: flex;
  background-color: #f0eade;
  border-radius: 0.8rem;
  padding: 1.7rem 0;
  margin-top: 1rem;
}
#fuku .pre-order-present-delivery .select-form fieldset:nth-of-type(2) { display: none; }

#fuku .pre-order-present-delivery .select-form fieldset label {
  position: relative;
  display: flex;
  width: 50%;
  height: 2.4rem;
  align-items: center;
  font-size: 1.6rem;
  line-height: var(--lh-ss);
  font-weight: 400;
  margin-left: 1.6rem;
}

#fuku .pre-order-present-delivery .select-form fieldset label:nth-of-type(1) {
  border-right: 1px solid rgba(172, 29, 36, 0.2);
  margin-right: 0;
  margin-top: -0.2rem;
}

#fuku .pre-order-present-delivery .select-form fieldset label input[type='radio'] { margin-top: 0.3rem; }
#fuku .pre-order-present-delivery .select-form fieldset label .text { margin-left: 0.8rem; }

#fuku .select-form .delivery-recommend-date {
  font-size: 1.4rem;
  line-height: var(--lh-s);
  margin: 1.2rem 0 1.6rem;
}
#fuku .select-form .delivery-recommend-date span {
  position: relative;
  color: var(--color-primary);
  cursor: pointer;
}
#fuku .select-form .delivery-recommend-date span::after {
  content: '';
  position: absolute;
  width: 100%;
  height: 0.1rem;
  left: 0;
  bottom: 0;
  background-color: var(--color-primary);
}

.select-form .to-order {
  display: block;
  width: 100%;
  padding: 22px 0;
  border-radius: 4.8rem;
  color: var(--color-light);
  background-color: var(--color-dark);
  font-size: 2.4rem;
  line-height: var(--lh-ss);
  margin-top: 2rem;
  cursor: pointer;
  position: relative;
}

.select-form .to-order::after {
  content: '';
  position: absolute;
  width: 1rem;
  height: 2rem;
  top: 50%;
  right: 1.5rem;
  background-image: url('/rb/osechi/pb/fuku/assets/image/common/delivery-arrow.svg');
  background-repeat: no-repeat;
  transform: translate(-150%, -50%);
}

#fuku .select-form .to-order.sold-out {
  display: none;
  justify-content: center;
  align-items: center;
  background-color: var(--color-disabled);
}
#fuku .select-form .to-order.sold-out::after { background-image: none; }

#fuku .select-form .free-delivery-cancel {
  width: 48rem;
  margin-top: 2.4rem;
}

#fuku .select-form .free-delivery-cancel .features {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

#fuku .select-form .free-delivery-cancel .features .feature {
  width: 48%;
  padding: 1.2rem 0;
  color: var(--color-secondary);
  border: 3px solid var(--color-secondary);
  font-size: 1.75rem;
  line-height: var(--lh-ss);
  letter-spacing: 0.05rem;
  font-weight: bold;
  text-align: center;
  box-sizing: border-box;
}

#fuku .notification-handmade {
  color: var(--color-primary);
  text-align: center;
  font-size: 1.6rem;
  line-height: 1.75;
  margin: 30px 0 60px;
}

#fuku .additional-discount {
  display: none;
  width: 76rem;
  margin: 1.75rem auto 9.25rem;
}


@media only screen and (max-width: 768px) {
  #fuku .heading.bottom { padding: 8rem 1.6rem 0; }
  #fuku .product-feature-price-order { width: 96%; padding-bottom: 30px; margin-top: 2rem; }
  #fuku .product-description { margin-top: 20px; width: 90%; }
  #fuku .product-description .features { margin-top: 2rem; gap: 0.6rem; }
  #fuku .product-description .features .feature {
    display: flex;
    width: 32%;
    justify-content: center;
    font-size: 1.6rem;
    letter-spacing: 0;
    padding: 1.4rem 0;
  }
  #fuku .product-description .features .feature span { font-size: 1.2rem; margin-top: 2px; }
  
  #fuku .price-information .pre-order-discount .pre-order-discount-image { width: 27.9rem; margin: 0 auto; }
  #fuku .price-information .pre-order-discount .pre-order-discount-text {
    top: 5rem;
    right: 7.75rem;
    font-size: 2.4rem;
  }
  
  #fuku .price-information .pre-order-discount-special-price { gap: 1.2rem; margin-top: 0.8rem; }

  #fuku .pre-order-present-delivery { width: 100%; flex-direction: column; row-gap: 1rem; }
  #fuku .pre-order-present-delivery .delivery > a { padding: 18px 0; }
  #fuku .select-form .free-delivery-cancel { width: 30rem; font-size: 1.6rem; margin: 1.6rem auto 0; }
  #fuku .select-form .free-delivery-cancel .features .feature { font-size: 1.5rem; }
  #fuku .notification-handmade { font-size: 1.6rem; line-height: 1.63; margin: 20px 0 40px; }
  #fuku .additional-discount { width: 34.3rem; margin: 2.25rem auto 9.25rem; }
}
/* ==========================================================================
   10. Product Description Container & Plates
   ========================================================================== */
#fuku .product-description-container,
#fuku .menu_container_head {
  background-image: url('/rb/osechi/pb/fuku/assets/images/bg/yellow.jpg');
}
#fuku .product-description-container{
  padding: 40px 0 20px;
}

#fuku .product-description-container .container1,
#fuku .menu_container_head .container_head {
  width: var(--max-width-content);
  margin: 0 auto;
}
@media only screen and (min-width: 1024px) {
  #fuku .menu_container_head .container_head {
    width: 40%;
  }
}

#fuku .product-description-container .product-title-sub {
  font-family: var(--font-serif);
  font-size: 3rem;
  line-height: var(--lh-s);
  letter-spacing: 0.2rem;
  font-weight: bold;
  text-align: center;
  margin-top: 1.2rem;
  color: #ac1c25;
}

#fuku .product-description-container .product-title-main {
  font-family: var(--font-serif);
  font-size: 2.8rem;
  line-height: var(--lh-s);
  font-weight: bold;
  text-align: center;
  margin-top: 1rem;
  letter-spacing: 0.05rem;
}

#fuku .product-description-container .product-description {
  font-size: 1.8rem;
  line-height: 1.78;
  font-family: var(--font-serif);
  text-align: center;
  margin: 20px 0 40px;
  color: #000;
  font-weight: 500;
  letter-spacing: 0.2rem;
}
#fuku .product-description-container .product-description-min {
  font-size: 1.2rem;
  letter-spacing: 0.02rem;
  color: var(--color-secondary);
  text-align: right;
  margin-right: 5%;
}

#fuku .product-description-container .container2 {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-bottom: 1.4rem;
}

#fuku .product-description-container .product-image {
  width: var(--max-width-content);
  margin: 3rem auto 0;
}

#fuku .recommend-for-those {
  font-family: var(--font-serif);
  font-size: 2rem;
  line-height: var(--lh-s);
  text-align: center;
}
#fuku .recommend-for-those .recommend-for-those-text { font-size: 2.4rem; margin-top: 4rem; font-weight: 600; }
#fuku .recommend-for-those .recommend-for-those-lists { margin-top: 2rem; }
#fuku .recommend-for-those .recommend-for-those-lists .those { display: flex; }
#fuku .recommend-for-those .recommend-for-those-lists .those-description { letter-spacing: -0.15rem; text-align: center; margin-left: 1rem; line-height: var(--lh-m); }
#fuku .recommend-for-those .recommend-for-those-lists .those:nth-of-type(2) { margin-top: 2rem; }

/* Plates Section */
#fuku .plates {
  display: flex;
  flex-direction: column;
  row-gap: 8rem;
}

#fuku .plates .plate {
  position: relative;
  width: var(--max-width-content);
  overflow: hidden;
}

#fuku .plates .plate .bg {
  position: absolute;
  width: var(--max-width-content);
  height: 32rem;
  top: 0;
  left: 50%;
  background-image: url('/rb/osechi/assets/images/bg/red.jpg');
  background-size: contain;
  background-repeat: repeat;
  transform: translate(-50%, 0);
  z-index: 0;
}

#fuku .plates .plate .heading {
  position: relative;
  width: 9rem;
  padding-bottom: 1.6rem;
  margin: 30px auto -10px;
  z-index: 1;
}

#fuku .plates .plate .plate-description {
  color: var(--color-light);
  width: 84%;
  font-size: 1.6rem;
  line-height: 1.88;
  font-family: var(--font-serif);
  text-align: center;
  position: relative;
  margin: auto;
}

#fuku .plates .plate .plate-image {
  position: relative;
  width: 90%;
  margin: 0 auto;
  z-index: 2;
}

#fuku .plates .plate .notification-these-are-images {
  font-size: 1.4rem;
  color: #999999;
  text-align: center;
  line-height: 1.14;
  margin-top: 16px;
  letter-spacing: 0.1rem;
}

/* Three Points */
#fuku .three-points-container .three-points-heading {
  font-family: var(--font-serif);
  font-size: 2.4rem;
  line-height: var(--lh-s);
  letter-spacing: 0.06rem;
  font-weight: bold;
  text-align: center;
  margin: 20px 0 40px;
}

#fuku .three-points-container .three-points {
  display: flex;
  flex-direction: column;
  margin-top: 2.75rem;
}

#fuku .three-points-container .point {
  padding: 40px;
  background: var(--color-light);
}

#fuku .three-points-container .description-container {
  display: grid;
  grid-template-columns: 320px auto;
  column-gap: 40px;
  align-items: stretch;
}

#fuku .three-points-container .description-texts {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

#fuku .three-points-container .description-title {
  font-family: var(--font-serif);
  font-size: 1.8rem;
  line-height: var(--lh-s);
}

#fuku .three-points-container .description {
  font-size: 1.4rem;
  letter-spacing: 0.04rem;
  line-height: 1.86;
  padding-right: 1rem;
  margin-top: 16px;
}

/* Menu Contents Container & Accordion */
#fuku .contents-container {
  position: relative;
  background-color: var(--color-light);
  border: 1px solid var(--color-border);
  padding-top: 2.8rem;
  padding-bottom: 40px;
  margin-top: 2.5rem;
}

#fuku .contents-container .contents-heading {
  font-family: var(--font-serif);
  font-size: 24px;
  line-height: var(--lh-s);
  color: var(--color-secondary);
  text-align: center;
}

#fuku .contents-container .contents {
  display: flex;
  flex-direction: column;
  padding: 0 2.4rem 3rem;
  margin-top: 2rem;
}

/* Consolidated Item Animation & Layout */
.content {
  display: grid;
  width: 100%;
  grid-template-columns: 120px auto;
  column-gap: 14px;
  margin-bottom: 16px;
  overflow: hidden;
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.content.hidden { display: none !important; }
.content.is-collapsing { opacity: 0; transform: translateY(-10px); }

#fuku .contents-container .contents .content .image { height: 110px; }
#fuku .contents-container .contents .content.no-thumbnail .image { opacity: 0; }

#fuku .contents-container .content-detail .name {
  font-family: var(--font-serif);
  font-size: 18px;
  line-height: var(--lh-s);
  font-weight: bold;
}

#fuku .contents-container .content-detail .description {
  font-size: 1.4rem;
  letter-spacing: 0.03rem;
  margin-top: 12px;
  line-height: 1.71;
}

#fuku .contents-container .content-detail .amount {
  display: inline-block;
  font-size: 13px;
  line-height: var(--lh-ss);
  color: #999999;
  margin-top: 1rem;
}

/* Mask & Read More Accordion UI */
.contents-container .mask {
  display: block;
  user-select: none;
  position: absolute;
  width: 99%;
  height: 15rem;
  bottom: 9rem;
  left: 50%;
  transform: translateX(-50%);
}

.contents-container.is-expanded .mask { display: none !important; }

#fuku .contents-container .more-menu {
  display: block;
  width: 90%;
  font-size: 1.6rem;
  line-height: var(--lh-ss);
  border: 1px solid var(--color-border);
  border-radius: 3.2rem;
  color: var(--color-secondary);
  margin: auto;
  padding: 12px 0;
  background-color: var(--color-light);
}

#fuku .contents-container .more-menu span {
  position: relative;
  width: 100%;
  margin: auto;
  text-align: center;
}

#fuku .contents-container .more-menu span::after {
  position: absolute;
  content: '';
  background-image: url('/rb/osechi/pb/fuku/assets/images/common/open-arrow.svg');
  width: 10px;
  height: 6px;
  right: 1.6rem;
  background-repeat: no-repeat;
  top: 50%;
  transform: translateY(-50%);
}
#fuku .contents-container .more-menu.active  span::after {
  transform: rotateX(180deg);
}
.more-menu.active .has-more-content { display: none !important; }
.more-menu.active .no-more-content { display: inline-block !important; }
.more-menu .has-more-content { display: inline-block; }
.more-menu .no-more-content { display: none; }

.more-menu.active .no-more-content::after {
  top: 0.4rem;
  transform: rotate(180deg);
}

/* Ingredients & Spec Section */
#fuku .size-ingredient-information {
  width: var(--max-width-content);
  display: flex;
  flex-direction: column;
  margin-top: 6.4rem;
}

#fuku .size-ingredient-information .size-ingredient-information-heading {
  font-size: 2.2rem;
  line-height: var(--lh-s);
  font-weight: bold;
  text-align: center;
}

#fuku .size-ingredient-information .item {
  width: 80%;
  border-bottom: 1px solid var(--color-border);
  margin: 0 auto;
}

#fuku .size-ingredient-information .item .description {
  line-height: 1.75;
  font-size: 1.6rem;
}
#fuku .size-ingredient-information .item .description span { font-weight: bold; }

#fuku .size-ingredient-information .size { margin-top: 3rem; }
#fuku .size-ingredient-information .ingredient,
#fuku .size-ingredient-information .expiration { margin-top: 1.6rem; }

#fuku .size-ingredient-information .information-heading {
  font-size: 1.8rem;
  line-height: var(--lh-s);
  font-family: var(--font-serif);
  color: #b99b6c;
  margin-bottom: 16px;
}

#fuku .size-ingredient-information .description {
  font-size: 1.6rem;
  line-height: var(--lh-m);
  padding-bottom: 1.3rem;
}

#fuku .size-ingredient-information .allergy-information {
  width: 50%;
  padding: 14px 0;
  font-size: 1.4rem;
  line-height: var(--lh-ss);
  border: 1px solid var(--color-border);
  color: var(--color-secondary);
  border-radius: 3.2rem;
  margin: 40px auto 50px;
  text-align: center;
}

#fuku .size-ingredient-information .allergy-information span {
  position: relative;
  display: inline-block;
}

#fuku .size-ingredient-information .allergy-information span::after {
  content: '';
  position: absolute;
  width: 1rem;
  height: 1rem;
  top: 0.3rem;
  right: -1.8rem;
  background-image: url('/rb/osechi/pb/fuku/assets/image/common/open-arrow.svg');
  background-repeat: no-repeat;
  transform: rotate(-90deg) translateY(-50%);
}

@media only screen and (max-width: 768px) {
  #fuku .product-description-container .container1,
  #fuku .menu_container_head .container_head { width: 100%; }
  #fuku .menu_container_head .container_head {width: 90%;padding: 40px 0 20px;}
  
  #fuku .product-description-container { width: 100%; padding-top: 0; font-family: var(--font-serif); }
  #fuku .product-description-container .container1 { background-size: contain; }
  #fuku .product-description-container .product-title-sub { margin-top: 2.2rem; font-size: 1.8rem; letter-spacing: 0; }
  #fuku .product-description-container .product-title-main { font-size: 2.4rem; line-height: 1.04; margin-top: 1rem; }
  #fuku .product-description-container .product-description { width: 100%; font-size: 1.5rem; line-height: 1.88; margin-top: 20px; padding: 0; }

  #fuku .product-description-container .product-image { width: 100%; margin-top: 3.2rem; }
  #fuku .recommend-for-those .recommend-for-those-text { margin: 30px auto; }
  #fuku .recommend-for-those .recommend-for-those-lists { display: flex; flex-direction: column; column-gap: 3rem; margin-top: 0.4rem; padding: 0; }
  #fuku .recommend-for-those .recommend-for-those-lists .those { font-size: 1.8rem; margin: 0; }
  #fuku .recommend-for-those .recommend-for-those-lists .check { align-self: flex-start; margin-top: 0.5rem; width: 10%; }
  #fuku .recommend-for-those .recommend-for-those-lists .those-description { text-align: justify; margin-left: 1.25rem; font-size: 1.8rem; line-height: 1.78; }

  #fuku .plates { margin-top: 0; width: 100%; row-gap: 4rem; }
  #fuku .plates .plate .bg { width: 100%; height: 30rem; }
  #fuku .plates .plate { width: 100%; }
  #fuku .plates .plate .heading { width: 8.2rem; padding: 1.2rem 0 0.8rem; }
  #fuku .plates .plate .plate-description { font-size: 1.4rem; font-weight: bold; line-height: 1.88; text-align: left; margin: 14px auto 12px;}
  #fuku .plates .plate .notification-these-are-images { font-size: 1.3rem; line-height: 1.38; margin: 10px 6%; text-align: justify; }

  #fuku .three-points-container .three-points-heading { font-size: 2rem; margin-top: 2rem; }
  #fuku .three-points-container .three-points { width: 100%; margin: 30px auto 20px; }
  #fuku .three-points-container .point { padding: 20px 5%; width: 92%; margin: auto;}
  #fuku .three-points-container .description-container { width: 100%; padding: 0;display: flex;flex-direction: column;flex-wrap: nowrap;align-items: center;}
  #fuku .three-points-container .description-title { width: 100%; text-align: left; font-size: 1.6rem; line-height: 1.4; margin: 20px auto;}
  #fuku .three-points-container .description { text-align: justify; font-size: 1.4rem; line-height: 1.73; font-family: var(--font-sans); color: #666; margin-top: 0;}

  #fuku .contents-container { width: 94%; margin: 2rem auto; padding: 30px 3%; }
  #fuku .contents-container .contents-heading { font-size: 1.8rem; }
  #fuku .contents-container .contents { display: block; width: 100%; padding: 0; margin: 30px 0;}
  #fuku .contents-container .contents .content { display: flex; align-items: flex-start; justify-content: space-around; margin-bottom: 2.2rem; }
  #fuku .contents-container .contents .content .image { width: 26%; }
  #fuku .contents-container .content-detail { width: 74%; padding: 0; }
  #fuku .contents-container .content-detail .name { font-size: 1.6rem; }
  #fuku .contents-container .content-detail .description { font-size: 1.3rem; line-height: 1.75; font-family: var(--font-sans); }

  #fuku .contents-container .mask { height: 10rem; bottom: 7rem; }
  #fuku .contents-container .more-menu { bottom: 20px; min-width: 80%; font-size: 1.4rem; font-family: var(--font-sans); }

  #fuku .size-ingredient-information { width: 100%; padding-bottom: 3.2rem; margin-top: 4.3rem; }
  #fuku .size-ingredient-information .size-ingredient-information-heading { font-size: 2.2rem; }
  #fuku .size-ingredient-information .item { border-bottom-color: #999999; }
  #fuku .size-ingredient-information .description { font-size: 1.4rem; line-height: 1.38; }
  #fuku .size-ingredient-information .allergy-information { width: 84%; font-size: 1.6rem; padding: 24px 0; margin-top: 2.5rem; }
  #fuku .size-ingredient-information .allergy-information span::after { right: -2.5rem; }
}


/* ==========================================================================
   11. Cold & Frozen Feature Sections
   ========================================================================== */
.product-detail {
  background-image: url(/rb/osechi/pb/fuku/assets/images/bg/yellow.jpg);
  background-size: cover;
}

.this-is-good {
  display: flex;
  background-image: url('/rb/osechi/pb/fuku/assets/images/bg/red.jpg');
  background-size: contain;
  flex-direction: column;
  align-items: center;
  color: var(--color-light);
  padding: 60px 0 110px;
}

.this-is-good__heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  font-family: var(--font-serif);
}

.this-is-good__heading__image { width: 165px; }
.this-is-good__heading .texts__text__lead {
  font-weight: normal;
  text-align: center;
  margin-top: 2rem;
  font-size: 2.4rem;
  line-height: var(--lh-s);
}

.this-is-good__heading .texts__text__title {
  font-size: 2.8rem;
  line-height: var(--lh-s);
  font-weight: bold;
  text-align: center;
  margin-top: 10px;
}

/* Cold Type Specifics */
.this-is-good.cold .this-is-good__features {
  display: grid;
  grid-template-rows: repeat(3, auto);
  row-gap: 44px;
  margin-top: 44px;
}

.this-is-good.cold .this-is-good__features .feature {
  display: grid;
  width: 695px;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 14px;
}

.this-is-good.cold .this-is-good__features .feature__image { width: 368px; }
.this-is-good.cold .this-is-good__features .feature__texts {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.this-is-good.cold .this-is-good__features .feature__texts__heading {
  font-family: var(--font-serif);
  font-size: 26px;
  font-weight: bold;
  text-align: center;
  line-height: 1.32;
}

.this-is-good.cold .this-is-good__features .feature__texts__description {
  font-size: 15px;
  text-align: justify;
  letter-spacing: 0.02em;
  line-height: 1.5;
  margin-top: 12px;
}

.this-is-good.cold .this-is-good__features .feature:nth-child(2) .feature__image {
  grid-column: 2;
  grid-row: 1;
}

/* Frozen Type Specifics */
.this-is-good.frozen .this-is-good__inner-wrapper {
  width: 700px;
  margin: 0 auto;
}

.this-is-good.frozen .this-is-good__features {
  background-color: var(--color-light);
  margin-top: 44px;
}

.this-is-good.frozen .this-is-good__features .feature {
  display: grid;
  grid-template-columns: repeat(2, auto);
  column-gap: 14px;
  padding: 40px 60px;
}

.this-is-good.frozen .this-is-good__features .feature__image { width: 264px; }
.this-is-good.frozen .this-is-good__features .feature__texts {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.this-is-good.frozen .this-is-good__features .feature__texts__title {
  font-family: var(--font-serif);
  font-size: 1.8rem;
  font-weight: bold;
  text-align: center;
  line-height: 1.56;
  color: var(--color-primary);
}

.this-is-good.frozen .this-is-good__features .feature__texts__description {
  font-size: 15px;
  text-align: justify;
  line-height: 1.5;
  letter-spacing: 0.022em;
  color: #000;
  margin-top: 12px;
}
@media only screen and (max-width: 768px) {
  .this-is-good { padding-bottom: 60px; }
  .this-is-good__heading .texts__text__lead { font-size: 1.8rem; }
  .this-is-good__heading .texts__text__title { font-size: 2.2rem; }
  
  .this-is-good.cold .this-is-good__features .feature { width: 100%; display: block; }
  .this-is-good.cold .this-is-good__features .feature__image { width: 100%; }
  .this-is-good.cold .this-is-good__features .feature__texts__heading { margin-top: 24px; }
  .this-is-good.cold .this-is-good__features .feature__texts__description { padding: 0 24px; }

  .this-is-good.frozen { padding: 50px 5%; }
  .this-is-good.frozen .this-is-good__inner-wrapper { width: 100%; }
  .this-is-good.frozen .this-is-good__features .feature { width: 100%; display: block; padding: 36px 16px; }
  .this-is-good.frozen .this-is-good__features .feature__image { width: 100%; }
  .this-is-good.frozen .this-is-good__features .feature__texts__title { color: var(--color-secondary); }
  .this-is-good.frozen .this-is-good__features .feature__texts__description { margin-top: 8px; }
}


/* ==========================================================================
   12. Package Sections
   ========================================================================== */
.package__inner-wrapper {
  width: 700px;
  margin: 0 auto;
}

.package__title,
.size-ingredient-information-heading {
  font-size: 26px;
  line-height: var(--lh-s);
  font-family: var(--font-serif);
  text-align: center;
}

.package__features {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  background-color: var(--color-light);
  gap: 32px;
  padding: 16px 34px 40px;
  margin-top: 48px;
}

.package__features .feature__texts {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 12px;
  margin-top: 10px;
}

.package__features .feature__texts__title {
  font-family: var(--font-serif);
  font-size: 2rem;
  font-weight: bolder;
  line-height: 1.4;
  text-align: center;
  color: var(--color-secondary);
}

.package__features .feature__texts__description {
  font-size: 1.3rem;
  line-height: 1.85;
  letter-spacing: 0.02em;
  text-align: justify;
}

.package__how-to-eat {
  position: relative;
  margin-top: 46px;
}

.package__how-to-eat__title {
  font-family: var(--font-serif);
  font-size: 26px;
  font-weight: bold;
  line-height: 1.36;
  text-align: center;
}

.package__how-to-eat .descriptions { margin-top: 26px; }
.package__how-to-eat .descriptions li { list-style: none; }
.package__how-to-eat .descriptions__description { position: relative; }

/* Package Cold */
.package.cold {
  background-image: url('/rb/osechi/pb/fuku/assets/images/bg/cold-pc.png');
  background-repeat: no-repeat;
  background-size: 917px 1020px;
  background-position: bottom;
}

.package.cold .package__inner-wrapper {
  padding-top: 60px;
  padding-bottom: 180px;
}

.package.cold .descriptions__description__texts {
  position: absolute;
  width: 460px;
  background-color: var(--color-light);
  left: 50%;
  bottom: -96px;
  padding: 16px 16px 32px;
  transform: translateX(-50%);
}

.package.cold .descriptions__description__texts .texts__title {
  font-family: var(--font-serif);
  font-size: 20px;
  line-height: var(--lh-s);
  font-weight: bold;
  color: var(--color-secondary);
  text-align: center;
}

.package.cold .descriptions__description__texts hr {
  border: none;
  height: 1px;
  background-color: var(--color-secondary);
  margin: 16px 0;
}

.package.cold .descriptions__description__texts .texts__description {
  font-size: 15px;
  letter-spacing: 0.02em;
  line-height: 1.5;
}

/* Package Frozen */
.package.frozen {
  background-image: url('/rb/osechi/pb/fuku/assets/images/bg/frozen-pc.png');
  background-repeat: no-repeat;
  background-size: 917px 1314px;
  background-position: bottom;
}

.package.frozen .package__inner-wrapper { padding: 60px 0; }
.package.frozen .descriptions { display: grid; row-gap: 40px; }
.package.frozen .descriptions__description {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, auto);
}

.package.frozen .descriptions__description__image { width: 370px; }
.package.frozen .descriptions__description__texts {
  display: flex;
  flex-direction: column;
  justify-content: center;
  background-color: var(--color-light);
  padding: 16px;
}

.package.frozen .descriptions__description__texts .texts__title {
  font-family: var(--font-serif);
  font-size: 20px;
  line-height: var(--lh-s);
  font-weight: bold;
  color: var(--color-secondary);
  text-align: center;
}

.package.frozen .descriptions__description__texts hr {
  border: none;
  height: 1px;
  background-color: var(--color-secondary);
  margin: 16px 0;
}

.package.frozen .descriptions__description__texts .texts__description {
  font-size: 1.4rem;
  padding-right: 16px;
  letter-spacing: 0.1rem;
  line-height: 1.75;
}

.package.frozen .descriptions__description.add .descriptions__description__texts .texts__description {
  display: flex;
  flex-direction: column;
  row-gap: 12px;
}

.package.frozen .descriptions__description.add .descriptions__description__texts .texts__description p {
  position: relative;
  padding-left: 16px;
  letter-spacing: 0.02em;
  line-height: 1.5;
}

.package.frozen .descriptions__description.add .descriptions__description__texts .texts__description p::before {
  position: absolute;
  content: '※';
  left: 0;
  top: 0;
}

@media only screen and (max-width: 768px) {
  .package__inner-wrapper { width: 100%; padding: 0 16px; }
  .package__features { display: flex;flex-direction: column;gap: 20px;padding: 16px 5% 40px;width: 88%;margin: 30px auto 40px;}
  .package__how-to-eat { margin-top: 24px; }
  .package__how-to-eat__title span { font-size: 22px; line-height: var(--lh-s); }

  .package.cold {
    background-image: url('/rb/osechi/pb/fuku/assets/images/bg/cold-sp.png');
    background-size: 100% auto;
    background-position: center 110px;
  }
  .package.cold .descriptions__description__texts { width: calc(100% - 28px); bottom: -110px; }

  .package.frozen {
    background-image: url('/rb/osechi/pb/fuku/assets/images/bg/frozen-sp.png');
    background-size: 100% auto;
    background-position: center 95px;
  }
  .package.frozen .descriptions { row-gap: 10px; }
  .package.frozen .descriptions__description { grid-template-columns: auto; }
  .package.frozen .descriptions__description__image { width: 100%; }
  .package.frozen .descriptions__description__texts {
    position: relative;
    width: calc(100% - 19px);
    left: 50%;
    bottom: 30px;
    text-align: justify;
    transform: translateX(-50%);
  }
}